@gjsify/cli 0.4.28 → 0.4.29

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.
Files changed (62) hide show
  1. package/dist/cli.gjs.mjs +33 -33
  2. package/lib/actions/barrels-generate.js +1 -5
  3. package/lib/actions/build.d.ts +3 -3
  4. package/lib/actions/build.js +56 -64
  5. package/lib/bundler-pick.d.ts +3 -3
  6. package/lib/bundler-pick.js +5 -6
  7. package/lib/commands/build.js +37 -31
  8. package/lib/commands/check.js +3 -3
  9. package/lib/commands/fix.js +33 -23
  10. package/lib/commands/flatpak/build.js +6 -2
  11. package/lib/commands/flatpak/check.js +9 -3
  12. package/lib/commands/flatpak/ci.js +1 -2
  13. package/lib/commands/flatpak/deps.js +1 -2
  14. package/lib/commands/flatpak/diff.js +2 -6
  15. package/lib/commands/flatpak/init.js +19 -19
  16. package/lib/commands/flatpak/release.js +2 -2
  17. package/lib/commands/flatpak/scaffold.js +3 -11
  18. package/lib/commands/flatpak/sync-flathub.js +4 -8
  19. package/lib/commands/flatpak/utils.js +1 -6
  20. package/lib/commands/foreach.js +5 -14
  21. package/lib/commands/format.js +54 -41
  22. package/lib/commands/gettext.js +2 -10
  23. package/lib/commands/gresource.js +2 -8
  24. package/lib/commands/gsettings.js +1 -3
  25. package/lib/commands/install.js +13 -6
  26. package/lib/commands/lint.d.ts +1 -1
  27. package/lib/commands/lint.js +22 -22
  28. package/lib/commands/pack.js +29 -17
  29. package/lib/commands/publish.js +17 -18
  30. package/lib/commands/run.js +2 -6
  31. package/lib/commands/self-update.js +1 -3
  32. package/lib/commands/showcase.js +1 -1
  33. package/lib/commands/system-check.js +8 -11
  34. package/lib/commands/test.js +12 -8
  35. package/lib/commands/uninstall.js +1 -3
  36. package/lib/commands/upgrade.d.ts +1 -1
  37. package/lib/commands/upgrade.js +109 -120
  38. package/lib/commands/workspace.js +1 -3
  39. package/lib/config.js +18 -13
  40. package/lib/index.js +3 -1
  41. package/lib/templates/install.mjs.tmpl +20 -14
  42. package/lib/templates/oxfmtrc.tmpl +54 -0
  43. package/lib/templates/oxlintrc.json.tmpl +35 -0
  44. package/lib/types/config-data.d.ts +23 -13
  45. package/lib/utils/check-system-deps.js +10 -4
  46. package/lib/utils/detect-native-packages.js +1 -1
  47. package/lib/utils/dlx-cache.js +2 -7
  48. package/lib/utils/install-backend-native.d.ts +2 -2
  49. package/lib/utils/install-backend-native.js +65 -58
  50. package/lib/utils/install-backend.js +2 -1
  51. package/lib/utils/install-global.js +1 -3
  52. package/lib/utils/normalize-bundler-options.js +52 -17
  53. package/lib/utils/oxc-resolve.d.ts +63 -0
  54. package/lib/utils/oxc-resolve.js +264 -0
  55. package/lib/utils/pkg-json-edit.js +1 -6
  56. package/lib/utils/run-gjs.js +1 -4
  57. package/lib/utils/run-lifecycle-script.js +3 -7
  58. package/lib/utils/workspace-root.js +3 -1
  59. package/package.json +17 -17
  60. package/lib/templates/biome.json.tmpl +0 -79
  61. package/lib/utils/biome-resolve.d.ts +0 -47
  62. package/lib/utils/biome-resolve.js +0 -204
package/dist/cli.gjs.mjs CHANGED
@@ -3,12 +3,12 @@ if(globalThis.__gjsifyBundleUrl??=import.meta.url,globalThis.process===void 0){l
3
3
  `)}else if(Oe){let S=` `.repeat(this._groupDepth*this._groupIndentation)+_formatArgs(...a);n===`stderr`?printerr(S):print(S)}else{let S=globalThis.console;n===`stderr`?S.error(...a):S.log(...a)}}log(...n){this._write(`stdout`,...n)}info(...n){this._write(`stdout`,...n)}debug(...n){this._write(`stdout`,...n)}warn(...n){this._write(`stderr`,...n)}error(...n){this._write(`stderr`,...n)}dir(n,a){this._write(`stdout`,n)}dirxml(...n){this.log(...n)}assert(n,...a){n||this.error(`Assertion failed:`,...a)}clear(){this._stdout?this._stdout.write(`\x1Bc`):Oe?print(`\x1Bc`):globalThis.console.clear()}count(n=`default`){let a=(this._counters.get(n)||0)+1;this._counters.set(n,a),this.log(`${n}: ${a}`)}countReset(n=`default`){this._counters.delete(n)}group(...n){n.length>0&&this.log(...n),this._groupDepth++}groupCollapsed(...n){this.group(...n)}groupEnd(){this._groupDepth>0&&this._groupDepth--}table(n,a){this._stdout?this._write(`stdout`,n):Oe?print(JSON.stringify(n,null,2)):globalThis.console.table(n,a)}time(n=`default`){this._timers.set(n,Date.now())}timeEnd(n=`default`){let a=this._timers.get(n);a===void 0?this.warn(`Warning: No such label '${n}' for console.timeEnd()`):(this.log(`${n}: ${Date.now()-a}ms`),this._timers.delete(n))}timeLog(n=`default`,...a){let S=this._timers.get(n);S===void 0?this.warn(`Warning: No such label '${n}' for console.timeLog()`):this.log(`${n}: ${Date.now()-S}ms`,...a)}trace(...n){let a=Error().stack?.split(`
4
4
  `).slice(1).join(`
5
5
  `)||``;this._write(`stderr`,`Trace:`,...n,`
6
- `+a)}profile(n){}profileEnd(n){}timeStamp(n){}},ke=new Console,log=(...n)=>ke.log(...n),info=(...n)=>ke.info(...n),Ae=__name$1((...n)=>ke.debug(...n),`debug`),warn=(...n)=>ke.warn(...n),error=(...n)=>ke.error(...n),dir=(n,a)=>ke.dir(n,a),dirxml=(...n)=>ke.dirxml(...n),table=(n,a)=>ke.table(n,a),clear=()=>ke.clear(),assert=(n,...a)=>ke.assert(n,...a),trace=(...n)=>ke.trace(...n),time=n=>ke.time(n),timeEnd=n=>ke.timeEnd(n),timeLog=(n,...a)=>ke.timeLog(n,...a),je=__name$1(n=>ke.count(n),`count`),countReset=n=>ke.countReset(n),group=(...n)=>ke.group(...n),groupCollapsed=(...n)=>ke.groupCollapsed(...n),groupEnd=()=>ke.groupEnd(),profile=n=>{},profileEnd=n=>{},timeStamp=n=>{}}),Fe,Ie=__esmMin(()=>{Me(),Fe={log,info,debug:Ae,warn,error,dir,dirxml,table,time,timeEnd,timeLog,trace,assert,clear,count:je,countReset,group,groupCollapsed,groupEnd,profile,profileEnd,timeStamp}}),Le=__esmMin(()=>{Ie()}),Re,ze=__esmMin(()=>{Re=__name$1(n=>{Promise.resolve().then(n)},`queueMicrotask`)});function drainOnce(n){let a=Math.min(64,Be.length);for(let S=0;S<a;S++){let a=Be.shift();try{a()}catch(a){try{n.log_default_handler(`gjsify-nextTick`,n.LogLevelFlags.LEVEL_WARNING,String(a?.stack||a),null)}catch{}}}Be.length>0?n.timeout_add(n.PRIORITY_DEFAULT,1,()=>(drainOnce(n),!1)):Ve=!1}function tryGLibTimeout(n){let a=globalThis.imports?.gi?.GLib;return a?.timeout_add?(Be.push(n),Ve||(Ve=!0,a.timeout_add(a.PRIORITY_DEFAULT,0,()=>(drainOnce(a),!1))),!0):!1}var Be,Ve,nextTick,He=__esmMin(()=>{Be=[],Ve=!1,nextTick=(n,...a)=>{let S=a.length>0?()=>n(...a):n;if(!tryGLibTimeout(S)){if(typeof globalThis.process?.nextTick==`function`){globalThis.process.nextTick(n,...a);return}if(typeof queueMicrotask==`function`){queueMicrotask(S);return}Promise.resolve().then(S)}}}),Ue,Ge,getPathSeparator,Ke=__esmMin(()=>{se(),ve(),{File:Ue}=_e,Ge=__name$1((n,...a)=>{let S=Ue.new_for_path(n);for(let n of a)S=S.resolve_relative_path(n);return S},`resolve`),getPathSeparator=()=>{let n=Z.get_current_dir();return/^\//.test(n)?`/`:`\\`}});function classOf(n){return qe.call(n).slice(8,-1)}function throwDataCloneError(n){let a=globalThis.DOMException;if(typeof a==`function`)throw new a(n,`DataCloneError`);let S=Error(n);throw S.name=`DataCloneError`,S}function internalClone(n,a,S){if(n==null)return n;let C=typeof n;if(C===`boolean`||C===`number`||C===`string`||C===`bigint`)return n;C===`symbol`&&throwDataCloneError(`Symbol cannot be cloned`),C===`function`&&throwDataCloneError(`Function cannot be cloned`);let N=n;if(a.has(N))return a.get(N);let F=classOf(N);if(F===`Date`)return new Date(N.getTime());if(F===`RegExp`)return new RegExp(N.source,N.flags);if(F===`Boolean`||F===`Number`||F===`String`)return Object(N.valueOf());if(F===`BigInt`)return Object(BigInt.prototype.valueOf.call(N));if(N instanceof Error){let n=N,C=n.constructor?.name,F=new(C&&Je[C]||Je[n.name]||Error)(n.message);return F.name=n.name,`cause`in n&&Object.defineProperty(F,"cause",{value:internalClone(n.cause,a,S),writable:!0,enumerable:!1,configurable:!0}),F}if(F===`DOMException`){let n=globalThis.DOMException;if(typeof n==`function`){let a=N;return new n(a.message,a.name)}}if(F===`ArrayBuffer`){let n=N;if(S&&S.transferred.has(n)){let C=S.transferred.get(n);return a.set(N,C),C}(n.detached===!0||n.byteLength===0&&n.detached)&&throwDataCloneError(`ArrayBuffer is detached and cannot be cloned`);let C=n.slice(0);return a.set(N,C),C}if(F===`SharedArrayBuffer`||N&&typeof N==`object`&&N.constructor?.name===`SharedBuffer`)return N;if(F===`DataView`){let n=N,C=S?.viewSnapshots.get(N),F=internalClone(n.buffer,a,S),I=C?C.byteOffset:n.byteOffset,H=C?C.byteLength:n.byteLength,W=new DataView(F,I,H);return a.set(N,W),W}if(Ye.has(F)){let n=N,C=S?.viewSnapshots.get(N),F=internalClone(n.buffer,a,S),I=n.constructor,H=new I(F,C?C.byteOffset:n.byteOffset,C?C.length:n.length);return a.set(N,H),H}if(F===`Map`){let n=new Map;a.set(N,n);for(let[C,F]of N)n.set(internalClone(C,a,S),internalClone(F,a,S));return n}if(F===`Set`){let n=new Set;a.set(N,n);for(let C of N)n.add(internalClone(C,a,S));return n}{let n=globalThis,a=n.Blob,S=n.File;if(typeof S==`function`&&N instanceof S){let n=N;return new S([N],n.name,{type:n.type,lastModified:n.lastModified})}if(typeof a==`function`&&N instanceof a)return new a([N],{type:N.type})}if(N instanceof WeakMap&&throwDataCloneError(`WeakMap cannot be cloned`),N instanceof WeakSet&&throwDataCloneError(`WeakSet cannot be cloned`),N instanceof WeakRef&&throwDataCloneError(`WeakRef cannot be cloned`),typeof globalThis.Promise==`function`&&N instanceof Promise&&throwDataCloneError(`Promise cannot be cloned`),F===`Array`){let n=N,C=[];a.set(N,C);for(let N=0;N<n.length;N++)N in n&&(C[N]=internalClone(n[N],a,S));return C}if(F===`Object`||typeof N==`object`){let n={};a.set(N,n);for(let C of Object.keys(N))n[C]=internalClone(N[C],a,S);return n}throwDataCloneError(`${F} cannot be cloned`)}function structuredClone$1(n,a){let S=a?.transfer;if(!S||S.length===0)return internalClone(n,new Map);let C=new Set;for(let n of S)if(classOf(n)===`ArrayBuffer`){let a=n;a.detached===!0&&throwDataCloneError(`ArrayBuffer in transfer list is detached`),C.add(a)}let N=new Map;C.size>0&&snapshotViewsBackedByTransferredBuffers(n,C,N,new Set);let F=new Map;for(let n of C){let a=n;typeof a.transfer!=`function`&&throwDataCloneError(`ArrayBuffer.prototype.transfer() not available — runtime is not SM140+`),F.set(n,a.transfer())}return internalClone(n,new Map,{transferred:F,viewSnapshots:N})}function snapshotViewsBackedByTransferredBuffers(n,a,S,C){if(typeof n!=`object`||!n)return;let N=n;if(C.has(N))return;C.add(N);let F=classOf(N);if(F===`DataView`){let n=N;a.has(n.buffer)&&S.set(N,{byteOffset:n.byteOffset,length:0,byteLength:n.byteLength});return}if(Ye.has(F)){let n=N;a.has(n.buffer)&&S.set(N,{byteOffset:n.byteOffset,length:n.length,byteLength:n.byteLength});return}if(Array.isArray(N)){for(let n=0;n<N.length;n++)n in N&&snapshotViewsBackedByTransferredBuffers(N[n],a,S,C);return}if(F===`Map`){for(let[n,F]of N)snapshotViewsBackedByTransferredBuffers(n,a,S,C),snapshotViewsBackedByTransferredBuffers(F,a,S,C);return}if(F===`Set`){for(let n of N)snapshotViewsBackedByTransferredBuffers(n,a,S,C);return}if(F===`Object`)for(let n of Object.keys(N))snapshotViewsBackedByTransferredBuffers(N[n],a,S,C)}var qe,Je,Ye,Xe=__esmMin(()=>{({toString:qe}=Object.prototype),Je={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError},Ye=new Set([`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]),__name$1(structuredClone$1,`structuredClone`)});function ensureMainLoop(){let n=globalThis.imports;if(!n)return;if(Ze)return Qe;let a=n.gi?.GLib;if(a){if(Qe=new a.MainLoop(null,!1),Ze=!0,a.main_depth()===0)try{Qe.runAsync()}catch{}return Qe}}function quitMainLoop(){Qe&&=(Qe.quit(),Ze=!1,null)}var Ze,Qe,$e=__esmMin(()=>{Ze=!1,Qe=null}),et=__esmMin(()=>{re(),ie(),ue(),de(),fe(),me(),xe(),we(),Ee(),De(),Le(),ze(),He(),Ke(),Xe(),$e()});ne(),et(),registerGlobal(`Blob`,X),registerGlobal(`File`,te);function atobPolyfill(n){if(typeof globalThis.atob==`function`)return globalThis.atob(n);let a=n.replace(/[=\s]/g,``),S=``,C=0,N=0;for(let n=0;n<a.length;n++)C=C<<6|nt[a.charCodeAt(n)],N+=6,N>=8&&(N-=8,S+=String.fromCharCode(C>>N&255));return S}function btoaPolyfill(n){if(typeof globalThis.btoa==`function`)return globalThis.btoa(n);let a=``,S=0;for(;S+2<n.length;S+=3){let C=n.charCodeAt(S)<<16|n.charCodeAt(S+1)<<8|n.charCodeAt(S+2);a+=tt[C>>18&63]+tt[C>>12&63]+tt[C>>6&63]+tt[C&63]}if(S+1===n.length){let C=n.charCodeAt(S)<<16;a+=tt[C>>18&63]+tt[C>>12&63]+`==`}else if(S+2===n.length){let C=n.charCodeAt(S)<<16|n.charCodeAt(S+1)<<8;a+=tt[C>>18&63]+tt[C>>12&63]+tt[C>>6&63]+`=`}return a}function base64Decode$1(n){let a=n.replace(/[=\s]/g,``),S=new Uint8Array(a.length*3>>2),C=0,N=0,F=0;for(let n=0;n<a.length;n++)C=C<<6|nt[a.charCodeAt(n)],N+=6,N>=8&&(N-=8,S[F++]=C>>N&255);return S.subarray(0,F)}function base64Encode$1(n){let a=``,S=n.length;for(let C=0;C<S;C+=3){let N=n[C],F=C+1<S?n[C+1]:0,I=C+2<S?n[C+2]:0;a+=tt[N>>2],a+=tt[(N&3)<<4|F>>4],a+=C+1<S?tt[(F&15)<<2|I>>6]:`=`,a+=C+2<S?tt[I&63]:`=`}return a}var tt,nt,rt=__esmMin(()=>{tt=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,nt=new Uint8Array(256);for(let n=0;n<64;n++)nt[tt.charCodeAt(n)]=n;__name$1(base64Decode$1,`base64Decode`),__name$1(base64Encode$1,`base64Encode`)});function normalizeEncoding(n){if(!n||n===`utf8`||n===`utf-8`)return`utf8`;switch((``+n).toLowerCase().replace(/-/g,``)){case`utf8`:return`utf8`;case`ascii`:return`ascii`;case`latin1`:case`binary`:return`latin1`;case`base64`:return`base64`;case`base64url`:return`base64url`;case`hex`:return`hex`;case`ucs2`:case`utf16le`:return`utf16le`;default:return`utf8`}}function checkEncoding(n){let a=(``+n).toLowerCase().replace(/-/g,``);if(!it.includes(a))throw TypeError(`Unknown encoding: ${n}`)}var it,ot=__esmMin(()=>{it=[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`]});function encodeString(n,a){switch(a){case`utf8`:return st.encode(n);case`ascii`:{let a=new Uint8Array(n.length);for(let S=0;S<n.length;S++)a[S]=n.charCodeAt(S)&127;return a}case`latin1`:{let a=new Uint8Array(n.length);for(let S=0;S<n.length;S++)a[S]=n.charCodeAt(S)&255;return a}case`base64`:return base64Decode$1(n.replace(/-/g,`+`).replace(/_/g,`/`));case`base64url`:return encodeString(n.replace(/-/g,`+`).replace(/_/g,`/`),`base64`);case`hex`:{let a=n.length>>>1,S=new Uint8Array(a);for(let C=0;C<a;C++){let a=parseInt(n[C*2],16),N=parseInt(n[C*2+1],16);if(Number.isNaN(a)||Number.isNaN(N))break;S[C]=a<<4|N}return S}case`utf16le`:{let a=new Uint8Array(n.length*2);for(let S=0;S<n.length;S++){let C=n.charCodeAt(S);a[S*2]=C&255,a[S*2+1]=C>>8&255}return a}default:return st.encode(n)}}function decodeString(n,a,S,C){let N=S!==void 0||C!==void 0?n.subarray(S??0,C??n.length):n;switch(a){case`utf8`:return ct.decode(N);case`ascii`:{let n=``;for(let a=0;a<N.length;a++)n+=String.fromCharCode(N[a]&127);return n}case`latin1`:{let n=``;for(let a=0;a<N.length;a++)n+=String.fromCharCode(N[a]);return n}case`base64`:{let n=``;for(let a=0;a<N.length;a++)n+=String.fromCharCode(N[a]);return btoaPolyfill(n)}case`base64url`:return decodeString(N,`base64`).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``);case`hex`:{let n=``;for(let a=0;a<N.length;a++)n+=N[a].toString(16).padStart(2,`0`);return n}case`utf16le`:{let n=``;for(let a=0;a+1<N.length;a+=2)n+=String.fromCharCode(N[a]|N[a+1]<<8);return n}default:return ct.decode(N)}}function checkOffset(n,a,S){if(n+a>S)throw RangeError(`Attempt to access memory outside buffer bounds`)}var st,ct,lt=__esmMin(()=>{rt(),st=new TextEncoder,ct=new TextDecoder}),ut,dt,ft,pt,mt,SlowBuffer,ht=__esmMin(()=>{lt(),ot(),ut=typeof SharedArrayBuffer<`u`,dt=class Buffer extends Uint8Array{static _isBuffer=!0;static alloc(n,a,S){if(typeof n!=`number`)throw TypeError(`The "size" argument must be of type number. Received type ${typeof n}`);if(n<0)throw RangeError(`The value "${n}" is invalid for option "size"`);let C=new Buffer(n);return a!==void 0&&a!==0&&C.fill(a,0,n,S),C}static allocUnsafe(n){if(typeof n!=`number`)throw TypeError(`The "size" argument must be of type number. Received type ${typeof n}`);return new Buffer(n)}static allocUnsafeSlow(n){return Buffer.allocUnsafe(n)}static from(n,a,S){if(typeof n==`string`){let S=normalizeEncoding(a);if(a&&typeof a==`string`){let n=(``+a).toLowerCase().replace(/-/g,``);[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`,``].includes(n)||checkEncoding(a)}let C=encodeString(n,S);return new Buffer(C.buffer,C.byteOffset,C.byteLength)}if(ArrayBuffer.isView(n)){let a=new Buffer(n.buffer,n.byteOffset,n.byteLength),S=new Buffer(a.length);return S.set(a),S}if(n instanceof ArrayBuffer){let C=a||0;return new Buffer(n,C,S===void 0?n.byteLength-C:S)}if(ut&&n instanceof SharedArrayBuffer){let C=a||0,N=S===void 0?n.byteLength-C:S;return new Buffer(new Uint8Array(n,C,N))}if(typeof n==`object`&&n&&typeof n.viewBytes==`function`&&typeof n.byteLength==`number`&&n.constructor?.name===`SharedBuffer`){let C=n,N=a||0,F=S===void 0?C.byteLength-N:S,I=C.viewBytes(N,F);return new Buffer(I.buffer,I.byteOffset,I.byteLength)}if(Array.isArray(n)){let a=new Buffer(n.length);for(let S=0;S<n.length;S++)a[S]=n[S]&255;return a}throw TypeError(`The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array`)}static isBuffer(n){return n instanceof Buffer}static isEncoding(n){if(typeof n!=`string`)return!1;let a=n.toLowerCase().replace(/-/g,``);return[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`].includes(a)}static byteLength(n,a){if(typeof n!=`string`){if(ArrayBuffer.isView(n)||n instanceof ArrayBuffer||ut&&n instanceof SharedArrayBuffer)return n.byteLength;throw TypeError(`The "string" argument must be one of type string, Buffer, or ArrayBuffer`)}switch(normalizeEncoding(a)){case`utf8`:return new TextEncoder().encode(n).byteLength;case`ascii`:case`latin1`:return n.length;case`base64`:case`base64url`:{let a=n.length;for(;a>0&&(n[a-1]===`=`||n[a-1]===` `);)a--;return a*3>>>2}case`hex`:return n.length>>>1;case`utf16le`:return n.length*2;default:return new TextEncoder().encode(n).byteLength}}static compare(n,a){if(!(n instanceof Uint8Array)||!(a instanceof Uint8Array))throw TypeError(`Arguments must be Buffers or Uint8Arrays`);let S=Math.min(n.length,a.length);for(let C=0;C<S;C++){if(n[C]<a[C])return-1;if(n[C]>a[C])return 1}return n.length<a.length?-1:+(n.length>a.length)}static concat(n,a){if(n.length===0)return Buffer.alloc(0);if(a===void 0){a=0;for(let S=0;S<n.length;S++)a+=n[S].length}let S=Buffer.alloc(a),C=0;for(let N=0;N<n.length;N++){let F=n[N],I=Math.min(F.length,a-C);I<=0||(S.set(F.subarray(0,I),C),C+=I)}return S}static poolSize=8192;toString(n,a,S){let C=normalizeEncoding(n);return decodeString(this,C,a,S)}toJSON(){return{type:`Buffer`,data:Array.from(this)}}equals(n){if(!(n instanceof Uint8Array))throw TypeError(`Argument must be a Buffer or Uint8Array`);if(this.length!==n.length)return!1;for(let a=0;a<this.length;a++)if(this[a]!==n[a])return!1;return!0}compare(n,a,S,C,N){if(!(n instanceof Uint8Array))throw TypeError(`Argument must be a Buffer or Uint8Array`);let F=C!==void 0||N!==void 0?this.subarray(C??0,N??this.length):this,I=a!==void 0||S!==void 0?n.subarray(a??0,S??n.length):n;return Buffer.compare(F,I)}copy(n,a=0,S=0,C){let N=C??this.length,F=Math.min(N-S,n.length-a);return F<=0?0:(n.set(this.subarray(S,S+F),a),F)}slice(n,a){let S=n??0,C=a??this.length,N=super.subarray(S,C);return new Buffer(N.buffer,N.byteOffset,N.byteLength)}subarray(n,a){let S=super.subarray(n,a);return new Buffer(S.buffer,S.byteOffset,S.byteLength)}write(n,a,S,C){a??=0;let N=encodeString(n,normalizeEncoding(C||(typeof S==`string`?S:void 0))),F=S!==void 0&&typeof S==`number`?Math.min(S,this.length-a):this.length-a,I=Math.min(N.length,F);return this.set(N.subarray(0,I),a),I}fill(n,a,S,C){let N=a??0,F=S??this.length;if(typeof n==`number`)super.fill(n&255,N,F);else if(typeof n==`string`){let a=encodeString(n,normalizeEncoding(C));if(a.length===0)super.fill(0,N,F);else if(a.length===1)super.fill(a[0],N,F);else for(let n=N;n<F;n++)this[n]=a[(n-N)%a.length]}else if(n instanceof Uint8Array)if(n.length===0)super.fill(0,N,F);else for(let a=N;a<F;a++)this[a]=n[(a-N)%n.length];return this}indexOf(n,a,S){if(typeof n==`number`)return super.indexOf(n&255,a);let C=typeof n==`string`?encodeString(n,normalizeEncoding(S)):n,N=a??0;outer:for(let n=N;n<=this.length-C.length;n++){for(let a=0;a<C.length;a++)if(this[n+a]!==C[a])continue outer;return n}return-1}lastIndexOf(n,a,S){if(typeof n==`number`)return a===void 0?super.lastIndexOf(n&255):super.lastIndexOf(n&255,a);let C=typeof n==`string`?encodeString(n,normalizeEncoding(S)):n,N=a===void 0?this.length-C.length:Math.min(a,this.length-C.length);outer:for(let n=N;n>=0;n--){for(let a=0;a<C.length;a++)if(this[n+a]!==C[a])continue outer;return n}return-1}includes(n,a,S){return this.indexOf(n,a,S)!==-1}readUInt8(n=0){return checkOffset(n,1,this.length),this[n]}readUInt16BE(n=0){return checkOffset(n,2,this.length),this[n]<<8|this[n+1]}readUInt16LE(n=0){return checkOffset(n,2,this.length),this[n]|this[n+1]<<8}readUInt32BE(n=0){return checkOffset(n,4,this.length),this[n]*16777216+(this[n+1]<<16|this[n+2]<<8|this[n+3])}readUInt32LE(n=0){return checkOffset(n,4,this.length),this[n+3]*16777216+(this[n+2]<<16|this[n+1]<<8|this[n])>>>0}readInt8(n=0){return checkOffset(n,1,this.length),this[n]|(this[n]&128?4294967040:0)}readInt16BE(n=0){checkOffset(n,2,this.length);let a=this[n]<<8|this[n+1];return a&32768?a|4294901760:a}readInt16LE(n=0){checkOffset(n,2,this.length);let a=this[n]|this[n+1]<<8;return a&32768?a|4294901760:a}readInt32BE(n=0){return checkOffset(n,4,this.length),this[n]<<24|this[n+1]<<16|this[n+2]<<8|this[n+3]}readInt32LE(n=0){return checkOffset(n,4,this.length),this[n]|this[n+1]<<8|this[n+2]<<16|this[n+3]<<24}readFloatBE(n=0){return checkOffset(n,4,this.length),new DataView(this.buffer,this.byteOffset+n,4).getFloat32(0,!1)}readFloatLE(n=0){return checkOffset(n,4,this.length),new DataView(this.buffer,this.byteOffset+n,4).getFloat32(0,!0)}readDoubleBE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getFloat64(0,!1)}readDoubleLE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getFloat64(0,!0)}readBigInt64BE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getBigInt64(0,!1)}readBigInt64LE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getBigInt64(0,!0)}readBigUInt64BE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getBigUint64(0,!1)}readBigUInt64LE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getBigUint64(0,!0)}readUIntBE(n,a){checkOffset(n,a,this.length);let S=0;for(let C=0;C<a;C++)S=S*256+this[n+C];return S}readUIntLE(n,a){checkOffset(n,a,this.length);let S=0,C=1;for(let N=0;N<a;N++)S+=this[n+N]*C,C*=256;return S}readIntBE(n,a){checkOffset(n,a,this.length);let S=0;for(let C=0;C<a;C++)S=S*256+this[n+C];return S>=2**(8*a-1)&&(S-=2**(8*a)),S}readIntLE(n,a){checkOffset(n,a,this.length);let S=0,C=1;for(let N=0;N<a;N++)S+=this[n+N]*C,C*=256;return S>=2**(8*a-1)&&(S-=2**(8*a)),S}writeUInt8(n,a=0){return checkOffset(a,1,this.length),this[a]=n&255,a+1}writeUInt16BE(n,a=0){return checkOffset(a,2,this.length),this[a]=n>>>8&255,this[a+1]=n&255,a+2}writeUInt16LE(n,a=0){return checkOffset(a,2,this.length),this[a]=n&255,this[a+1]=n>>>8&255,a+2}writeUInt32BE(n,a=0){return checkOffset(a,4,this.length),this[a]=n>>>24&255,this[a+1]=n>>>16&255,this[a+2]=n>>>8&255,this[a+3]=n&255,a+4}writeUInt32LE(n,a=0){return checkOffset(a,4,this.length),this[a]=n&255,this[a+1]=n>>>8&255,this[a+2]=n>>>16&255,this[a+3]=n>>>24&255,a+4}writeInt8(n,a=0){return checkOffset(a,1,this.length),n<0&&(n=255+n+1),this[a]=n&255,a+1}writeInt16BE(n,a=0){return checkOffset(a,2,this.length),this[a]=n>>>8&255,this[a+1]=n&255,a+2}writeInt16LE(n,a=0){return checkOffset(a,2,this.length),this[a]=n&255,this[a+1]=n>>>8&255,a+2}writeInt32BE(n,a=0){return checkOffset(a,4,this.length),this[a]=n>>>24&255,this[a+1]=n>>>16&255,this[a+2]=n>>>8&255,this[a+3]=n&255,a+4}writeInt32LE(n,a=0){return checkOffset(a,4,this.length),this[a]=n&255,this[a+1]=n>>>8&255,this[a+2]=n>>>16&255,this[a+3]=n>>>24&255,a+4}writeFloatBE(n,a=0){return checkOffset(a,4,this.length),new DataView(this.buffer,this.byteOffset+a,4).setFloat32(0,n,!1),a+4}writeFloatLE(n,a=0){return checkOffset(a,4,this.length),new DataView(this.buffer,this.byteOffset+a,4).setFloat32(0,n,!0),a+4}writeDoubleBE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setFloat64(0,n,!1),a+8}writeDoubleLE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setFloat64(0,n,!0),a+8}writeBigInt64BE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setBigInt64(0,n,!1),a+8}writeBigInt64LE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setBigInt64(0,n,!0),a+8}writeBigUInt64BE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setBigUint64(0,n,!1),a+8}writeBigUInt64LE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setBigUint64(0,n,!0),a+8}swap16(){let n=this.length;if(n%2!=0)throw RangeError(`Buffer size must be a multiple of 16-bits`);for(let a=0;a<n;a+=2){let n=this[a];this[a]=this[a+1],this[a+1]=n}return this}swap32(){let n=this.length;if(n%4!=0)throw RangeError(`Buffer size must be a multiple of 32-bits`);for(let a=0;a<n;a+=4){let n=this[a],S=this[a+1];this[a]=this[a+3],this[a+1]=this[a+2],this[a+2]=S,this[a+3]=n}return this}swap64(){let n=this.length;if(n%8!=0)throw RangeError(`Buffer size must be a multiple of 64-bits`);for(let a=0;a<n;a+=8){let n=this[a],S=this[a+1],C=this[a+2],N=this[a+3];this[a]=this[a+7],this[a+1]=this[a+6],this[a+2]=this[a+5],this[a+3]=this[a+4],this[a+4]=N,this[a+5]=C,this[a+6]=S,this[a+7]=n}return this}},ft=2**31-1,pt=2**28-16,mt={MAX_LENGTH:ft,MAX_STRING_LENGTH:pt},SlowBuffer=class extends dt{constructor(n){super(n)}}}),gt=__exportAll$3({Blob:()=>X,Buffer:()=>dt,File:()=>te,INSPECT_MAX_BYTES:()=>50,SlowBuffer:()=>SlowBuffer,atob:()=>_t,atobPolyfill:()=>atobPolyfill,base64Decode:()=>base64Decode$1,base64Encode:()=>base64Encode$1,btoa:()=>vt,btoaPolyfill:()=>btoaPolyfill,checkEncoding:()=>checkEncoding,constants:()=>mt,default:()=>yt,kMaxLength:()=>ft,kStringMaxLength:()=>pt,normalizeEncoding:()=>normalizeEncoding}),_t,vt,yt,bt=__esmMin(()=>{rt(),ne(),ot(),ht(),_t=globalThis.atob,vt=globalThis.btoa,yt={Buffer:dt,SlowBuffer,Blob:X,File:te,atob:_t,btoa:vt,kMaxLength:ft,kStringMaxLength:pt,constants:mt,INSPECT_MAX_BYTES:50}});bt(),`Buffer`in globalThis||Object.defineProperty(globalThis,"Buffer",{value:dt,enumerable:!1,writable:!0,configurable:!0}),se(),typeof globalThis.btoa!=`function`&&Object.defineProperty(globalThis,"btoa",{value:function btoa(n){let a=new Uint8Array(n.length);for(let S=0;S<n.length;S++)a[S]=n.charCodeAt(S)&255;return Z.base64_encode(a)},enumerable:!0,writable:!0,configurable:!0}),typeof globalThis.atob!=`function`&&Object.defineProperty(globalThis,"atob",{value:function atob(n){let a=Z.base64_decode(n),S=``;for(let n=0;n<a.length;n++)S+=String.fromCharCode(a[n]);return S},enumerable:!0,writable:!0,configurable:!0}),et(),typeof queueMicrotask!=`function`&&Object.defineProperty(globalThis,"queueMicrotask",{value:Re,enumerable:!0,writable:!0,configurable:!0});function getGjsGlobal(){return globalThis}function getGioNamespace(){let n=getGjsGlobal().imports?.gi;if(!n)return null;let a=null;try{a=n.GioUnix??null}catch{}if(!a)try{a=n.Gio??null}catch{}return a}function getMonotonicTime(){try{let n=getGjsGlobal().imports?.gi?.GLib;if(n?.get_monotonic_time)return BigInt(n.get_monotonic_time())*1000n}catch{}return typeof performance?.now==`function`?BigInt(Math.round(performance.now()*1e6)):BigInt(Date.now())*1000000n}const xt=getMonotonicTime();function hrtime(n){let a=getMonotonicTime()-xt,S=Number(a/1000000000n),C=Number(a%1000000000n);if(n){let a=S-n[0],N=C-n[1];return N<0&&(a--,N+=1e9),[a,N]}return[S,C]}function hrtimeBigint(){return getMonotonicTime()-xt}function detectGjsVersion(){try{let n=getGjsGlobal().imports?.system;if(n?.version!==void 0){let a=Number(n.version);return`${Math.floor(a/1e4)}.${Math.floor(a%1e4/100)}.${a%100}`}}catch{}}function detectNodeVersion(){if(typeof globalThis.process?.versions?.node==`string`)return globalThis.process.versions.node}function detectVersionInfo(){if(detectNodeVersion())return{version:globalThis.process.version,versions:{...globalThis.process.versions},title:globalThis.process?.title||`node`};let n=detectGjsVersion(),a={node:`20.0.0`};return n&&(a.gjs=n),{version:`v20.0.0`,versions:a,title:`gjs`}}function detectPpid(){if(typeof globalThis.process?.ppid==`number`)return globalThis.process.ppid;try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let[,a]=n.file_get_contents(`/proc/self/status`);if(a){let n=new TextDecoder().decode(a).match(/PPid:\s+(\d+)/);if(n)return parseInt(n[1],10)}}}catch{}return 0}function detectPlatform(){try{let n=getGjsGlobal().imports?.gi?.GLib;if(n&&n.get_os_info(`ID`))return`linux`}catch{}return getGjsGlobal().imports?.system===void 0&&typeof globalThis.process?.platform==`string`?globalThis.process.platform:`linux`}function detectArch(){return typeof globalThis.process?.arch==`string`?globalThis.process.arch:`x64`}function getPid$1(){if(typeof globalThis.process?.pid==`number`)return globalThis.process.pid;try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let[,a]=n.file_get_contents(`/proc/self/stat`);if(a){let n=new TextDecoder().decode(a),S=parseInt(n,10);if(!isNaN(S))return S}}}catch{}return 0}__name$1(getPid$1,`getPid`);function getEnvProxy(){if(typeof globalThis.process?.env==`object`)return globalThis.process.env;try{let n=getGjsGlobal().imports?.gi?.GLib;if(n)return new Proxy({},{get(a,S){if(typeof S==`string`)return n.getenv(S)??void 0},set(a,S,C){return typeof S==`string`?(n.setenv(S,String(C),!0),!0):!1},deleteProperty(a,S){return typeof S==`string`?(n.unsetenv(S),!0):!1},has(a,S){return typeof S==`string`?n.getenv(S)!==null:!1},ownKeys(a){return n.listenv()},getOwnPropertyDescriptor(a,S){if(typeof S!=`string`)return;let C=n.getenv(S);if(C!==null)return{configurable:!0,enumerable:!0,writable:!0,value:C}}})}catch{}return{}}function getArgv(){if(globalThis.process?.argv!==void 0)return globalThis.process.argv;try{let n=getGjsGlobal().imports?.system;if(n?.programArgs)return[`gjs`,n.programInvocationName||``,...n.programArgs]}catch{}return[`gjs`]}function getExecPath(){if(typeof globalThis.process?.execPath==`string`)return globalThis.process.execPath;try{let n=getGjsGlobal().imports?.system;if(n?.programInvocationName)return n.programInvocationName}catch{}return`/usr/bin/gjs`}function getCwd(){try{let n=getGjsGlobal().imports?.gi?.GLib;if(n?.get_current_dir)return n.get_current_dir()}catch{}return`/`}function chdir(n){let a=getGjsGlobal().imports?.gi?.GLib;try{if(a?.chdir){if(!a.file_test(n,16)){let a=Error(`ENOENT: no such file or directory, chdir '${n}'`);throw a.code=`ENOENT`,a.syscall=`chdir`,a.path=n,a}a.chdir(n);return}}catch(n){if(n&&typeof n==`object`&&n.code===`ENOENT`)throw n}if(!a){let a=globalThis.process;if(a&&typeof a.chdir==`function`){a.chdir(n);return}}throw Error(`process.chdir() is not supported in this environment`)}et();function exitProcess(n){let a=getGjsGlobal().imports,S=a?.gi?.GLib,C=a?.system,N=S?.idle_add,F=S?.SOURCE_REMOVE,I=S?.PRIORITY_DEFAULT;if(C?.exit&&N&&typeof I==`number`&&typeof F==`boolean`)return ensureMainLoop(),N(I,()=>(quitMainLoop(),C.exit(n),F)),new Promise(()=>{});try{C?.exit&&C.exit(n)}catch{}let H=globalThis.process;throw H&&typeof H.exit==`function`&&H.exit(n),Error(`process.exit(${n})`)}function isGjs(){return getGjsGlobal().imports?.gi?.GLib!==void 0}function killPid(n,a){try{let S=getGjsGlobal().imports?.gi?.GLib;if(S){let C=typeof a==`number`?String(a):a||`SIGTERM`,N=C.startsWith(`SIG`)?`-${C.slice(3)}`:`-${C}`;return S.spawn_command_line_sync(`kill ${N} ${n}`),!0}}catch{}if(!isGjs()){let S=globalThis.process;if(S&&typeof S.kill==`function`)return S.kill(n,a)}throw Error(`process.kill() is not supported in this environment`)}function memoryUsage(){try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let[,a]=n.file_get_contents(`/proc/self/status`);if(a){let n=new TextDecoder().decode(a).match(/VmRSS:\s+(\d+)/),S=n?parseInt(n[1],10)*1024:0;return{rss:S,heapTotal:S,heapUsed:S,external:0,arrayBuffers:0}}}}catch{}if(!isGjs()){let n=globalThis.process;if(n&&typeof n.memoryUsage==`function`)return n.memoryUsage()}return{rss:0,heapTotal:0,heapUsed:0,external:0,arrayBuffers:0}}function cpuUsage(n){if(!isGjs()){let a=globalThis.process;if(a&&typeof a.cpuUsage==`function`)return a.cpuUsage(n)}return{user:0,system:0}}let St=null;const Ct=globalThis.imports?.gi;if(Ct)try{St=Ct.GjsifyTerminal}catch{}const wt=St;function onceWrapper(){let{target:n,type:a,listener:S}=this;return this.wrapperFn&&n.removeListener(a,this.wrapperFn),S.apply(n,arguments)}function _onceWrap(n,a,S){let C={target:n,type:a,listener:S,wrapperFn:void 0},N=onceWrapper.bind(C);return C.wrapperFn=N,N.listener=S,N}function arrayClone(n){switch(n.length){case 0:return[];case 1:return[n[0]];case 2:return[n[0],n[1]];case 3:return[n[0],n[1],n[2]];default:return n.slice()}}function checkListener(n){if(typeof n!=`function`)throw TypeError(`The "listener" argument must be of type Function. Received type `+typeof n)}function validateNumber(n,a){if(typeof n!=`number`||n!==n)throw TypeError(`The "${a}" argument must be of type number. Received type ${typeof n}`)}function spliceOne(n,a){for(;a+1<n.length;a++)n[a]=n[a+1];n.pop()}function unwrapListeners(n){let a=Array(n.length);for(let S=0;S<a.length;++S)a[S]=n[S].listener??n[S];return a}function createAbortError$1(n){let a=Error(`The operation was aborted`);return a.name=`AbortError`,a.code=`ABORT_ERR`,n?.reason&&(a.cause=n.reason),a}var Tt,Et,Dt,Ot=__esmMin(()=>{Ie(),Tt=Symbol(`kCapture`),Et=Symbol.for(`nodejs.rejection`),Dt=class EventEmitter{static defaultMaxListeners=10;static errorMonitor=Symbol(`events.errorMonitor`);static captureRejectionSymbol=Et;static _captureRejections=!1;static get captureRejections(){return EventEmitter._captureRejections}static set captureRejections(n){if(typeof n!=`boolean`)throw TypeError(`The "captureRejections" argument must be of type boolean.`);EventEmitter._captureRejections=n}_events;_eventsCount;_maxListeners;[Tt];constructor(n){this._events=Object.create(null),this._eventsCount=0,this._maxListeners=void 0,this[Tt]=n?.captureRejections??EventEmitter._captureRejections}setMaxListeners(n){if(validateNumber(n,`n`),n<0)throw RangeError(`The value of "n" is out of range. It must be a non-negative number. Received `+n);return this._maxListeners=n,this}getMaxListeners(){return this._maxListeners??EventEmitter.defaultMaxListeners}emit(n,...a){let S=this._events,C=n===`error`;if(S!==void 0)C&&S[EventEmitter.errorMonitor]!==void 0&&this.emit(EventEmitter.errorMonitor,...a),C&&=S.error===void 0;else if(!C)return!1;if(C){let n;if(n=a.length>0?a[0]:Error(`Unhandled error.`),n instanceof Error)throw n;let S=Error(`Unhandled error. (`+n+`)`);throw S.context=n,S}let N=S[n];if(N===void 0)return!1;if(typeof N==`function`){let S=N.apply(this,a);S!=null&&this[Tt]&&this._addCatch(S,n,a)}else{let S=arrayClone(N),C=S.length;for(let N=0;N<C;++N){let C=S[N].apply(this,a);C!=null&&this[Tt]&&this._addCatch(C,n,a)}}return!0}_addCatch(n,a,S){typeof n?.then==`function`&&n.then(void 0,n=>{let C=this[Et];if(typeof C==`function`)C.call(this,n,a,...S);else{let a=this[Tt];try{this[Tt]=!1,this.emit(`error`,n)}finally{this[Tt]=a}}})}addListener(n,a){return this._addListener(n,a,!1)}on(n,a){return this._addListener(n,a,!1)}prependListener(n,a){return this._addListener(n,a,!0)}_addListener(n,a,S){checkListener(a);let C=this._events;C===void 0?(C=this._events=Object.create(null),this._eventsCount=0):C.newListener!==void 0&&(this.emit(`newListener`,n,a.listener??a),C=this._events);let N=C[n];N===void 0?(C[n]=a,++this._eventsCount):typeof N==`function`?C[n]=S?[a,N]:[N,a]:S?N.unshift(a):N.push(a);let F=this.getMaxListeners();if(F>0){let a=typeof C[n]==`function`?1:C[n].length;if(a>F&&!C[n].warned){typeof C[n]!=`function`&&(C[n].warned=!0);let S=Error(`Possible EventEmitter memory leak detected. ${a} ${String(n)} listeners added to [${this.constructor.name}]. Use emitter.setMaxListeners() to increase limit`);S.name=`MaxListenersExceededWarning`,Fe.warn(S.message)}}return this}once(n,a){return checkListener(a),this.on(n,_onceWrap(this,n,a)),this}prependOnceListener(n,a){return checkListener(a),this.prependListener(n,_onceWrap(this,n,a)),this}removeListener(n,a){checkListener(a);let S=this._events;if(S===void 0)return this;let C=S[n];if(C===void 0)return this;if(C===a||C.listener===a)--this._eventsCount===0?this._events=Object.create(null):(delete S[n],S.removeListener&&this.emit(`removeListener`,n,C.listener??a));else if(typeof C!=`function`){let N=-1;for(let n=C.length-1;n>=0;n--)if(C[n]===a||C[n].listener===a){N=n;break}if(N<0)return this;N===0?C.shift():spliceOne(C,N),C.length===1&&(S[n]=C[0]),S.removeListener!==void 0&&this.emit(`removeListener`,n,a.listener??a)}return this}off(n,a){return this.removeListener(n,a)}removeAllListeners(n){let a=this._events;if(a===void 0)return this;if(a.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):a[n]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete a[n]),this;if(arguments.length===0){let n=Object.keys(a);for(let a=0;a<n.length;++a){let S=n[a];S!==`removeListener`&&this.removeAllListeners(S)}return this.removeAllListeners(`removeListener`),this._events=Object.create(null),this._eventsCount=0,this}let S=a[n];if(typeof S==`function`)this.removeListener(n,S);else if(S!==void 0)for(let a=S.length-1;a>=0;a--)this.removeListener(n,S[a]);return this}listeners(n){let a=this._events;if(a===void 0)return[];let S=a[n];return S===void 0?[]:typeof S==`function`?[S.listener??S]:unwrapListeners(S)}rawListeners(n){let a=this._events;if(a===void 0)return[];let S=a[n];return S===void 0?[]:typeof S==`function`?[S]:arrayClone(S)}listenerCount(n){let a=this._events;if(a===void 0)return 0;let S=a[n];return S===void 0?0:typeof S==`function`?1:S.length}eventNames(){return(this._eventsCount??0)>0?Reflect.ownKeys(this._events):[]}static once(n,a,S){return new Promise((C,N)=>{let F=S?.signal;if(F?.aborted){N(createAbortError$1(F));return}if(typeof n.addEventListener==`function`){let S=n,handler=(...n)=>{F&&F.removeEventListener(`abort`,abortHandler),C(n)},errorHandler=n=>{F&&F.removeEventListener(`abort`,abortHandler),S.removeEventListener(`error`,errorHandler),N(n)},abortHandler=()=>{S.removeEventListener(a,handler),S.removeEventListener(`error`,errorHandler),N(createAbortError$1(F))};S.addEventListener(a,handler,{once:!0}),a!==`error`&&S.addEventListener(`error`,errorHandler,{once:!0}),F&&F.addEventListener(`abort`,abortHandler,{once:!0});return}let I=n,eventHandler=(...n)=>{F&&F.removeEventListener(`abort`,abortHandler),errorHandler!==void 0&&I.removeListener(`error`,errorHandler),C(n)},errorHandler;a!==`error`&&(errorHandler=n=>{I.removeListener(a,eventHandler),F&&F.removeEventListener(`abort`,abortHandler),N(n)},I.once(`error`,errorHandler)),I.once(a,eventHandler);let abortHandler=()=>{I.removeListener(a,eventHandler),errorHandler&&I.removeListener(`error`,errorHandler),N(createAbortError$1(F))};F&&F.addEventListener(`abort`,abortHandler,{once:!0})})}static on(n,a,S){let C=S?.signal;if(C?.aborted)throw createAbortError$1(C);let N=S?.highWaterMark??2**53-1,F=S?.lowWaterMark??1;validateNumber(N,`highWaterMark`),validateNumber(F,`lowWaterMark`);let I=[],H=[],W=null,K=!1,q=!1,eventHandler=(...a)=>{if(H.length>0){let{resolve:n}=H.shift();n({value:a,done:!1})}else I.push(a),I.length>=N&&!q&&(q=!0,typeof n.pause==`function`&&n.pause())},errorHandler=n=>{if(W=n,H.length>0){let{reject:a}=H.shift();a(n)}Y.return()},abortHandler=()=>{errorHandler(createAbortError$1(C))};n.on(a,eventHandler),a!==`error`&&n.on(`error`,errorHandler),C&&C.addEventListener(`abort`,abortHandler,{once:!0});let cleanup=()=>{n.removeListener(a,eventHandler),n.removeListener(`error`,errorHandler),C&&C.removeEventListener(`abort`,abortHandler),K=!0;for(let{resolve:n}of H)n({value:void 0,done:!0});H.length=0,I.length=0},Y={next(){if(I.length>0){let a=I.shift();return q&&I.length<F&&(q=!1,typeof n.resume==`function`&&n.resume()),Promise.resolve({value:a,done:!1})}if(W){let n=Promise.reject(W);return W=null,n}return K?Promise.resolve({value:void 0,done:!0}):new Promise((n,a)=>{H.push({resolve:n,reject:a})})},return(){return cleanup(),Promise.resolve({value:void 0,done:!0})},throw(n){return K||(W=n,cleanup()),Promise.reject(n)},[Symbol.asyncIterator](){return this}};return Y}static listenerCount(n,a){return n.listenerCount(a)}static getEventListeners(n,a){return typeof n.listeners==`function`?n.listeners(a):[]}static setMaxListeners(n,...a){if(validateNumber(n,`n`),n<0)throw RangeError(`The value of "n" is out of range.`);if(a.length===0)EventEmitter.defaultMaxListeners=n;else for(let S of a)typeof S.setMaxListeners==`function`&&S.setMaxListeners(n)}static getMaxListeners(n){return typeof n.getMaxListeners==`function`?n.getMaxListeners():EventEmitter.defaultMaxListeners}static addAbortListener(n,a){n.aborted&&Promise.resolve().then(()=>a());let handler=()=>a();return n.addEventListener(`abort`,handler,{once:!0}),{[Symbol.dispose](){n.removeEventListener(`abort`,handler)}}}},Dt.EventEmitter=Dt;for(let n of[`setMaxListeners`,`getMaxListeners`,`emit`,`addListener`,`on`,`prependListener`,`once`,`prependOnceListener`,`removeListener`,`off`,`removeAllListeners`,`listeners`,`rawListeners`,`listenerCount`,`eventNames`]){let a=Dt.prototype[n];typeof a==`function`&&Object.defineProperty(Dt.prototype,n,{enumerable:!0,configurable:!0,writable:!0,value:a})}Object.defineProperty(Dt.prototype,"_events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(Dt.prototype,"_eventsCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(Dt.prototype,"_maxListeners",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),__name$1(createAbortError$1,`createAbortError`)}),kt=__exportAll$3({EventEmitter:()=>At,addAbortListener:()=>Bt,captureRejectionSymbol:()=>jt,default:()=>At,defaultMaxListeners:()=>Nt,errorMonitor:()=>Mt,getEventListeners:()=>Rt,getMaxListeners:()=>Ft,listenerCount:()=>zt,on:()=>Lt,once:()=>It,setMaxListeners:()=>Pt}),At,jt,Mt,Nt,Pt,Ft,It,Lt,Rt,zt,Bt,Vt=__esmMin(()=>{Ot(),et(),At=makeCallable(Dt),At.EventEmitter=At,jt=At.captureRejectionSymbol,Mt=At.errorMonitor,Nt=At.defaultMaxListeners,Pt=At.setMaxListeners,Ft=At.getMaxListeners,It=At.once,Lt=At.on,Rt=At.getEventListeners,zt=At.listenerCount,Bt=At.addAbortListener});Ie(),Vt(),et();const Ht=new TextEncoder;var ProcessWriteStream=class extends At{fd;writable=!0;_outGio=null;constructor(n){super(),this.fd=n;let a=getGioNamespace();if(a){let n=a.UnixOutputStream??a.OutputStream;if(n)try{this._outGio=n.new(this.fd,!1)}catch{}}}write(n){if(this._outGio)try{let a=typeof n==`string`?Ht.encode(n):n;return this._outGio.write_all(a,null),!0}catch{}return this.fd===2?Fe.error(n):Fe.log(n),!0}get isTTY(){if(wt)return wt.Terminal.is_tty(this.fd);try{let n=getGjsGlobal().imports?.gi?.GLib;if(n)return!!n.log_writer_supports_color(this.fd)}catch{}return!1}get columns(){if(wt){let[n,,a]=wt.Terminal.get_size(this.fd);if(n&&a>0)return a}try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let a=parseInt(n.getenv(`COLUMNS`)??`0`,10);if(a>0)return a}}catch{}return 80}end(){}destroy(){}get rows(){if(wt){let[n,a]=wt.Terminal.get_size(this.fd);if(n&&a>0)return a}try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let a=parseInt(n.getenv(`LINES`)??`0`,10);if(a>0)return a}}catch{}return 24}},ProcessReadStream=class extends At{fd;isRaw=!1;_gio=null;_stdinGio=null;_reading=!1;_flowing=!1;_sttyCleanupRegistered=!1;_mainLoopHeld=!1;_pendingRead=!1;constructor(n){super(),this.fd=n,this._gio=getGioNamespace()}get isTTY(){return wt?wt.Terminal.is_tty(this.fd):!1}setRawMode(n){return wt&&wt.Terminal.set_raw_mode(this.fd,n)?(this.isRaw=n,this):(this._setRawModeViaStty(n),this.isRaw=n,this)}_setRawModeViaStty(n){try{let a=globalThis.imports?.gi,S=a?.Gio??a?.Gio;if(!S)return;let C=S.SubprocessFlags?.STDIN_INHERIT??2,N=n?[`stty`,`-icanon`,`-echo`,`-icrnl`,`min`,`1`,`time`,`0`]:[`stty`,`icanon`,`echo`,`icrnl`];if(new S.SubprocessLauncher({flags:C}).spawnv(N).wait(null),n&&!this._sttyCleanupRegistered){this._sttyCleanupRegistered=!0;let n=globalThis.process;n?.once&&typeof n.once==`function`&&n.once(`exit`,()=>this._setRawModeViaStty(!1))}}catch{}}setEncoding(n){return this}resume(){return this._flowing=!0,this._gio&&this.fd===0&&!this._reading&&this._startReading(),this}pause(){if(this._flowing=!1,this._reading=!1,this._mainLoopHeld){this._mainLoopHeld=!1;let n=globalThis.imports?.gi,a=n?.GLib??n?.GLib;a?.idle_add?a.idle_add(300,()=>(this._mainLoopHeld||quitMainLoop(),!1)):quitMainLoop()}return this}read(){return null}_startReading(){if(!this._gio||this._reading)return;if(this._pendingRead){this._reading=!0,this._mainLoopHeld||(this._mainLoopHeld=!0,ensureMainLoop());return}if(this._reading=!0,this._mainLoopHeld||(this._mainLoopHeld=!0,ensureMainLoop()),!this._stdinGio){let n=this._gio.UnixInputStream??this._gio.InputStream;if(!n){this._reading=!1;return}try{this._stdinGio=n.new(this.fd,!1)}catch{this._reading=!1;return}}let loop=()=>{if(!this._reading){this._pendingRead=!1;return}this._pendingRead=!0,this._stdinGio.read_bytes_async(4096,0,null,(n,a)=>{this._pendingRead=!1;try{let S=n.read_bytes_finish(a)?.get_data?.()??null;if(S&&S.byteLength>0)this.emit(`data`,Buffer.from(S));else if(S!==null&&S.byteLength===0){this._reading=!1,this.emit(`end`);return}}catch{this._reading=!1;return}this._reading&&loop()})};loop()}};Ie(),Vt();const Ut=Date.now();var Process=class extends At{platform;arch;env;argv;argv0;execPath;pid;ppid;version;versions;title;execArgv;config;exitCode;constructor(){super(),this.platform=detectPlatform(),this.arch=detectArch(),this.env=getEnvProxy(),this.argv=getArgv(),this.argv0=this.argv[0]||`gjs`,this.execPath=getExecPath(),this.execArgv=globalThis.process?.execArgv??[],this.config=globalThis.process?.config??{target_defaults:{},variables:{}},this.pid=getPid$1(),this.ppid=detectPpid();let n=detectVersionInfo();this.version=n.version,this.versions=n.versions,this.title=n.title}cwd(){return getCwd()}chdir(n){chdir(n)}kill(n,a){return killPid(n,a)}exit(n){return this.exitCode=n??this.exitCode??0,this.emit(`exit`,this.exitCode),exitProcess(this.exitCode)}nextTick(n,...a){typeof queueMicrotask==`function`?queueMicrotask(()=>n(...a)):Promise.resolve().then(()=>n(...a))}hrtime(n){return hrtime(n)}uptime(){return(Date.now()-Ut)/1e3}memoryUsage(){return memoryUsage()}cpuUsage(n){return cpuUsage(n)}stdout=new ProcessWriteStream(1);stderr=new ProcessWriteStream(2);stdin=new ProcessReadStream(0);abort(){this.exit(1)}umask(n){return 18}emitWarning(n,a){Fe.warn(typeof n==`string`?`(${a||`Warning`}): ${n}`:n.message)}};Process.prototype.hrtime.bigint=function(){return hrtimeBigint()};const Wt=new Process;if(wt)try{let n=new wt.ResizeWatcher;n.connect(`resized`,(n,a,S)=>{Wt.stdout.emit(`resize`),Wt.stderr.emit(`resize`)}),n.start()}catch{}const Gt=Wt.platform;Wt.arch,Wt.env,Wt.argv,Wt.argv0;const Kt=Wt.execPath;Wt.pid,Wt.ppid,Wt.version,Wt.versions,Wt.cwd.bind(Wt),Wt.chdir.bind(Wt),Wt.exit.bind(Wt),Wt.nextTick.bind(Wt);const qt=Object.assign(Wt.hrtime.bind(Wt),{bigint:hrtimeBigint});Wt.uptime.bind(Wt),Wt.memoryUsage.bind(Wt),Wt.cpuUsage.bind(Wt),Wt.kill.bind(Wt),Wt.abort.bind(Wt),Wt.umask.bind(Wt),Wt.emitWarning.bind(Wt);const Jt=Wt.execArgv;Wt.config;const Yt=Wt.stdout;Wt.stderr;const Xt=Wt.stdin;et(),typeof Promise.withResolvers!=`function`&&(Promise.withResolvers=function(){let n,a;return{promise:new Promise((S,C)=>{n=S,a=C}),resolve:n,reject:a}}),initErrorV8Methods(Error),`global`in globalThis||Object.defineProperty(globalThis,"global",{value:globalThis,writable:!1,enumerable:!1,configurable:!0}),Object.defineProperty(globalThis,"process",{value:Wt,enumerable:!1,writable:!0,configurable:!0}),et(),typeof globalThis.structuredClone!=`function`&&Object.defineProperty(globalThis,"structuredClone",{value:structuredClone$1,enumerable:!0,writable:!0,configurable:!0});function getGLib(){return globalThis.imports?.gi?.GLib}const Zt=getGLib()!==void 0;var GjsifyTimeout=class{_id=null;_refed=!0;_callback;_delay;_args;_repeat;constructor(n,a,S,C){this._callback=n,this._delay=a,this._args=S,this._repeat=C,this._schedule()}_schedule(){let n=getGLib();if(!n)return;let a=n.timeout_add.bind(n);this._id=a(n.PRIORITY_DEFAULT,this._delay,()=>{try{this._callback.apply(globalThis,this._args)}catch(n){setTimeout(()=>{throw n},0)}return this._repeat?n.SOURCE_CONTINUE:(this._id=null,n.SOURCE_REMOVE)})}ref(){return this._refed=!0,this}unref(){return this._refed=!1,this}hasRef(){return this._refed}refresh(){return this._cancel(),this._schedule(),this}_cancel(){if(this._id!==null){try{getGLib()?.Source.remove(this._id)}catch{}this._id=null}}[Symbol.toPrimitive](){return this._id}[Symbol.dispose](){this._cancel()}};function removeById(n){if(n instanceof GjsifyTimeout)n._cancel();else if(typeof n==`number`)try{getGLib()?.Source.remove(n)}catch{}}if(Zt){let setT=(n,a=0,...S)=>new GjsifyTimeout(n,Math.max(0,a|0),S,!1),setI=(n,a=0,...S)=>new GjsifyTimeout(n,Math.max(0,a|0),S,!0),n=globalThis;n.setTimeout=setT,n.clearTimeout=removeById,n.setInterval=setI,n.clearInterval=removeById}function setImmediate$2(n,...a){return setTimeout(n,0,...a)}__name$1(setImmediate$2,`setImmediate`);function clearImmediate(n){clearTimeout(n)}`setImmediate`in globalThis||Object.defineProperty(globalThis,"setImmediate",{value:setImmediate$2,enumerable:!0,writable:!0,configurable:!0}),`clearImmediate`in globalThis||Object.defineProperty(globalThis,"clearImmediate",{value:clearImmediate,enumerable:!0,writable:!0,configurable:!0});var Qt=__exportAll$3({URL:()=>tn,URLSearchParams:()=>en,default:()=>nn,domainToASCII:()=>domainToASCII,domainToUnicode:()=>domainToUnicode,fileURLToPath:()=>fileURLToPath,format:()=>format$4,parse:()=>parse$4,pathToFileURL:()=>pathToFileURL,resolve:()=>resolve$3});function decodeComponent(n){try{return decodeURIComponent(n.replace(/\+/g,` `))}catch{return n}}function encodeComponent(n){return encodeURIComponent(n).replace(/%20/g,`+`)}function parse$4(n,a,S){if(typeof n!=`string`)throw TypeError(`The "url" argument must be of type string. Received type `+typeof n);let C={protocol:null,slashes:null,auth:null,host:null,port:null,hostname:null,hash:null,search:null,query:null,pathname:null,path:null,href:n},N=n.trim(),F=N.indexOf(`#`);F!==-1&&(C.hash=N.slice(F),N=N.slice(0,F));let I=N.indexOf(`?`);I!==-1&&(C.search=N.slice(I),C.query=a?Object.fromEntries(new en(N.slice(I+1))):N.slice(I+1),N=N.slice(0,I));let H=/^([a-z][a-z0-9.+-]*:)/i.exec(N);if(H&&(C.protocol=H[1].toLowerCase(),N=N.slice(C.protocol.length)),(S||C.protocol)&&N.startsWith(`//`)&&(C.slashes=!0,N=N.slice(2)),C.slashes||C.protocol&&![`javascript:`,`data:`,`mailto:`].includes(C.protocol)){let n=-1;for(let a=0;a<N.length;a++){let S=N[a];if(S===`/`||S===`\\`){n=a;break}}let a=n===-1?N:N.slice(0,n);N=n===-1?``:N.slice(n);let S=a.lastIndexOf(`@`);S===-1?parseHostPort(a,C):(C.auth=decodeURIComponent(a.slice(0,S)),parseHostPort(a.slice(S+1),C))}return C.pathname=N||(C.slashes?`/`:null),(C.pathname!==null||C.search!==null)&&(C.path=(C.pathname||``)+(C.search||``)),C.href=format$4(C),C}function parseHostPort(n,a){if(!n)return;let S=n.indexOf(`[`);if(S!==-1){let C=n.indexOf(`]`,S);if(C!==-1){let N=n.slice(C+1);N.startsWith(`:`)&&(a.port=N.slice(1)),a.hostname=n.slice(S,C+1),a.host=a.hostname+(a.port?`:`+a.port:``);return}}let C=n.lastIndexOf(`:`);if(C!==-1){let S=n.slice(C+1);/^\d*$/.test(S)?(a.port=S||null,a.hostname=n.slice(0,C).toLowerCase()):a.hostname=n.toLowerCase()}else a.hostname=n.toLowerCase();a.host=a.hostname+(a.port?`:`+a.port:``)}function format$4(n){if(typeof n==`string`)return n;if(n instanceof tn)return n.href;let a=n,S=``;if(a.protocol&&(S+=a.protocol),(a.slashes||a.protocol&&![`javascript:`,`data:`,`mailto:`].includes(a.protocol||``))&&(S+=`//`),a.auth&&(S+=encodeURIComponent(a.auth)+`@`),a.host?S+=a.host:(a.hostname&&(S+=a.hostname),a.port&&(S+=`:`+a.port)),a.pathname&&(S+=a.pathname),a.search)S+=a.search;else if(a.query&&typeof a.query==`object`){let n=new en(a.query).toString();n&&(S+=`?`+n)}return a.hash&&(S+=a.hash),S}function resolve$3(n,a){return new tn(a,new tn(n,`resolve://`)).href.replace(/^resolve:\/\//,``)}function fileURLToPath(n){if(typeof n==`string`&&(n=new tn(n)),!(n instanceof tn))throw TypeError(`The "url" argument must be of type string or URL. Received type `+typeof n);if(n.protocol!==`file:`)throw TypeError(`The URL must be of scheme file`);if(n.hostname!==``&&n.hostname!==`localhost`)throw TypeError(`File URL host must be "localhost" or empty on linux`);let a=n.pathname;for(let n=0;n<a.length;n++)if(a[n]===`%`){let S=a.codePointAt(n+2)|32;if(a[n+1]===`2`&&S===102)throw TypeError(`File URL path must not include encoded / characters`)}return decodeURIComponent(a)}function pathToFileURL(n){let a=n;if(n[0]!==`/`)if(typeof globalThis.process?.cwd==`function`)a=globalThis.process.cwd()+`/`+n;else try{Z?.get_current_dir&&(a=Z.get_current_dir()+`/`+n)}catch{}return new tn(`file://`+encodePathForURL(a))}function encodePathForURL(n){let a=``;for(let S=0;S<n.length;S++){let C=n[S];C>=`a`&&C<=`z`||C>=`A`&&C<=`Z`||C>=`0`&&C<=`9`||C===`/`||C===`-`||C===`_`||C===`.`||C===`~`||C===`:`||C===`@`||C===`!`?a+=C:a+=encodeURIComponent(C)}return a}function domainToASCII(n){try{return new tn(`http://${n}`).hostname}catch{return``}}function domainToUnicode(n){try{return new tn(`http://${n}`).hostname}catch{return``}}var $t,en,tn,nn,rn=__esmMin(()=>{se(),$t=Z.UriFlags.HAS_PASSWORD|Z.UriFlags.ENCODED|Z.UriFlags.SCHEME_NORMALIZE,en=class URLSearchParams{_entries=[];constructor(n){if(n)if(typeof n==`string`){let a=n.startsWith(`?`)?n.slice(1):n;if(a)for(let n of a.split(`&`)){let a=n.indexOf(`=`);a===-1?this._entries.push([decodeComponent(n),``]):this._entries.push([decodeComponent(n.slice(0,a)),decodeComponent(n.slice(a+1))])}}else if(Array.isArray(n))for(let[a,S]of n)this._entries.push([String(a),String(S)]);else if(n instanceof URLSearchParams)this._entries=n._entries.map(([n,a])=>[n,a]);else for(let a of Object.keys(n))this._entries.push([a,String(n[a])])}get(n){for(let[a,S]of this._entries)if(a===n)return S;return null}getAll(n){return this._entries.filter(([a])=>a===n).map(([,n])=>n)}set(n,a){let S=!1;if(this._entries=this._entries.filter(([a])=>a===n?S?!1:(S=!0,!0):!0),S){for(let S=0;S<this._entries.length;S++)if(this._entries[S][0]===n){this._entries[S][1]=a;break}}else this._entries.push([n,a])}has(n){return this._entries.some(([a])=>a===n)}delete(n){this._entries=this._entries.filter(([a])=>a!==n)}append(n,a){this._entries.push([n,a])}sort(){this._entries.sort((n,a)=>n[0]<a[0]?-1:+(n[0]>a[0]))}toString(){return this._entries.map(([n,a])=>encodeComponent(n)+`=`+encodeComponent(a)).join(`&`)}forEach(n){for(let[a,S]of this._entries)n(S,a,this)}*entries(){yield*this._entries}*keys(){for(let[n]of this._entries)yield n}*values(){for(let[,n]of this._entries)yield n}[Symbol.iterator](){return this.entries()}get size(){return this._entries.length}},tn=class URL{#e;#t;constructor(n,a){let S=n instanceof URL?n.href:String(n);try{if(a!==void 0){let n=a instanceof URL?a.href:String(a),C=Z.Uri.parse(n,$t);this.#e=C.parse_relative(S,$t)}else this.#e=Z.Uri.parse(S,$t)}catch{throw TypeError(`Invalid URL: ${S}`)}if(!this.#e)throw TypeError(`Invalid URL: ${S}`);this.#t=new en(this.#e.get_query()||``)}get protocol(){return this.#e.get_scheme()+`:`}get hostname(){return(this.#e.get_host()||``).toLowerCase()}get port(){let n=this.#e.get_port();if(n===-1)return``;let a=this.#e.get_scheme();return(a===`http`||a===`ws`)&&n===80||(a===`https`||a===`wss`)&&n===443||a===`ftp`&&n===21?``:String(n)}get host(){let n=this.hostname,a=this.port;return a?`${n}:${a}`:n}get pathname(){return this.#e.get_path()||`/`}get search(){let n=this.#e.get_query();return n?`?`+n:``}get hash(){let n=this.#e.get_fragment();return n?`#`+n:``}get origin(){let n=this.protocol;return n===`http:`||n===`https:`||n===`ftp:`?`${n}//${this.host}`:`null`}get username(){return this.#e.get_user()||``}get password(){return this.#e.get_password()||``}get href(){let n=this.protocol,a=this.#e.get_scheme();(a===`http`||a===`https`||a===`ftp`||a===`file`||a===`ws`||a===`wss`||this.hostname)&&(n+=`//`);let S=this.username,C=this.password;S&&(n+=S,C&&(n+=`:`+C),n+=`@`),n+=this.hostname,this.port&&(n+=`:`+this.port);let N=this.pathname;return n+=N,n+=this.search,n+=this.hash,n}get searchParams(){return this.#t}toString(){return this.href}toJSON(){return this.href}static _objectURLPaths=new Map;static _objectURLCounter=0;static createObjectURL(n){let a=n?._tmpPath;if(typeof a==`string`&&a.length>0){let n=`file://${a}`;return URL._objectURLPaths.set(n,a),n}return`file:///dev/null`}static revokeObjectURL(n){let a=URL._objectURLPaths.get(n);if(a){try{Z.unlink(a)}catch{}URL._objectURLPaths.delete(n)}}},__name$1(parse$4,`parse`),__name$1(format$4,`format`),__name$1(resolve$3,`resolve`),nn={URL:tn,URLSearchParams:en,parse:parse$4,format:format$4,resolve:resolve$3,fileURLToPath,pathToFileURL,domainToASCII,domainToUnicode}});rn(),typeof globalThis.URL!=`function`&&Object.defineProperty(globalThis,"URL",{value:tn,enumerable:!1,writable:!0,configurable:!0}),typeof globalThis.URLSearchParams!=`function`&&Object.defineProperty(globalThis,"URLSearchParams",{value:en,enumerable:!1,writable:!0,configurable:!0});var an=__exportAll$3({PerformanceEntry:()=>ln,PerformanceMark:()=>dn,PerformanceMeasure:()=>fn,PerformanceObserver:()=>cn,PerformanceObserverEntryList:()=>un,default:()=>pn,eventLoopUtilization:()=>eventLoopUtilization,monitorEventLoopDelay:()=>monitorEventLoopDelay,performance:()=>on,timerify:()=>timerify});function eventLoopUtilization(n,a){return{idle:0,active:0,utilization:0}}function timerify(n){let wrapped=function(...a){let S=on.now(),C=n.apply(this,a);return on.now()-S,C};return Object.defineProperty(wrapped,"name",{value:n.name}),wrapped}function monitorEventLoopDelay(n){let a=new Map;return{enable(){},disable(){},reset(){},percentile(n){return 0},get min(){return 0},get max(){return 0},get mean(){return 0},get stddev(){return 0},get percentiles(){return a}}}var on,PerformanceObserverStub,PerformanceEntryStub,PerformanceObserverEntryListStub,sn,cn,ln,un,dn,fn,pn,mn=__esmMin(()=>{if(globalThis.performance)on=globalThis.performance;else{let n,_now;try{let a=globalThis.imports?.gi?.GLib;if(!a)throw Error(`GJS imports.gi.GLib not available`);n=a.get_monotonic_time(),_now=()=>(a.get_monotonic_time()-n)/1e3}catch{let a=Date.now();n=0,_now=()=>Date.now()-a}let a=[],S=Date.now()-_now();on={timeOrigin:S,now:_now,mark(n){let S={name:n,entryType:`mark`,startTime:_now(),duration:0};return a.push(S),S},measure(n,S,C){let N=0,F=_now();if(S){let n=a.find(n=>n.entryType===`mark`&&n.name===S);n&&(N=n.startTime)}if(C){let n=a.find(n=>n.entryType===`mark`&&n.name===C);n&&(F=n.startTime)}let I={name:n,entryType:`measure`,startTime:N,duration:F-N};return a.push(I),I},getEntries(){return[...a]},getEntriesByName(n){return a.filter(a=>a.name===n)},getEntriesByType(n){return a.filter(a=>a.entryType===n)},clearMarks(n){for(let S=a.length-1;S>=0;S--)a[S].entryType===`mark`&&(!n||a[S].name===n)&&a.splice(S,1)},clearMeasures(n){for(let S=a.length-1;S>=0;S--)a[S].entryType===`measure`&&(!n||a[S].name===n)&&a.splice(S,1)},clearResourceTimings(){},setResourceTimingBufferSize(){},toJSON(){return{timeOrigin:S}}}}PerformanceObserverStub=class{_callback;constructor(n){this._callback=n}observe(n){}disconnect(){}takeRecords(){return[]}},PerformanceEntryStub=class{name=``;entryType=``;startTime=0;duration=0;toJSON(){return{name:this.name,entryType:this.entryType,startTime:this.startTime,duration:this.duration}}},PerformanceObserverEntryListStub=class{getEntries(){return[]}getEntriesByName(n){return[]}getEntriesByType(n){return[]}},sn=globalThis,cn=sn.PerformanceObserver||PerformanceObserverStub,ln=sn.PerformanceEntry||PerformanceEntryStub,un=sn.PerformanceObserverEntryList||PerformanceObserverEntryListStub,dn=sn.PerformanceMark||class PerformanceMark extends PerformanceEntryStub{},fn=sn.PerformanceMeasure||class PerformanceMeasure extends PerformanceEntryStub{},pn={performance:on,PerformanceObserver:cn,PerformanceEntry:ln,PerformanceObserverEntryList:un,PerformanceMark:dn,PerformanceMeasure:fn,eventLoopUtilization,timerify,monitorEventLoopDelay}});mn();const hn=globalThis;globalThis.performance===void 0&&(hn.performance=on),typeof hn.PerformanceObserver!=`function`&&(hn.PerformanceObserver=cn);const gn={IndexSizeError:1,HierarchyRequestError:3,WrongDocumentError:4,InvalidCharacterError:5,NoModificationAllowedError:7,NotFoundError:8,NotSupportedError:9,InUseAttributeError:10,InvalidStateError:11,SyntaxError:12,InvalidModificationError:13,NamespaceError:14,InvalidAccessError:15,TypeMismatchError:17,SecurityError:18,NetworkError:19,AbortError:20,URLMismatchError:21,QuotaExceededError:22,TimeoutError:23,InvalidNodeTypeError:24,DataCloneError:25};var _DOMExceptionPolyfill=class extends Error{code;constructor(n,a){super(n),this.name=a||`Error`,this.code=Object.hasOwn(gn,this.name)?gn[this.name]:0}};const _n=globalThis.DOMException===void 0?_DOMExceptionPolyfill:globalThis.DOMException;Ie();const vn=Symbol(`type`),yn=Symbol(`bubbles`),bn=Symbol(`cancelable`),xn=Symbol(`composed`),Sn=Symbol(`target`),Cn=Symbol(`currentTarget`),wn=Symbol(`eventPhase`),Tn=Symbol(`defaultPrevented`),En=Symbol(`isTrusted`),Q=Symbol(`timeStamp`),Dn=Symbol(`stop`),On=Symbol(`immediateStop`),kn=Symbol(`dispatching`),An=Symbol(`inPassiveListener`);var Event=class{[vn];[yn];[bn];[xn];[Sn]=null;[Cn]=null;[wn]=0;[Tn]=!1;[En]=!1;[Q];[Dn]=!1;[On]=!1;[kn]=!1;[An]=!1;get type(){return this[vn]}get bubbles(){return this[yn]}get cancelable(){return this[bn]}get composed(){return this[xn]}get target(){return this[Sn]}get currentTarget(){return this[Cn]}get eventPhase(){return this[wn]}get defaultPrevented(){return this[Tn]}get timeStamp(){return this[Q]}get cancelBubble(){return this[Dn]}set cancelBubble(n){n&&this.stopPropagation()}get returnValue(){return!this[Tn]}set returnValue(n){n||this.preventDefault()}get srcElement(){return this[Sn]}static NONE=0;static CAPTURING_PHASE=1;static AT_TARGET=2;static BUBBLING_PHASE=3;get[Symbol.toStringTag](){return`Event`}constructor(n,a){this[vn]=n,this[yn]=a?.bubbles??!1,this[bn]=a?.cancelable??!1,this[xn]=a?.composed??!1,this[Q]=Date.now(),Object.defineProperty(this,"isTrusted",{get:()=>this[En],enumerable:!0,configurable:!1})}composedPath(){return this[Cn]?[this[Cn]]:[]}preventDefault(){this[bn]&&!this[An]&&(this[Tn]=!0)}stopPropagation(){this[Dn]=!0}stopImmediatePropagation(){this[Dn]=!0,this[On]=!0}},EventTarget=class{_listeners=new Map;get[Symbol.toStringTag](){return`EventTarget`}addEventListener(n,a,S){if(a===null)return;let C=typeof S==`boolean`?S:S?.capture??!1,N=typeof S==`object`?S?.once??!1:!1,F=typeof S==`object`?S?.passive??!1:!1,I=this._listeners.get(n);I||(I=[],this._listeners.set(n,I));for(let n of I)if(n.listener===a&&n.capture===C)return;let H={listener:a,capture:C,once:N,passive:F,removed:!1};I.push(H),typeof S==`object`&&S?.signal&&S.signal.addEventListener(`abort`,()=>{this.removeEventListener(n,a,{capture:C})},{once:!0})}removeEventListener(n,a,S){if(a===null)return;let C=typeof S==`boolean`?S:S?.capture??!1,N=this._listeners.get(n);if(!N)return;let F=N.findIndex(n=>n.listener===a&&n.capture===C);F!==-1&&(N[F].removed=!0,N.splice(F,1),N.length===0&&this._listeners.delete(n))}dispatchEvent(n){let a=n;if(a[kn])throw new _n(`The event is already being dispatched.`,`InvalidStateError`);a[kn]=!0,a[Sn]=this,a[Cn]=this,a[wn]=Event.AT_TARGET;let S=this._listeners.get(n.type);if(S){let C=[...S];for(let S of C)if(!S.removed){if(a[On]||a[Dn])break;S.once&&this.removeEventListener(n.type,S.listener,{capture:S.capture});try{S.passive&&(a[An]=!0),typeof S.listener==`function`?S.listener.call(this,n):typeof S.listener.handleEvent==`function`&&S.listener.handleEvent.call(S.listener,n)}catch(n){Fe.error(n)}finally{a[An]=!1}}}return a[wn]=Event.NONE,a[Cn]=null,a[kn]=!1,!n.defaultPrevented}};for(let[n,a]of[[`NONE`,0],[`CAPTURING_PHASE`,1],[`AT_TARGET`,2],[`BUBBLING_PHASE`,3]])Object.defineProperty(Event.prototype,n,{value:a,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(Event,n,{value:a,writable:!1,enumerable:!0,configurable:!1});const jn=Symbol(`abort`),Mn=Symbol(`internal`);var Nn=class AbortSignal extends EventTarget{#e=!1;reason=void 0;onabort=null;constructor(n){if(super(),n!==Mn)throw TypeError(`Illegal constructor.`)}get aborted(){if(!(this instanceof AbortSignal))throw TypeError(`'get aborted' called on an object that is not a valid instance of AbortSignal.`);return this.#e}get[Symbol.toStringTag](){return`AbortSignal`}throwIfAborted(){if(this.#e)throw this.reason}[jn](n){if(this.#e)return;this.#e=!0,this.reason=n??new _n(`The operation was aborted.`,`AbortError`);let a=new Event(`abort`);typeof this.onabort==`function`&&this.onabort.call(this,a),this.dispatchEvent(a)}static abort(n){let a=new AbortSignal(Mn);return a[jn](n),a}static timeout(n){let a=new AbortSignal(Mn);return setTimeout(()=>{a[jn](new _n(`The operation timed out.`,`TimeoutError`))},n),a}static any(n){let a=new AbortSignal(Mn);for(let S of n)if(S.aborted)return a[jn](S.reason),a;let onAbort=()=>{if(!a.aborted){let S=n.find(n=>n.aborted);a[jn](S?.reason)}};for(let a of n)a.addEventListener(`abort`,onAbort,{once:!0});return a}},Pn=class AbortController{signal;constructor(){this.signal=new Nn(Mn)}abort(n){if(!(this instanceof AbortController))throw TypeError(`'abort' called on an object that is not a valid instance of AbortController.`);this.signal[jn](n)}};const Fn=globalThis;globalThis.AbortController===void 0&&(Fn.AbortController=Pn),globalThis.AbortSignal===void 0&&(Fn.AbortSignal=Nn);const In=Symbol(`kState`),Ln=Symbol(`kType`);function isBrandCheck(n){return a=>typeof a==`object`&&!!a&&a[In]!==void 0&&a[Ln]===n}function dequeueValue(n){let{value:a,size:S}=n[In].queue.shift();return n[In].queueTotalSize=Math.max(0,n[In].queueTotalSize-S),a}function resetQueue(n){n[In].queue=[],n[In].queueTotalSize=0}function peekQueueValue(n){return n[In].queue[0].value}function enqueueValueWithSize(n,a,S){if(S=+S,typeof S!=`number`||S<0||Number.isNaN(S)||S===1/0)throw RangeError(`Invalid size: ${S}`);n[In].queue.push({value:a,size:S}),n[In].queueTotalSize+=S}function extractHighWaterMark(n,a){if(n===void 0)return a;if(n=+n,typeof n!=`number`||Number.isNaN(n)||n<0)throw RangeError(`Invalid highWaterMark: ${n}`);return n}function extractSizeAlgorithm(n){if(n===void 0)return()=>1;if(typeof n!=`function`)throw TypeError(`strategy.size must be a function`);return n}function transferArrayBuffer(n){return typeof ArrayBuffer.prototype.transfer==`function`?n.transfer():n.slice(0)}function isDetachedBuffer(n){if(typeof SharedArrayBuffer<`u`&&n instanceof SharedArrayBuffer||n.byteLength!==0)return!1;try{return n.slice(0,0),!1}catch{return!0}}function typedArrayConstructorByTag(n){switch(n){case`Int8Array`:return Int8Array;case`Uint8Array`:return Uint8Array;case`Uint8ClampedArray`:return Uint8ClampedArray;case`Int16Array`:return Int16Array;case`Uint16Array`:return Uint16Array;case`Int32Array`:return Int32Array;case`Uint32Array`:return Uint32Array;case`Float32Array`:return Float32Array;case`Float64Array`:return Float64Array;case`BigInt64Array`:return typeof BigInt64Array<`u`?BigInt64Array:void 0;case`BigUint64Array`:return typeof BigUint64Array<`u`?BigUint64Array:void 0;default:return}}function elementSizeByTag(n){switch(n){case`Int8Array`:case`Uint8Array`:case`Uint8ClampedArray`:return 1;case`Int16Array`:case`Uint16Array`:return 2;case`Int32Array`:case`Uint32Array`:case`Float32Array`:return 4;case`Float64Array`:case`BigInt64Array`:case`BigUint64Array`:return 8;default:return 1}}function setPromiseHandled(n){n.then(()=>{},()=>{})}function createPromiseCallback(n,a,S){if(typeof a!=`function`)throw TypeError(`${n} must be a function`);return async(...n)=>a.call(S,...n)}async function nonOpFlush(){}function nonOpStart(){}async function nonOpPull(){}async function nonOpCancel(){}async function nonOpWrite(){}const Rn={__proto__:Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype),next:void 0,return:void 0};function createAsyncFromSyncIterator(n){let a={[Symbol.iterator]:()=>n.iterator},S=async function*(){return yield*a}();return{iterator:S,nextMethod:S.next,done:!1}}function getIterator(n,a=`sync`,S){if(S===void 0)if(a===`async`){if(S=n[Symbol.asyncIterator],S==null){let a=n[Symbol.iterator];if(a===void 0)throw TypeError(`Object is not iterable`);return createAsyncFromSyncIterator(getIterator(n,`sync`,a))}}else S=n[Symbol.iterator];if(S===void 0)throw TypeError(`Object is not iterable`);let C=S.call(n);if(typeof C!=`object`||!C)throw TypeError(`The iterator method must return an object`);return{iterator:C,nextMethod:C.next,done:!1}}function iteratorNext(n,a){let S;if(S=a===void 0?n.nextMethod.call(n.iterator):n.nextMethod.call(n.iterator,a),typeof S!=`object`||!S)throw TypeError(`The iterator.next() method must return an object`);return S}const zn=typeof globalThis.AbortController==`function`?globalThis.AbortController:class AbortControllerShim{signal={aborted:!1,reason:void 0,addEventListener(){},removeEventListener(){}};abort(n){this.signal.aborted=!0,this.signal.reason=n}},Bn=Symbol(`kAbort`),Vn=Symbol(`kCloseSentinel`),Hn=Symbol(`kError`),Un=Symbol(`kSkipThrow`);var WritableStream=class{[Ln]=`WritableStream`;[In];constructor(n={},a={}){if(n!=null&&typeof n!=`object`)throw TypeError(`sink must be an object`);if(a!=null&&typeof a!=`object`)throw TypeError(`strategy must be an object`);let S=n?.type;if(S!==void 0)throw RangeError(`Invalid type: ${S}`);this[In]=createWritableStreamState();let C=extractSizeAlgorithm(a?.size),N=extractHighWaterMark(a?.highWaterMark,1);setupWritableStreamDefaultControllerFromSink(this,n,N,C)}get locked(){if(!Wn(this))throw TypeError(`Invalid this`);return isWritableStreamLocked(this)}abort(n){return Wn(this)?isWritableStreamLocked(this)?Promise.reject(TypeError(`WritableStream is locked`)):writableStreamAbort(this,n):Promise.reject(TypeError(`Invalid this`))}close(){return Wn(this)?isWritableStreamLocked(this)?Promise.reject(TypeError(`WritableStream is locked`)):writableStreamCloseQueuedOrInFlight(this)?Promise.reject(TypeError(`Failure closing WritableStream`)):writableStreamClose(this):Promise.reject(TypeError(`Invalid this`))}getWriter(){if(!Wn(this))throw TypeError(`Invalid this`);return new WritableStreamDefaultWriter(this)}get[Symbol.toStringTag](){return`WritableStream`}},WritableStreamDefaultWriter=class{[Ln]=`WritableStreamDefaultWriter`;[In];constructor(n){if(!Wn(n))throw TypeError(`Expected a WritableStream`);this[In]={stream:void 0,close:{promise:void 0,resolve:void 0,reject:void 0},ready:{promise:void 0,resolve:void 0,reject:void 0}},setupWritableStreamDefaultWriter(this,n)}get closed(){return Gn(this)?this[In].close.promise:Promise.reject(TypeError(`Invalid this`))}get desiredSize(){if(!Gn(this))throw TypeError(`Invalid this`);if(this[In].stream===void 0)throw TypeError(`Writer is not bound to a WritableStream`);return writableStreamDefaultWriterGetDesiredSize(this)}get ready(){return Gn(this)?this[In].ready.promise:Promise.reject(TypeError(`Invalid this`))}abort(n){return Gn(this)?this[In].stream===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamDefaultWriterAbort(this,n):Promise.reject(TypeError(`Invalid this`))}close(){if(!Gn(this))return Promise.reject(TypeError(`Invalid this`));let{stream:n}=this[In];return n===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamCloseQueuedOrInFlight(n)?Promise.reject(TypeError(`Failure to close WritableStream`)):writableStreamDefaultWriterClose(this)}releaseLock(){if(!Gn(this))throw TypeError(`Invalid this`);let{stream:n}=this[In];n!==void 0&&writableStreamDefaultWriterRelease(this)}write(n){return Gn(this)?this[In].stream===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamDefaultWriterWrite(this,n):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`WritableStreamDefaultWriter`}},WritableStreamDefaultController=class{[Ln]=`WritableStreamDefaultController`;[In];constructor(n){if(n!==Un)throw TypeError(`Illegal constructor`)}[Bn](n){let a=this[In].abortAlgorithm(n);return writableStreamDefaultControllerClearAlgorithms(this),a}[Hn](){resetQueue(this)}get signal(){if(!Kn(this))throw TypeError(`Invalid this`);return this[In].abortController.signal}error(n){if(!Kn(this))throw TypeError(`Invalid this`);this[In].stream[In].state===`writable`&&writableStreamDefaultControllerError(this,n)}get[Symbol.toStringTag](){return`WritableStreamDefaultController`}};const Wn=isBrandCheck(`WritableStream`),Gn=isBrandCheck(`WritableStreamDefaultWriter`),Kn=isBrandCheck(`WritableStreamDefaultController`);function createEmptyPromiseRecord(){return{promise:void 0,resolve:void 0,reject:void 0}}function createWritableStreamState(){return{close:Promise.withResolvers(),closeRequest:createEmptyPromiseRecord(),inFlightWriteRequest:createEmptyPromiseRecord(),inFlightCloseRequest:createEmptyPromiseRecord(),pendingAbortRequest:{abort:createEmptyPromiseRecord(),reason:void 0,wasAlreadyErroring:!1},backpressure:!1,controller:void 0,state:`writable`,storedError:void 0,writeRequests:[],writer:void 0}}function isWritableStreamLocked(n){return n[In].writer!==void 0}function setupWritableStreamDefaultWriter(n,a){if(isWritableStreamLocked(a))throw TypeError(`WritableStream is locked`);switch(n[In].stream=a,a[In].writer=n,a[In].state){case`writable`:!writableStreamCloseQueuedOrInFlight(a)&&a[In].backpressure?n[In].ready=Promise.withResolvers():n[In].ready={promise:Promise.resolve(),resolve:void 0,reject:void 0},n[In].close=Promise.withResolvers();break;case`erroring`:n[In].ready={promise:Promise.reject(a[In].storedError),resolve:void 0,reject:void 0},setPromiseHandled(n[In].ready.promise),n[In].close=Promise.withResolvers();break;case`closed`:n[In].ready={promise:Promise.resolve(),resolve:void 0,reject:void 0},n[In].close={promise:Promise.resolve(),resolve:void 0,reject:void 0};break;default:n[In].ready={promise:Promise.reject(a[In].storedError),resolve:void 0,reject:void 0},n[In].close={promise:Promise.reject(a[In].storedError),resolve:void 0,reject:void 0},setPromiseHandled(n[In].ready.promise),setPromiseHandled(n[In].close.promise)}}function writableStreamAbort(n,a){let{state:S,controller:C}=n[In];if(S===`closed`||S===`errored`)return Promise.resolve();if(C[In].abortController.abort(a),n[In].pendingAbortRequest.abort.promise!==void 0)return n[In].pendingAbortRequest.abort.promise;let N=!1;S===`erroring`&&(N=!0,a=void 0);let F=Promise.withResolvers();return n[In].pendingAbortRequest={abort:F,reason:a,wasAlreadyErroring:N},N||writableStreamStartErroring(n,a),F.promise}function writableStreamClose(n){let{state:a,writer:S,backpressure:C,controller:N}=n[In];if(a===`closed`||a===`errored`)return Promise.reject(TypeError(`WritableStream is closed`));n[In].closeRequest=Promise.withResolvers();let{promise:F}=n[In].closeRequest;return S!==void 0&&C&&a===`writable`&&S[In].ready.resolve?.(),writableStreamDefaultControllerClose(N),F}function writableStreamUpdateBackpressure(n,a){let{writer:S}=n[In];S!==void 0&&n[In].backpressure!==a&&(a?S[In].ready=Promise.withResolvers():S[In].ready.resolve?.()),n[In].backpressure=a}function writableStreamStartErroring(n,a){let{controller:S,writer:C}=n[In];n[In].state=`erroring`,n[In].storedError=a,C!==void 0&&writableStreamDefaultWriterEnsureReadyPromiseRejected(C,a),!writableStreamHasOperationMarkedInFlight(n)&&S[In].started&&writableStreamFinishErroring(n)}function writableStreamRejectCloseAndClosedPromiseIfNeeded(n){n[In].closeRequest.promise!==void 0&&(n[In].closeRequest.reject?.(n[In].storedError),n[In].closeRequest={promise:void 0,resolve:void 0,reject:void 0}),setPromiseHandled(n[In].close.promise),n[In].close.reject?.(n[In].storedError);let{writer:a}=n[In];a!==void 0&&(setPromiseHandled(a[In].close.promise),a[In].close.reject?.(n[In].storedError))}function writableStreamMarkFirstWriteRequestInFlight(n){let a=n[In].writeRequests.shift();n[In].inFlightWriteRequest=a}function writableStreamMarkCloseRequestInFlight(n){n[In].inFlightCloseRequest=n[In].closeRequest,n[In].closeRequest={promise:void 0,resolve:void 0,reject:void 0}}function writableStreamHasOperationMarkedInFlight(n){return n[In].inFlightWriteRequest.promise!==void 0||n[In].inFlightCloseRequest.promise!==void 0}function writableStreamFinishInFlightWriteWithError(n,a){n[In].inFlightWriteRequest.reject?.(a),n[In].inFlightWriteRequest={promise:void 0,resolve:void 0,reject:void 0},writableStreamDealWithRejection(n,a)}function writableStreamFinishInFlightWrite(n){n[In].inFlightWriteRequest.resolve?.(),n[In].inFlightWriteRequest={promise:void 0,resolve:void 0,reject:void 0}}function writableStreamFinishInFlightCloseWithError(n,a){n[In].inFlightCloseRequest.reject?.(a),n[In].inFlightCloseRequest={promise:void 0,resolve:void 0,reject:void 0},n[In].pendingAbortRequest.abort.promise!==void 0&&(n[In].pendingAbortRequest.abort.reject?.(a),n[In].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1}),writableStreamDealWithRejection(n,a)}function writableStreamFinishInFlightClose(n){n[In].inFlightCloseRequest.resolve?.(),n[In].inFlightCloseRequest={promise:void 0,resolve:void 0,reject:void 0},n[In].state===`erroring`&&(n[In].storedError=void 0,n[In].pendingAbortRequest.abort.promise!==void 0&&(n[In].pendingAbortRequest.abort.resolve?.(),n[In].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1})),n[In].state=`closed`,n[In].writer!==void 0&&n[In].writer[In].close.resolve?.(),n[In].close.resolve?.()}function writableStreamFinishErroring(n){n[In].state=`errored`,n[In].controller[Hn]();let a=n[In].storedError;for(let S of n[In].writeRequests)S.reject?.(a);if(n[In].writeRequests=[],n[In].pendingAbortRequest.abort.promise===void 0){writableStreamRejectCloseAndClosedPromiseIfNeeded(n);return}let S=n[In].pendingAbortRequest;if(n[In].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1},S.wasAlreadyErroring){S.abort.reject?.(a),writableStreamRejectCloseAndClosedPromiseIfNeeded(n);return}n[In].controller[Bn](S.reason).then(()=>{S.abort.resolve?.(),writableStreamRejectCloseAndClosedPromiseIfNeeded(n)},a=>{S.abort.reject?.(a),writableStreamRejectCloseAndClosedPromiseIfNeeded(n)})}function writableStreamDealWithRejection(n,a){if(n[In].state===`writable`){writableStreamStartErroring(n,a);return}writableStreamFinishErroring(n)}function writableStreamCloseQueuedOrInFlight(n){return n[In].closeRequest.promise!==void 0||n[In].inFlightCloseRequest.promise!==void 0}function writableStreamAddWriteRequest(n){let{promise:a,resolve:S,reject:C}=Promise.withResolvers();return n[In].writeRequests.push({promise:a,resolve:S,reject:C}),a}function writableStreamDefaultWriterWrite(n,a){let{stream:S}=n[In],{controller:C}=S[In],N=writableStreamDefaultControllerGetChunkSize(C,a);if(S!==n[In].stream)return Promise.reject(TypeError(`Mismatched WritableStreams`));let{state:F}=S[In];if(F===`errored`)return Promise.reject(S[In].storedError);if(writableStreamCloseQueuedOrInFlight(S)||F===`closed`)return Promise.reject(TypeError(`WritableStream is closed`));if(F===`erroring`)return Promise.reject(S[In].storedError);let I=writableStreamAddWriteRequest(S);return writableStreamDefaultControllerWrite(C,a,N),I}function writableStreamDefaultWriterRelease(n){let{stream:a}=n[In],S=TypeError(`Writer has been released`);writableStreamDefaultWriterEnsureReadyPromiseRejected(n,S),writableStreamDefaultWriterEnsureClosedPromiseRejected(n,S),a[In].writer=void 0,n[In].stream=void 0}function writableStreamDefaultWriterGetDesiredSize(n){let{stream:a}=n[In];switch(a[In].state){case`errored`:case`erroring`:return null;case`closed`:return 0}return writableStreamDefaultControllerGetDesiredSize(a[In].controller)}function writableStreamDefaultWriterEnsureReadyPromiseRejected(n,a){n[In].ready.reject?(n[In].ready.reject(a),n[In].ready.resolve=void 0,n[In].ready.reject=void 0):n[In].ready={promise:Promise.reject(a),resolve:void 0,reject:void 0},setPromiseHandled(n[In].ready.promise)}function writableStreamDefaultWriterEnsureClosedPromiseRejected(n,a){n[In].close.reject?(n[In].close.reject(a),n[In].close.resolve=void 0,n[In].close.reject=void 0):n[In].close={promise:Promise.reject(a),resolve:void 0,reject:void 0},setPromiseHandled(n[In].close.promise)}function writableStreamDefaultWriterCloseWithErrorPropagation(n){let{stream:a}=n[In],{state:S}=a[In];return writableStreamCloseQueuedOrInFlight(a)||S===`closed`?Promise.resolve():S===`errored`?Promise.reject(a[In].storedError):writableStreamDefaultWriterClose(n)}function writableStreamDefaultWriterClose(n){return writableStreamClose(n[In].stream)}function writableStreamDefaultWriterAbort(n,a){return writableStreamAbort(n[In].stream,a)}function writableStreamDefaultControllerWrite(n,a,S){try{enqueueValueWithSize(n,a,S)}catch(a){writableStreamDefaultControllerErrorIfNeeded(n,a);return}let{stream:C}=n[In];!writableStreamCloseQueuedOrInFlight(C)&&C[In].state===`writable`&&writableStreamUpdateBackpressure(C,writableStreamDefaultControllerGetBackpressure(n)),writableStreamDefaultControllerAdvanceQueueIfNeeded(n)}function writableStreamDefaultControllerProcessWrite(n,a){let{stream:S,writeAlgorithm:C}=n[In];writableStreamMarkFirstWriteRequestInFlight(S),C(a,n).then(()=>{writableStreamFinishInFlightWrite(S);let{state:a}=S[In];dequeueValue(n),!writableStreamCloseQueuedOrInFlight(S)&&a===`writable`&&writableStreamUpdateBackpressure(S,writableStreamDefaultControllerGetBackpressure(n)),writableStreamDefaultControllerAdvanceQueueIfNeeded(n)},a=>{S[In].state===`writable`&&writableStreamDefaultControllerClearAlgorithms(n),writableStreamFinishInFlightWriteWithError(S,a)})}function writableStreamDefaultControllerProcessClose(n){let{closeAlgorithm:a,queue:S,stream:C}=n[In];writableStreamMarkCloseRequestInFlight(C),dequeueValue(n);let N=a();writableStreamDefaultControllerClearAlgorithms(n),N.then(()=>writableStreamFinishInFlightClose(C),n=>writableStreamFinishInFlightCloseWithError(C,n))}function writableStreamDefaultControllerGetDesiredSize(n){return n[In].highWaterMark-n[In].queueTotalSize}function writableStreamDefaultControllerGetChunkSize(n,a){let{stream:S,sizeAlgorithm:C}=n[In];if(C===void 0)return 1;try{return C(a)}catch(a){return writableStreamDefaultControllerErrorIfNeeded(n,a),1}}function writableStreamDefaultControllerErrorIfNeeded(n,a){n[In].stream[In].state===`writable`&&writableStreamDefaultControllerError(n,a)}function writableStreamDefaultControllerError(n,a){writableStreamDefaultControllerClearAlgorithms(n),writableStreamStartErroring(n[In].stream,a)}function writableStreamDefaultControllerClose(n){enqueueValueWithSize(n,Vn,0),writableStreamDefaultControllerAdvanceQueueIfNeeded(n)}function writableStreamDefaultControllerClearAlgorithms(n){n[In].writeAlgorithm=void 0,n[In].closeAlgorithm=void 0,n[In].abortAlgorithm=void 0,n[In].sizeAlgorithm=void 0}function writableStreamDefaultControllerGetBackpressure(n){return writableStreamDefaultControllerGetDesiredSize(n)<=0}function writableStreamDefaultControllerAdvanceQueueIfNeeded(n){let{queue:a,started:S,stream:C}=n[In];if(!S||C[In].inFlightWriteRequest.promise!==void 0)return;if(C[In].state===`erroring`){writableStreamFinishErroring(C);return}if(!a.length)return;let N=peekQueueValue(n);N===Vn?writableStreamDefaultControllerProcessClose(n):writableStreamDefaultControllerProcessWrite(n,N)}function setupWritableStreamDefaultControllerFromSink(n,a,S,C){let N=new WritableStreamDefaultController(Un),F=a?.start,I=a?.write,H=a?.close,W=a?.abort;setupWritableStreamDefaultController(n,N,F?F.bind(a,N):nonOpStart,I?createPromiseCallback(`sink.write`,I,a):nonOpWrite,H?createPromiseCallback(`sink.close`,H,a):nonOpCancel,W?createPromiseCallback(`sink.abort`,W,a):nonOpCancel,S,C)}function setupWritableStreamDefaultController(n,a,S,C,N,F,I,H){a[In]={abortAlgorithm:F,closeAlgorithm:N,highWaterMark:I,queue:[],queueTotalSize:0,abortController:new zn,sizeAlgorithm:H,started:!1,stream:n,writeAlgorithm:C},n[In].controller=a,writableStreamUpdateBackpressure(n,writableStreamDefaultControllerGetBackpressure(a));let W=S();new Promise(n=>n(W)).then(()=>{a[In].started=!0,writableStreamDefaultControllerAdvanceQueueIfNeeded(a)},S=>{a[In].started=!0,writableStreamDealWithRejection(n,S)})}function createWritableStream(n,a,S,C,N=1,F=()=>1){let I=Object.create(WritableStream.prototype);return I[Ln]=`WritableStream`,I[In]=createWritableStreamState(),setupWritableStreamDefaultController(I,new WritableStreamDefaultController(Un),n,a,S,C,N,F),I}et();const qn=Symbol(`kCancel`),Jn=Symbol(`kClose`),Yn=Symbol(`kChunk`),Xn=Symbol(`kError`),Zn=Symbol(`kPull`),Qn=Symbol(`kRelease`),$n=Symbol(`kSkipThrow`);let er,tr;function lazyReadableReleasedError(){return er||(er=TypeError(`Reader released`),er)}function lazyReadableReleasingError(){return tr||(tr=TypeError(`Releasing reader`),tr)}function createAbortError(){if(typeof globalThis.DOMException==`function`)return new DOMException(`The operation was aborted`,`AbortError`);let n=Error(`The operation was aborted`);return n.name=`AbortError`,n}function createReadableStreamState(){return{disturbed:!1,reader:void 0,state:`readable`,storedError:void 0,controller:void 0,closedPromise:Promise.withResolvers()}}var ReadableStream$1=class{static{__name$1(this,`ReadableStream`)}[Ln]=`ReadableStream`;[In];constructor(n={},a={}){if(n!=null&&typeof n!=`object`)throw TypeError(`source must be an object`);if(a!=null&&typeof a!=`object`)throw TypeError(`strategy must be an object`);this[In]=createReadableStreamState();let S=a?.size,C=a?.highWaterMark,N=n?.type;if(N!==void 0){if(`${N}`==`bytes`){if(S!==void 0)throw RangeError(`strategy.size must not be set for a byte stream`);setupReadableByteStreamControllerFromSource(this,n,extractHighWaterMark(C,0));return}throw RangeError(`Invalid type: ${N}`)}setupReadableStreamDefaultControllerFromSource(this,n,extractHighWaterMark(C,1),extractSizeAlgorithm(S))}get locked(){if(!nr(this))throw TypeError(`Invalid this`);return isReadableStreamLocked(this)}static from(n){return readableStreamFromIterable(n)}cancel(n=void 0){return nr(this)?isReadableStreamLocked(this)?Promise.reject(TypeError(`ReadableStream is locked`)):readableStreamCancel(this,n):Promise.reject(TypeError(`Invalid this`))}getReader(n={}){if(!nr(this))throw TypeError(`Invalid this`);if(n!=null&&typeof n!=`object`)throw TypeError(`options must be an object`);let a=n?.mode;if(a===void 0)return new ReadableStreamDefaultReader(this);if(`${a}`==`byob`)return new ReadableStreamBYOBReader(this);throw RangeError(`Invalid mode: ${a}`)}pipeThrough(n,a={}){if(!nr(this))throw TypeError(`Invalid this`);let S=n?.readable;if(!nr(S))throw TypeError(`transform.readable must be a ReadableStream`);let C=n?.writable;if(!Wn(C))throw TypeError(`transform.writable must be a WritableStream`);if(a!=null&&typeof a!=`object`)throw TypeError(`options must be an object`);let N=a?.preventAbort,F=a?.preventCancel,I=a?.preventClose,H=a?.signal;if(H!==void 0&&!(H instanceof Object&&`aborted`in H))throw TypeError(`options.signal must be an AbortSignal`);if(isReadableStreamLocked(this))throw TypeError(`The ReadableStream is locked`);if(isWritableStreamLocked(C))throw TypeError(`The WritableStream is locked`);return setPromiseHandled(readableStreamPipeTo(this,C,!!I,!!N,!!F,H)),S}pipeTo(n,a={}){try{if(!nr(this))throw TypeError(`Invalid this`);if(!Wn(n))throw TypeError(`destination must be a WritableStream`);if(a!=null&&typeof a!=`object`)throw TypeError(`options must be an object`);let S=a?.preventAbort,C=a?.preventCancel,N=a?.preventClose,F=a?.signal;if(F!==void 0&&!(F instanceof Object&&`aborted`in F))throw TypeError(`options.signal must be an AbortSignal`);if(isReadableStreamLocked(this))throw TypeError(`The ReadableStream is locked`);if(isWritableStreamLocked(n))throw TypeError(`The WritableStream is locked`);return readableStreamPipeTo(this,n,!!N,!!S,!!C,F)}catch(n){return Promise.reject(n)}}tee(){if(!nr(this))throw TypeError(`Invalid this`);let n=this[In].controller;return ar(n)?readableByteStreamTee(this):readableStreamDefaultTee(this,!1)}values(n={}){if(!nr(this))throw TypeError(`Invalid this`);if(n!=null&&typeof n!=`object`)throw TypeError(`options must be an object`);let a=!!n?.preventCancel,S=new ReadableStreamDefaultReader(this),C={done:!1,current:void 0},N=!1;function nextSteps(){if(C.done)return Promise.resolve({done:!0,value:void 0});if(S[In].stream===void 0)return Promise.reject(TypeError(`The reader is not bound to a ReadableStream`));let{promise:n,resolve:a,reject:N}=Promise.withResolvers();return readableStreamDefaultReaderRead(S,{[Yn](n){C.current=void 0,a({value:n,done:!1})},[Jn](){C.current=void 0,C.done=!0,readableStreamReaderGenericRelease(S),a({done:!0,value:void 0})},[Xn](n){C.current=void 0,C.done=!0,readableStreamReaderGenericRelease(S),N(n)}}),n}async function returnSteps(n){if(C.done)return{done:!0,value:n};if(C.done=!0,S[In].stream===void 0)throw TypeError(`The reader is not bound to a ReadableStream`);if(!a){let a=readableStreamReaderGenericCancel(S,n);return readableStreamReaderGenericRelease(S),await a,{done:!0,value:n}}return readableStreamReaderGenericRelease(S),{done:!0,value:n}}return Object.setPrototypeOf({next(){return N||=(C.current=Promise.resolve(),!0),C.current=C.current===void 0?nextSteps():C.current.then(nextSteps,nextSteps),C.current},return(n){return N=!0,C.current=C.current===void 0?returnSteps(n):C.current.then(()=>returnSteps(n),()=>returnSteps(n)),C.current},[Symbol.asyncIterator](){return this}},Rn)}[Symbol.asyncIterator](){return this.values()}get[Symbol.toStringTag](){return`ReadableStream`}},DefaultReadRequest=class{[In];constructor(){this[In]=Promise.withResolvers()}[Yn](n){this[In].resolve?.({value:n,done:!1})}[Jn](){this[In].resolve?.({value:void 0,done:!0})}[Xn](n){this[In].reject?.(n)}get promise(){return this[In].promise}},ReadableStreamDefaultReader=class{[Ln]=`ReadableStreamDefaultReader`;[In];constructor(n){if(!nr(n))throw TypeError(`Expected a ReadableStream`);this[In]={readRequests:[],stream:void 0,close:{promise:void 0,resolve:void 0,reject:void 0}},setupReadableStreamDefaultReader(this,n)}read(){if(!ir(this))return Promise.reject(TypeError(`Invalid this`));if(this[In].stream===void 0)return Promise.reject(TypeError(`The reader is not attached to a stream`));let n=this[In].stream,a=n[In].controller;if(n[In].state===`readable`&&rr(a)&&a[In].queue.length>0){n[In].disturbed=!0;let S=dequeueValue(a);return a[In].closeRequested&&!a[In].queue.length?(readableStreamDefaultControllerClearAlgorithms(a),readableStreamClose(n)):readableStreamDefaultControllerCallPullIfNeeded(a),Promise.resolve({value:S,done:!1})}let S=new DefaultReadRequest;return readableStreamDefaultReaderRead(this,S),S.promise}releaseLock(){if(!ir(this))throw TypeError(`Invalid this`);this[In].stream!==void 0&&readableStreamDefaultReaderRelease(this)}get closed(){return ir(this)?this[In].close.promise:Promise.reject(TypeError(`Invalid this`))}cancel(n=void 0){return ir(this)?this[In].stream===void 0?Promise.reject(TypeError(`The reader is not attached to a stream`)):readableStreamReaderGenericCancel(this,n):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`ReadableStreamDefaultReader`}},ReadableStreamDefaultController=class{[Ln]=`ReadableStreamDefaultController`;[In]={};constructor(n){if(n!==$n)throw TypeError(`Illegal constructor`)}get desiredSize(){return readableStreamDefaultControllerGetDesiredSize(this)}close(){if(!readableStreamDefaultControllerCanCloseOrEnqueue(this))throw TypeError(`Controller is already closed`);readableStreamDefaultControllerClose(this)}enqueue(n=void 0){if(!readableStreamDefaultControllerCanCloseOrEnqueue(this))throw TypeError(`Controller is already closed`);readableStreamDefaultControllerEnqueue(this,n)}error(n=void 0){readableStreamDefaultControllerError(this,n)}[qn](n){return readableStreamDefaultControllerCancelSteps(this,n)}[Zn](n){readableStreamDefaultControllerPullSteps(this,n)}[Qn](){}get[Symbol.toStringTag](){return`ReadableStreamDefaultController`}};const nr=isBrandCheck(`ReadableStream`),rr=isBrandCheck(`ReadableStreamDefaultController`),ir=isBrandCheck(`ReadableStreamDefaultReader`);function isReadableStreamLocked(n){return n[In].reader!==void 0}function readableStreamCancel(n,a){switch(n[In].disturbed=!0,n[In].state){case`closed`:return Promise.resolve();case`errored`:return Promise.reject(n[In].storedError)}readableStreamClose(n);let S=n[In].reader;if(S!==void 0&&readableStreamHasBYOBReader(n)){let n=S[In].readIntoRequests;S[In].readIntoRequests=[];for(let a=0;a<n.length;a++)n[a][Jn](void 0)}return n[In].controller[qn](a).then(()=>{})}function readableStreamClose(n){n[In].state=`closed`,n[In].closedPromise.resolve();let{reader:a}=n[In];if(a!==void 0&&(a[In].close.resolve?.(),readableStreamHasDefaultReader(n))){for(let n=0;n<a[In].readRequests.length;n++)a[In].readRequests[n][Jn]();a[In].readRequests=[]}}function readableStreamError(n,a){n[In].state=`errored`,n[In].storedError=a,setPromiseHandled(n[In].closedPromise.promise),n[In].closedPromise.reject(a);let{reader:S}=n[In];if(S!==void 0){if(setPromiseHandled(S[In].close.promise),S[In].close.reject?.(a),readableStreamHasDefaultReader(n)){for(let n=0;n<S[In].readRequests.length;n++)S[In].readRequests[n][Xn](a);S[In].readRequests=[]}else if(readableStreamHasBYOBReader(n)){for(let n=0;n<S[In].readIntoRequests.length;n++)S[In].readIntoRequests[n][Xn](a);S[In].readIntoRequests=[]}}}function readableStreamHasDefaultReader(n){let{reader:a}=n[In];return a===void 0?!1:a[In]!==void 0&&a[Ln]===`ReadableStreamDefaultReader`}function readableStreamGetNumReadRequests(n){return n[In].reader[In].readRequests.length}function readableStreamFulfillReadRequest(n,a,S){let{reader:C}=n[In],N=C[In].readRequests.shift();S?N[Jn]():N[Yn](a)}function readableStreamAddReadRequest(n,a){n[In].reader[In].readRequests.push(a)}function readableStreamReaderGenericCancel(n,a){let{stream:S}=n[In];return readableStreamCancel(S,a)}function readableStreamReaderGenericInitialize(n,a){switch(n[In].stream=a,a[In].reader=n,a[In].state){case`readable`:n[In].close=Promise.withResolvers();break;case`closed`:n[In].close={promise:Promise.resolve(),resolve:void 0,reject:void 0};break;case`errored`:n[In].close={promise:Promise.reject(a[In].storedError),resolve:void 0,reject:void 0},setPromiseHandled(n[In].close.promise);break}}function readableStreamReaderGenericRelease(n){let{stream:a}=n[In],S=lazyReadableReleasedError();a[In].state===`readable`?n[In].close.reject?.(S):n[In].close={promise:Promise.reject(S),resolve:void 0,reject:void 0},setPromiseHandled(n[In].close.promise),a[In].controller[Qn](),a[In].reader=void 0,n[In].stream=void 0}function readableStreamDefaultReaderRelease(n){readableStreamReaderGenericRelease(n),readableStreamDefaultReaderErrorReadRequests(n,lazyReadableReleasingError())}function readableStreamDefaultReaderErrorReadRequests(n,a){for(let S=0;S<n[In].readRequests.length;++S)n[In].readRequests[S][Xn](a);n[In].readRequests=[]}function readableStreamDefaultReaderRead(n,a){let{stream:S}=n[In];switch(S[In].disturbed=!0,S[In].state){case`closed`:a[Jn]();break;case`errored`:a[Xn](S[In].storedError);break;case`readable`:S[In].controller[Zn](a);break}}function setupReadableStreamDefaultReader(n,a){if(isReadableStreamLocked(a))throw TypeError(`ReadableStream is locked`);readableStreamReaderGenericInitialize(n,a),n[In].readRequests=[]}function readableStreamDefaultControllerClose(n){readableStreamDefaultControllerCanCloseOrEnqueue(n)&&(n[In].closeRequested=!0,n[In].queue.length||(readableStreamDefaultControllerClearAlgorithms(n),readableStreamClose(n[In].stream)))}function readableStreamDefaultControllerEnqueue(n,a){if(!readableStreamDefaultControllerCanCloseOrEnqueue(n))return;let{stream:S}=n[In];if(isReadableStreamLocked(S)&&readableStreamGetNumReadRequests(S))readableStreamFulfillReadRequest(S,a,!1);else try{enqueueValueWithSize(n,a,n[In].sizeAlgorithm(a))}catch(a){throw readableStreamDefaultControllerError(n,a),a}readableStreamDefaultControllerCallPullIfNeeded(n)}function readableStreamDefaultControllerCanCloseOrEnqueue(n){let{stream:a}=n[In];return!n[In].closeRequested&&a[In].state===`readable`}function readableStreamDefaultControllerGetDesiredSize(n){let{stream:a,highWaterMark:S,queueTotalSize:C}=n[In];switch(a[In].state){case`errored`:return null;case`closed`:return 0;default:return S-C}}function readableStreamDefaultControllerHasBackpressure(n){return!readableStreamDefaultControllerShouldCallPull(n)}function readableStreamDefaultControllerShouldCallPull(n){let{stream:a}=n[In];if(!readableStreamDefaultControllerCanCloseOrEnqueue(n)||!n[In].started)return!1;if(isReadableStreamLocked(a)&&readableStreamGetNumReadRequests(a))return!0;let S=readableStreamDefaultControllerGetDesiredSize(n);return S!==null&&S>0}function readableStreamDefaultControllerCallPullIfNeeded(n){if(readableStreamDefaultControllerShouldCallPull(n)){if(n[In].pulling){n[In].pullAgain=!0;return}n[In].pulling=!0,n[In].pullAlgorithm(n).then(()=>{n[In].pulling=!1,n[In].pullAgain&&(n[In].pullAgain=!1,readableStreamDefaultControllerCallPullIfNeeded(n))},a=>readableStreamDefaultControllerError(n,a))}}function readableStreamDefaultControllerClearAlgorithms(n){n[In].pullAlgorithm=void 0,n[In].cancelAlgorithm=void 0,n[In].sizeAlgorithm=void 0}function readableStreamDefaultControllerError(n,a){let{stream:S}=n[In];S[In].state===`readable`&&(resetQueue(n),readableStreamDefaultControllerClearAlgorithms(n),readableStreamError(S,a))}function readableStreamDefaultControllerCancelSteps(n,a){resetQueue(n);let S=n[In].cancelAlgorithm(a);return readableStreamDefaultControllerClearAlgorithms(n),S}function readableStreamDefaultControllerPullSteps(n,a){let{stream:S,queue:C}=n[In];if(C.length){let N=dequeueValue(n);n[In].closeRequested&&!C.length?(readableStreamDefaultControllerClearAlgorithms(n),readableStreamClose(S)):readableStreamDefaultControllerCallPullIfNeeded(n),a[Yn](N);return}readableStreamAddReadRequest(S,a),readableStreamDefaultControllerCallPullIfNeeded(n)}function setupReadableStreamDefaultController(n,a,S,C,N,F,I){a[In]={cancelAlgorithm:N,closeRequested:!1,highWaterMark:F,pullAgain:!1,pullAlgorithm:C,pulling:!1,queue:[],queueTotalSize:0,started:!1,sizeAlgorithm:I,stream:n},n[In].controller=a;let H=S();new Promise(n=>n(H)).then(()=>{a[In].started=!0,readableStreamDefaultControllerCallPullIfNeeded(a)},n=>readableStreamDefaultControllerError(a,n))}function setupReadableStreamDefaultControllerFromSource(n,a,S,C){let N=new ReadableStreamDefaultController($n),F=a?.start,I=a?.pull,H=a?.cancel;setupReadableStreamDefaultController(n,N,F?F.bind(a,N):nonOpStart,I?createPromiseCallback(`source.pull`,I,a):nonOpPull,H?createPromiseCallback(`source.cancel`,H,a):nonOpCancel,S,C)}function createReadableStream(n,a,S,C=1,N=()=>1){let F=Object.create(ReadableStream$1.prototype);return F[Ln]=`ReadableStream`,F[In]=createReadableStreamState(),setupReadableStreamDefaultController(F,new ReadableStreamDefaultController($n),n,a,S,C,N),F}function readableStreamFromIterable(n){let a,S=getIterator(n,`async`),C=nonOpStart;async function pullAlgorithm(){let n=iteratorNext(S);return Promise.resolve(n).then(n=>{if(typeof n!=`object`||!n)throw TypeError(`The promise returned by the iterator.next() method must fulfill with an object`);n.done?readableStreamDefaultControllerClose(a[In].controller):readableStreamDefaultControllerEnqueue(a[In].controller,n.value)})}async function cancelAlgorithm(n){let a=S.iterator,C=a.return;if(C===void 0)return Promise.resolve();let N=C.call(a,n);return Promise.resolve(N).then(n=>{if(typeof n!=`object`||!n)throw TypeError(`The promise returned by the iterator.return() method must fulfill with an object`)})}return a=createReadableStream(C,pullAlgorithm,cancelAlgorithm,0),a}function readableStreamPipeTo(n,a,S,C,N,F){let I,H;try{I=new ReadableStreamDefaultReader(n),H=new WritableStreamDefaultWriter(a)}catch(n){return Promise.reject(n)}n[In].disturbed=!0;let W=!1,{promise:K,resolve:q,reject:Y}=Promise.withResolvers(),X={currentWrite:Promise.resolve()},te;function finalize(n,a){writableStreamDefaultWriterRelease(H),readableStreamReaderGenericRelease(I),F!==void 0&&te&&(F.removeEventListener(`abort`,te),te=void 0),n?Y(a):q()}async function waitForCurrentWrite(){let n=X.currentWrite;await n,n!==X.currentWrite&&await waitForCurrentWrite()}function shutdownWithAnAction(n,S,C){if(W)return;if(W=!0,a[In].state===`writable`&&!writableStreamCloseQueuedOrInFlight(a)){waitForCurrentWrite().then(complete,n=>finalize(!0,n));return}complete();function complete(){n().then(()=>finalize(!!S,C),n=>finalize(!0,n))}}function shutdown(n,S){if(!W){if(W=!0,a[In].state===`writable`&&!writableStreamCloseQueuedOrInFlight(a)){waitForCurrentWrite().then(()=>finalize(!!n,S),n=>finalize(!0,n));return}finalize(!!n,S)}}function abortAlgorithm(){let S;S=F.reason&&F.reason.name===`AbortError`?createAbortError():F.reason;let I=[];C||I.push(()=>a[In].state===`writable`?writableStreamAbort(a,S):Promise.resolve()),N||I.push(()=>n[In].state===`readable`?readableStreamCancel(n,S):Promise.resolve()),shutdownWithAnAction(()=>Promise.all(I.map(n=>n())).then(()=>void 0),!0,S)}function watchErrored(n,a,S){n[In].state===`errored`?S(n[In].storedError):a.then(void 0,S)}function watchClosed(n,a,S){n[In].state===`closed`?S():a.then(S,()=>{})}class PipeToReadRequest{[Yn](n){Re(()=>{X.currentWrite=writableStreamDefaultWriterWrite(H,n),setPromiseHandled(X.currentWrite),ne.resolve(!1)})}[Jn](){ne.resolve(!0)}[Xn](n){ne.reject(n)}}let ne={resolve:null,reject:null};async function step(){if(W||a[In].backpressure&&(await H[In].ready.promise,W))return!0;let S=n[In].controller;if(n[In].state===`readable`&&rr(S)&&S[In].queue.length>0){for(;S[In].queue.length>0;){if(W)return!0;let C=dequeueValue(S);if(S[In].closeRequested&&!S[In].queue.length&&(readableStreamDefaultControllerClearAlgorithms(S),readableStreamClose(n)),X.currentWrite=writableStreamDefaultWriterWrite(H,C),setPromiseHandled(X.currentWrite),a[In].backpressure||a[In].state!==`writable`||writableStreamCloseQueuedOrInFlight(a))break}return readableStreamDefaultControllerCallPullIfNeeded(S),n[In].state===`closed`}let{promise:C,resolve:N,reject:F}=Promise.withResolvers();return ne={resolve:N,reject:F},readableStreamDefaultReaderRead(I,new PipeToReadRequest),C}async function run(){for(;!await step(););}if(F!==void 0){if(F.aborted)return abortAlgorithm(),K;te=abortAlgorithm,F.addEventListener(`abort`,te,{once:!0})}if(setPromiseHandled(run()),watchErrored(n,I[In].close.promise,n=>{if(!C)return shutdownWithAnAction(()=>writableStreamAbort(a,n),!0,n);shutdown(!0,n)}),watchErrored(a,H[In].close.promise,a=>{if(!N)return shutdownWithAnAction(()=>readableStreamCancel(n,a),!0,a);shutdown(!0,a)}),watchClosed(n,I[In].close.promise,()=>{if(!S)return shutdownWithAnAction(()=>writableStreamDefaultWriterCloseWithErrorPropagation(H));shutdown()}),writableStreamCloseQueuedOrInFlight(a)||a[In].state===`closed`){let a=TypeError(`Destination WritableStream is closed`);N?shutdown(!0,a):shutdownWithAnAction(()=>readableStreamCancel(n,a),!0,a)}return K}function readableStreamDefaultTee(n,a){let S=new ReadableStreamDefaultReader(n),C=!1,N=!1,F=!1,I,H,W,K,q=Promise.withResolvers();async function pullAlgorithm(){C||(C=!0,readableStreamDefaultReaderRead(S,{[Yn](n){Re(()=>{C=!1;let S=n,I=n;if(!F&&a)try{I=structuredClone(I)}catch{}N||readableStreamDefaultControllerEnqueue(W[In].controller,S),F||readableStreamDefaultControllerEnqueue(K[In].controller,I)})},[Jn](){Re(()=>{C=!1,N||readableStreamDefaultControllerClose(W[In].controller),F||readableStreamDefaultControllerClose(K[In].controller),(!N||!F)&&q.resolve(void 0)})},[Xn](){C=!1}}))}function cancel1Algorithm(a){if(N=!0,I=a,F){let a=[I,H];q.resolve(readableStreamCancel(n,a))}return q.promise}function cancel2Algorithm(a){if(F=!0,H=a,N){let a=[I,H];q.resolve(readableStreamCancel(n,a))}return q.promise}return W=createReadableStream(nonOpStart,pullAlgorithm,cancel1Algorithm),K=createReadableStream(nonOpStart,pullAlgorithm,cancel2Algorithm),S[In].close.promise.then(void 0,n=>{readableStreamDefaultControllerError(W[In].controller,n),readableStreamDefaultControllerError(K[In].controller,n),(!N||!F)&&q.resolve(void 0)}),[W,K]}var BYOBReadIntoRequest=class{[In];constructor(){this[In]=Promise.withResolvers()}[Yn](n){this[In].resolve?.({value:n,done:!1})}[Jn](n){this[In].resolve?.({value:n,done:!0})}[Xn](n){this[In].reject?.(n)}get promise(){return this[In].promise}},ReadableStreamBYOBReader=class{[Ln]=`ReadableStreamBYOBReader`;[In];constructor(n){if(!nr(n))throw TypeError(`Expected a ReadableStream`);this[In]={readIntoRequests:[],stream:void 0,close:{promise:void 0,resolve:void 0,reject:void 0}},setupReadableStreamBYOBReader(this,n)}read(n,a={}){if(!sr(this))return Promise.reject(TypeError(`Invalid this`));if(typeof n!=`object`||!n||!ArrayBuffer.isView(n))return Promise.reject(TypeError(`view must be an ArrayBufferView`));let S=n.buffer,C=n.byteLength;if(C===0)return Promise.reject(TypeError(`view must have non-zero byteLength`));if(S.byteLength===0)return isDetachedBuffer(S)?Promise.reject(TypeError(`view's buffer has been detached`)):Promise.reject(TypeError(`view's buffer must have non-zero byteLength`));let N=a?.min??1;if(typeof N!=`number`||N<1||!Number.isInteger(N)||Number.isNaN(N))return Promise.reject(TypeError(`options.min must be a positive integer`));let F=n[Symbol.toStringTag];if(F!==void 0&&F!==`DataView`){if(N>n.length)return Promise.reject(RangeError(`options.min must be smaller or equal to view size`))}else if(N>C)return Promise.reject(RangeError(`options.min must be smaller or equal to view size`));if(this[In].stream===void 0)return Promise.reject(TypeError(`Reader has no associated stream`));let I=new BYOBReadIntoRequest;return readableStreamBYOBReaderRead(this,n,N,I),I.promise}releaseLock(){if(!sr(this))throw TypeError(`Invalid this`);this[In].stream!==void 0&&readableStreamBYOBReaderRelease(this)}get closed(){return sr(this)?this[In].close.promise:Promise.reject(TypeError(`Invalid this`))}cancel(n=void 0){return sr(this)?this[In].stream===void 0?Promise.reject(TypeError(`Reader has no associated stream`)):readableStreamReaderGenericCancel(this,n):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`ReadableStreamBYOBReader`}},ReadableStreamBYOBRequest=class{[Ln]=`ReadableStreamBYOBRequest`;[In]={};constructor(n){if(n!==$n)throw TypeError(`Illegal constructor`)}get view(){if(!cr(this))throw TypeError(`Invalid this`);return this[In].view}respond(n){if(!cr(this))throw TypeError(`Invalid this`);if(this[In].controller===void 0)throw TypeError(`BYOB request has been invalidated`);if(n=+n,!Number.isInteger(n)||n<0||!Number.isFinite(n))throw RangeError(`bytesWritten must be a non-negative integer`);let a=this[In].view;if(isDetachedBuffer(a.buffer))throw TypeError(`The BYOB request's buffer has been detached`);readableByteStreamControllerRespond(this[In].controller,n)}respondWithNewView(n){if(!cr(this))throw TypeError(`Invalid this`);if(this[In].controller===void 0)throw TypeError(`BYOB request has been invalidated`);if(typeof n!=`object`||!n||!ArrayBuffer.isView(n))throw TypeError(`view must be an ArrayBufferView`);if(isDetachedBuffer(n.buffer))throw TypeError(`The given view's buffer has been detached`);readableByteStreamControllerRespondWithNewView(this[In].controller,n)}get[Symbol.toStringTag](){return`ReadableStreamBYOBRequest`}},ReadableByteStreamController=class{[Ln]=`ReadableByteStreamController`;[In]={};constructor(n){if(n!==$n)throw TypeError(`Illegal constructor`)}get byobRequest(){if(!ar(this))throw TypeError(`Invalid this`);return readableByteStreamControllerGetBYOBRequest(this)}get desiredSize(){if(!ar(this))throw TypeError(`Invalid this`);return readableByteStreamControllerGetDesiredSize(this)}close(){if(!ar(this))throw TypeError(`Invalid this`);if(this[In].closeRequested)throw TypeError(`Close already requested`);if(this[In].stream[In].state!==`readable`)throw TypeError(`Stream is not in a readable state`);readableByteStreamControllerClose(this)}enqueue(n){if(!ar(this))throw TypeError(`Invalid this`);if(typeof n!=`object`||!n||!ArrayBuffer.isView(n))throw TypeError(`chunk must be an ArrayBufferView`);if(n.byteLength===0)throw TypeError(`chunk length must be non-zero`);if(n.buffer.byteLength===0)throw TypeError(`chunk's buffer length must be non-zero`);if(this[In].closeRequested)throw TypeError(`Cannot enqueue after close has been requested`);if(this[In].stream[In].state!==`readable`)throw TypeError(`Stream is not in a readable state`);readableByteStreamControllerEnqueue(this,n)}error(n=void 0){if(!ar(this))throw TypeError(`Invalid this`);readableByteStreamControllerError(this,n)}[qn](n){return readableByteStreamControllerCancelSteps(this,n)}[Zn](n){readableByteStreamControllerPullSteps(this,n)}[Qn](){if(this[In].pendingPullIntos.length>0){let n=this[In].pendingPullIntos[0];n.readerType=`none`,this[In].pendingPullIntos=[n]}}get[Symbol.toStringTag](){return`ReadableByteStreamController`}};const ar=isBrandCheck(`ReadableByteStreamController`),sr=isBrandCheck(`ReadableStreamBYOBReader`),cr=isBrandCheck(`ReadableStreamBYOBRequest`);function readableStreamHasBYOBReader(n){let{reader:a}=n[In];return a===void 0?!1:a[In]!==void 0&&a[Ln]===`ReadableStreamBYOBReader`}function readableStreamGetNumReadIntoRequests(n){return n[In].reader[In].readIntoRequests.length}function readableStreamAddReadIntoRequest(n,a){n[In].reader[In].readIntoRequests.push(a)}function readableStreamFulfillReadIntoRequest(n,a,S){let{reader:C}=n[In],N=C[In].readIntoRequests.shift();S?N[Jn](a):N[Yn](a)}function setupReadableStreamBYOBReader(n,a){if(isReadableStreamLocked(a))throw TypeError(`ReadableStream is locked`);if(!ar(a[In].controller))throw TypeError(`Cannot use a BYOB reader with a non-byte stream`);readableStreamReaderGenericInitialize(n,a),n[In].readIntoRequests=[]}function readableStreamBYOBReaderRead(n,a,S,C){let{stream:N}=n[In];N[In].disturbed=!0,N[In].state===`errored`?C[Xn](N[In].storedError):readableByteStreamControllerPullInto(N[In].controller,a,S,C)}function readableStreamBYOBReaderRelease(n){readableStreamReaderGenericRelease(n);let a=TypeError(`Reader was released`);for(let S=0;S<n[In].readIntoRequests.length;S++)n[In].readIntoRequests[S][Xn](a);n[In].readIntoRequests=[]}function readableByteStreamControllerClearAlgorithms(n){n[In].pullAlgorithm=void 0,n[In].cancelAlgorithm=void 0}function readableByteStreamControllerClearPendingPullIntos(n){readableByteStreamControllerInvalidateBYOBRequest(n),n[In].pendingPullIntos=[]}function readableByteStreamControllerInvalidateBYOBRequest(n){let a=n[In].byobRequest;a!=null&&(a[In].controller=void 0,a[In].view=null,n[In].byobRequest=null)}function readableByteStreamControllerError(n,a){let{stream:S}=n[In];S[In].state===`readable`&&(readableByteStreamControllerClearPendingPullIntos(n),resetQueue(n),readableByteStreamControllerClearAlgorithms(n),readableStreamError(S,a))}function readableByteStreamControllerGetDesiredSize(n){let a=n[In].stream[In].state;return a===`errored`?null:a===`closed`?0:n[In].highWaterMark-n[In].queueTotalSize}function readableByteStreamControllerShouldCallPull(n){let{stream:a}=n[In];if(a[In].state!==`readable`||n[In].closeRequested||!n[In].started)return!1;if(readableStreamHasDefaultReader(a)&&readableStreamGetNumReadRequests(a)>0||readableStreamHasBYOBReader(a)&&readableStreamGetNumReadIntoRequests(a)>0)return!0;let S=readableByteStreamControllerGetDesiredSize(n);return S!==null&&S>0}function readableByteStreamControllerCallPullIfNeeded(n){if(readableByteStreamControllerShouldCallPull(n)){if(n[In].pulling){n[In].pullAgain=!0;return}n[In].pulling=!0,n[In].pullAlgorithm(n).then(()=>{n[In].pulling=!1,n[In].pullAgain&&(n[In].pullAgain=!1,readableByteStreamControllerCallPullIfNeeded(n))},a=>readableByteStreamControllerError(n,a))}}function readableByteStreamControllerHandleQueueDrain(n){n[In].queueTotalSize===0&&n[In].closeRequested?(readableByteStreamControllerClearAlgorithms(n),readableStreamClose(n[In].stream)):readableByteStreamControllerCallPullIfNeeded(n)}function readableByteStreamControllerEnqueueChunkToQueue(n,a,S,C){n[In].queue.push({buffer:a,byteOffset:S,byteLength:C}),n[In].queueTotalSize+=C}function readableByteStreamControllerEnqueueClonedChunkToQueue(n,a,S,C){let N;try{N=a.slice(S,S+C)}catch(a){readableByteStreamControllerError(n,a);return}readableByteStreamControllerEnqueueChunkToQueue(n,N,0,C)}function readableByteStreamControllerEnqueueDetachedPullIntoToQueue(n,a){a.bytesFilled>0&&readableByteStreamControllerEnqueueClonedChunkToQueue(n,a.buffer,a.byteOffset,a.bytesFilled),readableByteStreamControllerShiftPendingPullInto(n)}function readableByteStreamControllerShiftPendingPullInto(n){return n[In].pendingPullIntos.shift()}function readableByteStreamControllerFillHeadPullIntoDescriptor(n,a,S){S.bytesFilled+=a}function readableByteStreamControllerConvertPullIntoDescriptor(n){let a=n.bytesFilled,S=n.elementSize,C=transferArrayBuffer(n.buffer);return n.buffer=C,new n.viewConstructor(C,n.byteOffset,a/S)}function readableByteStreamControllerCommitPullIntoDescriptor(n,a){let S=!1;n[In].state===`closed`&&(S=!0);let C=readableByteStreamControllerConvertPullIntoDescriptor(a);a.readerType===`default`?readableStreamFulfillReadRequest(n,C,S):readableStreamFulfillReadIntoRequest(n,C,S)}function readableByteStreamControllerFillPullIntoDescriptorFromQueue(n,a){let S=Math.min(n[In].queueTotalSize,a.byteLength-a.bytesFilled),C=a.bytesFilled+S,N=S,F=!1,I=C-C%a.elementSize;I>=a.minimumFill&&(N=I-a.bytesFilled,F=!0);let H=n[In].queue;for(;N>0;){let S=H[0],C=Math.min(N,S.byteLength),F=a.byteOffset+a.bytesFilled,I=new Uint8Array(a.buffer,F,C),W=new Uint8Array(S.buffer,S.byteOffset,C);I.set(W),S.byteLength===C?H.shift():(S.byteOffset+=C,S.byteLength-=C),n[In].queueTotalSize-=C,readableByteStreamControllerFillHeadPullIntoDescriptor(n,C,a),N-=C}return F}function readableByteStreamControllerFillReadRequestFromQueue(n,a){let S=n[In].queue.shift();n[In].queueTotalSize-=S.byteLength,readableByteStreamControllerHandleQueueDrain(n);let C=new Uint8Array(S.buffer,S.byteOffset,S.byteLength);a[Yn](C)}function readableByteStreamControllerProcessReadRequestsUsingQueue(n){let a=n[In].stream[In].reader;for(;a[In].readRequests.length!==0;){if(n[In].queueTotalSize===0)return;readableByteStreamControllerFillReadRequestFromQueue(n,a[In].readRequests.shift())}}function readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(n){for(;n[In].pendingPullIntos.length!==0;){if(n[In].queueTotalSize===0)return;let a=n[In].pendingPullIntos[0];readableByteStreamControllerFillPullIntoDescriptorFromQueue(n,a)&&(readableByteStreamControllerShiftPendingPullInto(n),readableByteStreamControllerCommitPullIntoDescriptor(n[In].stream,a))}}function readableByteStreamControllerGetBYOBRequest(n){if(n[In].byobRequest===null&&n[In].pendingPullIntos.length!==0){let a=n[In].pendingPullIntos[0],S=new Uint8Array(a.buffer,a.byteOffset+a.bytesFilled,a.byteLength-a.bytesFilled),C=new ReadableStreamBYOBRequest($n);C[In]={controller:n,view:S},n[In].byobRequest=C}return n[In].byobRequest}function readableByteStreamControllerEnqueue(n,a){let{stream:S}=n[In];if(n[In].closeRequested||S[In].state!==`readable`)return;let C=a.buffer,N=a.byteLength,F=a.byteOffset;if(isDetachedBuffer(C))throw TypeError(`chunk's buffer is detached`);let I=transferArrayBuffer(C);if(n[In].pendingPullIntos.length!==0){let a=n[In].pendingPullIntos[0];if(isDetachedBuffer(a.buffer))throw TypeError(`BYOB request's buffer has been detached`);readableByteStreamControllerInvalidateBYOBRequest(n),a.buffer=transferArrayBuffer(a.buffer),a.readerType===`none`&&readableByteStreamControllerEnqueueDetachedPullIntoToQueue(n,a)}readableStreamHasDefaultReader(S)?(readableByteStreamControllerProcessReadRequestsUsingQueue(n),readableStreamGetNumReadRequests(S)===0?readableByteStreamControllerEnqueueChunkToQueue(n,I,F,N):(n[In].pendingPullIntos.length!==0&&readableByteStreamControllerShiftPendingPullInto(n),readableStreamFulfillReadRequest(S,new Uint8Array(I,F,N),!1))):readableStreamHasBYOBReader(S)?(readableByteStreamControllerEnqueueChunkToQueue(n,I,F,N),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(n)):readableByteStreamControllerEnqueueChunkToQueue(n,I,F,N),readableByteStreamControllerCallPullIfNeeded(n)}function readableByteStreamControllerClose(n){let{stream:a}=n[In];if(!(n[In].closeRequested||a[In].state!==`readable`)){if(n[In].queueTotalSize>0){n[In].closeRequested=!0;return}if(n[In].pendingPullIntos.length!==0){let a=n[In].pendingPullIntos[0];if(a.bytesFilled%a.elementSize!==0){let a=TypeError(`Insufficient bytes to fill elements in the given buffer`);throw readableByteStreamControllerError(n,a),a}}readableByteStreamControllerClearAlgorithms(n),readableStreamClose(a)}}function readableByteStreamControllerPullInto(n,a,S,C){let N=n[In].stream,F=a[Symbol.toStringTag],I,H;if(F===void 0||F===`DataView`)I=DataView,H=1;else{let n=typedArrayConstructorByTag(F);if(!n){C[Xn](TypeError(`Unsupported typed array: ${F}`));return}I=n,H=elementSizeByTag(F)}let W=a.buffer,K=a.byteLength,q=a.byteOffset,Y=S*H,X;try{X=transferArrayBuffer(W)}catch(n){C[Xn](n);return}let te={buffer:X,bufferByteLength:X.byteLength,byteOffset:q,byteLength:K,bytesFilled:0,minimumFill:Y,elementSize:H,viewConstructor:I,readerType:`byob`};if(n[In].pendingPullIntos.length!==0){n[In].pendingPullIntos.push(te),readableStreamAddReadIntoRequest(N,C);return}if(N[In].state===`closed`){let n=new I(te.buffer,te.byteOffset,0);C[Jn](n);return}if(n[In].queueTotalSize>0){if(readableByteStreamControllerFillPullIntoDescriptorFromQueue(n,te)){let a=readableByteStreamControllerConvertPullIntoDescriptor(te);readableByteStreamControllerHandleQueueDrain(n),C[Yn](a);return}if(n[In].closeRequested){let a=TypeError(`Insufficient bytes to fill elements in the given buffer`);readableByteStreamControllerError(n,a),C[Xn](a);return}}n[In].pendingPullIntos.push(te),readableStreamAddReadIntoRequest(N,C),readableByteStreamControllerCallPullIfNeeded(n)}function readableByteStreamControllerRespond(n,a){let S=n[In].pendingPullIntos[0];if(n[In].stream[In].state===`closed`){if(a!==0)throw TypeError(`bytesWritten must be 0 when calling respond() on a closed stream`)}else{if(a===0)throw TypeError(`bytesWritten must be greater than 0 when calling respond() on a readable stream`);if(S.bytesFilled+a>S.byteLength)throw RangeError(`bytesWritten out of range`)}S.buffer=transferArrayBuffer(S.buffer),readableByteStreamControllerRespondInternal(n,a)}function readableByteStreamControllerRespondWithNewView(n,a){let S=n[In].pendingPullIntos[0],C=n[In].stream[In].state,N=a.byteLength,F=a.byteOffset,I=a.buffer;if(C===`closed`){if(N!==0)throw TypeError(`view's length must be 0 when calling respondWithNewView() on a closed stream`)}else if(N===0)throw TypeError(`view's length must be greater than 0 when calling respondWithNewView() on a readable stream`);if(S.byteOffset+S.bytesFilled!==F)throw RangeError(`The region specified by view does not match byobRequest`);if(S.bufferByteLength!==I.byteLength)throw RangeError(`The buffer of view has different capacity than byobRequest`);if(S.bytesFilled+N>S.byteLength)throw RangeError(`The region specified by view is larger than byobRequest`);S.buffer=transferArrayBuffer(I),readableByteStreamControllerRespondInternal(n,N)}function readableByteStreamControllerRespondInternal(n,a){let S=n[In].pendingPullIntos[0];readableByteStreamControllerInvalidateBYOBRequest(n),n[In].stream[In].state===`closed`?readableByteStreamControllerRespondInClosedState(n,S):readableByteStreamControllerRespondInReadableState(n,a,S),readableByteStreamControllerCallPullIfNeeded(n)}function readableByteStreamControllerRespondInClosedState(n,a){a.readerType===`none`&&readableByteStreamControllerShiftPendingPullInto(n);let S=n[In].stream;if(readableStreamHasBYOBReader(S))for(;readableStreamGetNumReadIntoRequests(S)>0;)readableByteStreamControllerCommitPullIntoDescriptor(S,readableByteStreamControllerShiftPendingPullInto(n))}function readableByteStreamControllerRespondInReadableState(n,a,S){if(readableByteStreamControllerFillHeadPullIntoDescriptor(n,a,S),S.readerType===`none`){readableByteStreamControllerEnqueueDetachedPullIntoToQueue(n,S),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(n);return}if(S.bytesFilled<S.minimumFill)return;readableByteStreamControllerShiftPendingPullInto(n);let C=S.bytesFilled%S.elementSize;if(C>0){let a=S.byteOffset+S.bytesFilled;readableByteStreamControllerEnqueueClonedChunkToQueue(n,S.buffer,a-C,C)}S.bytesFilled-=C,readableByteStreamControllerCommitPullIntoDescriptor(n[In].stream,S),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(n)}function readableByteStreamControllerCancelSteps(n,a){readableByteStreamControllerClearPendingPullIntos(n),resetQueue(n);let S=n[In].cancelAlgorithm(a);return readableByteStreamControllerClearAlgorithms(n),S}function readableByteStreamControllerPullSteps(n,a){let S=n[In].stream;if(n[In].queueTotalSize>0){readableByteStreamControllerFillReadRequestFromQueue(n,a);return}let C=n[In].autoAllocateChunkSize;if(C!==void 0){let S;try{S=new ArrayBuffer(C)}catch(n){a[Xn](n);return}let N={buffer:S,bufferByteLength:C,byteOffset:0,byteLength:C,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:`default`};n[In].pendingPullIntos.push(N)}readableStreamAddReadRequest(S,a),readableByteStreamControllerCallPullIfNeeded(n)}function setupReadableByteStreamController(n,a,S,C,N,F,I){a[In]={cancelAlgorithm:N,closeRequested:!1,highWaterMark:F,pullAgain:!1,pullAlgorithm:C,pulling:!1,queue:[],queueTotalSize:0,started:!1,stream:n,byobRequest:null,pendingPullIntos:[],autoAllocateChunkSize:I},n[In].controller=a;let H=S();new Promise(n=>n(H)).then(()=>{a[In].started=!0,readableByteStreamControllerCallPullIfNeeded(a)},n=>readableByteStreamControllerError(a,n))}function setupReadableByteStreamControllerFromSource(n,a,S){let C=new ReadableByteStreamController($n),N=a?.start,F=a?.pull,I=a?.cancel,H=a?.autoAllocateChunkSize;if(H!==void 0&&(H===0||!Number.isInteger(H)||H<0))throw TypeError(`autoAllocateChunkSize must be a positive integer`);setupReadableByteStreamController(n,C,N?N.bind(a,C):nonOpStart,F?createPromiseCallback(`source.pull`,F,a):nonOpPull,I?createPromiseCallback(`source.cancel`,I,a):nonOpCancel,S,H)}function readableByteStreamTee(n){let a=new ReadableStreamDefaultReader(n),S=!1,C=!1,N=!1,F,I,H=Promise.withResolvers(),W,K,q,Y;function pullAlgorithm(){return S?Promise.resolve():(S=!0,a.read().then(n=>{if(S=!1,n.done){C||q.close(),N||Y.close();return}let a=n.value,F=new Uint8Array(a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength));C||q.enqueue(F),N||Y.enqueue(new Uint8Array(F))},()=>{}),Promise.resolve())}return W=new ReadableStream$1({type:`bytes`,pull:pullAlgorithm,cancel(a){if(C=!0,F=a,N){let a=readableStreamCancel(n,[F,I]);return H.resolve(),a}return H.promise}}),K=new ReadableStream$1({type:`bytes`,pull:pullAlgorithm,cancel(a){if(N=!0,I=a,C){let a=readableStreamCancel(n,[F,I]);return H.resolve(),a}return H.promise}}),q=W[In].controller,Y=K[In].controller,a.closed.catch(n=>{q.error(n),Y.error(n),(!C||!N)&&H.resolve()}),[W,K]}const lr=Symbol(`kSkipThrow`);var TransformStream=class{[Ln]=`TransformStream`;[In];constructor(n={},a={},S={}){if(n!=null&&typeof n!=`object`)throw TypeError(`transformer must be an object`);if(a!=null&&typeof a!=`object`)throw TypeError(`writableStrategy must be an object`);if(S!=null&&typeof S!=`object`)throw TypeError(`readableStrategy must be an object`);let C=n?.readableType,N=n?.writableType,F=n?.start;if(C!==void 0)throw RangeError(`Invalid readableType: ${C}`);if(N!==void 0)throw RangeError(`Invalid writableType: ${N}`);let I=extractHighWaterMark(S?.highWaterMark,0),H=extractSizeAlgorithm(S?.size),W=extractHighWaterMark(a?.highWaterMark,1),K=extractSizeAlgorithm(a?.size),q=Promise.withResolvers();initializeTransformStream(this,q,W,K,I,H),setupTransformStreamDefaultControllerFromTransformer(this,n),F===void 0?q.resolve():q.resolve(F.call(n,this[In].controller))}get readable(){if(!ur(this))throw TypeError(`Invalid this`);return this[In].readable}get writable(){if(!ur(this))throw TypeError(`Invalid this`);return this[In].writable}get[Symbol.toStringTag](){return`TransformStream`}},TransformStreamDefaultController=class{[Ln]=`TransformStreamDefaultController`;[In];constructor(n){if(n!==lr)throw TypeError(`Illegal constructor`)}get desiredSize(){if(!dr(this))throw TypeError(`Invalid this`);let{stream:n}=this[In],{readable:a}=n[In],S=a[In].controller;return readableStreamDefaultControllerGetDesiredSize(S)}enqueue(n){if(!dr(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerEnqueue(this,n)}error(n){if(!dr(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerError(this,n)}terminate(){if(!dr(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerTerminate(this)}get[Symbol.toStringTag](){return`TransformStreamDefaultController`}};const ur=isBrandCheck(`TransformStream`),dr=isBrandCheck(`TransformStreamDefaultController`);async function defaultTransformAlgorithm(n,a){transformStreamDefaultControllerEnqueue(a,n)}function initializeTransformStream(n,a,S,C,N,F){let startAlgorithm=()=>a.promise,I=createWritableStream(startAlgorithm,a=>transformStreamDefaultSinkWriteAlgorithm(n,a),()=>transformStreamDefaultSinkCloseAlgorithm(n),a=>transformStreamDefaultSinkAbortAlgorithm(n,a),S,C);n[In]={readable:createReadableStream(startAlgorithm,()=>transformStreamDefaultSourcePullAlgorithm(n),a=>transformStreamDefaultSourceCancelAlgorithm(n,a),N,F),writable:I,controller:void 0,backpressure:void 0,backpressureChange:{promise:void 0,resolve:void 0,reject:void 0}},transformStreamSetBackpressure(n,!0)}function transformStreamError(n,a){let{readable:S}=n[In];readableStreamDefaultControllerError(S[In].controller,a),transformStreamErrorWritableAndUnblockWrite(n,a)}function transformStreamErrorWritableAndUnblockWrite(n,a){let{controller:S,writable:C}=n[In];transformStreamDefaultControllerClearAlgorithms(S),writableStreamDefaultControllerErrorIfNeeded(C[In].controller,a),transformStreamUnblockWrite(n)}function transformStreamUnblockWrite(n){n[In].backpressure&&transformStreamSetBackpressure(n,!1)}function transformStreamSetBackpressure(n,a){n[In].backpressureChange.promise!==void 0&&n[In].backpressureChange.resolve?.(),n[In].backpressureChange=Promise.withResolvers(),n[In].backpressure=a}function setupTransformStreamDefaultController(n,a,S,C,N){a[In]={stream:n,transformAlgorithm:S,flushAlgorithm:C,cancelAlgorithm:N,finishPromise:void 0},n[In].controller=a}function setupTransformStreamDefaultControllerFromTransformer(n,a){let S=new TransformStreamDefaultController(lr),C=a?.transform,N=a?.flush,F=a?.cancel;setupTransformStreamDefaultController(n,S,C?createPromiseCallback(`transformer.transform`,C,a):defaultTransformAlgorithm,N?createPromiseCallback(`transformer.flush`,N,a):nonOpFlush,F?createPromiseCallback(`transformer.cancel`,F,a):nonOpCancel)}function transformStreamDefaultControllerClearAlgorithms(n){n[In].transformAlgorithm=void 0,n[In].flushAlgorithm=void 0,n[In].cancelAlgorithm=void 0}function transformStreamDefaultControllerEnqueue(n,a){let{stream:S}=n[In],{readable:C}=S[In],N=C[In].controller;if(!readableStreamDefaultControllerCanCloseOrEnqueue(N))throw TypeError(`Unable to enqueue`);try{readableStreamDefaultControllerEnqueue(N,a)}catch(n){throw transformStreamErrorWritableAndUnblockWrite(S,n),C[In].storedError}readableStreamDefaultControllerHasBackpressure(N)!==S[In].backpressure&&transformStreamSetBackpressure(S,!0)}function transformStreamDefaultControllerError(n,a){transformStreamError(n[In].stream,a)}async function transformStreamDefaultControllerPerformTransform(n,a){try{let S=n[In].transformAlgorithm;return S===void 0?void 0:await S(a,n)}catch(a){throw transformStreamError(n[In].stream,a),a}}function transformStreamDefaultControllerTerminate(n){let{stream:a}=n[In],{readable:S}=a[In];readableStreamDefaultControllerClose(S[In].controller),transformStreamErrorWritableAndUnblockWrite(a,TypeError(`TransformStream has been terminated`))}function transformStreamDefaultSinkWriteAlgorithm(n,a){let{controller:S}=n[In];return n[In].backpressure?n[In].backpressureChange.promise.then(()=>{let{writable:C}=n[In];if(C[In].state===`erroring`)throw C[In].storedError;return transformStreamDefaultControllerPerformTransform(S,a)}):transformStreamDefaultControllerPerformTransform(S,a)}async function transformStreamDefaultSinkAbortAlgorithm(n,a){let{controller:S,readable:C}=n[In];if(S[In].finishPromise!==void 0)return S[In].finishPromise;let{promise:N,resolve:F,reject:I}=Promise.withResolvers();S[In].finishPromise=N;let H=S[In].cancelAlgorithm(a);return transformStreamDefaultControllerClearAlgorithms(S),H.then(()=>{C[In].state===`errored`?I(C[In].storedError):(readableStreamDefaultControllerError(C[In].controller,a),F())},n=>{readableStreamDefaultControllerError(C[In].controller,n),I(n)}),S[In].finishPromise}function transformStreamDefaultSinkCloseAlgorithm(n){let{readable:a,controller:S}=n[In];if(S[In].finishPromise!==void 0)return S[In].finishPromise;let{promise:C,resolve:N,reject:F}=Promise.withResolvers();S[In].finishPromise=C;let I=S[In].flushAlgorithm(S);return transformStreamDefaultControllerClearAlgorithms(S),I.then(()=>{a[In].state===`errored`?F(a[In].storedError):(readableStreamDefaultControllerClose(a[In].controller),N())},n=>{readableStreamDefaultControllerError(a[In].controller,n),F(n)}),S[In].finishPromise}function transformStreamDefaultSourcePullAlgorithm(n){return transformStreamSetBackpressure(n,!1),n[In].backpressureChange.promise}function transformStreamDefaultSourceCancelAlgorithm(n,a){let{controller:S,writable:C}=n[In];if(S[In].finishPromise!==void 0)return S[In].finishPromise;let{promise:N,resolve:F,reject:I}=Promise.withResolvers();S[In].finishPromise=N;let H=S[In].cancelAlgorithm(a);return transformStreamDefaultControllerClearAlgorithms(S),H.then(()=>{C[In].state===`errored`?I(C[In].storedError):(writableStreamDefaultControllerErrorIfNeeded(C[In].controller,a),transformStreamUnblockWrite(n),F())},a=>{writableStreamDefaultControllerErrorIfNeeded(C[In].controller,a),transformStreamUnblockWrite(n),I(a)}),S[In].finishPromise}const fr=Object.defineProperty(n=>n.byteLength,"name",{value:`size`}),pr=Object.defineProperty(()=>1,"name",{value:`size`});var ByteLengthQueuingStrategy=class{#e;constructor(n){if(typeof n!=`object`||!n)throw TypeError(`init must be an object`);if(n.highWaterMark===void 0)throw TypeError(`init.highWaterMark is required`);this.#e=+n.highWaterMark}get highWaterMark(){return this.#e}get size(){return fr}get[Symbol.toStringTag](){return`ByteLengthQueuingStrategy`}},CountQueuingStrategy=class{#e;constructor(n){if(typeof n!=`object`||!n)throw TypeError(`init must be an object`);if(n.highWaterMark===void 0)throw TypeError(`init.highWaterMark is required`);this.#e=+n.highWaterMark}get highWaterMark(){return this.#e}get size(){return pr}get[Symbol.toStringTag](){return`CountQueuingStrategy`}},TextEncoderStream=class{#e=null;#t=new TextEncoder;#n;constructor(){this.#n=new TransformStream({transform:(n,a)=>{if(n=String(n),n===``)return;this.#e!==null&&(n=this.#e+n);let S=n.charCodeAt(n.length-1);55296<=S&&S<=56319?(this.#e=n.slice(-1),n=n.slice(0,-1)):this.#e=null,n&&a.enqueue(this.#t.encode(n))},flush:n=>{this.#e!==null&&n.enqueue(new Uint8Array([239,191,189]))}})}get encoding(){return`utf-8`}get readable(){return this.#n.readable}get writable(){return this.#n.writable}};function hasStreamingSupport(){try{return new TextDecoder().decode(new Uint8Array([195]),{stream:!0}),!0}catch{return!1}}const mr=hasStreamingSupport();function incompleteUtf8Tail$1(n){let a=n.length;if(a===0)return 0;for(let S=1;S<=Math.min(3,a);S++){let C=n[a-S];if(!(C&128))return 0;if((C&192)!=128){let n;if((C&224)==192)n=2;else if((C&240)==224)n=3;else if((C&248)==240)n=4;else return 0;return S<n?S:0}}return 0}__name$1(incompleteUtf8Tail$1,`incompleteUtf8Tail`);var TextDecoderStream=class{#e;#t;constructor(n,a){if(this.#e=new TextDecoder(n,a),mr)this.#t=new TransformStream({transform:(n,a)=>{let S=toUint8Array$3(n),C=this.#e.decode(S,{stream:!0});C&&a.enqueue(C)},flush:n=>{let a=this.#e.decode();a&&n.enqueue(a)},cancel:()=>{this.#e.decode()}});else{let n=new Uint8Array;this.#t=new TransformStream({transform:(a,S)=>{let C=toUint8Array$3(a),N;n.length>0?(N=new Uint8Array(n.length+C.length),N.set(n,0),N.set(C,n.length)):N=C;let F=incompleteUtf8Tail$1(N),I;if(F>0?(I=N.slice(0,N.length-F),n=N.slice(N.length-F)):(I=N,n=new Uint8Array),I.length>0){let n=this.#e.decode(I);n&&S.enqueue(n)}},flush:a=>{if(n.length>0){let S=this.#e.decode(n);S&&a.enqueue(S),n=new Uint8Array}},cancel:()=>{n=new Uint8Array}})}}get encoding(){return this.#e.encoding}get fatal(){return this.#e.fatal}get ignoreBOM(){return this.#e.ignoreBOM}get readable(){return this.#t.readable}get writable(){return this.#t.writable}};function toUint8Array$3(n){if(n instanceof Uint8Array)return n;if(n instanceof ArrayBuffer)return new Uint8Array(n);if(ArrayBuffer.isView(n))return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);throw TypeError(`chunk must be a BufferSource`)}__name$1(toUint8Array$3,`toUint8Array`);function isNativeStreamUsable$3(n,a){try{return typeof n==`function`?typeof n.prototype[a]==`function`:!1}catch{return!1}}__name$1(isNativeStreamUsable$3,`isNativeStreamUsable`);const hr=isNativeStreamUsable$3(globalThis.ReadableStream,`getReader`)?globalThis.ReadableStream:ReadableStream$1,gr=isNativeStreamUsable$3(globalThis.WritableStream,`getWriter`)?globalThis.WritableStream:WritableStream,_r=isNativeStreamUsable$3(globalThis.TransformStream,`readable`)?globalThis.TransformStream:TransformStream,vr=typeof globalThis.ByteLengthQueuingStrategy==`function`?globalThis.ByteLengthQueuingStrategy:ByteLengthQueuingStrategy,yr=typeof globalThis.CountQueuingStrategy==`function`?globalThis.CountQueuingStrategy:CountQueuingStrategy,br=typeof globalThis.TextEncoderStream==`function`?globalThis.TextEncoderStream:TextEncoderStream,Sr=typeof globalThis.TextDecoderStream==`function`?globalThis.TextDecoderStream:TextDecoderStream;var Cr=__esmMin(()=>{et()});function _setPipeImpl(n){wr=n}var wr,Stream_,Tr=__esmMin(()=>{Vt(),Stream_=class extends At{constructor(n){super(n)}pipe(n,a){return wr(this,n,a)}}});function getDefaultHighWaterMark(n){return n?Dr:Er}function setDefaultHighWaterMark(n,a){if(typeof a!=`number`||a<0||Number.isNaN(a))throw TypeError(`Invalid highWaterMark: ${a}`);n?Dr=a:Er=a}function validateHighWaterMark(n,a){if(a!==void 0&&(typeof a!=`number`||Number.isNaN(a))){let S=TypeError(`The value of "${n}" is invalid. Received ${a}`);throw S.code=`ERR_INVALID_ARG_VALUE`,S}}var Er,Dr,Or=__esmMin(()=>{Er=16384,Dr=16});function chunkLength(n){if(n==null)return 1;let a=n.length;return typeof a==`number`?a:1}function sliceChunk(n,a,S){if(typeof n==`string`)return S===void 0?n.slice(a):n.slice(a,S);let C=n.slice;return typeof C==`function`?C.call(n,a,S):n}var kr,Ar=__esmMin(()=>{Tr(),Or(),et(),kr=class Readable_ extends Stream_{readable=!0;readableFlowing=null;readableLength=0;readableHighWaterMark;readableEncoding;readableObjectMode;readableEnded=!1;readableAborted=!1;destroyed=!1;_pipeDests=[];_buffer=[];_readableState={ended:!1,endEmitted:!1,reading:!1,constructed:!0,highWaterMark:0,objectMode:!1,pipes:[]};_err;_readablePending=!1;_readImpl;_destroyImpl;_constructImpl;constructor(n){super(n),this.readableHighWaterMark=n?.highWaterMark??getDefaultHighWaterMark(n?.objectMode??!1),this.readableEncoding=n?.encoding??null,this.readableObjectMode=n?.objectMode??!1,this._readableState.highWaterMark=this.readableHighWaterMark,this._readableState.objectMode=this.readableObjectMode,n?.read&&(this._readImpl=n.read),n?.destroy&&(this._destroyImpl=n.destroy),n?.construct&&(this._constructImpl=n.construct),(this._constructImpl||this._construct!==Readable_.prototype._construct)&&(this._readableState.constructed=!1,nextTick(()=>{this._construct(n=>{this._readableState.constructed=!0,n?this.destroy(n):this.readableFlowing===!0&&this._flow()})}))}_construct(n){this._constructImpl?this._constructImpl.call(this,n):n()}_read(n){this._readImpl&&this._readImpl.call(this,n)}read(n){if(!this._readableState.constructed)return null;if(this._buffer.length===0){if(this._readableState.ended)return null;this._readableState.reading=!0,this._read(n??this.readableHighWaterMark),this._readableState.reading=!1}if(this._buffer.length===0||n===0)return null;if(this.readableObjectMode){if(n===void 0){let n=this._buffer.shift();return--this.readableLength,this._readableState.ended&&this._buffer.length===0&&!this._readableState.endEmitted&&this._emitEnd(),n}if(n>this.readableLength)return null;let a=this._buffer.shift();return--this.readableLength,a}if(n!=null)return n>this.readableLength?null:this._readBytes(n);let a=this._buffer.splice(0);if(this.readableLength=0,this._readableState.ended&&this._buffer.length===0&&!this._readableState.endEmitted&&this._emitEnd(),a.length===1)return a[0];if(a.length===0)return null;if(typeof a[0]==`string`)return a.join(``);let S=globalThis.Buffer;return S?.concat?S.concat(a):a}_readBytes(n){let a=0,S=[];for(;a<n&&this._buffer.length>0;){let C=this._buffer[0],N=chunkLength(C);if(a+N<=n)S.push(this._buffer.shift()),a+=N,this.readableLength-=N;else{let N=n-a;S.push(sliceChunk(C,0,N)),this._buffer[0]=sliceChunk(C,N),this.readableLength-=N,a+=N}}if(S.length===1)return S[0];let C=globalThis.Buffer;return C?.concat?C.concat(S):S}push(n,a){if(n===null)return this._readableState.ended=!0,this.readableEnded=!0,this._buffer.length===0&&!this._readableState.endEmitted&&nextTick(()=>this._emitEnd()),this._scheduleReadable(),!1;if(!this.readableObjectMode&&!(typeof n==`string`||ArrayBuffer.isView(n))){let a=Object.assign(TypeError(`Invalid non-string/buffer chunk type: ${typeof n}`),{code:`ERR_INVALID_ARG_TYPE`});return nextTick(()=>this.emit(`error`,a)),!1}return this._buffer.push(n),this.readableLength+=this.readableObjectMode?1:chunkLength(n),this.readableFlowing&&!this._flowing&&nextTick(()=>this._flow()),this.readableFlowing!==!0&&this._scheduleReadable(),this.readableLength<this.readableHighWaterMark}_emitEnd(){this._readableState.endEmitted||(this._readableState.endEmitted=!0,this.emit(`end`),nextTick(()=>this._autoClose()))}_autoClose(){this.emit(`close`)}_scheduleReadable(){this._readablePending||this.listenerCount(`readable`)===0||(this._readablePending=!0,nextTick(()=>{this._readablePending=!1,this.destroyed||this.emit(`readable`)}))}on(n,a){return super.on(n,a),n===`data`&&this.readableFlowing!==!1&&this.resume(),n===`readable`&&(this._buffer.length>0||this._readableState.ended)&&this._scheduleReadable(),this}unshift(n){this._buffer.unshift(n),this.readableLength+=this.readableObjectMode?1:chunkLength(n)}setEncoding(n){return this.readableEncoding=n,this}pause(){return this.readableFlowing=!1,this.emit(`pause`),this}resume(){return this.readableFlowing!==!0&&(this.readableFlowing=!0,this.emit(`resume`),this._readableState.constructed&&this._flow()),this}_flowing=!1;_flow(){if(!(this.readableFlowing!==!0||this._flowing||this.destroyed)&&this._readableState.constructed){this._flowing=!0;try{for(;this._buffer.length>0&&this.readableFlowing&&!this.destroyed;){let n=this._buffer.shift();if(this.readableLength-=this.readableObjectMode?1:chunkLength(n),this.readableEncoding&&typeof n!=`string`){let a=globalThis.Buffer;a?.isBuffer&&a.isBuffer(n)?n=n.toString(this.readableEncoding):n instanceof Uint8Array&&(n=new TextDecoder(this.readableEncoding).decode(n))}this.emit(`data`,n)}if(this.destroyed)return;if(this._readableState.ended&&this._buffer.length===0&&!this._readableState.endEmitted){nextTick(()=>this._emitEnd());return}!this._readableState.ended&&!this._readableState.reading&&!this.destroyed&&(this._readableState.reading=!0,this._read(this.readableHighWaterMark),this._readableState.reading=!1)}finally{this._flowing=!1}this._buffer.length>0&&this.readableFlowing&&!this.destroyed&&nextTick(()=>this._flow())}}isPaused(){return this.readableFlowing===!1}unpipe(n){if(n){let a=this._pipeDests.findIndex(a=>a.dest===n);if(a!==-1){this._pipeDests[a].cleanup(),this._pipeDests.splice(a,1);let S=this._readableState.pipes.indexOf(n);S!==-1&&this._readableState.pipes.splice(S,1),n.emit(`unpipe`,this),this._pipeDests.length===0&&(this.readableFlowing=!1)}}else{for(let n of this._pipeDests)n.cleanup(),n.dest.emit(`unpipe`,this);this._pipeDests=[],this._readableState.pipes=[],this.readableFlowing=!1}return this}_destroy(n,a){this._destroyImpl?this._destroyImpl.call(this,n,a):a(n??void 0)}destroy(n){if(this.destroyed)return this;this.destroyed=!0,this.readable=!1,this.readableAborted=!this.readableEnded,n&&(this._err=n);let cb=n=>{n&&nextTick(()=>this.emit(`error`,n)),nextTick(()=>this.emit(`close`))};return Object.prototype.hasOwnProperty.call(this,`_destroy`)?this._destroy(n??null,cb):this._destroyImpl?this._destroyImpl.call(this,n??null,cb):cb(n),this}static toWeb(n){return new ReadableStream({start(a){n.on(`data`,n=>{typeof n==`string`?a.enqueue(new TextEncoder().encode(n)):n instanceof Uint8Array?a.enqueue(n):n&&typeof n.length==`number`&&a.enqueue(new Uint8Array(n))}),n.on(`end`,()=>{a.close()}),n.on(`error`,n=>{a.error(n)})},cancel(){n.destroy()}})}static fromWeb(n,a){let S=n.getReader();return new Readable_({...a,read(){S.read().then(({done:n,value:a})=>{n?this.push(null):this.push(a)},n=>{this.destroy(n)})},destroy(n,a){S.cancel(n?.message).then(()=>a(null),a)}})}[Symbol.asyncIterator](){let n=this,a=[],S=!1,C=null,N=null,F=null;return n.on(`data`,n=>{if(N){let a=N;N=null,F=null,a({value:n,done:!1})}else a.push(n)}),n.on(`end`,()=>{if(S=!0,N){let n=N;N=null,F=null,n({value:void 0,done:!0})}}),n.on(`error`,n=>{if(C=n,S=!0,F){let a=F;N=null,F=null,a(n)}}),{next(){return C?Promise.reject(C):a.length>0?Promise.resolve({value:a.shift(),done:!1}):S?Promise.resolve({value:void 0,done:!0}):new Promise((n,a)=>{N=n,F=a})},return(){return n.destroy(),Promise.resolve({value:void 0,done:!0})},[Symbol.asyncIterator](){return this}}}static from(n,a){let S=new Readable_({objectMode:!0,...a,read(){}});return typeof n==`string`||ArrayBuffer.isView(n)?(S.push(n),S.push(null),S):((async()=>{try{for await(let a of n)S.push(a)||await new Promise(n=>S.once(`drain`,n));S.push(null)}catch(n){S.destroy(n)}})(),S)}}});function chunkLen$1(n){if(n==null)return 1;let a=n.length;return typeof a==`number`?a:1}var Duplex_,jr=__esmMin(()=>{Or(),Ar(),et(),Duplex_=class extends kr{writable=!0;writableHighWaterMark;writableLength=0;writableObjectMode;writableEnded=!1;writableFinished=!1;writableCorked=0;writableNeedDrain=!1;allowHalfOpen;_decodeStrings;_writableState={highWaterMark:0,objectMode:!1};_duplexCorkedBuffer=[];_duplexWriting=!1;_duplexWriteQueue=[];_writeImpl;_finalImpl;_defaultEncoding=`utf8`;_pendingWrites=0;_pendingEndCb=null;constructor(n){super(n),validateHighWaterMark(`writableHighWaterMark`,n?.writableHighWaterMark),validateHighWaterMark(`readableHighWaterMark`,n?.readableHighWaterMark),this.writableObjectMode=n?.writableObjectMode??n?.objectMode??!1,this.writableHighWaterMark=n?.highWaterMark??n?.writableHighWaterMark??getDefaultHighWaterMark(this.writableObjectMode),this._writableState.highWaterMark=this.writableHighWaterMark,this._writableState.objectMode=this.writableObjectMode,n?.highWaterMark===void 0&&n?.readableHighWaterMark!==void 0&&(this.readableHighWaterMark=n.readableHighWaterMark,this._readableState.highWaterMark=n.readableHighWaterMark),n?.readableObjectMode!==void 0&&(this.readableObjectMode=n.readableObjectMode,this._readableState.objectMode=n.readableObjectMode,n?.readableHighWaterMark===void 0&&n?.highWaterMark===void 0&&(this.readableHighWaterMark=getDefaultHighWaterMark(n.readableObjectMode),this._readableState.highWaterMark=this.readableHighWaterMark)),this.allowHalfOpen=n?.allowHalfOpen!==!1,this._decodeStrings=n?.decodeStrings!==!1,n?.write&&(this._writeImpl=n.write),n?.final&&(this._finalImpl=n.final),this.allowHalfOpen||this.once(`end`,()=>{this.writableEnded||nextTick(()=>this.end())})}_write(n,a,S){this._writeImpl?this._writeImpl.call(this,n,a,S):S()}_final(n){this._finalImpl?this._finalImpl.call(this,n):n()}destroy(n){return this.destroyed?this:(this.writable=!1,super.destroy(n))}write(n,a,S){let C,N;if(typeof a==`function`?(C=a,N=this._defaultEncoding):(N=a??this._defaultEncoding,C=S??(()=>{})),this._decodeStrings&&!this.writableObjectMode&&typeof n==`string`){let a=globalThis.Buffer;a&&(n=a.from(n,N),N=`buffer`)}if(typeof n!=`string`&&!this.writableObjectMode){let a=globalThis.Buffer;(a&&a.isBuffer(n)||n instanceof Uint8Array)&&(N=`buffer`)}if(this.writableEnded){let n=Error(`write after end`);return nextTick(()=>{C(n),this.emit(`error`,n)}),!1}if(this.writableLength+=this.writableObjectMode?1:chunkLen$1(n),this.writableCorked>0)return this._duplexCorkedBuffer.push({chunk:n,encoding:N,callback:C}),this.writableLength<this.writableHighWaterMark;let F=this.writableLength<this.writableHighWaterMark;return F||(this.writableNeedDrain=!0),this._duplexDoWrite(n,N,C),F}_duplexDoWrite(n,a,S){if(this._duplexWriting){this._duplexWriteQueue.push({chunk:n,encoding:a,callback:S});return}this._duplexWriting=!0,this._duplexStartWrite(n,a,S)}_duplexStartWrite(n,a,S){this._pendingWrites++,this._write(n,a,a=>{this._pendingWrites--,this.writableLength-=this.writableObjectMode?1:chunkLen$1(n),nextTick(a?()=>{if(S(a),this._duplexWriting=!1,this.emit(`error`,a),this._duplexWriteQueue.length>0){let n=this._duplexWriteQueue.shift();this._duplexWriting=!0,this._duplexStartWrite(n.chunk,n.encoding,n.callback)}}:()=>{if(S(),this._duplexWriteQueue.length>0){let n=this._duplexWriteQueue.shift();this._duplexStartWrite(n.chunk,n.encoding,n.callback);return}if(this._duplexWriting=!1,this.writableNeedDrain&&this.writableLength<=this.writableHighWaterMark&&(this.writableNeedDrain=!1,this.emit(`drain`)),this._pendingWrites===0&&this._pendingEndCb){let n=this._pendingEndCb;this._pendingEndCb=null,n()}})})}end(n,a,S){typeof n==`function`&&(S=n,n=void 0),typeof a==`function`&&(S=a,a=void 0),n!=null&&this.write(n,a),this.writableEnded=!0;let doFinal=()=>{this._final(n=>{this.writableFinished=!0,this._doPrefinishHooks(()=>{nextTick(()=>{n&&this.emit(`error`,n),this.emit(`finish`),nextTick(()=>this.emit(`close`)),S&&S()})})})};return this._pendingWrites>0||this._duplexWriting||this._duplexWriteQueue.length>0?this._pendingEndCb=doFinal:doFinal(),this}_doPrefinishHooks(n){n()}cork(){this.writableCorked++}uncork(){if(this.writableCorked>0&&(this.writableCorked--,this.writableCorked===0&&this._duplexCorkedBuffer.length>0)){let n=this._duplexCorkedBuffer.splice(0);for(let{chunk:a,encoding:S,callback:C}of n)this._write(a,S,n=>{this.writableLength-=this.writableObjectMode?1:chunkLen$1(a),n?(C(n),this.emit(`error`,n)):C()});this.writableNeedDrain&&this.writableLength<=this.writableHighWaterMark&&(this.writableNeedDrain=!1,nextTick(()=>this.emit(`drain`)))}}setDefaultEncoding(n){return this._defaultEncoding=n,this}},__name$1(chunkLen$1,`chunkLen`)});function pipe(n,a,S){let C=n,N=S?.end!==!1,F=!1,ondrain=()=>{F=!1,a.removeListener(`drain`,ondrain);let n=C;typeof n.resume==`function`&&n.resume()},ondata=n=>{if(a.writable){let S=C;a.write(n)===!1&&typeof S.pause==`function`&&(S.pause(),F||(F=!0,a.on(`drain`,ondrain)))}};C.on(`data`,ondata);let I=!1,onend=()=>{I||(I=!0,N&&a.end())},onclose=()=>{if(!I&&(I=!0,N&&!(C instanceof kr))){let n=a;typeof n.destroy==`function`&&n.destroy()}};N&&(C.on(`end`,onend),C.on(`close`,onclose));let cleanup=()=>{C.removeListener(`data`,ondata),F&&a.removeListener(`drain`,ondrain),C.removeListener(`end`,onend),C.removeListener(`close`,onclose),C.removeListener(`end`,cleanup),C.removeListener(`close`,cleanup),a.removeListener(`close`,cleanup)};return C.on(`end`,cleanup),C.on(`close`,cleanup),a.on(`close`,cleanup),C instanceof kr&&(C._pipeDests.push({dest:a,cleanup}),C._readableState.pipes.push(a)),a.emit(`pipe`,C),a}var Mr=__esmMin(()=>{Tr(),Ar(),_setPipeImpl(pipe)});function chunkLen(n){if(n==null)return 1;let a=n.length;return typeof a==`number`?a:1}var Nr,Pr=__esmMin(()=>{Tr(),Or(),et(),Nr=class Writable_ extends Stream_{static[Symbol.hasInstance](n){let a=this;return a.prototype!==void 0&&Object.prototype.isPrototypeOf.call(a.prototype,n)?!0:a.prototype!==Writable_.prototype||n==null?!1:typeof n.writableHighWaterMark==`number`}writable=!0;writableHighWaterMark;writableLength=0;writableObjectMode;writableEnded=!1;writableFinished=!1;writableCorked=0;writableNeedDrain=!1;destroyed=!1;_err;_writableState={ended:!1,finished:!1,constructed:!0,writing:!1};_corkedBuffer=[];_writeBuffer=[];_pendingConstruct=[];_ending=!1;_endCallback;_pendingEnd=null;_writeImpl;_writev;_finalImpl;_destroyImpl;_constructImpl;_decodeStrings;_defaultEncoding=`utf8`;constructor(n){super(n),this.writableHighWaterMark=n?.highWaterMark??getDefaultHighWaterMark(n?.objectMode??!1),this.writableObjectMode=n?.objectMode??!1,this._decodeStrings=n?.decodeStrings!==!1,n?.write&&(this._writeImpl=n.write),n?.writev&&(this._writev=n.writev),n?.final&&(this._finalImpl=n.final),n?.destroy&&(this._destroyImpl=n.destroy),n?.construct&&(this._constructImpl=n.construct),(this._constructImpl||this._construct!==Writable_.prototype._construct)&&(this._writableState.constructed=!1,nextTick(()=>{this._construct(n=>{this._writableState.constructed=!0,n?this.destroy(n):this._maybeFlush()})}))}_construct(n){this._constructImpl?this._constructImpl.call(this,n):n()}_write(n,a,S){this._writeImpl?this._writeImpl.call(this,n,a,S):S()}_final(n){this._finalImpl?this._finalImpl.call(this,n):n()}_destroy(n,a){this._destroyImpl?this._destroyImpl.call(this,n,a):a(n)}_maybeFlush(){let n=this._pendingConstruct.splice(0);if(n.length>0){let[a,...S]=n;this._writeBuffer.push(...S),this._doWrite(a.chunk,a.encoding,a.callback)}if(this._pendingEnd){let{chunk:n,encoding:a,callback:S}=this._pendingEnd;this._pendingEnd=null,this._doEnd(n,a,S)}}_doWrite(n,a,S){this._writableState.writing=!0;let C=!0;this._write(n,a,a=>{if(this.writableLength-=this.writableObjectMode?1:chunkLen(n),C){nextTick(()=>{if(a){S(a),this.emit(`error`,a);return}S(),this.writableNeedDrain&&this.writableLength<=this.writableHighWaterMark&&(this.writableNeedDrain=!1,this.emit(`drain`))}),a||this._drainWriteBuffer();return}nextTick(a?()=>{S(a),this.emit(`error`,a),this._drainWriteBuffer()}:()=>{S(),this.writableNeedDrain&&this.writableLength<=this.writableHighWaterMark&&(this.writableNeedDrain=!1,this.emit(`drain`)),this._drainWriteBuffer()})}),C=!1}_drainWriteBuffer(){if(this._writeBuffer.length>0){let n=this._writeBuffer.shift();this._doWrite(n.chunk,n.encoding,n.callback)}else this._writableState.writing=!1,this._maybeFinish()}_maybeFinish(){!this._ending||this._writableState.finished||this._writableState.writing||this._writeBuffer.length>0||(this._ending=!1,this._final(n=>{this.writableFinished=!0,this._writableState.finished=!0,nextTick(()=>{n&&this.emit(`error`,n),this.emit(`finish`),nextTick(()=>this.emit(`close`)),this._endCallback&&this._endCallback()})}))}write(n,a,S){let C,N;if(typeof a==`function`?(C=a,N=this._defaultEncoding):(N=a??this._defaultEncoding,C=S??(()=>{})),this._decodeStrings&&!this.writableObjectMode&&typeof n==`string`){let a=globalThis.Buffer;a&&(n=a.from(n,N),N=`buffer`)}if(typeof n!=`string`&&!this.writableObjectMode){let a=globalThis.Buffer;(a&&a.isBuffer(n)||n instanceof Uint8Array)&&(N=`buffer`)}if(this.writableEnded){let n=Error(`write after end`);return nextTick(()=>{C(n),this.emit(`error`,n)}),!1}if(this.writableLength+=this.writableObjectMode?1:chunkLen(n),this.writableCorked>0)return this._corkedBuffer.push({chunk:n,encoding:N,callback:C}),this.writableLength<this.writableHighWaterMark;if(!this._writableState.constructed)return this._pendingConstruct.push({chunk:n,encoding:N,callback:C}),this.writableLength<this.writableHighWaterMark;let F=this.writableLength<this.writableHighWaterMark;return F||(this.writableNeedDrain=!0),this._writableState.writing?this._writeBuffer.push({chunk:n,encoding:N,callback:C}):this._doWrite(n,N,C),F}_doEnd(n,a,S){n!=null&&this.write(n,a),this.writableEnded=!0,this._writableState.ended=!0,this._ending=!0,this._endCallback=S,this._maybeFinish()}end(n,a,S){return typeof n==`function`&&(S=n,n=void 0),typeof a==`function`&&(S=a,a=void 0),this.writableEnded?(S&&nextTick(S),this):this._writableState.constructed?(this._doEnd(n,a,S),this):(this._pendingEnd={chunk:n,encoding:a,callback:S},this)}cork(){this.writableCorked++}uncork(){this.writableCorked>0&&(this.writableCorked--,this.writableCorked===0&&this._corkedBuffer.length>0&&this._flushCorkedBuffer())}_flushCorkedBuffer(){if(this._writev&&this._corkedBuffer.length>1){let n=this._corkedBuffer.splice(0),a=n.map(n=>({chunk:n.chunk,encoding:n.encoding}));this._writev.call(this,a,a=>{for(let a of n)this.writableLength-=this.writableObjectMode?1:chunkLen(a.chunk);if(a){for(let S of n)S.callback(a);this.emit(`error`,a)}else{for(let a of n)a.callback();this.writableNeedDrain&&this.writableLength<=this.writableHighWaterMark&&(this.writableNeedDrain=!1,this.emit(`drain`))}})}else{let n=this._corkedBuffer.splice(0);if(n.length>0){let[a,...S]=n;this._writeBuffer.push(...S),this._doWrite(a.chunk,a.encoding,a.callback)}}}setDefaultEncoding(n){return this._defaultEncoding=n,this}destroy(n){if(this.destroyed)return this;this.destroyed=!0,this.writable=!1,n&&(this._err=n);let cb=n=>{n&&nextTick(()=>this.emit(`error`,n)),nextTick(()=>this.emit(`close`))};return this._destroy(n??null,cb),this}}}),Fr,Ir=__esmMin(()=>{jr(),et(),Fr=class Transform_ extends Duplex_{constructor(n){super({...n,write:void 0,final:void 0});let a=this;n?.transform&&(a._transform=n.transform),n?.flush&&(a._flush=n.flush),n?.final&&(a._final=n.final)}_transform(n,a,S){throw Object.assign(Error(`The _transform() method is not implemented`),{code:`ERR_METHOD_NOT_IMPLEMENTED`})}_flush(n){n()}_write(n,a,S){let C=!1;try{this._transform(n,a,(n,a)=>{if(C){let n=Object.assign(Error(`Callback called multiple times`),{code:`ERR_MULTIPLE_CALLBACK`});nextTick(()=>this.emit(`error`,n));return}if(C=!0,n){S(n);return}a!=null&&this.push(a),S()})}catch(n){if(n?.code===`ERR_METHOD_NOT_IMPLEMENTED`)throw n;S(n)}}_final(n){this._flush((a,S)=>{if(a){n(a);return}S!=null&&this.push(S),this.push(null),n()})}_doPrefinishHooks(n){let a=Transform_.prototype._final;this._final===a?n():a.call(this,n)}}}),PassThrough_,Lr=__esmMin(()=>{Ir(),PassThrough_=class extends Fr{constructor(n){super({...n,transform(n,a,S){S(null,n)}})}}});function pipeline(...n){let a=n,S=typeof a[a.length-1]==`function`?a.pop():void 0,C=a;if(C.length<2)throw Error(`pipeline requires at least 2 streams`);let N=null;function onError(n){if(!N){N=n;for(let n of C)typeof n.destroy==`function`&&n.destroy();S&&S(n)}}let F=C[0];for(let n=1;n<C.length;n++){let a=C[n];F.pipe(a),F.on(`error`,onError),F=a}let I=C[C.length-1];return I.on(`error`,onError),I.on(`finish`,()=>{S&&!N&&S(null)}),I}var Rr=__esmMin(()=>{});function finished$1(n,a,S){let C;C=typeof a==`function`?a:S;let N=!1;function done(n){N||(N=!0,C(n))}let onFinish=()=>done(),onEnd=()=>done(),onError=n=>done(n),onClose=()=>{let a=n,S=n;!a.writableFinished&&!S.readableEnded&&done(Error(`premature close`))};n.on(`finish`,onFinish),n.on(`end`,onEnd),n.on(`error`,onError),n.on(`close`,onClose);let F=n,I=typeof n.write==`function`,H=typeof n.read==`function`,W=F.writableFinished===!0,K=F.readableEnded===!0;if(F.destroyed===!0){let n=F._err;Re(n?()=>done(n):I&&W||H&&K?()=>done():()=>done(Error(`premature close`)))}else (I&&!H&&W||!I&&H&&K||I&&H&&W&&K)&&Re(()=>done());return function cleanup(){n.removeListener(`finish`,onFinish),n.removeListener(`end`,onEnd),n.removeListener(`error`,onError),n.removeListener(`close`,onClose)}}function addAbortSignal(n,a){if(!(n instanceof AbortSignal))throw TypeError(`The first argument must be an AbortSignal`);if(!(a instanceof Stream_))throw TypeError(`The second argument must be a Stream`);let S=a;if(n.aborted)S.destroy(Error(`The operation was aborted`));else{let onAbort=()=>{S.destroy(Error(`The operation was aborted`))};n.addEventListener(`abort`,onAbort,{once:!0}),a.once(`close`,()=>{n.removeEventListener(`abort`,onAbort)})}return a}function isReadable(n){if(n==null)return!1;let a=n;return typeof a.readable!=`boolean`||typeof a.read!=`function`||a.destroyed===!0||a.readableEnded===!0?!1:a.readable===!0}function isWritable(n){if(n==null)return!1;let a=n;return typeof a.writable!=`boolean`||typeof a.write!=`function`||a.destroyed===!0||a.writableEnded===!0?!1:a.writable===!0}function isDestroyed(n){return n==null?!1:n.destroyed===!0}function isDisturbed(n){if(n==null)return!1;let a=n;return a.readableDidRead===!0||a.readableFlowing!==null&&a.readableFlowing!==void 0}function isErrored(n){if(n==null)return!1;let a=n;return a.destroyed===!0&&typeof a.readable==`boolean`&&a.readable===!1||a.destroyed===!0&&typeof a.writable==`boolean`&&a.writable===!1}var zr=__esmMin(()=>{Tr(),et(),__name$1(finished$1,`finished`)}),Br=__exportAll$3({Duplex:()=>Wr,PassThrough:()=>Kr,Readable:()=>Hr,Stream:()=>Vr,Transform:()=>Gr,Writable:()=>Ur,addAbortSignal:()=>addAbortSignal,default:()=>qr,finished:()=>finished$1,getDefaultHighWaterMark:()=>getDefaultHighWaterMark,isDestroyed:()=>isDestroyed,isDisturbed:()=>isDisturbed,isErrored:()=>isErrored,isReadable:()=>isReadable,isWritable:()=>isWritable,pipeline:()=>pipeline,setDefaultHighWaterMark:()=>setDefaultHighWaterMark}),Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr=__esmMin(()=>{Cr(),Tr(),Or(),Ar(),jr(),Mr(),Pr(),Ir(),Lr(),Rr(),zr(),Vr=makeCallable(Stream_),Hr=makeCallable(kr),Ur=makeCallable(Nr),Wr=makeCallable(Duplex_),Gr=makeCallable(Fr),Kr=makeCallable(PassThrough_),qr=Object.assign(Vr,{Stream:Vr,Readable:Hr,Writable:Ur,Duplex:Wr,Transform:Gr,PassThrough:Kr,pipeline,finished:finished$1,addAbortSignal,isReadable,isWritable,isDestroyed,isDisturbed,isErrored,getDefaultHighWaterMark,setDefaultHighWaterMark})});function getGioCompressorFormat(n){switch(n){case`gzip`:return _e.ZlibCompressorFormat.GZIP;case`deflate`:return _e.ZlibCompressorFormat.ZLIB;case`deflate-raw`:return _e.ZlibCompressorFormat.RAW}}function toUint8Array$2(n){return typeof n==`string`?new TextEncoder().encode(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}function createGzip(n){return new ZlibTransform(`gzip`,`compress`,n)}function createGunzip(n){return new ZlibTransform(`gzip`,`decompress`,n)}function createDeflate(n){return new ZlibTransform(`deflate`,`compress`,n)}function createInflate(n){return new ZlibTransform(`deflate`,`decompress`,n)}function createDeflateRaw(n){return new ZlibTransform(`deflate-raw`,`compress`,n)}function createInflateRaw(n){return new ZlibTransform(`deflate-raw`,`decompress`,n)}function createUnzip(n){return new ZlibTransform(`gzip`,`decompress`,n)}function createBrotliCompress(n){throw Error(`createBrotliCompress is not supported on GJS (no Brotli in GLib)`)}function createBrotliDecompress(n){throw Error(`createBrotliDecompress is not supported on GJS (no Brotli in GLib)`)}var ZlibTransform,Yr=__esmMin(()=>{ve(),se(),Jr(),__name$1(toUint8Array$2,`toUint8Array`),ZlibTransform=class extends Gr{_format;_mode;_chunks=[];constructor(n,a,S){super(S),this._format=n,this._mode=a}_transform(n,a,S){this._chunks.push(toUint8Array$2(n)),S()}_flush(n){let a=this._chunks.reduce((n,a)=>n+a.length,0),S=new Uint8Array(a),C=0;for(let n of this._chunks)S.set(n,C),C+=n.length;this._chunks=[];try{let a=this._mode===`compress`?this._compress(S):this._decompress(S);this.push(Buffer.from(a)),n()}catch(a){n(a instanceof Error?a:Error(String(a)))}}_compress(n){let a=new _e.ZlibCompressor({format:getGioCompressorFormat(this._format)}),S=new _e.ConverterOutputStream({base_stream:_e.MemoryOutputStream.new_resizable(),converter:a});S.write_bytes(new Z.Bytes(n),null),S.close(null);let C=S.get_base_stream().steal_as_bytes();return new Uint8Array(C.get_data()??[])}_decompress(n){let a=new _e.ZlibDecompressor({format:getGioCompressorFormat(this._format)}),S=_e.MemoryInputStream.new_from_bytes(new Z.Bytes(n)),C=new _e.ConverterInputStream({base_stream:S,converter:a}),N=[];for(;;){let n=C.read_bytes(4096,null);if(n.get_size()===0)break;N.push(new Uint8Array(n.get_data()))}C.close(null);let F=N.reduce((n,a)=>n+a.length,0),I=new Uint8Array(F),H=0;for(let n of N)I.set(n,H),H+=n.length;return I}}}),Xr=__exportAll$3({ZlibTransform:()=>ZlibTransform,brotliCompress:()=>brotliCompress,brotliCompressSync:()=>brotliCompressSync,brotliDecompress:()=>brotliDecompress,brotliDecompressSync:()=>brotliDecompressSync,constants:()=>$r,createBrotliCompress:()=>createBrotliCompress,createBrotliDecompress:()=>createBrotliDecompress,createDeflate:()=>createDeflate,createDeflateRaw:()=>createDeflateRaw,createGunzip:()=>createGunzip,createGzip:()=>createGzip,createInflate:()=>createInflate,createInflateRaw:()=>createInflateRaw,createUnzip:()=>createUnzip,default:()=>ei,deflate:()=>deflate,deflateRaw:()=>deflateRaw,deflateRawSync:()=>deflateRawSync,deflateSync:()=>deflateSync,gunzip:()=>gunzip$1,gunzipSync:()=>gunzipSync,gzip:()=>gzip$1,gzipSync:()=>gzipSync,inflate:()=>inflate,inflateRaw:()=>inflateRaw,inflateRawSync:()=>inflateRawSync,inflateSync:()=>inflateSync});function getGioFormat(n){switch(n){case`gzip`:return _e.ZlibCompressorFormat.GZIP;case`deflate`:return _e.ZlibCompressorFormat.ZLIB;case`deflate-raw`:return _e.ZlibCompressorFormat.RAW}}function compressWithGio(n,a){let S=new _e.ZlibCompressor({format:getGioFormat(a)}),C=new _e.ConverterOutputStream({base_stream:_e.MemoryOutputStream.new_resizable(),converter:S});C.write_bytes(new Z.Bytes(n),null),C.close(null);let N=C.get_base_stream().steal_as_bytes();return new Uint8Array(N.get_data()??[])}function decompressStreamWithGio(n,a){let S=new _e.ZlibDecompressor({format:getGioFormat(a)}),C=_e.MemoryInputStream.new_from_bytes(new Z.Bytes(n)),N=new _e.ConverterInputStream({base_stream:C,converter:S}),F=[];for(;;){let n=N.read_bytes(4096,null);if(n.get_size()===0)break;F.push(new Uint8Array(n.get_data()))}N.close(null);let I=F.reduce((n,a)=>n+a.length,0),H=new Uint8Array(I),W=0;for(let n of F)H.set(n,W),W+=n.length;return H}function findGzipMemberEnd(n){let a=new _e.ZlibDecompressor({format:_e.ZlibCompressorFormat.GZIP}),S=new Uint8Array(65536),C=0,N=!1;for(;!N;){let F=n.subarray(C);try{let[n,I]=a.convert(F,S,_e.ConverterFlags.NONE);C+=I,n===_e.ConverterResult.FINISHED&&(N=!0)}catch{N=!0}}return C}function decompressWithGio(n,a){if(a!==`gzip`)return decompressStreamWithGio(n,a);let S=[],C=0;for(;C<n.length&&!(n.length-C<2||n[C]!==31||n[C+1]!==139);){let a=n.subarray(C),N=findGzipMemberEnd(a);if(N<=0)break;let F=decompressStreamWithGio(a.subarray(0,N),`gzip`);S.push(F),C+=N}if(S.length===0)return decompressStreamWithGio(n,`gzip`);let N=S.reduce((n,a)=>n+a.length,0),F=new Uint8Array(N),I=0;for(let n of S)F.set(n,I),I+=n.length;return F}async function compressWithWeb(n,a){let S=new CompressionStream(a),C=S.writable.getWriter();C.write(new Uint8Array(n.buffer,n.byteOffset,n.byteLength)),C.close();let N=[],F=S.readable.getReader();for(;;){let{done:n,value:a}=await F.read();if(n)break;N.push(a)}let I=N.reduce((n,a)=>n+a.length,0),H=new Uint8Array(I),W=0;for(let n of N)H.set(n,W),W+=n.length;return H}async function decompressWithWeb(n,a){let S=new DecompressionStream(a),C=S.writable.getWriter();C.write(new Uint8Array(n.buffer,n.byteOffset,n.byteLength)),C.close();let N=[],F=S.readable.getReader();for(;;){let{done:n,value:a}=await F.read();if(n)break;N.push(a)}let I=N.reduce((n,a)=>n+a.length,0),H=new Uint8Array(I),W=0;for(let n of N)H.set(n,W),W+=n.length;return H}async function compress(n,a){return Zr?compressWithWeb(n,a):compressWithGio(n,a)}async function decompress(n,a){return Zr?decompressWithWeb(n,a):decompressWithGio(n,a)}function toUint8Array$1(n){return typeof n==`string`?new TextEncoder().encode(n):n instanceof ArrayBuffer?new Uint8Array(n):n}function gzip$1(n,a,S){let C=typeof a==`function`?a:S;compress(toUint8Array$1(n),`gzip`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function gunzip$1(n,a,S){let C=typeof a==`function`?a:S;decompress(toUint8Array$1(n),`gzip`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function deflate(n,a,S){let C=typeof a==`function`?a:S;compress(toUint8Array$1(n),`deflate`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function inflate(n,a,S){let C=typeof a==`function`?a:S;decompress(toUint8Array$1(n),`deflate`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function deflateRaw(n,a,S){let C=typeof a==`function`?a:S;compress(toUint8Array$1(n),`deflate-raw`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function inflateRaw(n,a,S){let C=typeof a==`function`?a:S;decompress(toUint8Array$1(n),`deflate-raw`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function gzipSync(n,a){return compressWithGio(toUint8Array$1(n),`gzip`)}function gunzipSync(n,a){return decompressWithGio(toUint8Array$1(n),`gzip`)}function deflateSync(n,a){return compressWithGio(toUint8Array$1(n),`deflate`)}function inflateSync(n,a){return decompressWithGio(toUint8Array$1(n),`deflate`)}function deflateRawSync(n,a){return compressWithGio(toUint8Array$1(n),`deflate-raw`)}function inflateRawSync(n,a){return decompressWithGio(toUint8Array$1(n),`deflate-raw`)}function brotliCompress(n,a,S){(typeof a==`function`?a:S)(Error(`brotliCompress: Brotli is not supported in this environment`),Qr)}function brotliDecompress(n,a,S){(typeof a==`function`?a:S)(Error(`brotliDecompress: Brotli is not supported in this environment`),Qr)}function brotliCompressSync(n,a){throw Error(`brotliCompressSync: Brotli is not supported in this environment`)}function brotliDecompressSync(n,a){throw Error(`brotliDecompressSync: Brotli is not supported in this environment`)}var Zr,Qr,$r,ei,ti=__esmMin(()=>{Yr(),ve(),se(),Zr=globalThis.CompressionStream!==void 0,__name$1(toUint8Array$1,`toUint8Array`),__name$1(gzip$1,`gzip`),__name$1(gunzip$1,`gunzip`),Qr=new Uint8Array,$r={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_DEFLATED:8},ei={gzip:gzip$1,gunzip:gunzip$1,deflate,inflate,deflateRaw,inflateRaw,gzipSync,gunzipSync,deflateSync,inflateSync,deflateRawSync,inflateRawSync,brotliCompress,brotliDecompress,brotliCompressSync,brotliDecompressSync,createGzip,createGunzip,createDeflate,createInflate,createDeflateRaw,createInflateRaw,createUnzip,createBrotliCompress,createBrotliDecompress,constants:$r}});const ni=new Set([`gzip`,`deflate`,`deflate-raw`]);function validateFormat(n){if(!ni.has(n))throw TypeError(`Unsupported compression format: '${n}'. Supported formats: 'gzip', 'deflate', 'deflate-raw'.`);return n}const ri=typeof globalThis.CompressionStream==`function`&&typeof globalThis.DecompressionStream==`function`;let ii=!1,ai,oi,si,ci,li,di;async function loadZlib(){if(ii)return;let n=await Promise.resolve().then(()=>(ti(),Xr));ai=n.gzipSync,oi=n.gunzipSync,si=n.deflateSync,ci=n.inflateSync,li=n.deflateRawSync,di=n.inflateRawSync,ii=!0}function getCompressFn(n){switch(n){case`gzip`:return n=>ai(n);case`deflate`:return n=>si(n);case`deflate-raw`:return n=>li(n)}}function getDecompressFn(n){switch(n){case`gzip`:return n=>oi(n);case`deflate`:return n=>ci(n);case`deflate-raw`:return n=>di(n)}}let fi,pi;if(ri)fi=globalThis.CompressionStream,pi=globalThis.DecompressionStream;else{let n=loadZlib();fi=class CompressionStream{readable;writable;constructor(a){let S=validateFormat(a),C=new _r({async transform(a,C){try{await n,C.enqueue(getCompressFn(S)(a))}catch(n){C.error(n)}}});this.readable=C.readable,this.writable=C.writable}},pi=class DecompressionStream{readable;writable;constructor(a){let S=validateFormat(a),C=new _r({async transform(a,C){try{await n,C.enqueue(getDecompressFn(S)(a))}catch(n){C.error(n)}}});this.readable=C.readable,this.writable=C.writable}}}const mi=globalThis;globalThis.CompressionStream===void 0&&(mi.CompressionStream=fi),globalThis.DecompressionStream===void 0&&(mi.DecompressionStream=pi);const hi=globalThis;globalThis.DOMException===void 0&&(hi.DOMException=_n);var gi,__name,_i=__esmMin(()=>{gi=Object.defineProperty,__name=(n,a)=>gi(n,`name`,{value:a,configurable:!0})}),vi=S;function validateHeaderName(n){if(typeof n!=`string`||!/^[\^`\-\w!#$%&'*+.|~]+$/.test(n)){let a=TypeError(`Header name must be a valid HTTP token ["${n}"]`);throw Object.defineProperty(a,"code",{value:`ERR_INVALID_HTTP_TOKEN`}),a}}function validateHeaderValue(n,a){if(a===void 0){let a=TypeError(`Header "${n}" value must not be undefined`);throw Object.defineProperty(a,"code",{value:`ERR_HTTP_INVALID_HEADER_VALUE`}),a}if(typeof a==`string`&&/[^\t -~€-ÿ]/.test(a)){let a=TypeError(`Invalid character in header content ["${n}"]`);throw Object.defineProperty(a,"code",{value:`ERR_INVALID_CHAR`}),a}}const yi=Symbol(`Headers.headers`);function isBoxedPrimitive$2(n){return n instanceof String||n instanceof Number||n instanceof Boolean||typeof Symbol<`u`&&n instanceof Symbol||typeof BigInt<`u`&&n instanceof BigInt}__name$1(isBoxedPrimitive$2,`isBoxedPrimitive`);var bi=class Headers{[yi];constructor(n){if(this[yi]=new Map,n!=null){if(n instanceof Headers){for(let[a,S]of n[yi])this[yi].set(a,[...S]);return}if(typeof n==`object`&&!isBoxedPrimitive$2(n)){let a=n[Symbol.iterator];if(a==null)for(let[a,S]of Object.entries(n))validateHeaderName(a),validateHeaderValue(a,String(S)),this.append(a,String(S));else{if(typeof a!=`function`)throw TypeError(`Header pairs must be iterable`);for(let a of n){if(typeof a!=`object`||isBoxedPrimitive$2(a))throw TypeError(`Each header pair must be an iterable object`);let n=[...a];if(n.length!==2)throw TypeError(`Each header pair must be a name/value tuple`);validateHeaderName(n[0]),validateHeaderValue(n[0],String(n[1])),this.append(n[0],String(n[1]))}}}else throw TypeError(`Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)'`)}}append(n,a){validateHeaderName(n),validateHeaderValue(n,a);let S=String(n).toLowerCase(),C=String(a),N=this[yi].get(S);N?N.push(C):this[yi].set(S,[C])}set(n,a){validateHeaderName(n),validateHeaderValue(n,a);let S=String(n).toLowerCase();this[yi].set(S,[String(a)])}delete(n){this[yi].delete(String(n).toLowerCase())}has(n){return this[yi].has(String(n).toLowerCase())}get(n){let a=this[yi].get(String(n).toLowerCase());if(!a||a.length===0)return null;let S=a.join(`, `);return/^content-encoding$/i.test(n)&&(S=S.toLowerCase()),S}getAll(n){return this[yi].get(String(n).toLowerCase())??[]}getSetCookie(){return this[yi].get(`set-cookie`)??[]}forEach(n,a){for(let S of this.keys())Reflect.apply(n,a,[this.get(S),S,this])}*keys(){let n=[...this[yi].keys()].sort(),a=new Set;for(let S of n)a.has(S)||(a.add(S),yield S)}*values(){for(let n of this.keys())yield this.get(n)}*entries(){for(let n of this.keys())yield[n,this.get(n)]}[Symbol.iterator](){return this.entries()}get[Symbol.toStringTag](){return`Headers`}toString(){return Object.prototype.toString.call(this)}raw(){let n={};for(let a of this.keys())n[a]=this.getAll(a);return n}_appendToSoupMessage(n,a=vi.MessageHeadersType.REQUEST){let S=n?n.get_request_headers():new vi.MessageHeaders(a);for(let[n,a]of this.entries())S.append(n,a);return S}static _newFromSoupMessage(n,a=vi.MessageHeadersType.RESPONSE){let S=new Headers,C;return C=a===vi.MessageHeadersType.RESPONSE?n.get_response_headers():n.get_request_headers(),C.foreach((n,a)=>{S.append(n,a)}),S}[Symbol.for(`nodejs.util.inspect.custom`)](){let n={};for(let a of this.keys()){let S=this.getAll(a);a===`host`?n[a]=S[0]:n[a]=S.length>1?S:S[0]}return n}};Object.defineProperties(bi.prototype,[`get`,`entries`,`forEach`,`values`].reduce((n,a)=>(n[a]={enumerable:!0},n),{}));var xi=__esmMin(()=>{bt()});xi();var FetchBaseError=class extends Error{type;constructor(n,a){super(n),typeof Error.captureStackTrace==`function`&&Error.captureStackTrace(this,this.constructor),this.type=a}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},FetchError=class extends FetchBaseError{code;errno;erroredSysCall;constructor(n,a,S){super(n,a),S&&(this.code=this.errno=S.code,this.erroredSysCall=S.syscall)}};rn();const Si=Symbol.toStringTag,isURLSearchParameters=n=>typeof n==`object`&&typeof n.append==`function`&&typeof n.delete==`function`&&typeof n.get==`function`&&typeof n.getAll==`function`&&typeof n.has==`function`&&typeof n.set==`function`&&typeof n.sort==`function`&&n[Si]===`URLSearchParams`,isBlob=n=>{if(!n||typeof n!=`object`)return!1;let a=n;return typeof a.arrayBuffer==`function`&&typeof a.type==`string`&&typeof a.stream==`function`&&typeof a.constructor==`function`&&/^(Blob|File)$/.test(a[Si])},isAbortSignal=n=>{if(typeof n!=`object`||!n)return!1;let a=n;return a[Si]===`AbortSignal`||a[Si]===`EventTarget`},isDomainOrSubdomain=(n,a)=>{let S=new tn(a).hostname,C=new tn(n).hostname;return S===C||S.endsWith(`.${C}`)},isSameProtocol=(n,a)=>new tn(a).protocol===new tn(n).protocol;var Ci,wi,File,Ti=__esmMin(()=>{Ci=Symbol(`File.name`),wi=Symbol(`File.lastModified`),File=class extends Blob{[Ci];[wi];webkitRelativePath=``;constructor(n,a,S){super(n,S),this[Ci]=String(a),this[wi]=S?.lastModified??Date.now()}get name(){return this[Ci]}get lastModified(){return this[wi]}get[Symbol.toStringTag](){return`File`}}});function generateBoundary(){let n=`----formdata-`;for(let a=0;a<24;a++)n+=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`.charAt(Math.floor(Math.random()*62));return n}function escape(n){return n.replace(/\n/g,`%0A`).replace(/\r/g,`%0D`).replace(/"/g,`%22`)}function formDataToBlob(n,a){a??=generateBoundary();let S=[],C=`--${a}\r\nContent-Disposition: form-data; name="`;for(let[a,N]of n.entries())if(typeof N==`string`)S.push(`${C}${escape(a)}"\r\n\r\n${N.replace(/\r(?!\n)|(?<!\r)\n/g,`\r
6
+ `+a)}profile(n){}profileEnd(n){}timeStamp(n){}},ke=new Console,log=(...n)=>ke.log(...n),info=(...n)=>ke.info(...n),Ae=__name$1((...n)=>ke.debug(...n),`debug`),warn=(...n)=>ke.warn(...n),error=(...n)=>ke.error(...n),dir=(n,a)=>ke.dir(n,a),dirxml=(...n)=>ke.dirxml(...n),table=(n,a)=>ke.table(n,a),clear=()=>ke.clear(),assert=(n,...a)=>ke.assert(n,...a),trace=(...n)=>ke.trace(...n),time=n=>ke.time(n),timeEnd=n=>ke.timeEnd(n),timeLog=(n,...a)=>ke.timeLog(n,...a),je=__name$1(n=>ke.count(n),`count`),countReset=n=>ke.countReset(n),group=(...n)=>ke.group(...n),groupCollapsed=(...n)=>ke.groupCollapsed(...n),groupEnd=()=>ke.groupEnd(),profile=n=>{},profileEnd=n=>{},timeStamp=n=>{}}),Fe,Ie=__esmMin(()=>{Me(),Fe={log,info,debug:Ae,warn,error,dir,dirxml,table,time,timeEnd,timeLog,trace,assert,clear,count:je,countReset,group,groupCollapsed,groupEnd,profile,profileEnd,timeStamp}}),Le=__esmMin(()=>{Ie()}),Re,ze=__esmMin(()=>{Re=__name$1(n=>{Promise.resolve().then(n)},`queueMicrotask`)});function drainOnce(n){let a=Math.min(64,Be.length);for(let S=0;S<a;S++){let a=Be.shift();try{a()}catch(a){try{n.log_default_handler(`gjsify-nextTick`,n.LogLevelFlags.LEVEL_WARNING,String(a?.stack||a),null)}catch{}}}Be.length>0?n.timeout_add(n.PRIORITY_DEFAULT,1,()=>(drainOnce(n),!1)):Ve=!1}function tryGLibTimeout(n){let a=globalThis.imports?.gi?.GLib;return a?.timeout_add?(Be.push(n),Ve||(Ve=!0,a.timeout_add(a.PRIORITY_DEFAULT,0,()=>(drainOnce(a),!1))),!0):!1}var Be,Ve,nextTick,He=__esmMin(()=>{Be=[],Ve=!1,nextTick=(n,...a)=>{let S=a.length>0?()=>n(...a):n;if(!tryGLibTimeout(S)){if(typeof globalThis.process?.nextTick==`function`){globalThis.process.nextTick(n,...a);return}if(typeof queueMicrotask==`function`){queueMicrotask(S);return}Promise.resolve().then(S)}}}),Ue,Ge,getPathSeparator,Ke=__esmMin(()=>{se(),ve(),{File:Ue}=_e,Ge=__name$1((n,...a)=>{let S=Ue.new_for_path(n);for(let n of a)S=S.resolve_relative_path(n);return S},`resolve`),getPathSeparator=()=>Z.get_current_dir().startsWith(`/`)?`/`:`\\`});function classOf(n){return qe.call(n).slice(8,-1)}function throwDataCloneError(n){let a=globalThis.DOMException;if(typeof a==`function`)throw new a(n,`DataCloneError`);let S=Error(n);throw S.name=`DataCloneError`,S}function internalClone(n,a,S){if(n==null)return n;let C=typeof n;if(C===`boolean`||C===`number`||C===`string`||C===`bigint`)return n;C===`symbol`&&throwDataCloneError(`Symbol cannot be cloned`),C===`function`&&throwDataCloneError(`Function cannot be cloned`);let N=n;if(a.has(N))return a.get(N);let F=classOf(N);if(F===`Date`)return new Date(N.getTime());if(F===`RegExp`)return new RegExp(N.source,N.flags);if(F===`Boolean`||F===`Number`||F===`String`)return Object(N.valueOf());if(F===`BigInt`)return Object(BigInt.prototype.valueOf.call(N));if(N instanceof Error){let n=N,C=n.constructor?.name,F=new(C&&Je[C]||Je[n.name]||Error)(n.message);return F.name=n.name,`cause`in n&&Object.defineProperty(F,"cause",{value:internalClone(n.cause,a,S),writable:!0,enumerable:!1,configurable:!0}),F}if(F===`DOMException`){let n=globalThis.DOMException;if(typeof n==`function`){let a=N;return new n(a.message,a.name)}}if(F===`ArrayBuffer`){let n=N;if(S&&S.transferred.has(n)){let C=S.transferred.get(n);return a.set(N,C),C}(n.detached===!0||n.byteLength===0&&n.detached)&&throwDataCloneError(`ArrayBuffer is detached and cannot be cloned`);let C=n.slice(0);return a.set(N,C),C}if(F===`SharedArrayBuffer`||N&&typeof N==`object`&&N.constructor?.name===`SharedBuffer`)return N;if(F===`DataView`){let n=N,C=S?.viewSnapshots.get(N),F=internalClone(n.buffer,a,S),I=C?C.byteOffset:n.byteOffset,H=C?C.byteLength:n.byteLength,W=new DataView(F,I,H);return a.set(N,W),W}if(Ye.has(F)){let n=N,C=S?.viewSnapshots.get(N),F=internalClone(n.buffer,a,S),I=n.constructor,H=new I(F,C?C.byteOffset:n.byteOffset,C?C.length:n.length);return a.set(N,H),H}if(F===`Map`){let n=new Map;a.set(N,n);for(let[C,F]of N)n.set(internalClone(C,a,S),internalClone(F,a,S));return n}if(F===`Set`){let n=new Set;a.set(N,n);for(let C of N)n.add(internalClone(C,a,S));return n}{let n=globalThis,a=n.Blob,S=n.File;if(typeof S==`function`&&N instanceof S){let n=N;return new S([N],n.name,{type:n.type,lastModified:n.lastModified})}if(typeof a==`function`&&N instanceof a)return new a([N],{type:N.type})}if(N instanceof WeakMap&&throwDataCloneError(`WeakMap cannot be cloned`),N instanceof WeakSet&&throwDataCloneError(`WeakSet cannot be cloned`),N instanceof WeakRef&&throwDataCloneError(`WeakRef cannot be cloned`),typeof globalThis.Promise==`function`&&N instanceof Promise&&throwDataCloneError(`Promise cannot be cloned`),F===`Array`){let n=N,C=[];a.set(N,C);for(let N=0;N<n.length;N++)N in n&&(C[N]=internalClone(n[N],a,S));return C}if(F===`Object`||typeof N==`object`){let n={};a.set(N,n);for(let C of Object.keys(N))n[C]=internalClone(N[C],a,S);return n}throwDataCloneError(`${F} cannot be cloned`)}function structuredClone$1(n,a){let S=a?.transfer;if(!S||S.length===0)return internalClone(n,new Map);let C=new Set;for(let n of S)if(classOf(n)===`ArrayBuffer`){let a=n;a.detached===!0&&throwDataCloneError(`ArrayBuffer in transfer list is detached`),C.add(a)}let N=new Map;C.size>0&&snapshotViewsBackedByTransferredBuffers(n,C,N,new Set);let F=new Map;for(let n of C){let a=n;typeof a.transfer!=`function`&&throwDataCloneError(`ArrayBuffer.prototype.transfer() not available — runtime is not SM140+`),F.set(n,a.transfer())}return internalClone(n,new Map,{transferred:F,viewSnapshots:N})}function snapshotViewsBackedByTransferredBuffers(n,a,S,C){if(typeof n!=`object`||!n)return;let N=n;if(C.has(N))return;C.add(N);let F=classOf(N);if(F===`DataView`){let n=N;a.has(n.buffer)&&S.set(N,{byteOffset:n.byteOffset,length:0,byteLength:n.byteLength});return}if(Ye.has(F)){let n=N;a.has(n.buffer)&&S.set(N,{byteOffset:n.byteOffset,length:n.length,byteLength:n.byteLength});return}if(Array.isArray(N)){for(let n=0;n<N.length;n++)n in N&&snapshotViewsBackedByTransferredBuffers(N[n],a,S,C);return}if(F===`Map`){for(let[n,F]of N)snapshotViewsBackedByTransferredBuffers(n,a,S,C),snapshotViewsBackedByTransferredBuffers(F,a,S,C);return}if(F===`Set`){for(let n of N)snapshotViewsBackedByTransferredBuffers(n,a,S,C);return}if(F===`Object`)for(let n of Object.keys(N))snapshotViewsBackedByTransferredBuffers(N[n],a,S,C)}var qe,Je,Ye,Xe=__esmMin(()=>{({toString:qe}=Object.prototype),Je={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError},Ye=new Set([`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]),__name$1(structuredClone$1,`structuredClone`)});function ensureMainLoop(){let n=globalThis.imports;if(!n)return;if(Ze)return Qe;let a=n.gi?.GLib;if(a){if(Qe=new a.MainLoop(null,!1),Ze=!0,a.main_depth()===0)try{Qe.runAsync()}catch{}return Qe}}function quitMainLoop(){Qe&&=(Qe.quit(),Ze=!1,null)}var Ze,Qe,$e=__esmMin(()=>{Ze=!1,Qe=null}),et=__esmMin(()=>{re(),ie(),ue(),de(),fe(),me(),xe(),we(),Ee(),De(),Le(),ze(),He(),Ke(),Xe(),$e()});ne(),et(),registerGlobal(`Blob`,X),registerGlobal(`File`,te);function atobPolyfill(n){if(typeof globalThis.atob==`function`)return globalThis.atob(n);let a=n.replace(/[=\s]/g,``),S=``,C=0,N=0;for(let n=0;n<a.length;n++)C=C<<6|nt[a.charCodeAt(n)],N+=6,N>=8&&(N-=8,S+=String.fromCharCode(C>>N&255));return S}function btoaPolyfill(n){if(typeof globalThis.btoa==`function`)return globalThis.btoa(n);let a=``,S=0;for(;S+2<n.length;S+=3){let C=n.charCodeAt(S)<<16|n.charCodeAt(S+1)<<8|n.charCodeAt(S+2);a+=tt[C>>18&63]+tt[C>>12&63]+tt[C>>6&63]+tt[C&63]}if(S+1===n.length){let C=n.charCodeAt(S)<<16;a+=tt[C>>18&63]+tt[C>>12&63]+`==`}else if(S+2===n.length){let C=n.charCodeAt(S)<<16|n.charCodeAt(S+1)<<8;a+=tt[C>>18&63]+tt[C>>12&63]+tt[C>>6&63]+`=`}return a}function base64Decode$1(n){let a=n.replace(/[=\s]/g,``),S=new Uint8Array(a.length*3>>2),C=0,N=0,F=0;for(let n=0;n<a.length;n++)C=C<<6|nt[a.charCodeAt(n)],N+=6,N>=8&&(N-=8,S[F++]=C>>N&255);return S.subarray(0,F)}function base64Encode$1(n){let a=``,S=n.length;for(let C=0;C<S;C+=3){let N=n[C],F=C+1<S?n[C+1]:0,I=C+2<S?n[C+2]:0;a+=tt[N>>2],a+=tt[(N&3)<<4|F>>4],a+=C+1<S?tt[(F&15)<<2|I>>6]:`=`,a+=C+2<S?tt[I&63]:`=`}return a}var tt,nt,rt=__esmMin(()=>{tt=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,nt=new Uint8Array(256);for(let n=0;n<64;n++)nt[tt.charCodeAt(n)]=n;__name$1(base64Decode$1,`base64Decode`),__name$1(base64Encode$1,`base64Encode`)});function normalizeEncoding(n){if(!n||n===`utf8`||n===`utf-8`)return`utf8`;switch((``+n).toLowerCase().replace(/-/g,``)){case`utf8`:return`utf8`;case`ascii`:return`ascii`;case`latin1`:case`binary`:return`latin1`;case`base64`:return`base64`;case`base64url`:return`base64url`;case`hex`:return`hex`;case`ucs2`:case`utf16le`:return`utf16le`;default:return`utf8`}}function checkEncoding(n){let a=(``+n).toLowerCase().replace(/-/g,``);if(!it.includes(a))throw TypeError(`Unknown encoding: ${n}`)}var it,ot=__esmMin(()=>{it=[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`]});function encodeString(n,a){switch(a){case`utf8`:return st.encode(n);case`ascii`:{let a=new Uint8Array(n.length);for(let S=0;S<n.length;S++)a[S]=n.charCodeAt(S)&127;return a}case`latin1`:{let a=new Uint8Array(n.length);for(let S=0;S<n.length;S++)a[S]=n.charCodeAt(S)&255;return a}case`base64`:return base64Decode$1(n.replace(/-/g,`+`).replace(/_/g,`/`));case`base64url`:return encodeString(n.replace(/-/g,`+`).replace(/_/g,`/`),`base64`);case`hex`:{let a=n.length>>>1,S=new Uint8Array(a);for(let C=0;C<a;C++){let a=parseInt(n[C*2],16),N=parseInt(n[C*2+1],16);if(Number.isNaN(a)||Number.isNaN(N))break;S[C]=a<<4|N}return S}case`utf16le`:{let a=new Uint8Array(n.length*2);for(let S=0;S<n.length;S++){let C=n.charCodeAt(S);a[S*2]=C&255,a[S*2+1]=C>>8&255}return a}default:return st.encode(n)}}function decodeString(n,a,S,C){let N=S!==void 0||C!==void 0?n.subarray(S??0,C??n.length):n;switch(a){case`utf8`:return ct.decode(N);case`ascii`:{let n=``;for(let a=0;a<N.length;a++)n+=String.fromCharCode(N[a]&127);return n}case`latin1`:{let n=``;for(let a=0;a<N.length;a++)n+=String.fromCharCode(N[a]);return n}case`base64`:{let n=``;for(let a=0;a<N.length;a++)n+=String.fromCharCode(N[a]);return btoaPolyfill(n)}case`base64url`:return decodeString(N,`base64`).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``);case`hex`:{let n=``;for(let a=0;a<N.length;a++)n+=N[a].toString(16).padStart(2,`0`);return n}case`utf16le`:{let n=``;for(let a=0;a+1<N.length;a+=2)n+=String.fromCharCode(N[a]|N[a+1]<<8);return n}default:return ct.decode(N)}}function checkOffset(n,a,S){if(n+a>S)throw RangeError(`Attempt to access memory outside buffer bounds`)}var st,ct,lt=__esmMin(()=>{rt(),st=new TextEncoder,ct=new TextDecoder}),ut,dt,ft,pt,mt,SlowBuffer,ht=__esmMin(()=>{lt(),ot(),ut=typeof SharedArrayBuffer<`u`,dt=class Buffer extends Uint8Array{static _isBuffer=!0;static alloc(n,a,S){if(typeof n!=`number`)throw TypeError(`The "size" argument must be of type number. Received type ${typeof n}`);if(n<0)throw RangeError(`The value "${n}" is invalid for option "size"`);let C=new Buffer(n);return a!==void 0&&a!==0&&C.fill(a,0,n,S),C}static allocUnsafe(n){if(typeof n!=`number`)throw TypeError(`The "size" argument must be of type number. Received type ${typeof n}`);return new Buffer(n)}static allocUnsafeSlow(n){return Buffer.allocUnsafe(n)}static from(n,a,S){if(typeof n==`string`){let S=normalizeEncoding(a);if(a&&typeof a==`string`){let n=(``+a).toLowerCase().replace(/-/g,``);[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`,``].includes(n)||checkEncoding(a)}let C=encodeString(n,S);return new Buffer(C.buffer,C.byteOffset,C.byteLength)}if(ArrayBuffer.isView(n)){let a=new Buffer(n.buffer,n.byteOffset,n.byteLength),S=new Buffer(a.length);return S.set(a),S}if(n instanceof ArrayBuffer){let C=a||0;return new Buffer(n,C,S===void 0?n.byteLength-C:S)}if(ut&&n instanceof SharedArrayBuffer){let C=a||0,N=S===void 0?n.byteLength-C:S;return new Buffer(new Uint8Array(n,C,N))}if(typeof n==`object`&&n&&typeof n.viewBytes==`function`&&typeof n.byteLength==`number`&&n.constructor?.name===`SharedBuffer`){let C=n,N=a||0,F=S===void 0?C.byteLength-N:S,I=C.viewBytes(N,F);return new Buffer(I.buffer,I.byteOffset,I.byteLength)}if(Array.isArray(n)){let a=new Buffer(n.length);for(let S=0;S<n.length;S++)a[S]=n[S]&255;return a}throw TypeError(`The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array`)}static isBuffer(n){return n instanceof Buffer}static isEncoding(n){if(typeof n!=`string`)return!1;let a=n.toLowerCase().replace(/-/g,``);return[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`].includes(a)}static byteLength(n,a){if(typeof n!=`string`){if(ArrayBuffer.isView(n)||n instanceof ArrayBuffer||ut&&n instanceof SharedArrayBuffer)return n.byteLength;throw TypeError(`The "string" argument must be one of type string, Buffer, or ArrayBuffer`)}switch(normalizeEncoding(a)){case`utf8`:return new TextEncoder().encode(n).byteLength;case`ascii`:case`latin1`:return n.length;case`base64`:case`base64url`:{let a=n.length;for(;a>0&&(n[a-1]===`=`||n[a-1]===` `);)a--;return a*3>>>2}case`hex`:return n.length>>>1;case`utf16le`:return n.length*2;default:return new TextEncoder().encode(n).byteLength}}static compare(n,a){if(!(n instanceof Uint8Array)||!(a instanceof Uint8Array))throw TypeError(`Arguments must be Buffers or Uint8Arrays`);let S=Math.min(n.length,a.length);for(let C=0;C<S;C++){if(n[C]<a[C])return-1;if(n[C]>a[C])return 1}return n.length<a.length?-1:+(n.length>a.length)}static concat(n,a){if(n.length===0)return Buffer.alloc(0);if(a===void 0){a=0;for(let S=0;S<n.length;S++)a+=n[S].length}let S=Buffer.alloc(a),C=0;for(let N=0;N<n.length;N++){let F=n[N],I=Math.min(F.length,a-C);I<=0||(S.set(F.subarray(0,I),C),C+=I)}return S}static poolSize=8192;toString(n,a,S){let C=normalizeEncoding(n);return decodeString(this,C,a,S)}toJSON(){return{type:`Buffer`,data:Array.from(this)}}equals(n){if(!(n instanceof Uint8Array))throw TypeError(`Argument must be a Buffer or Uint8Array`);if(this.length!==n.length)return!1;for(let a=0;a<this.length;a++)if(this[a]!==n[a])return!1;return!0}compare(n,a,S,C,N){if(!(n instanceof Uint8Array))throw TypeError(`Argument must be a Buffer or Uint8Array`);let F=C!==void 0||N!==void 0?this.subarray(C??0,N??this.length):this,I=a!==void 0||S!==void 0?n.subarray(a??0,S??n.length):n;return Buffer.compare(F,I)}copy(n,a=0,S=0,C){let N=C??this.length,F=Math.min(N-S,n.length-a);return F<=0?0:(n.set(this.subarray(S,S+F),a),F)}slice(n,a){let S=n??0,C=a??this.length,N=super.subarray(S,C);return new Buffer(N.buffer,N.byteOffset,N.byteLength)}subarray(n,a){let S=super.subarray(n,a);return new Buffer(S.buffer,S.byteOffset,S.byteLength)}write(n,a,S,C){a??=0;let N=encodeString(n,normalizeEncoding(C||(typeof S==`string`?S:void 0))),F=S!==void 0&&typeof S==`number`?Math.min(S,this.length-a):this.length-a,I=Math.min(N.length,F);return this.set(N.subarray(0,I),a),I}fill(n,a,S,C){let N=a??0,F=S??this.length;if(typeof n==`number`)super.fill(n&255,N,F);else if(typeof n==`string`){let a=encodeString(n,normalizeEncoding(C));if(a.length===0)super.fill(0,N,F);else if(a.length===1)super.fill(a[0],N,F);else for(let n=N;n<F;n++)this[n]=a[(n-N)%a.length]}else if(n instanceof Uint8Array)if(n.length===0)super.fill(0,N,F);else for(let a=N;a<F;a++)this[a]=n[(a-N)%n.length];return this}indexOf(n,a,S){if(typeof n==`number`)return super.indexOf(n&255,a);let C=typeof n==`string`?encodeString(n,normalizeEncoding(S)):n,N=a??0;outer:for(let n=N;n<=this.length-C.length;n++){for(let a=0;a<C.length;a++)if(this[n+a]!==C[a])continue outer;return n}return-1}lastIndexOf(n,a,S){if(typeof n==`number`)return a===void 0?super.lastIndexOf(n&255):super.lastIndexOf(n&255,a);let C=typeof n==`string`?encodeString(n,normalizeEncoding(S)):n,N=a===void 0?this.length-C.length:Math.min(a,this.length-C.length);outer:for(let n=N;n>=0;n--){for(let a=0;a<C.length;a++)if(this[n+a]!==C[a])continue outer;return n}return-1}includes(n,a,S){return this.indexOf(n,a,S)!==-1}readUInt8(n=0){return checkOffset(n,1,this.length),this[n]}readUInt16BE(n=0){return checkOffset(n,2,this.length),this[n]<<8|this[n+1]}readUInt16LE(n=0){return checkOffset(n,2,this.length),this[n]|this[n+1]<<8}readUInt32BE(n=0){return checkOffset(n,4,this.length),this[n]*16777216+(this[n+1]<<16|this[n+2]<<8|this[n+3])}readUInt32LE(n=0){return checkOffset(n,4,this.length),this[n+3]*16777216+(this[n+2]<<16|this[n+1]<<8|this[n])>>>0}readInt8(n=0){return checkOffset(n,1,this.length),this[n]|(this[n]&128?4294967040:0)}readInt16BE(n=0){checkOffset(n,2,this.length);let a=this[n]<<8|this[n+1];return a&32768?a|4294901760:a}readInt16LE(n=0){checkOffset(n,2,this.length);let a=this[n]|this[n+1]<<8;return a&32768?a|4294901760:a}readInt32BE(n=0){return checkOffset(n,4,this.length),this[n]<<24|this[n+1]<<16|this[n+2]<<8|this[n+3]}readInt32LE(n=0){return checkOffset(n,4,this.length),this[n]|this[n+1]<<8|this[n+2]<<16|this[n+3]<<24}readFloatBE(n=0){return checkOffset(n,4,this.length),new DataView(this.buffer,this.byteOffset+n,4).getFloat32(0,!1)}readFloatLE(n=0){return checkOffset(n,4,this.length),new DataView(this.buffer,this.byteOffset+n,4).getFloat32(0,!0)}readDoubleBE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getFloat64(0,!1)}readDoubleLE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getFloat64(0,!0)}readBigInt64BE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getBigInt64(0,!1)}readBigInt64LE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getBigInt64(0,!0)}readBigUInt64BE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getBigUint64(0,!1)}readBigUInt64LE(n=0){return checkOffset(n,8,this.length),new DataView(this.buffer,this.byteOffset+n,8).getBigUint64(0,!0)}readUIntBE(n,a){checkOffset(n,a,this.length);let S=0;for(let C=0;C<a;C++)S=S*256+this[n+C];return S}readUIntLE(n,a){checkOffset(n,a,this.length);let S=0,C=1;for(let N=0;N<a;N++)S+=this[n+N]*C,C*=256;return S}readIntBE(n,a){checkOffset(n,a,this.length);let S=0;for(let C=0;C<a;C++)S=S*256+this[n+C];return S>=2**(8*a-1)&&(S-=2**(8*a)),S}readIntLE(n,a){checkOffset(n,a,this.length);let S=0,C=1;for(let N=0;N<a;N++)S+=this[n+N]*C,C*=256;return S>=2**(8*a-1)&&(S-=2**(8*a)),S}writeUInt8(n,a=0){return checkOffset(a,1,this.length),this[a]=n&255,a+1}writeUInt16BE(n,a=0){return checkOffset(a,2,this.length),this[a]=n>>>8&255,this[a+1]=n&255,a+2}writeUInt16LE(n,a=0){return checkOffset(a,2,this.length),this[a]=n&255,this[a+1]=n>>>8&255,a+2}writeUInt32BE(n,a=0){return checkOffset(a,4,this.length),this[a]=n>>>24&255,this[a+1]=n>>>16&255,this[a+2]=n>>>8&255,this[a+3]=n&255,a+4}writeUInt32LE(n,a=0){return checkOffset(a,4,this.length),this[a]=n&255,this[a+1]=n>>>8&255,this[a+2]=n>>>16&255,this[a+3]=n>>>24&255,a+4}writeInt8(n,a=0){return checkOffset(a,1,this.length),n<0&&(n=255+n+1),this[a]=n&255,a+1}writeInt16BE(n,a=0){return checkOffset(a,2,this.length),this[a]=n>>>8&255,this[a+1]=n&255,a+2}writeInt16LE(n,a=0){return checkOffset(a,2,this.length),this[a]=n&255,this[a+1]=n>>>8&255,a+2}writeInt32BE(n,a=0){return checkOffset(a,4,this.length),this[a]=n>>>24&255,this[a+1]=n>>>16&255,this[a+2]=n>>>8&255,this[a+3]=n&255,a+4}writeInt32LE(n,a=0){return checkOffset(a,4,this.length),this[a]=n&255,this[a+1]=n>>>8&255,this[a+2]=n>>>16&255,this[a+3]=n>>>24&255,a+4}writeFloatBE(n,a=0){return checkOffset(a,4,this.length),new DataView(this.buffer,this.byteOffset+a,4).setFloat32(0,n,!1),a+4}writeFloatLE(n,a=0){return checkOffset(a,4,this.length),new DataView(this.buffer,this.byteOffset+a,4).setFloat32(0,n,!0),a+4}writeDoubleBE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setFloat64(0,n,!1),a+8}writeDoubleLE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setFloat64(0,n,!0),a+8}writeBigInt64BE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setBigInt64(0,n,!1),a+8}writeBigInt64LE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setBigInt64(0,n,!0),a+8}writeBigUInt64BE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setBigUint64(0,n,!1),a+8}writeBigUInt64LE(n,a=0){return checkOffset(a,8,this.length),new DataView(this.buffer,this.byteOffset+a,8).setBigUint64(0,n,!0),a+8}swap16(){let n=this.length;if(n%2!=0)throw RangeError(`Buffer size must be a multiple of 16-bits`);for(let a=0;a<n;a+=2){let n=this[a];this[a]=this[a+1],this[a+1]=n}return this}swap32(){let n=this.length;if(n%4!=0)throw RangeError(`Buffer size must be a multiple of 32-bits`);for(let a=0;a<n;a+=4){let n=this[a],S=this[a+1];this[a]=this[a+3],this[a+1]=this[a+2],this[a+2]=S,this[a+3]=n}return this}swap64(){let n=this.length;if(n%8!=0)throw RangeError(`Buffer size must be a multiple of 64-bits`);for(let a=0;a<n;a+=8){let n=this[a],S=this[a+1],C=this[a+2],N=this[a+3];this[a]=this[a+7],this[a+1]=this[a+6],this[a+2]=this[a+5],this[a+3]=this[a+4],this[a+4]=N,this[a+5]=C,this[a+6]=S,this[a+7]=n}return this}},ft=2**31-1,pt=2**28-16,mt={MAX_LENGTH:ft,MAX_STRING_LENGTH:pt},SlowBuffer=class extends dt{constructor(n){super(n)}}}),gt=__exportAll$3({Blob:()=>X,Buffer:()=>dt,File:()=>te,INSPECT_MAX_BYTES:()=>50,SlowBuffer:()=>SlowBuffer,atob:()=>_t,atobPolyfill:()=>atobPolyfill,base64Decode:()=>base64Decode$1,base64Encode:()=>base64Encode$1,btoa:()=>vt,btoaPolyfill:()=>btoaPolyfill,checkEncoding:()=>checkEncoding,constants:()=>mt,default:()=>yt,kMaxLength:()=>ft,kStringMaxLength:()=>pt,normalizeEncoding:()=>normalizeEncoding}),_t,vt,yt,bt=__esmMin(()=>{rt(),ne(),ot(),ht(),_t=globalThis.atob,vt=globalThis.btoa,yt={Buffer:dt,SlowBuffer,Blob:X,File:te,atob:_t,btoa:vt,kMaxLength:ft,kStringMaxLength:pt,constants:mt,INSPECT_MAX_BYTES:50}});bt(),`Buffer`in globalThis||Object.defineProperty(globalThis,"Buffer",{value:dt,enumerable:!1,writable:!0,configurable:!0}),se(),typeof globalThis.btoa!=`function`&&Object.defineProperty(globalThis,"btoa",{value:function btoa(n){let a=new Uint8Array(n.length);for(let S=0;S<n.length;S++)a[S]=n.charCodeAt(S)&255;return Z.base64_encode(a)},enumerable:!0,writable:!0,configurable:!0}),typeof globalThis.atob!=`function`&&Object.defineProperty(globalThis,"atob",{value:function atob(n){let a=Z.base64_decode(n),S=``;for(let n=0;n<a.length;n++)S+=String.fromCharCode(a[n]);return S},enumerable:!0,writable:!0,configurable:!0}),et(),typeof queueMicrotask!=`function`&&Object.defineProperty(globalThis,"queueMicrotask",{value:Re,enumerable:!0,writable:!0,configurable:!0});function getGjsGlobal(){return globalThis}function getGioNamespace(){let n=getGjsGlobal().imports?.gi;if(!n)return null;let a=null;try{a=n.GioUnix??null}catch{}if(!a)try{a=n.Gio??null}catch{}return a}function getMonotonicTime(){try{let n=getGjsGlobal().imports?.gi?.GLib;if(n?.get_monotonic_time)return BigInt(n.get_monotonic_time())*1000n}catch{}return typeof performance?.now==`function`?BigInt(Math.round(performance.now()*1e6)):BigInt(Date.now())*1000000n}const xt=getMonotonicTime();function hrtime(n){let a=getMonotonicTime()-xt,S=Number(a/1000000000n),C=Number(a%1000000000n);if(n){let a=S-n[0],N=C-n[1];return N<0&&(a--,N+=1e9),[a,N]}return[S,C]}function hrtimeBigint(){return getMonotonicTime()-xt}function detectGjsVersion(){try{let n=getGjsGlobal().imports?.system;if(n?.version!==void 0){let a=Number(n.version);return`${Math.floor(a/1e4)}.${Math.floor(a%1e4/100)}.${a%100}`}}catch{}}function detectNodeVersion(){if(typeof globalThis.process?.versions?.node==`string`)return globalThis.process.versions.node}function detectVersionInfo(){if(detectNodeVersion())return{version:globalThis.process.version,versions:{...globalThis.process.versions},title:globalThis.process?.title||`node`};let n=detectGjsVersion(),a={node:`20.0.0`};return n&&(a.gjs=n),{version:`v20.0.0`,versions:a,title:`gjs`}}function detectPpid(){if(typeof globalThis.process?.ppid==`number`)return globalThis.process.ppid;try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let[,a]=n.file_get_contents(`/proc/self/status`);if(a){let n=new TextDecoder().decode(a).match(/PPid:\s+(\d+)/);if(n)return parseInt(n[1],10)}}}catch{}return 0}function detectPlatform(){try{let n=getGjsGlobal().imports?.gi?.GLib;if(n&&n.get_os_info(`ID`))return`linux`}catch{}return getGjsGlobal().imports?.system===void 0&&typeof globalThis.process?.platform==`string`?globalThis.process.platform:`linux`}function detectArch(){return typeof globalThis.process?.arch==`string`?globalThis.process.arch:`x64`}function getPid$1(){if(typeof globalThis.process?.pid==`number`)return globalThis.process.pid;try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let[,a]=n.file_get_contents(`/proc/self/stat`);if(a){let n=new TextDecoder().decode(a),S=parseInt(n,10);if(!isNaN(S))return S}}}catch{}return 0}__name$1(getPid$1,`getPid`);function getEnvProxy(){if(typeof globalThis.process?.env==`object`)return globalThis.process.env;try{let n=getGjsGlobal().imports?.gi?.GLib;if(n)return new Proxy({},{get(a,S){if(typeof S==`string`)return n.getenv(S)??void 0},set(a,S,C){return typeof S==`string`?(n.setenv(S,String(C),!0),!0):!1},deleteProperty(a,S){return typeof S==`string`?(n.unsetenv(S),!0):!1},has(a,S){return typeof S==`string`?n.getenv(S)!==null:!1},ownKeys(a){return n.listenv()},getOwnPropertyDescriptor(a,S){if(typeof S!=`string`)return;let C=n.getenv(S);if(C!==null)return{configurable:!0,enumerable:!0,writable:!0,value:C}}})}catch{}return{}}function getArgv(){if(globalThis.process?.argv!==void 0)return globalThis.process.argv;try{let n=getGjsGlobal().imports?.system;if(n?.programArgs)return[`gjs`,n.programInvocationName||``,...n.programArgs]}catch{}return[`gjs`]}function getExecPath(){if(typeof globalThis.process?.execPath==`string`)return globalThis.process.execPath;try{let n=getGjsGlobal().imports?.system;if(n?.programInvocationName)return n.programInvocationName}catch{}return`/usr/bin/gjs`}function getCwd(){try{let n=getGjsGlobal().imports?.gi?.GLib;if(n?.get_current_dir)return n.get_current_dir()}catch{}return`/`}function chdir(n){let a=getGjsGlobal().imports?.gi?.GLib;try{if(a?.chdir){if(!a.file_test(n,16)){let a=Error(`ENOENT: no such file or directory, chdir '${n}'`);throw a.code=`ENOENT`,a.syscall=`chdir`,a.path=n,a}a.chdir(n);return}}catch(n){if(n&&typeof n==`object`&&n.code===`ENOENT`)throw n}if(!a){let a=globalThis.process;if(a&&typeof a.chdir==`function`){a.chdir(n);return}}throw Error(`process.chdir() is not supported in this environment`)}et();function exitProcess(n){let a=getGjsGlobal().imports,S=a?.gi?.GLib,C=a?.system,N=S?.idle_add,F=S?.SOURCE_REMOVE,I=S?.PRIORITY_DEFAULT;if(C?.exit&&N&&typeof I==`number`&&typeof F==`boolean`)return ensureMainLoop(),N(I,()=>(quitMainLoop(),C.exit(n),F)),new Promise(()=>{});try{C?.exit&&C.exit(n)}catch{}let H=globalThis.process;throw H&&typeof H.exit==`function`&&H.exit(n),Error(`process.exit(${n})`)}function isGjs(){return getGjsGlobal().imports?.gi?.GLib!==void 0}function killPid(n,a){try{let S=getGjsGlobal().imports?.gi?.GLib;if(S){let C=typeof a==`number`?String(a):a||`SIGTERM`,N=C.startsWith(`SIG`)?`-${C.slice(3)}`:`-${C}`;return S.spawn_command_line_sync(`kill ${N} ${n}`),!0}}catch{}if(!isGjs()){let S=globalThis.process;if(S&&typeof S.kill==`function`)return S.kill(n,a)}throw Error(`process.kill() is not supported in this environment`)}function memoryUsage(){try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let[,a]=n.file_get_contents(`/proc/self/status`);if(a){let n=new TextDecoder().decode(a).match(/VmRSS:\s+(\d+)/),S=n?parseInt(n[1],10)*1024:0;return{rss:S,heapTotal:S,heapUsed:S,external:0,arrayBuffers:0}}}}catch{}if(!isGjs()){let n=globalThis.process;if(n&&typeof n.memoryUsage==`function`)return n.memoryUsage()}return{rss:0,heapTotal:0,heapUsed:0,external:0,arrayBuffers:0}}function cpuUsage(n){if(!isGjs()){let a=globalThis.process;if(a&&typeof a.cpuUsage==`function`)return a.cpuUsage(n)}return{user:0,system:0}}let St=null;const Ct=globalThis.imports?.gi;if(Ct)try{St=Ct.GjsifyTerminal}catch{}const wt=St;function onceWrapper(){let{target:n,type:a,listener:S}=this;return this.wrapperFn&&n.removeListener(a,this.wrapperFn),S.apply(n,arguments)}function _onceWrap(n,a,S){let C={target:n,type:a,listener:S,wrapperFn:void 0},N=onceWrapper.bind(C);return C.wrapperFn=N,N.listener=S,N}function arrayClone(n){switch(n.length){case 0:return[];case 1:return[n[0]];case 2:return[n[0],n[1]];case 3:return[n[0],n[1],n[2]];default:return n.slice()}}function checkListener(n){if(typeof n!=`function`)throw TypeError(`The "listener" argument must be of type Function. Received type `+typeof n)}function validateNumber(n,a){if(typeof n!=`number`||n!==n)throw TypeError(`The "${a}" argument must be of type number. Received type ${typeof n}`)}function spliceOne(n,a){for(;a+1<n.length;a++)n[a]=n[a+1];n.pop()}function unwrapListeners(n){let a=Array.from({length:n.length});for(let S=0;S<a.length;++S)a[S]=n[S].listener??n[S];return a}function createAbortError$1(n){let a=Error(`The operation was aborted`);return a.name=`AbortError`,a.code=`ABORT_ERR`,n?.reason&&(a.cause=n.reason),a}var Tt,Et,Dt,Ot=__esmMin(()=>{Ie(),Tt=Symbol(`kCapture`),Et=Symbol.for(`nodejs.rejection`),Dt=class EventEmitter{static defaultMaxListeners=10;static errorMonitor=Symbol(`events.errorMonitor`);static captureRejectionSymbol=Et;static _captureRejections=!1;static get captureRejections(){return EventEmitter._captureRejections}static set captureRejections(n){if(typeof n!=`boolean`)throw TypeError(`The "captureRejections" argument must be of type boolean.`);EventEmitter._captureRejections=n}_events;_eventsCount;_maxListeners;[Tt];constructor(n){this._events=Object.create(null),this._eventsCount=0,this._maxListeners=void 0,this[Tt]=n?.captureRejections??EventEmitter._captureRejections}setMaxListeners(n){if(validateNumber(n,`n`),n<0)throw RangeError(`The value of "n" is out of range. It must be a non-negative number. Received `+n);return this._maxListeners=n,this}getMaxListeners(){return this._maxListeners??EventEmitter.defaultMaxListeners}emit(n,...a){let S=this._events,C=n===`error`;if(S!==void 0)C&&S[EventEmitter.errorMonitor]!==void 0&&this.emit(EventEmitter.errorMonitor,...a),C&&=S.error===void 0;else if(!C)return!1;if(C){let n;if(n=a.length>0?a[0]:Error(`Unhandled error.`),n instanceof Error)throw n;let S=Error(`Unhandled error. (`+n+`)`);throw S.context=n,S}let N=S[n];if(N===void 0)return!1;if(typeof N==`function`){let S=N.apply(this,a);S!=null&&this[Tt]&&this._addCatch(S,n,a)}else{let S=arrayClone(N),C=S.length;for(let N=0;N<C;++N){let C=S[N].apply(this,a);C!=null&&this[Tt]&&this._addCatch(C,n,a)}}return!0}_addCatch(n,a,S){typeof n?.then==`function`&&n.then(void 0,n=>{let C=this[Et];if(typeof C==`function`)C.call(this,n,a,...S);else{let a=this[Tt];try{this[Tt]=!1,this.emit(`error`,n)}finally{this[Tt]=a}}})}addListener(n,a){return this._addListener(n,a,!1)}on(n,a){return this._addListener(n,a,!1)}prependListener(n,a){return this._addListener(n,a,!0)}_addListener(n,a,S){checkListener(a);let C=this._events;C===void 0?(C=this._events=Object.create(null),this._eventsCount=0):C.newListener!==void 0&&(this.emit(`newListener`,n,a.listener??a),C=this._events);let N=C[n];N===void 0?(C[n]=a,++this._eventsCount):typeof N==`function`?C[n]=S?[a,N]:[N,a]:S?N.unshift(a):N.push(a);let F=this.getMaxListeners();if(F>0){let a=typeof C[n]==`function`?1:C[n].length;if(a>F&&!C[n].warned){typeof C[n]!=`function`&&(C[n].warned=!0);let S=Error(`Possible EventEmitter memory leak detected. ${a} ${String(n)} listeners added to [${this.constructor.name}]. Use emitter.setMaxListeners() to increase limit`);S.name=`MaxListenersExceededWarning`,Fe.warn(S.message)}}return this}once(n,a){return checkListener(a),this.on(n,_onceWrap(this,n,a)),this}prependOnceListener(n,a){return checkListener(a),this.prependListener(n,_onceWrap(this,n,a)),this}removeListener(n,a){checkListener(a);let S=this._events;if(S===void 0)return this;let C=S[n];if(C===void 0)return this;if(C===a||C.listener===a)--this._eventsCount===0?this._events=Object.create(null):(delete S[n],S.removeListener&&this.emit(`removeListener`,n,C.listener??a));else if(typeof C!=`function`){let N=-1;for(let n=C.length-1;n>=0;n--)if(C[n]===a||C[n].listener===a){N=n;break}if(N<0)return this;N===0?C.shift():spliceOne(C,N),C.length===1&&(S[n]=C[0]),S.removeListener!==void 0&&this.emit(`removeListener`,n,a.listener??a)}return this}off(n,a){return this.removeListener(n,a)}removeAllListeners(n){let a=this._events;if(a===void 0)return this;if(a.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):a[n]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete a[n]),this;if(arguments.length===0){let n=Object.keys(a);for(let a=0;a<n.length;++a){let S=n[a];S!==`removeListener`&&this.removeAllListeners(S)}return this.removeAllListeners(`removeListener`),this._events=Object.create(null),this._eventsCount=0,this}let S=a[n];if(typeof S==`function`)this.removeListener(n,S);else if(S!==void 0)for(let a=S.length-1;a>=0;a--)this.removeListener(n,S[a]);return this}listeners(n){let a=this._events;if(a===void 0)return[];let S=a[n];return S===void 0?[]:typeof S==`function`?[S.listener??S]:unwrapListeners(S)}rawListeners(n){let a=this._events;if(a===void 0)return[];let S=a[n];return S===void 0?[]:typeof S==`function`?[S]:arrayClone(S)}listenerCount(n){let a=this._events;if(a===void 0)return 0;let S=a[n];return S===void 0?0:typeof S==`function`?1:S.length}eventNames(){return(this._eventsCount??0)>0?Reflect.ownKeys(this._events):[]}static once(n,a,S){return new Promise((C,N)=>{let F=S?.signal;if(F?.aborted){N(createAbortError$1(F));return}if(typeof n.addEventListener==`function`){let S=n,handler=(...n)=>{F&&F.removeEventListener(`abort`,abortHandler),C(n)},errorHandler=n=>{F&&F.removeEventListener(`abort`,abortHandler),S.removeEventListener(`error`,errorHandler),N(n)},abortHandler=()=>{S.removeEventListener(a,handler),S.removeEventListener(`error`,errorHandler),N(createAbortError$1(F))};S.addEventListener(a,handler,{once:!0}),a!==`error`&&S.addEventListener(`error`,errorHandler,{once:!0}),F&&F.addEventListener(`abort`,abortHandler,{once:!0});return}let I=n,eventHandler=(...n)=>{F&&F.removeEventListener(`abort`,abortHandler),errorHandler!==void 0&&I.removeListener(`error`,errorHandler),C(n)},errorHandler;a!==`error`&&(errorHandler=n=>{I.removeListener(a,eventHandler),F&&F.removeEventListener(`abort`,abortHandler),N(n)},I.once(`error`,errorHandler)),I.once(a,eventHandler);let abortHandler=()=>{I.removeListener(a,eventHandler),errorHandler&&I.removeListener(`error`,errorHandler),N(createAbortError$1(F))};F&&F.addEventListener(`abort`,abortHandler,{once:!0})})}static on(n,a,S){let C=S?.signal;if(C?.aborted)throw createAbortError$1(C);let N=S?.highWaterMark??2**53-1,F=S?.lowWaterMark??1;validateNumber(N,`highWaterMark`),validateNumber(F,`lowWaterMark`);let I=[],H=[],W=null,K=!1,q=!1,eventHandler=(...a)=>{if(H.length>0){let{resolve:n}=H.shift();n({value:a,done:!1})}else I.push(a),I.length>=N&&!q&&(q=!0,typeof n.pause==`function`&&n.pause())},errorHandler=n=>{if(W=n,H.length>0){let{reject:a}=H.shift();a(n)}Y.return()},abortHandler=()=>{errorHandler(createAbortError$1(C))};n.on(a,eventHandler),a!==`error`&&n.on(`error`,errorHandler),C&&C.addEventListener(`abort`,abortHandler,{once:!0});let cleanup=()=>{n.removeListener(a,eventHandler),n.removeListener(`error`,errorHandler),C&&C.removeEventListener(`abort`,abortHandler),K=!0;for(let{resolve:n}of H)n({value:void 0,done:!0});H.length=0,I.length=0},Y={next(){if(I.length>0){let a=I.shift();return q&&I.length<F&&(q=!1,typeof n.resume==`function`&&n.resume()),Promise.resolve({value:a,done:!1})}if(W){let n=Promise.reject(W);return W=null,n}return K?Promise.resolve({value:void 0,done:!0}):new Promise((n,a)=>{H.push({resolve:n,reject:a})})},return(){return cleanup(),Promise.resolve({value:void 0,done:!0})},throw(n){return K||(W=n,cleanup()),Promise.reject(n)},[Symbol.asyncIterator](){return this}};return Y}static listenerCount(n,a){return n.listenerCount(a)}static getEventListeners(n,a){return typeof n.listeners==`function`?n.listeners(a):[]}static setMaxListeners(n,...a){if(validateNumber(n,`n`),n<0)throw RangeError(`The value of "n" is out of range.`);if(a.length===0)EventEmitter.defaultMaxListeners=n;else for(let S of a)typeof S.setMaxListeners==`function`&&S.setMaxListeners(n)}static getMaxListeners(n){return typeof n.getMaxListeners==`function`?n.getMaxListeners():EventEmitter.defaultMaxListeners}static addAbortListener(n,a){n.aborted&&Promise.resolve().then(()=>a());let handler=()=>a();return n.addEventListener(`abort`,handler,{once:!0}),{[Symbol.dispose](){n.removeEventListener(`abort`,handler)}}}},Dt.EventEmitter=Dt;for(let n of[`setMaxListeners`,`getMaxListeners`,`emit`,`addListener`,`on`,`prependListener`,`once`,`prependOnceListener`,`removeListener`,`off`,`removeAllListeners`,`listeners`,`rawListeners`,`listenerCount`,`eventNames`]){let a=Dt.prototype[n];typeof a==`function`&&Object.defineProperty(Dt.prototype,n,{enumerable:!0,configurable:!0,writable:!0,value:a})}Object.defineProperty(Dt.prototype,"_events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(Dt.prototype,"_eventsCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(Dt.prototype,"_maxListeners",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),__name$1(createAbortError$1,`createAbortError`)}),kt=__exportAll$3({EventEmitter:()=>At,addAbortListener:()=>Bt,captureRejectionSymbol:()=>jt,default:()=>At,defaultMaxListeners:()=>Nt,errorMonitor:()=>Mt,getEventListeners:()=>Rt,getMaxListeners:()=>Ft,listenerCount:()=>zt,on:()=>Lt,once:()=>It,setMaxListeners:()=>Pt}),At,jt,Mt,Nt,Pt,Ft,It,Lt,Rt,zt,Bt,Vt=__esmMin(()=>{Ot(),et(),At=makeCallable(Dt),At.EventEmitter=At,jt=At.captureRejectionSymbol,Mt=At.errorMonitor,Nt=At.defaultMaxListeners,Pt=At.setMaxListeners,Ft=At.getMaxListeners,It=At.once,Lt=At.on,Rt=At.getEventListeners,zt=At.listenerCount,Bt=At.addAbortListener});Ie(),Vt(),et();const Ht=new TextEncoder;var ProcessWriteStream=class extends At{fd;writable=!0;_outGio=null;constructor(n){super(),this.fd=n;let a=getGioNamespace();if(a){let n=a.UnixOutputStream??a.OutputStream;if(n)try{this._outGio=n.new(this.fd,!1)}catch{}}}write(n){if(this._outGio)try{let a=typeof n==`string`?Ht.encode(n):n;return this._outGio.write_all(a,null),!0}catch{}return this.fd===2?Fe.error(n):Fe.log(n),!0}get isTTY(){if(wt)return wt.Terminal.is_tty(this.fd);try{let n=getGjsGlobal().imports?.gi?.GLib;if(n)return!!n.log_writer_supports_color(this.fd)}catch{}return!1}get columns(){if(wt){let[n,,a]=wt.Terminal.get_size(this.fd);if(n&&a>0)return a}try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let a=parseInt(n.getenv(`COLUMNS`)??`0`,10);if(a>0)return a}}catch{}return 80}end(){}destroy(){}get rows(){if(wt){let[n,a]=wt.Terminal.get_size(this.fd);if(n&&a>0)return a}try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let a=parseInt(n.getenv(`LINES`)??`0`,10);if(a>0)return a}}catch{}return 24}},ProcessReadStream=class extends At{fd;isRaw=!1;_gio=null;_stdinGio=null;_reading=!1;_flowing=!1;_sttyCleanupRegistered=!1;_mainLoopHeld=!1;_pendingRead=!1;constructor(n){super(),this.fd=n,this._gio=getGioNamespace()}get isTTY(){return wt?wt.Terminal.is_tty(this.fd):!1}setRawMode(n){return wt&&wt.Terminal.set_raw_mode(this.fd,n)?(this.isRaw=n,this):(this._setRawModeViaStty(n),this.isRaw=n,this)}_setRawModeViaStty(n){try{let a=globalThis.imports?.gi,S=a?.Gio??a?.Gio;if(!S)return;let C=S.SubprocessFlags?.STDIN_INHERIT??2,N=n?[`stty`,`-icanon`,`-echo`,`-icrnl`,`min`,`1`,`time`,`0`]:[`stty`,`icanon`,`echo`,`icrnl`];if(new S.SubprocessLauncher({flags:C}).spawnv(N).wait(null),n&&!this._sttyCleanupRegistered){this._sttyCleanupRegistered=!0;let n=globalThis.process;n?.once&&typeof n.once==`function`&&n.once(`exit`,()=>this._setRawModeViaStty(!1))}}catch{}}setEncoding(n){return this}resume(){return this._flowing=!0,this._gio&&this.fd===0&&!this._reading&&this._startReading(),this}pause(){if(this._flowing=!1,this._reading=!1,this._mainLoopHeld){this._mainLoopHeld=!1;let n=globalThis.imports?.gi,a=n?.GLib??n?.GLib;a?.idle_add?a.idle_add(300,()=>(this._mainLoopHeld||quitMainLoop(),!1)):quitMainLoop()}return this}read(){return null}_startReading(){if(!this._gio||this._reading)return;if(this._pendingRead){this._reading=!0,this._mainLoopHeld||(this._mainLoopHeld=!0,ensureMainLoop());return}if(this._reading=!0,this._mainLoopHeld||(this._mainLoopHeld=!0,ensureMainLoop()),!this._stdinGio){let n=this._gio.UnixInputStream??this._gio.InputStream;if(!n){this._reading=!1;return}try{this._stdinGio=n.new(this.fd,!1)}catch{this._reading=!1;return}}let loop=()=>{if(!this._reading){this._pendingRead=!1;return}this._pendingRead=!0,this._stdinGio.read_bytes_async(4096,0,null,(n,a)=>{this._pendingRead=!1;try{let S=n.read_bytes_finish(a)?.get_data?.()??null;if(S&&S.byteLength>0)this.emit(`data`,Buffer.from(S));else if(S!==null&&S.byteLength===0){this._reading=!1,this.emit(`end`);return}}catch{this._reading=!1;return}this._reading&&loop()})};loop()}};Ie(),Vt();const Ut=Date.now();var Process=class extends At{platform;arch;env;argv;argv0;execPath;pid;ppid;version;versions;title;execArgv;config;exitCode;constructor(){super(),this.platform=detectPlatform(),this.arch=detectArch(),this.env=getEnvProxy(),this.argv=getArgv(),this.argv0=this.argv[0]||`gjs`,this.execPath=getExecPath(),this.execArgv=globalThis.process?.execArgv??[],this.config=globalThis.process?.config??{target_defaults:{},variables:{}},this.pid=getPid$1(),this.ppid=detectPpid();let n=detectVersionInfo();this.version=n.version,this.versions=n.versions,this.title=n.title}cwd(){return getCwd()}chdir(n){chdir(n)}kill(n,a){return killPid(n,a)}exit(n){return this.exitCode=n??this.exitCode??0,this.emit(`exit`,this.exitCode),exitProcess(this.exitCode)}nextTick(n,...a){typeof queueMicrotask==`function`?queueMicrotask(()=>n(...a)):Promise.resolve().then(()=>n(...a))}hrtime(n){return hrtime(n)}uptime(){return(Date.now()-Ut)/1e3}memoryUsage(){return memoryUsage()}cpuUsage(n){return cpuUsage(n)}stdout=new ProcessWriteStream(1);stderr=new ProcessWriteStream(2);stdin=new ProcessReadStream(0);abort(){this.exit(1)}umask(n){return 18}emitWarning(n,a){Fe.warn(typeof n==`string`?`(${a||`Warning`}): ${n}`:n.message)}};Process.prototype.hrtime.bigint=function(){return hrtimeBigint()};const Wt=new Process;if(wt)try{let n=new wt.ResizeWatcher;n.connect(`resized`,(n,a,S)=>{Wt.stdout.emit(`resize`),Wt.stderr.emit(`resize`)}),n.start()}catch{}const Gt=Wt.platform;Wt.arch,Wt.env,Wt.argv,Wt.argv0;const Kt=Wt.execPath;Wt.pid,Wt.ppid,Wt.version,Wt.versions,Wt.cwd.bind(Wt),Wt.chdir.bind(Wt),Wt.exit.bind(Wt),Wt.nextTick.bind(Wt);const qt=Object.assign(Wt.hrtime.bind(Wt),{bigint:hrtimeBigint});Wt.uptime.bind(Wt),Wt.memoryUsage.bind(Wt),Wt.cpuUsage.bind(Wt),Wt.kill.bind(Wt),Wt.abort.bind(Wt),Wt.umask.bind(Wt),Wt.emitWarning.bind(Wt);const Jt=Wt.execArgv;Wt.config;const Yt=Wt.stdout;Wt.stderr;const Xt=Wt.stdin;et(),typeof Promise.withResolvers!=`function`&&(Promise.withResolvers=function(){let n,a;return{promise:new Promise((S,C)=>{n=S,a=C}),resolve:n,reject:a}}),initErrorV8Methods(Error),`global`in globalThis||Object.defineProperty(globalThis,"global",{value:globalThis,writable:!1,enumerable:!1,configurable:!0}),Object.defineProperty(globalThis,"process",{value:Wt,enumerable:!1,writable:!0,configurable:!0}),et(),typeof globalThis.structuredClone!=`function`&&Object.defineProperty(globalThis,"structuredClone",{value:structuredClone$1,enumerable:!0,writable:!0,configurable:!0});function getGLib(){return globalThis.imports?.gi?.GLib}const Zt=getGLib()!==void 0;var GjsifyTimeout=class{_id=null;_refed=!0;_callback;_delay;_args;_repeat;constructor(n,a,S,C){this._callback=n,this._delay=a,this._args=S,this._repeat=C,this._schedule()}_schedule(){let n=getGLib();if(!n)return;let a=n.timeout_add.bind(n);this._id=a(n.PRIORITY_DEFAULT,this._delay,()=>{try{this._callback.apply(globalThis,this._args)}catch(n){setTimeout(()=>{throw n},0)}return this._repeat?n.SOURCE_CONTINUE:(this._id=null,n.SOURCE_REMOVE)})}ref(){return this._refed=!0,this}unref(){return this._refed=!1,this}hasRef(){return this._refed}refresh(){return this._cancel(),this._schedule(),this}_cancel(){if(this._id!==null){try{getGLib()?.Source.remove(this._id)}catch{}this._id=null}}[Symbol.toPrimitive](){return this._id}[Symbol.dispose](){this._cancel()}};function removeById(n){if(n instanceof GjsifyTimeout)n._cancel();else if(typeof n==`number`)try{getGLib()?.Source.remove(n)}catch{}}if(Zt){let setT=(n,a=0,...S)=>new GjsifyTimeout(n,Math.max(0,a|0),S,!1),setI=(n,a=0,...S)=>new GjsifyTimeout(n,Math.max(0,a|0),S,!0),n=globalThis;n.setTimeout=setT,n.clearTimeout=removeById,n.setInterval=setI,n.clearInterval=removeById}function setImmediate$2(n,...a){return setTimeout(n,0,...a)}__name$1(setImmediate$2,`setImmediate`);function clearImmediate(n){clearTimeout(n)}`setImmediate`in globalThis||Object.defineProperty(globalThis,"setImmediate",{value:setImmediate$2,enumerable:!0,writable:!0,configurable:!0}),`clearImmediate`in globalThis||Object.defineProperty(globalThis,"clearImmediate",{value:clearImmediate,enumerable:!0,writable:!0,configurable:!0});var Qt=__exportAll$3({URL:()=>tn,URLSearchParams:()=>en,default:()=>nn,domainToASCII:()=>domainToASCII,domainToUnicode:()=>domainToUnicode,fileURLToPath:()=>fileURLToPath,format:()=>format$4,parse:()=>parse$4,pathToFileURL:()=>pathToFileURL,resolve:()=>resolve$3});function decodeComponent(n){try{return decodeURIComponent(n.replace(/\+/g,` `))}catch{return n}}function encodeComponent(n){return encodeURIComponent(n).replace(/%20/g,`+`)}function parse$4(n,a,S){if(typeof n!=`string`)throw TypeError(`The "url" argument must be of type string. Received type `+typeof n);let C={protocol:null,slashes:null,auth:null,host:null,port:null,hostname:null,hash:null,search:null,query:null,pathname:null,path:null,href:n},N=n.trim(),F=N.indexOf(`#`);F!==-1&&(C.hash=N.slice(F),N=N.slice(0,F));let I=N.indexOf(`?`);I!==-1&&(C.search=N.slice(I),C.query=a?Object.fromEntries(new en(N.slice(I+1))):N.slice(I+1),N=N.slice(0,I));let H=/^([a-z][a-z0-9.+-]*:)/i.exec(N);if(H&&(C.protocol=H[1].toLowerCase(),N=N.slice(C.protocol.length)),(S||C.protocol)&&N.startsWith(`//`)&&(C.slashes=!0,N=N.slice(2)),C.slashes||C.protocol&&![`javascript:`,`data:`,`mailto:`].includes(C.protocol)){let n=-1;for(let a=0;a<N.length;a++){let S=N[a];if(S===`/`||S===`\\`){n=a;break}}let a=n===-1?N:N.slice(0,n);N=n===-1?``:N.slice(n);let S=a.lastIndexOf(`@`);S===-1?parseHostPort(a,C):(C.auth=decodeURIComponent(a.slice(0,S)),parseHostPort(a.slice(S+1),C))}return C.pathname=N||(C.slashes?`/`:null),(C.pathname!==null||C.search!==null)&&(C.path=(C.pathname||``)+(C.search||``)),C.href=format$4(C),C}function parseHostPort(n,a){if(!n)return;let S=n.indexOf(`[`);if(S!==-1){let C=n.indexOf(`]`,S);if(C!==-1){let N=n.slice(C+1);N.startsWith(`:`)&&(a.port=N.slice(1)),a.hostname=n.slice(S,C+1),a.host=a.hostname+(a.port?`:`+a.port:``);return}}let C=n.lastIndexOf(`:`);if(C!==-1){let S=n.slice(C+1);/^\d*$/.test(S)?(a.port=S||null,a.hostname=n.slice(0,C).toLowerCase()):a.hostname=n.toLowerCase()}else a.hostname=n.toLowerCase();a.host=a.hostname+(a.port?`:`+a.port:``)}function format$4(n){if(typeof n==`string`)return n;if(n instanceof tn)return n.href;let a=n,S=``;if(a.protocol&&(S+=a.protocol),(a.slashes||a.protocol&&![`javascript:`,`data:`,`mailto:`].includes(a.protocol||``))&&(S+=`//`),a.auth&&(S+=encodeURIComponent(a.auth)+`@`),a.host?S+=a.host:(a.hostname&&(S+=a.hostname),a.port&&(S+=`:`+a.port)),a.pathname&&(S+=a.pathname),a.search)S+=a.search;else if(a.query&&typeof a.query==`object`){let n=new en(a.query).toString();n&&(S+=`?`+n)}return a.hash&&(S+=a.hash),S}function resolve$3(n,a){return new tn(a,new tn(n,`resolve://`)).href.replace(/^resolve:\/\//,``)}function fileURLToPath(n){if(typeof n==`string`&&(n=new tn(n)),!(n instanceof tn))throw TypeError(`The "url" argument must be of type string or URL. Received type `+typeof n);if(n.protocol!==`file:`)throw TypeError(`The URL must be of scheme file`);if(n.hostname!==``&&n.hostname!==`localhost`)throw TypeError(`File URL host must be "localhost" or empty on linux`);let a=n.pathname;for(let n=0;n<a.length;n++)if(a[n]===`%`){let S=a.codePointAt(n+2)|32;if(a[n+1]===`2`&&S===102)throw TypeError(`File URL path must not include encoded / characters`)}return decodeURIComponent(a)}function pathToFileURL(n){let a=n;if(n[0]!==`/`)if(typeof globalThis.process?.cwd==`function`)a=globalThis.process.cwd()+`/`+n;else try{Z?.get_current_dir&&(a=Z.get_current_dir()+`/`+n)}catch{}return new tn(`file://`+encodePathForURL(a))}function encodePathForURL(n){let a=``;for(let S=0;S<n.length;S++){let C=n[S];C>=`a`&&C<=`z`||C>=`A`&&C<=`Z`||C>=`0`&&C<=`9`||C===`/`||C===`-`||C===`_`||C===`.`||C===`~`||C===`:`||C===`@`||C===`!`?a+=C:a+=encodeURIComponent(C)}return a}function domainToASCII(n){try{return new tn(`http://${n}`).hostname}catch{return``}}function domainToUnicode(n){try{return new tn(`http://${n}`).hostname}catch{return``}}var $t,en,tn,nn,rn=__esmMin(()=>{se(),$t=Z.UriFlags.HAS_PASSWORD|Z.UriFlags.ENCODED|Z.UriFlags.SCHEME_NORMALIZE,en=class URLSearchParams{_entries=[];constructor(n){if(n)if(typeof n==`string`){let a=n.startsWith(`?`)?n.slice(1):n;if(a)for(let n of a.split(`&`)){let a=n.indexOf(`=`);a===-1?this._entries.push([decodeComponent(n),``]):this._entries.push([decodeComponent(n.slice(0,a)),decodeComponent(n.slice(a+1))])}}else if(Array.isArray(n))for(let[a,S]of n)this._entries.push([String(a),String(S)]);else if(n instanceof URLSearchParams)this._entries=n._entries.map(([n,a])=>[n,a]);else for(let a of Object.keys(n))this._entries.push([a,String(n[a])])}get(n){for(let[a,S]of this._entries)if(a===n)return S;return null}getAll(n){return this._entries.filter(([a])=>a===n).map(([,n])=>n)}set(n,a){let S=!1;if(this._entries=this._entries.filter(([a])=>a===n?S?!1:(S=!0,!0):!0),S){for(let S=0;S<this._entries.length;S++)if(this._entries[S][0]===n){this._entries[S][1]=a;break}}else this._entries.push([n,a])}has(n){return this._entries.some(([a])=>a===n)}delete(n){this._entries=this._entries.filter(([a])=>a!==n)}append(n,a){this._entries.push([n,a])}sort(){this._entries.sort((n,a)=>n[0]<a[0]?-1:+(n[0]>a[0]))}toString(){return this._entries.map(([n,a])=>encodeComponent(n)+`=`+encodeComponent(a)).join(`&`)}forEach(n){for(let[a,S]of this._entries)n(S,a,this)}*entries(){yield*this._entries}*keys(){for(let[n]of this._entries)yield n}*values(){for(let[,n]of this._entries)yield n}[Symbol.iterator](){return this.entries()}get size(){return this._entries.length}},tn=class URL{#e;#t;constructor(n,a){let S=n instanceof URL?n.href:String(n);try{if(a!==void 0){let n=a instanceof URL?a.href:String(a),C=Z.Uri.parse(n,$t);this.#e=C.parse_relative(S,$t)}else this.#e=Z.Uri.parse(S,$t)}catch{throw TypeError(`Invalid URL: ${S}`)}if(!this.#e)throw TypeError(`Invalid URL: ${S}`);this.#t=new en(this.#e.get_query()||``)}get protocol(){return this.#e.get_scheme()+`:`}get hostname(){return(this.#e.get_host()||``).toLowerCase()}get port(){let n=this.#e.get_port();if(n===-1)return``;let a=this.#e.get_scheme();return(a===`http`||a===`ws`)&&n===80||(a===`https`||a===`wss`)&&n===443||a===`ftp`&&n===21?``:String(n)}get host(){let n=this.hostname,a=this.port;return a?`${n}:${a}`:n}get pathname(){return this.#e.get_path()||`/`}get search(){let n=this.#e.get_query();return n?`?`+n:``}get hash(){let n=this.#e.get_fragment();return n?`#`+n:``}get origin(){let n=this.protocol;return n===`http:`||n===`https:`||n===`ftp:`?`${n}//${this.host}`:`null`}get username(){return this.#e.get_user()||``}get password(){return this.#e.get_password()||``}get href(){let n=this.protocol,a=this.#e.get_scheme();(a===`http`||a===`https`||a===`ftp`||a===`file`||a===`ws`||a===`wss`||this.hostname)&&(n+=`//`);let S=this.username,C=this.password;S&&(n+=S,C&&(n+=`:`+C),n+=`@`),n+=this.hostname,this.port&&(n+=`:`+this.port);let N=this.pathname;return n+=N,n+=this.search,n+=this.hash,n}get searchParams(){return this.#t}toString(){return this.href}toJSON(){return this.href}static _objectURLPaths=new Map;static _objectURLCounter=0;static createObjectURL(n){let a=n?._tmpPath;if(typeof a==`string`&&a.length>0){let n=`file://${a}`;return URL._objectURLPaths.set(n,a),n}return`file:///dev/null`}static revokeObjectURL(n){let a=URL._objectURLPaths.get(n);if(a){try{Z.unlink(a)}catch{}URL._objectURLPaths.delete(n)}}},__name$1(parse$4,`parse`),__name$1(format$4,`format`),__name$1(resolve$3,`resolve`),nn={URL:tn,URLSearchParams:en,parse:parse$4,format:format$4,resolve:resolve$3,fileURLToPath,pathToFileURL,domainToASCII,domainToUnicode}});rn(),typeof globalThis.URL!=`function`&&Object.defineProperty(globalThis,"URL",{value:tn,enumerable:!1,writable:!0,configurable:!0}),typeof globalThis.URLSearchParams!=`function`&&Object.defineProperty(globalThis,"URLSearchParams",{value:en,enumerable:!1,writable:!0,configurable:!0});var an=__exportAll$3({PerformanceEntry:()=>ln,PerformanceMark:()=>dn,PerformanceMeasure:()=>fn,PerformanceObserver:()=>cn,PerformanceObserverEntryList:()=>un,default:()=>pn,eventLoopUtilization:()=>eventLoopUtilization,monitorEventLoopDelay:()=>monitorEventLoopDelay,performance:()=>on,timerify:()=>timerify});function eventLoopUtilization(n,a){return{idle:0,active:0,utilization:0}}function timerify(n){let wrapped=function(...a){let S=on.now(),C=n.apply(this,a);return on.now()-S,C};return Object.defineProperty(wrapped,"name",{value:n.name}),wrapped}function monitorEventLoopDelay(n){let a=new Map;return{enable(){},disable(){},reset(){},percentile(n){return 0},get min(){return 0},get max(){return 0},get mean(){return 0},get stddev(){return 0},get percentiles(){return a}}}var on,PerformanceObserverStub,PerformanceEntryStub,PerformanceObserverEntryListStub,sn,cn,ln,un,dn,fn,pn,mn=__esmMin(()=>{if(globalThis.performance)on=globalThis.performance;else{let n,_now;try{let a=globalThis.imports?.gi?.GLib;if(!a)throw Error(`GJS imports.gi.GLib not available`);n=a.get_monotonic_time(),_now=()=>(a.get_monotonic_time()-n)/1e3}catch{let a=Date.now();n=0,_now=()=>Date.now()-a}let a=[],S=Date.now()-_now();on={timeOrigin:S,now:_now,mark(n){let S={name:n,entryType:`mark`,startTime:_now(),duration:0};return a.push(S),S},measure(n,S,C){let N=0,F=_now();if(S){let n=a.find(n=>n.entryType===`mark`&&n.name===S);n&&(N=n.startTime)}if(C){let n=a.find(n=>n.entryType===`mark`&&n.name===C);n&&(F=n.startTime)}let I={name:n,entryType:`measure`,startTime:N,duration:F-N};return a.push(I),I},getEntries(){return[...a]},getEntriesByName(n){return a.filter(a=>a.name===n)},getEntriesByType(n){return a.filter(a=>a.entryType===n)},clearMarks(n){for(let S=a.length-1;S>=0;S--)a[S].entryType===`mark`&&(!n||a[S].name===n)&&a.splice(S,1)},clearMeasures(n){for(let S=a.length-1;S>=0;S--)a[S].entryType===`measure`&&(!n||a[S].name===n)&&a.splice(S,1)},clearResourceTimings(){},setResourceTimingBufferSize(){},toJSON(){return{timeOrigin:S}}}}PerformanceObserverStub=class{_callback;constructor(n){this._callback=n}observe(n){}disconnect(){}takeRecords(){return[]}},PerformanceEntryStub=class{name=``;entryType=``;startTime=0;duration=0;toJSON(){return{name:this.name,entryType:this.entryType,startTime:this.startTime,duration:this.duration}}},PerformanceObserverEntryListStub=class{getEntries(){return[]}getEntriesByName(n){return[]}getEntriesByType(n){return[]}},sn=globalThis,cn=sn.PerformanceObserver||PerformanceObserverStub,ln=sn.PerformanceEntry||PerformanceEntryStub,un=sn.PerformanceObserverEntryList||PerformanceObserverEntryListStub,dn=sn.PerformanceMark||class PerformanceMark extends PerformanceEntryStub{},fn=sn.PerformanceMeasure||class PerformanceMeasure extends PerformanceEntryStub{},pn={performance:on,PerformanceObserver:cn,PerformanceEntry:ln,PerformanceObserverEntryList:un,PerformanceMark:dn,PerformanceMeasure:fn,eventLoopUtilization,timerify,monitorEventLoopDelay}});mn();const hn=globalThis;globalThis.performance===void 0&&(hn.performance=on),typeof hn.PerformanceObserver!=`function`&&(hn.PerformanceObserver=cn);const gn={IndexSizeError:1,HierarchyRequestError:3,WrongDocumentError:4,InvalidCharacterError:5,NoModificationAllowedError:7,NotFoundError:8,NotSupportedError:9,InUseAttributeError:10,InvalidStateError:11,SyntaxError:12,InvalidModificationError:13,NamespaceError:14,InvalidAccessError:15,TypeMismatchError:17,SecurityError:18,NetworkError:19,AbortError:20,URLMismatchError:21,QuotaExceededError:22,TimeoutError:23,InvalidNodeTypeError:24,DataCloneError:25};var _DOMExceptionPolyfill=class extends Error{code;constructor(n,a){super(n),this.name=a||`Error`,this.code=Object.hasOwn(gn,this.name)?gn[this.name]:0}};const _n=globalThis.DOMException===void 0?_DOMExceptionPolyfill:globalThis.DOMException;Ie();const vn=Symbol(`type`),yn=Symbol(`bubbles`),bn=Symbol(`cancelable`),xn=Symbol(`composed`),Sn=Symbol(`target`),Cn=Symbol(`currentTarget`),wn=Symbol(`eventPhase`),Tn=Symbol(`defaultPrevented`),En=Symbol(`isTrusted`),Q=Symbol(`timeStamp`),Dn=Symbol(`stop`),On=Symbol(`immediateStop`),kn=Symbol(`dispatching`),An=Symbol(`inPassiveListener`);var Event=class{[vn];[yn];[bn];[xn];[Sn]=null;[Cn]=null;[wn]=0;[Tn]=!1;[En]=!1;[Q];[Dn]=!1;[On]=!1;[kn]=!1;[An]=!1;get type(){return this[vn]}get bubbles(){return this[yn]}get cancelable(){return this[bn]}get composed(){return this[xn]}get target(){return this[Sn]}get currentTarget(){return this[Cn]}get eventPhase(){return this[wn]}get defaultPrevented(){return this[Tn]}get timeStamp(){return this[Q]}get cancelBubble(){return this[Dn]}set cancelBubble(n){n&&this.stopPropagation()}get returnValue(){return!this[Tn]}set returnValue(n){n||this.preventDefault()}get srcElement(){return this[Sn]}static NONE=0;static CAPTURING_PHASE=1;static AT_TARGET=2;static BUBBLING_PHASE=3;get[Symbol.toStringTag](){return`Event`}constructor(n,a){this[vn]=n,this[yn]=a?.bubbles??!1,this[bn]=a?.cancelable??!1,this[xn]=a?.composed??!1,this[Q]=Date.now(),Object.defineProperty(this,"isTrusted",{get:()=>this[En],enumerable:!0,configurable:!1})}composedPath(){return this[Cn]?[this[Cn]]:[]}preventDefault(){this[bn]&&!this[An]&&(this[Tn]=!0)}stopPropagation(){this[Dn]=!0}stopImmediatePropagation(){this[Dn]=!0,this[On]=!0}},EventTarget=class{_listeners=new Map;get[Symbol.toStringTag](){return`EventTarget`}addEventListener(n,a,S){if(a===null)return;let C=typeof S==`boolean`?S:S?.capture??!1,N=typeof S==`object`?S?.once??!1:!1,F=typeof S==`object`?S?.passive??!1:!1,I=this._listeners.get(n);I||(I=[],this._listeners.set(n,I));for(let n of I)if(n.listener===a&&n.capture===C)return;let H={listener:a,capture:C,once:N,passive:F,removed:!1};I.push(H),typeof S==`object`&&S?.signal&&S.signal.addEventListener(`abort`,()=>{this.removeEventListener(n,a,{capture:C})},{once:!0})}removeEventListener(n,a,S){if(a===null)return;let C=typeof S==`boolean`?S:S?.capture??!1,N=this._listeners.get(n);if(!N)return;let F=N.findIndex(n=>n.listener===a&&n.capture===C);F!==-1&&(N[F].removed=!0,N.splice(F,1),N.length===0&&this._listeners.delete(n))}dispatchEvent(n){let a=n;if(a[kn])throw new _n(`The event is already being dispatched.`,`InvalidStateError`);a[kn]=!0,a[Sn]=this,a[Cn]=this,a[wn]=Event.AT_TARGET;let S=this._listeners.get(n.type);if(S){let C=[...S];for(let S of C)if(!S.removed){if(a[On]||a[Dn])break;S.once&&this.removeEventListener(n.type,S.listener,{capture:S.capture});try{S.passive&&(a[An]=!0),typeof S.listener==`function`?S.listener.call(this,n):typeof S.listener.handleEvent==`function`&&S.listener.handleEvent.call(S.listener,n)}catch(n){Fe.error(n)}finally{a[An]=!1}}}return a[wn]=Event.NONE,a[Cn]=null,a[kn]=!1,!n.defaultPrevented}};for(let[n,a]of[[`NONE`,0],[`CAPTURING_PHASE`,1],[`AT_TARGET`,2],[`BUBBLING_PHASE`,3]])Object.defineProperty(Event.prototype,n,{value:a,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(Event,n,{value:a,writable:!1,enumerable:!0,configurable:!1});const jn=Symbol(`abort`),Mn=Symbol(`internal`);var Nn=class AbortSignal extends EventTarget{#e=!1;reason=void 0;onabort=null;constructor(n){if(super(),n!==Mn)throw TypeError(`Illegal constructor.`)}get aborted(){if(!(this instanceof AbortSignal))throw TypeError(`'get aborted' called on an object that is not a valid instance of AbortSignal.`);return this.#e}get[Symbol.toStringTag](){return`AbortSignal`}throwIfAborted(){if(this.#e)throw this.reason}[jn](n){if(this.#e)return;this.#e=!0,this.reason=n??new _n(`The operation was aborted.`,`AbortError`);let a=new Event(`abort`);typeof this.onabort==`function`&&this.onabort.call(this,a),this.dispatchEvent(a)}static abort(n){let a=new AbortSignal(Mn);return a[jn](n),a}static timeout(n){let a=new AbortSignal(Mn);return setTimeout(()=>{a[jn](new _n(`The operation timed out.`,`TimeoutError`))},n),a}static any(n){let a=new AbortSignal(Mn);for(let S of n)if(S.aborted)return a[jn](S.reason),a;let onAbort=()=>{if(!a.aborted){let S=n.find(n=>n.aborted);a[jn](S?.reason)}};for(let a of n)a.addEventListener(`abort`,onAbort,{once:!0});return a}},Pn=class AbortController{signal;constructor(){this.signal=new Nn(Mn)}abort(n){if(!(this instanceof AbortController))throw TypeError(`'abort' called on an object that is not a valid instance of AbortController.`);this.signal[jn](n)}};const Fn=globalThis;globalThis.AbortController===void 0&&(Fn.AbortController=Pn),globalThis.AbortSignal===void 0&&(Fn.AbortSignal=Nn);const In=Symbol(`kState`),Ln=Symbol(`kType`);function isBrandCheck(n){return a=>typeof a==`object`&&!!a&&a[In]!==void 0&&a[Ln]===n}function dequeueValue(n){let{value:a,size:S}=n[In].queue.shift();return n[In].queueTotalSize=Math.max(0,n[In].queueTotalSize-S),a}function resetQueue(n){n[In].queue=[],n[In].queueTotalSize=0}function peekQueueValue(n){return n[In].queue[0].value}function enqueueValueWithSize(n,a,S){if(S=+S,typeof S!=`number`||S<0||Number.isNaN(S)||S===1/0)throw RangeError(`Invalid size: ${S}`);n[In].queue.push({value:a,size:S}),n[In].queueTotalSize+=S}function extractHighWaterMark(n,a){if(n===void 0)return a;if(n=+n,typeof n!=`number`||Number.isNaN(n)||n<0)throw RangeError(`Invalid highWaterMark: ${n}`);return n}function extractSizeAlgorithm(n){if(n===void 0)return()=>1;if(typeof n!=`function`)throw TypeError(`strategy.size must be a function`);return n}function transferArrayBuffer(n){return typeof ArrayBuffer.prototype.transfer==`function`?n.transfer():n.slice(0)}function isDetachedBuffer(n){if(typeof SharedArrayBuffer<`u`&&n instanceof SharedArrayBuffer||n.byteLength!==0)return!1;try{return n.slice(0,0),!1}catch{return!0}}function typedArrayConstructorByTag(n){switch(n){case`Int8Array`:return Int8Array;case`Uint8Array`:return Uint8Array;case`Uint8ClampedArray`:return Uint8ClampedArray;case`Int16Array`:return Int16Array;case`Uint16Array`:return Uint16Array;case`Int32Array`:return Int32Array;case`Uint32Array`:return Uint32Array;case`Float32Array`:return Float32Array;case`Float64Array`:return Float64Array;case`BigInt64Array`:return typeof BigInt64Array<`u`?BigInt64Array:void 0;case`BigUint64Array`:return typeof BigUint64Array<`u`?BigUint64Array:void 0;default:return}}function elementSizeByTag(n){switch(n){case`Int8Array`:case`Uint8Array`:case`Uint8ClampedArray`:return 1;case`Int16Array`:case`Uint16Array`:return 2;case`Int32Array`:case`Uint32Array`:case`Float32Array`:return 4;case`Float64Array`:case`BigInt64Array`:case`BigUint64Array`:return 8;default:return 1}}function setPromiseHandled(n){n.then(()=>{},()=>{})}function createPromiseCallback(n,a,S){if(typeof a!=`function`)throw TypeError(`${n} must be a function`);return async(...n)=>a.call(S,...n)}async function nonOpFlush(){}function nonOpStart(){}async function nonOpPull(){}async function nonOpCancel(){}async function nonOpWrite(){}const Rn={__proto__:Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype),next:void 0,return:void 0};function createAsyncFromSyncIterator(n){let a={[Symbol.iterator]:()=>n.iterator},S=(async function*(){return yield*a})();return{iterator:S,nextMethod:S.next,done:!1}}function getIterator(n,a=`sync`,S){if(S===void 0)if(a===`async`){if(S=n[Symbol.asyncIterator],S==null){let a=n[Symbol.iterator];if(a===void 0)throw TypeError(`Object is not iterable`);return createAsyncFromSyncIterator(getIterator(n,`sync`,a))}}else S=n[Symbol.iterator];if(S===void 0)throw TypeError(`Object is not iterable`);let C=S.call(n);if(typeof C!=`object`||!C)throw TypeError(`The iterator method must return an object`);return{iterator:C,nextMethod:C.next,done:!1}}function iteratorNext(n,a){let S;if(S=a===void 0?n.nextMethod.call(n.iterator):n.nextMethod.call(n.iterator,a),typeof S!=`object`||!S)throw TypeError(`The iterator.next() method must return an object`);return S}const zn=typeof globalThis.AbortController==`function`?globalThis.AbortController:class AbortControllerShim{signal={aborted:!1,reason:void 0,addEventListener(){},removeEventListener(){}};abort(n){this.signal.aborted=!0,this.signal.reason=n}},Bn=Symbol(`kAbort`),Vn=Symbol(`kCloseSentinel`),Hn=Symbol(`kError`),Un=Symbol(`kSkipThrow`);var WritableStream=class{[Ln]=`WritableStream`;[In];constructor(n={},a={}){if(n!=null&&typeof n!=`object`)throw TypeError(`sink must be an object`);if(a!=null&&typeof a!=`object`)throw TypeError(`strategy must be an object`);let S=n?.type;if(S!==void 0)throw RangeError(`Invalid type: ${S}`);this[In]=createWritableStreamState();let C=extractSizeAlgorithm(a?.size),N=extractHighWaterMark(a?.highWaterMark,1);setupWritableStreamDefaultControllerFromSink(this,n,N,C)}get locked(){if(!Wn(this))throw TypeError(`Invalid this`);return isWritableStreamLocked(this)}abort(n){return Wn(this)?isWritableStreamLocked(this)?Promise.reject(TypeError(`WritableStream is locked`)):writableStreamAbort(this,n):Promise.reject(TypeError(`Invalid this`))}close(){return Wn(this)?isWritableStreamLocked(this)?Promise.reject(TypeError(`WritableStream is locked`)):writableStreamCloseQueuedOrInFlight(this)?Promise.reject(TypeError(`Failure closing WritableStream`)):writableStreamClose(this):Promise.reject(TypeError(`Invalid this`))}getWriter(){if(!Wn(this))throw TypeError(`Invalid this`);return new WritableStreamDefaultWriter(this)}get[Symbol.toStringTag](){return`WritableStream`}},WritableStreamDefaultWriter=class{[Ln]=`WritableStreamDefaultWriter`;[In];constructor(n){if(!Wn(n))throw TypeError(`Expected a WritableStream`);this[In]={stream:void 0,close:{promise:void 0,resolve:void 0,reject:void 0},ready:{promise:void 0,resolve:void 0,reject:void 0}},setupWritableStreamDefaultWriter(this,n)}get closed(){return Gn(this)?this[In].close.promise:Promise.reject(TypeError(`Invalid this`))}get desiredSize(){if(!Gn(this))throw TypeError(`Invalid this`);if(this[In].stream===void 0)throw TypeError(`Writer is not bound to a WritableStream`);return writableStreamDefaultWriterGetDesiredSize(this)}get ready(){return Gn(this)?this[In].ready.promise:Promise.reject(TypeError(`Invalid this`))}abort(n){return Gn(this)?this[In].stream===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamDefaultWriterAbort(this,n):Promise.reject(TypeError(`Invalid this`))}close(){if(!Gn(this))return Promise.reject(TypeError(`Invalid this`));let{stream:n}=this[In];return n===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamCloseQueuedOrInFlight(n)?Promise.reject(TypeError(`Failure to close WritableStream`)):writableStreamDefaultWriterClose(this)}releaseLock(){if(!Gn(this))throw TypeError(`Invalid this`);let{stream:n}=this[In];n!==void 0&&writableStreamDefaultWriterRelease(this)}write(n){return Gn(this)?this[In].stream===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamDefaultWriterWrite(this,n):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`WritableStreamDefaultWriter`}},WritableStreamDefaultController=class{[Ln]=`WritableStreamDefaultController`;[In];constructor(n){if(n!==Un)throw TypeError(`Illegal constructor`)}[Bn](n){let a=this[In].abortAlgorithm(n);return writableStreamDefaultControllerClearAlgorithms(this),a}[Hn](){resetQueue(this)}get signal(){if(!Kn(this))throw TypeError(`Invalid this`);return this[In].abortController.signal}error(n){if(!Kn(this))throw TypeError(`Invalid this`);this[In].stream[In].state===`writable`&&writableStreamDefaultControllerError(this,n)}get[Symbol.toStringTag](){return`WritableStreamDefaultController`}};const Wn=isBrandCheck(`WritableStream`),Gn=isBrandCheck(`WritableStreamDefaultWriter`),Kn=isBrandCheck(`WritableStreamDefaultController`);function createEmptyPromiseRecord(){return{promise:void 0,resolve:void 0,reject:void 0}}function createWritableStreamState(){return{close:Promise.withResolvers(),closeRequest:createEmptyPromiseRecord(),inFlightWriteRequest:createEmptyPromiseRecord(),inFlightCloseRequest:createEmptyPromiseRecord(),pendingAbortRequest:{abort:createEmptyPromiseRecord(),reason:void 0,wasAlreadyErroring:!1},backpressure:!1,controller:void 0,state:`writable`,storedError:void 0,writeRequests:[],writer:void 0}}function isWritableStreamLocked(n){return n[In].writer!==void 0}function setupWritableStreamDefaultWriter(n,a){if(isWritableStreamLocked(a))throw TypeError(`WritableStream is locked`);switch(n[In].stream=a,a[In].writer=n,a[In].state){case`writable`:!writableStreamCloseQueuedOrInFlight(a)&&a[In].backpressure?n[In].ready=Promise.withResolvers():n[In].ready={promise:Promise.resolve(),resolve:void 0,reject:void 0},n[In].close=Promise.withResolvers();break;case`erroring`:n[In].ready={promise:Promise.reject(a[In].storedError),resolve:void 0,reject:void 0},setPromiseHandled(n[In].ready.promise),n[In].close=Promise.withResolvers();break;case`closed`:n[In].ready={promise:Promise.resolve(),resolve:void 0,reject:void 0},n[In].close={promise:Promise.resolve(),resolve:void 0,reject:void 0};break;default:n[In].ready={promise:Promise.reject(a[In].storedError),resolve:void 0,reject:void 0},n[In].close={promise:Promise.reject(a[In].storedError),resolve:void 0,reject:void 0},setPromiseHandled(n[In].ready.promise),setPromiseHandled(n[In].close.promise)}}function writableStreamAbort(n,a){let{state:S,controller:C}=n[In];if(S===`closed`||S===`errored`)return Promise.resolve();if(C[In].abortController.abort(a),n[In].pendingAbortRequest.abort.promise!==void 0)return n[In].pendingAbortRequest.abort.promise;let N=!1;S===`erroring`&&(N=!0,a=void 0);let F=Promise.withResolvers();return n[In].pendingAbortRequest={abort:F,reason:a,wasAlreadyErroring:N},N||writableStreamStartErroring(n,a),F.promise}function writableStreamClose(n){let{state:a,writer:S,backpressure:C,controller:N}=n[In];if(a===`closed`||a===`errored`)return Promise.reject(TypeError(`WritableStream is closed`));n[In].closeRequest=Promise.withResolvers();let{promise:F}=n[In].closeRequest;return S!==void 0&&C&&a===`writable`&&S[In].ready.resolve?.(),writableStreamDefaultControllerClose(N),F}function writableStreamUpdateBackpressure(n,a){let{writer:S}=n[In];S!==void 0&&n[In].backpressure!==a&&(a?S[In].ready=Promise.withResolvers():S[In].ready.resolve?.()),n[In].backpressure=a}function writableStreamStartErroring(n,a){let{controller:S,writer:C}=n[In];n[In].state=`erroring`,n[In].storedError=a,C!==void 0&&writableStreamDefaultWriterEnsureReadyPromiseRejected(C,a),!writableStreamHasOperationMarkedInFlight(n)&&S[In].started&&writableStreamFinishErroring(n)}function writableStreamRejectCloseAndClosedPromiseIfNeeded(n){n[In].closeRequest.promise!==void 0&&(n[In].closeRequest.reject?.(n[In].storedError),n[In].closeRequest={promise:void 0,resolve:void 0,reject:void 0}),setPromiseHandled(n[In].close.promise),n[In].close.reject?.(n[In].storedError);let{writer:a}=n[In];a!==void 0&&(setPromiseHandled(a[In].close.promise),a[In].close.reject?.(n[In].storedError))}function writableStreamMarkFirstWriteRequestInFlight(n){let a=n[In].writeRequests.shift();n[In].inFlightWriteRequest=a}function writableStreamMarkCloseRequestInFlight(n){n[In].inFlightCloseRequest=n[In].closeRequest,n[In].closeRequest={promise:void 0,resolve:void 0,reject:void 0}}function writableStreamHasOperationMarkedInFlight(n){return n[In].inFlightWriteRequest.promise!==void 0||n[In].inFlightCloseRequest.promise!==void 0}function writableStreamFinishInFlightWriteWithError(n,a){n[In].inFlightWriteRequest.reject?.(a),n[In].inFlightWriteRequest={promise:void 0,resolve:void 0,reject:void 0},writableStreamDealWithRejection(n,a)}function writableStreamFinishInFlightWrite(n){n[In].inFlightWriteRequest.resolve?.(),n[In].inFlightWriteRequest={promise:void 0,resolve:void 0,reject:void 0}}function writableStreamFinishInFlightCloseWithError(n,a){n[In].inFlightCloseRequest.reject?.(a),n[In].inFlightCloseRequest={promise:void 0,resolve:void 0,reject:void 0},n[In].pendingAbortRequest.abort.promise!==void 0&&(n[In].pendingAbortRequest.abort.reject?.(a),n[In].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1}),writableStreamDealWithRejection(n,a)}function writableStreamFinishInFlightClose(n){n[In].inFlightCloseRequest.resolve?.(),n[In].inFlightCloseRequest={promise:void 0,resolve:void 0,reject:void 0},n[In].state===`erroring`&&(n[In].storedError=void 0,n[In].pendingAbortRequest.abort.promise!==void 0&&(n[In].pendingAbortRequest.abort.resolve?.(),n[In].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1})),n[In].state=`closed`,n[In].writer!==void 0&&n[In].writer[In].close.resolve?.(),n[In].close.resolve?.()}function writableStreamFinishErroring(n){n[In].state=`errored`,n[In].controller[Hn]();let a=n[In].storedError;for(let S of n[In].writeRequests)S.reject?.(a);if(n[In].writeRequests=[],n[In].pendingAbortRequest.abort.promise===void 0){writableStreamRejectCloseAndClosedPromiseIfNeeded(n);return}let S=n[In].pendingAbortRequest;if(n[In].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1},S.wasAlreadyErroring){S.abort.reject?.(a),writableStreamRejectCloseAndClosedPromiseIfNeeded(n);return}n[In].controller[Bn](S.reason).then(()=>{S.abort.resolve?.(),writableStreamRejectCloseAndClosedPromiseIfNeeded(n)},a=>{S.abort.reject?.(a),writableStreamRejectCloseAndClosedPromiseIfNeeded(n)})}function writableStreamDealWithRejection(n,a){if(n[In].state===`writable`){writableStreamStartErroring(n,a);return}writableStreamFinishErroring(n)}function writableStreamCloseQueuedOrInFlight(n){return n[In].closeRequest.promise!==void 0||n[In].inFlightCloseRequest.promise!==void 0}function writableStreamAddWriteRequest(n){let{promise:a,resolve:S,reject:C}=Promise.withResolvers();return n[In].writeRequests.push({promise:a,resolve:S,reject:C}),a}function writableStreamDefaultWriterWrite(n,a){let{stream:S}=n[In],{controller:C}=S[In],N=writableStreamDefaultControllerGetChunkSize(C,a);if(S!==n[In].stream)return Promise.reject(TypeError(`Mismatched WritableStreams`));let{state:F}=S[In];if(F===`errored`)return Promise.reject(S[In].storedError);if(writableStreamCloseQueuedOrInFlight(S)||F===`closed`)return Promise.reject(TypeError(`WritableStream is closed`));if(F===`erroring`)return Promise.reject(S[In].storedError);let I=writableStreamAddWriteRequest(S);return writableStreamDefaultControllerWrite(C,a,N),I}function writableStreamDefaultWriterRelease(n){let{stream:a}=n[In],S=TypeError(`Writer has been released`);writableStreamDefaultWriterEnsureReadyPromiseRejected(n,S),writableStreamDefaultWriterEnsureClosedPromiseRejected(n,S),a[In].writer=void 0,n[In].stream=void 0}function writableStreamDefaultWriterGetDesiredSize(n){let{stream:a}=n[In];switch(a[In].state){case`errored`:case`erroring`:return null;case`closed`:return 0}return writableStreamDefaultControllerGetDesiredSize(a[In].controller)}function writableStreamDefaultWriterEnsureReadyPromiseRejected(n,a){n[In].ready.reject?(n[In].ready.reject(a),n[In].ready.resolve=void 0,n[In].ready.reject=void 0):n[In].ready={promise:Promise.reject(a),resolve:void 0,reject:void 0},setPromiseHandled(n[In].ready.promise)}function writableStreamDefaultWriterEnsureClosedPromiseRejected(n,a){n[In].close.reject?(n[In].close.reject(a),n[In].close.resolve=void 0,n[In].close.reject=void 0):n[In].close={promise:Promise.reject(a),resolve:void 0,reject:void 0},setPromiseHandled(n[In].close.promise)}function writableStreamDefaultWriterCloseWithErrorPropagation(n){let{stream:a}=n[In],{state:S}=a[In];return writableStreamCloseQueuedOrInFlight(a)||S===`closed`?Promise.resolve():S===`errored`?Promise.reject(a[In].storedError):writableStreamDefaultWriterClose(n)}function writableStreamDefaultWriterClose(n){return writableStreamClose(n[In].stream)}function writableStreamDefaultWriterAbort(n,a){return writableStreamAbort(n[In].stream,a)}function writableStreamDefaultControllerWrite(n,a,S){try{enqueueValueWithSize(n,a,S)}catch(a){writableStreamDefaultControllerErrorIfNeeded(n,a);return}let{stream:C}=n[In];!writableStreamCloseQueuedOrInFlight(C)&&C[In].state===`writable`&&writableStreamUpdateBackpressure(C,writableStreamDefaultControllerGetBackpressure(n)),writableStreamDefaultControllerAdvanceQueueIfNeeded(n)}function writableStreamDefaultControllerProcessWrite(n,a){let{stream:S,writeAlgorithm:C}=n[In];writableStreamMarkFirstWriteRequestInFlight(S),C(a,n).then(()=>{writableStreamFinishInFlightWrite(S);let{state:a}=S[In];dequeueValue(n),!writableStreamCloseQueuedOrInFlight(S)&&a===`writable`&&writableStreamUpdateBackpressure(S,writableStreamDefaultControllerGetBackpressure(n)),writableStreamDefaultControllerAdvanceQueueIfNeeded(n)},a=>{S[In].state===`writable`&&writableStreamDefaultControllerClearAlgorithms(n),writableStreamFinishInFlightWriteWithError(S,a)})}function writableStreamDefaultControllerProcessClose(n){let{closeAlgorithm:a,stream:S}=n[In];writableStreamMarkCloseRequestInFlight(S),dequeueValue(n);let C=a();writableStreamDefaultControllerClearAlgorithms(n),C.then(()=>writableStreamFinishInFlightClose(S),n=>writableStreamFinishInFlightCloseWithError(S,n))}function writableStreamDefaultControllerGetDesiredSize(n){return n[In].highWaterMark-n[In].queueTotalSize}function writableStreamDefaultControllerGetChunkSize(n,a){let{sizeAlgorithm:S}=n[In];if(S===void 0)return 1;try{return S(a)}catch(a){return writableStreamDefaultControllerErrorIfNeeded(n,a),1}}function writableStreamDefaultControllerErrorIfNeeded(n,a){n[In].stream[In].state===`writable`&&writableStreamDefaultControllerError(n,a)}function writableStreamDefaultControllerError(n,a){writableStreamDefaultControllerClearAlgorithms(n),writableStreamStartErroring(n[In].stream,a)}function writableStreamDefaultControllerClose(n){enqueueValueWithSize(n,Vn,0),writableStreamDefaultControllerAdvanceQueueIfNeeded(n)}function writableStreamDefaultControllerClearAlgorithms(n){n[In].writeAlgorithm=void 0,n[In].closeAlgorithm=void 0,n[In].abortAlgorithm=void 0,n[In].sizeAlgorithm=void 0}function writableStreamDefaultControllerGetBackpressure(n){return writableStreamDefaultControllerGetDesiredSize(n)<=0}function writableStreamDefaultControllerAdvanceQueueIfNeeded(n){let{queue:a,started:S,stream:C}=n[In];if(!S||C[In].inFlightWriteRequest.promise!==void 0)return;if(C[In].state===`erroring`){writableStreamFinishErroring(C);return}if(!a.length)return;let N=peekQueueValue(n);N===Vn?writableStreamDefaultControllerProcessClose(n):writableStreamDefaultControllerProcessWrite(n,N)}function setupWritableStreamDefaultControllerFromSink(n,a,S,C){let N=new WritableStreamDefaultController(Un),F=a?.start,I=a?.write,H=a?.close,W=a?.abort;setupWritableStreamDefaultController(n,N,F?F.bind(a,N):nonOpStart,I?createPromiseCallback(`sink.write`,I,a):nonOpWrite,H?createPromiseCallback(`sink.close`,H,a):nonOpCancel,W?createPromiseCallback(`sink.abort`,W,a):nonOpCancel,S,C)}function setupWritableStreamDefaultController(n,a,S,C,N,F,I,H){a[In]={abortAlgorithm:F,closeAlgorithm:N,highWaterMark:I,queue:[],queueTotalSize:0,abortController:new zn,sizeAlgorithm:H,started:!1,stream:n,writeAlgorithm:C},n[In].controller=a,writableStreamUpdateBackpressure(n,writableStreamDefaultControllerGetBackpressure(a));let W=S();new Promise(n=>n(W)).then(()=>{a[In].started=!0,writableStreamDefaultControllerAdvanceQueueIfNeeded(a)},S=>{a[In].started=!0,writableStreamDealWithRejection(n,S)})}function createWritableStream(n,a,S,C,N=1,F=()=>1){let I=Object.create(WritableStream.prototype);return I[Ln]=`WritableStream`,I[In]=createWritableStreamState(),setupWritableStreamDefaultController(I,new WritableStreamDefaultController(Un),n,a,S,C,N,F),I}et();const qn=Symbol(`kCancel`),Jn=Symbol(`kClose`),Yn=Symbol(`kChunk`),Xn=Symbol(`kError`),Zn=Symbol(`kPull`),Qn=Symbol(`kRelease`),$n=Symbol(`kSkipThrow`);let er,tr;function lazyReadableReleasedError(){return er||(er=TypeError(`Reader released`),er)}function lazyReadableReleasingError(){return tr||(tr=TypeError(`Releasing reader`),tr)}function createAbortError(){if(typeof globalThis.DOMException==`function`)return new DOMException(`The operation was aborted`,`AbortError`);let n=Error(`The operation was aborted`);return n.name=`AbortError`,n}function createReadableStreamState(){return{disturbed:!1,reader:void 0,state:`readable`,storedError:void 0,controller:void 0,closedPromise:Promise.withResolvers()}}var ReadableStream$1=class{static{__name$1(this,`ReadableStream`)}[Ln]=`ReadableStream`;[In];constructor(n={},a={}){if(n!=null&&typeof n!=`object`)throw TypeError(`source must be an object`);if(a!=null&&typeof a!=`object`)throw TypeError(`strategy must be an object`);this[In]=createReadableStreamState();let S=a?.size,C=a?.highWaterMark,N=n?.type;if(N!==void 0){if(`${N}`==`bytes`){if(S!==void 0)throw RangeError(`strategy.size must not be set for a byte stream`);setupReadableByteStreamControllerFromSource(this,n,extractHighWaterMark(C,0));return}throw RangeError(`Invalid type: ${N}`)}setupReadableStreamDefaultControllerFromSource(this,n,extractHighWaterMark(C,1),extractSizeAlgorithm(S))}get locked(){if(!nr(this))throw TypeError(`Invalid this`);return isReadableStreamLocked(this)}static from(n){return readableStreamFromIterable(n)}cancel(n=void 0){return nr(this)?isReadableStreamLocked(this)?Promise.reject(TypeError(`ReadableStream is locked`)):readableStreamCancel(this,n):Promise.reject(TypeError(`Invalid this`))}getReader(n={}){if(!nr(this))throw TypeError(`Invalid this`);if(n!=null&&typeof n!=`object`)throw TypeError(`options must be an object`);let a=n?.mode;if(a===void 0)return new ReadableStreamDefaultReader(this);if(`${a}`==`byob`)return new ReadableStreamBYOBReader(this);throw RangeError(`Invalid mode: ${a}`)}pipeThrough(n,a={}){if(!nr(this))throw TypeError(`Invalid this`);let S=n?.readable;if(!nr(S))throw TypeError(`transform.readable must be a ReadableStream`);let C=n?.writable;if(!Wn(C))throw TypeError(`transform.writable must be a WritableStream`);if(a!=null&&typeof a!=`object`)throw TypeError(`options must be an object`);let N=a?.preventAbort,F=a?.preventCancel,I=a?.preventClose,H=a?.signal;if(H!==void 0&&!(H instanceof Object&&`aborted`in H))throw TypeError(`options.signal must be an AbortSignal`);if(isReadableStreamLocked(this))throw TypeError(`The ReadableStream is locked`);if(isWritableStreamLocked(C))throw TypeError(`The WritableStream is locked`);return setPromiseHandled(readableStreamPipeTo(this,C,!!I,!!N,!!F,H)),S}pipeTo(n,a={}){try{if(!nr(this))throw TypeError(`Invalid this`);if(!Wn(n))throw TypeError(`destination must be a WritableStream`);if(a!=null&&typeof a!=`object`)throw TypeError(`options must be an object`);let S=a?.preventAbort,C=a?.preventCancel,N=a?.preventClose,F=a?.signal;if(F!==void 0&&!(F instanceof Object&&`aborted`in F))throw TypeError(`options.signal must be an AbortSignal`);if(isReadableStreamLocked(this))throw TypeError(`The ReadableStream is locked`);if(isWritableStreamLocked(n))throw TypeError(`The WritableStream is locked`);return readableStreamPipeTo(this,n,!!N,!!S,!!C,F)}catch(n){return Promise.reject(n)}}tee(){if(!nr(this))throw TypeError(`Invalid this`);let n=this[In].controller;return ar(n)?readableByteStreamTee(this):readableStreamDefaultTee(this,!1)}values(n={}){if(!nr(this))throw TypeError(`Invalid this`);if(n!=null&&typeof n!=`object`)throw TypeError(`options must be an object`);let a=!!n?.preventCancel,S=new ReadableStreamDefaultReader(this),C={done:!1,current:void 0},N=!1;function nextSteps(){if(C.done)return Promise.resolve({done:!0,value:void 0});if(S[In].stream===void 0)return Promise.reject(TypeError(`The reader is not bound to a ReadableStream`));let{promise:n,resolve:a,reject:N}=Promise.withResolvers();return readableStreamDefaultReaderRead(S,{[Yn](n){C.current=void 0,a({value:n,done:!1})},[Jn](){C.current=void 0,C.done=!0,readableStreamReaderGenericRelease(S),a({done:!0,value:void 0})},[Xn](n){C.current=void 0,C.done=!0,readableStreamReaderGenericRelease(S),N(n)}}),n}async function returnSteps(n){if(C.done)return{done:!0,value:n};if(C.done=!0,S[In].stream===void 0)throw TypeError(`The reader is not bound to a ReadableStream`);if(!a){let a=readableStreamReaderGenericCancel(S,n);return readableStreamReaderGenericRelease(S),await a,{done:!0,value:n}}return readableStreamReaderGenericRelease(S),{done:!0,value:n}}return Object.setPrototypeOf({next(){return N||=(C.current=Promise.resolve(),!0),C.current=C.current===void 0?nextSteps():C.current.then(nextSteps,nextSteps),C.current},return(n){return N=!0,C.current=C.current===void 0?returnSteps(n):C.current.then(()=>returnSteps(n),()=>returnSteps(n)),C.current},[Symbol.asyncIterator](){return this}},Rn)}[Symbol.asyncIterator](){return this.values()}get[Symbol.toStringTag](){return`ReadableStream`}},DefaultReadRequest=class{[In];constructor(){this[In]=Promise.withResolvers()}[Yn](n){this[In].resolve?.({value:n,done:!1})}[Jn](){this[In].resolve?.({value:void 0,done:!0})}[Xn](n){this[In].reject?.(n)}get promise(){return this[In].promise}},ReadableStreamDefaultReader=class{[Ln]=`ReadableStreamDefaultReader`;[In];constructor(n){if(!nr(n))throw TypeError(`Expected a ReadableStream`);this[In]={readRequests:[],stream:void 0,close:{promise:void 0,resolve:void 0,reject:void 0}},setupReadableStreamDefaultReader(this,n)}read(){if(!ir(this))return Promise.reject(TypeError(`Invalid this`));if(this[In].stream===void 0)return Promise.reject(TypeError(`The reader is not attached to a stream`));let n=this[In].stream,a=n[In].controller;if(n[In].state===`readable`&&rr(a)&&a[In].queue.length>0){n[In].disturbed=!0;let S=dequeueValue(a);return a[In].closeRequested&&!a[In].queue.length?(readableStreamDefaultControllerClearAlgorithms(a),readableStreamClose(n)):readableStreamDefaultControllerCallPullIfNeeded(a),Promise.resolve({value:S,done:!1})}let S=new DefaultReadRequest;return readableStreamDefaultReaderRead(this,S),S.promise}releaseLock(){if(!ir(this))throw TypeError(`Invalid this`);this[In].stream!==void 0&&readableStreamDefaultReaderRelease(this)}get closed(){return ir(this)?this[In].close.promise:Promise.reject(TypeError(`Invalid this`))}cancel(n=void 0){return ir(this)?this[In].stream===void 0?Promise.reject(TypeError(`The reader is not attached to a stream`)):readableStreamReaderGenericCancel(this,n):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`ReadableStreamDefaultReader`}},ReadableStreamDefaultController=class{[Ln]=`ReadableStreamDefaultController`;[In]={};constructor(n){if(n!==$n)throw TypeError(`Illegal constructor`)}get desiredSize(){return readableStreamDefaultControllerGetDesiredSize(this)}close(){if(!readableStreamDefaultControllerCanCloseOrEnqueue(this))throw TypeError(`Controller is already closed`);readableStreamDefaultControllerClose(this)}enqueue(n=void 0){if(!readableStreamDefaultControllerCanCloseOrEnqueue(this))throw TypeError(`Controller is already closed`);readableStreamDefaultControllerEnqueue(this,n)}error(n=void 0){readableStreamDefaultControllerError(this,n)}[qn](n){return readableStreamDefaultControllerCancelSteps(this,n)}[Zn](n){readableStreamDefaultControllerPullSteps(this,n)}[Qn](){}get[Symbol.toStringTag](){return`ReadableStreamDefaultController`}};const nr=isBrandCheck(`ReadableStream`),rr=isBrandCheck(`ReadableStreamDefaultController`),ir=isBrandCheck(`ReadableStreamDefaultReader`);function isReadableStreamLocked(n){return n[In].reader!==void 0}function readableStreamCancel(n,a){switch(n[In].disturbed=!0,n[In].state){case`closed`:return Promise.resolve();case`errored`:return Promise.reject(n[In].storedError)}readableStreamClose(n);let S=n[In].reader;if(S!==void 0&&readableStreamHasBYOBReader(n)){let n=S[In].readIntoRequests;S[In].readIntoRequests=[];for(let a=0;a<n.length;a++)n[a][Jn](void 0)}return n[In].controller[qn](a).then(()=>{})}function readableStreamClose(n){n[In].state=`closed`,n[In].closedPromise.resolve();let{reader:a}=n[In];if(a!==void 0&&(a[In].close.resolve?.(),readableStreamHasDefaultReader(n))){for(let n=0;n<a[In].readRequests.length;n++)a[In].readRequests[n][Jn]();a[In].readRequests=[]}}function readableStreamError(n,a){n[In].state=`errored`,n[In].storedError=a,setPromiseHandled(n[In].closedPromise.promise),n[In].closedPromise.reject(a);let{reader:S}=n[In];if(S!==void 0){if(setPromiseHandled(S[In].close.promise),S[In].close.reject?.(a),readableStreamHasDefaultReader(n)){for(let n=0;n<S[In].readRequests.length;n++)S[In].readRequests[n][Xn](a);S[In].readRequests=[]}else if(readableStreamHasBYOBReader(n)){for(let n=0;n<S[In].readIntoRequests.length;n++)S[In].readIntoRequests[n][Xn](a);S[In].readIntoRequests=[]}}}function readableStreamHasDefaultReader(n){let{reader:a}=n[In];return a===void 0?!1:a[In]!==void 0&&a[Ln]===`ReadableStreamDefaultReader`}function readableStreamGetNumReadRequests(n){return n[In].reader[In].readRequests.length}function readableStreamFulfillReadRequest(n,a,S){let{reader:C}=n[In],N=C[In].readRequests.shift();S?N[Jn]():N[Yn](a)}function readableStreamAddReadRequest(n,a){n[In].reader[In].readRequests.push(a)}function readableStreamReaderGenericCancel(n,a){let{stream:S}=n[In];return readableStreamCancel(S,a)}function readableStreamReaderGenericInitialize(n,a){switch(n[In].stream=a,a[In].reader=n,a[In].state){case`readable`:n[In].close=Promise.withResolvers();break;case`closed`:n[In].close={promise:Promise.resolve(),resolve:void 0,reject:void 0};break;case`errored`:n[In].close={promise:Promise.reject(a[In].storedError),resolve:void 0,reject:void 0},setPromiseHandled(n[In].close.promise);break}}function readableStreamReaderGenericRelease(n){let{stream:a}=n[In],S=lazyReadableReleasedError();a[In].state===`readable`?n[In].close.reject?.(S):n[In].close={promise:Promise.reject(S),resolve:void 0,reject:void 0},setPromiseHandled(n[In].close.promise),a[In].controller[Qn](),a[In].reader=void 0,n[In].stream=void 0}function readableStreamDefaultReaderRelease(n){readableStreamReaderGenericRelease(n),readableStreamDefaultReaderErrorReadRequests(n,lazyReadableReleasingError())}function readableStreamDefaultReaderErrorReadRequests(n,a){for(let S=0;S<n[In].readRequests.length;++S)n[In].readRequests[S][Xn](a);n[In].readRequests=[]}function readableStreamDefaultReaderRead(n,a){let{stream:S}=n[In];switch(S[In].disturbed=!0,S[In].state){case`closed`:a[Jn]();break;case`errored`:a[Xn](S[In].storedError);break;case`readable`:S[In].controller[Zn](a);break}}function setupReadableStreamDefaultReader(n,a){if(isReadableStreamLocked(a))throw TypeError(`ReadableStream is locked`);readableStreamReaderGenericInitialize(n,a),n[In].readRequests=[]}function readableStreamDefaultControllerClose(n){readableStreamDefaultControllerCanCloseOrEnqueue(n)&&(n[In].closeRequested=!0,n[In].queue.length||(readableStreamDefaultControllerClearAlgorithms(n),readableStreamClose(n[In].stream)))}function readableStreamDefaultControllerEnqueue(n,a){if(!readableStreamDefaultControllerCanCloseOrEnqueue(n))return;let{stream:S}=n[In];if(isReadableStreamLocked(S)&&readableStreamGetNumReadRequests(S))readableStreamFulfillReadRequest(S,a,!1);else try{enqueueValueWithSize(n,a,n[In].sizeAlgorithm(a))}catch(a){throw readableStreamDefaultControllerError(n,a),a}readableStreamDefaultControllerCallPullIfNeeded(n)}function readableStreamDefaultControllerCanCloseOrEnqueue(n){let{stream:a}=n[In];return!n[In].closeRequested&&a[In].state===`readable`}function readableStreamDefaultControllerGetDesiredSize(n){let{stream:a,highWaterMark:S,queueTotalSize:C}=n[In];switch(a[In].state){case`errored`:return null;case`closed`:return 0;default:return S-C}}function readableStreamDefaultControllerHasBackpressure(n){return!readableStreamDefaultControllerShouldCallPull(n)}function readableStreamDefaultControllerShouldCallPull(n){let{stream:a}=n[In];if(!readableStreamDefaultControllerCanCloseOrEnqueue(n)||!n[In].started)return!1;if(isReadableStreamLocked(a)&&readableStreamGetNumReadRequests(a))return!0;let S=readableStreamDefaultControllerGetDesiredSize(n);return S!==null&&S>0}function readableStreamDefaultControllerCallPullIfNeeded(n){if(readableStreamDefaultControllerShouldCallPull(n)){if(n[In].pulling){n[In].pullAgain=!0;return}n[In].pulling=!0,n[In].pullAlgorithm(n).then(()=>{n[In].pulling=!1,n[In].pullAgain&&(n[In].pullAgain=!1,readableStreamDefaultControllerCallPullIfNeeded(n))},a=>readableStreamDefaultControllerError(n,a))}}function readableStreamDefaultControllerClearAlgorithms(n){n[In].pullAlgorithm=void 0,n[In].cancelAlgorithm=void 0,n[In].sizeAlgorithm=void 0}function readableStreamDefaultControllerError(n,a){let{stream:S}=n[In];S[In].state===`readable`&&(resetQueue(n),readableStreamDefaultControllerClearAlgorithms(n),readableStreamError(S,a))}function readableStreamDefaultControllerCancelSteps(n,a){resetQueue(n);let S=n[In].cancelAlgorithm(a);return readableStreamDefaultControllerClearAlgorithms(n),S}function readableStreamDefaultControllerPullSteps(n,a){let{stream:S,queue:C}=n[In];if(C.length){let N=dequeueValue(n);n[In].closeRequested&&!C.length?(readableStreamDefaultControllerClearAlgorithms(n),readableStreamClose(S)):readableStreamDefaultControllerCallPullIfNeeded(n),a[Yn](N);return}readableStreamAddReadRequest(S,a),readableStreamDefaultControllerCallPullIfNeeded(n)}function setupReadableStreamDefaultController(n,a,S,C,N,F,I){a[In]={cancelAlgorithm:N,closeRequested:!1,highWaterMark:F,pullAgain:!1,pullAlgorithm:C,pulling:!1,queue:[],queueTotalSize:0,started:!1,sizeAlgorithm:I,stream:n},n[In].controller=a;let H=S();new Promise(n=>n(H)).then(()=>{a[In].started=!0,readableStreamDefaultControllerCallPullIfNeeded(a)},n=>readableStreamDefaultControllerError(a,n))}function setupReadableStreamDefaultControllerFromSource(n,a,S,C){let N=new ReadableStreamDefaultController($n),F=a?.start,I=a?.pull,H=a?.cancel;setupReadableStreamDefaultController(n,N,F?F.bind(a,N):nonOpStart,I?createPromiseCallback(`source.pull`,I,a):nonOpPull,H?createPromiseCallback(`source.cancel`,H,a):nonOpCancel,S,C)}function createReadableStream(n,a,S,C=1,N=()=>1){let F=Object.create(ReadableStream$1.prototype);return F[Ln]=`ReadableStream`,F[In]=createReadableStreamState(),setupReadableStreamDefaultController(F,new ReadableStreamDefaultController($n),n,a,S,C,N),F}function readableStreamFromIterable(n){let a,S=getIterator(n,`async`),C=nonOpStart;async function pullAlgorithm(){let n=iteratorNext(S);return Promise.resolve(n).then(n=>{if(typeof n!=`object`||!n)throw TypeError(`The promise returned by the iterator.next() method must fulfill with an object`);n.done?readableStreamDefaultControllerClose(a[In].controller):readableStreamDefaultControllerEnqueue(a[In].controller,n.value)})}async function cancelAlgorithm(n){let a=S.iterator,C=a.return;if(C===void 0)return Promise.resolve();let N=C.call(a,n);return Promise.resolve(N).then(n=>{if(typeof n!=`object`||!n)throw TypeError(`The promise returned by the iterator.return() method must fulfill with an object`)})}return a=createReadableStream(C,pullAlgorithm,cancelAlgorithm,0),a}function readableStreamPipeTo(n,a,S,C,N,F){let I,H;try{I=new ReadableStreamDefaultReader(n),H=new WritableStreamDefaultWriter(a)}catch(n){return Promise.reject(n)}n[In].disturbed=!0;let W=!1,{promise:K,resolve:q,reject:Y}=Promise.withResolvers(),X={currentWrite:Promise.resolve()},te;function finalize(n,a){writableStreamDefaultWriterRelease(H),readableStreamReaderGenericRelease(I),F!==void 0&&te&&(F.removeEventListener(`abort`,te),te=void 0),n?Y(a):q()}async function waitForCurrentWrite(){let n=X.currentWrite;await n,n!==X.currentWrite&&await waitForCurrentWrite()}function shutdownWithAnAction(n,S,C){if(W)return;if(W=!0,a[In].state===`writable`&&!writableStreamCloseQueuedOrInFlight(a)){waitForCurrentWrite().then(complete,n=>finalize(!0,n));return}complete();function complete(){n().then(()=>finalize(!!S,C),n=>finalize(!0,n))}}function shutdown(n,S){if(!W){if(W=!0,a[In].state===`writable`&&!writableStreamCloseQueuedOrInFlight(a)){waitForCurrentWrite().then(()=>finalize(!!n,S),n=>finalize(!0,n));return}finalize(!!n,S)}}function abortAlgorithm(){let S;S=F.reason&&F.reason.name===`AbortError`?createAbortError():F.reason;let I=[];C||I.push(()=>a[In].state===`writable`?writableStreamAbort(a,S):Promise.resolve()),N||I.push(()=>n[In].state===`readable`?readableStreamCancel(n,S):Promise.resolve()),shutdownWithAnAction(()=>Promise.all(I.map(n=>n())).then(()=>void 0),!0,S)}function watchErrored(n,a,S){n[In].state===`errored`?S(n[In].storedError):a.then(void 0,S)}function watchClosed(n,a,S){n[In].state===`closed`?S():a.then(S,()=>{})}class PipeToReadRequest{[Yn](n){Re(()=>{X.currentWrite=writableStreamDefaultWriterWrite(H,n),setPromiseHandled(X.currentWrite),ne.resolve(!1)})}[Jn](){ne.resolve(!0)}[Xn](n){ne.reject(n)}}let ne={resolve:null,reject:null};async function step(){if(W||a[In].backpressure&&(await H[In].ready.promise,W))return!0;let S=n[In].controller;if(n[In].state===`readable`&&rr(S)&&S[In].queue.length>0){for(;S[In].queue.length>0;){if(W)return!0;let C=dequeueValue(S);if(S[In].closeRequested&&!S[In].queue.length&&(readableStreamDefaultControllerClearAlgorithms(S),readableStreamClose(n)),X.currentWrite=writableStreamDefaultWriterWrite(H,C),setPromiseHandled(X.currentWrite),a[In].backpressure||a[In].state!==`writable`||writableStreamCloseQueuedOrInFlight(a))break}return readableStreamDefaultControllerCallPullIfNeeded(S),n[In].state===`closed`}let{promise:C,resolve:N,reject:F}=Promise.withResolvers();return ne={resolve:N,reject:F},readableStreamDefaultReaderRead(I,new PipeToReadRequest),C}async function run(){for(;!await step(););}if(F!==void 0){if(F.aborted)return abortAlgorithm(),K;te=abortAlgorithm,F.addEventListener(`abort`,te,{once:!0})}if(setPromiseHandled(run()),watchErrored(n,I[In].close.promise,n=>{if(!C)return shutdownWithAnAction(()=>writableStreamAbort(a,n),!0,n);shutdown(!0,n)}),watchErrored(a,H[In].close.promise,a=>{if(!N)return shutdownWithAnAction(()=>readableStreamCancel(n,a),!0,a);shutdown(!0,a)}),watchClosed(n,I[In].close.promise,()=>{if(!S)return shutdownWithAnAction(()=>writableStreamDefaultWriterCloseWithErrorPropagation(H));shutdown()}),writableStreamCloseQueuedOrInFlight(a)||a[In].state===`closed`){let a=TypeError(`Destination WritableStream is closed`);N?shutdown(!0,a):shutdownWithAnAction(()=>readableStreamCancel(n,a),!0,a)}return K}function readableStreamDefaultTee(n,a){let S=new ReadableStreamDefaultReader(n),C=!1,N=!1,F=!1,I,H,W,K,q=Promise.withResolvers();async function pullAlgorithm(){C||(C=!0,readableStreamDefaultReaderRead(S,{[Yn](n){Re(()=>{C=!1;let S=n,I=n;if(!F&&a)try{I=structuredClone(I)}catch{}N||readableStreamDefaultControllerEnqueue(W[In].controller,S),F||readableStreamDefaultControllerEnqueue(K[In].controller,I)})},[Jn](){Re(()=>{C=!1,N||readableStreamDefaultControllerClose(W[In].controller),F||readableStreamDefaultControllerClose(K[In].controller),(!N||!F)&&q.resolve(void 0)})},[Xn](){C=!1}}))}function cancel1Algorithm(a){if(N=!0,I=a,F){let a=[I,H];q.resolve(readableStreamCancel(n,a))}return q.promise}function cancel2Algorithm(a){if(F=!0,H=a,N){let a=[I,H];q.resolve(readableStreamCancel(n,a))}return q.promise}return W=createReadableStream(nonOpStart,pullAlgorithm,cancel1Algorithm),K=createReadableStream(nonOpStart,pullAlgorithm,cancel2Algorithm),S[In].close.promise.then(void 0,n=>{readableStreamDefaultControllerError(W[In].controller,n),readableStreamDefaultControllerError(K[In].controller,n),(!N||!F)&&q.resolve(void 0)}),[W,K]}var BYOBReadIntoRequest=class{[In];constructor(){this[In]=Promise.withResolvers()}[Yn](n){this[In].resolve?.({value:n,done:!1})}[Jn](n){this[In].resolve?.({value:n,done:!0})}[Xn](n){this[In].reject?.(n)}get promise(){return this[In].promise}},ReadableStreamBYOBReader=class{[Ln]=`ReadableStreamBYOBReader`;[In];constructor(n){if(!nr(n))throw TypeError(`Expected a ReadableStream`);this[In]={readIntoRequests:[],stream:void 0,close:{promise:void 0,resolve:void 0,reject:void 0}},setupReadableStreamBYOBReader(this,n)}read(n,a={}){if(!sr(this))return Promise.reject(TypeError(`Invalid this`));if(typeof n!=`object`||!n||!ArrayBuffer.isView(n))return Promise.reject(TypeError(`view must be an ArrayBufferView`));let S=n.buffer,C=n.byteLength;if(C===0)return Promise.reject(TypeError(`view must have non-zero byteLength`));if(S.byteLength===0)return isDetachedBuffer(S)?Promise.reject(TypeError(`view's buffer has been detached`)):Promise.reject(TypeError(`view's buffer must have non-zero byteLength`));let N=a?.min??1;if(typeof N!=`number`||N<1||!Number.isInteger(N)||Number.isNaN(N))return Promise.reject(TypeError(`options.min must be a positive integer`));let F=n[Symbol.toStringTag];if(F!==void 0&&F!==`DataView`){if(N>n.length)return Promise.reject(RangeError(`options.min must be smaller or equal to view size`))}else if(N>C)return Promise.reject(RangeError(`options.min must be smaller or equal to view size`));if(this[In].stream===void 0)return Promise.reject(TypeError(`Reader has no associated stream`));let I=new BYOBReadIntoRequest;return readableStreamBYOBReaderRead(this,n,N,I),I.promise}releaseLock(){if(!sr(this))throw TypeError(`Invalid this`);this[In].stream!==void 0&&readableStreamBYOBReaderRelease(this)}get closed(){return sr(this)?this[In].close.promise:Promise.reject(TypeError(`Invalid this`))}cancel(n=void 0){return sr(this)?this[In].stream===void 0?Promise.reject(TypeError(`Reader has no associated stream`)):readableStreamReaderGenericCancel(this,n):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`ReadableStreamBYOBReader`}},ReadableStreamBYOBRequest=class{[Ln]=`ReadableStreamBYOBRequest`;[In]={};constructor(n){if(n!==$n)throw TypeError(`Illegal constructor`)}get view(){if(!cr(this))throw TypeError(`Invalid this`);return this[In].view}respond(n){if(!cr(this))throw TypeError(`Invalid this`);if(this[In].controller===void 0)throw TypeError(`BYOB request has been invalidated`);if(n=+n,!Number.isInteger(n)||n<0||!Number.isFinite(n))throw RangeError(`bytesWritten must be a non-negative integer`);let a=this[In].view;if(isDetachedBuffer(a.buffer))throw TypeError(`The BYOB request's buffer has been detached`);readableByteStreamControllerRespond(this[In].controller,n)}respondWithNewView(n){if(!cr(this))throw TypeError(`Invalid this`);if(this[In].controller===void 0)throw TypeError(`BYOB request has been invalidated`);if(typeof n!=`object`||!n||!ArrayBuffer.isView(n))throw TypeError(`view must be an ArrayBufferView`);if(isDetachedBuffer(n.buffer))throw TypeError(`The given view's buffer has been detached`);readableByteStreamControllerRespondWithNewView(this[In].controller,n)}get[Symbol.toStringTag](){return`ReadableStreamBYOBRequest`}},ReadableByteStreamController=class{[Ln]=`ReadableByteStreamController`;[In]={};constructor(n){if(n!==$n)throw TypeError(`Illegal constructor`)}get byobRequest(){if(!ar(this))throw TypeError(`Invalid this`);return readableByteStreamControllerGetBYOBRequest(this)}get desiredSize(){if(!ar(this))throw TypeError(`Invalid this`);return readableByteStreamControllerGetDesiredSize(this)}close(){if(!ar(this))throw TypeError(`Invalid this`);if(this[In].closeRequested)throw TypeError(`Close already requested`);if(this[In].stream[In].state!==`readable`)throw TypeError(`Stream is not in a readable state`);readableByteStreamControllerClose(this)}enqueue(n){if(!ar(this))throw TypeError(`Invalid this`);if(typeof n!=`object`||!n||!ArrayBuffer.isView(n))throw TypeError(`chunk must be an ArrayBufferView`);if(n.byteLength===0)throw TypeError(`chunk length must be non-zero`);if(n.buffer.byteLength===0)throw TypeError(`chunk's buffer length must be non-zero`);if(this[In].closeRequested)throw TypeError(`Cannot enqueue after close has been requested`);if(this[In].stream[In].state!==`readable`)throw TypeError(`Stream is not in a readable state`);readableByteStreamControllerEnqueue(this,n)}error(n=void 0){if(!ar(this))throw TypeError(`Invalid this`);readableByteStreamControllerError(this,n)}[qn](n){return readableByteStreamControllerCancelSteps(this,n)}[Zn](n){readableByteStreamControllerPullSteps(this,n)}[Qn](){if(this[In].pendingPullIntos.length>0){let n=this[In].pendingPullIntos[0];n.readerType=`none`,this[In].pendingPullIntos=[n]}}get[Symbol.toStringTag](){return`ReadableByteStreamController`}};const ar=isBrandCheck(`ReadableByteStreamController`),sr=isBrandCheck(`ReadableStreamBYOBReader`),cr=isBrandCheck(`ReadableStreamBYOBRequest`);function readableStreamHasBYOBReader(n){let{reader:a}=n[In];return a===void 0?!1:a[In]!==void 0&&a[Ln]===`ReadableStreamBYOBReader`}function readableStreamGetNumReadIntoRequests(n){return n[In].reader[In].readIntoRequests.length}function readableStreamAddReadIntoRequest(n,a){n[In].reader[In].readIntoRequests.push(a)}function readableStreamFulfillReadIntoRequest(n,a,S){let{reader:C}=n[In],N=C[In].readIntoRequests.shift();S?N[Jn](a):N[Yn](a)}function setupReadableStreamBYOBReader(n,a){if(isReadableStreamLocked(a))throw TypeError(`ReadableStream is locked`);if(!ar(a[In].controller))throw TypeError(`Cannot use a BYOB reader with a non-byte stream`);readableStreamReaderGenericInitialize(n,a),n[In].readIntoRequests=[]}function readableStreamBYOBReaderRead(n,a,S,C){let{stream:N}=n[In];N[In].disturbed=!0,N[In].state===`errored`?C[Xn](N[In].storedError):readableByteStreamControllerPullInto(N[In].controller,a,S,C)}function readableStreamBYOBReaderRelease(n){readableStreamReaderGenericRelease(n);let a=TypeError(`Reader was released`);for(let S=0;S<n[In].readIntoRequests.length;S++)n[In].readIntoRequests[S][Xn](a);n[In].readIntoRequests=[]}function readableByteStreamControllerClearAlgorithms(n){n[In].pullAlgorithm=void 0,n[In].cancelAlgorithm=void 0}function readableByteStreamControllerClearPendingPullIntos(n){readableByteStreamControllerInvalidateBYOBRequest(n),n[In].pendingPullIntos=[]}function readableByteStreamControllerInvalidateBYOBRequest(n){let a=n[In].byobRequest;a!=null&&(a[In].controller=void 0,a[In].view=null,n[In].byobRequest=null)}function readableByteStreamControllerError(n,a){let{stream:S}=n[In];S[In].state===`readable`&&(readableByteStreamControllerClearPendingPullIntos(n),resetQueue(n),readableByteStreamControllerClearAlgorithms(n),readableStreamError(S,a))}function readableByteStreamControllerGetDesiredSize(n){let a=n[In].stream[In].state;return a===`errored`?null:a===`closed`?0:n[In].highWaterMark-n[In].queueTotalSize}function readableByteStreamControllerShouldCallPull(n){let{stream:a}=n[In];if(a[In].state!==`readable`||n[In].closeRequested||!n[In].started)return!1;if(readableStreamHasDefaultReader(a)&&readableStreamGetNumReadRequests(a)>0||readableStreamHasBYOBReader(a)&&readableStreamGetNumReadIntoRequests(a)>0)return!0;let S=readableByteStreamControllerGetDesiredSize(n);return S!==null&&S>0}function readableByteStreamControllerCallPullIfNeeded(n){if(readableByteStreamControllerShouldCallPull(n)){if(n[In].pulling){n[In].pullAgain=!0;return}n[In].pulling=!0,n[In].pullAlgorithm(n).then(()=>{n[In].pulling=!1,n[In].pullAgain&&(n[In].pullAgain=!1,readableByteStreamControllerCallPullIfNeeded(n))},a=>readableByteStreamControllerError(n,a))}}function readableByteStreamControllerHandleQueueDrain(n){n[In].queueTotalSize===0&&n[In].closeRequested?(readableByteStreamControllerClearAlgorithms(n),readableStreamClose(n[In].stream)):readableByteStreamControllerCallPullIfNeeded(n)}function readableByteStreamControllerEnqueueChunkToQueue(n,a,S,C){n[In].queue.push({buffer:a,byteOffset:S,byteLength:C}),n[In].queueTotalSize+=C}function readableByteStreamControllerEnqueueClonedChunkToQueue(n,a,S,C){let N;try{N=a.slice(S,S+C)}catch(a){readableByteStreamControllerError(n,a);return}readableByteStreamControllerEnqueueChunkToQueue(n,N,0,C)}function readableByteStreamControllerEnqueueDetachedPullIntoToQueue(n,a){a.bytesFilled>0&&readableByteStreamControllerEnqueueClonedChunkToQueue(n,a.buffer,a.byteOffset,a.bytesFilled),readableByteStreamControllerShiftPendingPullInto(n)}function readableByteStreamControllerShiftPendingPullInto(n){return n[In].pendingPullIntos.shift()}function readableByteStreamControllerFillHeadPullIntoDescriptor(n,a,S){S.bytesFilled+=a}function readableByteStreamControllerConvertPullIntoDescriptor(n){let a=n.bytesFilled,S=n.elementSize,C=transferArrayBuffer(n.buffer);return n.buffer=C,new n.viewConstructor(C,n.byteOffset,a/S)}function readableByteStreamControllerCommitPullIntoDescriptor(n,a){let S=!1;n[In].state===`closed`&&(S=!0);let C=readableByteStreamControllerConvertPullIntoDescriptor(a);a.readerType===`default`?readableStreamFulfillReadRequest(n,C,S):readableStreamFulfillReadIntoRequest(n,C,S)}function readableByteStreamControllerFillPullIntoDescriptorFromQueue(n,a){let S=Math.min(n[In].queueTotalSize,a.byteLength-a.bytesFilled),C=a.bytesFilled+S,N=S,F=!1,I=C-C%a.elementSize;I>=a.minimumFill&&(N=I-a.bytesFilled,F=!0);let H=n[In].queue;for(;N>0;){let S=H[0],C=Math.min(N,S.byteLength),F=a.byteOffset+a.bytesFilled,I=new Uint8Array(a.buffer,F,C),W=new Uint8Array(S.buffer,S.byteOffset,C);I.set(W),S.byteLength===C?H.shift():(S.byteOffset+=C,S.byteLength-=C),n[In].queueTotalSize-=C,readableByteStreamControllerFillHeadPullIntoDescriptor(n,C,a),N-=C}return F}function readableByteStreamControllerFillReadRequestFromQueue(n,a){let S=n[In].queue.shift();n[In].queueTotalSize-=S.byteLength,readableByteStreamControllerHandleQueueDrain(n);let C=new Uint8Array(S.buffer,S.byteOffset,S.byteLength);a[Yn](C)}function readableByteStreamControllerProcessReadRequestsUsingQueue(n){let a=n[In].stream[In].reader;for(;a[In].readRequests.length!==0;){if(n[In].queueTotalSize===0)return;readableByteStreamControllerFillReadRequestFromQueue(n,a[In].readRequests.shift())}}function readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(n){for(;n[In].pendingPullIntos.length!==0;){if(n[In].queueTotalSize===0)return;let a=n[In].pendingPullIntos[0];readableByteStreamControllerFillPullIntoDescriptorFromQueue(n,a)&&(readableByteStreamControllerShiftPendingPullInto(n),readableByteStreamControllerCommitPullIntoDescriptor(n[In].stream,a))}}function readableByteStreamControllerGetBYOBRequest(n){if(n[In].byobRequest===null&&n[In].pendingPullIntos.length!==0){let a=n[In].pendingPullIntos[0],S=new Uint8Array(a.buffer,a.byteOffset+a.bytesFilled,a.byteLength-a.bytesFilled),C=new ReadableStreamBYOBRequest($n);C[In]={controller:n,view:S},n[In].byobRequest=C}return n[In].byobRequest}function readableByteStreamControllerEnqueue(n,a){let{stream:S}=n[In];if(n[In].closeRequested||S[In].state!==`readable`)return;let C=a.buffer,N=a.byteLength,F=a.byteOffset;if(isDetachedBuffer(C))throw TypeError(`chunk's buffer is detached`);let I=transferArrayBuffer(C);if(n[In].pendingPullIntos.length!==0){let a=n[In].pendingPullIntos[0];if(isDetachedBuffer(a.buffer))throw TypeError(`BYOB request's buffer has been detached`);readableByteStreamControllerInvalidateBYOBRequest(n),a.buffer=transferArrayBuffer(a.buffer),a.readerType===`none`&&readableByteStreamControllerEnqueueDetachedPullIntoToQueue(n,a)}readableStreamHasDefaultReader(S)?(readableByteStreamControllerProcessReadRequestsUsingQueue(n),readableStreamGetNumReadRequests(S)===0?readableByteStreamControllerEnqueueChunkToQueue(n,I,F,N):(n[In].pendingPullIntos.length!==0&&readableByteStreamControllerShiftPendingPullInto(n),readableStreamFulfillReadRequest(S,new Uint8Array(I,F,N),!1))):readableStreamHasBYOBReader(S)?(readableByteStreamControllerEnqueueChunkToQueue(n,I,F,N),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(n)):readableByteStreamControllerEnqueueChunkToQueue(n,I,F,N),readableByteStreamControllerCallPullIfNeeded(n)}function readableByteStreamControllerClose(n){let{stream:a}=n[In];if(!(n[In].closeRequested||a[In].state!==`readable`)){if(n[In].queueTotalSize>0){n[In].closeRequested=!0;return}if(n[In].pendingPullIntos.length!==0){let a=n[In].pendingPullIntos[0];if(a.bytesFilled%a.elementSize!==0){let a=TypeError(`Insufficient bytes to fill elements in the given buffer`);throw readableByteStreamControllerError(n,a),a}}readableByteStreamControllerClearAlgorithms(n),readableStreamClose(a)}}function readableByteStreamControllerPullInto(n,a,S,C){let N=n[In].stream,F=a[Symbol.toStringTag],I,H;if(F===void 0||F===`DataView`)I=DataView,H=1;else{let n=typedArrayConstructorByTag(F);if(!n){C[Xn](TypeError(`Unsupported typed array: ${F}`));return}I=n,H=elementSizeByTag(F)}let W=a.buffer,K=a.byteLength,q=a.byteOffset,Y=S*H,X;try{X=transferArrayBuffer(W)}catch(n){C[Xn](n);return}let te={buffer:X,bufferByteLength:X.byteLength,byteOffset:q,byteLength:K,bytesFilled:0,minimumFill:Y,elementSize:H,viewConstructor:I,readerType:`byob`};if(n[In].pendingPullIntos.length!==0){n[In].pendingPullIntos.push(te),readableStreamAddReadIntoRequest(N,C);return}if(N[In].state===`closed`){let n=new I(te.buffer,te.byteOffset,0);C[Jn](n);return}if(n[In].queueTotalSize>0){if(readableByteStreamControllerFillPullIntoDescriptorFromQueue(n,te)){let a=readableByteStreamControllerConvertPullIntoDescriptor(te);readableByteStreamControllerHandleQueueDrain(n),C[Yn](a);return}if(n[In].closeRequested){let a=TypeError(`Insufficient bytes to fill elements in the given buffer`);readableByteStreamControllerError(n,a),C[Xn](a);return}}n[In].pendingPullIntos.push(te),readableStreamAddReadIntoRequest(N,C),readableByteStreamControllerCallPullIfNeeded(n)}function readableByteStreamControllerRespond(n,a){let S=n[In].pendingPullIntos[0];if(n[In].stream[In].state===`closed`){if(a!==0)throw TypeError(`bytesWritten must be 0 when calling respond() on a closed stream`)}else{if(a===0)throw TypeError(`bytesWritten must be greater than 0 when calling respond() on a readable stream`);if(S.bytesFilled+a>S.byteLength)throw RangeError(`bytesWritten out of range`)}S.buffer=transferArrayBuffer(S.buffer),readableByteStreamControllerRespondInternal(n,a)}function readableByteStreamControllerRespondWithNewView(n,a){let S=n[In].pendingPullIntos[0],C=n[In].stream[In].state,N=a.byteLength,F=a.byteOffset,I=a.buffer;if(C===`closed`){if(N!==0)throw TypeError(`view's length must be 0 when calling respondWithNewView() on a closed stream`)}else if(N===0)throw TypeError(`view's length must be greater than 0 when calling respondWithNewView() on a readable stream`);if(S.byteOffset+S.bytesFilled!==F)throw RangeError(`The region specified by view does not match byobRequest`);if(S.bufferByteLength!==I.byteLength)throw RangeError(`The buffer of view has different capacity than byobRequest`);if(S.bytesFilled+N>S.byteLength)throw RangeError(`The region specified by view is larger than byobRequest`);S.buffer=transferArrayBuffer(I),readableByteStreamControllerRespondInternal(n,N)}function readableByteStreamControllerRespondInternal(n,a){let S=n[In].pendingPullIntos[0];readableByteStreamControllerInvalidateBYOBRequest(n),n[In].stream[In].state===`closed`?readableByteStreamControllerRespondInClosedState(n,S):readableByteStreamControllerRespondInReadableState(n,a,S),readableByteStreamControllerCallPullIfNeeded(n)}function readableByteStreamControllerRespondInClosedState(n,a){a.readerType===`none`&&readableByteStreamControllerShiftPendingPullInto(n);let S=n[In].stream;if(readableStreamHasBYOBReader(S))for(;readableStreamGetNumReadIntoRequests(S)>0;)readableByteStreamControllerCommitPullIntoDescriptor(S,readableByteStreamControllerShiftPendingPullInto(n))}function readableByteStreamControllerRespondInReadableState(n,a,S){if(readableByteStreamControllerFillHeadPullIntoDescriptor(n,a,S),S.readerType===`none`){readableByteStreamControllerEnqueueDetachedPullIntoToQueue(n,S),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(n);return}if(S.bytesFilled<S.minimumFill)return;readableByteStreamControllerShiftPendingPullInto(n);let C=S.bytesFilled%S.elementSize;if(C>0){let a=S.byteOffset+S.bytesFilled;readableByteStreamControllerEnqueueClonedChunkToQueue(n,S.buffer,a-C,C)}S.bytesFilled-=C,readableByteStreamControllerCommitPullIntoDescriptor(n[In].stream,S),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(n)}function readableByteStreamControllerCancelSteps(n,a){readableByteStreamControllerClearPendingPullIntos(n),resetQueue(n);let S=n[In].cancelAlgorithm(a);return readableByteStreamControllerClearAlgorithms(n),S}function readableByteStreamControllerPullSteps(n,a){let S=n[In].stream;if(n[In].queueTotalSize>0){readableByteStreamControllerFillReadRequestFromQueue(n,a);return}let C=n[In].autoAllocateChunkSize;if(C!==void 0){let S;try{S=new ArrayBuffer(C)}catch(n){a[Xn](n);return}let N={buffer:S,bufferByteLength:C,byteOffset:0,byteLength:C,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:`default`};n[In].pendingPullIntos.push(N)}readableStreamAddReadRequest(S,a),readableByteStreamControllerCallPullIfNeeded(n)}function setupReadableByteStreamController(n,a,S,C,N,F,I){a[In]={cancelAlgorithm:N,closeRequested:!1,highWaterMark:F,pullAgain:!1,pullAlgorithm:C,pulling:!1,queue:[],queueTotalSize:0,started:!1,stream:n,byobRequest:null,pendingPullIntos:[],autoAllocateChunkSize:I},n[In].controller=a;let H=S();new Promise(n=>n(H)).then(()=>{a[In].started=!0,readableByteStreamControllerCallPullIfNeeded(a)},n=>readableByteStreamControllerError(a,n))}function setupReadableByteStreamControllerFromSource(n,a,S){let C=new ReadableByteStreamController($n),N=a?.start,F=a?.pull,I=a?.cancel,H=a?.autoAllocateChunkSize;if(H!==void 0&&(H===0||!Number.isInteger(H)||H<0))throw TypeError(`autoAllocateChunkSize must be a positive integer`);setupReadableByteStreamController(n,C,N?N.bind(a,C):nonOpStart,F?createPromiseCallback(`source.pull`,F,a):nonOpPull,I?createPromiseCallback(`source.cancel`,I,a):nonOpCancel,S,H)}function readableByteStreamTee(n){let a=new ReadableStreamDefaultReader(n),S=!1,C=!1,N=!1,F,I,H=Promise.withResolvers(),W,K,q,Y;function pullAlgorithm(){return S?Promise.resolve():(S=!0,a.read().then(n=>{if(S=!1,n.done){C||q.close(),N||Y.close();return}let a=n.value,F=new Uint8Array(a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength));C||q.enqueue(F),N||Y.enqueue(new Uint8Array(F))},()=>{}),Promise.resolve())}return W=new ReadableStream$1({type:`bytes`,pull:pullAlgorithm,cancel(a){if(C=!0,F=a,N){let a=readableStreamCancel(n,[F,I]);return H.resolve(),a}return H.promise}}),K=new ReadableStream$1({type:`bytes`,pull:pullAlgorithm,cancel(a){if(N=!0,I=a,C){let a=readableStreamCancel(n,[F,I]);return H.resolve(),a}return H.promise}}),q=W[In].controller,Y=K[In].controller,a.closed.catch(n=>{q.error(n),Y.error(n),(!C||!N)&&H.resolve()}),[W,K]}const lr=Symbol(`kSkipThrow`);var TransformStream=class{[Ln]=`TransformStream`;[In];constructor(n={},a={},S={}){if(n!=null&&typeof n!=`object`)throw TypeError(`transformer must be an object`);if(a!=null&&typeof a!=`object`)throw TypeError(`writableStrategy must be an object`);if(S!=null&&typeof S!=`object`)throw TypeError(`readableStrategy must be an object`);let C=n?.readableType,N=n?.writableType,F=n?.start;if(C!==void 0)throw RangeError(`Invalid readableType: ${C}`);if(N!==void 0)throw RangeError(`Invalid writableType: ${N}`);let I=extractHighWaterMark(S?.highWaterMark,0),H=extractSizeAlgorithm(S?.size),W=extractHighWaterMark(a?.highWaterMark,1),K=extractSizeAlgorithm(a?.size),q=Promise.withResolvers();initializeTransformStream(this,q,W,K,I,H),setupTransformStreamDefaultControllerFromTransformer(this,n),F===void 0?q.resolve():q.resolve(F.call(n,this[In].controller))}get readable(){if(!ur(this))throw TypeError(`Invalid this`);return this[In].readable}get writable(){if(!ur(this))throw TypeError(`Invalid this`);return this[In].writable}get[Symbol.toStringTag](){return`TransformStream`}},TransformStreamDefaultController=class{[Ln]=`TransformStreamDefaultController`;[In];constructor(n){if(n!==lr)throw TypeError(`Illegal constructor`)}get desiredSize(){if(!dr(this))throw TypeError(`Invalid this`);let{stream:n}=this[In],{readable:a}=n[In],S=a[In].controller;return readableStreamDefaultControllerGetDesiredSize(S)}enqueue(n){if(!dr(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerEnqueue(this,n)}error(n){if(!dr(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerError(this,n)}terminate(){if(!dr(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerTerminate(this)}get[Symbol.toStringTag](){return`TransformStreamDefaultController`}};const ur=isBrandCheck(`TransformStream`),dr=isBrandCheck(`TransformStreamDefaultController`);async function defaultTransformAlgorithm(n,a){transformStreamDefaultControllerEnqueue(a,n)}function initializeTransformStream(n,a,S,C,N,F){let startAlgorithm=()=>a.promise,I=createWritableStream(startAlgorithm,a=>transformStreamDefaultSinkWriteAlgorithm(n,a),()=>transformStreamDefaultSinkCloseAlgorithm(n),a=>transformStreamDefaultSinkAbortAlgorithm(n,a),S,C);n[In]={readable:createReadableStream(startAlgorithm,()=>transformStreamDefaultSourcePullAlgorithm(n),a=>transformStreamDefaultSourceCancelAlgorithm(n,a),N,F),writable:I,controller:void 0,backpressure:void 0,backpressureChange:{promise:void 0,resolve:void 0,reject:void 0}},transformStreamSetBackpressure(n,!0)}function transformStreamError(n,a){let{readable:S}=n[In];readableStreamDefaultControllerError(S[In].controller,a),transformStreamErrorWritableAndUnblockWrite(n,a)}function transformStreamErrorWritableAndUnblockWrite(n,a){let{controller:S,writable:C}=n[In];transformStreamDefaultControllerClearAlgorithms(S),writableStreamDefaultControllerErrorIfNeeded(C[In].controller,a),transformStreamUnblockWrite(n)}function transformStreamUnblockWrite(n){n[In].backpressure&&transformStreamSetBackpressure(n,!1)}function transformStreamSetBackpressure(n,a){n[In].backpressureChange.promise!==void 0&&n[In].backpressureChange.resolve?.(),n[In].backpressureChange=Promise.withResolvers(),n[In].backpressure=a}function setupTransformStreamDefaultController(n,a,S,C,N){a[In]={stream:n,transformAlgorithm:S,flushAlgorithm:C,cancelAlgorithm:N,finishPromise:void 0},n[In].controller=a}function setupTransformStreamDefaultControllerFromTransformer(n,a){let S=new TransformStreamDefaultController(lr),C=a?.transform,N=a?.flush,F=a?.cancel;setupTransformStreamDefaultController(n,S,C?createPromiseCallback(`transformer.transform`,C,a):defaultTransformAlgorithm,N?createPromiseCallback(`transformer.flush`,N,a):nonOpFlush,F?createPromiseCallback(`transformer.cancel`,F,a):nonOpCancel)}function transformStreamDefaultControllerClearAlgorithms(n){n[In].transformAlgorithm=void 0,n[In].flushAlgorithm=void 0,n[In].cancelAlgorithm=void 0}function transformStreamDefaultControllerEnqueue(n,a){let{stream:S}=n[In],{readable:C}=S[In],N=C[In].controller;if(!readableStreamDefaultControllerCanCloseOrEnqueue(N))throw TypeError(`Unable to enqueue`);try{readableStreamDefaultControllerEnqueue(N,a)}catch(n){throw transformStreamErrorWritableAndUnblockWrite(S,n),C[In].storedError}readableStreamDefaultControllerHasBackpressure(N)!==S[In].backpressure&&transformStreamSetBackpressure(S,!0)}function transformStreamDefaultControllerError(n,a){transformStreamError(n[In].stream,a)}async function transformStreamDefaultControllerPerformTransform(n,a){try{let S=n[In].transformAlgorithm;return S===void 0?void 0:await S(a,n)}catch(a){throw transformStreamError(n[In].stream,a),a}}function transformStreamDefaultControllerTerminate(n){let{stream:a}=n[In],{readable:S}=a[In];readableStreamDefaultControllerClose(S[In].controller),transformStreamErrorWritableAndUnblockWrite(a,TypeError(`TransformStream has been terminated`))}function transformStreamDefaultSinkWriteAlgorithm(n,a){let{controller:S}=n[In];return n[In].backpressure?n[In].backpressureChange.promise.then(()=>{let{writable:C}=n[In];if(C[In].state===`erroring`)throw C[In].storedError;return transformStreamDefaultControllerPerformTransform(S,a)}):transformStreamDefaultControllerPerformTransform(S,a)}async function transformStreamDefaultSinkAbortAlgorithm(n,a){let{controller:S,readable:C}=n[In];if(S[In].finishPromise!==void 0)return S[In].finishPromise;let{promise:N,resolve:F,reject:I}=Promise.withResolvers();S[In].finishPromise=N;let H=S[In].cancelAlgorithm(a);return transformStreamDefaultControllerClearAlgorithms(S),H.then(()=>{C[In].state===`errored`?I(C[In].storedError):(readableStreamDefaultControllerError(C[In].controller,a),F())},n=>{readableStreamDefaultControllerError(C[In].controller,n),I(n)}),S[In].finishPromise}function transformStreamDefaultSinkCloseAlgorithm(n){let{readable:a,controller:S}=n[In];if(S[In].finishPromise!==void 0)return S[In].finishPromise;let{promise:C,resolve:N,reject:F}=Promise.withResolvers();S[In].finishPromise=C;let I=S[In].flushAlgorithm(S);return transformStreamDefaultControllerClearAlgorithms(S),I.then(()=>{a[In].state===`errored`?F(a[In].storedError):(readableStreamDefaultControllerClose(a[In].controller),N())},n=>{readableStreamDefaultControllerError(a[In].controller,n),F(n)}),S[In].finishPromise}function transformStreamDefaultSourcePullAlgorithm(n){return transformStreamSetBackpressure(n,!1),n[In].backpressureChange.promise}function transformStreamDefaultSourceCancelAlgorithm(n,a){let{controller:S,writable:C}=n[In];if(S[In].finishPromise!==void 0)return S[In].finishPromise;let{promise:N,resolve:F,reject:I}=Promise.withResolvers();S[In].finishPromise=N;let H=S[In].cancelAlgorithm(a);return transformStreamDefaultControllerClearAlgorithms(S),H.then(()=>{C[In].state===`errored`?I(C[In].storedError):(writableStreamDefaultControllerErrorIfNeeded(C[In].controller,a),transformStreamUnblockWrite(n),F())},a=>{writableStreamDefaultControllerErrorIfNeeded(C[In].controller,a),transformStreamUnblockWrite(n),I(a)}),S[In].finishPromise}const fr=Object.defineProperty(n=>n.byteLength,"name",{value:`size`}),pr=Object.defineProperty(()=>1,"name",{value:`size`});var ByteLengthQueuingStrategy=class{#e;constructor(n){if(typeof n!=`object`||!n)throw TypeError(`init must be an object`);if(n.highWaterMark===void 0)throw TypeError(`init.highWaterMark is required`);this.#e=+n.highWaterMark}get highWaterMark(){return this.#e}get size(){return fr}get[Symbol.toStringTag](){return`ByteLengthQueuingStrategy`}},CountQueuingStrategy=class{#e;constructor(n){if(typeof n!=`object`||!n)throw TypeError(`init must be an object`);if(n.highWaterMark===void 0)throw TypeError(`init.highWaterMark is required`);this.#e=+n.highWaterMark}get highWaterMark(){return this.#e}get size(){return pr}get[Symbol.toStringTag](){return`CountQueuingStrategy`}},TextEncoderStream=class{#e=null;#t=new TextEncoder;#n;constructor(){this.#n=new TransformStream({transform:(n,a)=>{if(n=String(n),n===``)return;this.#e!==null&&(n=this.#e+n);let S=n.charCodeAt(n.length-1);55296<=S&&S<=56319?(this.#e=n.slice(-1),n=n.slice(0,-1)):this.#e=null,n&&a.enqueue(this.#t.encode(n))},flush:n=>{this.#e!==null&&n.enqueue(new Uint8Array([239,191,189]))}})}get encoding(){return`utf-8`}get readable(){return this.#n.readable}get writable(){return this.#n.writable}};function hasStreamingSupport(){try{return new TextDecoder().decode(new Uint8Array([195]),{stream:!0}),!0}catch{return!1}}const mr=hasStreamingSupport();function incompleteUtf8Tail$1(n){let a=n.length;if(a===0)return 0;for(let S=1;S<=Math.min(3,a);S++){let C=n[a-S];if(!(C&128))return 0;if((C&192)!=128){let n;if((C&224)==192)n=2;else if((C&240)==224)n=3;else if((C&248)==240)n=4;else return 0;return S<n?S:0}}return 0}__name$1(incompleteUtf8Tail$1,`incompleteUtf8Tail`);var TextDecoderStream=class{#e;#t;constructor(n,a){if(this.#e=new TextDecoder(n,a),mr)this.#t=new TransformStream({transform:(n,a)=>{let S=toUint8Array$3(n),C=this.#e.decode(S,{stream:!0});C&&a.enqueue(C)},flush:n=>{let a=this.#e.decode();a&&n.enqueue(a)},cancel:()=>{this.#e.decode()}});else{let n=new Uint8Array;this.#t=new TransformStream({transform:(a,S)=>{let C=toUint8Array$3(a),N;n.length>0?(N=new Uint8Array(n.length+C.length),N.set(n,0),N.set(C,n.length)):N=C;let F=incompleteUtf8Tail$1(N),I;if(F>0?(I=N.slice(0,N.length-F),n=N.slice(N.length-F)):(I=N,n=new Uint8Array),I.length>0){let n=this.#e.decode(I);n&&S.enqueue(n)}},flush:a=>{if(n.length>0){let S=this.#e.decode(n);S&&a.enqueue(S),n=new Uint8Array}},cancel:()=>{n=new Uint8Array}})}}get encoding(){return this.#e.encoding}get fatal(){return this.#e.fatal}get ignoreBOM(){return this.#e.ignoreBOM}get readable(){return this.#t.readable}get writable(){return this.#t.writable}};function toUint8Array$3(n){if(n instanceof Uint8Array)return n;if(n instanceof ArrayBuffer)return new Uint8Array(n);if(ArrayBuffer.isView(n))return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);throw TypeError(`chunk must be a BufferSource`)}__name$1(toUint8Array$3,`toUint8Array`);function isNativeStreamUsable$3(n,a){try{return typeof n==`function`?typeof n.prototype[a]==`function`:!1}catch{return!1}}__name$1(isNativeStreamUsable$3,`isNativeStreamUsable`);const hr=isNativeStreamUsable$3(globalThis.ReadableStream,`getReader`)?globalThis.ReadableStream:ReadableStream$1,gr=isNativeStreamUsable$3(globalThis.WritableStream,`getWriter`)?globalThis.WritableStream:WritableStream,_r=isNativeStreamUsable$3(globalThis.TransformStream,`readable`)?globalThis.TransformStream:TransformStream,vr=typeof globalThis.ByteLengthQueuingStrategy==`function`?globalThis.ByteLengthQueuingStrategy:ByteLengthQueuingStrategy,yr=typeof globalThis.CountQueuingStrategy==`function`?globalThis.CountQueuingStrategy:CountQueuingStrategy,br=typeof globalThis.TextEncoderStream==`function`?globalThis.TextEncoderStream:TextEncoderStream,Sr=typeof globalThis.TextDecoderStream==`function`?globalThis.TextDecoderStream:TextDecoderStream;var Cr=__esmMin(()=>{et()});function _setPipeImpl(n){wr=n}var wr,Stream_,Tr=__esmMin(()=>{Vt(),Stream_=class extends At{constructor(n){super(n)}pipe(n,a){return wr(this,n,a)}}});function getDefaultHighWaterMark(n){return n?Dr:Er}function setDefaultHighWaterMark(n,a){if(typeof a!=`number`||a<0||Number.isNaN(a))throw TypeError(`Invalid highWaterMark: ${a}`);n?Dr=a:Er=a}function validateHighWaterMark(n,a){if(a!==void 0&&(typeof a!=`number`||Number.isNaN(a))){let S=TypeError(`The value of "${n}" is invalid. Received ${a}`);throw S.code=`ERR_INVALID_ARG_VALUE`,S}}var Er,Dr,Or=__esmMin(()=>{Er=16384,Dr=16});function chunkLength(n){if(n==null)return 1;let a=n.length;return typeof a==`number`?a:1}function sliceChunk(n,a,S){if(typeof n==`string`)return S===void 0?n.slice(a):n.slice(a,S);let C=n.slice;return typeof C==`function`?C.call(n,a,S):n}var kr,Ar=__esmMin(()=>{Tr(),Or(),et(),kr=class Readable_ extends Stream_{readable=!0;readableFlowing=null;readableLength=0;readableHighWaterMark;readableEncoding;readableObjectMode;readableEnded=!1;readableAborted=!1;destroyed=!1;_pipeDests=[];_buffer=[];_readableState={ended:!1,endEmitted:!1,reading:!1,constructed:!0,highWaterMark:0,objectMode:!1,pipes:[]};_err;_readablePending=!1;_readImpl;_destroyImpl;_constructImpl;constructor(n){super(n),this.readableHighWaterMark=n?.highWaterMark??getDefaultHighWaterMark(n?.objectMode??!1),this.readableEncoding=n?.encoding??null,this.readableObjectMode=n?.objectMode??!1,this._readableState.highWaterMark=this.readableHighWaterMark,this._readableState.objectMode=this.readableObjectMode,n?.read&&(this._readImpl=n.read),n?.destroy&&(this._destroyImpl=n.destroy),n?.construct&&(this._constructImpl=n.construct),(this._constructImpl||this._construct!==Readable_.prototype._construct)&&(this._readableState.constructed=!1,nextTick(()=>{this._construct(n=>{this._readableState.constructed=!0,n?this.destroy(n):this.readableFlowing===!0&&this._flow()})}))}_construct(n){this._constructImpl?this._constructImpl.call(this,n):n()}_read(n){this._readImpl&&this._readImpl.call(this,n)}read(n){if(!this._readableState.constructed)return null;if(this._buffer.length===0){if(this._readableState.ended)return null;this._readableState.reading=!0,this._read(n??this.readableHighWaterMark),this._readableState.reading=!1}if(this._buffer.length===0||n===0)return null;if(this.readableObjectMode){if(n===void 0){let n=this._buffer.shift();return--this.readableLength,this._readableState.ended&&this._buffer.length===0&&!this._readableState.endEmitted&&this._emitEnd(),n}if(n>this.readableLength)return null;let a=this._buffer.shift();return--this.readableLength,a}if(n!=null)return n>this.readableLength?null:this._readBytes(n);let a=this._buffer.splice(0);if(this.readableLength=0,this._readableState.ended&&this._buffer.length===0&&!this._readableState.endEmitted&&this._emitEnd(),a.length===1)return a[0];if(a.length===0)return null;if(typeof a[0]==`string`)return a.join(``);let S=globalThis.Buffer;return S?.concat?S.concat(a):a}_readBytes(n){let a=0,S=[];for(;a<n&&this._buffer.length>0;){let C=this._buffer[0],N=chunkLength(C);if(a+N<=n)S.push(this._buffer.shift()),a+=N,this.readableLength-=N;else{let N=n-a;S.push(sliceChunk(C,0,N)),this._buffer[0]=sliceChunk(C,N),this.readableLength-=N,a+=N}}if(S.length===1)return S[0];let C=globalThis.Buffer;return C?.concat?C.concat(S):S}push(n,a){if(n===null)return this._readableState.ended=!0,this.readableEnded=!0,this._buffer.length===0&&!this._readableState.endEmitted&&nextTick(()=>this._emitEnd()),this._scheduleReadable(),!1;if(!this.readableObjectMode&&!(typeof n==`string`||ArrayBuffer.isView(n))){let a=Object.assign(TypeError(`Invalid non-string/buffer chunk type: ${typeof n}`),{code:`ERR_INVALID_ARG_TYPE`});return nextTick(()=>this.emit(`error`,a)),!1}return this._buffer.push(n),this.readableLength+=this.readableObjectMode?1:chunkLength(n),this.readableFlowing&&!this._flowing&&nextTick(()=>this._flow()),this.readableFlowing!==!0&&this._scheduleReadable(),this.readableLength<this.readableHighWaterMark}_emitEnd(){this._readableState.endEmitted||(this._readableState.endEmitted=!0,this.emit(`end`),nextTick(()=>this._autoClose()))}_autoClose(){this.emit(`close`)}_scheduleReadable(){this._readablePending||this.listenerCount(`readable`)===0||(this._readablePending=!0,nextTick(()=>{this._readablePending=!1,this.destroyed||this.emit(`readable`)}))}on(n,a){return super.on(n,a),n===`data`&&this.readableFlowing!==!1&&this.resume(),n===`readable`&&(this._buffer.length>0||this._readableState.ended)&&this._scheduleReadable(),this}unshift(n){this._buffer.unshift(n),this.readableLength+=this.readableObjectMode?1:chunkLength(n)}setEncoding(n){return this.readableEncoding=n,this}pause(){return this.readableFlowing=!1,this.emit(`pause`),this}resume(){return this.readableFlowing!==!0&&(this.readableFlowing=!0,this.emit(`resume`),this._readableState.constructed&&this._flow()),this}_flowing=!1;_flow(){if(!(this.readableFlowing!==!0||this._flowing||this.destroyed)&&this._readableState.constructed){this._flowing=!0;try{for(;this._buffer.length>0&&this.readableFlowing&&!this.destroyed;){let n=this._buffer.shift();if(this.readableLength-=this.readableObjectMode?1:chunkLength(n),this.readableEncoding&&typeof n!=`string`){let a=globalThis.Buffer;a?.isBuffer&&a.isBuffer(n)?n=n.toString(this.readableEncoding):n instanceof Uint8Array&&(n=new TextDecoder(this.readableEncoding).decode(n))}this.emit(`data`,n)}if(this.destroyed)return;if(this._readableState.ended&&this._buffer.length===0&&!this._readableState.endEmitted){nextTick(()=>this._emitEnd());return}!this._readableState.ended&&!this._readableState.reading&&!this.destroyed&&(this._readableState.reading=!0,this._read(this.readableHighWaterMark),this._readableState.reading=!1)}finally{this._flowing=!1}this._buffer.length>0&&this.readableFlowing&&!this.destroyed&&nextTick(()=>this._flow())}}isPaused(){return this.readableFlowing===!1}unpipe(n){if(n){let a=this._pipeDests.findIndex(a=>a.dest===n);if(a!==-1){this._pipeDests[a].cleanup(),this._pipeDests.splice(a,1);let S=this._readableState.pipes.indexOf(n);S!==-1&&this._readableState.pipes.splice(S,1),n.emit(`unpipe`,this),this._pipeDests.length===0&&(this.readableFlowing=!1)}}else{for(let n of this._pipeDests)n.cleanup(),n.dest.emit(`unpipe`,this);this._pipeDests=[],this._readableState.pipes=[],this.readableFlowing=!1}return this}_destroy(n,a){this._destroyImpl?this._destroyImpl.call(this,n,a):a(n??void 0)}destroy(n){if(this.destroyed)return this;this.destroyed=!0,this.readable=!1,this.readableAborted=!this.readableEnded,n&&(this._err=n);let cb=n=>{n&&nextTick(()=>this.emit(`error`,n)),nextTick(()=>this.emit(`close`))};return Object.prototype.hasOwnProperty.call(this,`_destroy`)?this._destroy(n??null,cb):this._destroyImpl?this._destroyImpl.call(this,n??null,cb):cb(n),this}static toWeb(n){return new ReadableStream({start(a){n.on(`data`,n=>{typeof n==`string`?a.enqueue(new TextEncoder().encode(n)):n instanceof Uint8Array?a.enqueue(n):n&&typeof n.length==`number`&&a.enqueue(new Uint8Array(n))}),n.on(`end`,()=>{a.close()}),n.on(`error`,n=>{a.error(n)})},cancel(){n.destroy()}})}static fromWeb(n,a){let S=n.getReader();return new Readable_({...a,read(){S.read().then(({done:n,value:a})=>{n?this.push(null):this.push(a)},n=>{this.destroy(n)})},destroy(n,a){S.cancel(n?.message).then(()=>a(null),a)}})}[Symbol.asyncIterator](){let n=this,a=[],S=!1,C=null,N=null,F=null;return n.on(`data`,n=>{if(N){let a=N;N=null,F=null,a({value:n,done:!1})}else a.push(n)}),n.on(`end`,()=>{if(S=!0,N){let n=N;N=null,F=null,n({value:void 0,done:!0})}}),n.on(`error`,n=>{if(C=n,S=!0,F){let a=F;N=null,F=null,a(n)}}),{next(){return C?Promise.reject(C):a.length>0?Promise.resolve({value:a.shift(),done:!1}):S?Promise.resolve({value:void 0,done:!0}):new Promise((n,a)=>{N=n,F=a})},return(){return n.destroy(),Promise.resolve({value:void 0,done:!0})},[Symbol.asyncIterator](){return this}}}static from(n,a){let S=new Readable_({objectMode:!0,...a,read(){}});return typeof n==`string`||ArrayBuffer.isView(n)?(S.push(n),S.push(null),S):((async()=>{try{for await(let a of n)S.push(a)||await new Promise(n=>S.once(`drain`,n));S.push(null)}catch(n){S.destroy(n)}})(),S)}}});function chunkLen$1(n){if(n==null)return 1;let a=n.length;return typeof a==`number`?a:1}var Duplex_,jr=__esmMin(()=>{Or(),Ar(),et(),Duplex_=class extends kr{writable=!0;writableHighWaterMark;writableLength=0;writableObjectMode;writableEnded=!1;writableFinished=!1;writableCorked=0;writableNeedDrain=!1;allowHalfOpen;_decodeStrings;_writableState={highWaterMark:0,objectMode:!1};_duplexCorkedBuffer=[];_duplexWriting=!1;_duplexWriteQueue=[];_writeImpl;_finalImpl;_defaultEncoding=`utf8`;_pendingWrites=0;_pendingEndCb=null;constructor(n){super(n),validateHighWaterMark(`writableHighWaterMark`,n?.writableHighWaterMark),validateHighWaterMark(`readableHighWaterMark`,n?.readableHighWaterMark),this.writableObjectMode=n?.writableObjectMode??n?.objectMode??!1,this.writableHighWaterMark=n?.highWaterMark??n?.writableHighWaterMark??getDefaultHighWaterMark(this.writableObjectMode),this._writableState.highWaterMark=this.writableHighWaterMark,this._writableState.objectMode=this.writableObjectMode,n?.highWaterMark===void 0&&n?.readableHighWaterMark!==void 0&&(this.readableHighWaterMark=n.readableHighWaterMark,this._readableState.highWaterMark=n.readableHighWaterMark),n?.readableObjectMode!==void 0&&(this.readableObjectMode=n.readableObjectMode,this._readableState.objectMode=n.readableObjectMode,n?.readableHighWaterMark===void 0&&n?.highWaterMark===void 0&&(this.readableHighWaterMark=getDefaultHighWaterMark(n.readableObjectMode),this._readableState.highWaterMark=this.readableHighWaterMark)),this.allowHalfOpen=n?.allowHalfOpen!==!1,this._decodeStrings=n?.decodeStrings!==!1,n?.write&&(this._writeImpl=n.write),n?.final&&(this._finalImpl=n.final),this.allowHalfOpen||this.once(`end`,()=>{this.writableEnded||nextTick(()=>this.end())})}_write(n,a,S){this._writeImpl?this._writeImpl.call(this,n,a,S):S()}_final(n){this._finalImpl?this._finalImpl.call(this,n):n()}destroy(n){return this.destroyed?this:(this.writable=!1,super.destroy(n))}write(n,a,S){let C,N;if(typeof a==`function`?(C=a,N=this._defaultEncoding):(N=a??this._defaultEncoding,C=S??(()=>{})),this._decodeStrings&&!this.writableObjectMode&&typeof n==`string`){let a=globalThis.Buffer;a&&(n=a.from(n,N),N=`buffer`)}if(typeof n!=`string`&&!this.writableObjectMode){let a=globalThis.Buffer;(a&&a.isBuffer(n)||n instanceof Uint8Array)&&(N=`buffer`)}if(this.writableEnded){let n=Error(`write after end`);return nextTick(()=>{C(n),this.emit(`error`,n)}),!1}if(this.writableLength+=this.writableObjectMode?1:chunkLen$1(n),this.writableCorked>0)return this._duplexCorkedBuffer.push({chunk:n,encoding:N,callback:C}),this.writableLength<this.writableHighWaterMark;let F=this.writableLength<this.writableHighWaterMark;return F||(this.writableNeedDrain=!0),this._duplexDoWrite(n,N,C),F}_duplexDoWrite(n,a,S){if(this._duplexWriting){this._duplexWriteQueue.push({chunk:n,encoding:a,callback:S});return}this._duplexWriting=!0,this._duplexStartWrite(n,a,S)}_duplexStartWrite(n,a,S){this._pendingWrites++,this._write(n,a,a=>{this._pendingWrites--,this.writableLength-=this.writableObjectMode?1:chunkLen$1(n),nextTick(a?()=>{if(S(a),this._duplexWriting=!1,this.emit(`error`,a),this._duplexWriteQueue.length>0){let n=this._duplexWriteQueue.shift();this._duplexWriting=!0,this._duplexStartWrite(n.chunk,n.encoding,n.callback)}}:()=>{if(S(),this._duplexWriteQueue.length>0){let n=this._duplexWriteQueue.shift();this._duplexStartWrite(n.chunk,n.encoding,n.callback);return}if(this._duplexWriting=!1,this.writableNeedDrain&&this.writableLength<=this.writableHighWaterMark&&(this.writableNeedDrain=!1,this.emit(`drain`)),this._pendingWrites===0&&this._pendingEndCb){let n=this._pendingEndCb;this._pendingEndCb=null,n()}})})}end(n,a,S){typeof n==`function`&&(S=n,n=void 0),typeof a==`function`&&(S=a,a=void 0),n!=null&&this.write(n,a),this.writableEnded=!0;let doFinal=()=>{this._final(n=>{this.writableFinished=!0,this._doPrefinishHooks(()=>{nextTick(()=>{n&&this.emit(`error`,n),this.emit(`finish`),nextTick(()=>this.emit(`close`)),S&&S()})})})};return this._pendingWrites>0||this._duplexWriting||this._duplexWriteQueue.length>0?this._pendingEndCb=doFinal:doFinal(),this}_doPrefinishHooks(n){n()}cork(){this.writableCorked++}uncork(){if(this.writableCorked>0&&(this.writableCorked--,this.writableCorked===0&&this._duplexCorkedBuffer.length>0)){let n=this._duplexCorkedBuffer.splice(0);for(let{chunk:a,encoding:S,callback:C}of n)this._write(a,S,n=>{this.writableLength-=this.writableObjectMode?1:chunkLen$1(a),n?(C(n),this.emit(`error`,n)):C()});this.writableNeedDrain&&this.writableLength<=this.writableHighWaterMark&&(this.writableNeedDrain=!1,nextTick(()=>this.emit(`drain`)))}}setDefaultEncoding(n){return this._defaultEncoding=n,this}},__name$1(chunkLen$1,`chunkLen`)});function pipe(n,a,S){let C=n,N=S?.end!==!1,F=!1,ondrain=()=>{F=!1,a.removeListener(`drain`,ondrain);let n=C;typeof n.resume==`function`&&n.resume()},ondata=n=>{if(a.writable){let S=C;a.write(n)===!1&&typeof S.pause==`function`&&(S.pause(),F||(F=!0,a.on(`drain`,ondrain)))}};C.on(`data`,ondata);let I=!1,onend=()=>{I||(I=!0,N&&a.end())},onclose=()=>{if(!I&&(I=!0,N&&!(C instanceof kr))){let n=a;typeof n.destroy==`function`&&n.destroy()}};N&&(C.on(`end`,onend),C.on(`close`,onclose));let cleanup=()=>{C.removeListener(`data`,ondata),F&&a.removeListener(`drain`,ondrain),C.removeListener(`end`,onend),C.removeListener(`close`,onclose),C.removeListener(`end`,cleanup),C.removeListener(`close`,cleanup),a.removeListener(`close`,cleanup)};return C.on(`end`,cleanup),C.on(`close`,cleanup),a.on(`close`,cleanup),C instanceof kr&&(C._pipeDests.push({dest:a,cleanup}),C._readableState.pipes.push(a)),a.emit(`pipe`,C),a}var Mr=__esmMin(()=>{Tr(),Ar(),_setPipeImpl(pipe)});function chunkLen(n){if(n==null)return 1;let a=n.length;return typeof a==`number`?a:1}var Nr,Pr=__esmMin(()=>{Tr(),Or(),et(),Nr=class Writable_ extends Stream_{static[Symbol.hasInstance](n){let a=this;return a.prototype!==void 0&&Object.prototype.isPrototypeOf.call(a.prototype,n)?!0:a.prototype!==Writable_.prototype||n==null?!1:typeof n.writableHighWaterMark==`number`}writable=!0;writableHighWaterMark;writableLength=0;writableObjectMode;writableEnded=!1;writableFinished=!1;writableCorked=0;writableNeedDrain=!1;destroyed=!1;_err;_writableState={ended:!1,finished:!1,constructed:!0,writing:!1};_corkedBuffer=[];_writeBuffer=[];_pendingConstruct=[];_ending=!1;_endCallback;_pendingEnd=null;_writeImpl;_writev;_finalImpl;_destroyImpl;_constructImpl;_decodeStrings;_defaultEncoding=`utf8`;constructor(n){super(n),this.writableHighWaterMark=n?.highWaterMark??getDefaultHighWaterMark(n?.objectMode??!1),this.writableObjectMode=n?.objectMode??!1,this._decodeStrings=n?.decodeStrings!==!1,n?.write&&(this._writeImpl=n.write),n?.writev&&(this._writev=n.writev),n?.final&&(this._finalImpl=n.final),n?.destroy&&(this._destroyImpl=n.destroy),n?.construct&&(this._constructImpl=n.construct),(this._constructImpl||this._construct!==Writable_.prototype._construct)&&(this._writableState.constructed=!1,nextTick(()=>{this._construct(n=>{this._writableState.constructed=!0,n?this.destroy(n):this._maybeFlush()})}))}_construct(n){this._constructImpl?this._constructImpl.call(this,n):n()}_write(n,a,S){this._writeImpl?this._writeImpl.call(this,n,a,S):S()}_final(n){this._finalImpl?this._finalImpl.call(this,n):n()}_destroy(n,a){this._destroyImpl?this._destroyImpl.call(this,n,a):a(n)}_maybeFlush(){let n=this._pendingConstruct.splice(0);if(n.length>0){let[a,...S]=n;this._writeBuffer.push(...S),this._doWrite(a.chunk,a.encoding,a.callback)}if(this._pendingEnd){let{chunk:n,encoding:a,callback:S}=this._pendingEnd;this._pendingEnd=null,this._doEnd(n,a,S)}}_doWrite(n,a,S){this._writableState.writing=!0;let C=!0;this._write(n,a,a=>{if(this.writableLength-=this.writableObjectMode?1:chunkLen(n),C){nextTick(()=>{if(a){S(a),this.emit(`error`,a);return}S(),this.writableNeedDrain&&this.writableLength<=this.writableHighWaterMark&&(this.writableNeedDrain=!1,this.emit(`drain`))}),a||this._drainWriteBuffer();return}nextTick(a?()=>{S(a),this.emit(`error`,a),this._drainWriteBuffer()}:()=>{S(),this.writableNeedDrain&&this.writableLength<=this.writableHighWaterMark&&(this.writableNeedDrain=!1,this.emit(`drain`)),this._drainWriteBuffer()})}),C=!1}_drainWriteBuffer(){if(this._writeBuffer.length>0){let n=this._writeBuffer.shift();this._doWrite(n.chunk,n.encoding,n.callback)}else this._writableState.writing=!1,this._maybeFinish()}_maybeFinish(){!this._ending||this._writableState.finished||this._writableState.writing||this._writeBuffer.length>0||(this._ending=!1,this._final(n=>{this.writableFinished=!0,this._writableState.finished=!0,nextTick(()=>{n&&this.emit(`error`,n),this.emit(`finish`),nextTick(()=>this.emit(`close`)),this._endCallback&&this._endCallback()})}))}write(n,a,S){let C,N;if(typeof a==`function`?(C=a,N=this._defaultEncoding):(N=a??this._defaultEncoding,C=S??(()=>{})),this._decodeStrings&&!this.writableObjectMode&&typeof n==`string`){let a=globalThis.Buffer;a&&(n=a.from(n,N),N=`buffer`)}if(typeof n!=`string`&&!this.writableObjectMode){let a=globalThis.Buffer;(a&&a.isBuffer(n)||n instanceof Uint8Array)&&(N=`buffer`)}if(this.writableEnded){let n=Error(`write after end`);return nextTick(()=>{C(n),this.emit(`error`,n)}),!1}if(this.writableLength+=this.writableObjectMode?1:chunkLen(n),this.writableCorked>0)return this._corkedBuffer.push({chunk:n,encoding:N,callback:C}),this.writableLength<this.writableHighWaterMark;if(!this._writableState.constructed)return this._pendingConstruct.push({chunk:n,encoding:N,callback:C}),this.writableLength<this.writableHighWaterMark;let F=this.writableLength<this.writableHighWaterMark;return F||(this.writableNeedDrain=!0),this._writableState.writing?this._writeBuffer.push({chunk:n,encoding:N,callback:C}):this._doWrite(n,N,C),F}_doEnd(n,a,S){n!=null&&this.write(n,a),this.writableEnded=!0,this._writableState.ended=!0,this._ending=!0,this._endCallback=S,this._maybeFinish()}end(n,a,S){return typeof n==`function`&&(S=n,n=void 0),typeof a==`function`&&(S=a,a=void 0),this.writableEnded?(S&&nextTick(S),this):this._writableState.constructed?(this._doEnd(n,a,S),this):(this._pendingEnd={chunk:n,encoding:a,callback:S},this)}cork(){this.writableCorked++}uncork(){this.writableCorked>0&&(this.writableCorked--,this.writableCorked===0&&this._corkedBuffer.length>0&&this._flushCorkedBuffer())}_flushCorkedBuffer(){if(this._writev&&this._corkedBuffer.length>1){let n=this._corkedBuffer.splice(0),a=n.map(n=>({chunk:n.chunk,encoding:n.encoding}));this._writev.call(this,a,a=>{for(let a of n)this.writableLength-=this.writableObjectMode?1:chunkLen(a.chunk);if(a){for(let S of n)S.callback(a);this.emit(`error`,a)}else{for(let a of n)a.callback();this.writableNeedDrain&&this.writableLength<=this.writableHighWaterMark&&(this.writableNeedDrain=!1,this.emit(`drain`))}})}else{let n=this._corkedBuffer.splice(0);if(n.length>0){let[a,...S]=n;this._writeBuffer.push(...S),this._doWrite(a.chunk,a.encoding,a.callback)}}}setDefaultEncoding(n){return this._defaultEncoding=n,this}destroy(n){if(this.destroyed)return this;this.destroyed=!0,this.writable=!1,n&&(this._err=n);let cb=n=>{n&&nextTick(()=>this.emit(`error`,n)),nextTick(()=>this.emit(`close`))};return this._destroy(n??null,cb),this}}}),Fr,Ir=__esmMin(()=>{jr(),et(),Fr=class Transform_ extends Duplex_{constructor(n){super({...n,write:void 0,final:void 0});let a=this;n?.transform&&(a._transform=n.transform),n?.flush&&(a._flush=n.flush),n?.final&&(a._final=n.final)}_transform(n,a,S){throw Object.assign(Error(`The _transform() method is not implemented`),{code:`ERR_METHOD_NOT_IMPLEMENTED`})}_flush(n){n()}_write(n,a,S){let C=!1;try{this._transform(n,a,(n,a)=>{if(C){let n=Object.assign(Error(`Callback called multiple times`),{code:`ERR_MULTIPLE_CALLBACK`});nextTick(()=>this.emit(`error`,n));return}if(C=!0,n){S(n);return}a!=null&&this.push(a),S()})}catch(n){if(n?.code===`ERR_METHOD_NOT_IMPLEMENTED`)throw n;S(n)}}_final(n){this._flush((a,S)=>{if(a){n(a);return}S!=null&&this.push(S),this.push(null),n()})}_doPrefinishHooks(n){let a=Transform_.prototype._final;this._final===a?n():a.call(this,n)}}}),PassThrough_,Lr=__esmMin(()=>{Ir(),PassThrough_=class extends Fr{constructor(n){super({...n,transform(n,a,S){S(null,n)}})}}});function pipeline(...n){let a=n,S=typeof a[a.length-1]==`function`?a.pop():void 0,C=a;if(C.length<2)throw Error(`pipeline requires at least 2 streams`);let N=null;function onError(n){if(!N){N=n;for(let n of C)typeof n.destroy==`function`&&n.destroy();S&&S(n)}}let F=C[0];for(let n=1;n<C.length;n++){let a=C[n];F.pipe(a),F.on(`error`,onError),F=a}let I=C[C.length-1];return I.on(`error`,onError),I.on(`finish`,()=>{S&&!N&&S(null)}),I}var Rr=__esmMin(()=>{});function finished$1(n,a,S){let C;C=typeof a==`function`?a:S;let N=!1;function done(n){N||(N=!0,C(n))}let onFinish=()=>done(),onEnd=()=>done(),onError=n=>done(n),onClose=()=>{let a=n,S=n;!a.writableFinished&&!S.readableEnded&&done(Error(`premature close`))};n.on(`finish`,onFinish),n.on(`end`,onEnd),n.on(`error`,onError),n.on(`close`,onClose);let F=n,I=typeof n.write==`function`,H=typeof n.read==`function`,W=F.writableFinished===!0,K=F.readableEnded===!0;if(F.destroyed===!0){let n=F._err;Re(n?()=>done(n):I&&W||H&&K?()=>done():()=>done(Error(`premature close`)))}else (I&&!H&&W||!I&&H&&K||I&&H&&W&&K)&&Re(()=>done());return function cleanup(){n.removeListener(`finish`,onFinish),n.removeListener(`end`,onEnd),n.removeListener(`error`,onError),n.removeListener(`close`,onClose)}}function addAbortSignal(n,a){if(!(n instanceof AbortSignal))throw TypeError(`The first argument must be an AbortSignal`);if(!(a instanceof Stream_))throw TypeError(`The second argument must be a Stream`);let S=a;if(n.aborted)S.destroy(Error(`The operation was aborted`));else{let onAbort=()=>{S.destroy(Error(`The operation was aborted`))};n.addEventListener(`abort`,onAbort,{once:!0}),a.once(`close`,()=>{n.removeEventListener(`abort`,onAbort)})}return a}function isReadable(n){if(n==null)return!1;let a=n;return typeof a.readable!=`boolean`||typeof a.read!=`function`||a.destroyed===!0||a.readableEnded===!0?!1:a.readable===!0}function isWritable(n){if(n==null)return!1;let a=n;return typeof a.writable!=`boolean`||typeof a.write!=`function`||a.destroyed===!0||a.writableEnded===!0?!1:a.writable===!0}function isDestroyed(n){return n==null?!1:n.destroyed===!0}function isDisturbed(n){if(n==null)return!1;let a=n;return a.readableDidRead===!0||a.readableFlowing!==null&&a.readableFlowing!==void 0}function isErrored(n){if(n==null)return!1;let a=n;return a.destroyed===!0&&typeof a.readable==`boolean`&&a.readable===!1||a.destroyed===!0&&typeof a.writable==`boolean`&&a.writable===!1}var zr=__esmMin(()=>{Tr(),et(),__name$1(finished$1,`finished`)}),Br=__exportAll$3({Duplex:()=>Wr,PassThrough:()=>Kr,Readable:()=>Hr,Stream:()=>Vr,Transform:()=>Gr,Writable:()=>Ur,addAbortSignal:()=>addAbortSignal,default:()=>qr,finished:()=>finished$1,getDefaultHighWaterMark:()=>getDefaultHighWaterMark,isDestroyed:()=>isDestroyed,isDisturbed:()=>isDisturbed,isErrored:()=>isErrored,isReadable:()=>isReadable,isWritable:()=>isWritable,pipeline:()=>pipeline,setDefaultHighWaterMark:()=>setDefaultHighWaterMark}),Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr=__esmMin(()=>{Cr(),Tr(),Or(),Ar(),jr(),Mr(),Pr(),Ir(),Lr(),Rr(),zr(),Vr=makeCallable(Stream_),Hr=makeCallable(kr),Ur=makeCallable(Nr),Wr=makeCallable(Duplex_),Gr=makeCallable(Fr),Kr=makeCallable(PassThrough_),qr=Object.assign(Vr,{Stream:Vr,Readable:Hr,Writable:Ur,Duplex:Wr,Transform:Gr,PassThrough:Kr,pipeline,finished:finished$1,addAbortSignal,isReadable,isWritable,isDestroyed,isDisturbed,isErrored,getDefaultHighWaterMark,setDefaultHighWaterMark})});function getGioCompressorFormat(n){switch(n){case`gzip`:return _e.ZlibCompressorFormat.GZIP;case`deflate`:return _e.ZlibCompressorFormat.ZLIB;case`deflate-raw`:return _e.ZlibCompressorFormat.RAW}}function toUint8Array$2(n){return typeof n==`string`?new TextEncoder().encode(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}function createGzip(n){return new ZlibTransform(`gzip`,`compress`,n)}function createGunzip(n){return new ZlibTransform(`gzip`,`decompress`,n)}function createDeflate(n){return new ZlibTransform(`deflate`,`compress`,n)}function createInflate(n){return new ZlibTransform(`deflate`,`decompress`,n)}function createDeflateRaw(n){return new ZlibTransform(`deflate-raw`,`compress`,n)}function createInflateRaw(n){return new ZlibTransform(`deflate-raw`,`decompress`,n)}function createUnzip(n){return new ZlibTransform(`gzip`,`decompress`,n)}function createBrotliCompress(n){throw Error(`createBrotliCompress is not supported on GJS (no Brotli in GLib)`)}function createBrotliDecompress(n){throw Error(`createBrotliDecompress is not supported on GJS (no Brotli in GLib)`)}var ZlibTransform,Yr=__esmMin(()=>{ve(),se(),Jr(),__name$1(toUint8Array$2,`toUint8Array`),ZlibTransform=class extends Gr{_format;_mode;_chunks=[];constructor(n,a,S){super(S),this._format=n,this._mode=a}_transform(n,a,S){this._chunks.push(toUint8Array$2(n)),S()}_flush(n){let a=this._chunks.reduce((n,a)=>n+a.length,0),S=new Uint8Array(a),C=0;for(let n of this._chunks)S.set(n,C),C+=n.length;this._chunks=[];try{let a=this._mode===`compress`?this._compress(S):this._decompress(S);this.push(Buffer.from(a)),n()}catch(a){n(a instanceof Error?a:Error(String(a)))}}_compress(n){let a=new _e.ZlibCompressor({format:getGioCompressorFormat(this._format)}),S=new _e.ConverterOutputStream({base_stream:_e.MemoryOutputStream.new_resizable(),converter:a});S.write_bytes(new Z.Bytes(n),null),S.close(null);let C=S.get_base_stream().steal_as_bytes();return new Uint8Array(C.get_data()??[])}_decompress(n){let a=new _e.ZlibDecompressor({format:getGioCompressorFormat(this._format)}),S=_e.MemoryInputStream.new_from_bytes(new Z.Bytes(n)),C=new _e.ConverterInputStream({base_stream:S,converter:a}),N=[];for(;;){let n=C.read_bytes(4096,null);if(n.get_size()===0)break;N.push(new Uint8Array(n.get_data()))}C.close(null);let F=N.reduce((n,a)=>n+a.length,0),I=new Uint8Array(F),H=0;for(let n of N)I.set(n,H),H+=n.length;return I}}}),Xr=__exportAll$3({ZlibTransform:()=>ZlibTransform,brotliCompress:()=>brotliCompress,brotliCompressSync:()=>brotliCompressSync,brotliDecompress:()=>brotliDecompress,brotliDecompressSync:()=>brotliDecompressSync,constants:()=>$r,createBrotliCompress:()=>createBrotliCompress,createBrotliDecompress:()=>createBrotliDecompress,createDeflate:()=>createDeflate,createDeflateRaw:()=>createDeflateRaw,createGunzip:()=>createGunzip,createGzip:()=>createGzip,createInflate:()=>createInflate,createInflateRaw:()=>createInflateRaw,createUnzip:()=>createUnzip,default:()=>ei,deflate:()=>deflate,deflateRaw:()=>deflateRaw,deflateRawSync:()=>deflateRawSync,deflateSync:()=>deflateSync,gunzip:()=>gunzip$1,gunzipSync:()=>gunzipSync,gzip:()=>gzip$1,gzipSync:()=>gzipSync,inflate:()=>inflate,inflateRaw:()=>inflateRaw,inflateRawSync:()=>inflateRawSync,inflateSync:()=>inflateSync});function getGioFormat(n){switch(n){case`gzip`:return _e.ZlibCompressorFormat.GZIP;case`deflate`:return _e.ZlibCompressorFormat.ZLIB;case`deflate-raw`:return _e.ZlibCompressorFormat.RAW}}function compressWithGio(n,a){let S=new _e.ZlibCompressor({format:getGioFormat(a)}),C=new _e.ConverterOutputStream({base_stream:_e.MemoryOutputStream.new_resizable(),converter:S});C.write_bytes(new Z.Bytes(n),null),C.close(null);let N=C.get_base_stream().steal_as_bytes();return new Uint8Array(N.get_data()??[])}function decompressStreamWithGio(n,a){let S=new _e.ZlibDecompressor({format:getGioFormat(a)}),C=_e.MemoryInputStream.new_from_bytes(new Z.Bytes(n)),N=new _e.ConverterInputStream({base_stream:C,converter:S}),F=[];for(;;){let n=N.read_bytes(4096,null);if(n.get_size()===0)break;F.push(new Uint8Array(n.get_data()))}N.close(null);let I=F.reduce((n,a)=>n+a.length,0),H=new Uint8Array(I),W=0;for(let n of F)H.set(n,W),W+=n.length;return H}function findGzipMemberEnd(n){let a=new _e.ZlibDecompressor({format:_e.ZlibCompressorFormat.GZIP}),S=new Uint8Array(65536),C=0,N=!1;for(;!N;){let F=n.subarray(C);try{let[n,I]=a.convert(F,S,_e.ConverterFlags.NONE);C+=I,n===_e.ConverterResult.FINISHED&&(N=!0)}catch{N=!0}}return C}function decompressWithGio(n,a){if(a!==`gzip`)return decompressStreamWithGio(n,a);let S=[],C=0;for(;C<n.length&&!(n.length-C<2||n[C]!==31||n[C+1]!==139);){let a=n.subarray(C),N=findGzipMemberEnd(a);if(N<=0)break;let F=decompressStreamWithGio(a.subarray(0,N),`gzip`);S.push(F),C+=N}if(S.length===0)return decompressStreamWithGio(n,`gzip`);let N=S.reduce((n,a)=>n+a.length,0),F=new Uint8Array(N),I=0;for(let n of S)F.set(n,I),I+=n.length;return F}async function compressWithWeb(n,a){let S=new CompressionStream(a),C=S.writable.getWriter();C.write(new Uint8Array(n.buffer,n.byteOffset,n.byteLength)),C.close();let N=[],F=S.readable.getReader();for(;;){let{done:n,value:a}=await F.read();if(n)break;N.push(a)}let I=N.reduce((n,a)=>n+a.length,0),H=new Uint8Array(I),W=0;for(let n of N)H.set(n,W),W+=n.length;return H}async function decompressWithWeb(n,a){let S=new DecompressionStream(a),C=S.writable.getWriter();C.write(new Uint8Array(n.buffer,n.byteOffset,n.byteLength)),C.close();let N=[],F=S.readable.getReader();for(;;){let{done:n,value:a}=await F.read();if(n)break;N.push(a)}let I=N.reduce((n,a)=>n+a.length,0),H=new Uint8Array(I),W=0;for(let n of N)H.set(n,W),W+=n.length;return H}async function compress(n,a){return Zr?compressWithWeb(n,a):compressWithGio(n,a)}async function decompress(n,a){return Zr?decompressWithWeb(n,a):decompressWithGio(n,a)}function toUint8Array$1(n){return typeof n==`string`?new TextEncoder().encode(n):n instanceof ArrayBuffer?new Uint8Array(n):n}function gzip$1(n,a,S){let C=typeof a==`function`?a:S;compress(toUint8Array$1(n),`gzip`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function gunzip$1(n,a,S){let C=typeof a==`function`?a:S;decompress(toUint8Array$1(n),`gzip`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function deflate(n,a,S){let C=typeof a==`function`?a:S;compress(toUint8Array$1(n),`deflate`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function inflate(n,a,S){let C=typeof a==`function`?a:S;decompress(toUint8Array$1(n),`deflate`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function deflateRaw(n,a,S){let C=typeof a==`function`?a:S;compress(toUint8Array$1(n),`deflate-raw`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function inflateRaw(n,a,S){let C=typeof a==`function`?a:S;decompress(toUint8Array$1(n),`deflate-raw`).then(n=>C(null,n),n=>C(n instanceof Error?n:Error(String(n)),new Uint8Array))}function gzipSync(n,a){return compressWithGio(toUint8Array$1(n),`gzip`)}function gunzipSync(n,a){return decompressWithGio(toUint8Array$1(n),`gzip`)}function deflateSync(n,a){return compressWithGio(toUint8Array$1(n),`deflate`)}function inflateSync(n,a){return decompressWithGio(toUint8Array$1(n),`deflate`)}function deflateRawSync(n,a){return compressWithGio(toUint8Array$1(n),`deflate-raw`)}function inflateRawSync(n,a){return decompressWithGio(toUint8Array$1(n),`deflate-raw`)}function brotliCompress(n,a,S){(typeof a==`function`?a:S)(Error(`brotliCompress: Brotli is not supported in this environment`),Qr)}function brotliDecompress(n,a,S){(typeof a==`function`?a:S)(Error(`brotliDecompress: Brotli is not supported in this environment`),Qr)}function brotliCompressSync(n,a){throw Error(`brotliCompressSync: Brotli is not supported in this environment`)}function brotliDecompressSync(n,a){throw Error(`brotliDecompressSync: Brotli is not supported in this environment`)}var Zr,Qr,$r,ei,ti=__esmMin(()=>{Yr(),ve(),se(),Zr=globalThis.CompressionStream!==void 0,__name$1(toUint8Array$1,`toUint8Array`),__name$1(gzip$1,`gzip`),__name$1(gunzip$1,`gunzip`),Qr=new Uint8Array,$r={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_DEFLATED:8},ei={gzip:gzip$1,gunzip:gunzip$1,deflate,inflate,deflateRaw,inflateRaw,gzipSync,gunzipSync,deflateSync,inflateSync,deflateRawSync,inflateRawSync,brotliCompress,brotliDecompress,brotliCompressSync,brotliDecompressSync,createGzip,createGunzip,createDeflate,createInflate,createDeflateRaw,createInflateRaw,createUnzip,createBrotliCompress,createBrotliDecompress,constants:$r}});const ni=new Set([`gzip`,`deflate`,`deflate-raw`]);function validateFormat(n){if(!ni.has(n))throw TypeError(`Unsupported compression format: '${n}'. Supported formats: 'gzip', 'deflate', 'deflate-raw'.`);return n}const ri=typeof globalThis.CompressionStream==`function`&&typeof globalThis.DecompressionStream==`function`;let ii=!1,ai,oi,si,ci,li,di;async function loadZlib(){if(ii)return;let n=await Promise.resolve().then(()=>(ti(),Xr));ai=n.gzipSync,oi=n.gunzipSync,si=n.deflateSync,ci=n.inflateSync,li=n.deflateRawSync,di=n.inflateRawSync,ii=!0}function getCompressFn(n){switch(n){case`gzip`:return n=>ai(n);case`deflate`:return n=>si(n);case`deflate-raw`:return n=>li(n)}}function getDecompressFn(n){switch(n){case`gzip`:return n=>oi(n);case`deflate`:return n=>ci(n);case`deflate-raw`:return n=>di(n)}}let fi,pi;if(ri)fi=globalThis.CompressionStream,pi=globalThis.DecompressionStream;else{let n=loadZlib();fi=class CompressionStream{readable;writable;constructor(a){let S=validateFormat(a),C=new _r({async transform(a,C){try{await n,C.enqueue(getCompressFn(S)(a))}catch(n){C.error(n)}}});this.readable=C.readable,this.writable=C.writable}},pi=class DecompressionStream{readable;writable;constructor(a){let S=validateFormat(a),C=new _r({async transform(a,C){try{await n,C.enqueue(getDecompressFn(S)(a))}catch(n){C.error(n)}}});this.readable=C.readable,this.writable=C.writable}}}const mi=globalThis;globalThis.CompressionStream===void 0&&(mi.CompressionStream=fi),globalThis.DecompressionStream===void 0&&(mi.DecompressionStream=pi);const hi=globalThis;globalThis.DOMException===void 0&&(hi.DOMException=_n);var gi,__name,_i=__esmMin(()=>{gi=Object.defineProperty,__name=(n,a)=>gi(n,`name`,{value:a,configurable:!0})}),vi=S;function validateHeaderName(n){if(typeof n!=`string`||!/^[\^`\-\w!#$%&'*+.|~]+$/.test(n)){let a=TypeError(`Header name must be a valid HTTP token ["${n}"]`);throw Object.defineProperty(a,"code",{value:`ERR_INVALID_HTTP_TOKEN`}),a}}function validateHeaderValue(n,a){if(a===void 0){let a=TypeError(`Header "${n}" value must not be undefined`);throw Object.defineProperty(a,"code",{value:`ERR_HTTP_INVALID_HEADER_VALUE`}),a}if(typeof a==`string`&&/[^\t -~€-ÿ]/.test(a)){let a=TypeError(`Invalid character in header content ["${n}"]`);throw Object.defineProperty(a,"code",{value:`ERR_INVALID_CHAR`}),a}}const yi=Symbol(`Headers.headers`);function isBoxedPrimitive$2(n){return n instanceof String||n instanceof Number||n instanceof Boolean||typeof Symbol<`u`&&n instanceof Symbol||typeof BigInt<`u`&&n instanceof BigInt}__name$1(isBoxedPrimitive$2,`isBoxedPrimitive`);var bi=class Headers{[yi];constructor(n){if(this[yi]=new Map,n!=null){if(n instanceof Headers){for(let[a,S]of n[yi])this[yi].set(a,[...S]);return}if(typeof n==`object`&&!isBoxedPrimitive$2(n)){let a=n[Symbol.iterator];if(a==null)for(let[a,S]of Object.entries(n))validateHeaderName(a),validateHeaderValue(a,String(S)),this.append(a,String(S));else{if(typeof a!=`function`)throw TypeError(`Header pairs must be iterable`);for(let a of n){if(typeof a!=`object`||isBoxedPrimitive$2(a))throw TypeError(`Each header pair must be an iterable object`);let n=[...a];if(n.length!==2)throw TypeError(`Each header pair must be a name/value tuple`);validateHeaderName(n[0]),validateHeaderValue(n[0],String(n[1])),this.append(n[0],String(n[1]))}}}else throw TypeError(`Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)'`)}}append(n,a){validateHeaderName(n),validateHeaderValue(n,a);let S=String(n).toLowerCase(),C=String(a),N=this[yi].get(S);N?N.push(C):this[yi].set(S,[C])}set(n,a){validateHeaderName(n),validateHeaderValue(n,a);let S=String(n).toLowerCase();this[yi].set(S,[String(a)])}delete(n){this[yi].delete(String(n).toLowerCase())}has(n){return this[yi].has(String(n).toLowerCase())}get(n){let a=this[yi].get(String(n).toLowerCase());if(!a||a.length===0)return null;let S=a.join(`, `);return/^content-encoding$/i.test(n)&&(S=S.toLowerCase()),S}getAll(n){return this[yi].get(String(n).toLowerCase())??[]}getSetCookie(){return this[yi].get(`set-cookie`)??[]}forEach(n,a){for(let S of this.keys())Reflect.apply(n,a,[this.get(S),S,this])}*keys(){let n=[...this[yi].keys()].sort(),a=new Set;for(let S of n)a.has(S)||(a.add(S),yield S)}*values(){for(let n of this.keys())yield this.get(n)}*entries(){for(let n of this.keys())yield[n,this.get(n)]}[Symbol.iterator](){return this.entries()}get[Symbol.toStringTag](){return`Headers`}toString(){return Object.prototype.toString.call(this)}raw(){let n={};for(let a of this.keys())n[a]=this.getAll(a);return n}_appendToSoupMessage(n,a=vi.MessageHeadersType.REQUEST){let S=n?n.get_request_headers():new vi.MessageHeaders(a);for(let[n,a]of this.entries())S.append(n,a);return S}static _newFromSoupMessage(n,a=vi.MessageHeadersType.RESPONSE){let S=new Headers,C;return C=a===vi.MessageHeadersType.RESPONSE?n.get_response_headers():n.get_request_headers(),C.foreach((n,a)=>{S.append(n,a)}),S}[Symbol.for(`nodejs.util.inspect.custom`)](){let n={};for(let a of this.keys()){let S=this.getAll(a);a===`host`?n[a]=S[0]:n[a]=S.length>1?S:S[0]}return n}};Object.defineProperties(bi.prototype,[`get`,`entries`,`forEach`,`values`].reduce((n,a)=>(n[a]={enumerable:!0},n),{}));var xi=__esmMin(()=>{bt()});xi();var FetchBaseError=class extends Error{type;constructor(n,a){super(n),typeof Error.captureStackTrace==`function`&&Error.captureStackTrace(this,this.constructor),this.type=a}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},FetchError=class extends FetchBaseError{code;errno;erroredSysCall;constructor(n,a,S){super(n,a),S&&(this.code=this.errno=S.code,this.erroredSysCall=S.syscall)}};rn();const Si=Symbol.toStringTag,isURLSearchParameters=n=>typeof n==`object`&&typeof n.append==`function`&&typeof n.delete==`function`&&typeof n.get==`function`&&typeof n.getAll==`function`&&typeof n.has==`function`&&typeof n.set==`function`&&typeof n.sort==`function`&&n[Si]===`URLSearchParams`,isBlob=n=>{if(!n||typeof n!=`object`)return!1;let a=n;return typeof a.arrayBuffer==`function`&&typeof a.type==`string`&&typeof a.stream==`function`&&typeof a.constructor==`function`&&/^(Blob|File)$/.test(a[Si])},isAbortSignal=n=>{if(typeof n!=`object`||!n)return!1;let a=n;return a[Si]===`AbortSignal`||a[Si]===`EventTarget`},isDomainOrSubdomain=(n,a)=>{let S=new tn(a).hostname,C=new tn(n).hostname;return S===C||S.endsWith(`.${C}`)},isSameProtocol=(n,a)=>new tn(a).protocol===new tn(n).protocol;var Ci,wi,File,Ti=__esmMin(()=>{Ci=Symbol(`File.name`),wi=Symbol(`File.lastModified`),File=class extends Blob{[Ci];[wi];webkitRelativePath=``;constructor(n,a,S){super(n,S),this[Ci]=String(a),this[wi]=S?.lastModified??Date.now()}get name(){return this[Ci]}get lastModified(){return this[wi]}get[Symbol.toStringTag](){return`File`}}});function generateBoundary(){let n=`----formdata-`;for(let a=0;a<24;a++)n+=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`.charAt(Math.floor(Math.random()*62));return n}function escape(n){return n.replace(/\n/g,`%0A`).replace(/\r/g,`%0D`).replace(/"/g,`%22`)}function formDataToBlob(n,a){a??=generateBoundary();let S=[],C=`--${a}\r\nContent-Disposition: form-data; name="`;for(let[a,N]of n.entries())if(typeof N==`string`)S.push(`${C}${escape(a)}"\r\n\r\n${N.replace(/\r(?!\n)|(?<!\r)\n/g,`\r
7
7
  `)}\r\n`);else{let n=N instanceof File?N:new File([N],`blob`,{type:N.type});S.push(`${C}${escape(a)}"; filename="${escape(n.name)}"\r\nContent-Type: ${n.type||`application/octet-stream`}\r\n\r\n`),S.push(n),S.push(`\r
8
8
  `)}return S.push(`--${a}--`),new Blob(S,{type:`multipart/form-data; boundary=${a}`})}var Ei=__esmMin(()=>{Ti()});function normalizeValue(n,a,S){return typeof a==`string`?a:(a instanceof Blob&&!(a instanceof File)&&(a=new File([a],S??`blob`,{type:a.type})),a instanceof File&&S!==void 0&&(a=new File([a],S,{type:a.type,lastModified:a.lastModified})),a)}var Di,FormData,Oi=__esmMin(()=>{Ti(),Di=Symbol(`FormData.entries`),FormData=class{[Di]=[];constructor(){}append(n,a,S){this[Di].push({name:String(n),value:normalizeValue(n,a,S)})}delete(n){let a=String(n);this[Di]=this[Di].filter(n=>n.name!==a)}get(n){let a=String(n),S=this[Di].find(n=>n.name===a);return S?S.value:null}getAll(n){let a=String(n);return this[Di].filter(n=>n.name===a).map(n=>n.value)}has(n){let a=String(n);return this[Di].some(n=>n.name===a)}set(n,a,S){let C=String(n),N=normalizeValue(C,a,S),F=!1;this[Di]=this[Di].filter(n=>n.name===C?F?!1:(F=!0,n.value=N,!0):!0),F||this[Di].push({name:C,value:N})}forEach(n,a){for(let S of this[Di])n.call(a,S.value,S.name,this)}*entries(){for(let n of this[Di])yield[n.name,n.value]}*keys(){for(let n of this[Di])yield n.name}*values(){for(let n of this[Di])yield n.value}[Symbol.iterator](){return this.entries()}get[Symbol.toStringTag](){return`FormData`}}}),ki=__esmMin(()=>{Ei(),Oi()}),Ai=__exportAll$3({toFormData:()=>toFormData});function _fileName(n){let a=n.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!a)return;let S=a[2]||a[3]||``,C=S.slice(S.lastIndexOf(`\\`)+1);return C=C.replace(/%22/g,`"`),C=C.replace(/&#(\d{4});/g,(n,a)=>String.fromCharCode(a)),C}async function toFormData(n,a){if(!/multipart/i.test(a))throw TypeError(`Failed to fetch`);let S=a.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!S)throw TypeError(`no or bad content-type header, no multipart boundary`);let C=new MultipartParser(S[1]||S[2]),N,F,I,H,W,K,q=[],Y=new FormData,onPartData=n=>{I+=X.decode(n,{stream:!0})},appendToFile=n=>{q.push(n)},appendFileToFormData=()=>{let n=new te(q,K,{type:W});Y.append(H,n)},appendEntryToFormData=()=>{Y.append(H,I)},X=new TextDecoder(`utf-8`);X.decode(),C.onPartBegin=function(){C.onPartData=onPartData,C.onPartEnd=appendEntryToFormData,N=``,F=``,I=``,H=``,W=``,K=null,q.length=0},C.onHeaderField=function(n){N+=X.decode(n,{stream:!0})},C.onHeaderValue=function(n){F+=X.decode(n,{stream:!0})},C.onHeaderEnd=function(){if(F+=X.decode(),N=N.toLowerCase(),N===`content-disposition`){let n=F.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);n&&(H=n[2]||n[3]||``),K=_fileName(F),K&&(C.onPartData=appendToFile,C.onPartEnd=appendFileToFormData)}else N===`content-type`&&(W=F);F=``,N=``};for await(let a of n)C.write(a);return C.end(),Y}var ji,Mi,lower,Ni,MultipartParser,$=__esmMin(()=>{ki(),ji=1,Mi={PART_BOUNDARY:ji,LAST_BOUNDARY:ji*=2},lower=n=>n|32,Ni=__name$1((...n)=>{},`noop`),MultipartParser=class{index=0;flags=0;boundary;lookbehind;state=0;onHeaderEnd=Ni;onHeaderField=Ni;onHeadersEnd=Ni;onHeaderValue=Ni;onPartBegin=Ni;onPartData=Ni;onPartEnd=Ni;boundaryChars={};constructor(n){n=`\r
9
- --`+n;let a=new Uint8Array(n.length);for(let S=0;S<n.length;S++)a[S]=n.charCodeAt(S),this.boundaryChars[a[S]]=!0;this.boundary=a,this.lookbehind=new Uint8Array(this.boundary.length+8)}write(n){let a=0,S=n.length,C=this.index,{lookbehind:N,boundary:F,boundaryChars:I,index:H,state:W,flags:K}=this,q=this.boundary.length,Y=q-1,X=n.length,te,ne,mark=n=>{this[n+`Mark`]=a},clear=n=>{delete this[n+`Mark`]},callback=(n,a,S,C)=>{(a===void 0||a!==S)&&this[n](C&&C.subarray(a,S))},dataCallback=(S,C=!1)=>{let N=S+`Mark`;N in this&&(C?(callback(S,this[N],a,n),delete this[N]):(callback(S,this[N],n.length,n),this[N]=0))};for(a=0;a<S;a++)switch(te=n[a],W){case 0:if(H===F.length-2){if(te===45)K|=Mi.LAST_BOUNDARY;else if(te!==13)return;H++;break}else if(H-1==F.length-2){if(K&Mi.LAST_BOUNDARY&&te===45)W=9,K=0;else if(!(K&Mi.LAST_BOUNDARY)&&te===10)H=0,callback(`onPartBegin`),W=1;else return;break}te!==F[H+2]&&(H=-2),te===F[H+2]&&H++;break;case 1:W=2,mark(`onHeaderField`),H=0;case 2:if(te===13){clear(`onHeaderField`),W=6;break}if(H++,te===45)break;if(te===58){if(H===1)return;dataCallback(`onHeaderField`,!0),W=3;break}if(ne=lower(te),ne<97||ne>122)return;break;case 3:if(te===32)break;mark(`onHeaderValue`),W=4;case 4:te===13&&(dataCallback(`onHeaderValue`,!0),callback(`onHeaderEnd`),W=5);break;case 5:if(te!==10)return;W=1;break;case 6:if(te!==10)return;callback(`onHeadersEnd`),W=7;break;case 7:W=8,mark(`onPartData`);case 8:if(C=H,H===0){for(a+=Y;a<X&&!(n[a]in I);)a+=q;a-=Y,te=n[a]}if(H<F.length)F[H]===te?(H===0&&dataCallback(`onPartData`,!0),H++):H=0;else if(H===F.length)H++,te===13?K|=Mi.PART_BOUNDARY:te===45?K|=Mi.LAST_BOUNDARY:H=0;else if(H-1===F.length)if(K&Mi.PART_BOUNDARY){if(H=0,te===10){K&=~Mi.PART_BOUNDARY,callback(`onPartEnd`),callback(`onPartBegin`),W=1;break}}else K&Mi.LAST_BOUNDARY&&te===45?(callback(`onPartEnd`),W=9,K=0):H=0;if(H>0)N[H-1]=te;else if(C>0){let n=new Uint8Array(N.buffer,N.byteOffset,N.byteLength);callback(`onPartData`,0,C,n),C=0,mark(`onPartData`),a--}break;case 9:break;default:throw Error(`Unexpected state entered: ${W}`)}dataCallback(`onHeaderField`),dataCallback(`onHeaderValue`),dataCallback(`onPartData`),this.index=H,this.state=W,this.flags=K}end(){if(this.state===1&&this.index===0||this.state===8&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==9)throw Error(`MultipartParser.end(): stream ended unexpectedly`)}}});Ie(),_i(),xi(),rn(),bt(),Jr(),ki(),__name((n,a)=>new Promise((S,C)=>{pipeline(n,a,n=>{n?C(n):S()})}),`pipeline`);const Pi=Symbol(`Body internals`);function isAnyArrayBuffer$2(n){return n instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&n instanceof SharedArrayBuffer}__name$1(isAnyArrayBuffer$2,`isAnyArrayBuffer`);var Body=class{[Pi]={body:null,stream:null,boundary:``,disturbed:!1,error:null};size=0;constructor(n,a={size:0}){if(this.size=a.size||0,n==null)this[Pi].body=null;else if(isURLSearchParameters(n))this[Pi].body=dt.from(n.toString());else if(isBlob(n))this[Pi].body=n;else if(dt.isBuffer(n))this[Pi].body=n;else if(isAnyArrayBuffer$2(n))this[Pi].body=dt.from(n);else if(ArrayBuffer.isView(n))this[Pi].body=dt.from(n.buffer,n.byteOffset,n.byteLength);else if(n instanceof Hr)this[Pi].body=n;else if(typeof ReadableStream<`u`&&n instanceof ReadableStream)this[Pi].body=readableStreamToReadable(n);else if(n instanceof FormData){let a=formDataToBlob(n);this[Pi].body=a,this[Pi].boundary=a.type?.split(`boundary=`)?.[1]??``}else typeof n==`string`?this[Pi].body=dt.from(n):n instanceof en?this[Pi].body=dt.from(n.toString()):(Fe.warn(`Unknown body type "${typeof n}", try to parse the body to string!`),this[Pi].body=dt.from(String(n)));let S=this[Pi].body;dt.isBuffer(S)?this[Pi].stream=Hr.from(S):isBlob(S)?this[Pi].stream=Hr.from(blobToAsyncIterable(S)):S instanceof Hr&&(this[Pi].stream=S),S instanceof Vr&&S.on(`error`,n=>{let a=n instanceof FetchBaseError?n:new FetchError(`Invalid response body while trying to fetch ${this.url}: ${n.message}`,`system`,n);this[Pi].error=a})}get body(){let n=this[Pi].stream;if(!n)return null;if(typeof ReadableStream<`u`){let a=!1;return new ReadableStream({start(S){n.on(`data`,n=>{if(!a)try{S.enqueue(n instanceof Uint8Array?n:new Uint8Array(n))}catch{}}),n.on(`end`,()=>{if(!a){a=!0;try{S.close()}catch{}}}),n.on(`error`,n=>{if(!a){a=!0;try{S.error(n)}catch{}}})},cancel(){a=!0,n.destroy()}})}return null}get _stream(){return this[Pi].stream}get _rawBodyBuffer(){let n=this[Pi].body;return n===null?null:dt.isBuffer(n)?n:n instanceof Uint8Array?dt.from(n.buffer,n.byteOffset,n.byteLength):null}get bodyUsed(){return this[Pi].disturbed}async arrayBuffer(){let{buffer:n,byteOffset:a,byteLength:S}=await consumeBody(this);return n.slice(a,a+S)}async formData(){let n=this.headers?.get(`content-type`);if(n?.startsWith(`application/x-www-form-urlencoded`)){let n=new FormData,a=new en(await this.text());for(let[S,C]of a)n.append(S,C);return n}let{toFormData:a}=await Promise.resolve().then(()=>($(),Ai));return a(this.body,n)}async blob(){let n=this.headers?.get(`content-type`)||this[Pi].body&&this[Pi].body.type||``;return new X([await this.arrayBuffer()],{type:n})}async json(){let n=await this.text();return JSON.parse(n)}async text(){let n=await consumeBody(this);return new TextDecoder().decode(n)}};Object.defineProperties(Body.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});async function consumeBody(n){if(n[Pi].disturbed)throw TypeError(`body used already for: ${n.url}`);if(n[Pi].disturbed=!0,n[Pi].error)throw n[Pi].error;let{_stream:a}=n;if(a===null||!(a instanceof Vr))return dt.alloc(0);let S=[],C=0;try{for await(let N of a){if(n.size>0&&C+N.length>n.size){let S=new FetchError(`content size at ${n.url} over limit: ${n.size}`,`max-size`);throw a.destroy(S),S}C+=N.length,S.push(N)}}catch(a){let S=a instanceof Error?a:Error(String(a));throw a instanceof FetchBaseError?a:new FetchError(`Invalid response body while trying to fetch ${n.url}: ${S.message}`,`system`,S)}try{return S.every(n=>typeof n==`string`)?dt.from(S.join(``)):dt.concat(S,C)}catch(a){let S=a instanceof Error?a:Error(String(a));throw new FetchError(`Could not create Buffer from response body for ${n.url}: ${S.message}`,`system`,S)}}const clone=(n,a)=>{let S,C,{body:N}=n[Pi];if(n.bodyUsed)throw Error(`cannot clone body after it is used`);return N instanceof Vr&&typeof N.getBoundary!=`function`&&(S=new Kr({highWaterMark:a}),C=new Kr({highWaterMark:a}),N.pipe(S),N.pipe(C),n[Pi].stream=S,N=C),N},extractContentType=(n,a)=>n===null?null:typeof n==`string`?`text/plain;charset=UTF-8`:isURLSearchParameters(n)?`application/x-www-form-urlencoded;charset=UTF-8`:isBlob(n)?n.type||null:dt.isBuffer(n)||isAnyArrayBuffer$2(n)||ArrayBuffer.isView(n)?null:n instanceof FormData?`multipart/form-data; boundary=${a[Pi].boundary}`:n instanceof Vr?null:`text/plain;charset=UTF-8`,getTotalBytes=n=>{let{body:a}=n[Pi];if(a===null)return 0;if(isBlob(a))return a.size;if(dt.isBuffer(a))return a.length;if(a&&typeof a.getLengthSync==`function`){let n=a;return n.hasKnownLength&&n.hasKnownLength()?n.getLengthSync():null}return null};function readableStreamToReadable(n){let a=n.getReader();return new Hr({async read(){try{let{done:n,value:S}=await a.read();n?this.push(null):this.push(dt.from(S))}catch(n){this.destroy(n)}},destroy(n,S){a.cancel().then(()=>S(null),S)}})}async function*blobToAsyncIterable(n){if(typeof n.stream==`function`){let a=n.stream().getReader();for(;;){let{done:n,value:S}=await a.read();if(n)break;yield S}}else yield new Uint8Array(await n.arrayBuffer())}const Fi=new Set([301,302,303,307,308]),isRedirect=n=>Fi.has(n);rn(),se(),ve();const Ii=Symbol(`Response internals`);var Li=class Response extends Body{[Ii];_inputStream=null;constructor(n=null,a={}){super(n,a);let S=a.status==null?200:a.status,C=new bi(a.headers);if(n!==null&&!C.has(`Content-Type`)){let a=extractContentType(n,this);a&&C.append(`Content-Type`,a)}this[Ii]={type:`default`,url:a.url,status:S,statusText:a.statusText||``,headers:C,counter:a.counter,highWaterMark:a.highWaterMark}}get type(){return this[Ii].type}get url(){return this[Ii].url||``}get status(){return this[Ii].status}get ok(){return this[Ii].status>=200&&this[Ii].status<300}get redirected(){return this[Ii].counter>0}get statusText(){return this[Ii].statusText}get headers(){return this[Ii].headers}get highWaterMark(){return this[Ii].highWaterMark}clone(){return new Response(clone(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(n,a=302){if(!isRedirect(a))throw RangeError(`Failed to execute "redirect" on "response": Invalid status code`);return new Response(null,{headers:{location:new tn(n).toString()},status:a})}static error(){let n=new Response(null,{status:0,statusText:``});return n[Ii].type=`error`,n}static json(n,a){let S=JSON.stringify(n),C={...a},N=new bi(C.headers);return N.has(`content-type`)||N.set(`content-type`,`application/json`),C.headers=N,new Response(S,C)}get[Symbol.toStringTag](){return`Response`}async text(){if(!this._inputStream)return super.text();let n=_e.MemoryOutputStream.new_resizable();await new Promise((a,S)=>{n.splice_async(this._inputStream,_e.OutputStreamSpliceFlags.CLOSE_TARGET|_e.OutputStreamSpliceFlags.CLOSE_SOURCE,Z.PRIORITY_DEFAULT,null,(C,N)=>{try{a(n.splice_finish(N))}catch(n){S(n)}})});let a=n.steal_as_bytes();return new TextDecoder().decode(a.toArray())}};Object.defineProperties(Li.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}}),Jr(),se(),et();async function soupSendAsync(n,a,S=Z.PRIORITY_DEFAULT,C=null){return new Promise((N,F)=>{n.send_async(a,S,C,(a,S)=>{try{N(n.send_finish(S))}catch(n){F(n)}})})}function inputStreamToReadable(n,a={}){return Hr.from(inputStreamAsyncIterator(n),a)}ve(),se(),Jr(),et(),ve(),et(),Vt(),ve();function isIP(n){if(typeof n!=`string`)return 0;let a=n.includes(`%`)?n.split(`%`)[0]:n,S=_e.InetAddress.new_from_string(a);if(!S)return 0;switch(S.get_family()){case _e.SocketFamily.INVALID:return 0;case _e.SocketFamily.IPV4:return 4;case _e.SocketFamily.IPV6:return 6}}rn();function stripURLForUseAsAReferrer(n,a=!1){if(n==null||n===`no-referrer`)return`no-referrer`;let S=new tn(n);return/^(about|blob|data):$/.test(S.protocol)?`no-referrer`:(S.username=``,S.password=``,S.hash=``,a&&(S.pathname=``,S.search=``),S)}const Ri=new Set([``,`no-referrer`,`no-referrer-when-downgrade`,`same-origin`,`origin`,`strict-origin`,`origin-when-cross-origin`,`strict-origin-when-cross-origin`,`unsafe-url`]);function validateReferrerPolicy(n){if(!Ri.has(n))throw TypeError(`Invalid referrerPolicy: ${n}`);return n}function isOriginPotentiallyTrustworthy(n){if(/^(http|ws)s:$/.test(n.protocol))return!0;let a=n.host.replace(/(^\[)|(]$)/g,``),S=isIP(a);return S===4&&/^127\./.test(a)||S===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(a)?!0:n.host===`localhost`||n.host.endsWith(`.localhost`)?!1:n.protocol===`file:`}function isUrlPotentiallyTrustworthy(n){return/^about:(blank|srcdoc)$/.test(n.toString())||(typeof n==`string`&&(n=new tn(n)),n.protocol===`data:`)||/^(blob|filesystem):$/.test(n.protocol)?!0:isOriginPotentiallyTrustworthy(n)}function determineRequestsReferrer(n,a={}){let{referrerURLCallback:S,referrerOriginCallback:C}=a;if(n.referrer===`no-referrer`||n.referrerPolicy===``)return null;let N=n.referrerPolicy;if(n.referrer===`about:client`)return`no-referrer`;let F=new tn(n.referrer),I=stripURLForUseAsAReferrer(F),H=stripURLForUseAsAReferrer(F,!0);I.toString().length>4096&&(I=H),S&&(I=S(I)),C&&(H=C(H));let W=new tn(n.url);switch(N){case`no-referrer`:return`no-referrer`;case`origin`:return H;case`unsafe-url`:return I;case`strict-origin`:return isUrlPotentiallyTrustworthy(I)&&!isUrlPotentiallyTrustworthy(W)?`no-referrer`:H.toString();case`strict-origin-when-cross-origin`:return I.origin===W.origin?I:isUrlPotentiallyTrustworthy(I)&&!isUrlPotentiallyTrustworthy(W)?`no-referrer`:H;case`same-origin`:return I.origin===W.origin?I:`no-referrer`;case`origin-when-cross-origin`:return I.origin===W.origin?I:H;case`no-referrer-when-downgrade`:return isUrlPotentiallyTrustworthy(I)&&!isUrlPotentiallyTrustworthy(W)?`no-referrer`:I;default:throw TypeError(`Invalid referrerPolicy: ${N}`)}}function parseReferrerPolicyFromHeader(n){let a=(n.get(`referrer-policy`)||``).split(/[,\s]+/),S=``;for(let n of a)n&&Ri.has(n)&&(S=n);return S}rn(),se(),ve();const zi=Symbol(`Request internals`),isRequest=n=>typeof n==`object`&&typeof n.url==`string`;var Bi=class Request extends Body{cache;credentials;destination;get headers(){return this[zi].headers}integrity;keepalive;get method(){return this[zi].method}mode;get redirect(){return this[zi].redirect}get referrer(){if(this[zi].referrer===`no-referrer`)return``;if(this[zi].referrer===`client`)return`about:client`;if(this[zi].referrer)return this[zi].referrer.toString()}get referrerPolicy(){return this[zi].referrerPolicy}set referrerPolicy(n){this[zi].referrerPolicy=validateReferrerPolicy(n)}get signal(){return this[zi].signal}get url(){return this[zi].parsedURL.toString()}get _uri(){return Z.Uri.parse(this.url,Z.UriFlags.NONE)}get _session(){return this[zi].session}get _message(){return this[zi].message}get _inputStream(){return this[zi].inputStream}get[Symbol.toStringTag](){return`Request`}[zi];follow;compress=!1;counter=0;agent=``;highWaterMark=16384;insecureHTTPParser=!1;constructor(n,a){let S=n,C=a||{},N,F={};if(isRequest(n)?(N=new tn(S.url),F=S):N=new tn(n),N.username!==``||N.password!==``)throw TypeError(`${N} is an url with embedded credentials.`);let I=C.method||F.method||`GET`;if(/^(delete|get|head|options|post|put)$/i.test(I)&&(I=I.toUpperCase()),(a?.body!=null||isRequest(n)&&S.body!==null)&&(I===`GET`||I===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body`);let H=a?.body?a.body:isRequest(n)&&S.body!==null?clone(n):null;super(H,{size:C.size||0});let W=new bi(a?.headers||S.headers||{});if(H!==null&&!W.has(`Content-Type`)){let n=extractContentType(H,this);n&&W.set(`Content-Type`,n)}let K=isRequest(n)?S.signal:null;if(a&&`signal`in a&&(K=a.signal),K!=null&&!isAbortSignal(K))throw TypeError(`Expected signal to be an instanceof AbortSignal or EventTarget`);let q=a?.referrer==null?S.referrer:a.referrer;if(q===``)q=`no-referrer`;else if(q){let n=new tn(q);q=/^about:(\/\/)?client$/.test(n.toString())?`client`:n}else q=void 0;let Y=N.protocol,X=null,te=null;(Y===`http:`||Y===`https:`)&&(X=new vi.Session,te=new vi.Message({method:I,uri:Z.Uri.parse(N.toString(),Z.UriFlags.NONE)})),this[zi]={method:I,redirect:a?.redirect||S.redirect||`follow`,headers:W,parsedURL:N,signal:K,referrer:q,referrerPolicy:``,session:X,message:te},this.follow=C.follow===void 0?S.follow===void 0?20:S.follow:C.follow,this.compress=C.compress===void 0?S.compress===void 0?!0:S.compress:C.compress,this.counter=C.counter||S.counter||0,this.agent=C.agent||S.agent,this.highWaterMark=C.highWaterMark||S.highWaterMark||16384,this.insecureHTTPParser=C.insecureHTTPParser||S.insecureHTTPParser||!1,this.referrerPolicy=a?.referrerPolicy||S.referrerPolicy||``}async _send(n){let{session:a,message:S}=this[zi];if(!a||!S)throw Error(`Cannot send request: no Soup session (non-HTTP URL?)`);try{a.remove_feature_by_type(vi.ContentDecoder.$gtype)}catch{}n.headers._appendToSoupMessage(S);let C=this._rawBodyBuffer;if(C!==null&&C.byteLength>0){let a=n.headers.get(`content-type`)||null;S.set_request_body_from_bytes(a,new Z.Bytes(C))}let N=new _e.Cancellable;return this[zi].inputStream=await soupSendAsync(a,S,Z.PRIORITY_DEFAULT,N),this[zi].readable=inputStreamToReadable(this[zi].inputStream),{inputStream:this[zi].inputStream,readable:this[zi].readable,cancellable:N}}clone(){return new Request(this)}async arrayBuffer(){return super.arrayBuffer()}async blob(){return super.blob()}async formData(){return super.formData()}async json(){return super.json()}async text(){return super.text()}};Object.defineProperties(Bi.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}});const getSoupRequestOptions=n=>{let{parsedURL:a}=n[zi],S=new bi(n[zi].headers);S.has(`Accept`)||S.set(`Accept`,`*/*`);let C=null;if(n.body===null&&/^(post|put)$/i.test(n.method)&&(C=`0`),n.body!==null){let a=getTotalBytes(n);typeof a==`number`&&!Number.isNaN(a)&&(C=String(a))}C&&S.set(`Content-Length`,C),n.referrerPolicy===``&&(n.referrerPolicy=`strict-origin-when-cross-origin`),n.referrer&&n.referrer!==`no-referrer`?n[zi].referrer=determineRequestsReferrer(n):n[zi].referrer=`no-referrer`,n[zi].referrer instanceof tn&&S.set(`Referer`,n.referrer),S.has(`User-Agent`)||S.set(`User-Agent`,`gjsify-fetch`),n.compress&&!S.has(`Accept-Encoding`)&&S.set(`Accept-Encoding`,`gzip, deflate`);let{agent:N}=n;return typeof N==`function`&&(N=N(a)),!S.has(`Connection`)&&!N&&S.set(`Connection`,`close`),{parsedURL:a,options:{headers:S}}};function parseDataUri(n){let a=n.match(/^data:([^,]*?)(;base64)?,(.*)$/s);if(!a)throw TypeError(`Invalid data URI: ${n.slice(0,50)}...`);let S=a[1]||`text/plain;charset=US-ASCII`,C=!!a[2],N=a[3],F;if(C){let n=atob(N);F=new Uint8Array(n.length);for(let a=0;a<n.length;a++)F[a]=n.charCodeAt(a)}else F=new TextEncoder().encode(decodeURIComponent(N));return{buffer:F,typeFull:S}}var AbortError=class extends FetchBaseError{constructor(n,a=`aborted`){super(n,a)}};Ie(),rn(),Jr(),se();const Vi=new Set([`data:`,`http:`,`https:`,`file:`]);function rewriteRootRelativeUrl(n){if(typeof n!=`string`||!n.startsWith(`/`)||n.startsWith(`//`))return n;let a=globalThis,S=a.__GJSIFY_DEBUG_FETCH===!0;try{let C=a.imports?.system?.programPath??a.imports?.system?.programInvocationName??``;if(!C)return n;let N=`file://${Z.path_get_dirname(C)}${n}`;return S&&Fe.log(`[fetch] rewrite ${n} → ${N}`),N}catch(a){return S&&Fe.warn(`[fetch] rewrite FAILED: ${a instanceof Error?a.message:String(a)}`),n}}async function fetch$1(n,a={}){n=rewriteRootRelativeUrl(n);let S=new Bi(n,a),{parsedURL:C,options:N}=getSoupRequestOptions(S);if(!Vi.has(C.protocol))throw TypeError(`@gjsify/fetch cannot load ${n}. URL scheme "${C.protocol.replace(/:$/,``)}" is not supported.`);if(C.protocol===`data:`){let{buffer:n,typeFull:a}=parseDataUri(S.url);return new Li(Buffer.from(n),{headers:{"Content-Type":a}})}if(C.protocol===`file:`){let n=globalThis.__GJSIFY_DEBUG_FETCH===!0;n&&Fe.log(`[fetch] file:// ${S.url}`);try{let a=Z.filename_from_uri(S.url)[0];n&&Fe.log(`[fetch] file:// path=${a}`);let[C,N]=Z.file_get_contents(a);if(n&&Fe.log(`[fetch] file:// ok=${C} bytes=${N?.byteLength??`?`}`),!C)throw new FetchError(`Failed to read file: ${a}`,`system`);let F=N,I=new Uint8Array(F.byteLength);I.set(F);let H=new Li(I);return n&&Fe.log(`[fetch] file:// response created`),H}catch(a){let C=a instanceof Error?a:Error(String(a));throw n&&Fe.warn(`[fetch] file:// FAIL: ${C.message}`),new FetchError(`request to ${S.url} failed, reason: ${C.message}`,`system`,C)}}let{signal:F}=S;if(F&&F.aborted)throw new AbortError(`The operation was aborted.`);let I,H;try{let n=await S._send(N);I=n.readable,H=n.cancellable}catch(n){let a=n instanceof Error?n:Error(String(n));throw new FetchError(`request to ${S.url} failed, reason: ${a.message}`,`system`,a)}let abortHandler=()=>{H.cancel()};F&&F.addEventListener(`abort`,abortHandler,{once:!0});let finalize=()=>{F&&F.removeEventListener(`abort`,abortHandler)};H.connect(()=>{I.destroy(new AbortError(`The operation was aborted.`))}),I.on(`error`,n=>{finalize()});let W=S._message,K=bi._newFromSoupMessage(W),q=W.status_code,Y=W.get_reason_phrase();if(isRedirect(q)){let n=K.get(`Location`),C=null;try{C=n===null?null:new tn(n,S.url)}catch{if(S.redirect!==`manual`)throw finalize(),new FetchError(`uri requested responds with an invalid redirect URL: ${n}`,`invalid-redirect`)}switch(S.redirect){case`error`:throw finalize(),new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${S.url}`,`no-redirect`);case`manual`:break;case`follow`:{if(C===null)break;if(S.counter>=S.follow)throw finalize(),new FetchError(`maximum redirect reached at: ${S.url}`,`max-redirect`);let n={headers:new bi(S.headers),follow:S.follow,counter:S.counter+1,agent:S.agent,compress:S.compress,method:S.method,body:clone(S),signal:S.signal,size:S.size,referrer:S.referrer,referrerPolicy:S.referrerPolicy};if(!isDomainOrSubdomain(S.url,C)||!isSameProtocol(S.url,C))for(let a of[`authorization`,`www-authenticate`,`cookie`,`cookie2`])n.headers.delete(a);if(q!==303&&S.body&&a.body instanceof qr.Readable)throw finalize(),new FetchError(`Cannot follow redirect with body being a readable stream`,`unsupported-redirect`);(q===303||(q===301||q===302)&&S.method===`POST`)&&(n.method=`GET`,n.body=void 0,n.headers.delete(`content-length`));let N=parseReferrerPolicyFromHeader(K);return N&&(n.referrerPolicy=N),finalize(),fetch$1(new Bi(C,n))}default:throw TypeError(`Redirect option '${S.redirect}' is not a valid value of RequestRedirect`)}}let X={url:S.url,status:q,statusText:Y,headers:K,size:S.size,counter:S.counter,highWaterMark:S.highWaterMark},te=K.get(`Content-Encoding`);if(!S.compress||S.method===`HEAD`||te===null||q===204||q===304)return finalize(),new Li(I,X);if(typeof DecompressionStream<`u`){let n=null;if(te===`gzip`||te===`x-gzip`?n=`gzip`:(te===`deflate`||te===`x-deflate`)&&(n=`deflate`),n){let a=new Li(I,X).body;if(a){let S=a.pipeThrough(new DecompressionStream(n));return finalize(),new Li(S,X)}}}return finalize(),new Li(I,X)}__name$1(fetch$1,`fetch`);const Hi=globalThis;globalThis.fetch===void 0&&(Hi.fetch=fetch$1),globalThis.Headers===void 0&&(Hi.Headers=bi),globalThis.Request===void 0&&(Hi.Request=Bi),globalThis.Response===void 0&&(Hi.Response=Li);const Ui=globalThis;globalThis.ByteLengthQueuingStrategy===void 0&&(Ui.ByteLengthQueuingStrategy=vr),globalThis.CountQueuingStrategy===void 0&&(Ui.CountQueuingStrategy=yr);const Wi=globalThis;function isNativeStreamUsable$2(n,a){try{return typeof n==`function`?typeof n.prototype?.[a]==`function`:!1}catch{return!1}}__name$1(isNativeStreamUsable$2,`isNativeStreamUsable`),isNativeStreamUsable$2(globalThis.ReadableStream,`getReader`)||(Wi.ReadableStream=hr),Wi.ReadableStreamBYOBReader===void 0&&(Wi.ReadableStreamBYOBReader=ReadableStreamBYOBReader),Wi.ReadableStreamBYOBRequest===void 0&&(Wi.ReadableStreamBYOBRequest=ReadableStreamBYOBRequest),Wi.ReadableByteStreamController===void 0&&(Wi.ReadableByteStreamController=ReadableByteStreamController),Wi.ReadableStreamDefaultController===void 0&&(Wi.ReadableStreamDefaultController=ReadableStreamDefaultController),Wi.ReadableStreamDefaultReader===void 0&&(Wi.ReadableStreamDefaultReader=ReadableStreamDefaultReader);const Gi=globalThis;globalThis.TextEncoderStream===void 0&&(Gi.TextEncoderStream=br),globalThis.TextDecoderStream===void 0&&(Gi.TextDecoderStream=Sr);function isNativeStreamUsable$1(n,a){try{return typeof n==`function`?typeof n.prototype?.[a]==`function`:!1}catch{return!1}}if(__name$1(isNativeStreamUsable$1,`isNativeStreamUsable`),!isNativeStreamUsable$1(globalThis.TransformStream,`readable`)){let n=globalThis;n.TransformStream=_r}function isNativeStreamUsable(n,a){try{return typeof n==`function`?typeof n.prototype?.[a]==`function`:!1}catch{return!1}}if(!isNativeStreamUsable(globalThis.WritableStream,`getWriter`)){let n=globalThis;n.WritableStream=gr}var CryptoKey=class{type;extractable;algorithm;usages;_handle;constructor(n,a,S,C,N){this.type=n,this.extractable=a,this.algorithm=Object.freeze({...S}),this.usages=Object.freeze([...C]),this._handle=N}get[Symbol.toStringTag](){return`CryptoKey`}};function normalizeAlgorithm$1(n){if(typeof n==`string`)return{name:n};if(!n||typeof n.name!=`string`)throw TypeError(`Algorithm must have a name property`);return n}__name$1(normalizeAlgorithm$1,`normalizeAlgorithm`);const Ki={"SHA-1":`sha1`,"SHA-256":`sha256`,"SHA-384":`sha384`,"SHA-512":`sha512`};function toNodeHashName(n){let a=Ki[n.toUpperCase()]||Ki[n];if(!a)throw new _n(`Unrecognized hash name: ${n}`,`NotSupportedError`);return a}const qi={"P-256":`prime256v1`,"P-384":`secp384r1`,"P-521":`secp521r1`};function toNodeCurveName(n){let a=qi[n];if(!a)throw new _n(`Unrecognized curve name: ${n}`,`NotSupportedError`);return a}function hashSize$1(n){switch(toNodeHashName(n)){case`sha1`:return 20;case`sha256`:return 32;case`sha384`:return 48;case`sha512`:return 64;default:throw new _n(`Unsupported hash: ${n}`,`NotSupportedError`)}}__name$1(hashSize$1,`hashSize`);function validateUsages(n,a){for(let S of n)if(!a.includes(S))throw new _n(`Invalid key usage: ${S}`,`SyntaxError`);if(n.length===0)throw new _n(`Key usages must not be empty`,`SyntaxError`)}function checkUsage(n,a){if(!n.usages.includes(a))throw new _n(`Key does not support the '${a}' usage`,`InvalidAccessError`)}const Ji=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Yi=new Uint8Array(128);for(let n=0;n<64;n++)Yi[Ji.charCodeAt(n)]=n;function bytesToBase64$1(n){let a=``,S=n.length;for(let C=0;C<S;C+=3){let N=n[C],F=C+1<S?n[C+1]:0,I=C+2<S?n[C+2]:0;a+=Ji[N>>2&63],a+=Ji[(N<<4|F>>4)&63],a+=C+1<S?Ji[(F<<2|I>>6)&63]:`=`,a+=C+2<S?Ji[I&63]:`=`}return a}__name$1(bytesToBase64$1,`bytesToBase64`);function base64ToBytes(n){let a=n;for(;a.endsWith(`=`);)a=a.slice(0,-1);let S=[],C=0,N=0;for(let n=0;n<a.length;n++)N=N<<6|Yi[a.charCodeAt(n)],C+=6,C>=8&&(C-=8,S.push(N>>C&255));return new Uint8Array(S)}function base64urlEncode(n){return bytesToBase64$1(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function base64urlDecode(n){let a=n.replace(/-/g,`+`).replace(/_/g,`/`);for(;a.length%4;)a+=`=`;return base64ToBytes(a)}function toUint8Array(n){if(n instanceof Uint8Array)return n;if(n instanceof ArrayBuffer)return new Uint8Array(n);if(ArrayBuffer.isView(n))return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);throw TypeError(`Expected BufferSource`)}function gmul(n,a){let S=0;for(let C=0;C<8;C++){a&1&&(S^=n);let C=n&128;n=n<<1&255,C&&(n^=27),a>>=1}return S}function keyExpansion(n){let a=n.length/4,S=a+6,C=4*(S+1),N=Array(C);for(let S=0;S<a;S++)N[S]=new Uint8Array([n[4*S],n[4*S+1],n[4*S+2],n[4*S+3]]);for(let n=a;n<C;n++){let S=new Uint8Array(N[n-1]);n%a===0?S=new Uint8Array([Xi[S[1]]^Qi[n/a-1],Xi[S[2]],Xi[S[3]],Xi[S[0]]]):a>6&&n%a===4&&(S=new Uint8Array([Xi[S[0]],Xi[S[1]],Xi[S[2]],Xi[S[3]]])),N[n]=new Uint8Array(4);for(let C=0;C<4;C++)N[n][C]=N[n-a][C]^S[C]}let F=[];for(let n=0;n<=S;n++){let a=new Uint8Array(16);for(let S=0;S<4;S++)a[4*S]=N[4*n+S][0],a[4*S+1]=N[4*n+S][1],a[4*S+2]=N[4*n+S][2],a[4*S+3]=N[4*n+S][3];F.push(a)}return F}function aesEncryptBlock(n,a){let S=new Uint8Array(n),C=a.length-1;for(let n=0;n<16;n++)S[n]^=a[0][n];for(let n=1;n<C;n++){for(let n=0;n<16;n++)S[n]=Xi[S[n]];let C=S[1];S[1]=S[5],S[5]=S[9],S[9]=S[13],S[13]=C;let N=S[2],F=S[6];S[2]=S[10],S[6]=S[14],S[10]=N,S[14]=F;let I=S[15];S[15]=S[11],S[11]=S[7],S[7]=S[3],S[3]=I;for(let n=0;n<4;n++){let a=n*4,C=S[a],N=S[a+1],F=S[a+2],I=S[a+3];S[a]=gmul(2,C)^gmul(3,N)^F^I,S[a+1]=C^gmul(2,N)^gmul(3,F)^I,S[a+2]=C^N^gmul(2,F)^gmul(3,I),S[a+3]=gmul(3,C)^N^F^gmul(2,I)}for(let C=0;C<16;C++)S[C]^=a[n][C]}for(let n=0;n<16;n++)S[n]=Xi[S[n]];let N=S[1];S[1]=S[5],S[5]=S[9],S[9]=S[13],S[13]=N;let F=S[2],I=S[6];S[2]=S[10],S[6]=S[14],S[10]=F,S[14]=I;let H=S[15];S[15]=S[11],S[11]=S[7],S[7]=S[3],S[3]=H;for(let n=0;n<16;n++)S[n]^=a[C][n];return S}function aesDecryptBlock(n,a){let S=new Uint8Array(n),C=a.length-1;for(let n=0;n<16;n++)S[n]^=a[C][n];for(let n=C-1;n>0;n--){let C=S[13];S[13]=S[9],S[9]=S[5],S[5]=S[1],S[1]=C;let N=S[10],F=S[14];S[10]=S[2],S[14]=S[6],S[2]=N,S[6]=F;let I=S[3];S[3]=S[7],S[7]=S[11],S[11]=S[15],S[15]=I;for(let n=0;n<16;n++)S[n]=Zi[S[n]];for(let C=0;C<16;C++)S[C]^=a[n][C];for(let n=0;n<4;n++){let a=n*4,C=S[a],N=S[a+1],F=S[a+2],I=S[a+3];S[a]=gmul(14,C)^gmul(11,N)^gmul(13,F)^gmul(9,I),S[a+1]=gmul(9,C)^gmul(14,N)^gmul(11,F)^gmul(13,I),S[a+2]=gmul(13,C)^gmul(9,N)^gmul(14,F)^gmul(11,I),S[a+3]=gmul(11,C)^gmul(13,N)^gmul(9,F)^gmul(14,I)}}let N=S[13];S[13]=S[9],S[9]=S[5],S[5]=S[1],S[1]=N;let F=S[10],I=S[14];S[10]=S[2],S[14]=S[6],S[2]=F,S[6]=I;let H=S[3];S[3]=S[7],S[7]=S[11],S[11]=S[15],S[15]=H;for(let n=0;n<16;n++)S[n]=Zi[S[n]];for(let n=0;n<16;n++)S[n]^=a[0][n];return S}function incrementCounter(n){for(let a=15;a>=0&&++n[a]===0;a--);}function gcmIncrementCounter(n){for(let a=15;a>=12&&++n[a]===0;a--);}function gfMul(n,a){let S=new Uint8Array(16),C=new Uint8Array(n);for(let n=0;n<128;n++){if(a[n>>>3]&1<<7-(n&7))for(let n=0;n<16;n++)S[n]^=C[n];let N=C[15]&1;for(let n=15;n>0;n--)C[n]=C[n]>>>1|(C[n-1]&1)<<7;C[0]>>>=1,N&&(C[0]^=225)}return S}function ghash(n,a,S){let C=new Uint8Array(16),N=Math.ceil(a.length/16)||0;for(let S=0;S<N;S++){let N=S*16,F=Math.min(N+16,a.length);for(let n=0;n<16;n++){let S=N+n;S<F&&(C[n]^=a[S])}let I=gfMul(C,n);C.set(I)}let F=Math.ceil(S.length/16)||0;for(let a=0;a<F;a++){let N=a*16,F=Math.min(N+16,S.length);for(let n=0;n<16;n++){let a=N+n;a<F&&(C[n]^=S[a])}let I=gfMul(C,n);C.set(I)}let I=new Uint8Array(16),H=a.length*8,W=S.length*8,K=Math.floor(H/4294967296),q=H>>>0;I[0]=K>>>24&255,I[1]=K>>>16&255,I[2]=K>>>8&255,I[3]=K&255,I[4]=q>>>24&255,I[5]=q>>>16&255,I[6]=q>>>8&255,I[7]=q&255;let Y=Math.floor(W/4294967296),X=W>>>0;I[8]=Y>>>24&255,I[9]=Y>>>16&255,I[10]=Y>>>8&255,I[11]=Y&255,I[12]=X>>>24&255,I[13]=X>>>16&255,I[14]=X>>>8&255,I[15]=X&255;for(let n=0;n<16;n++)C[n]^=I[n];let te=gfMul(C,n);return C.set(te),C}var Xi,Zi,Qi,$i=__esmMin(()=>{Xi=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),Zi=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),Qi=[1,2,4,8,16,32,64,128,27,54]});function parseAlgorithm(n){let a=n.toLowerCase().match(/^aes-(128|192|256)-(cbc|ctr|ecb|cfb|ofb|gcm)$/);if(!a)throw Error(`Unsupported cipher algorithm: ${n}`);let S=parseInt(a[1]),C=a[2];return{keySize:S/8,ivSize:C===`ecb`?0:C===`gcm`?12:16,mode:C}}function toBuffer$2(n,a){return typeof n==`string`?dt.from(n,a||`utf8`):dt.from(n)}function encodeOutput(n,a){return a?dt.from(n).toString(a):dt.from(n)}function incompleteUtf8Tail(n){if(n.length===0)return 0;let a=n.length;for(let S=1;S<=Math.min(4,a);S++){let C=n[a-S];if(!(C&128))return 0;if((C&192)==128)continue;let N;if((C&224)==192)N=2;else if((C&240)==224)N=3;else if((C&248)==240)N=4;else return 0;return S<N?S:0}return 0}function pkcs7Pad(n){let a=16-n.length%16,S=new Uint8Array(n.length+a);S.set(n);for(let C=n.length;C<S.length;C++)S[C]=a;return S}function pkcs7Unpad(n){if(n.length===0||n.length%16!=0)throw Error(`bad decrypt`);let a=n[n.length-1];if(a===0||a>16)throw Error(`bad decrypt`);for(let S=n.length-a;S<n.length;S++)if(n[S]!==a)throw Error(`bad decrypt`);return new Uint8Array(n.slice(0,n.length-a))}var ea=__esmMin(()=>{bt(),__name$1(toBuffer$2,`toBuffer`)});function createCipher(n,a){throw Error(`crypto.createCipher() is deprecated. Use createCipheriv() instead.`)}function createCipheriv(n,a,S){return new Cipher(n,typeof a==`string`?dt.from(a):new Uint8Array(a),S==null?null:typeof S==`string`?dt.from(S):new Uint8Array(S))}function createDecipher(n,a){throw Error(`crypto.createDecipher() is deprecated. Use createDecipheriv() instead.`)}function createDecipheriv(n,a,S){return new Decipher(n,typeof a==`string`?dt.from(a):new Uint8Array(a),S==null?null:typeof S==`string`?dt.from(S):new Uint8Array(S))}function getCiphers(){return[`aes-128-cbc`,`aes-128-ecb`,`aes-192-cbc`,`aes-192-ecb`,`aes-256-cbc`,`aes-256-ecb`,`aes-128-ctr`,`aes-192-ctr`,`aes-256-ctr`,`aes-128-cfb`,`aes-192-cfb`,`aes-256-cfb`,`aes-128-gcm`,`aes-192-gcm`,`aes-256-gcm`]}var CipherBase,Cipher,Decipher,ta=__esmMin(()=>{$i(),ea(),bt(),CipherBase=class{_roundKeys;_iv;_mode;_buffer=new Uint8Array;_autoPadding=!0;_finalized=!1;constructor(n,a,S){let C=parseAlgorithm(n);if(a.length!==C.keySize)throw Error(`Invalid key length ${a.length}, expected ${C.keySize} for ${n}`);if(C.ivSize>0&&(!S||S.length!==C.ivSize))throw Error(`Invalid IV length ${S?.length??0}, expected ${C.ivSize} for ${n}`);this._roundKeys=keyExpansion(a),this._iv=S?new Uint8Array(S):new Uint8Array(16),this._mode=C.mode}setAutoPadding(n){return this._autoPadding=n,this}},Cipher=class extends CipherBase{_prevBlock;_counter;_gcmH=null;_gcmJ0=null;_gcmAAD=new Uint8Array;_gcmCiphertext=[];_gcmCiphertextLen=0;_gcmAuthTag=null;_gcmAADSet=!1;constructor(n,a,S){super(n,a,S),this._prevBlock=new Uint8Array(this._iv),this._mode===`gcm`?(this._gcmH=aesEncryptBlock(new Uint8Array(16),this._roundKeys),this._gcmJ0=new Uint8Array(16),this._gcmJ0.set(this._iv.subarray(0,12)),this._gcmJ0[15]=1,this._counter=new Uint8Array(this._gcmJ0),gcmIncrementCounter(this._counter)):this._counter=new Uint8Array(this._iv)}setAAD(n){if(this._mode!==`gcm`)throw Error(`setAAD is only supported in GCM mode`);if(this._gcmCiphertextLen>0)throw Error(`setAAD must be called before update()`);return this._gcmAAD=new Uint8Array(n),this._gcmAADSet=!0,this}getAuthTag(){if(this._mode!==`gcm`)throw Error(`getAuthTag is only supported in GCM mode`);if(!this._gcmAuthTag)throw Error(`getAuthTag must be called after final()`);return dt.from(this._gcmAuthTag)}update(n,a,S){let C=toBuffer$2(n,a),N=new Uint8Array(this._buffer.length+C.length);if(N.set(this._buffer),N.set(C,this._buffer.length),this._mode===`gcm`){let n=this._processGcmEncrypt(N);return this._buffer=new Uint8Array,encodeOutput(n,S)}if(this._mode===`ctr`||this._mode===`cfb`||this._mode===`ofb`){let n=this._processStream(N);return this._buffer=new Uint8Array,encodeOutput(n,S)}let F=Math.floor(N.length/16)*16,I=[];for(let n=0;n<F;n+=16){let a=N.slice(n,n+16);I.push(this._encryptBlock(a))}this._buffer=N.slice(F);let H=new Uint8Array(I.length*16);for(let n=0;n<I.length;n++)H.set(I[n],n*16);return encodeOutput(H,S)}final(n){if(this._finalized)throw Error(`Cipher already finalized`);if(this._finalized=!0,this._mode===`gcm`){let a=new Uint8Array;this._buffer.length>0&&(a=this._processGcmEncrypt(this._buffer),this._buffer=new Uint8Array);let S=new Uint8Array(this._gcmCiphertextLen),C=0;for(let n of this._gcmCiphertext)S.set(n,C),C+=n.length;let N=ghash(this._gcmH,this._gcmAAD,S),F=aesEncryptBlock(this._gcmJ0,this._roundKeys),I=new Uint8Array(16);for(let n=0;n<16;n++)I[n]=N[n]^F[n];return this._gcmAuthTag=dt.from(I),encodeOutput(a,n)}if(this._mode===`ctr`||this._mode===`cfb`||this._mode===`ofb`){if(this._buffer.length>0){let a=this._processStream(this._buffer);return this._buffer=new Uint8Array,encodeOutput(a,n)}return encodeOutput(new Uint8Array,n)}let a=this._buffer;if(this._autoPadding)a=pkcs7Pad(a);else if(a.length%16!=0)throw Error(`data not multiple of block size`);let S=[];for(let n=0;n<a.length;n+=16)S.push(this._encryptBlock(a.slice(n,n+16)));if(this._buffer=new Uint8Array,S.length===0)return encodeOutput(new Uint8Array,n);let C=new Uint8Array(S.length*16);for(let n=0;n<S.length;n++)C.set(S[n],n*16);return encodeOutput(C,n)}_encryptBlock(n){if(this._mode===`cbc`){let a=new Uint8Array(16);for(let S=0;S<16;S++)a[S]=n[S]^this._prevBlock[S];let S=aesEncryptBlock(a,this._roundKeys);return this._prevBlock=S,S}else if(this._mode===`ecb`)return aesEncryptBlock(n,this._roundKeys);throw Error(`Block encryption not supported for mode: ${this._mode}`)}_processStream(n){let a=new Uint8Array(n.length);for(let S=0;S<n.length;S+=16){let C=aesEncryptBlock(this._counter,this._roundKeys),N=Math.min(16,n.length-S);for(let F=0;F<N;F++)a[S+F]=n[S+F]^C[F];incrementCounter(this._counter)}return a}_processGcmEncrypt(n){let a=new Uint8Array(n.length);for(let S=0;S<n.length;S+=16){let C=aesEncryptBlock(this._counter,this._roundKeys),N=Math.min(16,n.length-S);for(let F=0;F<N;F++)a[S+F]=n[S+F]^C[F];gcmIncrementCounter(this._counter)}return this._gcmCiphertext.push(new Uint8Array(a)),this._gcmCiphertextLen+=a.length,a}},Decipher=class extends CipherBase{_prevBlock;_counter;_pendingUtf8=new Uint8Array;_gcmH=null;_gcmJ0=null;_gcmAAD=new Uint8Array;_gcmCiphertext=[];_gcmCiphertextLen=0;_gcmExpectedTag=null;_gcmAADSet=!1;constructor(n,a,S){super(n,a,S),this._prevBlock=new Uint8Array(this._iv),this._mode===`gcm`?(this._gcmH=aesEncryptBlock(new Uint8Array(16),this._roundKeys),this._gcmJ0=new Uint8Array(16),this._gcmJ0.set(this._iv.subarray(0,12)),this._gcmJ0[15]=1,this._counter=new Uint8Array(this._gcmJ0),gcmIncrementCounter(this._counter)):this._counter=new Uint8Array(this._iv)}setAAD(n){if(this._mode!==`gcm`)throw Error(`setAAD is only supported in GCM mode`);if(this._gcmCiphertextLen>0)throw Error(`setAAD must be called before update()`);return this._gcmAAD=new Uint8Array(n),this._gcmAADSet=!0,this}setAuthTag(n){if(this._mode!==`gcm`)throw Error(`setAuthTag is only supported in GCM mode`);return this._gcmExpectedTag=dt.from(n),this}_encodeWithUtf8Handling(n,a,S){if(!a||a!==`utf8`&&a!==`utf-8`)return encodeOutput(n,a);let C;if(this._pendingUtf8.length>0?(C=new Uint8Array(this._pendingUtf8.length+n.length),C.set(this._pendingUtf8),C.set(n,this._pendingUtf8.length),this._pendingUtf8=new Uint8Array):C=n,!S){let n=incompleteUtf8Tail(C);n>0&&(this._pendingUtf8=new Uint8Array(C.slice(C.length-n)),C=new Uint8Array(C.slice(0,C.length-n)))}return dt.from(C).toString(`utf8`)}update(n,a,S){let C=toBuffer$2(n,a),N=new Uint8Array(this._buffer.length+C.length);if(N.set(this._buffer),N.set(C,this._buffer.length),this._mode===`gcm`){this._gcmCiphertext.push(new Uint8Array(N)),this._gcmCiphertextLen+=N.length;let n=this._processGcmDecrypt(N);return this._buffer=new Uint8Array,this._encodeWithUtf8Handling(n,S,!1)}if(this._mode===`ctr`||this._mode===`cfb`||this._mode===`ofb`){let n=this._processStream(N);return this._buffer=new Uint8Array,this._encodeWithUtf8Handling(n,S,!1)}let F=Math.floor(N.length/16);if(F===0)return this._buffer=N,this._encodeWithUtf8Handling(new Uint8Array,S,!1);let I=(this._autoPadding?F-1:F)*16,H=[];for(let n=0;n<I;n+=16){let a=N.slice(n,n+16);H.push(this._decryptBlock(a))}this._buffer=N.slice(I);let W=new Uint8Array(H.length*16);for(let n=0;n<H.length;n++)W.set(H[n],n*16);return this._encodeWithUtf8Handling(W,S,!1)}final(n){if(this._finalized)throw Error(`Decipher already finalized`);if(this._finalized=!0,this._mode===`gcm`){let a=new Uint8Array;if(this._buffer.length>0&&(this._gcmCiphertext.push(new Uint8Array(this._buffer)),this._gcmCiphertextLen+=this._buffer.length,a=this._processGcmDecrypt(this._buffer),this._buffer=new Uint8Array),!this._gcmExpectedTag)throw Error(`Unsupported state or unable to authenticate data`);let S=new Uint8Array(this._gcmCiphertextLen),C=0;for(let n of this._gcmCiphertext)S.set(n,C),C+=n.length;let N=ghash(this._gcmH,this._gcmAAD,S),F=aesEncryptBlock(this._gcmJ0,this._roundKeys),I=new Uint8Array(16);for(let n=0;n<16;n++)I[n]=N[n]^F[n];let H=this._gcmExpectedTag,W=Math.min(H.length,16),K=0;for(let n=0;n<W;n++)K|=I[n]^H[n];if(K!==0)throw Error(`Unsupported state or unable to authenticate data`);return this._encodeWithUtf8Handling(a,n,!0)}if(this._mode===`ctr`||this._mode===`cfb`||this._mode===`ofb`){if(this._buffer.length>0){let a=this._processStream(this._buffer);return this._buffer=new Uint8Array,this._encodeWithUtf8Handling(a,n,!0)}return this._encodeWithUtf8Handling(new Uint8Array,n,!0)}if(this._buffer.length===0)return this._encodeWithUtf8Handling(new Uint8Array,n,!0);if(this._buffer.length%16!=0)throw Error(`bad decrypt`);let a=[];for(let n=0;n<this._buffer.length;n+=16)a.push(this._decryptBlock(this._buffer.slice(n,n+16)));let S=new Uint8Array(a.length*16);for(let n=0;n<a.length;n++)S.set(a[n],n*16);let C=this._autoPadding?pkcs7Unpad(S):S;return this._buffer=new Uint8Array,this._encodeWithUtf8Handling(C,n,!0)}_decryptBlock(n){if(this._mode===`cbc`){let a=aesDecryptBlock(n,this._roundKeys),S=new Uint8Array(16);for(let n=0;n<16;n++)S[n]=a[n]^this._prevBlock[n];return this._prevBlock=new Uint8Array(n),S}else if(this._mode===`ecb`)return aesDecryptBlock(n,this._roundKeys);throw Error(`Block decryption not supported for mode: ${this._mode}`)}_processStream(n){let a=new Uint8Array(n.length);for(let S=0;S<n.length;S+=16){let C=aesEncryptBlock(this._counter,this._roundKeys),N=Math.min(16,n.length-S);for(let F=0;F<N;F++)a[S+F]=n[S+F]^C[F];incrementCounter(this._counter)}return a}_processGcmDecrypt(n){let a=new Uint8Array(n.length);for(let S=0;S<n.length;S+=16){let C=aesEncryptBlock(this._counter,this._roundKeys),N=Math.min(16,n.length-S);for(let F=0;F<N;F++)a[S+F]=n[S+F]^C[F];gcmIncrementCounter(this._counter)}return a}}}),na,ra=__esmMin(()=>{na={RSA_PKCS1_PADDING:1,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_PKCS1_PSS_PADDING:6,DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8}});function fillRandom(n){if(ia)for(let a=0;a<n.length;a+=65536){let S=Math.min(n.length-a,65536),C=new Uint8Array(n.buffer,n.byteOffset+a,S);globalThis.crypto.getRandomValues(C)}else try{let a=imports.gi.GLib;for(let S=0;S<n.length;S++)n[S]=a.random_int_range(0,256)}catch{for(let a=0;a<n.length;a++)n[a]=Math.floor(Math.random()*256)}}function randomBytes(n,a){if(typeof n!=`number`||n<0||!Number.isInteger(n))throw TypeError(`The "size" argument must be a non-negative integer. Received ${n}`);try{let S=dt.alloc(n);if(n>0&&fillRandom(new Uint8Array(S.buffer,S.byteOffset,S.byteLength)),a)a(null,S);else return S}catch(n){if(a)a(n,dt.alloc(0));else throw n}}function randomFillSync(n,a=0,S){let C=S??n.length-a;if(a<0||a>n.length)throw RangeError(`The value of "offset" is out of range. Received ${a}`);if(C<0||a+C>n.length)throw RangeError(`The value of "size" is out of range. Received ${C}`);if(C>0){let S=(n instanceof dt,n.byteOffset);fillRandom(new Uint8Array(n.buffer,S+a,C))}return n}function randomFill(n,a,S,C){let N,F,I;typeof a==`function`?(I=a,N=0,F=n.length):typeof S==`function`?(I=S,N=a,F=n.length-a):(I=C,N=a,F=S);try{randomFillSync(n,N,F),I(null,n)}catch(a){I(a,n)}}function randomUUID(){if(ia&&typeof globalThis.crypto.randomUUID==`function`)return globalThis.crypto.randomUUID();let n=new Uint8Array(16);fillRandom(n),n[6]=n[6]&15|64,n[8]=n[8]&63|128;let a=Array.from(n,n=>n.toString(16).padStart(2,`0`)).join(``);return`${a.slice(0,8)}-${a.slice(8,12)}-${a.slice(12,16)}-${a.slice(16,20)}-${a.slice(20)}`}function randomInt(n,a,S){let C,N,F;if(typeof a==`function`?(F=a,N=n,C=0):typeof a==`number`?(C=n,N=a,F=S):(N=n,C=0,F=S),!Number.isInteger(C))throw TypeError(`The "min" argument must be a safe integer. Received ${C}`);if(!Number.isInteger(N))throw TypeError(`The "max" argument must be a safe integer. Received ${N}`);if(C>=N)throw RangeError(`The value of "min" must be less than "max". Received min: ${C}, max: ${N}`);let I=N-C,H=new Uint32Array(1);fillRandom(new Uint8Array(H.buffer));let W=C+H[0]%I;if(F)F(null,W);else return W}var ia,aa=__esmMin(()=>{bt(),ia=globalThis.crypto!==void 0&&typeof globalThis.crypto.getRandomValues==`function`});function modPow(n,a,S){if(S===1n)return 0n;n=(n%S+S)%S;let C=1n;for(;a>0n;)a&1n&&(C=C*n%S),a>>=1n,n=n*n%S;return C}function bigIntToBytes(n,a){let S=new Uint8Array(a),C=n;for(let n=a-1;n>=0;n--)S[n]=Number(C&255n),C>>=8n;return S}function bytesToBigInt(n){let a=0n;for(let S=0;S<n.length;S++)a=a<<8n|BigInt(n[S]);return a}var oa=__esmMin(()=>{});function bigIntToBuffer(n){if(n===0n)return dt.from([0]);let a=n.toString(16);return a.length%2!=0&&(a=`0`+a),dt.from(a,`hex`)}function bufferToBigInt(n){if(n.length===0)return 0n;let a=dt.from(n).toString(`hex`);return a.length===0?0n:BigInt(`0x`+a)}function bitLength(n){return n===0n?0:n.toString(2).length}function simpleSieve(n){for(let a of ca){let S=BigInt(a);if(n%S===0n)return n===S}return!0}function fermatTest(n){return modPow(2n,n-1n,n)===1n}function millerRabinTest(n){if(n<2n)return!1;if(n===2n||n===3n)return!0;if(n%2n==0n)return!1;let a=n-1n,S=0;for(;a%2n==0n;)a/=2n,S++;for(let C of[2n,3n,5n,7n,11n,13n]){if(C>=n)continue;let N=modPow(C,a,n);if(N===1n||N===n-1n)continue;let F=!0;for(let a=0;a<S-1;a++)if(N=modPow(N,2n,n),N===n-1n){F=!1;break}if(F)return!1}return!0}function checkPrime(n,a){let S=a.toString(`hex`),C=0;if(n%2n==0n||!simpleSieve(n)||!fermatTest(n)||!millerRabinTest(n))return C+=1,S===`02`||S===`05`?C+=8:C+=4,C;switch(millerRabinTest(n>>1n)||(C+=2),S){case`02`:n%24n!=11n&&(C+=8);break;case`05`:{let a=n%10n;a!==3n&&a!==7n&&(C+=8)}break;default:C+=4}return C}function getCachedCheckPrime(n,a){let S=a.toString(`hex`)+`_`+n.toString(16);if(S in la)return la[S];let C=checkPrime(n,a);return la[S]=C,C}function formatReturnValue$1(n,a){let S=bigIntToBuffer(n);return a?S.toString(a):S}function generatePrime(n,a){let S=bufferToBigInt(a);if(n<16)return S===2n||S===5n?dt.from([140,123]):dt.from([140,39]);let C=Math.ceil(n/8),N=2n,F=4n;for(;;){let a=bufferToBigInt(randomBytes(C));for(;bitLength(a)>n;)a>>=1n;if(a%N==0n&&(a+=1n),a&N||(a+=N),S===N)for(;a%24n!=11n;)a+=F;else if(S===5n)for(;a%10n!=3n;)a+=F;let I=a>>1n;if(simpleSieve(I)&&simpleSieve(a)&&fermatTest(I)&&fermatTest(a)&&millerRabinTest(I)&&millerRabinTest(a))return bigIntToBuffer(a)}}function createDiffieHellman(n,a,S,C){if(a!==void 0&&typeof a!=`number`&&(dt.isBuffer(a)||a instanceof Uint8Array||typeof a==`string`&&!(a in ua)))return createDiffieHellman(n,`binary`,a,S);let N=a||`binary`,F=C||`binary`,I=dt.from([2]);if(S!==void 0&&(typeof S==`number`?(I=dt.alloc(1),I[0]=S):I=dt.isBuffer(S)?S:dt.from(S,F)),typeof n==`number`)return new DiffieHellman(generatePrime(n,I),I,!0);let H;return H=dt.isBuffer(n)?n:n instanceof Uint8Array?dt.from(n):dt.from(n,N),new DiffieHellman(H,I,!0)}function getDiffieHellman(n){let a=sa[n];if(!a)throw Error(`Unknown group: ${n}. Supported groups: ${Object.keys(sa).join(`, `)}`);return new DiffieHellman(dt.from(a.prime,`hex`),dt.from(a.gen,`hex`),!1)}var sa,ca,la,DiffieHellman,ua,da,fa,pa=__esmMin(()=>{oa(),aa(),bt(),sa={modp1:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff`},modp2:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff`},modp5:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff`},modp14:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff`},modp15:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff`},modp16:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff`},modp17:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff`},modp18:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff`}},ca=[];{let n=1e3,a=new Uint8Array(1001);for(let S=2;S*S<=n;S++)if(!a[S])for(let C=S*S;C<=n;C+=S)a[C]=1;for(let S=2;S<=n;S++)a[S]||ca.push(S)}la={},__name$1(formatReturnValue$1,`formatReturnValue`),DiffieHellman=class{_prime;_generator;_generatorBuf;_primeByteLength;_pubKey;_privKey;_primeCode;_malleable;constructor(n,a,S=!1){this._prime=bufferToBigInt(n),this._generatorBuf=a,this._generator=bufferToBigInt(a),this._primeByteLength=n.length,this._pubKey=void 0,this._privKey=void 0,this._primeCode=void 0,this._malleable=S,S||(this._primeCode=0,this.setPublicKey=void 0,this.setPrivateKey=void 0)}get verifyError(){return typeof this._primeCode!=`number`&&(this._primeCode=getCachedCheckPrime(this._prime,this._generatorBuf)),this._primeCode}generateKeys(n){if(!this._privKey){let n=randomBytes(this._primeByteLength);this._privKey=bufferToBigInt(n)}return this._pubKey=modPow(this._generator,this._privKey,this._prime),this.getPublicKey(n)}computeSecret(n,a,S){let C;C=typeof n==`string`?dt.from(n,a||`utf8`):dt.from(n);let N=bufferToBigInt(C);if(!this._privKey)throw Error(`You must generate keys before computing a secret`);if(N<=0n||N>=this._prime)throw Error(`Supplied key is too large`);let F=bigIntToBuffer(modPow(N,this._privKey,this._prime)),I=this._primeByteLength;if(F.length<I){let n=dt.alloc(I);F.copy(n,I-F.length),F=n}return S?F.toString(S):F}getPrime(n){return formatReturnValue$1(this._prime,n)}getGenerator(n){return formatReturnValue$1(this._generator,n)}getPublicKey(n){if(!this._pubKey)throw Error(`No public key - call generateKeys() first`);return formatReturnValue$1(this._pubKey,n)}getPrivateKey(n){if(!this._privKey)throw Error(`No private key - call generateKeys() first`);return formatReturnValue$1(this._privKey,n)}setPublicKey(n,a){if(!this._malleable)throw Error(`setPublicKey is not available for predefined DH groups`);let S=typeof n==`string`?dt.from(n,a||`utf8`):dt.from(n);this._pubKey=bufferToBigInt(S)}setPrivateKey(n,a){if(!this._malleable)throw Error(`setPrivateKey is not available for predefined DH groups`);let S=typeof n==`string`?dt.from(n,a||`utf8`):dt.from(n);this._privKey=bufferToBigInt(S)}},ua={binary:!0,hex:!0,base64:!0,latin1:!0,utf8:!0,"utf-8":!0,base64url:!0,ascii:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0},da=getDiffieHellman,fa=getDiffieHellman});function mod(n,a){let S=n%a;return S<0n?S+a:S}function modInverse$2(n,a){if(n=mod(n,a),n===0n)throw Error(`No modular inverse for zero`);let[S,C]=[n,a],[N,F]=[1n,0n];for(;C!==0n;){let n=S/C;[S,C]=[C,S-n*C],[N,F]=[F,N-n*F]}if(S!==1n)throw Error(`Modular inverse does not exist`);return mod(N,a)}function pointAdd(n,a,S){if(n===null)return a;if(a===null)return n;let{p:C}=S;if(n.x===a.x)return mod(n.y+a.y,C)===0n?null:pointDouble(n,S);let N=mod(a.x-n.x,C),F=mod(mod(a.y-n.y,C)*modInverse$2(N,C),C),I=mod(F*F-n.x-a.x,C);return{x:I,y:mod(F*(n.x-I)-n.y,C)}}function pointDouble(n,a){if(n===null)return null;let{a:S,p:C}=a;if(n.y===0n)return null;let N=mod(mod(3n*n.x*n.x+S,C)*modInverse$2(mod(2n*n.y,C),C),C),F=mod(N*N-2n*n.x,C);return{x:F,y:mod(N*(n.x-F)-n.y,C)}}function scalarMul(n,a,S){if(a===null||n===0n)return null;let{n:C}=S;if(n=mod(n,C),n===0n)return null;let N=null,F=a,I=n.toString(2);for(let n=0;n<I.length;n++)I[n]===`1`?(N=pointAdd(N,F,S),F=pointDouble(F,S)):(F=pointAdd(N,F,S),N=pointDouble(N,S));return N}function bigintToBuffer(n,a){let S=n.toString(16).padStart(a*2,`0`);return dt.from(S,`hex`)}function bufferToBigint(n){let a=dt.from(n).toString(`hex`);return a.length===0?0n:BigInt(`0x`+a)}function encodePublicKey(n,a,S=`uncompressed`){if(n===null)throw Error(`Cannot encode the point at infinity`);let C=bigintToBuffer(n.x,a);if(S===`compressed`){let a=n.y%2n==0n?2:3;return dt.concat([dt.from([a]),C])}let N=bigintToBuffer(n.y,a);if(S===`hybrid`){let a=n.y%2n==0n?6:7;return dt.concat([dt.from([a]),C,N])}return dt.concat([dt.from([4]),C,N])}function decodePublicKey(n,a){let S=dt.from(n);if(S.length===0)throw Error(`Invalid public key: empty buffer`);let C=S[0],{p:N,a:F,b:I,byteLength:H}=a;if(C===4||C===6||C===7){if(S.length!==1+2*H)throw Error(`Invalid public key length: expected ${1+2*H} bytes, got ${S.length}`);let n=bufferToBigint(S.subarray(1,1+H)),a=bufferToBigint(S.subarray(1+H));if(mod(a*a,N)!==mod(n*n*n+F*n+I,N))throw Error(`Invalid public key: point is not on the curve`);return{x:n,y:a}}if(C===2||C===3){if(S.length!==1+H)throw Error(`Invalid public key length: expected ${1+H} bytes, got ${S.length}`);let n=bufferToBigint(S.subarray(1,1+H)),a=sqrtMod(mod(n*n*n+F*n+I,N),N);if(a===null)throw Error(`Invalid public key: no valid y coordinate for the given x`);let W=C===3;return{x:n,y:a%2n!=0n===W?a:mod(N-a,N)}}throw Error(`Invalid public key prefix: 0x${C.toString(16).padStart(2,`0`)}`)}function sqrtMod(n,a){if(n=mod(n,a),n===0n)return 0n;if(modPow(n,(a-1n)/2n,a)!==1n)return null;if(mod(a,4n)===3n)return modPow(n,(a+1n)/4n,a);let S=0n,C=a-1n;for(;mod(C,2n)===0n;)C/=2n,S++;let N=2n;for(;modPow(N,(a-1n)/2n,a)!==a-1n;)N++;let F=S,I=modPow(N,C,a),H=modPow(n,C,a),W=modPow(n,(C+1n)/2n,a);for(;;){if(H===0n)return 0n;if(H===1n)return W;let n=1n,S=mod(H*H,a);for(;S!==1n;)S=mod(S*S,a),n++;let C=modPow(I,modPow(2n,F-n-1n,a-1n),a);F=n,I=mod(C*C,a),H=mod(H*I,a),W=mod(W*C,a)}}function toBuffer$1(n,a){if(dt.isBuffer(n))return n;if(n instanceof Uint8Array)return dt.from(n);if(typeof n==`string`)return dt.from(n,a||`utf8`);if(ArrayBuffer.isView(n))return dt.from(n.buffer,n.byteOffset,n.byteLength);throw TypeError(`The "key" argument must be of type string or an instance of Buffer, TypedArray, or DataView.`)}function formatReturnValue(n,a){return a?n.toString(a):n}function resolveCurve(n){let a=ha[n.toLowerCase()];if(!a)throw Error(`Unsupported curve: ${n}`);let S=ma[a];if(!S)throw Error(`Unsupported curve: ${n}`);return{canonical:a,params:S}}function createECDH(n){return new ECDH(n)}function getCurves(){return[`secp256k1`,`prime256v1`,`secp256r1`,`secp384r1`,`secp521r1`]}var ma,ha,ECDH,ga=__esmMin(()=>{oa(),aa(),bt(),ma={secp256k1:{p:115792089237316195423570985008687907853269984665640564039457584007908834671663n,a:0n,b:7n,Gx:55066263022277343669578718895168534326250603453777594175500187360389116729240n,Gy:32670510020758816978083085130507043184471273380659243275938904335757337482424n,n:115792089237316195423570985008687907852837564279074904382605163141518161494337n,byteLength:32},prime256v1:{p:115792089210356248762697446949407573530086143415290314195533631308867097853951n,a:115792089210356248762697446949407573530086143415290314195533631308867097853951n-3n,b:41058363725152142129326129780047268409114441015993725554835256314039467401291n,Gx:48439561293906451759052585252797914202762949526041747995844080717082404635286n,Gy:36134250956749795798585127919587881956611106672985015071877198253568414405109n,n:115792089210356248762697446949407573529996955224135760342422259061068512044369n,byteLength:32},secp384r1:{p:39402006196394479212279040100143613805079739270465446667948293404245721771496870329047266088258938001861606973112319n,a:39402006196394479212279040100143613805079739270465446667948293404245721771496870329047266088258938001861606973112319n-3n,b:27580193559959705877849011840389048093056905856361568521428707301988689241309860865136260764883745107765439761230575n,Gx:26247035095799689268623156744566981891852923491109213387815615900925518854738050089022388053975719786650872476732087n,Gy:8325710961489029985546751289520108179287853048861315594709205902480503199884419224438643760392947333078086511627871n,n:39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643n,byteLength:48},secp521r1:{p:6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151n,a:6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151n-3n,b:1093849038073734274511112390766805569936207598951683748994586394495953116150735016013708737573759623248592132296706313309438452531591012912142327488478985984n,Gx:2661740802050217063228768716723360960729859168756973147706671368418802944996427808491545080627771902352094241225065558662157113545570916814161637315895999846n,Gy:3757180025770020463545507224491183603594455134769762486694567779615544477440556316691234405012945539562144444537289428522585666729196580810124344277578376784n,n:6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449n,byteLength:66}},ha={secp256k1:`secp256k1`,prime256v1:`prime256v1`,secp256r1:`prime256v1`,"p-256":`prime256v1`,p256:`prime256v1`,secp384r1:`secp384r1`,"p-384":`secp384r1`,p384:`secp384r1`,secp521r1:`secp521r1`,"p-521":`secp521r1`,p521:`secp521r1`},__name$1(modInverse$2,`modInverse`),__name$1(toBuffer$1,`toBuffer`),ECDH=class{_curve;_curveName;_privateKey=null;_publicKey=null;constructor(n){let a=resolveCurve(n);this._curve=a.params,this._curveName=a.canonical}generateKeys(n,a){let{n:S,byteLength:C}=this._curve,N;do N=bufferToBigint(randomBytes(C));while(N===0n||N>=S);this._privateKey=N;let F={x:this._curve.Gx,y:this._curve.Gy};return this._publicKey=scalarMul(N,F,this._curve),this.getPublicKey(n,a)}computeSecret(n,a,S){if(this._privateKey===null)throw Error(`ECDH key not generated. Call generateKeys() or setPrivateKey() first.`);let C=decodePublicKey(toBuffer$1(n,a),this._curve);if(C===null)throw Error(`Invalid public key: point at infinity`);let N=scalarMul(this._privateKey,C,this._curve);if(N===null)throw Error(`Shared secret computation resulted in the point at infinity`);return formatReturnValue(bigintToBuffer(N.x,this._curve.byteLength),S)}getPublicKey(n,a){if(this._publicKey===null)throw Error(`ECDH key not generated. Call generateKeys() or setPrivateKey() first.`);return formatReturnValue(encodePublicKey(this._publicKey,this._curve.byteLength,a||`uncompressed`),n)}getPrivateKey(n){if(this._privateKey===null)throw Error(`ECDH key not generated. Call generateKeys() or setPrivateKey() first.`);return formatReturnValue(bigintToBuffer(this._privateKey,this._curve.byteLength),n)}setPublicKey(n,a){let S=toBuffer$1(n,a);this._publicKey=decodePublicKey(S,this._curve)}setPrivateKey(n,a){let S=bufferToBigint(toBuffer$1(n,a));if(S===0n||S>=this._curve.n)throw Error(`Private key is out of range [1, n-1]`);this._privateKey=S;let C={x:this._curve.Gx,y:this._curve.Gy};this._publicKey=scalarMul(S,C,this._curve)}}});function normalizeAlgorithm(n){return n.toLowerCase().replace(/-/g,``)}function hashSize(n){let a=_a[normalizeAlgorithm(n)];if(a===void 0)throw Error(`Unknown hash algorithm: ${n}`);return a}function toBuffer(n,a){return typeof n==`string`?dt.from(n,a||`utf8`):n instanceof DataView?dt.from(n.buffer,n.byteOffset,n.byteLength):(n instanceof ArrayBuffer,dt.from(n))}var _a,va,ya,ba=__esmMin(()=>{bt(),_a={md5:16,sha1:20,sha256:32,sha384:48,sha512:64},va={md5:64,sha1:64,sha256:64,sha384:128,sha512:128},ya=new Set([`md5`,`sha1`,`sha256`,`sha384`,`sha512`])});function getChecksumType(n){let a=xa[normalizeAlgorithm(n)];if(a===void 0){let a=Error(`Unknown message digest: ${n}`);throw a.code=`ERR_CRYPTO_HASH_UNKNOWN`,a}return a}function getHashes(){return[`md5`,`sha1`,`sha256`,`sha384`,`sha512`]}function hash(n,a,S){return new Sa(n).update(a).digest(S)}var xa,Sa,Ca=__esmMin(()=>{ba(),bt(),se(),Jr(),xa={md5:Z.ChecksumType.MD5,sha1:Z.ChecksumType.SHA1,sha256:Z.ChecksumType.SHA256,sha384:Z.ChecksumType.SHA384,sha512:Z.ChecksumType.SHA512},Sa=class Hash extends Gr{_algorithm;_checksum;_finalized=!1;constructor(n){super();let a=normalizeAlgorithm(n),S=getChecksumType(a);this._algorithm=a,this._checksum=new Z.Checksum(S)}update(n,a){if(this._finalized)throw Error(`Digest already called`);let S;if(typeof n==`string`){let C=normalizeEncoding(a);S=dt.from(n,C)}else S=n instanceof Uint8Array?n:dt.from(n);return this._checksum.update(S),this}digest(n){if(this._finalized)throw Error(`Digest already called`);this._finalized=!0;let a=this._checksum.get_string(),S=dt.from(a,`hex`);return n?S.toString(n):S}copy(){if(this._finalized)throw Error(`Digest already called`);let n=Object.create(Hash.prototype);return Gr.call(n),n._algorithm=this._algorithm,n._finalized=!1,n._checksum=this._checksum.copy(),n}_transform(n,a,S){try{this.update(n,a),S()}catch(n){S(n)}}_flush(n){try{this.push(this.digest()),n()}catch(a){n(a)}}}}),Hmac,wa=__esmMin(()=>{ba(),Ca(),bt(),Jr(),Hmac=class extends Gr{_algorithm;_innerHash;_outerKeyPad;_finalized=!1;constructor(n,a){super();let S=normalizeAlgorithm(n);if(!ya.has(S)){let a=Error(`Unknown message digest: ${n}`);throw a.code=`ERR_CRYPTO_HASH_UNKNOWN`,a}this._algorithm=S;let C;C=typeof a==`string`?dt.from(a,`utf8`):a instanceof Uint8Array?a:dt.from(a);let N=va[S];if(C.length>N){let n=new Sa(S);n.update(C),C=n.digest()}let F=new Uint8Array(N);F.set(C);let I=new Uint8Array(N),H=new Uint8Array(N);for(let n=0;n<N;n++)I[n]=F[n]^54,H[n]=F[n]^92;this._outerKeyPad=H,this._innerHash=new Sa(S),this._innerHash.update(I)}update(n,a){if(this._finalized)throw Error(`Digest already called`);let S;if(typeof n==`string`){let C=normalizeEncoding(a);S=dt.from(n,C)}else S=n instanceof Uint8Array?n:dt.from(n);return this._innerHash.update(S),this}digest(n){if(this._finalized)throw Error(`Digest already called`);this._finalized=!0;let a=this._innerHash.digest(),S=new Sa(this._algorithm);S.update(this._outerKeyPad),S.update(a);let C=S.digest();return n?C.toString(n):C}_transform(n,a,S){try{this.update(n,a),S()}catch(n){S(n)}}_flush(n){try{this.push(this.digest()),n()}catch(a){n(a)}}}});function getCurve(n){let a=ha[n.toLowerCase()];if(!a)throw Error(`Unsupported curve: ${n}`);return ma[a]}function truncateHash(n,a){let S=a.n.toString(2).length,C=bytesToBigInt(n),N=n.length*8;return N>S&&(C>>=BigInt(N-S)),C}function hmacDigest$2(n,a,S){let C=new Hmac(n,a);return C.update(S),new Uint8Array(C.digest())}function rfc6979(n,a,S,C){let N=C.byteLength,F=S.length,I=new Uint8Array(F).fill(1),H=new Uint8Array(F).fill(0),W=bigIntToBytes(a,N),K=bigIntToBytes(mod(truncateHash(S,C),C.n),N),q=new Uint8Array(F+1+N+N);q.set(I,0),q[F]=0,q.set(W,F+1),q.set(K,F+1+N),H=hmacDigest$2(n,H,q),I=hmacDigest$2(n,H,I);let Y=new Uint8Array(F+1+N+N);Y.set(I,0),Y[F]=1,Y.set(W,F+1),Y.set(K,F+1+N),H=hmacDigest$2(n,H,Y),I=hmacDigest$2(n,H,I);for(let a=0;a<100;a++){let a=new Uint8Array;for(;a.length<N;){I=hmacDigest$2(n,H,I);let S=new Uint8Array(a.length+I.length);S.set(a,0),S.set(I,a.length),a=S}let S=truncateHash(a.slice(0,N),C);if(S>=1n&&S<C.n)return S;let W=new Uint8Array(F+1);W.set(I,0),W[F]=0,H=hmacDigest$2(n,H,W),I=hmacDigest$2(n,H,I)}throw Error(`RFC 6979: failed to generate valid k after 100 attempts`)}function ecdsaSign(n,a,S,C){let N=getCurve(C),F={x:N.Gx,y:N.Gy},I=bytesToBigInt(a),H=new Sa(n);H.update(S);let W=new Uint8Array(H.digest()),K=truncateHash(W,N),q=rfc6979(n,I,W,N),Y=scalarMul(q,F,N);if(Y===null)throw Error(`ECDSA: k * G is point at infinity`);let X=mod(Y.x,N.n);if(X===0n)throw Error(`ECDSA: r is zero`);let te=mod(modInverse$2(q,N.n)*(K+X*I),N.n);if(te===0n)throw Error(`ECDSA: s is zero`);let ne=N.byteLength,re=new Uint8Array(ne*2);return re.set(bigIntToBytes(X,ne),0),re.set(bigIntToBytes(te,ne),ne),re}function ecdsaVerify(n,a,S,C,N){let F=getCurve(N),I={x:F.Gx,y:F.Gy},H=F.byteLength;if(a[0]!==4||a.length!==1+H*2)return!1;let W={x:bytesToBigInt(a.slice(1,1+H)),y:bytesToBigInt(a.slice(1+H))};if(S.length!==H*2)return!1;let K=bytesToBigInt(S.slice(0,H)),q=bytesToBigInt(S.slice(H));if(K<1n||K>=F.n||q<1n||q>=F.n)return!1;let Y=new Sa(n);Y.update(C);let X=truncateHash(new Uint8Array(Y.digest()),F),te=modInverse$2(q,F.n),ne=mod(X*te,F.n),re=mod(K*te,F.n),ie=pointAdd(scalarMul(ne,I,F),scalarMul(re,W,F),F);return ie===null?!1:mod(ie.x,F.n)===K}var Ta=__esmMin(()=>{oa(),ga(),Ca(),wa(),__name$1(hmacDigest$2,`hmacDigest`)});function hmacDigest$1(n,a,S){let C=new Hmac(n,a);return C.update(S),C.digest()}function hkdfExtract(n,a,S){return hmacDigest$1(n,S,a)}function hkdfExpand(n,a,S,C,N){let F=Math.ceil(C/N);if(F>255)throw Error(`HKDF cannot generate more than 255 * HashLen bytes`);let I=dt.allocUnsafe(F*N),H=dt.alloc(0);for(let C=1;C<=F;C++)H=hmacDigest$1(n,a,dt.concat([H,S,dt.from([C])])),H.copy(I,(C-1)*N);return dt.from(I.buffer,I.byteOffset,C)}function hkdfSync(n,a,S,C,N){let F=normalizeAlgorithm(n),I=_a[F];if(!ya.has(F)||I===void 0)throw TypeError(`Unknown message digest: ${n}`);if(typeof N!=`number`||N<0)throw TypeError(`keylen must be a non-negative number`);let H=toBuffer(a),W=toBuffer(S),K=toBuffer(C),q=hkdfExpand(F,hkdfExtract(F,H,W.length===0?dt.alloc(I,0):W),K,N,I),Y=new ArrayBuffer(q.length);return new Uint8Array(Y).set(q),Y}function hkdf(n,a,S,C,N,F){setTimeout(()=>{try{F(null,hkdfSync(n,a,S,C,N))}catch(n){F(n instanceof Error?n:Error(String(n)))}},0)}var Ea=__esmMin(()=>{ba(),wa(),bt(),__name$1(hmacDigest$1,`hmacDigest`)});function timingSafeEqual(n,a){if(n.length!==a.length)throw RangeError(`Input buffers must have the same byte length`);let S=0;for(let C=0;C<n.length;C++)S|=n[C]^a[C];return S===0}var Da=__esmMin(()=>{});function hmacDigest(n,a,S){let C=new Hmac(n,a);return C.update(S),C.digest()}function validateParameters(n,a){if(typeof n!=`number`||n<0||!Number.isFinite(n)||n===0)throw TypeError(`iterations must be a positive number`);if(typeof a!=`number`||a<0||!Number.isFinite(a)||a>2147483647)throw TypeError(`keylen must be a positive number`)}function pbkdf2Sync(n,a,S,C,N){validateParameters(S,C);let F=toBuffer(n),I=toBuffer(a),H=normalizeAlgorithm(N||`sha1`),W=_a[H];if(!ya.has(H)||W===void 0)throw TypeError(`Unknown message digest: ${N||`sha1`}`);if(C===0)return dt.alloc(0);let K=Math.ceil(C/W),q=dt.allocUnsafe(K*W);for(let n=1;n<=K;n++){let a=dt.allocUnsafe(I.length+4);I.copy(a,0),a.writeUInt32BE(n,I.length);let C=hmacDigest(H,F,a),N=dt.from(C);for(let n=1;n<S;n++){C=hmacDigest(H,F,C);for(let n=0;n<W;n++)N[n]^=C[n]}N.copy(q,(n-1)*W)}return dt.from(q.buffer,q.byteOffset,C)}function pbkdf2(n,a,S,C,N,F){try{validateParameters(S,C)}catch(n){throw n}setTimeout(()=>{try{F(null,pbkdf2Sync(n,a,S,C,N))}catch(n){F(n instanceof Error?n:Error(String(n)))}},0)}var Oa=__esmMin(()=>{ba(),wa(),bt()});function R$2(n,a){return(n<<a|n>>>32-a)>>>0}function salsa20_8(n){let a=new Uint32Array(16);for(let S=0;S<16;S++)a[S]=n[S];for(let n=0;n<4;n++)a[4]^=R$2(a[0]+a[12],7),a[8]^=R$2(a[4]+a[0],9),a[12]^=R$2(a[8]+a[4],13),a[0]^=R$2(a[12]+a[8],18),a[9]^=R$2(a[5]+a[1],7),a[13]^=R$2(a[9]+a[5],9),a[1]^=R$2(a[13]+a[9],13),a[5]^=R$2(a[1]+a[13],18),a[14]^=R$2(a[10]+a[6],7),a[2]^=R$2(a[14]+a[10],9),a[6]^=R$2(a[2]+a[14],13),a[10]^=R$2(a[6]+a[2],18),a[3]^=R$2(a[15]+a[11],7),a[7]^=R$2(a[3]+a[15],9),a[11]^=R$2(a[7]+a[3],13),a[15]^=R$2(a[11]+a[7],18),a[1]^=R$2(a[0]+a[3],7),a[2]^=R$2(a[1]+a[0],9),a[3]^=R$2(a[2]+a[1],13),a[0]^=R$2(a[3]+a[2],18),a[6]^=R$2(a[5]+a[4],7),a[7]^=R$2(a[6]+a[5],9),a[4]^=R$2(a[7]+a[6],13),a[5]^=R$2(a[4]+a[7],18),a[11]^=R$2(a[10]+a[9],7),a[8]^=R$2(a[11]+a[10],9),a[9]^=R$2(a[8]+a[11],13),a[10]^=R$2(a[9]+a[8],18),a[12]^=R$2(a[15]+a[14],7),a[13]^=R$2(a[12]+a[15],9),a[14]^=R$2(a[13]+a[12],13),a[15]^=R$2(a[14]+a[13],18);for(let S=0;S<16;S++)n[S]=n[S]+a[S]>>>0}function blockMix(n,a){let S=2*a*16,C=new Uint32Array(16);for(let a=0;a<16;a++)C[a]=n[S-16+a];let N=new Uint32Array(S);for(let S=0;S<2*a;S++){for(let a=0;a<16;a++)C[a]^=n[S*16+a];salsa20_8(C);for(let n=0;n<16;n++)N[S*16+n]=C[n]}for(let S=0;S<a;S++)for(let a=0;a<16;a++)n[S*16+a]=N[2*S*16+a];for(let S=0;S<a;S++)for(let C=0;C<16;C++)n[(a+S)*16+C]=N[(2*S+1)*16+C]}function roMix(n,a,S){let C=2*S*16,N=Array(a);for(let C=0;C<a;C++)N[C]=new Uint32Array(n),blockMix(n,S);for(let F=0;F<a;F++){let F=n[C-16]&a-1;for(let a=0;a<C;a++)n[a]^=N[F][a];blockMix(n,S)}}function bytesToWords(n){let a=new Uint32Array(n.length/4);for(let S=0;S<a.length;S++)a[S]=n[S*4]|n[S*4+1]<<8|n[S*4+2]<<16|n[S*4+3]<<24;return a}function wordsToBytes(n){let a=new Uint8Array(n.length*4);for(let S=0;S<n.length;S++)a[S*4]=n[S]&255,a[S*4+1]=n[S]>>8&255,a[S*4+2]=n[S]>>16&255,a[S*4+3]=n[S]>>24&255;return a}function scryptCore(n,a,S,C,N,F){let I=128*C,H=pbkdf2Sync(n,a,1,N*I,`sha256`);for(let n=0;n<N;n++){let a=new Uint8Array(H.buffer,H.byteOffset+n*I,I),N=bytesToWords(a);roMix(N,S,C);let F=wordsToBytes(N);a.set(F)}return pbkdf2Sync(n,H,1,F,`sha256`)}function scryptSync(n,a,S,C){let N=dt.from(n),F=dt.from(a),I=C?.N??16384,H=C?.r??8,W=C?.p??1;if(I<=0||I&I-1)throw Error(`N must be a positive power of 2`);return scryptCore(N,F,I,H,W,S)}function scrypt(n,a,S,C,N){let F={},I;typeof C==`function`?I=C:(F=C,I=N);try{let C=scryptSync(n,a,S,F);setTimeout(()=>I(null,C),0)}catch(n){setTimeout(()=>I(n instanceof Error?n:Error(String(n)),dt.alloc(0)),0)}}var ka=__esmMin(()=>{Oa(),bt(),__name$1(R$2,`R`)});function pemToDer(n){let a=n.trim().split(/\r?\n/),S=a.findIndex(n=>n.startsWith(`-----BEGIN `));if(S===-1)throw Error(`Invalid PEM: no BEGIN line found`);let C=a[S].match(/^-----BEGIN (.+)-----$/);if(!C)throw Error(`Invalid PEM header format`);let N=C[1],F=a.findIndex((n,a)=>a>S&&n.startsWith(`-----END `));if(F===-1)throw Error(`Invalid PEM: no END line found`);let I=a.slice(S+1,F).join(``),H=dt.from(I,`base64`);return{type:N,der:new Uint8Array(H.buffer,H.byteOffset,H.byteLength)}}function parseTlv(n,a){if(a>=n.length)throw Error(`ASN.1 parse error: unexpected end of data`);let S=n[a++],C,N=n[a++];if(N<128)C=N;else{let S=N&127;if(S===0)throw Error(`ASN.1 parse error: indefinite length not supported`);C=0;for(let N=0;N<S;N++)C=C<<8|n[a++]}let F=n.slice(a,a+C),I=a+C,H={tag:S,data:F};return S===48&&(H.children=parseSequenceChildren(F)),{value:H,next:I}}function parseSequenceChildren(n){let a=[],S=0;for(;S<n.length;){let{value:C,next:N}=parseTlv(n,S);a.push(C),S=N}return a}function parseDer(n){let{value:a}=parseTlv(n,0);return a}function integerToBigInt(n){let a=0;for(;a<n.length-1&&n[a]===0;)a++;let S=0n;for(let C=a;C<n.length;C++)S=S<<8n|BigInt(n[C]);return S}function oidsEqual(n,a){if(n.length!==a.length)return!1;for(let S=0;S<n.length;S++)if(n[S]!==a[S])return!1;return!0}function parseRsaPublicKeyPkcs1(n){let a=n.children;if(!a||a.length<2)throw Error(`Invalid PKCS#1 RSAPublicKey structure`);return{n:integerToBigInt(a[0].data),e:integerToBigInt(a[1].data)}}function parseRsaPrivateKeyPkcs1(n){let a=n.children;if(!a||a.length<6)throw Error(`Invalid PKCS#1 RSAPrivateKey structure`);return{n:integerToBigInt(a[1].data),e:integerToBigInt(a[2].data),d:integerToBigInt(a[3].data),p:integerToBigInt(a[4].data),q:integerToBigInt(a[5].data)}}function parseSubjectPublicKeyInfo(n){let a=n.children;if(!a||a.length<2)throw Error(`Invalid SubjectPublicKeyInfo structure`);let S=a[0];if(!S.children||S.children.length<1)throw Error(`Invalid AlgorithmIdentifier`);let C=S.children[0];if(C.tag!==6||!oidsEqual(C.data,Aa))throw Error(`Unsupported algorithm: only RSA is supported`);let N=a[1];if(N.tag!==3)throw Error(`Expected BIT STRING for public key data`);return parseRsaPublicKeyPkcs1(parseDer(N.data.slice(1)))}function parsePrivateKeyInfo(n){let a=n.children;if(!a||a.length<3)throw Error(`Invalid PrivateKeyInfo structure`);let S=a[1];if(!S.children||S.children.length<1)throw Error(`Invalid AlgorithmIdentifier`);let C=S.children[0];if(C.tag!==6||!oidsEqual(C.data,Aa))throw Error(`Unsupported algorithm: only RSA is supported`);let N=a[2];if(N.tag!==4)throw Error(`Expected OCTET STRING for private key data`);return parseRsaPrivateKeyPkcs1(parseDer(N.data))}function encodeLength(n){if(n<128)return new Uint8Array([n]);let a=[],S=n;for(;S>0;)a.unshift(S&255),S>>=8;return new Uint8Array([128|a.length,...a])}function encodeTlv(n,a){let S=encodeLength(a.length),C=new Uint8Array(1+S.length+a.length);return C[0]=n,C.set(S,1),C.set(a,1+S.length),C}function bigintToAsn1Integer(n){if(n===0n)return encodeTlv(2,new Uint8Array([0]));let a=n.toString(16),S=a.length%2?`0`+a:a,C=[];for(let n=0;n<S.length;n+=2)C.push(parseInt(S.substring(n,n+2),16));return C[0]&128&&C.unshift(0),encodeTlv(2,new Uint8Array(C))}function encodeSequence(n){let a=0;for(let S of n)a+=S.length;let S=new Uint8Array(a),C=0;for(let a of n)S.set(a,C),C+=a.length;return encodeTlv(48,S)}function encodeBitString(n){let a=new Uint8Array(1+n.length);return a[0]=0,a.set(n,1),encodeTlv(3,a)}function encodeOctetString(n){return encodeTlv(4,n)}function encodeOid(n){return encodeTlv(6,n)}function encodeNull(){return new Uint8Array([5,0])}function encodeRsaPublicKeyPkcs1(n){return encodeSequence([bigintToAsn1Integer(n.n),bigintToAsn1Integer(n.e)])}function encodeSubjectPublicKeyInfo(n){return encodeSequence([encodeSequence([encodeOid(Aa),encodeNull()]),encodeBitString(encodeRsaPublicKeyPkcs1(n))])}function encodeRsaPrivateKeyPkcs1(n){let a=n.d%(n.p-1n),S=n.d%(n.q-1n),C=modInverse$1(n.q,n.p);return encodeSequence([bigintToAsn1Integer(0n),bigintToAsn1Integer(n.n),bigintToAsn1Integer(n.e),bigintToAsn1Integer(n.d),bigintToAsn1Integer(n.p),bigintToAsn1Integer(n.q),bigintToAsn1Integer(a),bigintToAsn1Integer(S),bigintToAsn1Integer(C)])}function encodePrivateKeyInfo(n){let a=encodeSequence([encodeOid(Aa),encodeNull()]),S=encodeOctetString(encodeRsaPrivateKeyPkcs1(n));return encodeSequence([bigintToAsn1Integer(0n),a,S])}function derToPem(n,a){let S=dt.from(n).toString(`base64`),C=[`-----BEGIN ${a}-----`];for(let n=0;n<S.length;n+=64)C.push(S.substring(n,n+64));return C.push(`-----END ${a}-----`),C.join(`
10
- `)}function modInverse$1(n,a){let[S,C]=[n%a,a],[N,F]=[1n,0n];for(;C!==0n;){let n=S/C;[S,C]=[C,S-n*C],[N,F]=[F,N-n*F]}return(N%a+a)%a}function parseX509(n){let{der:a}=pemToDer(n);return parseX509Der(a)}function parseX509Der(n){let a=parseDer(n);if(a.tag!==48||!a.children||a.children.length<3)throw Error(`Invalid X.509 certificate structure`);let S=a.children[0],C=a.children[1],N=a.children[2];if(!S.children||S.children.length<6)throw Error(`Invalid TBSCertificate structure`);let F=0;S.children[0].tag===160&&F++;let I=integerToBigInt(S.children[F].data);F++,F++;let H=parseDN(S.children[F]);F++;let W=S.children[F],K=parseAsn1Time(W.children[0]),q=parseAsn1Time(W.children[1]);F++;let Y=parseDN(S.children[F]);F++;let X=null,te=`unknown`;if(F<S.children.length){let n=S.children[F];try{if(n.children&&n.children.length>=2){let a=n.children[0];if(a.children&&a.children.length>=1){let S=a.children[0];S.tag===6&&oidsEqual(S.data,Aa)&&(te=`rsa`,X=parseSubjectPublicKeyInfo(n))}}}catch{}F++}let ne,re;for(let n=F;n<S.children.length;n++){let a=S.children[n];if(a.tag===163&&a.data.length>0){let n=parseDer(a.data);if(n.children){re=n.children;let a=new Uint8Array([85,29,17]);for(let S of n.children)if(S.children&&S.children.length>=2){let n=S.children[0];if(n.tag===6&&oidsEqual(n.data,a)){let n=S.children[S.children.length-1];ne=parseSAN(n.data)}}}}}let ie=`unknown`;C.children&&C.children.length>=1&&(ie=oidToName(C.children[0].data));let ae=N.tag===3?N.data.slice(1):N.data;return{raw:n,tbsCertificate:S.data,serialNumber:I,issuer:H,subject:Y,validFrom:K,validTo:q,publicKey:X,publicKeyAlgorithm:te,signatureAlgorithm:ie,signature:ae,subjectAltName:ne,extensions:re}}function decodeOidString(n){if(n.length===0)return``;let a=[];a.push(Math.floor(n[0]/40)),a.push(n[0]%40);let S=0;for(let C=1;C<n.length;C++)S=S<<7|n[C]&127,n[C]&128||(a.push(S),S=0);return a.join(`.`)}function oidToName(n){let a=decodeOidString(n);return Ma[a]||a}function parseDN(n){if(!n.children)return``;let a=[];for(let S of n.children){let n=S.tag===49?parseSequenceChildren(S.data):S.children||[];for(let S of n)if(S.children&&S.children.length>=2){let n=S.children[0].data,C=decodeOidString(n),N=ja[C]||C,F=S.children[1].data,I=new TextDecoder().decode(F);a.push(`${N}=${I}`)}}return a.join(`, `)}function parseAsn1Time(n){let a=new TextDecoder().decode(n.data);if(n.tag===23){let n=parseInt(a.substring(0,2),10);n=n>=50?1900+n:2e3+n;let S=parseInt(a.substring(2,4),10)-1,C=parseInt(a.substring(4,6),10),N=parseInt(a.substring(6,8),10),F=parseInt(a.substring(8,10),10),I=parseInt(a.substring(10,12),10);return new Date(Date.UTC(n,S,C,N,F,I))}if(n.tag===24){let n=parseInt(a.substring(0,4),10),S=parseInt(a.substring(4,6),10)-1,C=parseInt(a.substring(6,8),10),N=parseInt(a.substring(8,10),10),F=parseInt(a.substring(10,12),10),I=parseInt(a.substring(12,14),10);return new Date(Date.UTC(n,S,C,N,F,I))}throw Error(`Unsupported time tag: 0x${n.tag.toString(16)}`)}function parseSAN(n){let a=[];try{let S=parseDer(n);if(S.tag===48&&S.children){for(let n of S.children)if(n.tag===130)a.push(`DNS:`+new TextDecoder().decode(n.data));else if(n.tag===135){if(n.data.length===4)a.push(`IP Address:`+n.data.join(`.`));else if(n.data.length===16){let S=[];for(let a=0;a<16;a+=2)S.push((n.data[a]<<8|n.data[a+1]).toString(16));a.push(`IP Address:`+S.join(`:`))}}}}catch{}return a}function parsePemKey(n){let{type:a,der:S}=pemToDer(n),C=parseDer(S);if(C.tag!==48)throw Error(`Invalid key format: expected top-level SEQUENCE`);switch(a){case`RSA PUBLIC KEY`:return{type:`rsa-public`,components:parseRsaPublicKeyPkcs1(C)};case`PUBLIC KEY`:return{type:`rsa-public`,components:parseSubjectPublicKeyInfo(C)};case`RSA PRIVATE KEY`:return{type:`rsa-private`,components:parseRsaPrivateKeyPkcs1(C)};case`PRIVATE KEY`:return{type:`rsa-private`,components:parsePrivateKeyInfo(C)};default:throw Error(`Unsupported PEM type: ${a}`)}}function rsaKeySize(n){let a=0,S=n;for(;S>0n;)a++,S>>=1n;return Math.ceil(a/8)}var Aa,ja,Ma,Na=__esmMin(()=>{bt(),Aa=new Uint8Array([42,134,72,134,247,13,1,1,1]),__name$1(modInverse$1,`modInverse`),ja={"2.5.4.3":`CN`,"2.5.4.6":`C`,"2.5.4.7":`L`,"2.5.4.8":`ST`,"2.5.4.10":`O`,"2.5.4.11":`OU`,"1.2.840.113549.1.9.1":`emailAddress`},Ma={"1.2.840.113549.1.1.1":`rsaEncryption`,"1.2.840.113549.1.1.5":`sha1WithRSAEncryption`,"1.2.840.113549.1.1.11":`sha256WithRSAEncryption`,"1.2.840.113549.1.1.12":`sha384WithRSAEncryption`,"1.2.840.113549.1.1.13":`sha512WithRSAEncryption`}});function normalizeSignAlgorithm(n){let a=n.toLowerCase().replace(/-/g,``);if(a.startsWith(`rsa`)&&(a=a.slice(3)),!Pa[a])throw Error(`Unsupported algorithm: ${n}. Supported: RSA-SHA1, RSA-SHA256, RSA-SHA512`);return a}function extractPem$1(n){if(typeof n==`string`)return n;if(dt.isBuffer(n)||n instanceof Uint8Array)return dt.from(n).toString(`utf8`);if(n&&typeof n==`object`&&`key`in n){let a=n.key;if(typeof a==`string`)return a;if(dt.isBuffer(a)||a instanceof Uint8Array)return dt.from(a).toString(`utf8`)}throw TypeError(`Invalid key argument`)}function createSign(n){return new Sign(n)}function createVerify(n){return new Verify(n)}var Pa,Sign,Verify,Fa=__esmMin(()=>{Na(),oa(),Ca(),bt(),Pa={sha1:new Uint8Array([48,33,48,9,6,5,43,14,3,2,26,5,0,4,20]),sha256:new Uint8Array([48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32]),sha512:new Uint8Array([48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64])},__name$1(extractPem$1,`extractPem`),Sign=class{_algorithm;_hash;_finalized=!1;constructor(n){this._algorithm=normalizeSignAlgorithm(n),this._hash=new Sa(this._algorithm)}update(n,a){if(this._finalized)throw Error(`Sign was already finalized`);return this._hash.update(n,a),this}sign(n,a){if(this._finalized)throw Error(`Sign was already finalized`);this._finalized=!0;let S=this._hash.digest(),C=parsePemKey(extractPem$1(n));if(C.type!==`rsa-private`)throw Error(`privateKey must be an RSA private key`);let{n:N,e:F,d:I}=C.components,H=rsaKeySize(N),W=Pa[this._algorithm],K=new Uint8Array(W.length+S.length);K.set(W,0),K.set(S,W.length);let q=H-K.length-3;if(q<8)throw Error(`Key is too short for the specified hash algorithm`);let Y=new Uint8Array(H);Y[0]=0,Y[1]=1;for(let n=2;n<2+q;n++)Y[n]=255;Y[2+q]=0,Y.set(K,3+q);let X=bigIntToBytes(modPow(bytesToBigInt(Y),I,N),H),te=dt.from(X);return a?te.toString(a):te}},Verify=class{_algorithm;_hash;_finalized=!1;constructor(n){this._algorithm=normalizeSignAlgorithm(n),this._hash=new Sa(this._algorithm)}update(n,a){if(this._finalized)throw Error(`Verify was already finalized`);return this._hash.update(n,a),this}verify(n,a,S){if(this._finalized)throw Error(`Verify was already finalized`);this._finalized=!0;let C=this._hash.digest(),N=parsePemKey(extractPem$1(n)),F,I;if(N.type===`rsa-public`)F=N.components.n,I=N.components.e;else if(N.type===`rsa-private`)F=N.components.n,I=N.components.e;else throw Error(`publicKey must be an RSA public or private key`);let H=rsaKeySize(F),W;if(W=typeof a==`string`?dt.from(a,S||`base64`):a instanceof Uint8Array?a:dt.from(a),W.length!==H)return!1;let K=bytesToBigInt(W);if(K>=F)return!1;let q=bigIntToBytes(modPow(K,I,F),H);if(q[0]!==0||q[1]!==1)return!1;let Y=2;for(;Y<q.length&&q[Y]===255;)Y++;if(Y>=q.length||q[Y]!==0||Y-2<8)return!1;Y++;let X=q.slice(Y),te=Pa[this._algorithm],ne=new Uint8Array(te.length+C.length);if(ne.set(te,0),ne.set(C,te.length),X.length!==ne.length)return!1;let re=0;for(let n=0;n<X.length;n++)re|=X[n]^ne[n];return re===0}}});function extractPem(n){if(typeof n==`string`)return n;if(dt.isBuffer(n)||n instanceof Uint8Array)return dt.from(n).toString(`utf8`);if(n&&typeof n==`object`&&`key`in n){let a=n.key;if(typeof a==`string`)return a;if(dt.isBuffer(a)||a instanceof Uint8Array)return dt.from(a).toString(`utf8`)}throw TypeError(`Invalid key argument`)}function pkcs1v15Type2Pad(n,a){let S=a-11;if(n.length>S)throw Error(`Data too long for key size. Max ${S} bytes, got ${n.length}`);let C=a-n.length-3,N=new Uint8Array(a);N[0]=0,N[1]=2;let F=randomBytes(C);for(let n=0;n<C;n++){for(;F[n]===0;)F[n]=randomBytes(1)[0];N[2+n]=F[n]}return N[2+C]=0,N.set(n,3+C),N}function pkcs1v15Type1Pad(n,a){let S=a-11;if(n.length>S)throw Error(`Data too long for key size. Max ${S} bytes, got ${n.length}`);let C=a-n.length-3,N=new Uint8Array(a);N[0]=0,N[1]=1;for(let n=2;n<2+C;n++)N[n]=255;return N[2+C]=0,N.set(n,3+C),N}function pkcs1v15Type2Unpad(n){if(n.length<11)throw Error(`Decryption error: message too short`);if(n[0]!==0||n[1]!==2)throw Error(`Decryption error: invalid padding`);let a=2;for(;a<n.length&&n[a]!==0;)a++;if(a>=n.length||a<10)throw Error(`Decryption error: invalid padding`);return n.slice(a+1)}function pkcs1v15Type1Unpad(n){if(n.length<11)throw Error(`Decryption error: message too short`);if(n[0]!==0||n[1]!==1)throw Error(`Decryption error: invalid padding`);let a=2;for(;a<n.length&&n[a]===255;)a++;if(a>=n.length||n[a]!==0||a<10)throw Error(`Decryption error: invalid padding`);return n.slice(a+1)}function publicEncrypt(n,a){let S=parsePemKey(extractPem(n)),C,N;if(S.type===`rsa-public`)C=S.components.n,N=S.components.e;else if(S.type===`rsa-private`)C=S.components.n,N=S.components.e;else throw Error(`Key must be an RSA public or private key`);let F=rsaKeySize(C),I=modPow(bytesToBigInt(pkcs1v15Type2Pad(a instanceof Uint8Array?a:dt.from(a),F)),N,C);return dt.from(bigIntToBytes(I,F))}function privateDecrypt(n,a){let S=parsePemKey(extractPem(n));if(S.type!==`rsa-private`)throw Error(`Key must be an RSA private key`);let{n:C,d:N}=S.components,F=rsaKeySize(C),I=a instanceof Uint8Array?a:dt.from(a);if(I.length!==F)throw Error(`Data length (${I.length}) does not match key length (${F})`);let H=bytesToBigInt(I);if(H>=C)throw Error(`Decryption error: cipher value out of range`);let W=bigIntToBytes(modPow(H,N,C),F);return dt.from(pkcs1v15Type2Unpad(W))}function privateEncrypt(n,a){let S=parsePemKey(extractPem(n));if(S.type!==`rsa-private`)throw Error(`Key must be an RSA private key`);let{n:C,d:N}=S.components,F=rsaKeySize(C),I=modPow(bytesToBigInt(pkcs1v15Type1Pad(a instanceof Uint8Array?a:dt.from(a),F)),N,C);return dt.from(bigIntToBytes(I,F))}function publicDecrypt(n,a){let S=parsePemKey(extractPem(n)),C,N;if(S.type===`rsa-public`)C=S.components.n,N=S.components.e;else if(S.type===`rsa-private`)C=S.components.n,N=S.components.e;else throw Error(`Key must be an RSA public or private key`);let F=rsaKeySize(C),I=a instanceof Uint8Array?a:dt.from(a);if(I.length!==F)throw Error(`Data length (${I.length}) does not match key length (${F})`);let H=bytesToBigInt(I);if(H>=C)throw Error(`Decryption error: cipher value out of range`);let W=bigIntToBytes(modPow(H,N,C),F);return dt.from(pkcs1v15Type1Unpad(W))}var Ia=__esmMin(()=>{Na(),oa(),aa(),bt()});function mgf1(n,a,S){hashSize(n);let C=new Uint8Array(S),N=0,F=0;for(;N<S;){let I=new Uint8Array(4);I[0]=F>>>24&255,I[1]=F>>>16&255,I[2]=F>>>8&255,I[3]=F&255;let H=new Sa(n);H.update(a),H.update(I);let W=new Uint8Array(H.digest()),K=Math.min(W.length,S-N);C.set(W.slice(0,K),N),N+=K,F++}return C}var La=__esmMin(()=>{ba(),Ca()});function hashDigest$1(n,a){let S=new Sa(n);return S.update(a),new Uint8Array(S.digest())}function emsaPssEncode(n,a,S,C){let N=hashSize(S),F=Math.ceil(a/8);if(F<N+C+2)throw Error(`RSA-PSS: encoding error — key too short`);let I=C>0?new Uint8Array(randomBytes(C)):new Uint8Array,H=new Uint8Array(8+N+C);H.set(n,8),H.set(I,8+N);let W=hashDigest$1(S,H),K=F-N-1,q=new Uint8Array(K);q[K-C-1]=1,q.set(I,K-C);let Y=mgf1(S,W,K),X=new Uint8Array(K);for(let n=0;n<K;n++)X[n]=q[n]^Y[n];let te=8*F-a;te>0&&(X[0]&=255>>>te);let ne=new Uint8Array(F);return ne.set(X,0),ne.set(W,K),ne[F-1]=188,ne}function emsaPssVerify(n,a,S,C,N){let F=hashSize(C),I=Math.ceil(S/8);if(I<F+N+2||a[I-1]!==188)return!1;let H=I-F-1,W=a.slice(0,H),K=a.slice(H,H+F),q=8*I-S;if(q>0&&W[0]&255<<8-q)return!1;let Y=mgf1(C,K,H),X=new Uint8Array(H);for(let n=0;n<H;n++)X[n]=W[n]^Y[n];q>0&&(X[0]&=255>>>q);for(let n=0;n<H-N-1;n++)if(X[n]!==0)return!1;if(X[H-N-1]!==1)return!1;let te=X.slice(H-N),ne=new Uint8Array(8+F+N);ne.set(n,8),ne.set(te,8+F);let re=hashDigest$1(C,ne);if(K.length!==re.length)return!1;let ie=0;for(let n=0;n<K.length;n++)ie|=K[n]^re[n];return ie===0}function rsaPssSign(n,a,S,C){let N=parsePemKey(a);if(N.type!==`rsa-private`)throw Error(`RSA-PSS: expected RSA private key`);let{n:F,d:I}=N.components,H=rsaKeySize(F),W=Math.ceil(H/8);return bigIntToBytes(modPow(bytesToBigInt(emsaPssEncode(hashDigest$1(n,S),H-1,n,C)),I,F),W)}function rsaPssVerify(n,a,S,C,N){let F=parsePemKey(a),I,H;if(F.type===`rsa-public`)({n:I,e:H}=F.components);else if(F.type===`rsa-private`)({n:I,e:H}=F.components);else throw Error(`RSA-PSS: expected RSA key`);let W=rsaKeySize(I),K=Math.ceil(W/8);if(S.length!==K)return!1;let q=bigIntToBytes(modPow(bytesToBigInt(S),H,I),Math.ceil((W-1)/8));return emsaPssVerify(hashDigest$1(n,C),q,W-1,n,N)}var Ra=__esmMin(()=>{Na(),oa(),ba(),aa(),Ca(),La(),__name$1(hashDigest$1,`hashDigest`)});function hashDigest(n,a){let S=new Sa(n);return S.update(a),new Uint8Array(S.digest())}function rsaOaepEncrypt(n,a,S,C){let N=parsePemKey(a),F,I;if(N.type===`rsa-public`)({n:F,e:I}=N.components);else if(N.type===`rsa-private`)({n:F,e:I}=N.components);else throw Error(`RSA-OAEP: expected RSA key`);let H=Math.ceil(rsaKeySize(F)/8),W=hashSize(n);if(S.length>H-2*W-2)throw Error(`RSA-OAEP: message too long`);let K=hashDigest(n,C||new Uint8Array),q=H-W-1,Y=new Uint8Array(q);Y.set(K,0),Y[q-S.length-1]=1,Y.set(S,q-S.length);let X=new Uint8Array(randomBytes(W)),te=mgf1(n,X,q),ne=new Uint8Array(q);for(let n=0;n<q;n++)ne[n]=Y[n]^te[n];let re=mgf1(n,ne,W),ie=new Uint8Array(W);for(let n=0;n<W;n++)ie[n]=X[n]^re[n];let ae=new Uint8Array(H);return ae[0]=0,ae.set(ie,1),ae.set(ne,1+W),bigIntToBytes(modPow(bytesToBigInt(ae),I,F),H)}function rsaOaepDecrypt(n,a,S,C){let N=parsePemKey(a);if(N.type!==`rsa-private`)throw Error(`RSA-OAEP: expected RSA private key`);let{n:F,d:I}=N.components,H=Math.ceil(rsaKeySize(F)/8),W=hashSize(n);if(S.length!==H||H<2*W+2)throw Error(`RSA-OAEP: decryption error`);let K=bigIntToBytes(modPow(bytesToBigInt(S),I,F),H),q=K[0],Y=K.slice(1,1+W),X=K.slice(1+W),te=H-W-1,ne=mgf1(n,X,W),re=new Uint8Array(W);for(let n=0;n<W;n++)re[n]=Y[n]^ne[n];let ie=mgf1(n,re,te),ae=new Uint8Array(te);for(let n=0;n<te;n++)ae[n]=X[n]^ie[n];let oe=hashDigest(n,C||new Uint8Array),Z=ae.slice(0,W),se=+(q===0);for(let n=0;n<W;n++)se&=+(oe[n]===Z[n]);let ce=-1;for(let n=W;n<te;n++)if(ae[n]===1){ce=n;break}else if(ae[n]!==0){se=0;break}if(ce===-1&&(se=0),!se)throw Error(`RSA-OAEP: decryption error`);return ae.slice(ce+1)}var za=__esmMin(()=>{Na(),oa(),ba(),aa(),Ca(),La()});function bigintToBase64url(n){if(n===0n)return`AA`;let a=n.toString(16),S=a.length%2?`0`+a:a,C=[];for(let n=0;n<S.length;n+=2)C.push(parseInt(S.substring(n,n+2),16));return dt.from(C).toString(`base64url`)}function base64urlToBigint(n){let a=dt.from(n,`base64url`),S=0n;for(let n=0;n<a.length;n++)S=S<<8n|BigInt(a[n]);return S}function exportJwk(n,a){if(n.type===`rsa-public`)return{kty:`RSA`,n:bigintToBase64url(n.components.n),e:bigintToBase64url(n.components.e)};if(n.type===`rsa-private`){if(a===`public`)return{kty:`RSA`,n:bigintToBase64url(n.components.n),e:bigintToBase64url(n.components.e)};let{n:S,e:C,d:N,p:F,q:I}=n.components,H=N%(F-1n),W=N%(I-1n),K=modInverse(I,F);return{kty:`RSA`,n:bigintToBase64url(S),e:bigintToBase64url(C),d:bigintToBase64url(N),p:bigintToBase64url(F),q:bigintToBase64url(I),dp:bigintToBase64url(H),dq:bigintToBase64url(W),qi:bigintToBase64url(K)}}throw Error(`Unsupported key type for JWK export`)}function importJwkRsa(n){if(n.d){let a={n:base64urlToBigint(n.n),e:base64urlToBigint(n.e),d:base64urlToBigint(n.d),p:base64urlToBigint(n.p),q:base64urlToBigint(n.q)};return{parsed:{type:`rsa-private`,components:a},pem:derToPem(encodeRsaPrivateKeyPkcs1(a),`RSA PRIVATE KEY`)}}let a={n:base64urlToBigint(n.n),e:base64urlToBigint(n.e)};return{parsed:{type:`rsa-public`,components:a},pem:derToPem(encodeSubjectPublicKeyInfo(a),`PUBLIC KEY`)}}function generatePem(n,a,S){if(n.type===`rsa-public`)return S===`pkcs1`?derToPem(encodeRsaPublicKeyPkcs1(n.components),`RSA PUBLIC KEY`):derToPem(encodeSubjectPublicKeyInfo(n.components),`PUBLIC KEY`);if(n.type===`rsa-private`&&a===`public`){let a={n:n.components.n,e:n.components.e};return S===`pkcs1`?derToPem(encodeRsaPublicKeyPkcs1(a),`RSA PUBLIC KEY`):derToPem(encodeSubjectPublicKeyInfo(a),`PUBLIC KEY`)}if(n.type===`rsa-private`)return S===`pkcs8`?derToPem(encodePrivateKeyInfo(n.components),`PRIVATE KEY`):derToPem(encodeRsaPrivateKeyPkcs1(n.components),`RSA PRIVATE KEY`);throw Error(`Cannot generate PEM for this key type`)}function generateDer(n,a,S){if(n.type===`rsa-public`)return S===`pkcs1`?dt.from(encodeRsaPublicKeyPkcs1(n.components)):dt.from(encodeSubjectPublicKeyInfo(n.components));if(n.type===`rsa-private`&&a===`public`){let a={n:n.components.n,e:n.components.e};return S===`pkcs1`?dt.from(encodeRsaPublicKeyPkcs1(a)):dt.from(encodeSubjectPublicKeyInfo(a))}if(n.type===`rsa-private`)return S===`pkcs8`?dt.from(encodePrivateKeyInfo(n.components)):dt.from(encodeRsaPrivateKeyPkcs1(n.components));throw Error(`Cannot generate DER for this key type`)}function modInverse(n,a){let[S,C]=[n%a,a],[N,F]=[1n,0n];for(;C!==0n;){let n=S/C;[S,C]=[C,S-n*C],[N,F]=[F,N-n*F]}return(N%a+a)%a}function createSecretKey(n,a){let S;return S=typeof n==`string`?dt.from(n,a??`utf8`):new Uint8Array(n),new Ba(`secret`,S)}function createPublicKey(n){if(n instanceof Ba){if(n.type===`public`)return n;if(n.type===`private`){let a=n._handle;if(a.parsed.type===`rsa-private`){let n={n:a.parsed.components.n,e:a.parsed.components.e};return new Ba(`public`,{parsed:{type:`rsa-public`,components:n},pem:derToPem(encodeSubjectPublicKeyInfo(n),`PUBLIC KEY`)})}}throw TypeError(`Cannot create public key from secret key`)}if(typeof n==`object`&&!dt.isBuffer(n)&&`key`in n){let a=n;if(a.format===`jwk`){let n=a.key;if(n.kty===`RSA`){let{parsed:a,pem:S}=importJwkRsa({n:n.n,e:n.e});return new Ba(`public`,{parsed:a,pem:S})}throw Error(`Unsupported JWK key type: ${n.kty}`)}}let a=normalizePem(n),S=parsePemKey(a);if(S.type===`rsa-private`){let n={n:S.components.n,e:S.components.e};return new Ba(`public`,{parsed:{type:`rsa-public`,components:n},pem:derToPem(encodeSubjectPublicKeyInfo(n),`PUBLIC KEY`)})}return new Ba(`public`,{parsed:S,pem:a})}function createPrivateKey(n){if(typeof n==`object`&&!dt.isBuffer(n)&&`key`in n){let a=n;if(a.format===`jwk`){let n=a.key;if(n.kty===`RSA`&&n.d){let{parsed:a,pem:S}=importJwkRsa(n);return new Ba(`private`,{parsed:a,pem:S})}throw Error(`JWK does not contain a private key`)}}let a=normalizePem(n),S=parsePemKey(a);if(S.type!==`rsa-private`)throw TypeError(`Key is not a private key`);return new Ba(`private`,{parsed:S,pem:a})}function normalizePem(n){if(typeof n==`string`)return n;if(dt.isBuffer(n))return n.toString(`utf8`);if(n&&typeof n==`object`&&`key`in n){let a=n;if(typeof a.key==`string`)return a.key;if(dt.isBuffer(a.key))return a.key.toString(a.encoding??`utf8`);if(a.key instanceof Ba)return a.key.export({format:`pem`})}throw TypeError(`Invalid key input`)}var Ba,Va=__esmMin(()=>{Na(),bt(),Ba=class KeyObject{type;_handle;constructor(n,a){if(n!==`secret`&&n!==`public`&&n!==`private`)throw TypeError(`Invalid KeyObject type: ${n}`);this.type=n,this._handle=a}get symmetricKeySize(){if(this.type===`secret`)return this._handle.byteLength}get asymmetricKeyType(){if(this.type===`secret`)return;let n=this._handle;if(n.parsed.type===`rsa-public`||n.parsed.type===`rsa-private`)return`rsa`}get asymmetricKeySize(){if(this.type===`secret`)return;let n=this._handle;if(n.parsed.type===`rsa-public`||n.parsed.type===`rsa-private`)return rsaKeySize(n.parsed.components.n)/8}equals(n){if(!(n instanceof KeyObject)||this.type!==n.type)return!1;if(this.type===`secret`){let a=this._handle,S=n._handle;if(a.byteLength!==S.byteLength)return!1;for(let n=0;n<a.byteLength;n++)if(a[n]!==S[n])return!1;return!0}let a=this._handle,S=n._handle;return a.pem===S.pem}export(n){if(this.type===`secret`){let a=this._handle;return n?.format===`jwk`?{kty:`oct`,k:dt.from(a).toString(`base64url`)}:dt.from(a)}let a=this._handle,S=n?.format??`pem`,C=n?.type;if(S===`jwk`)return exportJwk(a.parsed,this.type);if(S===`pem`)return a.pem&&!a.pem.startsWith(`[`)?a.pem:generatePem(a.parsed,this.type,C);if(S===`der`){if(a.pem&&!a.pem.startsWith(`[`)){let n=a.pem.trim().split(/\r?\n/),S=n.findIndex(n=>n.startsWith(`-----BEGIN `)),C=n.findIndex((n,a)=>a>S&&n.startsWith(`-----END `)),N=n.slice(S+1,C).join(``);return dt.from(N,`base64`)}return generateDer(a.parsed,this.type,C)}throw TypeError(`Unsupported export format: ${S}`)}get[Symbol.toStringTag](){return`KeyObject`}}});function formatFingerprint(n){let a=n.toString(`hex`).toUpperCase(),S=[];for(let n=0;n<a.length;n+=2)S.push(a.substring(n,n+2));return S.join(`:`)}function matchHostname(n,a){let S=n.toLowerCase(),C=a.toLowerCase();if(S===C)return!0;if(S.startsWith(`*.`)){let n=S.substring(2),a=C.split(`.`);if(a.length>=2)return a.slice(1).join(`.`)===n}return!1}function parseDNToObject(n){let a={},S=n.split(`, `);for(let n of S){let S=n.indexOf(`=`);S>0&&(a[n.substring(0,S)]=n.substring(S+1))}return a}var X509Certificate,Ha=__esmMin(()=>{Na(),Va(),Ga(),bt(),X509Certificate=class{_components;_pem;constructor(n){if(typeof n==`string`)this._pem=n,this._components=parseX509(n);else{let a=dt.isBuffer(n)?n:dt.from(n),S=a.toString(`utf8`);S.includes(`-----BEGIN CERTIFICATE-----`)?(this._pem=S,this._components=parseX509(S)):(this._components=parseX509Der(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)),this._pem=derToPem(this._components.raw,`CERTIFICATE`))}}get raw(){return dt.from(this._components.raw)}get serialNumber(){return this._components.serialNumber.toString(16).toUpperCase()}get subject(){return this._components.subject}get issuer(){return this._components.issuer}get validFrom(){return this._components.validFrom.toUTCString()}get validTo(){return this._components.validTo.toUTCString()}get fingerprint(){return formatFingerprint(createHash(`sha1`).update(this._components.raw).digest())}get fingerprint256(){return formatFingerprint(createHash(`sha256`).update(this._components.raw).digest())}get fingerprint512(){return formatFingerprint(createHash(`sha512`).update(this._components.raw).digest())}get publicKey(){if(!this._components.publicKey)throw Error(`Certificate does not contain a supported public key type`);let n=derToPem(encodeSubjectPublicKeyInfo(this._components.publicKey),`PUBLIC KEY`);return new Ba(`public`,{parsed:{type:`rsa-public`,components:this._components.publicKey},pem:n})}get subjectAltName(){if(!(!this._components.subjectAltName||this._components.subjectAltName.length===0))return this._components.subjectAltName.join(`, `)}get keyUsage(){}get infoAccess(){}get ca(){return!1}checkHost(n){let a=this._components.subject.match(/CN=([^,]+)/);if(a){let S=a[1].trim();if(matchHostname(S,n))return S}if(this._components.subjectAltName){for(let a of this._components.subjectAltName)if(a.startsWith(`DNS:`)){let S=a.substring(4);if(matchHostname(S,n))return S}}}checkEmail(n){let a=n.toLowerCase(),S=this._components.subject.match(/emailAddress=([^,]+)/);if(S&&S[1].toLowerCase()===a)return S[1]}checkIP(n){if(this._components.subjectAltName){for(let a of this._components.subjectAltName)if(a.startsWith(`IP Address:`)&&a.substring(11)===n)return n}}verify(n){return!0}checkIssued(n){return this.issuer===n.subject}toLegacyObject(){return{subject:parseDNToObject(this._components.subject),issuer:parseDNToObject(this._components.issuer),valid_from:this.validFrom,valid_to:this.validTo,serialNumber:this.serialNumber,fingerprint:this.fingerprint,fingerprint256:this.fingerprint256}}toString(){return this._pem}toJSON(){return this._pem}get[Symbol.toStringTag](){return`X509Certificate`}}}),Ua=__exportAll$3({DiffieHellman:()=>DiffieHellman,DiffieHellmanGroup:()=>fa,Hash:()=>Sa,Hmac:()=>Hmac,KeyObject:()=>Ba,Sign:()=>Sign,Verify:()=>Verify,X509Certificate:()=>X509Certificate,constants:()=>na,createCipher:()=>createCipher,createCipheriv:()=>createCipheriv,createDecipher:()=>createDecipher,createDecipheriv:()=>createDecipheriv,createDiffieHellman:()=>createDiffieHellman,createDiffieHellmanGroup:()=>da,createECDH:()=>createECDH,createHash:()=>createHash,createHmac:()=>createHmac,createPrivateKey:()=>createPrivateKey,createPublicKey:()=>createPublicKey,createSecretKey:()=>createSecretKey,createSign:()=>createSign,createVerify:()=>createVerify,default:()=>Wa,ecdsaSign:()=>ecdsaSign,ecdsaVerify:()=>ecdsaVerify,getCiphers:()=>getCiphers,getCurves:()=>getCurves,getDiffieHellman:()=>getDiffieHellman,getHashes:()=>getHashes,hash:()=>hash,hkdf:()=>hkdf,hkdfSync:()=>hkdfSync,mgf1:()=>mgf1,pbkdf2:()=>pbkdf2,pbkdf2Sync:()=>pbkdf2Sync,privateDecrypt:()=>privateDecrypt,privateEncrypt:()=>privateEncrypt,publicDecrypt:()=>publicDecrypt,publicEncrypt:()=>publicEncrypt,randomBytes:()=>randomBytes,randomFill:()=>randomFill,randomFillSync:()=>randomFillSync,randomInt:()=>randomInt,randomUUID:()=>randomUUID,rsaOaepDecrypt:()=>rsaOaepDecrypt,rsaOaepEncrypt:()=>rsaOaepEncrypt,rsaPssSign:()=>rsaPssSign,rsaPssVerify:()=>rsaPssVerify,scrypt:()=>scrypt,scryptSync:()=>scryptSync,timingSafeEqual:()=>timingSafeEqual});function createHash(n){return new Sa(n)}function createHmac(n,a){return new Hmac(n,a)}var Wa,Ga=__esmMin(()=>{ta(),ra(),aa(),pa(),ga(),Ca(),wa(),Ta(),Ea(),Da(),Oa(),ka(),Fa(),Ia(),La(),Ra(),za(),Va(),Ha(),Wa={Hash:Sa,getHashes,hash,Hmac,randomBytes,randomFill,randomFillSync,randomUUID,randomInt,timingSafeEqual,constants:na,pbkdf2,pbkdf2Sync,hkdf,hkdfSync,scrypt,scryptSync,createHash,createHmac,createCipher,createCipheriv,createDecipher,createDecipheriv,getCiphers,Sign,Verify,createSign,createVerify,createDiffieHellman,getDiffieHellman,DiffieHellman,DiffieHellmanGroup:fa,createDiffieHellmanGroup:da,createECDH,getCurves,ecdsaSign,ecdsaVerify,publicEncrypt,privateDecrypt,privateEncrypt,publicDecrypt,rsaPssSign,rsaPssVerify,rsaOaepEncrypt,rsaOaepDecrypt,mgf1,KeyObject:Ba,createSecretKey,createPublicKey,createPrivateKey,X509Certificate}});let Ka=!1,qa,Ja,Ya,Xa,Za,Qa,$a,eo,to,no,ro,io,ao,oo,so,co;async function loadCrypto(){if(Ka)return;let n=await Promise.resolve().then(()=>(Ga(),Ua));qa=n.createHash,Ja=n.createHmac,Ya=n.createCipheriv,Xa=n.createDecipheriv,Za=n.createSign,Qa=n.createVerify,$a=n.pbkdf2Sync,eo=n.hkdfSync,to=n.createECDH,no=n.randomBytes,n.publicEncrypt,n.privateDecrypt,n.createPublicKey,n.createPrivateKey,ro=n.ecdsaSign,io=n.ecdsaVerify,ao=n.rsaPssSign,oo=n.rsaPssVerify,so=n.rsaOaepEncrypt,co=n.rsaOaepDecrypt,Ka=!0}const lo=loadCrypto();var SubtleCrypto=class{async digest(n,a){await lo;let S=toNodeHashName(normalizeAlgorithm$1(n).name),C=toUint8Array(a),N=qa(S);N.update(C);let F=N.digest();return F.buffer.slice(F.byteOffset,F.byteOffset+F.byteLength)}async generateKey(n,a,S){await lo;let C=normalizeAlgorithm$1(n);switch(C.name.toUpperCase()){case`AES-CBC`:case`AES-CTR`:case`AES-GCM`:{let N=n.length;if(![128,192,256].includes(N))throw new DOMException(`Invalid AES key length: ${N}`,`OperationError`);validateUsages(S,[`encrypt`,`decrypt`,`wrapKey`,`unwrapKey`]);let F=no(N/8);return new CryptoKey(`secret`,a,{name:C.name,length:N},S,new Uint8Array(F))}case`HMAC`:{let C=n,N=normalizeAlgorithm$1(C.hash),F=C.length||hashSize$1(N.name)*8;validateUsages(S,[`sign`,`verify`]);let I=no(Math.ceil(F/8));return new CryptoKey(`secret`,a,{name:`HMAC`,hash:{name:N.name},length:F},S,new Uint8Array(I))}case`ECDH`:{let C=n.namedCurve,N=toNodeCurveName(C);validateUsages(S,[`deriveKey`,`deriveBits`]);let F=to(N);F.generateKeys();let I=new Uint8Array(F.getPublicKey()),H=new Uint8Array(F.getPrivateKey());return{publicKey:new CryptoKey(`public`,!0,{name:`ECDH`,namedCurve:C},[],I),privateKey:new CryptoKey(`private`,a,{name:`ECDH`,namedCurve:C},S,{pub:I,priv:H})}}case`ECDSA`:{let C=n.namedCurve,N=toNodeCurveName(C);validateUsages(S,[`sign`,`verify`]);let F=to(N);F.generateKeys();let I=new Uint8Array(F.getPublicKey()),H=new Uint8Array(F.getPrivateKey());return{publicKey:new CryptoKey(`public`,!0,{name:`ECDSA`,namedCurve:C},[`verify`],I),privateKey:new CryptoKey(`private`,a,{name:`ECDSA`,namedCurve:C},[`sign`],{pub:I,priv:H})}}default:throw new DOMException(`Unsupported algorithm: ${C.name}`,`NotSupportedError`)}}async importKey(n,a,S,C,N){await lo;let F=normalizeAlgorithm$1(S),I=F.name.toUpperCase();switch(I){case`AES-CBC`:case`AES-CTR`:case`AES-GCM`:if(n===`raw`){let n=toUint8Array(a);if(![16,24,32].includes(n.length))throw new DOMException(`Invalid AES key length: ${n.length*8}`,`DataError`);return validateUsages(N,[`encrypt`,`decrypt`,`wrapKey`,`unwrapKey`]),new CryptoKey(`secret`,C,{name:F.name,length:n.length*8},N,new Uint8Array(n))}if(n===`jwk`){let n=a;if(n.kty!==`oct`)throw new DOMException(`JWK kty must be "oct"`,`DataError`);let S=base64urlDecode(n.k);if(![16,24,32].includes(S.length))throw new DOMException(`Invalid AES key length: ${S.length*8}`,`DataError`);return validateUsages(N,[`encrypt`,`decrypt`,`wrapKey`,`unwrapKey`]),new CryptoKey(`secret`,C,{name:F.name,length:S.length*8},N,S)}throw new DOMException(`Unsupported format: ${n}`,`NotSupportedError`);case`HMAC`:{let F=normalizeAlgorithm$1(S.hash);if(n===`raw`){let n=toUint8Array(a);return validateUsages(N,[`sign`,`verify`]),new CryptoKey(`secret`,C,{name:`HMAC`,hash:{name:F.name},length:n.length*8},N,new Uint8Array(n))}if(n===`jwk`){let n=a;if(n.kty!==`oct`)throw new DOMException(`JWK kty must be "oct"`,`DataError`);let S=base64urlDecode(n.k);return validateUsages(N,[`sign`,`verify`]),new CryptoKey(`secret`,C,{name:`HMAC`,hash:{name:F.name},length:S.length*8},N,S)}throw new DOMException(`Unsupported format: ${n}`,`NotSupportedError`)}case`PBKDF2`:if(n===`raw`){let n=toUint8Array(a);return validateUsages(N,[`deriveKey`,`deriveBits`]),new CryptoKey(`secret`,!1,{name:`PBKDF2`},N,new Uint8Array(n))}throw new DOMException(`Unsupported format: ${n}`,`NotSupportedError`);case`HKDF`:if(n===`raw`){let n=toUint8Array(a);return validateUsages(N,[`deriveKey`,`deriveBits`]),new CryptoKey(`secret`,!1,{name:`HKDF`},N,new Uint8Array(n))}throw new DOMException(`Unsupported format: ${n}`,`NotSupportedError`);case`ECDH`:case`ECDSA`:{let H=S.namedCurve;if(n===`raw`){let n=toUint8Array(a);return I===`ECDH`?N.length>0&&validateUsages(N,[`deriveKey`,`deriveBits`]):validateUsages(N,[`verify`]),new CryptoKey(`public`,C,{name:F.name,namedCurve:H},N,new Uint8Array(n))}if(n===`jwk`){let n=a;if(n.kty!==`EC`)throw new DOMException(`JWK kty must be "EC"`,`DataError`);if(n.d){let a=base64urlDecode(n.d),S=base64urlDecode(n.x),W=base64urlDecode(n.y),K=new Uint8Array(1+S.length+W.length);return K[0]=4,K.set(S,1),K.set(W,1+S.length),validateUsages(N,I===`ECDH`?[`deriveKey`,`deriveBits`]:[`sign`]),new CryptoKey(`private`,C,{name:F.name,namedCurve:H},N,{pub:K,priv:a})}else{let a=base64urlDecode(n.x),S=base64urlDecode(n.y),W=new Uint8Array(1+a.length+S.length);return W[0]=4,W.set(a,1),W.set(S,1+a.length),I===`ECDH`?N.length>0&&validateUsages(N,[`deriveKey`,`deriveBits`]):validateUsages(N,[`verify`]),new CryptoKey(`public`,C,{name:F.name,namedCurve:H},N,W)}}throw new DOMException(`Unsupported format: ${n}`,`NotSupportedError`)}default:throw new DOMException(`Unsupported algorithm: ${F.name}`,`NotSupportedError`)}}async exportKey(n,a){if(!a.extractable)throw new DOMException(`Key is not extractable`,`InvalidAccessError`);let S=a.algorithm.name.toUpperCase();if(n===`raw`){if(a.type===`secret`){let n=a._handle;return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength)}if(a.type===`public`&&(S===`ECDH`||S===`ECDSA`)){let n=a._handle;return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength)}throw new DOMException(`Cannot export in raw format`,`InvalidAccessError`)}if(n===`jwk`){if(a.type===`secret`){let n=a._handle,C={kty:`oct`,k:base64urlEncode(n),ext:a.extractable,key_ops:[...a.usages]};return S.startsWith(`AES-`)?C.alg=`A${a.algorithm.length}${S.replace(`AES-`,``)}`:S===`HMAC`&&(C.alg=`HS${a.algorithm.hash.name.replace(`SHA-`,``)}`),C}if((S===`ECDH`||S===`ECDSA`)&&(a.type===`public`||a.type===`private`)){let n=a.algorithm.namedCurve,S;S=a.type===`public`?a._handle:a._handle.pub;let C=(S.length-1)/2,N=S.slice(1,1+C),F=S.slice(1+C),I={kty:`EC`,crv:n,x:base64urlEncode(N),y:base64urlEncode(F),ext:a.extractable,key_ops:[...a.usages]};return a.type===`private`&&(I.d=base64urlEncode(a._handle.priv)),I}throw new DOMException(`JWK export not supported for ${S} ${a.type}`,`NotSupportedError`)}throw new DOMException(`Unsupported export format: ${n}`,`NotSupportedError`)}async encrypt(n,a,S){await lo,checkUsage(a,`encrypt`);let C=normalizeAlgorithm$1(n),N=C.name.toUpperCase(),F=toUint8Array(S);switch(N){case`AES-CBC`:{let S=toUint8Array(n.iv),C=a._handle,N=C.length*8,I=Ya(`aes-${N}-cbc`,C,S),H=I.update(F),W=I.final(),K=new Uint8Array(H.length+W.length);return K.set(new Uint8Array(H),0),K.set(new Uint8Array(W),H.length),K.buffer}case`AES-CTR`:{let S=toUint8Array(n.counter),C=a._handle,N=C.length*8,I=Ya(`aes-${N}-ctr`,C,S),H=I.update(F),W=I.final(),K=new Uint8Array(H.length+W.length);return K.set(new Uint8Array(H),0),K.set(new Uint8Array(W),H.length),K.buffer}case`AES-GCM`:{let S=n,C=toUint8Array(S.iv),N=S.additionalData?toUint8Array(S.additionalData):void 0,I=a._handle,H=I.length*8,W=Ya(`aes-${H}-gcm`,I,C);N&&W.setAAD(N);let K=W.update(F),q=W.final(),Y=W.getAuthTag(),X=new Uint8Array(K.length+q.length+Y.length);return X.set(new Uint8Array(K),0),X.set(new Uint8Array(q),K.length),X.set(new Uint8Array(Y),K.length+q.length),X.buffer}case`RSA-OAEP`:{let S=a.algorithm.hash.name,C=toNodeHashName(S),N=a._handle,I=n,H=I.label?toUint8Array(I.label):void 0,W=so(C,N.pem,F,H);return W.buffer.slice(W.byteOffset,W.byteOffset+W.byteLength)}default:throw new DOMException(`Unsupported algorithm: ${C.name}`,`NotSupportedError`)}}async decrypt(n,a,S){await lo,checkUsage(a,`decrypt`);let C=normalizeAlgorithm$1(n),N=C.name.toUpperCase(),F=toUint8Array(S);switch(N){case`AES-CBC`:{let S=toUint8Array(n.iv),C=a._handle,N=C.length*8,I=Xa(`aes-${N}-cbc`,C,S),H=I.update(F),W=I.final(),K=new Uint8Array(H.length+W.length);return K.set(new Uint8Array(H),0),K.set(new Uint8Array(W),H.length),K.buffer}case`AES-CTR`:{let S=toUint8Array(n.counter),C=a._handle,N=C.length*8,I=Xa(`aes-${N}-ctr`,C,S),H=I.update(F),W=I.final(),K=new Uint8Array(H.length+W.length);return K.set(new Uint8Array(H),0),K.set(new Uint8Array(W),H.length),K.buffer}case`AES-GCM`:{let S=n,C=toUint8Array(S.iv),N=(S.tagLength||128)/8,I=S.additionalData?toUint8Array(S.additionalData):void 0,H=a._handle,W=H.length*8,K=F.slice(0,F.length-N),q=F.slice(F.length-N),Y=Xa(`aes-${W}-gcm`,H,C);Y.setAuthTag(q),I&&Y.setAAD(I);let X=Y.update(K),te=Y.final(),ne=new Uint8Array(X.length+te.length);return ne.set(new Uint8Array(X),0),ne.set(new Uint8Array(te),X.length),ne.buffer}case`RSA-OAEP`:{let S=a.algorithm.hash.name,C=toNodeHashName(S),N=a._handle,I=n,H=I.label?toUint8Array(I.label):void 0,W=co(C,N.pem,F,H);return W.buffer.slice(W.byteOffset,W.byteOffset+W.byteLength)}default:throw new DOMException(`Unsupported algorithm: ${C.name}`,`NotSupportedError`)}}async sign(n,a,S){await lo,checkUsage(a,`sign`);let C=normalizeAlgorithm$1(n),N=C.name.toUpperCase(),F=toUint8Array(S);switch(N){case`HMAC`:{let n=a.algorithm.hash.name,S=toNodeHashName(n),C=a._handle,N=Ja(S,C);N.update(F);let I=N.digest();return I.buffer.slice(I.byteOffset,I.byteOffset+I.byteLength)}case`RSASSA-PKCS1-V1_5`:{let n=a.algorithm.hash.name,S=toNodeHashName(n),C=a._handle,N=Za(S);N.update(F);let I=N.sign(C.pem);return I.buffer.slice(I.byteOffset,I.byteOffset+I.byteLength)}case`ECDSA`:{let S=n,C=toNodeHashName(typeof S.hash==`string`?S.hash:S.hash.name),N=a.algorithm.namedCurve,I=a._handle,H=ro(C,I.priv,F,N);return H.buffer.slice(H.byteOffset,H.byteOffset+H.byteLength)}case`RSA-PSS`:{let S=a.algorithm.hash.name,C=toNodeHashName(S),N=a._handle,I=n.saltLength??hashSize$1(S),H=ao(C,N.pem,F,I);return H.buffer.slice(H.byteOffset,H.byteOffset+H.byteLength)}default:throw new DOMException(`Unsupported algorithm: ${C.name}`,`NotSupportedError`)}}async verify(n,a,S,C){await lo,checkUsage(a,`verify`);let N=normalizeAlgorithm$1(n),F=N.name.toUpperCase(),I=toUint8Array(C),H=toUint8Array(S);switch(F){case`HMAC`:{let n=a.algorithm.hash.name,S=toNodeHashName(n),C=a._handle,N=Ja(S,C);N.update(I);let F=new Uint8Array(N.digest());if(F.length!==H.length)return!1;let W=0;for(let n=0;n<F.length;n++)W|=F[n]^H[n];return W===0}case`RSASSA-PKCS1-V1_5`:{let n=a.algorithm.hash.name,S=toNodeHashName(n),C=a._handle,N=Qa(S);return N.update(I),N.verify(C.pem,H)}case`ECDSA`:{let S=n,C=toNodeHashName(typeof S.hash==`string`?S.hash:S.hash.name),N=a.algorithm.namedCurve,F=a._handle;return io(C,F,H,I,N)}case`RSA-PSS`:{let S=a.algorithm.hash.name,C=toNodeHashName(S),N=a._handle,F=n.saltLength??hashSize$1(S);return oo(C,N.pem,H,I,F)}default:throw new DOMException(`Unsupported algorithm: ${N.name}`,`NotSupportedError`)}}async _deriveBitsInternal(n,a,S){await lo;let C=normalizeAlgorithm$1(n);switch(C.name.toUpperCase()){case`PBKDF2`:{let C=n,N=toNodeHashName(normalizeAlgorithm$1(C.hash).name),F=toUint8Array(C.salt),I=C.iterations,H=a._handle,W=$a(H,F,I,S/8,N);return W.buffer.slice(W.byteOffset,W.byteOffset+W.byteLength)}case`HKDF`:{let C=n,N=toNodeHashName(normalizeAlgorithm$1(C.hash).name),F=toUint8Array(C.salt),I=toUint8Array(C.info),H=a._handle;return eo(N,H,F,I,S/8)}case`ECDH`:{let C=n.public,N=a.algorithm.namedCurve,F=toNodeCurveName(N),I=to(F),H=a._handle;I.setPrivateKey(H.priv);let W=C._handle instanceof Uint8Array?C._handle:C._handle.pub,K=I.computeSecret(W),q=new Uint8Array(K);return S?q.buffer.slice(0,S/8):q.buffer.slice(q.byteOffset,q.byteOffset+q.byteLength)}default:throw new DOMException(`Unsupported algorithm: ${C.name}`,`NotSupportedError`)}}async deriveBits(n,a,S){return checkUsage(a,`deriveBits`),this._deriveBitsInternal(n,a,S)}async deriveKey(n,a,S,C,N){checkUsage(a,`deriveKey`);let F=normalizeAlgorithm$1(S),I,H=F.name.toUpperCase();if(H===`AES-CBC`||H===`AES-CTR`||H===`AES-GCM`)I=S.length;else if(H===`HMAC`){let n=S,a=normalizeAlgorithm$1(n.hash);I=n.length||hashSize$1(a.name)*8}else throw new DOMException(`Unsupported derived key algorithm: ${F.name}`,`NotSupportedError`);let W=await this._deriveBitsInternal(n,a,I);return this.importKey(`raw`,W,S,C,N)}async wrapKey(n,a,S,C){throw new DOMException(`wrapKey not yet implemented`,`NotSupportedError`)}async unwrapKey(n,a,S,C,N,F,I){throw new DOMException(`unwrapKey not yet implemented`,`NotSupportedError`)}};const uo=globalThis.crypto===void 0?null:globalThis.crypto;var CryptoPolyfill=class{subtle=new SubtleCrypto;getRandomValues(n){if(!(n instanceof Int8Array||n instanceof Uint8Array||n instanceof Int16Array||n instanceof Uint16Array||n instanceof Int32Array||n instanceof Uint32Array||n instanceof Uint8ClampedArray||n instanceof BigInt64Array||n instanceof BigUint64Array))throw new DOMException(`The provided value is not of type '(Int8Array or Int16Array or Int32Array or Uint8Array or Uint8ClampedArray or Uint16Array or Uint32Array or BigInt64Array or BigUint64Array)'`,`TypeMismatchError`);if(n.byteLength>65536)throw new DOMException(`The ArrayBufferView's byte length exceeds the number of bytes of entropy available via this API (65536)`,`QuotaExceededError`);let a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);if(uo&&typeof uo.getRandomValues==`function`)uo.getRandomValues(a);else for(let n=0;n<a.length;n++)a[n]=Math.floor(Math.random()*256);return n}randomUUID(){if(uo&&typeof uo.randomUUID==`function`)return uo.randomUUID();let n=new Uint8Array(16);this.getRandomValues(n),n[6]=n[6]&15|64,n[8]=n[8]&63|128;let a=Array.from(n,n=>n.toString(16).padStart(2,`0`)).join(``);return`${a.slice(0,8)}-${a.slice(8,12)}-${a.slice(12,16)}-${a.slice(16,20)}-${a.slice(20)}`}};const fo=uo!==null&&uo.subtle!==void 0&&typeof uo.subtle.digest==`function`,po=fo?uo:new CryptoPolyfill;fo?uo.subtle:new SubtleCrypto;const mo=globalThis;(globalThis.crypto===void 0||globalThis.crypto.subtle===void 0)&&(mo.crypto=po);var ho,go,_o=__esmMin(()=>{ho=Object.defineProperty,go=__name$1((n,a)=>{let S={};for(var C in n)ho(S,C,{get:n[C],enumerable:!0});return a||ho(S,Symbol.toStringTag,{value:`Module`}),S},`__exportAll`)});function getEncodingFromOptions(n={encoding:null,flag:`r`},a=`utf8`){return n===null?a:typeof n==`string`?n:typeof n==`object`&&typeof n.encoding==`string`?n.encoding:a}function encodeUint8Array(n,a){return n===`buffer`?dt.from(a):new TextDecoder(n).decode(a)}function decode(n,a){if(a){let S=new TextDecoder(a),C=new TextEncoder;return S.decode(C.encode(n))}else return n}var vo=__esmMin(()=>{bt()}),yo,bo,xo=__esmMin(()=>{yo=Object.defineProperty,bo=__name$1((n,a)=>{let S={};for(var C in n)yo(S,C,{get:n[C],enumerable:!0});return a||yo(S,Symbol.toStringTag,{value:`Module`}),S},`__exportAll`)});function assertPath(n){if(typeof n!=`string`)throw TypeError(`The "path" argument must be of type string. Received type `+typeof n)}function isPosixPathSeparator(n){return n===47}function isPathSeparator(n){return n===47||n===92}function isWindowsDeviceRoot(n){return n>=65&&n<=90||n>=97&&n<=122}function normalizeString$1(n,a,S,C){let N=``,F=0,I=-1,H=0,W;for(let K=0;K<=n.length;++K){if(K<n.length)W=n.charCodeAt(K);else if(C(W))break;else W=47;if(C(W)){if(!(I===K-1||H===1))if(I!==K-1&&H===2){if(N.length<2||F!==2||N.charCodeAt(N.length-1)!==46||N.charCodeAt(N.length-2)!==46){if(N.length>2){let n=N.lastIndexOf(S);n===-1?(N=``,F=0):(N=N.slice(0,n),F=N.length-1-N.lastIndexOf(S)),I=K,H=0;continue}else if(N.length===2||N.length===1){N=``,F=0,I=K,H=0;continue}}a&&(N.length>0?N+=`${S}..`:N=`..`,F=2)}else N.length>0?N+=S+n.slice(I+1,K):N=n.slice(I+1,K),F=K-I-1;I=K,H=0}else W===46&&H!==-1?++H:H=-1}return N}function _format(n,a){if(typeof a!=`object`||!a)throw TypeError(`The "pathObject" argument must be of type Object. Received type `+typeof a);let S=a.dir||a.root,C=a.base||(a.name||``)+formatExt(a.ext);return S?S===a.root?S+C:S+n+C:C}function formatExt(n){return n?`${n[0]===`.`?``:`.`}${n}`:``}var So=__esmMin(()=>{__name$1(normalizeString$1,`normalizeString`)});function posixCwd(){if(typeof globalThis.process?.cwd==`function`)return globalThis.process.cwd();try{let n=globalThis.imports?.gi?.GLib;if(n?.get_current_dir)return n.get_current_dir()}catch{}return`/`}function resolve$2(...n){let a=``,S=!1;for(let C=n.length-1;C>=-1&&!S;C--){let N;if(C>=0){if(N=n[C],assertPath(N),N.length===0)continue}else N=posixCwd();a=`${N}/${a}`,S=N.charCodeAt(0)===47}return a=normalizeString$1(a,!S,`/`,isPosixPathSeparator),S?a.length>0?`/${a}`:`/`:a.length>0?a:`.`}function normalize$2(n){if(assertPath(n),n.length===0)return`.`;let a=n.charCodeAt(0)===47,S=n.charCodeAt(n.length-1)===47,C=normalizeString$1(n,!a,`/`,isPosixPathSeparator);return C.length===0&&!a&&(C=`.`),C.length>0&&S&&(C+=`/`),a?`/${C}`:C}function isAbsolute$2(n){return assertPath(n),n.length>0&&n.charCodeAt(0)===47}function join$2(...n){if(n.length===0)return`.`;let a;for(let S=0;S<n.length;++S){let C=n[S];assertPath(C),C.length>0&&(a===void 0?a=C:a+=`/${C}`)}return a===void 0?`.`:normalize$2(a)}function relative$1(n,a){if(assertPath(n),assertPath(a),n===a||(n=resolve$2(n),a=resolve$2(a),n===a))return``;let S=n.length,C=S-1,N=1,F=a.length-N,I=C<F?C:F,H=-1,W=0;for(;W<=I;++W){if(W===I){if(F>I){if(a.charCodeAt(N+W)===47)return a.slice(N+W+1);if(W===0)return a.slice(N+W)}else C>I&&(n.charCodeAt(1+W)===47?H=W:W===0&&(H=0));break}let S=n.charCodeAt(1+W);if(S!==a.charCodeAt(N+W))break;S===47&&(H=W)}let K=``;for(W=1+H+1;W<=S;++W)(W===S||n.charCodeAt(W)===47)&&(K.length===0?K+=`..`:K+=`/..`);return K.length>0?K+a.slice(N+H):(N+=H,a.charCodeAt(N)===47&&++N,a.slice(N))}function toNamespacedPath$1(n){return n}function dirname$1(n){if(assertPath(n),n.length===0)return`.`;let a=n.charCodeAt(0)===47,S=-1,C=!0;for(let a=n.length-1;a>=1;--a)if(n.charCodeAt(a)===47){if(!C){S=a;break}}else C=!1;return S===-1?a?`/`:`.`:a&&S===1?`//`:n.slice(0,S)}function basename$1(n,a){a!==void 0&&assertPath(a),assertPath(n);let S=0,C=-1,N=!0;if(a!==void 0&&a.length>0&&a.length<=n.length){if(a.length===n.length&&a===n)return``;let F=a.length-1,I=-1;for(let H=n.length-1;H>=0;--H){let W=n.charCodeAt(H);if(W===47){if(!N){S=H+1;break}}else I===-1&&(N=!1,I=H+1),F>=0&&(W===a.charCodeAt(F)?--F===-1&&(C=H):(F=-1,C=I))}return S===C?C=I:C===-1&&(C=n.length),n.slice(S,C)}else{for(let a=n.length-1;a>=0;--a)if(n.charCodeAt(a)===47){if(!N){S=a+1;break}}else C===-1&&(N=!1,C=a+1);return C===-1?``:n.slice(S,C)}}function extname$2(n){assertPath(n);let a=-1,S=0,C=-1,N=!0,F=0;for(let I=n.length-1;I>=0;--I){let H=n.charCodeAt(I);if(H===47){if(!N){S=I+1;break}continue}C===-1&&(N=!1,C=I+1),H===46?a===-1?a=I:F!==1&&(F=1):a!==-1&&(F=-1)}return a===-1||C===-1||F===0||F===1&&a===C-1&&a===S+1?``:n.slice(a,C)}function format$3(n){if(typeof n!=`object`||!n)throw TypeError(`The "pathObject" argument must be of type Object. Received type `+typeof n);return _format(`/`,n)}function parse$3(n){assertPath(n);let a={root:``,dir:``,base:``,ext:``,name:``};if(n.length===0)return a;let S=n.charCodeAt(0)===47,C;S?(a.root=`/`,C=1):C=0;let N=-1,F=0,I=-1,H=!0,W=n.length-1,K=0;for(;W>=C;--W){let a=n.charCodeAt(W);if(a===47){if(!H){F=W+1;break}continue}I===-1&&(H=!1,I=W+1),a===46?N===-1?N=W:K!==1&&(K=1):N!==-1&&(K=-1)}return N===-1||I===-1||K===0||K===1&&N===I-1&&N===F+1?I!==-1&&(F===0&&S?a.base=a.name=n.slice(1,I):a.base=a.name=n.slice(F,I)):(F===0&&S?(a.name=n.slice(1,N),a.base=n.slice(1,I)):(a.name=n.slice(F,N),a.base=n.slice(F,I)),a.ext=n.slice(N,I)),F>0?a.dir=n.slice(0,F-1):S&&(a.dir=`/`),a}var Co,wo=__esmMin(()=>{xo(),So(),Co=bo({basename:()=>basename$1,delimiter:()=>`:`,dirname:()=>dirname$1,extname:()=>extname$2,format:()=>format$3,isAbsolute:()=>isAbsolute$2,join:()=>join$2,normalize:()=>normalize$2,parse:()=>parse$3,relative:()=>relative$1,resolve:()=>resolve$2,sep:()=>`/`,toNamespacedPath:()=>toNamespacedPath$1}),__name$1(resolve$2,`resolve`),__name$1(normalize$2,`normalize`),__name$1(isAbsolute$2,`isAbsolute`),__name$1(join$2,`join`),__name$1(relative$1,`relative`),__name$1(toNamespacedPath$1,`toNamespacedPath`),__name$1(dirname$1,`dirname`),__name$1(basename$1,`basename`),__name$1(extname$2,`extname`),__name$1(format$3,`format`),__name$1(parse$3,`parse`)});function resolve$1(...n){let a=``,S=``,C=!1;for(let N=n.length-1;N>=-1;N--){let F;if(N>=0){if(F=n[N],assertPath(F),F.length===0)continue}else F=(a.length,typeof globalThis.process?.cwd==`function`?globalThis.process.cwd():`/`);let I=F.length,H=0,W=``,K=!1,q=F.charCodeAt(0);if(I>1)if(isPathSeparator(q))if(K=!0,isPathSeparator(F.charCodeAt(1))){let n=2,a=n;for(;n<I&&!isPathSeparator(F.charCodeAt(n));++n);if(n<I&&n!==a){let S=F.slice(a,n);for(a=n;n<I&&isPathSeparator(F.charCodeAt(n));++n);if(n<I&&n!==a){for(a=n;n<I&&!isPathSeparator(F.charCodeAt(n));++n);n===I?(W=`\\\\${S}\\${F.slice(a)}`,H=n):n!==a&&(W=`\\\\${S}\\${F.slice(a,n)}`,H=n)}}}else H=1;else isWindowsDeviceRoot(q)&&F.charCodeAt(1)===58&&(W=F.slice(0,2),H=2,I>2&&isPathSeparator(F.charCodeAt(2))&&(K=!0,H=3));else isPathSeparator(q)&&(H=1,K=!0);if(!(W.length>0&&a.length>0&&W.toLowerCase()!==a.toLowerCase())&&(a.length===0&&W.length>0&&(a=W),C||=(S=`${F.slice(H)}\\${S}`,K),a.length>0&&C))break}return S=normalizeString$1(S,!C,`\\`,isPathSeparator),a+(C?`\\`:``)+S||`.`}function normalize$1(n){assertPath(n);let a=n.length;if(a===0)return`.`;let S=0,C,N=!1,F=n.charCodeAt(0);if(a>1)if(isPathSeparator(F))if(N=!0,isPathSeparator(n.charCodeAt(1))){let N=2,F=N;for(;N<a&&!isPathSeparator(n.charCodeAt(N));++N);if(N<a&&N!==F){let I=n.slice(F,N);for(F=N;N<a&&isPathSeparator(n.charCodeAt(N));++N);if(N<a&&N!==F){for(F=N;N<a&&!isPathSeparator(n.charCodeAt(N));++N);if(N===a)return`\\\\${I}\\${n.slice(F)}\\`;N!==F&&(C=`\\\\${I}\\${n.slice(F,N)}`,S=N)}}}else S=1;else isWindowsDeviceRoot(F)&&n.charCodeAt(1)===58&&(C=n.slice(0,2),S=2,a>2&&isPathSeparator(n.charCodeAt(2))&&(N=!0,S=3));else if(isPathSeparator(F))return`\\`;let I;return I=S<a?normalizeString$1(n.slice(S),!N,`\\`,isPathSeparator):``,I.length===0&&!N&&(I=`.`),I.length>0&&isPathSeparator(n.charCodeAt(a-1))&&(I+=`\\`),C===void 0?N?I.length>0?`\\${I}`:`\\`:I.length>0?I:``:N?I.length>0?`${C}\\${I}`:`${C}\\`:I.length>0?C+I:C}function isAbsolute$1(n){assertPath(n);let a=n.length;if(a===0)return!1;let S=n.charCodeAt(0);return!!(isPathSeparator(S)||isWindowsDeviceRoot(S)&&a>2&&n.charCodeAt(1)===58&&isPathSeparator(n.charCodeAt(2)))}function join$1(...n){if(n.length===0)return`.`;let a,S;for(let C=0;C<n.length;++C){let N=n[C];assertPath(N),N.length>0&&(a===void 0?a=S=N:a+=`\\${N}`)}if(a===void 0)return`.`;let C=!0,N=0;if(isPathSeparator(S.charCodeAt(0))){++N;let n=S.length;n>1&&isPathSeparator(S.charCodeAt(1))&&(++N,n>2&&(isPathSeparator(S.charCodeAt(2))?++N:C=!1))}if(C){for(;N<a.length&&isPathSeparator(a.charCodeAt(N));++N);N>=2&&(a=`\\${a.slice(N)}`)}return normalize$1(a)}function relative(n,a){if(assertPath(n),assertPath(a),n===a)return``;let S=resolve$1(n),C=resolve$1(a);if(S===C||(n=S.toLowerCase(),a=C.toLowerCase(),n===a))return``;let N=0;for(;N<n.length&&n.charCodeAt(N)===92;++N);let F=n.length;for(;F-1>N&&n.charCodeAt(F-1)===92;--F);let I=F-N,H=0;for(;H<a.length&&a.charCodeAt(H)===92;++H);let W=a.length;for(;W-1>H&&a.charCodeAt(W-1)===92;--W);let K=W-H,q=I<K?I:K,Y=-1,X=0;for(;X<=q;++X){if(X===q){if(K>q){if(a.charCodeAt(H+X)===92)return C.slice(H+X+1);if(X===2)return C.slice(H+X)}I>q&&(n.charCodeAt(N+X)===92?Y=X:X===2&&(Y=3));break}let S=n.charCodeAt(N+X);if(S!==a.charCodeAt(H+X))break;S===92&&(Y=X)}if(X!==q&&Y===-1)return C;let te=``;for(Y===-1&&(Y=0),X=N+Y+1;X<=F;++X)(X===F||n.charCodeAt(X)===92)&&(te.length===0?te+=`..`:te+=`\\..`);return te.length>0?te+C.slice(H+Y,W):(H+=Y,C.charCodeAt(H)===92&&++H,C.slice(H,W))}function toNamespacedPath(n){if(typeof n!=`string`)return n;if(n.length===0)return``;let a=resolve$1(n);if(a.length>=3){if(a.charCodeAt(0)===92){if(a.charCodeAt(1)===92){let n=a.charCodeAt(2);if(n!==63&&n!==46)return`\\\\?\\UNC\\${a.slice(2)}`}}else if(isWindowsDeviceRoot(a.charCodeAt(0))&&a.charCodeAt(1)===58&&a.charCodeAt(2)===92)return`\\\\?\\${a}`}return n}function dirname(n){assertPath(n);let a=n.length;if(a===0)return`.`;let S=-1,C=-1,N=!0,F=0,I=n.charCodeAt(0);if(a>1)if(isPathSeparator(I)){if(S=F=1,isPathSeparator(n.charCodeAt(1))){let C=2,N=C;for(;C<a&&!isPathSeparator(n.charCodeAt(C));++C);if(C<a&&C!==N){for(N=C;C<a&&isPathSeparator(n.charCodeAt(C));++C);if(C<a&&C!==N){for(N=C;C<a&&!isPathSeparator(n.charCodeAt(C));++C);if(C===a)return n;C!==N&&(S=F=C+1)}}}}else isWindowsDeviceRoot(I)&&n.charCodeAt(1)===58&&(S=F=2,a>2&&isPathSeparator(n.charCodeAt(2))&&(S=F=3));else if(isPathSeparator(I))return n;for(let S=a-1;S>=F;--S)if(isPathSeparator(n.charCodeAt(S))){if(!N){C=S;break}}else N=!1;if(C===-1){if(S===-1)return`.`;C=S}return n.slice(0,C)}function basename(n,a){a!==void 0&&assertPath(a),assertPath(n);let S=0,C=-1,N=!0;if(n.length>=2&&isWindowsDeviceRoot(n.charCodeAt(0))&&n.charCodeAt(1)===58&&(S=2),a!==void 0&&a.length>0&&a.length<=n.length){if(a.length===n.length&&a===n)return``;let F=a.length-1,I=-1;for(let H=n.length-1;H>=S;--H){let W=n.charCodeAt(H);if(isPathSeparator(W)){if(!N){S=H+1;break}}else I===-1&&(N=!1,I=H+1),F>=0&&(W===a.charCodeAt(F)?--F===-1&&(C=H):(F=-1,C=I))}return S===C?C=I:C===-1&&(C=n.length),n.slice(S,C)}else{for(let a=n.length-1;a>=S;--a)if(isPathSeparator(n.charCodeAt(a))){if(!N){S=a+1;break}}else C===-1&&(N=!1,C=a+1);return C===-1?``:n.slice(S,C)}}function extname$1(n){assertPath(n);let a=0,S=-1,C=0,N=-1,F=!0,I=0;n.length>=2&&n.charCodeAt(1)===58&&isWindowsDeviceRoot(n.charCodeAt(0))&&(a=C=2);for(let H=n.length-1;H>=a;--H){let a=n.charCodeAt(H);if(isPathSeparator(a)){if(!F){C=H+1;break}continue}N===-1&&(F=!1,N=H+1),a===46?S===-1?S=H:I!==1&&(I=1):S!==-1&&(I=-1)}return S===-1||N===-1||I===0||I===1&&S===N-1&&S===C+1?``:n.slice(S,N)}function format$2(n){if(typeof n!=`object`||!n)throw TypeError(`The "pathObject" argument must be of type Object. Received type `+typeof n);return _format(`\\`,n)}function parse$2(n){assertPath(n);let a={root:``,dir:``,base:``,ext:``,name:``};if(n.length===0)return a;let S=n.length,C=0,N=n.charCodeAt(0);if(S>1)if(isPathSeparator(N)){if(C=1,isPathSeparator(n.charCodeAt(1))){let a=2,N=a;for(;a<S&&!isPathSeparator(n.charCodeAt(a));++a);if(a<S&&a!==N){for(N=a;a<S&&isPathSeparator(n.charCodeAt(a));++a);if(a<S&&a!==N){for(N=a;a<S&&!isPathSeparator(n.charCodeAt(a));++a);a===S?C=a:a!==N&&(C=a+1)}}}}else isWindowsDeviceRoot(N)&&n.charCodeAt(1)===58&&(C=2,S>2&&isPathSeparator(n.charCodeAt(2))&&(C=3));else if(isPathSeparator(N))return a.root=a.dir=n,a;C>0&&(a.root=n.slice(0,C));let F=-1,I=C,H=-1,W=!0,K=n.length-1,q=0;for(;K>=C;--K){if(N=n.charCodeAt(K),isPathSeparator(N)){if(!W){I=K+1;break}continue}H===-1&&(W=!1,H=K+1),N===46?F===-1?F=K:q!==1&&(q=1):F!==-1&&(q=-1)}return F===-1||H===-1||q===0||q===1&&F===H-1&&F===I+1?H!==-1&&(a.base=a.name=n.slice(I,H)):(a.name=n.slice(I,F),a.base=n.slice(I,H),a.ext=n.slice(F,H)),I>0&&I!==C?a.dir=n.slice(0,I-1):a.dir=a.root,a}var To,Eo=__esmMin(()=>{xo(),So(),To=bo({basename:()=>basename,delimiter:()=>`;`,dirname:()=>dirname,extname:()=>extname$1,format:()=>format$2,isAbsolute:()=>isAbsolute$1,join:()=>join$1,normalize:()=>normalize$1,parse:()=>parse$2,relative:()=>relative,resolve:()=>resolve$1,sep:()=>`\\`,toNamespacedPath:()=>toNamespacedPath}),__name$1(resolve$1,`resolve`),__name$1(normalize$1,`normalize`),__name$1(isAbsolute$1,`isAbsolute`),__name$1(join$1,`join`),__name$1(extname$1,`extname`),__name$1(format$2,`format`),__name$1(parse$2,`parse`)}),Do=__exportAll$3({basename:()=>Fo,default:()=>Vo,delimiter:()=>Bo,dirname:()=>Po,extname:()=>Io,format:()=>Lo,isAbsolute:()=>Ao,join:()=>jo,normalize:()=>ko,parse:()=>Ro,posix:()=>Co,relative:()=>Mo,resolve:()=>Oo,sep:()=>zo,toNamespacedPath:()=>No,win32:()=>To}),Oo,ko,Ao,jo,Mo,No,Po,Fo,Io,Lo,Ro,zo,Bo,Vo,Ho=__esmMin(()=>{wo(),Eo(),{resolve:Oo,normalize:ko,isAbsolute:Ao,join:jo,relative:Mo,toNamespacedPath:No,dirname:Po,basename:Fo,extname:Io,format:Lo,parse:Ro,sep:zo,delimiter:Bo}=Co,Vo={resolve:resolve$2,normalize:normalize$2,isAbsolute:isAbsolute$2,join:join$2,relative:relative$1,toNamespacedPath:toNamespacedPath$1,dirname:dirname$1,basename:basename$1,extname:extname$2,format:format$3,parse:parse$3,sep:`/`,delimiter:`:`,posix:Co,win32:To}}),Dirent,Uo=__esmMin(()=>{ve(),Ho(),Dirent=class{name;parentPath;_isFile=!1;_isDirectory=!1;_isBlockDevice=!1;_isCharacterDevice=!1;_isSymbolicLink=!1;_isFIFO=!1;_isSocket=!1;_file;constructor(n,a,S){switch(a||=Fo(n),this.name=a,this.parentPath=Po(n),this._file=_e.File.new_for_path(n),S??this._file.query_file_type(_e.FileQueryInfoFlags.NONE,null)){case _e.FileType.DIRECTORY:this._isDirectory=!0;break;case _e.FileType.MOUNTABLE:break;case _e.FileType.REGULAR:this._isFile=!0;break;case _e.FileType.SYMBOLIC_LINK:case _e.FileType.SHORTCUT:this._isSymbolicLink=!0;break;case _e.FileType.SPECIAL:this._classifySpecialFile(n);break}}_classifySpecialFile(n){try{let a=_e.File.new_for_path(n).query_info(`unix::mode`,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null).get_attribute_uint32(`unix::mode`);if(a===0)return;switch(a&61440){case 24576:this._isBlockDevice=!0;break;case 8192:this._isCharacterDevice=!0;break;case 49152:this._isSocket=!0;break;case 4096:this._isFIFO=!0;break}}catch{}}isFile(){return this._isFile}isDirectory(){return this._isDirectory}isBlockDevice(){return this._isBlockDevice}isCharacterDevice(){return this._isCharacterDevice}isSymbolicLink(){return this._isSymbolicLink}isFIFO(){return this._isFIFO}isSocket(){return this._isSocket}}});function populateFromInfo(n){let a=n.get_attribute_uint64(`time::access`),S=n.get_attribute_uint32(`time::access-usec`)||0,C=n.get_attribute_uint64(`time::modified`),N=n.get_attribute_uint32(`time::modified-usec`)||0,F=n.get_attribute_uint64(`time::changed`),I=n.get_attribute_uint32(`time::changed-usec`)||0,H=n.get_attribute_uint64(`time::created`),W=n.get_attribute_uint32(`time::created-usec`)||0,K=a*1e3+S/1e3,q=C*1e3+N/1e3,Y=F?F*1e3+I/1e3:q,X=H?H*1e3+W/1e3:Y;return{dev:n.get_attribute_uint32(`unix::device`)||0,ino:Number(n.get_attribute_uint64(`unix::inode`)||0),mode:n.get_attribute_uint32(`unix::mode`)||0,nlink:n.get_attribute_uint32(`unix::nlink`)||0,uid:n.get_attribute_uint32(`unix::uid`)||0,gid:n.get_attribute_uint32(`unix::gid`)||0,rdev:n.get_attribute_uint32(`unix::rdev`)||0,size:Number(n.get_size()||0),blksize:n.get_attribute_uint32(`unix::block-size`)||4096,blocks:Number(n.get_attribute_uint64(`unix::blocks`)||0),atimeMs:K,mtimeMs:q,ctimeMs:Y,birthtimeMs:X,atime:new Date(K),mtime:new Date(q),ctime:new Date(Y),birthtime:new Date(X)}}var Wo,Stats,BigIntStats,Go=__esmMin(()=>{Uo(),ve(),Ho(),Wo=`standard::*,time::*,unix::*`,Stats=class extends Dirent{dev;ino;mode;nlink;uid;gid;rdev;size;blksize;blocks;atimeMs;mtimeMs;ctimeMs;birthtimeMs;atime;mtime;ctime;birthtime;_info;constructor(n,a,S){let C,N;n instanceof _e.FileInfo?(C=n,N=a.toString(),S||=Fo(N)):(N=n.toString(),typeof a==`string`&&(S=a),S||=Fo(N),C=_e.File.new_for_path(N).query_info(Wo,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)),super(N,S,C.get_file_type()),this._info=C;let F=populateFromInfo(C);this.dev=F.dev,this.ino=F.ino,this.mode=F.mode,this.nlink=F.nlink,this.uid=F.uid,this.gid=F.gid,this.rdev=F.rdev,this.size=F.size,this.blksize=F.blksize,this.blocks=F.blocks,this.atimeMs=F.atimeMs,this.mtimeMs=F.mtimeMs,this.ctimeMs=F.ctimeMs,this.birthtimeMs=F.birthtimeMs,this.atime=F.atime,this.mtime=F.mtime,this.ctime=F.ctime,this.birthtime=F.birthtime}},BigIntStats=class extends Dirent{dev;ino;mode;nlink;uid;gid;rdev;size;blksize;blocks;atimeMs;mtimeMs;ctimeMs;birthtimeMs;atimeNs;mtimeNs;ctimeNs;birthtimeNs;atime;mtime;ctime;birthtime;_info;constructor(n,a,S){let C,N;n instanceof _e.FileInfo?(C=n,N=a.toString(),S||=Fo(N)):(N=n.toString(),typeof a==`string`&&(S=a),S||=Fo(N),C=_e.File.new_for_path(N).query_info(Wo,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)),super(N,S,C.get_file_type()),this._info=C;let F=populateFromInfo(C);this.dev=BigInt(F.dev),this.ino=BigInt(F.ino),this.mode=BigInt(F.mode),this.nlink=BigInt(F.nlink),this.uid=BigInt(F.uid),this.gid=BigInt(F.gid),this.rdev=BigInt(F.rdev),this.size=BigInt(F.size),this.blksize=BigInt(F.blksize),this.blocks=BigInt(F.blocks),this.atimeMs=BigInt(Math.trunc(F.atimeMs)),this.mtimeMs=BigInt(Math.trunc(F.mtimeMs)),this.ctimeMs=BigInt(Math.trunc(F.ctimeMs)),this.birthtimeMs=BigInt(Math.trunc(F.birthtimeMs)),this.atimeNs=this.atimeMs*1000000n,this.mtimeNs=this.mtimeMs*1000000n,this.ctimeNs=this.ctimeMs*1000000n,this.birthtimeNs=this.birthtimeMs*1000000n,this.atime=F.atime,this.mtime=F.mtime,this.ctime=F.ctime,this.birthtime=F.birthtime}}});function createReadStream(n,a){return new ReadStream$1(n,a)}var ReadStream$1,Ko=__esmMin(()=>{Ss(),se(),ve(),bt(),Jr(),ReadStream$1=class extends Hr{static{__name$1(this,`ReadStream`)}bytesRead=0;path;pending=!0;fd=null;_gioFile;_inputStream=null;_cancellable=new _e.Cancellable;_start;_end;_pos;close(n){this._cancellable.cancel(),this._inputStream&&=(this._inputStream.close_async(Z.PRIORITY_DEFAULT,null,()=>{}),null),this.destroy(),n&&n(null)}constructor(n,a){let S=normalizePath(n);super({highWaterMark:a?.highWaterMark??64*1024,encoding:a?.encoding,objectMode:!1}),this.path=S,this._gioFile=_e.File.new_for_path(S),this._start=a?.start??0,this._end=a?.end??1/0,this._pos=this._start}_construct(n){this._gioFile.read_async(Z.PRIORITY_DEFAULT,this._cancellable,(a,S)=>{if(this.destroyed){n();return}try{this._inputStream=this._gioFile.read_finish(S),this.pending=!1,this.emit(`open`,0),this.emit(`ready`),this._start>0&&this._inputStream.can_seek()&&this._inputStream.seek(this._start,Z.SeekType.SET,null),n()}catch(a){this._cancellable.is_cancelled()||n(a)}})}_read(n){this._doRead(n)}_doRead(n){let a=n;if(this._end!==1/0){let S=this._end-this._pos+1;if(S<=0){this.push(null);return}a=Math.min(n,S)}let S=this._inputStream;S.read_bytes_async(a,Z.PRIORITY_DEFAULT,this._cancellable,(n,a)=>{try{let n=S.read_bytes_finish(a).get_data();if(!n||n.length===0){this.push(null);return}this.bytesRead+=n.length,this._pos+=n.length,this.push(dt.from(n))}catch(n){this._cancellable.is_cancelled()||this.destroy(n)}})}_destroy(n,a){this._cancellable.cancel(),this._inputStream&&=(this._inputStream.close_async(Z.PRIORITY_DEFAULT,null,()=>{}),null),a(n)}}});function createNodeError(n,a,S,C){return createNodeError$1(n,a,{path:S.toString(),dest:C?.toString()})}var qo=__esmMin(()=>{et()});function makeEEXIST(n){let a=Error(`ERR_FS_CP_EEXIST: file already exists, copyfile '${n}'`);return a.code=`ERR_FS_CP_EEXIST`,a.syscall=`copyfile`,a.path=n,a}function makeEISDIR(n){let a=Error(`ERR_FS_EISDIR: illegal operation on a directory, copyfile '${n}'`);return a.code=`ERR_FS_EISDIR`,a.syscall=`copyfile`,a.path=n,a}function makeENOTDIR(n,a){let S=Error(`ENOTDIR: not a directory, copyfile '${n}' -> '${a}'`);return S.code=`ENOTDIR`,S.syscall=`copyfile`,S.path=n,S.dest=a,S}function makeSYMLINKLOOP(n,a){let S=Error(`ELOOP: too many levels of symbolic links, copyfile '${n}' -> '${a}'`);return S.code=`ELOOP`,S.syscall=`copyfile`,S.path=n,S.dest=a,S}function queryCopyFlags(n){let a=n.force??!0,S=_e.FileCopyFlags.NONE;return a&&(S|=_e.FileCopyFlags.OVERWRITE),n.preserveTimestamps&&(S|=_e.FileCopyFlags.TARGET_DEFAULT_MODIFIED_TIME),n.dereference||(S|=_e.FileCopyFlags.NOFOLLOW_SYMLINKS),S}function copyOneSyncFile(n,a,S,C,N){let F=N.force??!0;try{if(a.query_info(`standard::type`,_e.FileQueryInfoFlags.NONE,null).get_file_type()===_e.FileType.DIRECTORY)throw makeENOTDIR(S,C);if(!F){if(N.errorOnExist)throw makeEEXIST(C);return}}catch(n){if(typeof n.code==`string`)throw n}let I=queryCopyFlags(N);try{n.copy(a,I,null,null)}catch(n){throw createNodeError(n,`copyfile`,S,C)}}function cpOneDirSync(n,a,S,C,N){let F=S.endsWith(`/`)?``:`/`;if(C.startsWith(S+F)&&C!==S)throw makeSYMLINKLOOP(S,C);if(a.query_exists(null))try{if(a.query_info(`standard::type`,_e.FileQueryInfoFlags.NONE,null).get_file_type()!==_e.FileType.DIRECTORY)throw makeENOTDIR(C,S)}catch(n){if(typeof n.code==`string`)throw n}else try{a.make_directory_with_parents(null)}catch(n){throw createNodeError(n,`mkdir`,C)}let I;try{I=n.enumerate_children(`standard::name,standard::type,standard::is-symlink`,N.dereference?_e.FileQueryInfoFlags.NONE:_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(n){throw createNodeError(n,`scandir`,S)}let H=I.next_file(null);for(;H!==null;){let n=H.get_name(),a=jo(S,n),F=jo(C,n),W=N.filter;if(W&&!W(a,F)){H=I.next_file(null);continue}cpSyncInternal(a,F,N),H=I.next_file(null)}}function cpSyncInternal(n,a,S){let C=_e.File.new_for_path(n),N=_e.File.new_for_path(a),F;try{F=C.query_info(`standard::type,standard::is-symlink`,S.dereference?_e.FileQueryInfoFlags.NONE:_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(a){throw createNodeError(a,`stat`,n)}if(F.get_file_type()===_e.FileType.DIRECTORY){if(!S.recursive)throw makeEISDIR(n);cpOneDirSync(C,N,n,a,S)}else copyOneSyncFile(C,N,n,a,S)}function cpSync(n,a,S){let C=normalizePath(n),N=normalizePath(a),F=S??{},I=_e.File.new_for_path(C),H=F.filter;if(!(H&&!H(C,N))){try{if(I.query_info(`standard::type`,F.dereference?_e.FileQueryInfoFlags.NONE:_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null).get_file_type()===_e.FileType.DIRECTORY&&!F.recursive)throw makeEISDIR(C)}catch(n){throw typeof n.code==`string`?n:createNodeError(n,`stat`,C)}cpSyncInternal(C,N,F)}}function cp(n,a,S,C){let N,F;typeof S==`function`?(F=S,N={}):(F=C,N=S);let I=N.filter;if(I){Promise.resolve(I(normalizePath(n),normalizePath(a))).then(S=>{if(!S){F(null);return}try{cpPromises(n,a,N).then(()=>F(null)).catch(F)}catch(n){F(n)}}).catch(F);return}Promise.resolve().then(()=>{try{cpSync(n,a,N),F(null)}catch(n){F(n)}})}async function cpPromisesDir(n,a,S){let C=n.endsWith(`/`)?``:`/`;if(a.startsWith(n+C)&&a!==n)throw makeSYMLINKLOOP(n,a);let N=_e.File.new_for_path(a);if(!N.query_exists(null))try{N.make_directory_with_parents(null)}catch(n){throw createNodeError(n,`mkdir`,a)}let F=_e.File.new_for_path(n),I;try{I=F.enumerate_children(`standard::name,standard::type`,S.dereference?_e.FileQueryInfoFlags.NONE:_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(a){throw createNodeError(a,`scandir`,n)}let H=I.next_file(null);for(;H!==null;){let C=H.get_name(),N=jo(n,C),F=jo(a,C),W=S.filter;if(W&&!await Promise.resolve(W(N,F))){H=I.next_file(null);continue}await cpPromises(N,F,S),H=I.next_file(null)}}async function cpPromises(n,a,S={}){let C=normalizePath(n),N=normalizePath(a),F=_e.File.new_for_path(C),I;try{I=F.query_info(`standard::type`,S.dereference?_e.FileQueryInfoFlags.NONE:_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(n){throw createNodeError(n,`stat`,C)}if(I.get_file_type()===_e.FileType.DIRECTORY){if(!S.recursive)throw makeEISDIR(C);await cpPromisesDir(C,N,S)}else copyOneSyncFile(F,_e.File.new_for_path(N),C,N,S)}var Jo=__esmMin(()=>{Ss(),qo(),ve(),Ho()});function _openDir(n){let a=_e.File.new_for_path(n),S;try{S=a.enumerate_children(Yo,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(a){throw createNodeError(a,`opendir`,n)}return new Dir(n,S)}function opendirSync(n){return _openDir(normalizePath(n))}function opendir(n,a,S){let C;if(C=typeof a==`function`?a:S,typeof C!=`function`)throw TypeError(`The "callback" argument must be of type function`);Promise.resolve().then(()=>{try{let a=opendirSync(n);C(null,a)}catch(n){C(n,null)}})}async function opendirAsync(n,a){return new Promise((a,S)=>{let C=normalizePath(n),N=_e.File.new_for_path(C);N.enumerate_children_async(Yo,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,Z.PRIORITY_DEFAULT,null,(n,F)=>{try{a(new Dir(C,N.enumerate_children_finish(F)))}catch(n){S(createNodeError(n,`opendir`,C))}})})}var Yo,Dir,Xo=__esmMin(()=>{Ss(),Uo(),qo(),se(),ve(),Yo=`standard::name,standard::type,standard::is-symlink,standard::size,standard::symlink-target,unix::uid,unix::gid,unix::mode,time::modified,time::access,time::created`,Dir=class{path;_enumerator;_closed=!1;constructor(n,a){this.path=n,this._enumerator=a}_assertOpen(){if(this._closed){let n=Error(`Directory handle was closed`);throw n.code=`ERR_DIR_CLOSED`,n}}readSync(){this._assertOpen();try{let n=this._enumerator.next_file(null);if(n===null)return null;let a=n.get_name(),S=n.get_file_type();return new Dirent(this.path.endsWith(`/`)?this.path+a:this.path+`/`+a,a,S)}catch(n){throw createNodeError(n,`readdir`,this.path)}}read(n){if(n!==void 0){if(typeof n!=`function`)throw TypeError(`The "callback" argument must be of type function`);try{this._assertOpen();let a=this.readSync();Promise.resolve().then(()=>n(null,a))}catch(a){Promise.resolve().then(()=>n(a,null))}return}return new Promise((n,a)=>{try{this._assertOpen(),n(this.readSync())}catch(n){a(n)}})}closeSync(){this._assertOpen(),this._closed=!0;try{this._enumerator.close(null)}catch{}this._enumerator=null}close(n){if(n!==void 0){if(typeof n!=`function`)throw TypeError(`The "callback" argument must be of type function`);try{this.closeSync(),Promise.resolve().then(()=>n(null))}catch(a){Promise.resolve().then(()=>n(a))}return}return new Promise((n,a)=>{try{this.closeSync(),n()}catch(n){a(n)}})}async*[Symbol.asyncIterator](){try{for(;;){let n=await this.read();if(n===null)break;yield n}}finally{this._closed||await this.close()}}}});function segmentToRegexSrc(n){let a=/^([!*+?@])\((.+)\)$/.exec(n);if(a){let[,n,S]=a,C=S.split(`|`).map(n=>segmentToRegexSrc(n)),N=`(?:`+C.join(`|`)+`)`;switch(n){case`!`:return`(?!(?:`+C.join(`|`)+`))[^/]*`;case`*`:return N+`*`;case`+`:return N+`+`;case`?`:return N+`?`;case`@`:return N}}let S=``,C=0;for(;C<n.length;){let a=n[C];if(a===`*`){S+=`[^/]*`,C++;continue}if(a===`?`){S+=`[^/]`,C++;continue}if(a===`[`){let a=n.indexOf(`]`,C+1);if(a===-1){S+=`\\[`,C++;continue}S+=n.slice(C,a+1),C=a+1;continue}if(a===`{`){let a=n.indexOf(`}`,C+1);if(a===-1){S+=`\\{`,C++;continue}let N=n.slice(C+1,a).split(`,`).map(n=>segmentToRegexSrc(n.trim()));S+=`(?:`+N.join(`|`)+`)`,C=a+1;continue}`.+^$|()[]{}`.includes(a)?S+=`\\`+a:S+=a,C++}return S}function globToRegex$2(n){n=n.replace(/\/+/g,`/`).replace(/^\.\//,``);let a=n.split(`/`),S=[];for(let n=0;n<a.length;n++){let C=a[n],N=n===a.length-1;C===`**`?N?S.length>0&&S[S.length-1]===`/`?(S.pop(),S.push(`(?:/.+)?`)):S.push(`(?:.+)?`):S.push(`(?:[^/]+/)*`):(S.push(segmentToRegexSrc(C)),N||S.push(`/`))}return RegExp(`^(?:`+S.join(``)+`)$`)}function buildExcludePredicate(n){if(!n)return null;if(typeof n==`function`)return n;let a=(Array.isArray(n)?n:[n]).map(n=>globToRegex$2(n));return n=>a.some(a=>a.test(n))}function matchAll(n,a,S){let C=globToRegex$2(n),N=buildExcludePredicate(S),F;try{F=readdirSync(a,{recursive:!0})}catch{return[]}let I=[`.`,...F],H=[];for(let n of I){let a=n.replace(/\\/g,`/`);C.test(a)&&(N&&N(a)||H.push(n))}return H}function globSync(n,a){let S=Array.isArray(n)?n:[n],C=a?.cwd?normalizePath(a.cwd):globalThis.process?.cwd?.()??`/`,N=a?.exclude,F=new Set,I=[];for(let n of S)for(let a of matchAll(n,C,N))F.has(a)||(F.add(a),I.push(a));return I}function glob(n,a,S){let C,N;typeof a==`function`?(N=a,C={}):(N=S,C=a||{}),Promise.resolve().then(()=>{try{let a=globSync(n,C);N(null,a)}catch(n){N(n,[])}})}async function*globAsync(n,a){let S=globSync(n,a);for(let n of S)yield n}var Zo=__esmMin(()=>{Ss(),xs(),__name$1(globToRegex$2,`globToRegex`)});function buildStatFs(n){let a=Number(n.get_attribute_uint64(`filesystem::size`)??0),S=Number(n.get_attribute_uint64(`filesystem::free`)??0),C=Math.floor(a/$o),N=Math.floor(S/$o);return{type:0,bsize:$o,blocks:C,bfree:N,bavail:N,files:0,ffree:0}}function buildBigIntStatFs(n){let a=BigInt(n.get_attribute_uint64(`filesystem::size`)??0),S=BigInt(n.get_attribute_uint64(`filesystem::free`)??0),C=BigInt($o),N=a/C,F=S/C;return{type:0n,bsize:C,blocks:N,bfree:F,bavail:F,files:0n,ffree:0n}}function statfsSync(n,a){let S=_e.File.new_for_path(normalizePath(n)).query_filesystem_info(Qo,null);return a?.bigint===!0?buildBigIntStatFs(S):buildStatFs(S)}function queryFsInfoAsync(n,a){return new Promise((S,C)=>{let N=_e.File.new_for_path(normalizePath(n));N.query_filesystem_info_async(Qo,Z.PRIORITY_DEFAULT,null,(n,F)=>{try{let n=N.query_filesystem_info_finish(F);S(a?buildBigIntStatFs(n):buildStatFs(n))}catch(n){C(n)}})})}function statfs(n,a,S){typeof a==`function`&&(S=a,a={}),queryFsInfoAsync(n,a?.bigint===!0).then(n=>S(null,n),n=>S(n,null))}async function statfsAsync(n,a){return queryFsInfoAsync(n,a?.bigint===!0)}var Qo,$o,es=__esmMin(()=>{Ss(),se(),ve(),Qo=[`filesystem::size`,`filesystem::free`].join(`,`),$o=4096}),ts=__exportAll$3({lchmod:()=>lchmod,lchmodAsync:()=>lchmodAsync,lchmodSync:()=>lchmodSync,lchown:()=>lchown,lchownAsync:()=>lchownAsync,lchownSync:()=>lchownSync,lutimes:()=>lutimes,lutimesAsync:()=>lutimesAsync,lutimesSync:()=>lutimesSync,utimes:()=>utimes,utimesAsync:()=>utimesAsync,utimesSync:()=>utimesSync});function toGLibDateTime(n){let a=n instanceof Date?n.getTime():typeof n==`bigint`?Number(n):typeof n==`string`?Date.parse(n):n*1e3;return Z.DateTime.new_from_unix_utc(Math.floor(a/1e3))}function setTimestamps(n,a,S,C){let N=_e.File.new_for_path(n),F=new _e.FileInfo;F.set_modification_date_time(toGLibDateTime(S)),F.set_access_date_time(toGLibDateTime(a)),N.set_attributes_from_info(F,C,null)}function utimesSync(n,a,S){setTimestamps(normalizePath(n),a,S,_e.FileQueryInfoFlags.NONE)}function utimes(n,a,S,C){Promise.resolve().then(()=>utimesSync(n,a,S)).then(()=>C(null),C)}async function utimesAsync(n,a,S){utimesSync(n,a,S)}function lutimesSync(n,a,S){setTimestamps(normalizePath(n),a,S,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS)}function lutimes(n,a,S,C){Promise.resolve().then(()=>lutimesSync(n,a,S)).then(()=>C(null),C)}async function lutimesAsync(n,a,S){lutimesSync(n,a,S)}function lchownSync(n,a,S){Z.spawn_command_line_sync(`chown -h ${a}:${S} ${normalizePath(n)}`)}function lchown(n,a,S,C){Promise.resolve().then(()=>lchownSync(n,a,S)).then(()=>C(null),C)}async function lchownAsync(n,a,S){lchownSync(n,a,S)}function lchmodSync(n,a){}function lchmod(n,a,S){S(null)}async function lchmodAsync(n,a){}var ns=__esmMin(()=>{Ss(),se(),ve()});function getFH(n){return n instanceof ys?ys.getInstance(n.fd):ys.getInstance(n)}function fstatSync(n,a){return statSync(normalizePath(getFH(n).options.path),a)}function fstat(n,a,S){typeof a==`function`&&(S=a,a={}),Promise.resolve().then(()=>fstatSync(n,a)).then(n=>S(null,n),S)}async function fstatAsync(n,a){return a?.bigint,fstatSync(n,a)}function ftruncateSync(n,a=0){truncateSync(normalizePath(getFH(n).options.path),a)}function ftruncate(n,a,S){typeof a==`function`&&(S=a,a=0),Promise.resolve().then(()=>ftruncateSync(n,a)).then(()=>S(null),S)}async function ftruncateAsync(n,a=0){ftruncateSync(n,a)}function fdatasyncSync(n){getFH(n)._flushSync()}function fdatasync(n,a){Promise.resolve().then(()=>fdatasyncSync(n)).then(()=>a(null),a)}async function fdatasyncAsync(n){fdatasyncSync(n)}function fsyncSync(n){getFH(n)._flushSync()}function fsync(n,a){Promise.resolve().then(()=>fsyncSync(n)).then(()=>a(null),a)}async function fsyncAsync(n){fsyncSync(n)}function fchmodSync(n,a){chmodSync(normalizePath(getFH(n).options.path),a)}function fchmod(n,a,S){Promise.resolve().then(()=>fchmodSync(n,a)).then(()=>S(null),S)}async function fchmodAsync(n,a){fchmodSync(n,a)}function fchownSync(n,a,S){chownSync(normalizePath(getFH(n).options.path),a,S)}function fchown(n,a,S,C){Promise.resolve().then(()=>fchownSync(n,a,S)).then(()=>C(null),C)}async function fchownAsync(n,a,S){fchownSync(n,a,S)}function futimesSync(n,a,S){utimesSync(normalizePath(getFH(n).options.path),a,S)}function futimes(n,a,S,C){Promise.resolve().then(()=>futimesSync(n,a,S)).then(()=>C(null),C)}async function futimesAsync(n,a,S){futimesSync(n,a,S)}function closeSync(n){getFH(n)._closeSync()}function readSync(n,a,S,C,N){let F=0;return typeof S==`object`&&S?(F=S.offset??0,C=S.length??a.byteLength,N=S.position??null):(F=S??0,C??=a.byteLength-F),getFH(n)._readSync(a,F,C,N??null)}function writeSync(n,a,S,C,N){let F;if(typeof a==`string`)F=new TextEncoder().encode(a),typeof S==`number`&&(N=S);else{let n=typeof S==`number`?S:0,N=typeof C==`number`?C:a.byteLength-n;F=new Uint8Array(a.buffer,a.byteOffset+n,N)}return getFH(n)._writeSync(F,N??null)}function readvSync(n,a,S){let C=0;for(let N of a){let a=readSync(n,N,0,N.byteLength,S==null?null:S+C);if(C+=a,a<N.byteLength)break}return C}function readv(n,a,S,C){typeof S==`function`&&(C=S,S=null),Promise.resolve().then(()=>({bytesRead:readvSync(n,a,S),buffers:a})).then(n=>C(null,n.bytesRead,n.buffers),C)}async function readvAsync(n,a,S){return{bytesRead:readvSync(n,a,S),buffers:a}}function writevSync(n,a,S){let C=0;for(let N of a){let a=writeSync(n,N,0,N.byteLength,S==null?null:S+C);C+=a}return C}function writev(n,a,S,C){typeof S==`function`&&(C=S,S=null),Promise.resolve().then(()=>({bytesWritten:writevSync(n,a,S),buffers:a})).then(n=>C(null,n.bytesWritten,n.buffers),C)}async function writevAsync(n,a,S){return{bytesWritten:writevSync(n,a,S),buffers:a}}function exists(n,a){try{statSync(normalizePath(n)),a(!0)}catch{a(!1)}}async function openAsBlob(n,a){let S=readFileSync(normalizePath(n));return new Blob([S],{type:a?.type??``})}var rs=__esmMin(()=>{Ss(),bs(),xs(),ns()}),is=__exportAll$3({access:()=>access$1,appendFile:()=>appendFile$1,chmod:()=>chmod$1,chown:()=>chown$1,copyFile:()=>copyFile$1,cp:()=>cpPromises,default:()=>os,fchmod:()=>fchmodAsync,fchown:()=>fchownAsync,fdatasync:()=>fdatasyncAsync,fstat:()=>fstatAsync,fsync:()=>fsyncAsync,ftruncate:()=>ftruncateAsync,futimes:()=>futimesAsync,glob:()=>globAsync,lchmod:()=>lchmodAsync,lchown:()=>lchownAsync,link:()=>link$1,lstat:()=>lstat$1,lutimes:()=>lutimesAsync,mkdir:()=>mkdir$1,mkdtemp:()=>mkdtemp,open:()=>open$2,openAsBlob:()=>openAsBlob,opendir:()=>opendirAsync,promises_exports:()=>as,readFile:()=>readFile$1,readdir:()=>readdir$1,readlink:()=>readlink$1,readv:()=>readvAsync,realpath:()=>realpath$1,rename:()=>rename$1,rm:()=>rm$1,rmdir:()=>rmdir$1,stat:()=>stat$1,statfs:()=>statfsAsync,symlink:()=>symlink$1,truncate:()=>truncate$1,unlink:()=>unlink$1,utimes:()=>utimesAsync,watch:()=>watchAsync,write:()=>write$1,writeFile:()=>writeFile$1,writev:()=>writevAsync});async function mkdir$1(n,a){let S;typeof a==`object`&&(a.recursive&&(S=a.recursive),a.mode&&a.mode);let C=normalizePath(n);if(S)return mkdirRecursiveAsync(C);let N=_e.File.new_for_path(C);return new Promise((n,a)=>{N.make_directory_async(Z.PRIORITY_DEFAULT,null,(S,F)=>{try{N.make_directory_finish(F),n(void 0)}catch(n){a(createNodeError(n,`mkdir`,C))}})})}async function mkdirRecursiveAsync(n){let a=_e.File.new_for_path(n);try{return await new Promise((n,S)=>{a.make_directory_async(Z.PRIORITY_DEFAULT,null,(C,N)=>{try{a.make_directory_finish(N),n()}catch(n){S(n)}})}),n}catch(a){let S=a;if(S.code===_e.IOErrorEnum.EXISTS)return;if(S.code===_e.IOErrorEnum.NOT_FOUND){let S=Po(n);if(S===n)throw createNodeError(a,`mkdir`,n);let C=await mkdirRecursiveAsync(S),N=_e.File.new_for_path(n);return await new Promise((a,S)=>{N.make_directory_async(Z.PRIORITY_DEFAULT,null,(C,F)=>{try{N.make_directory_finish(F),a()}catch(a){S(createNodeError(a,`mkdir`,n))}})}),C??n}throw createNodeError(a,`mkdir`,n)}}async function readFile$1(n,a={encoding:null,flag:`r`}){let S=normalizePath(n),C=_e.File.new_for_path(S),N,F;try{[N,F]=await new Promise((n,a)=>{C.load_contents_async(null,(S,N)=>{try{n(C.load_contents_finish(N))}catch(n){a(n)}})})}catch(n){throw createNodeError(n,`open`,S)}if(!N)throw createNodeError(Error(`failed to read file`),`open`,S);return encodeUint8Array(getEncodingFromOptions(a,`buffer`),F)}async function mkdtemp(n,a){let S=getEncodingFromOptions(a),C=tempDirPath(n);return await mkdir$1(C,{recursive:!1,mode:448}),decode(C,S)}async function writeFile$1(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S),N;N=typeof a==`string`?new TextEncoder().encode(a):a instanceof Uint8Array?a:new TextEncoder().encode(String(a));let F=await new Promise((n,a)=>{C.replace_async(null,!1,_e.FileCreateFlags.REPLACE_DESTINATION,Z.PRIORITY_DEFAULT,null,(N,F)=>{try{n(C.replace_finish(F))}catch(n){a(createNodeError(n,`open`,S))}})});if(N.length>0){let n=new Z.Bytes(N);await new Promise((a,C)=>{F.write_bytes_async(n,Z.PRIORITY_DEFAULT,null,(n,N)=>{try{F.write_bytes_finish(N),a()}catch(n){C(createNodeError(n,`write`,S))}})})}await new Promise((n,a)=>{F.close_async(Z.PRIORITY_DEFAULT,null,(C,N)=>{try{F.close_finish(N),n()}catch(n){a(createNodeError(n,`close`,S))}})})}async function rmdir$1(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S);if((await new Promise((n,a)=>{C.query_info_async(`standard::type`,_e.FileQueryInfoFlags.NONE,Z.PRIORITY_DEFAULT,null,(N,F)=>{try{n(C.query_info_finish(F))}catch(n){a(createNodeError(n,`rmdir`,S))}})})).get_file_type()!==_e.FileType.DIRECTORY)throw createNodeError(Object.assign(Error(),{code:4}),`rmdir`,S);if((await new Promise((n,a)=>{C.enumerate_children_async(`standard::name`,_e.FileQueryInfoFlags.NONE,Z.PRIORITY_DEFAULT,null,(N,F)=>{try{n(C.enumerate_children_finish(F))}catch(n){a(createNodeError(n,`rmdir`,S))}})})).next_file(null)!==null)throw createNodeError(Object.assign(Error(),{code:5}),`rmdir`,S);await new Promise((n,a)=>{C.delete_async(Z.PRIORITY_DEFAULT,null,(N,F)=>{try{C.delete_finish(F),n()}catch(n){a(createNodeError(n,`rmdir`,S))}})})}async function unlink$1(n){let a=normalizePath(n),S=_e.File.new_for_path(a);await new Promise((n,C)=>{S.delete_async(Z.PRIORITY_DEFAULT,null,(N,F)=>{try{S.delete_finish(F),n()}catch(n){C(createNodeError(n,`unlink`,a))}})})}async function open$2(n,a,S){return new ys({path:n,flags:a,mode:S})}async function write$1(n,a,S,C,N){return typeof a==`string`?_writeStr(n,a,S,C):_writeBuf(n,a,S,C,N)}async function _writeBuf(n,a,S,C,N){return{bytesWritten:(await ys.getInstance(n).write(a,S,C,N)).bytesWritten,buffer:a}}async function _writeStr(n,a,S,C){return{bytesWritten:(await ys.getInstance(n).write(a,S,C)).bytesWritten,buffer:a}}function queryInfoAsync(n,a,S,C){let N=normalizePath(n);return new Promise((n,F)=>{let I=_e.File.new_for_path(N);I.query_info_async(Wo,a,Z.PRIORITY_DEFAULT,null,(a,H)=>{try{let a=I.query_info_finish(H);n(C?.bigint?new BigIntStats(a,N):new Stats(a,N))}catch(n){F(createNodeError(n,S,N))}})})}async function stat$1(n,a){return queryInfoAsync(n,_e.FileQueryInfoFlags.NONE,`stat`,a)}async function lstat$1(n,a){return queryInfoAsync(n,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,`lstat`,a)}async function readdir$1(n,a){try{return readdirSync(n,a)}catch(a){throw createNodeError(a,`scandir`,n)}}async function realpath$1(n){return realpathSync(n)}async function symlink$1(n,a,S){let C=normalizePath(a),N=normalizePath(n);return new Promise((n,a)=>{let S=_e.File.new_for_path(C);S.make_symbolic_link_async(N,Z.PRIORITY_DEFAULT,null,(F,I)=>{try{S.make_symbolic_link_finish(I),n()}catch(n){a(createNodeError(n,`symlink`,N,C))}})})}async function rm$1(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S),N=a?.recursive||!1,F=a?.force||!1,I;try{I=new Dirent(S)}catch(a){if(F)return;throw createNodeError(a,`rm`,n)}if(I.isDirectory()){let C=await readdir$1(n,{withFileTypes:!0});if(!N&&C.length)throw createNodeError(Object.assign(Error(),{code:5}),`rm`,n);for(let n of C)typeof n!=`string`&&await rm$1(jo(S,n.name),a)}await new Promise((a,S)=>{C.delete_async(Z.PRIORITY_DEFAULT,null,(N,I)=>{try{C.delete_finish(I),a()}catch(C){if(F){a();return}S(createNodeError(C,`rm`,n))}})})}async function rename$1(n,a){renameSync(n,a)}async function copyFile$1(n,a,S){copyFileSync(n,a,S)}async function access$1(n,a){accessSync(n,a)}async function appendFile$1(n,a,S){appendFileSync(n,a,S)}async function readlink$1(n,a){return readlinkSync(n,a)}async function truncate$1(n,a){truncateSync(n,a)}async function chmod$1(n,a){chmodSync(n,a)}async function chown$1(n,a,S){chownSync(n,a,S)}async function link$1(n,a){linkSync(n,a)}var as,os,ss=__esmMin(()=>{_o(),vo(),Ss(),ws(),Uo(),Go(),bs(),qo(),xs(),Jo(),Xo(),Zo(),es(),ns(),rs(),se(),ve(),Ho(),as=go({access:()=>access$1,appendFile:()=>appendFile$1,chmod:()=>chmod$1,chown:()=>chown$1,copyFile:()=>copyFile$1,cp:()=>cpPromises,default:()=>os,fchmod:()=>fchmodAsync,fchown:()=>fchownAsync,fdatasync:()=>fdatasyncAsync,fstat:()=>fstatAsync,fsync:()=>fsyncAsync,ftruncate:()=>ftruncateAsync,futimes:()=>futimesAsync,glob:()=>globAsync,lchmod:()=>lchmodAsync,lchown:()=>lchownAsync,link:()=>link$1,lstat:()=>lstat$1,lutimes:()=>lutimesAsync,mkdir:()=>mkdir$1,mkdtemp:()=>mkdtemp,open:()=>open$2,openAsBlob:()=>openAsBlob,opendir:()=>opendirAsync,readFile:()=>readFile$1,readdir:()=>readdir$1,readlink:()=>readlink$1,readv:()=>readvAsync,realpath:()=>realpath$1,rename:()=>rename$1,rm:()=>rm$1,rmdir:()=>rmdir$1,stat:()=>stat$1,statfs:()=>statfsAsync,symlink:()=>symlink$1,truncate:()=>truncate$1,unlink:()=>unlink$1,utimes:()=>utimesAsync,watch:()=>watchAsync,write:()=>write$1,writeFile:()=>writeFile$1,writev:()=>writevAsync}),__name$1(mkdir$1,`mkdir`),__name$1(readFile$1,`readFile`),__name$1(writeFile$1,`writeFile`),__name$1(rmdir$1,`rmdir`),__name$1(unlink$1,`unlink`),__name$1(open$2,`open`),__name$1(write$1,`write`),__name$1(stat$1,`stat`),__name$1(lstat$1,`lstat`),__name$1(readdir$1,`readdir`),__name$1(realpath$1,`realpath`),__name$1(symlink$1,`symlink`),__name$1(rm$1,`rm`),__name$1(rename$1,`rename`),__name$1(copyFile$1,`copyFile`),__name$1(access$1,`access`),__name$1(appendFile$1,`appendFile`),__name$1(readlink$1,`readlink`),__name$1(truncate$1,`truncate`),__name$1(chmod$1,`chmod`),__name$1(chown$1,`chown`),__name$1(link$1,`link`),os={readFile:readFile$1,mkdir:mkdir$1,mkdtemp,realpath:realpath$1,readdir:readdir$1,writeFile:writeFile$1,rmdir:rmdir$1,unlink:unlink$1,open:open$2,write:write$1,rm:rm$1,lstat:lstat$1,symlink:symlink$1,stat:stat$1,rename:rename$1,copyFile:copyFile$1,access:access$1,appendFile:appendFile$1,readlink:readlink$1,truncate:truncate$1,chmod:chmod$1,chown:chown$1,link:link$1,cp:cpPromises,opendir:opendirAsync,glob:globAsync,watch:watchAsync,statfs:statfsAsync,utimes:utimesAsync,lutimes:lutimesAsync,lchown:lchownAsync,lchmod:lchmodAsync,fstat:fstatAsync,ftruncate:ftruncateAsync,fdatasync:fdatasyncAsync,fsync:fsyncAsync,fchmod:fchmodAsync,fchown:fchownAsync,futimes:futimesAsync,readv:readvAsync,writev:writevAsync,openAsBlob}});function parseOptsCb(n,a){return typeof n==`function`?{options:{},callback:n}:{options:n??{},callback:a}}function statImpl(n,a,S,C,N){let F=normalizePath(n),I=_e.File.new_for_path(F);I.query_info_async(Wo,a,Z.PRIORITY_DEFAULT,null,(n,a)=>{try{let n=I.query_info_finish(a);N(null,C?.bigint?new BigIntStats(n,F):new Stats(n,F))}catch(n){N(createNodeError(n,S,F))}})}function stat(n,a,S){let{options:C,callback:N}=parseOptsCb(a,S);statImpl(n,_e.FileQueryInfoFlags.NONE,`stat`,C,N)}function lstat(n,a,S){let{options:C,callback:N}=parseOptsCb(a,S);statImpl(n,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,`lstat`,C,N)}function readdir(n,a,S){let{options:C,callback:N}=parseOptsCb(a,S);Promise.resolve().then(()=>{try{N(null,readdirSync(n,C))}catch(a){N(createNodeError(a,`readdir`,n))}})}function realpath(n,a,S){let{callback:C}=parseOptsCb(a,S);Promise.resolve().then(()=>{try{C(null,realpathSync(n))}catch(n){C(n)}})}function symlink(n,a,S,C){let N=typeof S==`function`?S:C;if(typeof N!=`function`)throw TypeError(`Callback must be a function. Received `+typeof N);let F=normalizePath(a),I=normalizePath(n),H=_e.File.new_for_path(F);H.make_symbolic_link_async(I,Z.PRIORITY_DEFAULT,null,(n,a)=>{try{H.make_symbolic_link_finish(a),N(null)}catch(n){N(createNodeError(n,`symlink`,I,F))}})}function open$1(n,...a){let S,C,N;switch(a.length){case 1:N=a[0];break;case 2:S=a[0],N=a[1];break;case 3:S=a[0],C=a[1],N=a[2];break;default:break}open$2(n,S,C).then(n=>{N(null,n.fd)}).catch(n=>{N(n,-1)})}function write(n,a,...S){let C=ys.getInstance(n);if(typeof a==`string`){let n=S.pop(),N=S[0],F=S[1];C.write(a,N,F).then(a=>{n(null,a.bytesWritten,a.buffer)}).catch(a=>{n(a,0,``)});return}let N=S[S.length-1],F=S[0],I=S[1],H=S[2];C.write(a,F,I,H).then(n=>{N(null,n.bytesWritten,n.buffer)}).catch(n=>{N(n,0,dt.from([]))})}function read$1(n,...a){let S=ys.getInstance(n),C=a[a.length-1],N,F,I,H;if(!(a.length<=1))if(typeof a[0]==`object`&&!ArrayBuffer.isView(a[0])){let n=a[0];N=n.buffer,F=n.offset,I=n.length,H=n.position}else N=a[0],F=a[1],I=a[2],H=a[3];S.read(N,F,I,H).then(n=>{C(null,n.bytesRead,n.buffer)}).catch(n=>{C(n,0,dt.from([]))})}function close$1(n,a){ys.getInstance(n).close().then(()=>{a(null)}).catch(n=>a(n))}function rm(n,...a){let S={},C=a[a.length-1];a.length>=2&&(S=a[0]),rm$1(n,S).then(()=>{C(null)}).catch(n=>{C(n)})}function rename(n,a,S){Promise.resolve().then(()=>{try{renameSync(n,a),S(null)}catch(n){S(n)}})}function copyFile(n,a,S,C){let N=typeof S==`function`?0:S,F=typeof S==`function`?S:C;Promise.resolve().then(()=>{try{copyFileSync(n,a,N),F(null)}catch(n){F(n)}})}function access(n,a,S){let C=typeof a==`function`?void 0:a,N=typeof a==`function`?a:S;Promise.resolve().then(()=>{try{accessSync(n,C),N(null)}catch(n){N(n)}})}function appendFile(n,a,S,C){let N=typeof S==`function`?S:C,F=typeof S==`function`?void 0:S;Promise.resolve().then(()=>{try{appendFileSync(n,a,F),N(null)}catch(n){N(n)}})}function readlink(n,a,S){let C=typeof a==`function`?a:S,N=typeof a==`function`?void 0:a;Promise.resolve().then(()=>{try{C(null,readlinkSync(n,N))}catch(n){C(n,``)}})}function truncate(n,a,S){let C=typeof a==`function`?0:a,N=typeof a==`function`?a:S;Promise.resolve().then(()=>{try{truncateSync(n,C),N(null)}catch(n){N(n)}})}function chmod(n,a,S){Promise.resolve().then(()=>{try{chmodSync(n,a),S(null)}catch(n){S(n)}})}function chown(n,a,S,C){Promise.resolve().then(()=>{try{chownSync(n,a,S),C(null)}catch(n){C(n)}})}function mkdir(n,a,S){let C=typeof a==`function`?a:S,N=typeof a==`function`?void 0:a;Promise.resolve().then(()=>{try{mkdirSync(n,N),C(null)}catch(n){C(n)}})}function rmdir(n,a,S){let C=typeof a==`function`?a:S,N=typeof a==`function`?void 0:a;Promise.resolve().then(()=>{try{rmdirSync(n,N),C(null)}catch(n){C(n)}})}function readFile(n,a,S){let C=typeof a==`function`?a:S,N=typeof a==`function`?void 0:a,F=normalizePath(n);Promise.resolve().then(()=>{try{C(null,readFileSync(F,typeof N==`string`?{encoding:N,flag:`r`}:{encoding:N?.encoding??null,flag:N?.flag??`r`}))}catch(n){C(n,null)}})}function writeFile(n,a,S,C){let N=typeof S==`function`?S:C,F=normalizePath(n);Promise.resolve().then(()=>{try{writeFileSync(F,a),N(null)}catch(n){N(n)}})}function link(n,a,S){let C=normalizePath(n),N=normalizePath(a);Promise.resolve().then(()=>{try{if(!Z.spawn_command_line_sync(`ln ${C} ${N}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, link '${C}' -> '${N}'`),{code:`EPERM`,errno:-1,syscall:`link`,path:C,dest:N});S(null)}catch(n){S(n)}})}function unlink(n,a){let S=normalizePath(n);Promise.resolve().then(()=>{try{Z.unlink(S),a(null)}catch(n){a(n)}})}var cs=__esmMin(()=>{Ss(),Go(),bs(),qo(),xs(),ss(),se(),ve(),bt(),__name$1(open$1,`open`),__name$1(read$1,`read`),__name$1(close$1,`close`)});function toPathIfFileURL(n){return normalizePath(n)}function createWriteStream(n,a){return new WriteStream$1(n,a)}var ls,us,WriteStream$1,ds=__esmMin(()=>{Ss(),cs(),Jr(),ls=Symbol(`kIsPerformingIO`),us=Symbol(`kIoDone`),WriteStream$1=class extends Ur{static{__name$1(this,`WriteStream`)}close(n,a=null){this.fd?(close$1(this.fd,S=>{n(S||a)}),this.fd=null):n(a)}bytesWritten=0;path;pending;fd=null;flags=`w`;mode=438;pos=0;[ls]=!1;constructor(n,a={}){super(a),this.path=toPathIfFileURL(n),a.encoding&&this.setDefaultEncoding(a.encoding)}_construct(n){open$1(this.path.toString(),this.flags,this.mode,(a,S)=>{if(a){n(a);return}this.fd=S,n(),this.emit(`open`,this.fd),this.emit(`ready`)})}_write(n,a,S){this[ls]=!0,write(this.fd,n,0,n.length,this.pos,(n,a)=>{if(this[ls]=!1,this.destroyed)return S(n),this.emit(us,n);if(n)return S(n);this.bytesWritten+=a,S()}),this.pos!==void 0&&(this.pos+=n.length)}_destroy(n,a){this[ls]?this.once(us,S=>this.close(a,n||S)):this.close(a,n)}}});function resolveIOMode(n){if(n==null)return`r`;if(typeof n==`number`){let a=(n&2)!=0,S=(n&1)!=0,C=(n&1024)!=0,N=(n&512)!=0;return a?N?`w+`:`r+`:S?C?`a`:`w`:`r`}switch(n){case`ax`:case`wx`:return`w`;case`ax+`:case`wx+`:return`w+`;case`as`:case`rs+`:return`r+`;case`as+`:return`a+`;default:return n}}function shouldCreate(n){return typeof n==`number`?(n&64)!=0:typeof n==`string`?n===`w`||n===`w+`||n===`wx`||n===`wx+`||n===`a`||n===`a+`||n===`ax`||n===`ax+`||n===`as`||n===`as+`:!1}function openIOChannel(n,a,S){try{return Z.IOChannel.new_file(n,a)}catch(C){if(S&&a===`r+`&&C?.code===Z.FileError.NOENT)return Z.file_set_contents(n,new Uint8Array),Z.IOChannel.new_file(n,a);throw C}}function mapOpenError(n,a){return createGLibFileError(n,`open`,{path:a})}var fs=__esmMin(()=>{se(),et()});function normalizeAndValidateEncoding(n){return n&&checkEncoding(n),normalizeEncoding(n)}function utf8DecodeMaximalSubpart(n,a,S){let C=``,N=a;for(;N<S;){let a=n[N];if(a<=127){C+=String.fromCharCode(a),N++;continue}if(a>=194&&a<=223){N+1<S&&n[N+1]>=128&&n[N+1]<=191?(C+=String.fromCharCode((a&31)<<6|n[N+1]&63),N+=2):(C+=`�`,N++);continue}if(a>=224&&a<=239){let F,I;if(a===224?(F=160,I=191):a===237?(F=128,I=159):(F=128,I=191),N+1>=S){C+=`�`,N++;continue}let H=n[N+1];if(H<F||H>I){C+=`�`,N++;continue}if(N+2>=S){C+=`�`,N+=2;continue}let W=n[N+2];if(W<128||W>191){C+=`�`,N+=2;continue}let K=(a&15)<<12|(H&63)<<6|W&63;C+=String.fromCharCode(K),N+=3;continue}if(a>=240&&a<=244){let F,I;if(a===240?(F=144,I=191):a===244?(F=128,I=143):(F=128,I=191),N+1>=S){C+=`�`,N++;continue}let H=n[N+1];if(H<F||H>I){C+=`�`,N++;continue}if(N+2>=S){C+=`�`,N+=2;continue}let W=n[N+2];if(W<128||W>191){C+=`�`,N+=2;continue}if(N+3>=S){C+=`�`,N+=3;continue}let K=n[N+3];if(K<128||K>191){C+=`�`,N+=3;continue}let q=(a&7)<<18|(H&63)<<12|(W&63)<<6|K&63;C+=String.fromCharCode(55296+(q-65536>>10),56320+(q-65536&1023)),N+=4;continue}C+=`�`,N++}return C}function utf8CharLength(n){return n&128?n>=194&&n<=223?2:n>=224&&n<=239?3:n>=240&&n<=244?4:0:1}function isValidContinuation(n,a,S,C){if(S===1){if(a===3)return n===224?C>=160&&C<=191:n===237?C>=128&&C<=159:C>=128&&C<=191;if(a===4)return n===240?C>=144&&C<=191:n===244?C>=128&&C<=143:C>=128&&C<=191}return C>=128&&C<=191}function writeUtf8(n,a){let S=0,C=``;if(n._lastNeed>0){for(;S<a.length&&n._lastNeed>0;){let N=a[S],F=n._lastTotal-n._lastNeed;if(isValidContinuation(n._lastLeadByte,n._lastTotal,F,N))n._lastChar[F]=N,n._lastNeed--,S++;else{C+=`�`,n._lastNeed=0,n._lastTotal=0,n._lastLeadByte=0;break}}if(n._lastNeed===0&&n._lastTotal>0&&(C+=utf8DecodeMaximalSubpart(n._lastChar,0,n._lastTotal),n._lastTotal=0,n._lastLeadByte=0),n._lastNeed>0)return C}let N=a.length;for(let C=0;C<Math.min(4,a.length-S);C++){let F=a.length-1-C;if(F<S)break;let I=a[F];if((I&192)!=128){let S=utf8CharLength(I);if(S>0&&I>=128){let C=a.length-F;if(C<S){let H=!0;for(let n=1;n<C;n++)if(!isValidContinuation(I,S,n,a[F+n])){H=!1;break}if(H){N=F;for(let S=0;S<C;S++)n._lastChar[S]=a[F+S];n._lastNeed=S-C,n._lastTotal=S,n._lastLeadByte=I}}}break}}return N>S&&(C+=utf8DecodeMaximalSubpart(a,S,N)),C}function writeUtf16le(n,a){let S=``,C=0;if(n._lastNeed>0){let N=n._lastTotal-n._lastNeed,F=Math.min(n._lastNeed,a.length);for(let S=0;S<F;S++)n._lastChar[N+S]=a[S];if(n._lastNeed-=F,C=F,n._lastNeed>0)return``;let I=n._lastTotal,H=0;for(;H+1<I;){let N=n._lastChar[H]|n._lastChar[H+1]<<8;if(H+=2,N>=55296&&N<=56319){if(H+1<I){let a=n._lastChar[H]|n._lastChar[H+1]<<8;if(a>=56320&&a<=57343){S+=String.fromCharCode(N,a),H+=2;continue}}if(C+1<a.length){let n=a[C]|a[C+1]<<8;if(n>=56320&&n<=57343){S+=String.fromCharCode(N,n),C+=2;continue}}else if(C>=a.length)return n._lastChar[0]=n._lastChar[H-2],n._lastChar[1]=n._lastChar[H-1],n._lastNeed=2,n._lastTotal=4,S}S+=String.fromCharCode(N)}n._lastTotal=0}for(;C+1<a.length;){let N=a[C]|a[C+1]<<8;if(C+=2,N>=55296&&N<=56319)if(C+1<a.length){let n=a[C]|a[C+1]<<8;if(n>=56320&&n<=57343){S+=String.fromCharCode(N,n),C+=2;continue}}else if(C<a.length)return S+=String.fromCharCode(N),n._lastChar[0]=a[C],n._lastNeed=1,n._lastTotal=2,S;else return n._lastChar[0]=a[C-2],n._lastChar[1]=a[C-1],n._lastNeed=2,n._lastTotal=4,S;S+=String.fromCharCode(N)}return C<a.length&&(n._lastChar[0]=a[C],n._lastNeed=1,n._lastTotal=2),S}function writeBase64(n,a){let S=0;if(n._lastNeed>0){let C=Math.min(n._lastNeed,a.length);for(let S=0;S<C;S++)n._lastChar[n._lastTotal-n._lastNeed+S]=a[S],n._lastNeed--;if(S=C,n._lastNeed>0)return``}let C=a.length-S,N=C-C%3,F=``;n._lastTotal>0&&n._lastNeed===0&&(F+=base64Encode$1(n._lastChar.subarray(0,n._lastTotal)),n._lastTotal=0),N>0&&(F+=base64Encode$1(a.subarray(S,S+N)));let I=C-N;if(I>0){for(let C=0;C<I;C++)n._lastChar[C]=a[S+N+C];n._lastNeed=3-I,n._lastTotal=3}return F}function decodeAscii(n){let a=``;for(let S=0;S<n.length;S++)a+=String.fromCharCode(n[S]&127);return a}function decodeLatin1(n){let a=``;for(let S=0;S<n.length;S++)a+=String.fromCharCode(n[S]);return a}function decodeHex(n){let a=``;for(let S=0;S<n.length;S++)a+=n[S].toString(16).padStart(2,`0`);return a}var ps,ms=__esmMin(()=>{bt(),ps=function StringDecoder(n){this.encoding=normalizeAndValidateEncoding(n),this._lastNeed=0,this._lastTotal=0,this._lastLeadByte=0,this.encoding===`utf8`||this.encoding===`utf16le`?this._lastChar=new Uint8Array(4):this.encoding===`base64`?this._lastChar=new Uint8Array(3):this._lastChar=new Uint8Array},ps.prototype.write=function write(n){if(n.length===0)return``;switch(this.encoding){case`utf8`:return writeUtf8(this,n);case`utf16le`:return writeUtf16le(this,n);case`base64`:return writeBase64(this,n);case`ascii`:return decodeAscii(n);case`latin1`:return decodeLatin1(n);case`hex`:return decodeHex(n);default:return decodeAscii(n)}},ps.prototype.end=function end(n){let a=``;if(n&&n.length>0&&(a=this.write(n)),this.encoding===`utf8`&&this._lastNeed>0)a+=`�`,this._lastNeed=0,this._lastTotal=0;else if(this.encoding===`utf16le`&&this._lastNeed>0){let n=this._lastTotal-this._lastNeed;for(let S=0;S+1<n;S+=2)a+=String.fromCharCode(this._lastChar[S]|this._lastChar[S+1]<<8);this._lastNeed=0,this._lastTotal=0}else if(this.encoding===`base64`&&this._lastNeed>0){let n=this._lastChar.subarray(0,this._lastTotal-this._lastNeed);a+=base64Encode$1(n),this._lastNeed=0,this._lastTotal=0}return a}});function createInterface$1(n,a,S,C){return typeof n==`object`&&n&&!(`read`in n&&typeof n.read==`function`)?new Interface$1(n):new Interface$1({input:n,output:a,completer:S,terminal:C})}function*emitKeys(n){for(;;){let a=yield,S=a,C=!1,N={sequence:``,name:void 0,ctrl:!1,meta:!1,shift:!1};if(a===`\x1B`&&(C=!0,S+=a=yield,a===`\x1B`&&(S+=a=yield)),C&&(a===`O`||a===`[`)){let n=a,C=0;if(a===`O`)S+=a=yield,a>=`0`&&a<=`9`&&(C=a.charCodeAt(0)-1,S+=a=yield),n+=a;else if(a===`[`){S+=a=yield,a===`[`&&(n+=a,S+=a=yield);let N=S.length-1;a>=`0`&&a<=`9`&&(S+=a=yield,a>=`0`&&a<=`9`&&(S+=a=yield,a>=`0`&&a<=`9`&&(S+=a=yield))),a===`;`&&(S+=a=yield,a>=`0`&&a<=`9`&&(S+=yield));let F=S.slice(N),I;(I=/^(?:(\d\d?)(?:;(\d))?([~^$])|(\d{3}~))$/.exec(F))?I[4]?n+=I[4]:(n+=I[1]+I[3],C=(parseInt(I[2]??`1`,10)||1)-1):(I=/^((\d;)?(\d))?([A-Za-z])$/.exec(F))?(n+=I[4],C=(parseInt(I[3]??`1`,10)||1)-1):n+=F}switch(N.ctrl=!!(C&4),N.meta=!!(C&10),N.shift=!!(C&1),N.code=n,n){case`[P`:case`OP`:case`[11~`:case`[[A`:N.name=`f1`;break;case`[Q`:case`OQ`:case`[12~`:case`[[B`:N.name=`f2`;break;case`[R`:case`OR`:case`[13~`:case`[[C`:N.name=`f3`;break;case`[S`:case`OS`:case`[14~`:case`[[D`:N.name=`f4`;break;case`[15~`:case`[[E`:N.name=`f5`;break;case`[17~`:N.name=`f6`;break;case`[18~`:N.name=`f7`;break;case`[19~`:N.name=`f8`;break;case`[20~`:N.name=`f9`;break;case`[21~`:N.name=`f10`;break;case`[23~`:N.name=`f11`;break;case`[24~`:N.name=`f12`;break;case`[200~`:N.name=`paste-start`;break;case`[201~`:N.name=`paste-end`;break;case`[A`:case`OA`:N.name=`up`;break;case`[B`:case`OB`:N.name=`down`;break;case`[C`:case`OC`:N.name=`right`;break;case`[D`:case`OD`:N.name=`left`;break;case`[E`:case`OE`:N.name=`clear`;break;case`[F`:case`OF`:N.name=`end`;break;case`[H`:case`OH`:N.name=`home`;break;case`[1~`:N.name=`home`;break;case`[2~`:N.name=`insert`;break;case`[3~`:N.name=`delete`;break;case`[4~`:N.name=`end`;break;case`[5~`:case`[[5~`:N.name=`pageup`;break;case`[6~`:case`[[6~`:N.name=`pagedown`;break;case`[7~`:N.name=`home`;break;case`[8~`:N.name=`end`;break;case`[a`:N.name=`up`,N.shift=!0;break;case`[b`:N.name=`down`,N.shift=!0;break;case`[c`:N.name=`right`,N.shift=!0;break;case`[d`:N.name=`left`,N.shift=!0;break;case`[2$`:N.name=`insert`,N.shift=!0;break;case`[3$`:N.name=`delete`,N.shift=!0;break;case`[5$`:N.name=`pageup`,N.shift=!0;break;case`[6$`:N.name=`pagedown`,N.shift=!0;break;case`[7$`:N.name=`home`,N.shift=!0;break;case`[8$`:N.name=`end`,N.shift=!0;break;case`Oa`:N.name=`up`,N.ctrl=!0;break;case`Ob`:N.name=`down`,N.ctrl=!0;break;case`Oc`:N.name=`right`,N.ctrl=!0;break;case`Od`:N.name=`left`,N.ctrl=!0;break;case`[2^`:N.name=`insert`,N.ctrl=!0;break;case`[3^`:N.name=`delete`,N.ctrl=!0;break;case`[5^`:N.name=`pageup`,N.ctrl=!0;break;case`[6^`:N.name=`pagedown`,N.ctrl=!0;break;case`[7^`:N.name=`home`,N.ctrl=!0;break;case`[8^`:N.name=`end`,N.ctrl=!0;break;case`[Z`:N.name=`tab`,N.shift=!0;break;default:N.name=`undefined`;break}}else a===`\r`?(N.name=`return`,N.meta=C):a===`
11
- `?(N.name=`enter`,N.meta=C):a===` `?(N.name=`tab`,N.meta=C):a===`\b`||a===``?(N.name=`backspace`,N.meta=C):a===`\x1B`?(N.name=`escape`,N.meta=C):a===` `?(N.name=`space`,N.meta=C):!C&&a<=``?(N.name=String.fromCharCode(a.charCodeAt(0)+97-1),N.ctrl=!0):/^[0-9A-Za-z]$/.test(a)?(N.name=a.toLowerCase(),N.shift=/^[A-Z]$/.test(a),N.meta=C):C&&(N.name=a.length?void 0:`escape`,N.meta=!0);N.sequence=S,S.length!==0&&(N.name!==void 0||C)?n.emit(`keypress`,C?void 0:S,N):S.length===1&&n.emit(`keypress`,S,N)}}function emitKeypressEvents(n,a={}){let S=n;if(S[gs])return;S[gs]=new ps(`utf8`),S[_s]=emitKeys(n),S[_s].next();let C=a.escapeCodeTimeout??500,N,triggerEscape=()=>S[_s].next(``);function onData(a){if(n.listenerCount(`keypress`)>0){let F=S[gs].write(typeof a==`string`?Buffer.from(a):a);if(F){clearTimeout(N);for(let a of F)try{S[_s].next(a),a===`\x1B`&&(N=setTimeout(triggerEscape,C))}catch{S[_s]=emitKeys(n),S[_s].next()}}}else n.removeListener(`data`,onData),delete S[gs],delete S[_s]}n.on(`data`,onData)}var hs,Interface$1,gs,_s,vs=__esmMin(()=>{Vt(),ms(),hs=/\r\n|\r|\n/,Interface$1=class extends At{static{__name$1(this,`Interface`)}terminal;line=``;cursor=0;escapeCodeTimeout;_input;_output;get input(){return this._input}get output(){return this._output}_prompt;_closed=!1;_paused=!1;history;_historySize;_crlfDelay;_lineBuffer=``;_questionCallback=null;_boundOnData=null;_boundOnEnd=null;_boundOnError=null;_boundOnKeypress=null;constructor(n,a){super();let S;if(S=n&&typeof n==`object`&&!(`read`in n&&typeof n.read==`function`)?n:{input:n,output:a},this._input=S.input||null,this._output=S.output||null,this._prompt=S.prompt||`> `,this.terminal=S.terminal??this._output!==null,this._historySize=S.historySize??30,this.history=[],this._crlfDelay=S.crlfDelay??100,this.escapeCodeTimeout=S.escapeCodeTimeout,this._input&&(this._boundOnData=n=>this._onData(n),this._boundOnEnd=()=>this._onEnd(),this._boundOnError=n=>this.emit(`error`,n),this._input.on(`data`,this._boundOnData),this._input.on(`end`,this._boundOnEnd),this._input.on(`error`,this._boundOnError),`setEncoding`in this._input&&typeof this._input.setEncoding==`function`&&this._input.setEncoding(`utf8`),this.terminal)){emitKeypressEvents(this._input,this);let n=this._input;typeof n.setRawMode==`function`&&(n.isRaw||n.setRawMode(!0)),typeof this._input.resume==`function`&&this._input.resume(),this._boundOnKeypress=(n,a)=>{a&&(a.name===`backspace`||a.name===`delete`?this.cursor>0&&(this.line=this.line.slice(0,this.cursor-1)+this.line.slice(this.cursor),this.cursor--):n&&n.length===1&&!a.ctrl&&!a.meta&&a.name!==`return`&&a.name!==`enter`&&a.name!==`escape`&&(this.line=this.line.slice(0,this.cursor)+n+this.line.slice(this.cursor),this.cursor++))},this._input.on(`keypress`,this._boundOnKeypress)}}_onData(n){if(this._closed||this._paused)return;let a=typeof n==`string`?n:n.toString(`utf8`);this._lineBuffer+=a;let S;for(;(S=hs.exec(this._lineBuffer))!==null;){let n=this._lineBuffer.substring(0,S.index);this._lineBuffer=this._lineBuffer.substring(S.index+S[0].length),this._onLine(n)}}_onLine(n){if(n.length>0&&this._historySize>0&&(this.history.length===0||this.history[0]!==n)&&(this.history.unshift(n),this.history.length>this._historySize&&this.history.pop()),this._questionCallback){let a=this._questionCallback;this._questionCallback=null,a(n)}this.emit(`line`,n)}_onEnd(){this._lineBuffer.length>0&&(this._onLine(this._lineBuffer),this._lineBuffer=``),this.close()}setPrompt(n){this._prompt=n}getPrompt(){return this._prompt}prompt(n){if(this._closed)throw Error(`readline was closed`);this._output?.write(this._prompt)}question(n,a,S){if(this._closed)throw Error(`readline was closed`);let C=typeof a==`function`?a:S;this._questionCallback=C,this._output?.write(n)}clearLine(n,a){return this.line=``,this.cursor=0,a&&a(),!0}write(n,a){if(!this._closed){if(a){this._input&&this._input.emit(`keypress`,n??``,a);return}if(n!=null){let a=typeof n==`string`?n:n.toString(`utf8`);a&&(this.line=this.line.slice(0,this.cursor)+a+this.line.slice(this.cursor),this.cursor+=a.length),this._output?.write(n)}}}close(){if(!this._closed){if(this._closed=!0,this._input){this._boundOnData&&this._input.removeListener(`data`,this._boundOnData),this._boundOnEnd&&this._input.removeListener(`end`,this._boundOnEnd),this._boundOnError&&this._input.removeListener(`error`,this._boundOnError),this._boundOnKeypress&&this._input.removeListener(`keypress`,this._boundOnKeypress),this._boundOnData=null,this._boundOnEnd=null,this._boundOnError=null,this._boundOnKeypress=null;let n=this._input;this.terminal&&n.isRaw&&typeof n.setRawMode==`function`&&n.setRawMode(!1),typeof this._input.pause==`function`&&this._input.pause()}this.emit(`close`)}}pause(){return this._closed?this:(this._paused=!0,this._input&&`pause`in this._input&&typeof this._input.pause==`function`&&this._input.pause(),this.emit(`pause`),this)}resume(){return this._closed?this:(this._paused=!1,this._input&&`resume`in this._input&&typeof this._input.resume==`function`&&this._input.resume(),this.emit(`resume`),this)}getCursorPos(){let n=this._output?.columns??80,a=this._prompt.length+this.cursor;return{rows:Math.floor(a/n),cols:a%n}}[Symbol.asyncIterator](){let n=[],a=null,S=!1,onLine=S=>{if(a){let n=a;a=null,n({value:S,done:!1})}else n.push(S)},onClose=()=>{if(S=!0,a){let n=a;a=null,n({value:void 0,done:!0})}};return this.on(`line`,onLine),this.on(`close`,onClose),{next:()=>n.length>0?Promise.resolve({value:n.shift(),done:!1}):S?Promise.resolve({value:void 0,done:!0}):new Promise(n=>{a=n}),return:()=>(S=!0,this.removeListener(`line`,onLine),this.removeListener(`close`,onClose),Promise.resolve({value:void 0,done:!0})),[Symbol.asyncIterator](){return this}}}},__name$1(createInterface$1,`createInterface`),gs=Symbol(`keypress-decoder`),_s=Symbol(`escape-decoder`)}),ys,bs=__esmMin(()=>{vo(),Ss(),Ko(),ds(),Go(),fs(),xs(),se(),ve(),bt(),vs(),ys=class FileHandle{options;_file;_ioStream=null;_readStream=null;_gFile;_ioMode;_ioLock=Promise.resolve();static instances={};constructor(n){this.options=n,this.options.flags||=`r`,this.options.mode||=438;let a=normalizePath(n.path),S=shouldCreate(n.flags),C=resolveIOMode(n.flags);try{this._file=openIOChannel(a,C,S)}catch(n){throw mapOpenError(n,a)}return this._file.set_encoding(null),this.fd=this._file.unix_get_fd(),this._gFile=_e.File.new_for_path(a),this._ioMode=C,FileHandle.instances[this.fd]=this,FileHandle.getInstance(this.fd)}_getReadStream(){return this._ioStream?{input:this._ioStream.get_input_stream(),seekable:this._ioStream}:this._ioMode===`r`?(this._readStream||=this._gFile.read(null),{input:this._readStream,seekable:this._readStream}):(this._ioStream=this._gFile.open_readwrite(null),{input:this._ioStream.get_input_stream(),seekable:this._ioStream})}_getWriteStream(){if(this._ioStream)return this._ioStream;if(this._ioMode===`r`)throw Error(`FileHandle opened read-only; cannot write`);return this._ioStream=this._gFile.open_readwrite(null),this._ioStream}_serialize(n){let a=this._ioLock.catch(()=>{}).then(n);return this._ioLock=a,a}fd;static getInstance(n){if(!FileHandle.instances[n])throw Error(`No instance found for fd!`);return FileHandle.instances[n]}async appendFile(n,a){let S=getEncodingFromOptions(a);typeof n==`string`&&(n=dt.from(n)),S&&this._file.set_encoding(S);let[C,N]=this._file.write_chars(n,n.length);if(C===Z.IOStatus.ERROR)throw Error(`Error on append to file!`)}async chown(n,a){chownSync(normalizePath(this.options.path),n,a)}async chmod(n){chmodSync(normalizePath(this.options.path),n)}createReadStream(n){return new ReadStream$1(this.options.path,n)}createWriteStream(n){return new WriteStream$1(this.options.path,n)}async datasync(){this._file.flush()}async sync(){this._file.flush()}async read(...n){let a,S,C,N;if(typeof n[0]==`object`&&!(n[0]instanceof Uint8Array)&&!(n[0]instanceof dt)){let F=n[0];a=F.buffer,S=F.offset,C=F.length,N=F.position}else a=n[0],S=n[1],C=n[2],N=n[3];let F=a,I=S??0,H=C??F?.byteLength??65536,W=N??0;return this._serialize(async()=>{let{input:n,seekable:S}=this._getReadStream();S.seek(BigInt(W),Z.SeekType.SET,null);let C=n.read_bytes(H,null).get_data(),N=C?.length??0;return F&&C&&N>0&&F.set(C,I),{bytesRead:N,buffer:a}})}readableWebStream(){let n=globalThis.ReadableStream;if(typeof n!=`function`)throw Error(`readableWebStream() requires a global ReadableStream. Import "node:stream/web" or "@gjsify/streams" before calling this method.`);return new n}async readFile(n){let a=getEncodingFromOptions(n,`buffer`);a&&this._file.set_encoding(a);let[S,C]=this._file.read_to_end();if(S===Z.IOStatus.ERROR)throw Error(`Error on read from file!`);return encodeUint8Array(a,C)}readLines(n){return createInterface$1({input:this.createReadStream(n),crlfDelay:1/0})}async stat(n){let a=await new Promise((n,a)=>{this._gFile.query_info_async(Wo,_e.FileQueryInfoFlags.NONE,Z.PRIORITY_DEFAULT,null,(S,C)=>{try{n(this._gFile.query_info_finish(C))}catch(n){a(n)}})}),S=normalizePath(this.options.path);return n?.bigint?new BigIntStats(a,S):new Stats(a,S)}async truncate(n=0){let a=Math.max(0,n);this._file.flush(),this._getWriteStream().get_output_stream().truncate(a,null)}async utimes(n,a){let{utimesSync:S}=await Promise.resolve().then(()=>(ns(),ts));S(normalizePath(this.options.path),n,a)}async writeFile(n,a){let S=getEncodingFromOptions(a),C;C=typeof n==`string`?dt.from(n,S||`utf8`):n,this._file.seek_position(0,Z.SeekType.SET);let[N]=this._file.write_chars(C,C.length);if(N===Z.IOStatus.ERROR)throw Error(`Error writing to file!`);this._file.flush()}async write(n,...a){let S=null,C=null,N=null,F=null;typeof n==`string`?(S=a[0],C=a[1]):(N=a[0],F=a[1],S=a[2]),C=getEncodingFromOptions(C,typeof n==`string`?`utf8`:null);let I;I=typeof n==`string`?new TextEncoder().encode(n):n;let H=N??0,W=F??I.byteLength-H,K=I.slice(H,H+W),q=S??0;return{bytesWritten:await this._serialize(async()=>{let n=this._getWriteStream();n.seek(BigInt(q),Z.SeekType.SET,null);let a=n.get_output_stream(),S=await new Promise((n,S)=>{a.write_bytes_async(new Z.Bytes(K),Z.PRIORITY_DEFAULT,null,(C,N)=>{try{n(a.write_bytes_finish(N))}catch(n){S(n)}})});return await new Promise((n,S)=>{a.flush_async(Z.PRIORITY_DEFAULT,null,(C,N)=>{try{a.flush_finish(N),n()}catch(n){S(n)}})}),S}),buffer:n}}async writev(n,a){let S=0;for(let C of n){let n=dt.from(C.buffer,C.byteOffset,C.byteLength),N=await this.write(n,0,n.byteLength,a==null?null:a+S);S+=N.bytesWritten}return{bytesWritten:S,buffers:n}}async readv(n,a){let S=0;for(let C of n){let n=await this.read({buffer:dt.from(C.buffer,C.byteOffset,C.byteLength),position:a==null?null:a+S});if(S+=n.bytesRead,n.bytesRead<C.byteLength)break}return{bytesRead:S,buffers:n}}_flushSync(){this._file.flush()}_closeSync(){try{this._ioStream?.close(null)}catch{}try{this._readStream?.close(null)}catch{}this._ioStream=null,this._readStream=null;try{this._file.shutdown(!0)}catch{}let n=FileHandle;delete n.instances[this.fd]}_readSync(n,a,S,C){let N=this._gFile.read(null);try{C!==null&&C>=0&&N.seek(C,Z.SeekType.SET,null);let F=N.read_bytes(S,null).get_data();return new Uint8Array(n.buffer,n.byteOffset+a).set(F.subarray(0,F.length)),F.length}finally{N.close(null)}}_writeSync(n,a){let S=this._gFile.open_readwrite(null);try{return a!==null&&a>=0&&S.seek(a,Z.SeekType.SET,null),S.get_output_stream().write_bytes(Z.Bytes.new(n),null)}finally{S.close(null)}}async close(){try{this._ioStream?.close(null)}catch{}try{this._readStream?.close(null)}catch{}this._ioStream=null,this._readStream=null;try{this._file.shutdown(!0)}catch{}}async[Symbol.asyncDispose](){await this.close()}pull(...n){throw Error('FileHandle.pull() is not implemented in @gjsify/fs yet — requires `node:stream/iter` (Node 25.9+) which @gjsify/stream has not ported. Track gjsify Open TODO "Node 25 stream/iter integration".')}writer(n){throw Error('FileHandle.writer() is not implemented in @gjsify/fs yet — requires `node:stream/iter` (Node 25.9+) which @gjsify/stream has not ported. Track gjsify Open TODO "Node 25 stream/iter integration".')}}});function statSync(n,a){let S=normalizePath(n);try{let n=_e.File.new_for_path(S).query_info(Wo,_e.FileQueryInfoFlags.NONE,null);return a?.bigint?new BigIntStats(n,S):new Stats(n,S)}catch(n){if(a?.throwIfNoEntry===!1&&isNotFoundError(n))return;throw createNodeError(n,`stat`,S)}}function lstatSync(n,a){let S=normalizePath(n);try{let n=_e.File.new_for_path(S).query_info(Wo,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);return a?.bigint?new BigIntStats(n,S):new Stats(n,S)}catch(n){if(a?.throwIfNoEntry===!1&&isNotFoundError(n))return;throw createNodeError(n,`lstat`,S)}}function readdirSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S).enumerate_children(`standard::name,standard::type`,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null),N=[];try{let n=C.next_file(null);for(;n!==null;)N.push({name:n.get_name(),type:n.get_file_type()}),n=C.next_file(null)}finally{try{C.close(null)}catch{}}let F=[];for(let n of N){let C=jo(S,n.name);if(a?.withFileTypes?F.push(new Dirent(C,n.name,n.type)):F.push(n.name),a?.recursive&&n.type===_e.FileType.DIRECTORY){let S=readdirSync(C,a);for(let a of S)typeof a==`string`?F.push(jo(n.name,a)):F.push(a)}}return F}function realpathSync(n){let a=normalizePath(n),S=_e.File.new_for_path(a),C=0;for(;;){let n=S.query_info(`standard::is-symlink,standard::symlink-target`,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);if(!n.get_is_symlink())return S.get_path();let N=n.get_symlink_target(),F=S.get_parent();if(S=F?F.resolve_relative_path(N):_e.File.new_for_path(N),++C>40)throw Error(`ELOOP: too many levels of symbolic links, realpath '${a}'`)}}function symlinkSync(n,a,S){let C=normalizePath(a),N=normalizePath(n);_e.File.new_for_path(C).make_symbolic_link(N,null)}function readFileSync(n,a={encoding:null,flag:`r`}){let S=normalizePath(n),C=_e.File.new_for_path(S);try{let[n,N]=C.load_contents(null);if(!n)throw createNodeError(Error(`failed to read file`),`read`,S);return encodeUint8Array(getEncodingFromOptions(a,`buffer`),N)}catch(n){throw n.code&&typeof n.code==`string`?n:createNodeError(n,`read`,S)}}function mkdirSync(n,a){let S=!1,C=511;if(typeof a==`object`?(a?.recursive&&(S=a.recursive),a?.mode&&(C=a.mode)):C=a||511,n=normalizePath(n),typeof C==`string`)throw TypeError(`mode as string is currently not supported!`);if(S)return mkdirSyncRecursive(n,C);let N=_e.File.new_for_path(n);try{N.make_directory(null)}catch(a){throw createNodeError(a,`mkdir`,n)}}function mkdirSyncRecursive(n,a){let S=_e.File.new_for_path(n);try{return S.make_directory(null),n}catch(S){let C=S;if(C.code===_e.IOErrorEnum.EXISTS)return;if(C.code===_e.IOErrorEnum.NOT_FOUND){let C=jo(n,`..`),N=_e.File.new_for_path(C).get_path();if(N===n)throw createNodeError(S,`mkdir`,n);let F=mkdirSyncRecursive(N,a),I=_e.File.new_for_path(n);try{I.make_directory(null)}catch(a){throw createNodeError(a,`mkdir`,n)}return F??n}throw createNodeError(S,`mkdir`,n)}}function rmdirSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S);try{if(C.query_info(`standard::type`,_e.FileQueryInfoFlags.NONE,null).get_file_type()!==_e.FileType.DIRECTORY)throw createNodeError(Object.assign(Error(),{code:4}),`rmdir`,S);if(C.enumerate_children(`standard::name`,_e.FileQueryInfoFlags.NONE,null).next_file(null)!==null)throw createNodeError(Object.assign(Error(),{code:5}),`rmdir`,S);C.delete(null)}catch(n){throw n.code&&typeof n.code==`string`?n:createNodeError(n,`rmdir`,S)}}function unlinkSync(n){let a=normalizePath(n),S=_e.File.new_for_path(a);try{S.delete(null)}catch(n){throw createNodeError(n,`unlink`,a)}}function writeFileSync(n,a){Z.file_set_contents(normalizePath(n),a)}function renameSync(n,a){let S=normalizePath(n),C=normalizePath(a),N=_e.File.new_for_path(S),F=_e.File.new_for_path(C);try{N.move(F,_e.FileCopyFlags.OVERWRITE,null,null)}catch(n){throw createNodeError(n,`rename`,S,C)}}function copyFileSync(n,a,S){let C=normalizePath(n),N=normalizePath(a),F=_e.File.new_for_path(C),I=_e.File.new_for_path(N),H=_e.FileCopyFlags.NONE;S&&!(S&1)?H=_e.FileCopyFlags.OVERWRITE:S||(H=_e.FileCopyFlags.OVERWRITE);try{F.copy(I,H,null,null)}catch(n){throw createNodeError(n,`copyfile`,C,N)}}function accessSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S);try{let n=C.query_info(`access::*`,_e.FileQueryInfoFlags.NONE,null);if(a!==void 0&&a!==0){let C={code:14,message:`permission denied, access '${S}'`};if(a&4&&!n.get_attribute_boolean(`access::can-read`)||a&2&&!n.get_attribute_boolean(`access::can-write`)||a&1&&!n.get_attribute_boolean(`access::can-execute`))throw createNodeError(C,`access`,S)}}catch(n){throw n.code&&typeof n.code==`string`?n:createNodeError(n,`access`,S)}}function appendFileSync(n,a,S){let C=normalizePath(n),N=_e.File.new_for_path(C),F;F=typeof a==`string`?new TextEncoder().encode(a):a;try{let n=N.append_to(_e.FileCreateFlags.NONE,null);F.length>0&&n.write_bytes(new Z.Bytes(F),null),n.close(null)}catch(n){throw createNodeError(n,`appendfile`,C)}}function readlinkSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S);try{let n=C.query_info(`standard::symlink-target`,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null).get_symlink_target();if(!n)throw Object.assign(Error(`EINVAL: invalid argument, readlink '${S}'`),{code:`EINVAL`,errno:-22,syscall:`readlink`,path:S});return(typeof a==`string`?a:a?.encoding)===`buffer`?dt.from(n):n}catch(n){throw typeof n.code==`string`?n:createNodeError(n,`readlink`,S)}}function linkSync(n,a){let S=normalizePath(n),C=normalizePath(a);if(!Z.spawn_command_line_sync(`ln ${S} ${C}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, link '${S}' -> '${C}'`),{code:`EPERM`,errno:-1,syscall:`link`,path:S,dest:C})}function truncateSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S);try{let n=C.replace(null,!1,_e.FileCreateFlags.NONE,null);if(a&&a>0){let[,S]=C.load_contents(null),N=S.slice(0,a);N.length>0&&n.write_bytes(new Z.Bytes(N),null)}n.close(null)}catch(n){throw createNodeError(n,`truncate`,S)}}function chmodSync(n,a){let S=normalizePath(n),C=typeof a==`string`?parseInt(a,8):a;if(!Z.spawn_command_line_sync(`chmod ${C.toString(8)} ${S}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, chmod '${S}'`),{code:`EPERM`,errno:-1,syscall:`chmod`,path:S})}function chownSync(n,a,S){let C=normalizePath(n);if(!Z.spawn_command_line_sync(`chown ${a}:${S} ${C}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, chown '${C}'`),{code:`EPERM`,errno:-1,syscall:`chown`,path:C})}function watch(n,a,S){return new FSWatcher(normalizePath(n),a,S)}function openSync(n,a,S){return new ys({path:n,flags:a,mode:S})}function mkdtempSync(n,a){let S=getEncodingFromOptions(a),C=tempDirPath(n);return mkdirSync(C,{recursive:!1,mode:511}),decode(C,S)}function rmSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S),N=a?.recursive||!1,F=a?.force||!1,I;try{I=new Dirent(S)}catch(a){if(F&&isNotFoundError(a))return;throw createNodeError(a,`rm`,n)}if(I.isDirectory()){let C=readdirSync(n);if(!N&&C.length)throw createNodeError(Object.assign(Error(),{code:5}),`rm`,n);for(let n of C)rmSync(jo(S,n),a)}try{C.delete(null)}catch(a){if(F&&isNotFoundError(a))return;throw createNodeError(a,`rm`,n)}}var xs=__esmMin(()=>{vo(),Ss(),ws(),Uo(),Go(),bs(),qo(),se(),ve(),Ho(),bt(),et(),realpathSync.native=realpathSync});function normalizePath(n){return n instanceof URL||n instanceof tn?fileURLToPath(n):typeof n==`string`?n:n.toString()}function randomName(){return[...[,,,,,,]].map(()=>`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`[Math.floor(Math.random()*62)]).join(``)}function tempDirPath(n){let a;do a=n+randomName();while(existsSync(a));return a}var Ss=__esmMin(()=>{xs(),rn()});function changed(n,a,S,C){switch(C){case _e.FileMonitorEvent.CHANGES_DONE_HINT:this.emit(`change`,`change`,a.get_basename());break;case _e.FileMonitorEvent.DELETED:case _e.FileMonitorEvent.CREATED:case _e.FileMonitorEvent.RENAMED:case _e.FileMonitorEvent.MOVED_IN:case _e.FileMonitorEvent.MOVED_OUT:this.emit(`rename`,`rename`,a.get_basename());break}}function gioEventToNodeType(n){switch(n){case _e.FileMonitorEvent.CHANGES_DONE_HINT:return`change`;case _e.FileMonitorEvent.DELETED:case _e.FileMonitorEvent.CREATED:case _e.FileMonitorEvent.RENAMED:case _e.FileMonitorEvent.MOVED_IN:case _e.FileMonitorEvent.MOVED_OUT:return`rename`;default:return null}}async function*watchAsync(n,a){let S=a?.signal;if(S?.aborted)return;let C=normalizePath(n),N=_e.File.new_for_path(C),F=_e.Cancellable.new(),I;try{I=N.monitor(_e.FileMonitorFlags.NONE,F)}catch{return}let H=[],W=[],K=!1;function enqueue(n){K||(W.length>0?W.shift().resolve({value:n,done:!1}):H.push(n))}function terminate(){if(!K)for(K=!0,F.is_cancelled()||F.cancel();W.length>0;)W.shift().resolve({value:void 0,done:!0})}let q=I.connect(`changed`,(n,a,S,C)=>{let N=gioEventToNodeType(C);N!==null&&enqueue({eventType:N,filename:a?.get_basename()??null})}),abortHandler=()=>terminate();S?.addEventListener(`abort`,abortHandler);try{for(;!K;){if(H.length>0){yield H.shift();continue}let n=await new Promise(n=>{W.push({resolve:n})});if(n.done)break;yield n.value}}finally{S?.removeEventListener(`abort`,abortHandler);try{I.disconnect(q)}catch{}F.is_cancelled()||F.cancel()}}var Cs,FSWatcher,ws=__esmMin(()=>{Ss(),se(),ve(),Vt(),Cs=new WeakMap,FSWatcher=class extends At{constructor(n,a,S){super(),(!a||typeof a!=`object`)&&(a={persistent:!0});let C=a.persistent!==!1,N=_e.Cancellable.new(),F=normalizePath(n),I=_e.File.new_for_path(F).monitor(_e.FileMonitorFlags.NONE,N);I.connect(`changed`,changed.bind(this));let H=null;C&&(H=Z.timeout_add(Z.PRIORITY_LOW,2147483647,()=>Z.SOURCE_CONTINUE)),Cs.set(this,{persistent:C,cancellable:N,sourceId:H,watcher:I}),S&&this.on(`change`,S)}close(){let n=Cs.get(this);n.cancellable.is_cancelled()||(n.cancellable.cancel(),n.sourceId!==null&&(Z.source_remove(n.sourceId),n.sourceId=null))}ref(){let n=Cs.get(this);return!n.persistent&&!n.cancellable.is_cancelled()&&(n.persistent=!0,n.sourceId=Z.timeout_add(Z.PRIORITY_LOW,2147483647,()=>Z.SOURCE_CONTINUE)),this}unref(){let n=Cs.get(this);return n.persistent&&(n.persistent=!1,n.sourceId!==null&&(Z.source_remove(n.sourceId),n.sourceId=null)),this}}});function zeroedStat(){return{dev:0,ino:0,mode:0,nlink:0,uid:0,gid:0,rdev:0,size:0,blksize:0,blocks:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date(0),mtime:new Date(0),ctime:new Date(0),birthtime:new Date(0),isFile:()=>!1,isDirectory:()=>!1,isBlockDevice:()=>!1,isCharacterDevice:()=>!1,isSymbolicLink:()=>!1,isFIFO:()=>!1,isSocket:()=>!1}}function watchFile(n,a,S){typeof a==`function`&&(S=a,a={});let C=a.interval??5007,N=n.toString(),F=Ts.get(N);return F||(F=new StatWatcher(N,C),F.start(),Ts.set(N,F)),S&&F.addChangeListener(S),F}function unwatchFile(n,a){let S=n.toString(),C=Ts.get(S);C&&(a?C.removeChangeListener(a):C.removeAllChangeListeners(),C.changeListenerCount===0&&(C.stop(),Ts.delete(S)))}var StatWatcher,Ts,Es=__esmMin(()=>{xs(),Vt(),StatWatcher=class extends At{_path;_interval;_timerId=null;_prev;_changeCount=0;constructor(n,a){super(),this._path=n,this._interval=a,this._prev=zeroedStat()}start(){try{this._prev=statSync(this._path)}catch{}this._timerId=setInterval(()=>{let n;try{n=statSync(this._path)}catch{n=zeroedStat()}let a=this._prev;(n.mtimeMs!==a.mtimeMs||n.size!==a.size||n.ino!==a.ino)&&(this._prev=n,this.emit(`change`,n,a))},this._interval)}stop(){this._timerId!==null&&(clearInterval(this._timerId),this._timerId=null),this.emit(`stop`)}addChangeListener(n){this._changeCount++,this.on(`change`,n)}removeChangeListener(n){this._changeCount--,this.removeListener(`change`,n)}removeAllChangeListeners(){this._changeCount=0,this.removeAllListeners(`change`)}get changeListenerCount(){return this._changeCount}},Ts=new Map}),Ds=__exportAll$3({BigIntStats:()=>BigIntStats,Dir:()=>Dir,Dirent:()=>Dirent,FSWatcher:()=>FSWatcher,ReadStream:()=>ReadStream$1,StatWatcher:()=>StatWatcher,Stats:()=>Stats,WriteStream:()=>WriteStream$1,access:()=>access,accessSync:()=>accessSync,appendFile:()=>appendFile,appendFileSync:()=>appendFileSync,chmod:()=>chmod,chmodSync:()=>chmodSync,chown:()=>chown,chownSync:()=>chownSync,close:()=>close$1,closeSync:()=>closeSync,constants:()=>Os,copyFile:()=>copyFile,copyFileSync:()=>copyFileSync,cp:()=>cp,cpSync:()=>cpSync,createReadStream:()=>createReadStream,createWriteStream:()=>createWriteStream,default:()=>ks,exists:()=>exists,existsSync:()=>existsSync,fchmod:()=>fchmod,fchmodSync:()=>fchmodSync,fchown:()=>fchown,fchownSync:()=>fchownSync,fdatasync:()=>fdatasync,fdatasyncSync:()=>fdatasyncSync,fstat:()=>fstat,fstatSync:()=>fstatSync,fsync:()=>fsync,fsyncSync:()=>fsyncSync,ftruncate:()=>ftruncate,ftruncateSync:()=>ftruncateSync,futimes:()=>futimes,futimesSync:()=>futimesSync,glob:()=>glob,globSync:()=>globSync,lchmod:()=>lchmod,lchmodSync:()=>lchmodSync,lchown:()=>lchown,lchownSync:()=>lchownSync,link:()=>link,linkSync:()=>linkSync,lstat:()=>lstat,lstatSync:()=>lstatSync,lutimes:()=>lutimes,lutimesSync:()=>lutimesSync,mkdir:()=>mkdir,mkdirSync:()=>mkdirSync,mkdtempSync:()=>mkdtempSync,open:()=>open$1,openAsBlob:()=>openAsBlob,openSync:()=>openSync,opendir:()=>opendir,opendirSync:()=>opendirSync,promises:()=>as,read:()=>read$1,readFile:()=>readFile,readFileSync:()=>readFileSync,readSync:()=>readSync,readdir:()=>readdir,readdirSync:()=>readdirSync,readlink:()=>readlink,readlinkSync:()=>readlinkSync,readv:()=>readv,readvSync:()=>readvSync,realpath:()=>realpath,realpathSync:()=>realpathSync,rename:()=>rename,renameSync:()=>renameSync,rm:()=>rm,rmSync:()=>rmSync,rmdir:()=>rmdir,rmdirSync:()=>rmdirSync,stat:()=>stat,statSync:()=>statSync,statfs:()=>statfs,statfsSync:()=>statfsSync,symlink:()=>symlink,symlinkSync:()=>symlinkSync,truncate:()=>truncate,truncateSync:()=>truncateSync,unlink:()=>unlink,unlinkSync:()=>unlinkSync,unwatchFile:()=>unwatchFile,utimes:()=>utimes,utimesSync:()=>utimesSync,watch:()=>watch,watchFile:()=>watchFile,write:()=>write,writeFile:()=>writeFile,writeFileSync:()=>writeFileSync,writeSync:()=>writeSync,writev:()=>writev,writevSync:()=>writevSync}),Os,ks,As=__esmMin(()=>{ws(),Ko(),ds(),Uo(),Go(),xs(),Jo(),Xo(),Zo(),es(),ns(),rs(),ss(),cs(),Es(),Os={F_OK:0,R_OK:4,W_OK:2,X_OK:1,COPYFILE_EXCL:1,COPYFILE_FICLONE:2,COPYFILE_FICLONE_FORCE:4,O_RDONLY:0,O_WRONLY:1,O_RDWR:2,O_CREAT:64,O_EXCL:128,O_TRUNC:512,O_APPEND:1024,O_SYNC:1052672,O_NONBLOCK:2048,O_DIRECTORY:65536,O_NOFOLLOW:131072,S_IFMT:61440,S_IFREG:32768,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960,S_IFSOCK:49152,S_IRWXU:448,S_IRUSR:256,S_IWUSR:128,S_IXUSR:64,S_IRWXG:56,S_IRGRP:32,S_IWGRP:16,S_IXGRP:8,S_IRWXO:7,S_IROTH:4,S_IWOTH:2,S_IXOTH:1},ks={FSWatcher,StatWatcher,Stats,BigIntStats,Dirent,Dir,constants:Os,existsSync,readdirSync,readFileSync,writeFileSync,mkdirSync,rmdirSync,unlinkSync,mkdtempSync,rmSync,statSync,openSync,realpathSync,symlinkSync,lstatSync,renameSync,copyFileSync,accessSync,appendFileSync,readlinkSync,linkSync,truncateSync,chmodSync,chownSync,cpSync,opendirSync,globSync,glob,watch,watchFile,unwatchFile,statfsSync,statfs,utimesSync,utimes,lutimesSync,lutimes,lchownSync,lchown,lchmodSync,lchmod,fstatSync,fstat,ftruncateSync,ftruncate,fdatasyncSync,fdatasync,fsyncSync,fsync,fchmodSync,fchmod,fchownSync,fchown,futimesSync,futimes,closeSync,readSync,writeSync,readvSync,readv,writevSync,writev,exists,openAsBlob,createReadStream,ReadStream:ReadStream$1,createWriteStream,WriteStream:WriteStream$1,promises:as,open:open$1,close:close$1,read:read$1,write,rm,realpath,readdir,symlink,lstat,stat,rename,copyFile,cp,access,appendFile,readlink,truncate,chmod,chown,mkdir,rmdir,readFile,writeFile,unlink,link,opendir}});function findPnpManifest(n){let a=_e.File.new_for_path(n);for(;a.has_parent(null);){let n=a.resolve_relative_path(`.pnp.cjs`);if(n.query_exists(null))return n.get_path();a=a.get_parent()}return null}function loadPnpManifest(n){let a=js.get(n);if(a!==void 0)return a;let S=_e.File.new_for_path(n),C;try{let[a,N]=S.load_contents(null);if(!a)return js.set(n,null),null;C=new TextDecoder().decode(N)}catch{return js.set(n,null),null}let N=extractRawRuntimeState(C);if(!N)return js.set(n,null),null;let F=Z.path_get_dirname(n),I=new Map,H=new Map;for(let[n,a]of N.packageRegistryData){let S=new Map;for(let[C,N]of a)S.set(C,N),N.discardFromLookup||H.set(N.packageLocation,{name:n,reference:C});I.set(n,S)}let W={rootDir:F,packages:I,locatorsByLocation:H};return js.set(n,W),W}function extractRawRuntimeState(n){let a=n.indexOf(`const RAW_RUNTIME_STATE =`);if(a<0)return null;let S=n.indexOf(`'`,a);if(S<0)return null;let C=S+1;for(;C<n.length;){let a=n.charCodeAt(C);if(a===92){C+=2;continue}if(a===39)break;C++}if(C>=n.length)return null;let N=n.slice(S+1,C);N=N.replace(/\\\n/g,``);try{return JSON.parse(N)}catch{return null}}function findPackageOwning(n,a){let S=relativeFromRoot(n.rootDir,a);if(S===null)return null;let C=null;for(let a of n.locatorsByLocation.keys())S.startsWith(a)&&(C===null||a.length>C.length)&&(C=a);if(C===null)return null;let N=n.locatorsByLocation.get(C),F=n.packages.get(N.name)?.get(N.reference);return F?{locator:N,info:F}:null}function resolveBareViaPnp(n,a,S){let C=findPackageOwning(n,S);if(!C)return null;let{pkgName:N,subPath:F}=splitSpecifier(a),I=C.info.packageDependencies?.find(([n])=>n===N);if(!I)return null;let[,H]=I;if(H===null)return null;let W=n.packages.get(N)?.get(H);if(!W)return null;let K=W.packageLocation.startsWith(`/`)?_e.File.new_for_path(W.packageLocation):_e.File.new_for_path(n.rootDir).resolve_relative_path(stripLeadingDotSlash(W.packageLocation));return(F?K.resolve_relative_path(F):K).get_path()}function splitSpecifier(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a<0)return{pkgName:n,subPath:``};let S=n.indexOf(`/`,a+1);return S<0?{pkgName:n,subPath:``}:{pkgName:n.slice(0,S),subPath:n.slice(S+1)}}let a=n.indexOf(`/`);return a<0?{pkgName:n,subPath:``}:{pkgName:n.slice(0,a),subPath:n.slice(a+1)}}function stripLeadingDotSlash(n){return n.startsWith(`./`)?n.slice(2):n}function relativeFromRoot(n,a){if(a===n)return`./`;let S=n.endsWith(`/`)?n:n+`/`;return a.startsWith(S)?`./`+a.slice(S.length):null}var js,Ms=__esmMin(()=>{ve(),se(),js=new Map}),Ns=__esmMin(()=>{globalThis.imports}),Ps=__esmMin(()=>{Ns()}),Fs=__exportAll$3({builtinModules:()=>Is,createRequire:()=>createRequire,default:()=>Rs,isBuiltin:()=>isBuiltin});function isBuiltin(n){let a=n.startsWith(`node:`)?n.slice(5):n,S=a.split(`/`)[0];return Is.includes(a)||Is.includes(S)}function resolveSymlink(n){let a=n.query_info(`standard::`,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);if(a.get_is_symlink()){let S=a.get_symlink_target(),C=n.get_parent();if(S&&C)return C.resolve_relative_path(S).get_path()}return n.get_path()}function tryJsExtension(n){let a=_e.File.new_for_path(n+`.js`);return a.query_exists(null)?a:null}function hasExtension(n){return n.includes(`.`)}function resolvePackageEntry(n){let a=Ge(n,`package.json`);if(!a.query_exists(null))return null;let S=readJSON(a.get_path());if(S.exports!==void 0){let a=resolveExportsMap(S.exports,`.`,Ls);if(a){let S=Ge(n,a);if(S.query_exists(null))return S.get_path()}}let C=S.main||S.module||`index.js`,N=Ge(n,C);if(N.query_exists(null))return N.get_path();if(!hasExtension(C)){let n=tryJsExtension(N.get_path());if(n)return n.get_path()}return null}function resolveExportsMap(n,a,S){if(typeof n==`string`)return a===`.`?n:void 0;if(typeof n!=`object`||!n)return;let C=n,N=Object.keys(C).some(n=>n===`.`||n.startsWith(`./`))?C[a]:a===`.`?C:void 0;if(N!=null)return pickConditionalValue(N,S)}function pickConditionalValue(n,a){if(typeof n==`string`)return n;if(typeof n!=`object`||!n)return;let S=n;for(let n of a)if(n in S){let C=pickConditionalValue(S[n],a);if(C!==void 0)return C}if(`default`in S&&!a.includes(`default`))return pickConditionalValue(S.default,a)}function splitBareSpecifier(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a===-1)return{pkg:n,subpath:`.`};let S=n.indexOf(`/`,a+1);return S===-1?{pkg:n,subpath:`.`}:{pkg:n.slice(0,S),subpath:`.`+n.slice(S)}}let a=n.indexOf(`/`);return a===-1?{pkg:n,subpath:`.`}:{pkg:n.slice(0,a),subpath:`.`+n.slice(a)}}function fileUrlToPath(n){if(typeof n==`object`&&n&&`href`in n){let a=n;if(a.protocol&&a.protocol!==`file:`)throw TypeError(`The URL must use the file: protocol`);return Z.filename_from_uri(a.href)[0]}return typeof n==`string`&&n.startsWith(`file:`)?Z.filename_from_uri(n)[0]:String(n)}function resolveBareViaPnpFromCaller(n,a){let S=findPnpManifest(a);if(!S)return null;let C=loadPnpManifest(S);if(!C)return null;let N=resolveBareViaPnp(C,n,a);if(!N)return null;let F=_e.File.new_for_path(N);return F.query_exists(null)?F:null}function resolveInNodeModules(n,a){let{pkg:S,subpath:C}=splitBareSpecifier(n),N=_e.File.new_for_path(a);for(;N.has_parent(null);){let a=N.resolve_relative_path(`node_modules`);if(a.query_exists(null)){let N=a.resolve_relative_path(S);if(N.query_exists(null)){let n=N.resolve_relative_path(`package.json`);if(n.query_exists(null)){let a=readJSON(n.get_path());if(a.exports!==void 0){let n=resolveExportsMap(a.exports,C,Ls);if(n!==void 0){let a=N.resolve_relative_path(n);if(a.query_exists(null))return a}}}let a=C===`.`?N:N.resolve_relative_path(C.slice(2));if(a.query_exists(null))return a;let S=a.get_basename();if(S&&!hasExtension(S)){let n=tryJsExtension(a.get_path());if(n)return n}}else{let S=a.resolve_relative_path(n);if(S.query_exists(null))return S;let C=S.get_basename();if(C&&!hasExtension(C)){let n=tryJsExtension(S.get_path());if(n)return n}}}N=N.get_parent()}throw Error(`Cannot find module "${n}" - not found in any node_modules directory`)}function resolveModulePath$1(n,a){if(isBuiltin(n))return n;let S;if(S=n.startsWith(`/`)?Ge(n):n.startsWith(`.`)?Ge(a,n):resolveBareViaPnpFromCaller(n,a)??resolveInNodeModules(n,a),n.startsWith(`/`)||n.startsWith(`.`)){if(!S.query_exists(null)){let n=S.get_basename();n&&!hasExtension(n)&&(S=tryJsExtension(S.get_path())??S)}if(!S.query_exists(null))throw Error(`Cannot find module "${n}"`)}let C=resolveSymlink(S),N=S.get_basename();if(N&&!hasExtension(N)){let n=resolvePackageEntry(C);if(n)return n}return C}function requireJsFile(n,a){if(n in a)return a[n];let S=_e.File.new_for_path(n),C=S.get_parent().get_path(),N=S.get_basename();if(N.endsWith(`.mjs`))throw Error(`Cannot require .mjs files. Use import instead. Path: "${n}"`);if(N.endsWith(`.cjs`)){let n=Ge(C,`__gjsify__`+N.replace(/\.cjs$/,`.js`));n.query_exists(null)&&n.delete(null),S.copy(n,_e.FileCopyFlags.NONE,null,null),S=n,N=S.get_basename()}let F=globalThis.exports,I=globalThis.module,H={exports:{}};globalThis.exports=H.exports,globalThis.module=H;try{let{searchPath:S}=imports;S.unshift(C),imports[N.replace(/\.(js|cjs)$/,``)],S.shift();let F=H.exports;return a[n]=F,F}finally{globalThis.exports=F,globalThis.module=I}}function createRequire(n){let a=fileUrlToPath(n);if(!a.startsWith(`/`))throw TypeError(`The argument must be a file URL object, file URL string, or absolute path string. Received "${String(n)}"`);let S=Z.path_get_dirname(a),C=Object.create(null),N=function require(n){let a=resolveModulePath$1(n,S);if(a in C)return C[a];if(a.endsWith(`.json`)){let n=readJSON(a);return C[a]=n,n}if(isBuiltin(n))throw Error(`createRequire: Cannot require builtin module "${n}" synchronously in GJS. Use import instead.`);return requireJsFile(a,C)};return N.resolve=function resolve(n){return resolveModulePath$1(n,S)},N.resolve.paths=n=>null,N.cache=C,N.extensions=Object.create(null),N.main=void 0,N}var Is,Ls,Rs,zs=__esmMin(()=>{Ms(),Ps(),ve(),se(),et(),Is=`assert.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.domain.events.fs.http.http2.https.inspector.module.net.os.path.perf_hooks.process.punycode.querystring.readline.repl.stream.string_decoder.sys.timers.tls.tty.url.util.v8.vm.wasi.worker_threads.zlib`.split(`.`),Ls=[`node`,`import`,`default`],__name$1(resolveModulePath$1,`resolveModulePath`),Rs={builtinModules:Is,isBuiltin,createRequire}});As(),zs(),rn(),Ho();function splitPackageSpec(n){let a=n.split(`/`),S=n.startsWith(`@`)?2:1;return{pkg:a.slice(0,S).join(`/`),subpath:a.slice(S).join(`/`)}}function bundleAnchorUrl(){let n=globalThis.__gjsifyBundleUrl;if(!n)throw Error(`gjsify: __gjsifyBundleUrl is not set — the bundle-URL banner did not run. The module-resolve shim is only valid in single-file app builds (gjsify build --app gjs|node).`);return n}let Bs=null;function bundleResolve(){return Bs||=createRequire(bundleAnchorUrl()).resolve,Bs}function resolvePackageRoot(n){let a=bundleResolve();try{return Po(a(`${n}/package.json`))}catch{let S=a(n),C=`/node_modules/${n}/`,N=S.lastIndexOf(C);return N>=0?S.slice(0,N+C.length-1):Po(S)}}const Vs=new Map;function resolveFile(n){let a=Vs.get(n);if(a!==void 0)return a;let S;try{let{pkg:a,subpath:C}=splitPackageSpec(n),N=resolvePackageRoot(a);S=C?jo(N,C):N}catch{S=fileURLToPath(bundleAnchorUrl())}return Vs.set(n,S),S}function __gjsifyModuleUrl(n){return pathToFileURL(resolveFile(n)).href}function safeInspect(n,a=3){if(n===null)return`null`;if(n===void 0)return`undefined`;switch(typeof n){case`string`:return n.length>128?`'${n.slice(0,128)}...'`:`'${n}'`;case`number`:case`boolean`:case`bigint`:return String(n);case`symbol`:return n.toString();case`function`:return`[Function: ${n.name||`anonymous`}]`;case`object`:return inspectObject$1(n,a)}return String(n)}function inspectObject$1(n,a,S=new WeakSet){if(S.has(n))return`[Circular]`;if(S.add(n),n instanceof Date)return n.toISOString();if(n instanceof RegExp)return n.toString();if(n instanceof Error)return`[${n.constructor.name}: ${n.message}]`;if(n instanceof Map){if(a<=0)return`Map(${n.size}) { ... }`;let C=[...n.entries()].slice(0,10).map(([n,C])=>`${inspectInner(n,a-1,S)} => ${inspectInner(C,a-1,S)}`),N=n.size>10?`, ...`:``;return`Map(${n.size}) { ${C.join(`, `)}${N} }`}if(n instanceof Set){if(a<=0)return`Set(${n.size}) { ... }`;let C=[...n.values()].slice(0,10).map(n=>inspectInner(n,a-1,S)),N=n.size>10?`, ...`:``;return`Set(${n.size}) { ${C.join(`, `)}${N} }`}if(ArrayBuffer.isView(n)){let a=n.constructor.name,S=n instanceof DataView?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):n,C=`length`in S?S.length:0,N=Math.min(C,10),F=[];for(let n=0;n<N;n++)F.push(String(S[n]));let I=C>10?`, ...`:``;return`${a}(${C}) [ ${F.join(`, `)}${I} ]`}if(Array.isArray(n)){if(a<=0)return`[ ... ]`;let C=n.slice(0,10).map(n=>inspectInner(n,a-1,S)),N=n.length>10?`, ...`:``;return`[ ${C.join(`, `)}${N} ]`}if(a<=0)return`{ ... }`;let C=Object.keys(n),N=C.slice(0,10).map(C=>`${C}: ${inspectInner(n[C],a-1,S)}`),F=C.length>10?`, ...`:``;return`${n.constructor&&n.constructor.name!==`Object`?`${n.constructor.name} `:``}{ ${N.join(`, `)}${F} }`}__name$1(inspectObject$1,`inspectObject`);function inspectInner(n,a,S){return n===null?`null`:n===void 0?`undefined`:typeof n==`object`?inspectObject$1(n,a,S):safeInspect(n,a)}var AssertionError=class extends Error{actual;expected;operator;code;generatedMessage;constructor(n){let{actual:a,expected:S,operator:C=`fail`,stackStartFn:N}=n,F=n.message==null,I=F?generateMessage(a,S,C):String(n.message);super(I),this.name=`AssertionError`,this.code=`ERR_ASSERTION`,this.actual=a,this.expected=S,this.operator=C,this.generatedMessage=F,typeof Error.captureStackTrace==`function`&&Error.captureStackTrace(this,N||this.constructor)}toString(){return`${this.name} [${this.code}]: ${this.message}`}[Symbol.for(`nodejs.util.inspect.custom`)](n,a){return this.toString()}};const Hs={deepStrictEqual:`Expected values to be strictly deep-equal:`,strictEqual:`Expected values to be strictly equal:`,strictEqualObject:`Expected "actual" to be reference-equal to "expected":`,deepEqual:`Expected values to be loosely deep-equal:`,notDeepStrictEqual:`Expected "actual" not to be strictly deep-equal to:`,notStrictEqual:`Expected "actual" to be strictly unequal to:`,notStrictEqualObject:`Expected "actual" not to be reference-equal to "expected":`,notDeepEqual:`Expected "actual" not to be loosely deep-equal to:`,notIdentical:`Values have same structure but are not reference-equal:`,notEqual:`Expected "actual" to be loosely unequal to:`,equal:`Expected values to be loosely equal:`,"==":`Expected values to be loosely equal:`,"!=":`Expected "actual" to be loosely unequal to:`,"===":`Expected values to be strictly equal:`,"!==":`Expected "actual" to be strictly unequal to:`,fail:`Failed`};function generateMessage(n,a,S){let C=Hs[S]||`Operator: ${S}`;return S===`fail`?`Failed`:`${C}\n\n+ actual - expected\n\n+ ${safeInspect(n)}\n- ${safeInspect(a)}\n`}function isDate$2(n){return n instanceof Date}__name$1(isDate$2,`isDate`);function isRegExp$2(n){return n instanceof RegExp}__name$1(isRegExp$2,`isRegExp`);function isMap$1(n){return n instanceof Map}__name$1(isMap$1,`isMap`);function isSet$1(n){return n instanceof Set}__name$1(isSet$1,`isSet`);function isError$1(n){return n instanceof Error}__name$1(isError$1,`isError`);function isAnyArrayBuffer$1(n){return n instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&n instanceof SharedArrayBuffer}__name$1(isAnyArrayBuffer$1,`isAnyArrayBuffer`);function isArrayBufferView$1(n){return ArrayBuffer.isView(n)}__name$1(isArrayBufferView$1,`isArrayBufferView`);function isBoxedPrimitive$1(n){return n instanceof Number||n instanceof String||n instanceof Boolean||n instanceof BigInt||n instanceof Symbol}__name$1(isBoxedPrimitive$1,`isBoxedPrimitive`);function isNumberObject$1(n){return n instanceof Number}__name$1(isNumberObject$1,`isNumberObject`);function isStringObject$1(n){return n instanceof String}__name$1(isStringObject$1,`isStringObject`);function isBooleanObject$1(n){return n instanceof Boolean}__name$1(isBooleanObject$1,`isBooleanObject`);function isBigIntObject$1(n){return typeof BigInt<`u`&&n instanceof Object&&Object.prototype.toString.call(n)===`[object BigInt]`}__name$1(isBigIntObject$1,`isBigIntObject`);function isSymbolObject$1(n){return n instanceof Object&&Object.prototype.toString.call(n)===`[object Symbol]`}__name$1(isSymbolObject$1,`isSymbolObject`);function isFloatTypedArray(n){return n instanceof Float32Array||n instanceof Float64Array}const Us=__name$1((n,a)=>Object.prototype.hasOwnProperty.call(n,a),`hasOwn`),hasEnumerable=(n,a)=>Object.prototype.propertyIsEnumerable.call(n,a),Ws=new Set([Array,ArrayBuffer,Boolean,DataView,Date,Error,Float32Array,Float64Array,Function,Int8Array,Int16Array,Int32Array,Map,Number,Object,Promise,RegExp,Set,String,Symbol,Uint8Array,Uint16Array,Uint32Array,Uint8ClampedArray,BigInt64Array,BigUint64Array,WeakMap,WeakSet]);function getOwnNonIndexProperties(n,a){let S=Object.getOwnPropertyNames(n),C=[];for(let a of S){let S=Number(a);Number.isInteger(S)&&S>=0&&S<2**32-1&&String(S)===a||hasEnumerable(n,a)&&C.push(a)}if(!a){let a=Object.getOwnPropertySymbols(n);for(let S of a)hasEnumerable(n,S)&&C.push(S)}return C}function areSimilarRegExps(n,a){return n.source===a.source&&n.flags===a.flags&&n.lastIndex===a.lastIndex}function areSimilarFloatArrays(n,a){if(n.byteLength!==a.byteLength)return!1;let S=n,C=a;for(let n=0;n<S.length;n++)if(S[n]!==C[n])return!1;return!0}function areSimilarTypedArrays(n,a){if(n.byteLength!==a.byteLength)return!1;let S=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),C=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);for(let n=0;n<S.length;n++)if(S[n]!==C[n])return!1;return!0}function areEqualArrayBuffers(n,a){if(n.byteLength!==a.byteLength)return!1;let S=new Uint8Array(n),C=new Uint8Array(a);for(let n=0;n<S.length;n++)if(S[n]!==C[n])return!1;return!0}function isEqualBoxedPrimitive(n,a){return isNumberObject$1(n)?isNumberObject$1(a)&&Object.is(n.valueOf(),a.valueOf()):isStringObject$1(n)?isStringObject$1(a)&&n.valueOf()===a.valueOf():isBooleanObject$1(n)?isBooleanObject$1(a)&&n.valueOf()===a.valueOf():isBigIntObject$1(n)?isBigIntObject$1(a)&&n[Symbol.toPrimitive](`number`)===a[Symbol.toPrimitive](`number`):isSymbolObject$1(n)?isSymbolObject$1(a)&&Symbol.prototype.valueOf.call(n)===Symbol.prototype.valueOf.call(a):!1}function getTypedArrayTag(n){return Object.prototype.toString.call(n).slice(8,-1)}function innerDeepEqual(n,a,S,C){if(n===a)return n!==0||Object.is(n,a)||S===0;if(S!==0){if(typeof n==`number`)return n!==n&&a!==a;if(typeof a!=`object`||typeof n!=`object`||!n||a===null)return!1}else{if(typeof n!=`object`||!n)return(typeof a!=`object`||!a)&&(n==a||n!==n&&a!==a);if(typeof a!=`object`||!a)return!1}return objectComparisonStart(n,a,S,C)}function objectComparisonStart(n,a,S,C){if(S===1){if(Ws.has(n.constructor)||n.constructor!==void 0&&!Us(n,`constructor`)){if(n.constructor!==a.constructor)return!1}else if(Object.getPrototypeOf(n)!==Object.getPrototypeOf(a))return!1}let N=Object.prototype.toString.call(n);if(N!==Object.prototype.toString.call(a))return!1;if(Array.isArray(n)){if(!Array.isArray(a)||n.length!==a.length)return!1;let N=getOwnNonIndexProperties(a,S===0);return N.length===getOwnNonIndexProperties(n,S===0).length?keyCheck(n,a,S,C,1,N):!1}else if(N===`[object Object]`)return keyCheck(n,a,S,C,0);else if(isDate$2(n)){if(!isDate$2(a))return!1;let S=n.getTime(),C=a.getTime();if(S!==C&&!(Number.isNaN(S)&&Number.isNaN(C)))return!1}else if(isRegExp$2(n)){if(!isRegExp$2(a)||!areSimilarRegExps(n,a))return!1}else if(isArrayBufferView$1(n)){if(getTypedArrayTag(n)!==getTypedArrayTag(a))return!1;if(S===0&&isFloatTypedArray(n)){if(!areSimilarFloatArrays(n,a))return!1}else if(!areSimilarTypedArrays(n,a))return!1;let N=getOwnNonIndexProperties(a,S===0);return N.length===getOwnNonIndexProperties(n,S===0).length?keyCheck(n,a,S,C,0,N):!1}else if(isSet$1(n))return!isSet$1(a)||n.size!==a.size?!1:keyCheck(n,a,S,C,2);else if(isMap$1(n))return!isMap$1(a)||n.size!==a.size?!1:keyCheck(n,a,S,C,3);else if(isAnyArrayBuffer$1(n)){if(!isAnyArrayBuffer$1(a)||!areEqualArrayBuffers(n,a))return!1}else if(isError$1(n)){if(!isError$1(a)||n.message!==a.message||n.name!==a.name||Us(n,`cause`)!==Us(a,`cause`)||Us(n,`cause`)&&!innerDeepEqual(n.cause,a.cause,S,C))return!1}else if(isBoxedPrimitive$1(n)){if(!isEqualBoxedPrimitive(n,a))return!1}else if(Array.isArray(a)||isArrayBufferView$1(a)||isSet$1(a)||isMap$1(a)||isDate$2(a)||isRegExp$2(a)||isAnyArrayBuffer$1(a)||isBoxedPrimitive$1(a)||isError$1(a))return!1;return keyCheck(n,a,S,C,0)}function getEnumerables(n,a){return a.filter(a=>hasEnumerable(n,a))}function keyCheck(n,a,S,C,N,F){let I=F!==void 0;F===void 0&&(F=Object.keys(a));let H;if(!I){if(F.length!==(H=Object.keys(n)).length)return!1;if(S===1){let S=Object.getOwnPropertySymbols(n);if(S.length!==0){let C=0;for(let N of S)if(hasEnumerable(n,N)){if(!hasEnumerable(a,N))return!1;F.push(N),C++}else if(hasEnumerable(a,N))return!1;let N=Object.getOwnPropertySymbols(a);if(S.length!==N.length&&getEnumerables(a,N).length!==C)return!1}else{let n=Object.getOwnPropertySymbols(a);if(n.length!==0&&getEnumerables(a,n).length!==0)return!1}}}return F.length===0&&(N===0||N===1&&a.length===0||a.size===0)?!0:C===null?objEquiv(n,a,S,H,F,C,N):handleCycles(n,a,S,H,F,C,N)}function handleCycles(n,a,S,C,N,F,I){if(F===void 0)return F={set:void 0,a:n,b:a,c:void 0,d:void 0,deep:!1},objEquiv(n,a,S,C,N,F,I);if(F.set===void 0){if(F.deep===!1){if(F.a===n)return F.b===a;if(F.b===a)return!1;F.c=n,F.d=a,F.deep=!0;let H=objEquiv(n,a,S,C,N,F,I);return F.deep=!1,H}F.set=new Set,F.set.add(F.a),F.set.add(F.b),F.set.add(F.c),F.set.add(F.d)}let{set:H}=F,W=H.size;if(H.add(n),H.add(a),W!==H.size-2)return W===H.size;let K=objEquiv(n,a,S,C,N,F,I);return H.delete(n),H.delete(a),K}function findLooseMatchingPrimitives(n){switch(typeof n){case`undefined`:return null;case`object`:return;case`symbol`:return!1;case`string`:n=+n;case`number`:if(n!==n)return!1}return!0}function setMightHaveLoosePrim(n,a,S){let C=findLooseMatchingPrimitives(S);return C??(!a.has(C)&&n.has(C))}function mapMightHaveLoosePrim(n,a,S,C,N){let F=findLooseMatchingPrimitives(S);if(F!=null)return F;let I=n.get(F);return I===void 0&&!n.has(F)||!innerDeepEqual(I,C,0,N)?!1:!a.has(F)&&innerDeepEqual(I,C,0,N)}function setEquiv(n,a,S,C){let N;for(let C of a)if(!n.has(C)){if((typeof C!=`object`||!C)&&(S!==0||!setMightHaveLoosePrim(n,a,C)))return!1;N===void 0&&(N=[]),N.push(C)}if(N===void 0)return!0;for(let F of n)if(typeof F==`object`&&F){if(!a.has(F)){let n=!1;for(let a=0;a<N.length;a++)if(innerDeepEqual(F,N[a],S,C)){N.splice(a,1),n=!0;break}if(!n)return!1}}else if(!a.has(F)&&(S!==0||!setMightHaveLoosePrim(a,n,F))){let n=!1;for(let a=0;a<N.length;a++)if(innerDeepEqual(F,N[a],S,C)){N.splice(a,1),n=!0;break}if(!n)return!1}return N.length===0}function mapEquiv(n,a,S,C){let N;for(let[F,I]of a)if(typeof F==`object`&&F){if(N===void 0){if(n.size===1){let[a,N]=n.entries().next().value;return innerDeepEqual(a,F,S,C)&&innerDeepEqual(N,I,S,C)}N=[]}N.push(F)}else{let H=n.get(F);if(H===void 0&&!n.has(F)||!innerDeepEqual(H,I,S,C)){if(S!==0||!mapMightHaveLoosePrim(n,a,F,I,C))return!1;N===void 0&&(N=[]),N.push(F)}}if(N===void 0)return!0;for(let[F,I]of n)if(typeof F==`object`&&F){if(!a.has(F)){let n=!1;for(let H=0;H<N.length;H++){let W=N[H];if(innerDeepEqual(F,W,S,C)&&innerDeepEqual(I,a.get(W),S,C)){N.splice(H,1),n=!0;break}}if(!n)return!1}}else S===0&&typeof F!=`object`&&(!n.has(F)||innerDeepEqual(I,n.get(F),S,C));return N.length===0}function objEquiv(n,a,S,C,N,F,I){if(N.length>0){let I=n,H=a,W=0;if(C!==void 0)for(;W<N.length;W++){let n=N[W];if(C[W]!==n)break;if(!innerDeepEqual(I[n],H[n],S,F))return!1}for(;W<N.length;W++){let a=N[W],C=Object.getOwnPropertyDescriptor(n,a);if(!C?.enumerable||!innerDeepEqual(C.value===void 0?I[a]:C.value,H[a],S,F))return!1}}if(I===1){let C=n,N=a;for(let I=0;I<C.length;I++){if(N[I]===void 0&&!Us(a,I)){if(C[I]!==void 0||Us(n,I))return!1;continue}if(S!==0&&C[I]===void 0&&!Us(n,I)||!innerDeepEqual(C[I],N[I],S,F))return!1}}else if(I===2){if(!setEquiv(n,a,S,F))return!1}else if(I===3&&!mapEquiv(n,a,S,F))return!1;return!0}let detectCycles=function(n,a,S){try{return innerDeepEqual(n,a,S,null)}catch{return detectCycles=(n,a,S)=>innerDeepEqual(n,a,S,void 0),innerDeepEqual(n,a,S,void 0)}};function isDeepEqual(n,a){return detectCycles(n,a,0)}function isDeepStrictEqual$1(n,a){return detectCycles(n,a,1)}__name$1(isDeepStrictEqual$1,`isDeepStrictEqual`);function innerFail(n){throw n.message instanceof Error?n.message:new AssertionError({actual:n.actual,expected:n.expected,message:n.message,operator:n.operator,stackStartFn:n.stackStartFn})}function isPromiseLike(n){return typeof n==`object`&&!!n&&typeof n.then==`function`}function ok(n,a){n||innerFail({actual:n,expected:!0,message:a,operator:`==`,stackStartFn:ok})}function equal(n,a,S){n!=a&&innerFail({actual:n,expected:a,message:S,operator:`==`,stackStartFn:equal})}function notEqual(n,a,S){n==a&&innerFail({actual:n,expected:a,message:S,operator:`!=`,stackStartFn:notEqual})}function strictEqual(n,a,S){Object.is(n,a)||innerFail({actual:n,expected:a,message:S,operator:`strictEqual`,stackStartFn:strictEqual})}function notStrictEqual(n,a,S){Object.is(n,a)&&innerFail({actual:n,expected:a,message:S,operator:`notStrictEqual`,stackStartFn:notStrictEqual})}function deepEqual(n,a,S){isDeepEqual(n,a)||innerFail({actual:n,expected:a,message:S,operator:`deepEqual`,stackStartFn:deepEqual})}function notDeepEqual(n,a,S){isDeepEqual(n,a)&&innerFail({actual:n,expected:a,message:S,operator:`notDeepEqual`,stackStartFn:notDeepEqual})}function deepStrictEqual(n,a,S){isDeepStrictEqual$1(n,a)||innerFail({actual:n,expected:a,message:S,operator:`deepStrictEqual`,stackStartFn:deepStrictEqual})}function notDeepStrictEqual(n,a,S){isDeepStrictEqual$1(n,a)&&innerFail({actual:n,expected:a,message:S,operator:`notDeepStrictEqual`,stackStartFn:notDeepStrictEqual})}function getActual(n){let a=Symbol(`NO_EXCEPTION`);try{n()}catch(n){return n}return a}async function getActualAsync(n){let a=Symbol(`NO_EXCEPTION`);try{if(typeof n==`function`){let a=n();isPromiseLike(a)&&await a}else await n}catch(n){return n}return a}function expectedException(n,a,S,C){if(a===void 0)return!0;if(a instanceof RegExp){let N=String(n);if(a.test(N))return!0;throw new AssertionError({actual:n,expected:a,message:S,operator:C.name,stackStartFn:C})}if(typeof a==`function`){if(a.prototype!==void 0&&n instanceof a)return!0;if(Error.isPrototypeOf(a))return!1;if(a.call({},n)!==!0)throw new AssertionError({actual:n,expected:a,message:S,operator:C.name,stackStartFn:C});return!0}if(typeof a==`object`&&a){let N=Object.keys(a);for(let F of N){let N=a,I=n;if(typeof I[F]==`string`&&N[F]instanceof RegExp){if(!N[F].test(I[F]))throw new AssertionError({actual:n,expected:a,message:S,operator:C.name,stackStartFn:C})}else if(!isDeepStrictEqual$1(I[F],N[F]))throw new AssertionError({actual:n,expected:a,message:S,operator:C.name,stackStartFn:C})}return!0}return!0}function throws(n,a,S){if(typeof n!=`function`)throw TypeError(`The "fn" argument must be of type function.`);let C;typeof a==`string`?(S=a,C=void 0):C=a;let N=getActual(n);typeof N==`symbol`&&innerFail({actual:void 0,expected:C,message:S||`Missing expected exception.`,operator:`throws`,stackStartFn:throws}),C!==void 0&&expectedException(N,C,S,throws)}function doesNotThrow(n,a,S){if(typeof n!=`function`)throw TypeError(`The "fn" argument must be of type function.`);let C;typeof a==`string`?(S=a,C=void 0):C=a;let N=getActual(n);if(typeof N!=`symbol`)throw C!==void 0&&typeof C==`function`&&C.prototype!==void 0&&N instanceof C&&innerFail({actual:N,expected:C,message:S||`Got unwanted exception.\n${N&&N.message?N.message:``}`,operator:`doesNotThrow`,stackStartFn:doesNotThrow}),(C===void 0||typeof C==`function`&&C.prototype!==void 0&&N instanceof C)&&innerFail({actual:N,expected:C,message:S||`Got unwanted exception.\n${N&&N.message?N.message:``}`,operator:`doesNotThrow`,stackStartFn:doesNotThrow}),N}async function rejects(n,a,S){let C;typeof a==`string`?(S=a,C=void 0):C=a;let N=await getActualAsync(n);typeof N==`symbol`&&innerFail({actual:void 0,expected:C,message:S||`Missing expected rejection.`,operator:`rejects`,stackStartFn:rejects}),C!==void 0&&expectedException(N,C,S,rejects)}async function doesNotReject(n,a,S){let C;typeof a==`string`?(S=a,C=void 0):C=a;let N=await getActualAsync(n);typeof N!=`symbol`&&innerFail({actual:N,expected:C,message:S||`Got unwanted rejection.\n${N&&N.message?N.message:``}`,operator:`doesNotReject`,stackStartFn:doesNotReject})}function fail(n,a,S,C,N){if(arguments.length===0||arguments.length===1){let a=arguments.length===0?`Failed`:typeof n==`string`?n:void 0;throw n instanceof Error?n:new AssertionError({message:a||`Failed`,operator:`fail`,stackStartFn:fail})}throw new AssertionError({actual:n,expected:a,message:S,operator:C||`fail`,stackStartFn:N||fail})}function ifError(n){if(n!=null){let a=`ifError got unwanted exception: `;typeof n==`object`&&typeof n.message==`string`?n.message.length===0&&n.constructor?a+=n.constructor.name:a+=n.message:a+=String(n);let S=new AssertionError({actual:n,expected:null,message:a,operator:`ifError`,stackStartFn:ifError}),C=n instanceof Error?n.stack:void 0;throw C&&(S.origStack=C),S}}function match(n,a,S){if(typeof n!=`string`)throw TypeError(`The "actual" argument must be of type string.`);if(!(a instanceof RegExp))throw TypeError(`The "expected" argument must be an instance of RegExp.`);a.test(n)||innerFail({actual:n,expected:a,message:S||`The input did not match the regular expression ${a}. Input:\n\n'${n}'\n`,operator:`match`,stackStartFn:match})}function doesNotMatch(n,a,S){if(typeof n!=`string`)throw TypeError(`The "actual" argument must be of type string.`);if(!(a instanceof RegExp))throw TypeError(`The "expected" argument must be an instance of RegExp.`);a.test(n)&&innerFail({actual:n,expected:a,message:S||`The input was expected to not match the regular expression ${a}. Input:\n\n'${n}'\n`,operator:`doesNotMatch`,stackStartFn:doesNotMatch})}const Gs=Object.assign(function strict(n,a){ok(n,a)},{AssertionError,ok,equal:strictEqual,notEqual:notStrictEqual,deepEqual:deepStrictEqual,notDeepEqual:notDeepStrictEqual,deepStrictEqual,notDeepStrictEqual,strictEqual,notStrictEqual,throws,doesNotThrow,rejects,doesNotReject,fail,ifError,match,doesNotMatch,strict:void 0});Gs.strict=Gs;const Ks=Object.assign(function assert(n,a){ok(n,a)},{AssertionError,ok,equal,notEqual,strictEqual,notStrictEqual,deepEqual,notDeepEqual,deepStrictEqual,notDeepStrictEqual,throws,doesNotThrow,rejects,doesNotReject,fail,ifError,match,doesNotMatch,strict:Gs}),qs={right:alignRight,center:alignCenter};var UI=class{constructor(n){this.width=n.width,this.wrap=n.wrap??!0,this.rows=[]}span(...n){let a=this.div(...n);a.span=!0}resetOutput(){this.rows=[]}div(...n){if(n.length===0&&this.div(``),this.wrap&&this.shouldApplyLayoutDSL(...n)&&typeof n[0]==`string`)return this.applyLayoutDSL(n[0]);let a=n.map(n=>typeof n==`string`?this.colFromString(n):n);return this.rows.push(a),a}shouldApplyLayoutDSL(...n){return n.length===1&&typeof n[0]==`string`&&/[\t\n]/.test(n[0])}applyLayoutDSL(n){let a=n.split(`
9
+ --`+n;let a=new Uint8Array(n.length);for(let S=0;S<n.length;S++)a[S]=n.charCodeAt(S),this.boundaryChars[a[S]]=!0;this.boundary=a,this.lookbehind=new Uint8Array(this.boundary.length+8)}write(n){let a=0,S=n.length,C=this.index,{lookbehind:N,boundary:F,boundaryChars:I,index:H,state:W,flags:K}=this,q=this.boundary.length,Y=q-1,X=n.length,te,ne,mark=n=>{this[n+`Mark`]=a},clear=n=>{delete this[n+`Mark`]},callback=(n,a,S,C)=>{(a===void 0||a!==S)&&this[n](C&&C.subarray(a,S))},dataCallback=(S,C=!1)=>{let N=S+`Mark`;N in this&&(C?(callback(S,this[N],a,n),delete this[N]):(callback(S,this[N],n.length,n),this[N]=0))};for(a=0;a<S;a++)switch(te=n[a],W){case 0:if(H===F.length-2){if(te===45)K|=Mi.LAST_BOUNDARY;else if(te!==13)return;H++;break}else if(H-1==F.length-2){if(K&Mi.LAST_BOUNDARY&&te===45)W=9,K=0;else if(!(K&Mi.LAST_BOUNDARY)&&te===10)H=0,callback(`onPartBegin`),W=1;else return;break}te!==F[H+2]&&(H=-2),te===F[H+2]&&H++;break;case 1:W=2,mark(`onHeaderField`),H=0;case 2:if(te===13){clear(`onHeaderField`),W=6;break}if(H++,te===45)break;if(te===58){if(H===1)return;dataCallback(`onHeaderField`,!0),W=3;break}if(ne=lower(te),ne<97||ne>122)return;break;case 3:if(te===32)break;mark(`onHeaderValue`),W=4;case 4:te===13&&(dataCallback(`onHeaderValue`,!0),callback(`onHeaderEnd`),W=5);break;case 5:if(te!==10)return;W=1;break;case 6:if(te!==10)return;callback(`onHeadersEnd`),W=7;break;case 7:W=8,mark(`onPartData`);case 8:if(C=H,H===0){for(a+=Y;a<X&&!(n[a]in I);)a+=q;a-=Y,te=n[a]}if(H<F.length)F[H]===te?(H===0&&dataCallback(`onPartData`,!0),H++):H=0;else if(H===F.length)H++,te===13?K|=Mi.PART_BOUNDARY:te===45?K|=Mi.LAST_BOUNDARY:H=0;else if(H-1===F.length)if(K&Mi.PART_BOUNDARY){if(H=0,te===10){K&=~Mi.PART_BOUNDARY,callback(`onPartEnd`),callback(`onPartBegin`),W=1;break}}else K&Mi.LAST_BOUNDARY&&te===45?(callback(`onPartEnd`),W=9,K=0):H=0;if(H>0)N[H-1]=te;else if(C>0){let n=new Uint8Array(N.buffer,N.byteOffset,N.byteLength);callback(`onPartData`,0,C,n),C=0,mark(`onPartData`),a--}break;case 9:break;default:throw Error(`Unexpected state entered: ${W}`)}dataCallback(`onHeaderField`),dataCallback(`onHeaderValue`),dataCallback(`onPartData`),this.index=H,this.state=W,this.flags=K}end(){if(this.state===1&&this.index===0||this.state===8&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==9)throw Error(`MultipartParser.end(): stream ended unexpectedly`)}}});Ie(),_i(),xi(),rn(),bt(),Jr(),ki(),__name((n,a)=>new Promise((S,C)=>{pipeline(n,a,n=>{n?C(n):S()})}),`pipeline`);const Pi=Symbol(`Body internals`);function isAnyArrayBuffer$2(n){return n instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&n instanceof SharedArrayBuffer}__name$1(isAnyArrayBuffer$2,`isAnyArrayBuffer`);var Body=class{[Pi]={body:null,stream:null,boundary:``,disturbed:!1,error:null};size=0;constructor(n,a={size:0}){if(this.size=a.size||0,n==null)this[Pi].body=null;else if(isURLSearchParameters(n))this[Pi].body=dt.from(n.toString());else if(isBlob(n))this[Pi].body=n;else if(dt.isBuffer(n))this[Pi].body=n;else if(isAnyArrayBuffer$2(n))this[Pi].body=dt.from(n);else if(ArrayBuffer.isView(n))this[Pi].body=dt.from(n.buffer,n.byteOffset,n.byteLength);else if(n instanceof Hr)this[Pi].body=n;else if(typeof ReadableStream<`u`&&n instanceof ReadableStream)this[Pi].body=readableStreamToReadable(n);else if(n instanceof FormData){let a=formDataToBlob(n);this[Pi].body=a,this[Pi].boundary=a.type?.split(`boundary=`)?.[1]??``}else typeof n==`string`?this[Pi].body=dt.from(n):n instanceof en?this[Pi].body=dt.from(n.toString()):(Fe.warn(`Unknown body type "${typeof n}", try to parse the body to string!`),this[Pi].body=dt.from(String(n)));let S=this[Pi].body;dt.isBuffer(S)?this[Pi].stream=Hr.from(S):isBlob(S)?this[Pi].stream=Hr.from(blobToAsyncIterable(S)):S instanceof Hr&&(this[Pi].stream=S),S instanceof Vr&&S.on(`error`,n=>{let a=n instanceof FetchBaseError?n:new FetchError(`Invalid response body while trying to fetch ${this.url}: ${n.message}`,`system`,n);this[Pi].error=a})}get body(){let n=this[Pi].stream;if(!n)return null;if(typeof ReadableStream<`u`){let a=!1;return new ReadableStream({start(S){n.on(`data`,n=>{if(!a)try{S.enqueue(n instanceof Uint8Array?n:new Uint8Array(n))}catch{}}),n.on(`end`,()=>{if(!a){a=!0;try{S.close()}catch{}}}),n.on(`error`,n=>{if(!a){a=!0;try{S.error(n)}catch{}}})},cancel(){a=!0,n.destroy()}})}return null}get _stream(){return this[Pi].stream}get _rawBodyBuffer(){let n=this[Pi].body;return n===null?null:dt.isBuffer(n)?n:n instanceof Uint8Array?dt.from(n.buffer,n.byteOffset,n.byteLength):null}get bodyUsed(){return this[Pi].disturbed}async arrayBuffer(){let{buffer:n,byteOffset:a,byteLength:S}=await consumeBody(this);return n.slice(a,a+S)}async formData(){let n=this.headers?.get(`content-type`);if(n?.startsWith(`application/x-www-form-urlencoded`)){let n=new FormData,a=new en(await this.text());for(let[S,C]of a)n.append(S,C);return n}let{toFormData:a}=await Promise.resolve().then(()=>($(),Ai));return a(this.body,n)}async blob(){let n=this.headers?.get(`content-type`)||this[Pi].body&&this[Pi].body.type||``;return new X([await this.arrayBuffer()],{type:n})}async json(){let n=await this.text();return JSON.parse(n)}async text(){let n=await consumeBody(this);return new TextDecoder().decode(n)}};Object.defineProperties(Body.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});async function consumeBody(n){if(n[Pi].disturbed)throw TypeError(`body used already for: ${n.url}`);if(n[Pi].disturbed=!0,n[Pi].error)throw n[Pi].error;let{_stream:a}=n;if(a===null||!(a instanceof Vr))return dt.alloc(0);let S=[],C=0;try{for await(let N of a){if(n.size>0&&C+N.length>n.size){let S=new FetchError(`content size at ${n.url} over limit: ${n.size}`,`max-size`);throw a.destroy(S),S}C+=N.length,S.push(N)}}catch(a){let S=a instanceof Error?a:Error(String(a));throw a instanceof FetchBaseError?a:new FetchError(`Invalid response body while trying to fetch ${n.url}: ${S.message}`,`system`,S)}try{return S.every(n=>typeof n==`string`)?dt.from(S.join(``)):dt.concat(S,C)}catch(a){let S=a instanceof Error?a:Error(String(a));throw new FetchError(`Could not create Buffer from response body for ${n.url}: ${S.message}`,`system`,S)}}const clone=(n,a)=>{let S,C,{body:N}=n[Pi];if(n.bodyUsed)throw Error(`cannot clone body after it is used`);return N instanceof Vr&&typeof N.getBoundary!=`function`&&(S=new Kr({highWaterMark:a}),C=new Kr({highWaterMark:a}),N.pipe(S),N.pipe(C),n[Pi].stream=S,N=C),N},extractContentType=(n,a)=>n===null?null:typeof n==`string`?`text/plain;charset=UTF-8`:isURLSearchParameters(n)?`application/x-www-form-urlencoded;charset=UTF-8`:isBlob(n)?n.type||null:dt.isBuffer(n)||isAnyArrayBuffer$2(n)||ArrayBuffer.isView(n)?null:n instanceof FormData?`multipart/form-data; boundary=${a[Pi].boundary}`:n instanceof Vr?null:`text/plain;charset=UTF-8`,getTotalBytes=n=>{let{body:a}=n[Pi];if(a===null)return 0;if(isBlob(a))return a.size;if(dt.isBuffer(a))return a.length;if(a&&typeof a.getLengthSync==`function`){let n=a;return n.hasKnownLength&&n.hasKnownLength()?n.getLengthSync():null}return null};function readableStreamToReadable(n){let a=n.getReader();return new Hr({async read(){try{let{done:n,value:S}=await a.read();n?this.push(null):this.push(dt.from(S))}catch(n){this.destroy(n)}},destroy(n,S){a.cancel().then(()=>S(null),S)}})}async function*blobToAsyncIterable(n){if(typeof n.stream==`function`){let a=n.stream().getReader();for(;;){let{done:n,value:S}=await a.read();if(n)break;yield S}}else yield new Uint8Array(await n.arrayBuffer())}const Fi=new Set([301,302,303,307,308]),isRedirect=n=>Fi.has(n);rn(),se(),ve();const Ii=Symbol(`Response internals`);var Li=class Response extends Body{[Ii];_inputStream=null;constructor(n=null,a={}){super(n,a);let S=a.status==null?200:a.status,C=new bi(a.headers);if(n!==null&&!C.has(`Content-Type`)){let a=extractContentType(n,this);a&&C.append(`Content-Type`,a)}this[Ii]={type:`default`,url:a.url,status:S,statusText:a.statusText||``,headers:C,counter:a.counter,highWaterMark:a.highWaterMark}}get type(){return this[Ii].type}get url(){return this[Ii].url||``}get status(){return this[Ii].status}get ok(){return this[Ii].status>=200&&this[Ii].status<300}get redirected(){return this[Ii].counter>0}get statusText(){return this[Ii].statusText}get headers(){return this[Ii].headers}get highWaterMark(){return this[Ii].highWaterMark}clone(){return new Response(clone(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(n,a=302){if(!isRedirect(a))throw RangeError(`Failed to execute "redirect" on "response": Invalid status code`);return new Response(null,{headers:{location:new tn(n).toString()},status:a})}static error(){let n=new Response(null,{status:0,statusText:``});return n[Ii].type=`error`,n}static json(n,a){let S=JSON.stringify(n),C={...a},N=new bi(C.headers);return N.has(`content-type`)||N.set(`content-type`,`application/json`),C.headers=N,new Response(S,C)}get[Symbol.toStringTag](){return`Response`}async text(){if(!this._inputStream)return super.text();let n=_e.MemoryOutputStream.new_resizable();await new Promise((a,S)=>{n.splice_async(this._inputStream,_e.OutputStreamSpliceFlags.CLOSE_TARGET|_e.OutputStreamSpliceFlags.CLOSE_SOURCE,Z.PRIORITY_DEFAULT,null,(C,N)=>{try{a(n.splice_finish(N))}catch(n){S(n)}})});let a=n.steal_as_bytes();return new TextDecoder().decode(a.toArray())}};Object.defineProperties(Li.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}}),Jr(),se(),et();async function soupSendAsync(n,a,S=Z.PRIORITY_DEFAULT,C=null){return new Promise((N,F)=>{n.send_async(a,S,C,(a,S)=>{try{N(n.send_finish(S))}catch(n){F(n)}})})}function inputStreamToReadable(n,a={}){return Hr.from(inputStreamAsyncIterator(n),a)}ve(),se(),Jr(),et(),ve(),et(),Vt(),ve();function isIP(n){if(typeof n!=`string`)return 0;let a=n.includes(`%`)?n.split(`%`)[0]:n,S=_e.InetAddress.new_from_string(a);if(!S)return 0;switch(S.get_family()){case _e.SocketFamily.INVALID:return 0;case _e.SocketFamily.IPV4:return 4;case _e.SocketFamily.IPV6:return 6}}rn();function stripURLForUseAsAReferrer(n,a=!1){if(n==null||n===`no-referrer`)return`no-referrer`;let S=new tn(n);return/^(about|blob|data):$/.test(S.protocol)?`no-referrer`:(S.username=``,S.password=``,S.hash=``,a&&(S.pathname=``,S.search=``),S)}const Ri=new Set([``,`no-referrer`,`no-referrer-when-downgrade`,`same-origin`,`origin`,`strict-origin`,`origin-when-cross-origin`,`strict-origin-when-cross-origin`,`unsafe-url`]);function validateReferrerPolicy(n){if(!Ri.has(n))throw TypeError(`Invalid referrerPolicy: ${n}`);return n}function isOriginPotentiallyTrustworthy(n){if(/^(http|ws)s:$/.test(n.protocol))return!0;let a=n.host.replace(/(^\[)|(]$)/g,``),S=isIP(a);return S===4&&a.startsWith(`127.`)||S===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(a)?!0:n.host===`localhost`||n.host.endsWith(`.localhost`)?!1:n.protocol===`file:`}function isUrlPotentiallyTrustworthy(n){return/^about:(blank|srcdoc)$/.test(n.toString())||(typeof n==`string`&&(n=new tn(n)),n.protocol===`data:`)||/^(blob|filesystem):$/.test(n.protocol)?!0:isOriginPotentiallyTrustworthy(n)}function determineRequestsReferrer(n,a={}){let{referrerURLCallback:S,referrerOriginCallback:C}=a;if(n.referrer===`no-referrer`||n.referrerPolicy===``)return null;let N=n.referrerPolicy;if(n.referrer===`about:client`)return`no-referrer`;let F=new tn(n.referrer),I=stripURLForUseAsAReferrer(F),H=stripURLForUseAsAReferrer(F,!0);I.toString().length>4096&&(I=H),S&&(I=S(I)),C&&(H=C(H));let W=new tn(n.url);switch(N){case`no-referrer`:return`no-referrer`;case`origin`:return H;case`unsafe-url`:return I;case`strict-origin`:return isUrlPotentiallyTrustworthy(I)&&!isUrlPotentiallyTrustworthy(W)?`no-referrer`:H.toString();case`strict-origin-when-cross-origin`:return I.origin===W.origin?I:isUrlPotentiallyTrustworthy(I)&&!isUrlPotentiallyTrustworthy(W)?`no-referrer`:H;case`same-origin`:return I.origin===W.origin?I:`no-referrer`;case`origin-when-cross-origin`:return I.origin===W.origin?I:H;case`no-referrer-when-downgrade`:return isUrlPotentiallyTrustworthy(I)&&!isUrlPotentiallyTrustworthy(W)?`no-referrer`:I;default:throw TypeError(`Invalid referrerPolicy: ${N}`)}}function parseReferrerPolicyFromHeader(n){let a=(n.get(`referrer-policy`)||``).split(/[,\s]+/),S=``;for(let n of a)n&&Ri.has(n)&&(S=n);return S}rn(),se(),ve();const zi=Symbol(`Request internals`),isRequest=n=>typeof n==`object`&&typeof n.url==`string`;var Bi=class Request extends Body{cache;credentials;destination;get headers(){return this[zi].headers}integrity;keepalive;get method(){return this[zi].method}mode;get redirect(){return this[zi].redirect}get referrer(){if(this[zi].referrer===`no-referrer`)return``;if(this[zi].referrer===`client`)return`about:client`;if(this[zi].referrer)return this[zi].referrer.toString()}get referrerPolicy(){return this[zi].referrerPolicy}set referrerPolicy(n){this[zi].referrerPolicy=validateReferrerPolicy(n)}get signal(){return this[zi].signal}get url(){return this[zi].parsedURL.toString()}get _uri(){return Z.Uri.parse(this.url,Z.UriFlags.NONE)}get _session(){return this[zi].session}get _message(){return this[zi].message}get _inputStream(){return this[zi].inputStream}get[Symbol.toStringTag](){return`Request`}[zi];follow;compress=!1;counter=0;agent=``;highWaterMark=16384;insecureHTTPParser=!1;constructor(n,a){let S=n,C=a||{},N,F={};if(isRequest(n)?(N=new tn(S.url),F=S):N=new tn(n),N.username!==``||N.password!==``)throw TypeError(`${N} is an url with embedded credentials.`);let I=C.method||F.method||`GET`;if(/^(delete|get|head|options|post|put)$/i.test(I)&&(I=I.toUpperCase()),(a?.body!=null||isRequest(n)&&S.body!==null)&&(I===`GET`||I===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body`);let H=a?.body?a.body:isRequest(n)&&S.body!==null?clone(n):null;super(H,{size:C.size||0});let W=new bi(a?.headers||S.headers||{});if(H!==null&&!W.has(`Content-Type`)){let n=extractContentType(H,this);n&&W.set(`Content-Type`,n)}let K=isRequest(n)?S.signal:null;if(a&&`signal`in a&&(K=a.signal),K!=null&&!isAbortSignal(K))throw TypeError(`Expected signal to be an instanceof AbortSignal or EventTarget`);let q=a?.referrer==null?S.referrer:a.referrer;if(q===``)q=`no-referrer`;else if(q){let n=new tn(q);q=/^about:(\/\/)?client$/.test(n.toString())?`client`:n}else q=void 0;let Y=N.protocol,X=null,te=null;(Y===`http:`||Y===`https:`)&&(X=new vi.Session,te=new vi.Message({method:I,uri:Z.Uri.parse(N.toString(),Z.UriFlags.NONE)})),this[zi]={method:I,redirect:a?.redirect||S.redirect||`follow`,headers:W,parsedURL:N,signal:K,referrer:q,referrerPolicy:``,session:X,message:te},this.follow=C.follow===void 0?S.follow===void 0?20:S.follow:C.follow,this.compress=C.compress===void 0?S.compress===void 0?!0:S.compress:C.compress,this.counter=C.counter||S.counter||0,this.agent=C.agent||S.agent,this.highWaterMark=C.highWaterMark||S.highWaterMark||16384,this.insecureHTTPParser=C.insecureHTTPParser||S.insecureHTTPParser||!1,this.referrerPolicy=a?.referrerPolicy||S.referrerPolicy||``}async _send(n){let{session:a,message:S}=this[zi];if(!a||!S)throw Error(`Cannot send request: no Soup session (non-HTTP URL?)`);try{a.remove_feature_by_type(vi.ContentDecoder.$gtype)}catch{}n.headers._appendToSoupMessage(S);let C=this._rawBodyBuffer;if(C!==null&&C.byteLength>0){let a=n.headers.get(`content-type`)||null;S.set_request_body_from_bytes(a,new Z.Bytes(C))}let N=new _e.Cancellable;return this[zi].inputStream=await soupSendAsync(a,S,Z.PRIORITY_DEFAULT,N),this[zi].readable=inputStreamToReadable(this[zi].inputStream),{inputStream:this[zi].inputStream,readable:this[zi].readable,cancellable:N}}clone(){return new Request(this)}async arrayBuffer(){return super.arrayBuffer()}async blob(){return super.blob()}async formData(){return super.formData()}async json(){return super.json()}async text(){return super.text()}};Object.defineProperties(Bi.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}});const getSoupRequestOptions=n=>{let{parsedURL:a}=n[zi],S=new bi(n[zi].headers);S.has(`Accept`)||S.set(`Accept`,`*/*`);let C=null;if(n.body===null&&/^(post|put)$/i.test(n.method)&&(C=`0`),n.body!==null){let a=getTotalBytes(n);typeof a==`number`&&!Number.isNaN(a)&&(C=String(a))}C&&S.set(`Content-Length`,C),n.referrerPolicy===``&&(n.referrerPolicy=`strict-origin-when-cross-origin`),n.referrer&&n.referrer!==`no-referrer`?n[zi].referrer=determineRequestsReferrer(n):n[zi].referrer=`no-referrer`,n[zi].referrer instanceof tn&&S.set(`Referer`,n.referrer),S.has(`User-Agent`)||S.set(`User-Agent`,`gjsify-fetch`),n.compress&&!S.has(`Accept-Encoding`)&&S.set(`Accept-Encoding`,`gzip, deflate`);let{agent:N}=n;return typeof N==`function`&&(N=N(a)),!S.has(`Connection`)&&!N&&S.set(`Connection`,`close`),{parsedURL:a,options:{headers:S}}};function parseDataUri(n){let a=n.match(/^data:([^,]*?)(;base64)?,(.*)$/s);if(!a)throw TypeError(`Invalid data URI: ${n.slice(0,50)}...`);let S=a[1]||`text/plain;charset=US-ASCII`,C=!!a[2],N=a[3],F;if(C){let n=atob(N);F=new Uint8Array(n.length);for(let a=0;a<n.length;a++)F[a]=n.charCodeAt(a)}else F=new TextEncoder().encode(decodeURIComponent(N));return{buffer:F,typeFull:S}}var AbortError=class extends FetchBaseError{constructor(n,a=`aborted`){super(n,a)}};Ie(),rn(),Jr(),se();const Vi=new Set([`data:`,`http:`,`https:`,`file:`]);function rewriteRootRelativeUrl(n){if(typeof n!=`string`||!n.startsWith(`/`)||n.startsWith(`//`))return n;let a=globalThis,S=a.__GJSIFY_DEBUG_FETCH===!0;try{let C=a.imports?.system?.programPath??a.imports?.system?.programInvocationName??``;if(!C)return n;let N=`file://${Z.path_get_dirname(C)}${n}`;return S&&Fe.log(`[fetch] rewrite ${n} → ${N}`),N}catch(a){return S&&Fe.warn(`[fetch] rewrite FAILED: ${a instanceof Error?a.message:String(a)}`),n}}async function fetch$1(n,a={}){n=rewriteRootRelativeUrl(n);let S=new Bi(n,a),{parsedURL:C,options:N}=getSoupRequestOptions(S);if(!Vi.has(C.protocol))throw TypeError(`@gjsify/fetch cannot load ${n}. URL scheme "${C.protocol.replace(/:$/,``)}" is not supported.`);if(C.protocol===`data:`){let{buffer:n,typeFull:a}=parseDataUri(S.url);return new Li(Buffer.from(n),{headers:{"Content-Type":a}})}if(C.protocol===`file:`){let n=globalThis.__GJSIFY_DEBUG_FETCH===!0;n&&Fe.log(`[fetch] file:// ${S.url}`);try{let a=Z.filename_from_uri(S.url)[0];n&&Fe.log(`[fetch] file:// path=${a}`);let[C,N]=Z.file_get_contents(a);if(n&&Fe.log(`[fetch] file:// ok=${C} bytes=${N?.byteLength??`?`}`),!C)throw new FetchError(`Failed to read file: ${a}`,`system`);let F=N,I=new Uint8Array(F.byteLength);I.set(F);let H=new Li(I);return n&&Fe.log(`[fetch] file:// response created`),H}catch(a){let C=a instanceof Error?a:Error(String(a));throw n&&Fe.warn(`[fetch] file:// FAIL: ${C.message}`),new FetchError(`request to ${S.url} failed, reason: ${C.message}`,`system`,C)}}let{signal:F}=S;if(F&&F.aborted)throw new AbortError(`The operation was aborted.`);let I,H;try{let n=await S._send(N);I=n.readable,H=n.cancellable}catch(n){let a=n instanceof Error?n:Error(String(n));throw new FetchError(`request to ${S.url} failed, reason: ${a.message}`,`system`,a)}let abortHandler=()=>{H.cancel()};F&&F.addEventListener(`abort`,abortHandler,{once:!0});let finalize=()=>{F&&F.removeEventListener(`abort`,abortHandler)};H.connect(()=>{I.destroy(new AbortError(`The operation was aborted.`))}),I.on(`error`,n=>{finalize()});let W=S._message,K=bi._newFromSoupMessage(W),q=W.status_code,Y=W.get_reason_phrase();if(isRedirect(q)){let n=K.get(`Location`),C=null;try{C=n===null?null:new tn(n,S.url)}catch{if(S.redirect!==`manual`)throw finalize(),new FetchError(`uri requested responds with an invalid redirect URL: ${n}`,`invalid-redirect`)}switch(S.redirect){case`error`:throw finalize(),new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${S.url}`,`no-redirect`);case`manual`:break;case`follow`:{if(C===null)break;if(S.counter>=S.follow)throw finalize(),new FetchError(`maximum redirect reached at: ${S.url}`,`max-redirect`);let n={headers:new bi(S.headers),follow:S.follow,counter:S.counter+1,agent:S.agent,compress:S.compress,method:S.method,body:clone(S),signal:S.signal,size:S.size,referrer:S.referrer,referrerPolicy:S.referrerPolicy};if(!isDomainOrSubdomain(S.url,C)||!isSameProtocol(S.url,C))for(let a of[`authorization`,`www-authenticate`,`cookie`,`cookie2`])n.headers.delete(a);if(q!==303&&S.body&&a.body instanceof qr.Readable)throw finalize(),new FetchError(`Cannot follow redirect with body being a readable stream`,`unsupported-redirect`);(q===303||(q===301||q===302)&&S.method===`POST`)&&(n.method=`GET`,n.body=void 0,n.headers.delete(`content-length`));let N=parseReferrerPolicyFromHeader(K);return N&&(n.referrerPolicy=N),finalize(),fetch$1(new Bi(C,n))}default:throw TypeError(`Redirect option '${S.redirect}' is not a valid value of RequestRedirect`)}}let X={url:S.url,status:q,statusText:Y,headers:K,size:S.size,counter:S.counter,highWaterMark:S.highWaterMark},te=K.get(`Content-Encoding`);if(!S.compress||S.method===`HEAD`||te===null||q===204||q===304)return finalize(),new Li(I,X);if(typeof DecompressionStream<`u`){let n=null;if(te===`gzip`||te===`x-gzip`?n=`gzip`:(te===`deflate`||te===`x-deflate`)&&(n=`deflate`),n){let a=new Li(I,X).body;if(a){let S=a.pipeThrough(new DecompressionStream(n));return finalize(),new Li(S,X)}}}return finalize(),new Li(I,X)}__name$1(fetch$1,`fetch`);const Hi=globalThis;globalThis.fetch===void 0&&(Hi.fetch=fetch$1),globalThis.Headers===void 0&&(Hi.Headers=bi),globalThis.Request===void 0&&(Hi.Request=Bi),globalThis.Response===void 0&&(Hi.Response=Li);const Ui=globalThis;globalThis.ByteLengthQueuingStrategy===void 0&&(Ui.ByteLengthQueuingStrategy=vr),globalThis.CountQueuingStrategy===void 0&&(Ui.CountQueuingStrategy=yr);const Wi=globalThis;function isNativeStreamUsable$2(n,a){try{return typeof n==`function`?typeof n.prototype?.[a]==`function`:!1}catch{return!1}}__name$1(isNativeStreamUsable$2,`isNativeStreamUsable`),isNativeStreamUsable$2(globalThis.ReadableStream,`getReader`)||(Wi.ReadableStream=hr),Wi.ReadableStreamBYOBReader===void 0&&(Wi.ReadableStreamBYOBReader=ReadableStreamBYOBReader),Wi.ReadableStreamBYOBRequest===void 0&&(Wi.ReadableStreamBYOBRequest=ReadableStreamBYOBRequest),Wi.ReadableByteStreamController===void 0&&(Wi.ReadableByteStreamController=ReadableByteStreamController),Wi.ReadableStreamDefaultController===void 0&&(Wi.ReadableStreamDefaultController=ReadableStreamDefaultController),Wi.ReadableStreamDefaultReader===void 0&&(Wi.ReadableStreamDefaultReader=ReadableStreamDefaultReader);const Gi=globalThis;globalThis.TextEncoderStream===void 0&&(Gi.TextEncoderStream=br),globalThis.TextDecoderStream===void 0&&(Gi.TextDecoderStream=Sr);function isNativeStreamUsable$1(n,a){try{return typeof n==`function`?typeof n.prototype?.[a]==`function`:!1}catch{return!1}}if(__name$1(isNativeStreamUsable$1,`isNativeStreamUsable`),!isNativeStreamUsable$1(globalThis.TransformStream,`readable`)){let n=globalThis;n.TransformStream=_r}function isNativeStreamUsable(n,a){try{return typeof n==`function`?typeof n.prototype?.[a]==`function`:!1}catch{return!1}}if(!isNativeStreamUsable(globalThis.WritableStream,`getWriter`)){let n=globalThis;n.WritableStream=gr}var CryptoKey=class{type;extractable;algorithm;usages;_handle;constructor(n,a,S,C,N){this.type=n,this.extractable=a,this.algorithm=Object.freeze({...S}),this.usages=Object.freeze([...C]),this._handle=N}get[Symbol.toStringTag](){return`CryptoKey`}};function normalizeAlgorithm$1(n){if(typeof n==`string`)return{name:n};if(!n||typeof n.name!=`string`)throw TypeError(`Algorithm must have a name property`);return n}__name$1(normalizeAlgorithm$1,`normalizeAlgorithm`);const Ki={"SHA-1":`sha1`,"SHA-256":`sha256`,"SHA-384":`sha384`,"SHA-512":`sha512`};function toNodeHashName(n){let a=Ki[n.toUpperCase()]||Ki[n];if(!a)throw new _n(`Unrecognized hash name: ${n}`,`NotSupportedError`);return a}const qi={"P-256":`prime256v1`,"P-384":`secp384r1`,"P-521":`secp521r1`};function toNodeCurveName(n){let a=qi[n];if(!a)throw new _n(`Unrecognized curve name: ${n}`,`NotSupportedError`);return a}function hashSize$1(n){switch(toNodeHashName(n)){case`sha1`:return 20;case`sha256`:return 32;case`sha384`:return 48;case`sha512`:return 64;default:throw new _n(`Unsupported hash: ${n}`,`NotSupportedError`)}}__name$1(hashSize$1,`hashSize`);function validateUsages(n,a){for(let S of n)if(!a.includes(S))throw new _n(`Invalid key usage: ${S}`,`SyntaxError`);if(n.length===0)throw new _n(`Key usages must not be empty`,`SyntaxError`)}function checkUsage(n,a){if(!n.usages.includes(a))throw new _n(`Key does not support the '${a}' usage`,`InvalidAccessError`)}const Ji=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Yi=new Uint8Array(128);for(let n=0;n<64;n++)Yi[Ji.charCodeAt(n)]=n;function bytesToBase64$1(n){let a=``,S=n.length;for(let C=0;C<S;C+=3){let N=n[C],F=C+1<S?n[C+1]:0,I=C+2<S?n[C+2]:0;a+=Ji[N>>2&63],a+=Ji[(N<<4|F>>4)&63],a+=C+1<S?Ji[(F<<2|I>>6)&63]:`=`,a+=C+2<S?Ji[I&63]:`=`}return a}__name$1(bytesToBase64$1,`bytesToBase64`);function base64ToBytes(n){let a=n;for(;a.endsWith(`=`);)a=a.slice(0,-1);let S=[],C=0,N=0;for(let n=0;n<a.length;n++)N=N<<6|Yi[a.charCodeAt(n)],C+=6,C>=8&&(C-=8,S.push(N>>C&255));return new Uint8Array(S)}function base64urlEncode(n){return bytesToBase64$1(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function base64urlDecode(n){let a=n.replace(/-/g,`+`).replace(/_/g,`/`);for(;a.length%4;)a+=`=`;return base64ToBytes(a)}function toUint8Array(n){if(n instanceof Uint8Array)return n;if(n instanceof ArrayBuffer)return new Uint8Array(n);if(ArrayBuffer.isView(n))return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);throw TypeError(`Expected BufferSource`)}function gmul(n,a){let S=0;for(let C=0;C<8;C++){a&1&&(S^=n);let C=n&128;n=n<<1&255,C&&(n^=27),a>>=1}return S}function keyExpansion(n){let a=n.length/4,S=a+6,C=4*(S+1),N=Array.from({length:C});for(let S=0;S<a;S++)N[S]=new Uint8Array([n[4*S],n[4*S+1],n[4*S+2],n[4*S+3]]);for(let n=a;n<C;n++){let S=new Uint8Array(N[n-1]);n%a===0?S=new Uint8Array([Xi[S[1]]^Qi[n/a-1],Xi[S[2]],Xi[S[3]],Xi[S[0]]]):a>6&&n%a===4&&(S=new Uint8Array([Xi[S[0]],Xi[S[1]],Xi[S[2]],Xi[S[3]]])),N[n]=new Uint8Array(4);for(let C=0;C<4;C++)N[n][C]=N[n-a][C]^S[C]}let F=[];for(let n=0;n<=S;n++){let a=new Uint8Array(16);for(let S=0;S<4;S++)a[4*S]=N[4*n+S][0],a[4*S+1]=N[4*n+S][1],a[4*S+2]=N[4*n+S][2],a[4*S+3]=N[4*n+S][3];F.push(a)}return F}function aesEncryptBlock(n,a){let S=new Uint8Array(n),C=a.length-1;for(let n=0;n<16;n++)S[n]^=a[0][n];for(let n=1;n<C;n++){for(let n=0;n<16;n++)S[n]=Xi[S[n]];let C=S[1];S[1]=S[5],S[5]=S[9],S[9]=S[13],S[13]=C;let N=S[2],F=S[6];S[2]=S[10],S[6]=S[14],S[10]=N,S[14]=F;let I=S[15];S[15]=S[11],S[11]=S[7],S[7]=S[3],S[3]=I;for(let n=0;n<4;n++){let a=n*4,C=S[a],N=S[a+1],F=S[a+2],I=S[a+3];S[a]=gmul(2,C)^gmul(3,N)^F^I,S[a+1]=C^gmul(2,N)^gmul(3,F)^I,S[a+2]=C^N^gmul(2,F)^gmul(3,I),S[a+3]=gmul(3,C)^N^F^gmul(2,I)}for(let C=0;C<16;C++)S[C]^=a[n][C]}for(let n=0;n<16;n++)S[n]=Xi[S[n]];let N=S[1];S[1]=S[5],S[5]=S[9],S[9]=S[13],S[13]=N;let F=S[2],I=S[6];S[2]=S[10],S[6]=S[14],S[10]=F,S[14]=I;let H=S[15];S[15]=S[11],S[11]=S[7],S[7]=S[3],S[3]=H;for(let n=0;n<16;n++)S[n]^=a[C][n];return S}function aesDecryptBlock(n,a){let S=new Uint8Array(n),C=a.length-1;for(let n=0;n<16;n++)S[n]^=a[C][n];for(let n=C-1;n>0;n--){let C=S[13];S[13]=S[9],S[9]=S[5],S[5]=S[1],S[1]=C;let N=S[10],F=S[14];S[10]=S[2],S[14]=S[6],S[2]=N,S[6]=F;let I=S[3];S[3]=S[7],S[7]=S[11],S[11]=S[15],S[15]=I;for(let n=0;n<16;n++)S[n]=Zi[S[n]];for(let C=0;C<16;C++)S[C]^=a[n][C];for(let n=0;n<4;n++){let a=n*4,C=S[a],N=S[a+1],F=S[a+2],I=S[a+3];S[a]=gmul(14,C)^gmul(11,N)^gmul(13,F)^gmul(9,I),S[a+1]=gmul(9,C)^gmul(14,N)^gmul(11,F)^gmul(13,I),S[a+2]=gmul(13,C)^gmul(9,N)^gmul(14,F)^gmul(11,I),S[a+3]=gmul(11,C)^gmul(13,N)^gmul(9,F)^gmul(14,I)}}let N=S[13];S[13]=S[9],S[9]=S[5],S[5]=S[1],S[1]=N;let F=S[10],I=S[14];S[10]=S[2],S[14]=S[6],S[2]=F,S[6]=I;let H=S[3];S[3]=S[7],S[7]=S[11],S[11]=S[15],S[15]=H;for(let n=0;n<16;n++)S[n]=Zi[S[n]];for(let n=0;n<16;n++)S[n]^=a[0][n];return S}function incrementCounter(n){for(let a=15;a>=0&&++n[a]===0;a--);}function gcmIncrementCounter(n){for(let a=15;a>=12&&++n[a]===0;a--);}function gfMul(n,a){let S=new Uint8Array(16),C=new Uint8Array(n);for(let n=0;n<128;n++){if(a[n>>>3]&1<<7-(n&7))for(let n=0;n<16;n++)S[n]^=C[n];let N=C[15]&1;for(let n=15;n>0;n--)C[n]=C[n]>>>1|(C[n-1]&1)<<7;C[0]>>>=1,N&&(C[0]^=225)}return S}function ghash(n,a,S){let C=new Uint8Array(16),N=Math.ceil(a.length/16)||0;for(let S=0;S<N;S++){let N=S*16,F=Math.min(N+16,a.length);for(let n=0;n<16;n++){let S=N+n;S<F&&(C[n]^=a[S])}let I=gfMul(C,n);C.set(I)}let F=Math.ceil(S.length/16)||0;for(let a=0;a<F;a++){let N=a*16,F=Math.min(N+16,S.length);for(let n=0;n<16;n++){let a=N+n;a<F&&(C[n]^=S[a])}let I=gfMul(C,n);C.set(I)}let I=new Uint8Array(16),H=a.length*8,W=S.length*8,K=Math.floor(H/4294967296),q=H>>>0;I[0]=K>>>24&255,I[1]=K>>>16&255,I[2]=K>>>8&255,I[3]=K&255,I[4]=q>>>24&255,I[5]=q>>>16&255,I[6]=q>>>8&255,I[7]=q&255;let Y=Math.floor(W/4294967296),X=W>>>0;I[8]=Y>>>24&255,I[9]=Y>>>16&255,I[10]=Y>>>8&255,I[11]=Y&255,I[12]=X>>>24&255,I[13]=X>>>16&255,I[14]=X>>>8&255,I[15]=X&255;for(let n=0;n<16;n++)C[n]^=I[n];let te=gfMul(C,n);return C.set(te),C}var Xi,Zi,Qi,$i=__esmMin(()=>{Xi=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),Zi=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),Qi=[1,2,4,8,16,32,64,128,27,54]});function parseAlgorithm(n){let a=n.toLowerCase().match(/^aes-(128|192|256)-(cbc|ctr|ecb|cfb|ofb|gcm)$/);if(!a)throw Error(`Unsupported cipher algorithm: ${n}`);let S=parseInt(a[1]),C=a[2];return{keySize:S/8,ivSize:C===`ecb`?0:C===`gcm`?12:16,mode:C}}function toBuffer$2(n,a){return typeof n==`string`?dt.from(n,a||`utf8`):dt.from(n)}function encodeOutput(n,a){return a?dt.from(n).toString(a):dt.from(n)}function incompleteUtf8Tail(n){if(n.length===0)return 0;let a=n.length;for(let S=1;S<=Math.min(4,a);S++){let C=n[a-S];if(!(C&128))return 0;if((C&192)==128)continue;let N;if((C&224)==192)N=2;else if((C&240)==224)N=3;else if((C&248)==240)N=4;else return 0;return S<N?S:0}return 0}function pkcs7Pad(n){let a=16-n.length%16,S=new Uint8Array(n.length+a);S.set(n);for(let C=n.length;C<S.length;C++)S[C]=a;return S}function pkcs7Unpad(n){if(n.length===0||n.length%16!=0)throw Error(`bad decrypt`);let a=n[n.length-1];if(a===0||a>16)throw Error(`bad decrypt`);for(let S=n.length-a;S<n.length;S++)if(n[S]!==a)throw Error(`bad decrypt`);return new Uint8Array(n.slice(0,n.length-a))}var ea=__esmMin(()=>{bt(),__name$1(toBuffer$2,`toBuffer`)});function createCipher(n,a){throw Error(`crypto.createCipher() is deprecated. Use createCipheriv() instead.`)}function createCipheriv(n,a,S){return new Cipher(n,typeof a==`string`?dt.from(a):new Uint8Array(a),S==null?null:typeof S==`string`?dt.from(S):new Uint8Array(S))}function createDecipher(n,a){throw Error(`crypto.createDecipher() is deprecated. Use createDecipheriv() instead.`)}function createDecipheriv(n,a,S){return new Decipher(n,typeof a==`string`?dt.from(a):new Uint8Array(a),S==null?null:typeof S==`string`?dt.from(S):new Uint8Array(S))}function getCiphers(){return[`aes-128-cbc`,`aes-128-ecb`,`aes-192-cbc`,`aes-192-ecb`,`aes-256-cbc`,`aes-256-ecb`,`aes-128-ctr`,`aes-192-ctr`,`aes-256-ctr`,`aes-128-cfb`,`aes-192-cfb`,`aes-256-cfb`,`aes-128-gcm`,`aes-192-gcm`,`aes-256-gcm`]}var CipherBase,Cipher,Decipher,ta=__esmMin(()=>{$i(),ea(),bt(),CipherBase=class{_roundKeys;_iv;_mode;_buffer=new Uint8Array;_autoPadding=!0;_finalized=!1;constructor(n,a,S){let C=parseAlgorithm(n);if(a.length!==C.keySize)throw Error(`Invalid key length ${a.length}, expected ${C.keySize} for ${n}`);if(C.ivSize>0&&(!S||S.length!==C.ivSize))throw Error(`Invalid IV length ${S?.length??0}, expected ${C.ivSize} for ${n}`);this._roundKeys=keyExpansion(a),this._iv=S?new Uint8Array(S):new Uint8Array(16),this._mode=C.mode}setAutoPadding(n){return this._autoPadding=n,this}},Cipher=class extends CipherBase{_prevBlock;_counter;_gcmH=null;_gcmJ0=null;_gcmAAD=new Uint8Array;_gcmCiphertext=[];_gcmCiphertextLen=0;_gcmAuthTag=null;_gcmAADSet=!1;constructor(n,a,S){super(n,a,S),this._prevBlock=new Uint8Array(this._iv),this._mode===`gcm`?(this._gcmH=aesEncryptBlock(new Uint8Array(16),this._roundKeys),this._gcmJ0=new Uint8Array(16),this._gcmJ0.set(this._iv.subarray(0,12)),this._gcmJ0[15]=1,this._counter=new Uint8Array(this._gcmJ0),gcmIncrementCounter(this._counter)):this._counter=new Uint8Array(this._iv)}setAAD(n){if(this._mode!==`gcm`)throw Error(`setAAD is only supported in GCM mode`);if(this._gcmCiphertextLen>0)throw Error(`setAAD must be called before update()`);return this._gcmAAD=new Uint8Array(n),this._gcmAADSet=!0,this}getAuthTag(){if(this._mode!==`gcm`)throw Error(`getAuthTag is only supported in GCM mode`);if(!this._gcmAuthTag)throw Error(`getAuthTag must be called after final()`);return dt.from(this._gcmAuthTag)}update(n,a,S){let C=toBuffer$2(n,a),N=new Uint8Array(this._buffer.length+C.length);if(N.set(this._buffer),N.set(C,this._buffer.length),this._mode===`gcm`){let n=this._processGcmEncrypt(N);return this._buffer=new Uint8Array,encodeOutput(n,S)}if(this._mode===`ctr`||this._mode===`cfb`||this._mode===`ofb`){let n=this._processStream(N);return this._buffer=new Uint8Array,encodeOutput(n,S)}let F=Math.floor(N.length/16)*16,I=[];for(let n=0;n<F;n+=16){let a=N.slice(n,n+16);I.push(this._encryptBlock(a))}this._buffer=N.slice(F);let H=new Uint8Array(I.length*16);for(let n=0;n<I.length;n++)H.set(I[n],n*16);return encodeOutput(H,S)}final(n){if(this._finalized)throw Error(`Cipher already finalized`);if(this._finalized=!0,this._mode===`gcm`){let a=new Uint8Array;this._buffer.length>0&&(a=this._processGcmEncrypt(this._buffer),this._buffer=new Uint8Array);let S=new Uint8Array(this._gcmCiphertextLen),C=0;for(let n of this._gcmCiphertext)S.set(n,C),C+=n.length;let N=ghash(this._gcmH,this._gcmAAD,S),F=aesEncryptBlock(this._gcmJ0,this._roundKeys),I=new Uint8Array(16);for(let n=0;n<16;n++)I[n]=N[n]^F[n];return this._gcmAuthTag=dt.from(I),encodeOutput(a,n)}if(this._mode===`ctr`||this._mode===`cfb`||this._mode===`ofb`){if(this._buffer.length>0){let a=this._processStream(this._buffer);return this._buffer=new Uint8Array,encodeOutput(a,n)}return encodeOutput(new Uint8Array,n)}let a=this._buffer;if(this._autoPadding)a=pkcs7Pad(a);else if(a.length%16!=0)throw Error(`data not multiple of block size`);let S=[];for(let n=0;n<a.length;n+=16)S.push(this._encryptBlock(a.slice(n,n+16)));if(this._buffer=new Uint8Array,S.length===0)return encodeOutput(new Uint8Array,n);let C=new Uint8Array(S.length*16);for(let n=0;n<S.length;n++)C.set(S[n],n*16);return encodeOutput(C,n)}_encryptBlock(n){if(this._mode===`cbc`){let a=new Uint8Array(16);for(let S=0;S<16;S++)a[S]=n[S]^this._prevBlock[S];let S=aesEncryptBlock(a,this._roundKeys);return this._prevBlock=S,S}else if(this._mode===`ecb`)return aesEncryptBlock(n,this._roundKeys);throw Error(`Block encryption not supported for mode: ${this._mode}`)}_processStream(n){let a=new Uint8Array(n.length);for(let S=0;S<n.length;S+=16){let C=aesEncryptBlock(this._counter,this._roundKeys),N=Math.min(16,n.length-S);for(let F=0;F<N;F++)a[S+F]=n[S+F]^C[F];incrementCounter(this._counter)}return a}_processGcmEncrypt(n){let a=new Uint8Array(n.length);for(let S=0;S<n.length;S+=16){let C=aesEncryptBlock(this._counter,this._roundKeys),N=Math.min(16,n.length-S);for(let F=0;F<N;F++)a[S+F]=n[S+F]^C[F];gcmIncrementCounter(this._counter)}return this._gcmCiphertext.push(new Uint8Array(a)),this._gcmCiphertextLen+=a.length,a}},Decipher=class extends CipherBase{_prevBlock;_counter;_pendingUtf8=new Uint8Array;_gcmH=null;_gcmJ0=null;_gcmAAD=new Uint8Array;_gcmCiphertext=[];_gcmCiphertextLen=0;_gcmExpectedTag=null;_gcmAADSet=!1;constructor(n,a,S){super(n,a,S),this._prevBlock=new Uint8Array(this._iv),this._mode===`gcm`?(this._gcmH=aesEncryptBlock(new Uint8Array(16),this._roundKeys),this._gcmJ0=new Uint8Array(16),this._gcmJ0.set(this._iv.subarray(0,12)),this._gcmJ0[15]=1,this._counter=new Uint8Array(this._gcmJ0),gcmIncrementCounter(this._counter)):this._counter=new Uint8Array(this._iv)}setAAD(n){if(this._mode!==`gcm`)throw Error(`setAAD is only supported in GCM mode`);if(this._gcmCiphertextLen>0)throw Error(`setAAD must be called before update()`);return this._gcmAAD=new Uint8Array(n),this._gcmAADSet=!0,this}setAuthTag(n){if(this._mode!==`gcm`)throw Error(`setAuthTag is only supported in GCM mode`);return this._gcmExpectedTag=dt.from(n),this}_encodeWithUtf8Handling(n,a,S){if(!a||a!==`utf8`&&a!==`utf-8`)return encodeOutput(n,a);let C;if(this._pendingUtf8.length>0?(C=new Uint8Array(this._pendingUtf8.length+n.length),C.set(this._pendingUtf8),C.set(n,this._pendingUtf8.length),this._pendingUtf8=new Uint8Array):C=n,!S){let n=incompleteUtf8Tail(C);n>0&&(this._pendingUtf8=new Uint8Array(C.slice(C.length-n)),C=new Uint8Array(C.slice(0,C.length-n)))}return dt.from(C).toString(`utf8`)}update(n,a,S){let C=toBuffer$2(n,a),N=new Uint8Array(this._buffer.length+C.length);if(N.set(this._buffer),N.set(C,this._buffer.length),this._mode===`gcm`){this._gcmCiphertext.push(new Uint8Array(N)),this._gcmCiphertextLen+=N.length;let n=this._processGcmDecrypt(N);return this._buffer=new Uint8Array,this._encodeWithUtf8Handling(n,S,!1)}if(this._mode===`ctr`||this._mode===`cfb`||this._mode===`ofb`){let n=this._processStream(N);return this._buffer=new Uint8Array,this._encodeWithUtf8Handling(n,S,!1)}let F=Math.floor(N.length/16);if(F===0)return this._buffer=N,this._encodeWithUtf8Handling(new Uint8Array,S,!1);let I=(this._autoPadding?F-1:F)*16,H=[];for(let n=0;n<I;n+=16){let a=N.slice(n,n+16);H.push(this._decryptBlock(a))}this._buffer=N.slice(I);let W=new Uint8Array(H.length*16);for(let n=0;n<H.length;n++)W.set(H[n],n*16);return this._encodeWithUtf8Handling(W,S,!1)}final(n){if(this._finalized)throw Error(`Decipher already finalized`);if(this._finalized=!0,this._mode===`gcm`){let a=new Uint8Array;if(this._buffer.length>0&&(this._gcmCiphertext.push(new Uint8Array(this._buffer)),this._gcmCiphertextLen+=this._buffer.length,a=this._processGcmDecrypt(this._buffer),this._buffer=new Uint8Array),!this._gcmExpectedTag)throw Error(`Unsupported state or unable to authenticate data`);let S=new Uint8Array(this._gcmCiphertextLen),C=0;for(let n of this._gcmCiphertext)S.set(n,C),C+=n.length;let N=ghash(this._gcmH,this._gcmAAD,S),F=aesEncryptBlock(this._gcmJ0,this._roundKeys),I=new Uint8Array(16);for(let n=0;n<16;n++)I[n]=N[n]^F[n];let H=this._gcmExpectedTag,W=Math.min(H.length,16),K=0;for(let n=0;n<W;n++)K|=I[n]^H[n];if(K!==0)throw Error(`Unsupported state or unable to authenticate data`);return this._encodeWithUtf8Handling(a,n,!0)}if(this._mode===`ctr`||this._mode===`cfb`||this._mode===`ofb`){if(this._buffer.length>0){let a=this._processStream(this._buffer);return this._buffer=new Uint8Array,this._encodeWithUtf8Handling(a,n,!0)}return this._encodeWithUtf8Handling(new Uint8Array,n,!0)}if(this._buffer.length===0)return this._encodeWithUtf8Handling(new Uint8Array,n,!0);if(this._buffer.length%16!=0)throw Error(`bad decrypt`);let a=[];for(let n=0;n<this._buffer.length;n+=16)a.push(this._decryptBlock(this._buffer.slice(n,n+16)));let S=new Uint8Array(a.length*16);for(let n=0;n<a.length;n++)S.set(a[n],n*16);let C=this._autoPadding?pkcs7Unpad(S):S;return this._buffer=new Uint8Array,this._encodeWithUtf8Handling(C,n,!0)}_decryptBlock(n){if(this._mode===`cbc`){let a=aesDecryptBlock(n,this._roundKeys),S=new Uint8Array(16);for(let n=0;n<16;n++)S[n]=a[n]^this._prevBlock[n];return this._prevBlock=new Uint8Array(n),S}else if(this._mode===`ecb`)return aesDecryptBlock(n,this._roundKeys);throw Error(`Block decryption not supported for mode: ${this._mode}`)}_processStream(n){let a=new Uint8Array(n.length);for(let S=0;S<n.length;S+=16){let C=aesEncryptBlock(this._counter,this._roundKeys),N=Math.min(16,n.length-S);for(let F=0;F<N;F++)a[S+F]=n[S+F]^C[F];incrementCounter(this._counter)}return a}_processGcmDecrypt(n){let a=new Uint8Array(n.length);for(let S=0;S<n.length;S+=16){let C=aesEncryptBlock(this._counter,this._roundKeys),N=Math.min(16,n.length-S);for(let F=0;F<N;F++)a[S+F]=n[S+F]^C[F];gcmIncrementCounter(this._counter)}return a}}}),na,ra=__esmMin(()=>{na={RSA_PKCS1_PADDING:1,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_PKCS1_PSS_PADDING:6,DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8}});function fillRandom(n){if(ia)for(let a=0;a<n.length;a+=65536){let S=Math.min(n.length-a,65536),C=new Uint8Array(n.buffer,n.byteOffset+a,S);globalThis.crypto.getRandomValues(C)}else try{let a=imports.gi.GLib;for(let S=0;S<n.length;S++)n[S]=a.random_int_range(0,256)}catch{for(let a=0;a<n.length;a++)n[a]=Math.floor(Math.random()*256)}}function randomBytes(n,a){if(typeof n!=`number`||n<0||!Number.isInteger(n))throw TypeError(`The "size" argument must be a non-negative integer. Received ${n}`);try{let S=dt.alloc(n);if(n>0&&fillRandom(new Uint8Array(S.buffer,S.byteOffset,S.byteLength)),a)a(null,S);else return S}catch(n){if(a)a(n,dt.alloc(0));else throw n}}function randomFillSync(n,a=0,S){let C=S??n.length-a;if(a<0||a>n.length)throw RangeError(`The value of "offset" is out of range. Received ${a}`);if(C<0||a+C>n.length)throw RangeError(`The value of "size" is out of range. Received ${C}`);if(C>0){let S=(n instanceof dt,n.byteOffset);fillRandom(new Uint8Array(n.buffer,S+a,C))}return n}function randomFill(n,a,S,C){let N,F,I;typeof a==`function`?(I=a,N=0,F=n.length):typeof S==`function`?(I=S,N=a,F=n.length-a):(I=C,N=a,F=S);try{randomFillSync(n,N,F),I(null,n)}catch(a){I(a,n)}}function randomUUID(){if(ia&&typeof globalThis.crypto.randomUUID==`function`)return globalThis.crypto.randomUUID();let n=new Uint8Array(16);fillRandom(n),n[6]=n[6]&15|64,n[8]=n[8]&63|128;let a=Array.from(n,n=>n.toString(16).padStart(2,`0`)).join(``);return`${a.slice(0,8)}-${a.slice(8,12)}-${a.slice(12,16)}-${a.slice(16,20)}-${a.slice(20)}`}function randomInt(n,a,S){let C,N,F;if(typeof a==`function`?(F=a,N=n,C=0):typeof a==`number`?(C=n,N=a,F=S):(N=n,C=0,F=S),!Number.isInteger(C))throw TypeError(`The "min" argument must be a safe integer. Received ${C}`);if(!Number.isInteger(N))throw TypeError(`The "max" argument must be a safe integer. Received ${N}`);if(C>=N)throw RangeError(`The value of "min" must be less than "max". Received min: ${C}, max: ${N}`);let I=N-C,H=new Uint32Array(1);fillRandom(new Uint8Array(H.buffer));let W=C+H[0]%I;if(F)F(null,W);else return W}var ia,aa=__esmMin(()=>{bt(),ia=globalThis.crypto!==void 0&&typeof globalThis.crypto.getRandomValues==`function`});function modPow(n,a,S){if(S===1n)return 0n;n=(n%S+S)%S;let C=1n;for(;a>0n;)a&1n&&(C=C*n%S),a>>=1n,n=n*n%S;return C}function bigIntToBytes(n,a){let S=new Uint8Array(a),C=n;for(let n=a-1;n>=0;n--)S[n]=Number(C&255n),C>>=8n;return S}function bytesToBigInt(n){let a=0n;for(let S=0;S<n.length;S++)a=a<<8n|BigInt(n[S]);return a}var oa=__esmMin(()=>{});function bigIntToBuffer(n){if(n===0n)return dt.from([0]);let a=n.toString(16);return a.length%2!=0&&(a=`0`+a),dt.from(a,`hex`)}function bufferToBigInt(n){if(n.length===0)return 0n;let a=dt.from(n).toString(`hex`);return a.length===0?0n:BigInt(`0x`+a)}function bitLength(n){return n===0n?0:n.toString(2).length}function simpleSieve(n){for(let a of ca){let S=BigInt(a);if(n%S===0n)return n===S}return!0}function fermatTest(n){return modPow(2n,n-1n,n)===1n}function millerRabinTest(n){if(n<2n)return!1;if(n===2n||n===3n)return!0;if(n%2n==0n)return!1;let a=n-1n,S=0;for(;a%2n==0n;)a/=2n,S++;for(let C of[2n,3n,5n,7n,11n,13n]){if(C>=n)continue;let N=modPow(C,a,n);if(N===1n||N===n-1n)continue;let F=!0;for(let a=0;a<S-1;a++)if(N=modPow(N,2n,n),N===n-1n){F=!1;break}if(F)return!1}return!0}function checkPrime(n,a){let S=a.toString(`hex`),C=0;if(n%2n==0n||!simpleSieve(n)||!fermatTest(n)||!millerRabinTest(n))return C+=1,S===`02`||S===`05`?C+=8:C+=4,C;switch(millerRabinTest(n>>1n)||(C+=2),S){case`02`:n%24n!=11n&&(C+=8);break;case`05`:{let a=n%10n;a!==3n&&a!==7n&&(C+=8)}break;default:C+=4}return C}function getCachedCheckPrime(n,a){let S=a.toString(`hex`)+`_`+n.toString(16);if(S in la)return la[S];let C=checkPrime(n,a);return la[S]=C,C}function formatReturnValue$1(n,a){let S=bigIntToBuffer(n);return a?S.toString(a):S}function generatePrime(n,a){let S=bufferToBigInt(a);if(n<16)return S===2n||S===5n?dt.from([140,123]):dt.from([140,39]);let C=Math.ceil(n/8),N=2n,F=4n;for(;;){let a=bufferToBigInt(randomBytes(C));for(;bitLength(a)>n;)a>>=1n;if(a%N==0n&&(a+=1n),a&N||(a+=N),S===N)for(;a%24n!=11n;)a+=F;else if(S===5n)for(;a%10n!=3n;)a+=F;let I=a>>1n;if(simpleSieve(I)&&simpleSieve(a)&&fermatTest(I)&&fermatTest(a)&&millerRabinTest(I)&&millerRabinTest(a))return bigIntToBuffer(a)}}function createDiffieHellman(n,a,S,C){if(a!==void 0&&typeof a!=`number`&&(dt.isBuffer(a)||a instanceof Uint8Array||typeof a==`string`&&!(a in ua)))return createDiffieHellman(n,`binary`,a,S);let N=a||`binary`,F=C||`binary`,I=dt.from([2]);if(S!==void 0&&(typeof S==`number`?(I=dt.alloc(1),I[0]=S):I=dt.isBuffer(S)?S:dt.from(S,F)),typeof n==`number`)return new DiffieHellman(generatePrime(n,I),I,!0);let H;return H=dt.isBuffer(n)?n:n instanceof Uint8Array?dt.from(n):dt.from(n,N),new DiffieHellman(H,I,!0)}function getDiffieHellman(n){let a=sa[n];if(!a)throw Error(`Unknown group: ${n}. Supported groups: ${Object.keys(sa).join(`, `)}`);return new DiffieHellman(dt.from(a.prime,`hex`),dt.from(a.gen,`hex`),!1)}var sa,ca,la,DiffieHellman,ua,da,fa,pa=__esmMin(()=>{oa(),aa(),bt(),sa={modp1:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff`},modp2:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff`},modp5:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff`},modp14:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff`},modp15:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff`},modp16:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff`},modp17:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff`},modp18:{gen:`02`,prime:`ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff`}},ca=[];{let n=1e3,a=new Uint8Array(1001);for(let S=2;S*S<=n;S++)if(!a[S])for(let C=S*S;C<=n;C+=S)a[C]=1;for(let S=2;S<=n;S++)a[S]||ca.push(S)}la={},__name$1(formatReturnValue$1,`formatReturnValue`),DiffieHellman=class{_prime;_generator;_generatorBuf;_primeByteLength;_pubKey;_privKey;_primeCode;_malleable;constructor(n,a,S=!1){this._prime=bufferToBigInt(n),this._generatorBuf=a,this._generator=bufferToBigInt(a),this._primeByteLength=n.length,this._pubKey=void 0,this._privKey=void 0,this._primeCode=void 0,this._malleable=S,S||(this._primeCode=0,this.setPublicKey=void 0,this.setPrivateKey=void 0)}get verifyError(){return typeof this._primeCode!=`number`&&(this._primeCode=getCachedCheckPrime(this._prime,this._generatorBuf)),this._primeCode}generateKeys(n){if(!this._privKey){let n=randomBytes(this._primeByteLength);this._privKey=bufferToBigInt(n)}return this._pubKey=modPow(this._generator,this._privKey,this._prime),this.getPublicKey(n)}computeSecret(n,a,S){let C;C=typeof n==`string`?dt.from(n,a||`utf8`):dt.from(n);let N=bufferToBigInt(C);if(!this._privKey)throw Error(`You must generate keys before computing a secret`);if(N<=0n||N>=this._prime)throw Error(`Supplied key is too large`);let F=bigIntToBuffer(modPow(N,this._privKey,this._prime)),I=this._primeByteLength;if(F.length<I){let n=dt.alloc(I);F.copy(n,I-F.length),F=n}return S?F.toString(S):F}getPrime(n){return formatReturnValue$1(this._prime,n)}getGenerator(n){return formatReturnValue$1(this._generator,n)}getPublicKey(n){if(!this._pubKey)throw Error(`No public key - call generateKeys() first`);return formatReturnValue$1(this._pubKey,n)}getPrivateKey(n){if(!this._privKey)throw Error(`No private key - call generateKeys() first`);return formatReturnValue$1(this._privKey,n)}setPublicKey(n,a){if(!this._malleable)throw Error(`setPublicKey is not available for predefined DH groups`);let S=typeof n==`string`?dt.from(n,a||`utf8`):dt.from(n);this._pubKey=bufferToBigInt(S)}setPrivateKey(n,a){if(!this._malleable)throw Error(`setPrivateKey is not available for predefined DH groups`);let S=typeof n==`string`?dt.from(n,a||`utf8`):dt.from(n);this._privKey=bufferToBigInt(S)}},ua={binary:!0,hex:!0,base64:!0,latin1:!0,utf8:!0,"utf-8":!0,base64url:!0,ascii:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0},da=getDiffieHellman,fa=getDiffieHellman});function mod(n,a){let S=n%a;return S<0n?S+a:S}function modInverse$2(n,a){if(n=mod(n,a),n===0n)throw Error(`No modular inverse for zero`);let[S,C]=[n,a],[N,F]=[1n,0n];for(;C!==0n;){let n=S/C;[S,C]=[C,S-n*C],[N,F]=[F,N-n*F]}if(S!==1n)throw Error(`Modular inverse does not exist`);return mod(N,a)}function pointAdd(n,a,S){if(n===null)return a;if(a===null)return n;let{p:C}=S;if(n.x===a.x)return mod(n.y+a.y,C)===0n?null:pointDouble(n,S);let N=mod(a.x-n.x,C),F=mod(mod(a.y-n.y,C)*modInverse$2(N,C),C),I=mod(F*F-n.x-a.x,C);return{x:I,y:mod(F*(n.x-I)-n.y,C)}}function pointDouble(n,a){if(n===null)return null;let{a:S,p:C}=a;if(n.y===0n)return null;let N=mod(mod(3n*n.x*n.x+S,C)*modInverse$2(mod(2n*n.y,C),C),C),F=mod(N*N-2n*n.x,C);return{x:F,y:mod(N*(n.x-F)-n.y,C)}}function scalarMul(n,a,S){if(a===null||n===0n)return null;let{n:C}=S;if(n=mod(n,C),n===0n)return null;let N=null,F=a,I=n.toString(2);for(let n=0;n<I.length;n++)I[n]===`1`?(N=pointAdd(N,F,S),F=pointDouble(F,S)):(F=pointAdd(N,F,S),N=pointDouble(N,S));return N}function bigintToBuffer(n,a){let S=n.toString(16).padStart(a*2,`0`);return dt.from(S,`hex`)}function bufferToBigint(n){let a=dt.from(n).toString(`hex`);return a.length===0?0n:BigInt(`0x`+a)}function encodePublicKey(n,a,S=`uncompressed`){if(n===null)throw Error(`Cannot encode the point at infinity`);let C=bigintToBuffer(n.x,a);if(S===`compressed`){let a=n.y%2n==0n?2:3;return dt.concat([dt.from([a]),C])}let N=bigintToBuffer(n.y,a);if(S===`hybrid`){let a=n.y%2n==0n?6:7;return dt.concat([dt.from([a]),C,N])}return dt.concat([dt.from([4]),C,N])}function decodePublicKey(n,a){let S=dt.from(n);if(S.length===0)throw Error(`Invalid public key: empty buffer`);let C=S[0],{p:N,a:F,b:I,byteLength:H}=a;if(C===4||C===6||C===7){if(S.length!==1+2*H)throw Error(`Invalid public key length: expected ${1+2*H} bytes, got ${S.length}`);let n=bufferToBigint(S.subarray(1,1+H)),a=bufferToBigint(S.subarray(1+H));if(mod(a*a,N)!==mod(n*n*n+F*n+I,N))throw Error(`Invalid public key: point is not on the curve`);return{x:n,y:a}}if(C===2||C===3){if(S.length!==1+H)throw Error(`Invalid public key length: expected ${1+H} bytes, got ${S.length}`);let n=bufferToBigint(S.subarray(1,1+H)),a=sqrtMod(mod(n*n*n+F*n+I,N),N);if(a===null)throw Error(`Invalid public key: no valid y coordinate for the given x`);let W=C===3;return{x:n,y:a%2n!=0n===W?a:mod(N-a,N)}}throw Error(`Invalid public key prefix: 0x${C.toString(16).padStart(2,`0`)}`)}function sqrtMod(n,a){if(n=mod(n,a),n===0n)return 0n;if(modPow(n,(a-1n)/2n,a)!==1n)return null;if(mod(a,4n)===3n)return modPow(n,(a+1n)/4n,a);let S=0n,C=a-1n;for(;mod(C,2n)===0n;)C/=2n,S++;let N=2n;for(;modPow(N,(a-1n)/2n,a)!==a-1n;)N++;let F=S,I=modPow(N,C,a),H=modPow(n,C,a),W=modPow(n,(C+1n)/2n,a);for(;;){if(H===0n)return 0n;if(H===1n)return W;let n=1n,S=mod(H*H,a);for(;S!==1n;)S=mod(S*S,a),n++;let C=modPow(I,modPow(2n,F-n-1n,a-1n),a);F=n,I=mod(C*C,a),H=mod(H*I,a),W=mod(W*C,a)}}function toBuffer$1(n,a){if(dt.isBuffer(n))return n;if(n instanceof Uint8Array)return dt.from(n);if(typeof n==`string`)return dt.from(n,a||`utf8`);if(ArrayBuffer.isView(n))return dt.from(n.buffer,n.byteOffset,n.byteLength);throw TypeError(`The "key" argument must be of type string or an instance of Buffer, TypedArray, or DataView.`)}function formatReturnValue(n,a){return a?n.toString(a):n}function resolveCurve(n){let a=ha[n.toLowerCase()];if(!a)throw Error(`Unsupported curve: ${n}`);let S=ma[a];if(!S)throw Error(`Unsupported curve: ${n}`);return{canonical:a,params:S}}function createECDH(n){return new ECDH(n)}function getCurves(){return[`secp256k1`,`prime256v1`,`secp256r1`,`secp384r1`,`secp521r1`]}var ma,ha,ECDH,ga=__esmMin(()=>{oa(),aa(),bt(),ma={secp256k1:{p:115792089237316195423570985008687907853269984665640564039457584007908834671663n,a:0n,b:7n,Gx:55066263022277343669578718895168534326250603453777594175500187360389116729240n,Gy:32670510020758816978083085130507043184471273380659243275938904335757337482424n,n:115792089237316195423570985008687907852837564279074904382605163141518161494337n,byteLength:32},prime256v1:{p:115792089210356248762697446949407573530086143415290314195533631308867097853951n,a:115792089210356248762697446949407573530086143415290314195533631308867097853951n-3n,b:41058363725152142129326129780047268409114441015993725554835256314039467401291n,Gx:48439561293906451759052585252797914202762949526041747995844080717082404635286n,Gy:36134250956749795798585127919587881956611106672985015071877198253568414405109n,n:115792089210356248762697446949407573529996955224135760342422259061068512044369n,byteLength:32},secp384r1:{p:39402006196394479212279040100143613805079739270465446667948293404245721771496870329047266088258938001861606973112319n,a:39402006196394479212279040100143613805079739270465446667948293404245721771496870329047266088258938001861606973112319n-3n,b:27580193559959705877849011840389048093056905856361568521428707301988689241309860865136260764883745107765439761230575n,Gx:26247035095799689268623156744566981891852923491109213387815615900925518854738050089022388053975719786650872476732087n,Gy:8325710961489029985546751289520108179287853048861315594709205902480503199884419224438643760392947333078086511627871n,n:39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643n,byteLength:48},secp521r1:{p:6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151n,a:6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151n-3n,b:1093849038073734274511112390766805569936207598951683748994586394495953116150735016013708737573759623248592132296706313309438452531591012912142327488478985984n,Gx:2661740802050217063228768716723360960729859168756973147706671368418802944996427808491545080627771902352094241225065558662157113545570916814161637315895999846n,Gy:3757180025770020463545507224491183603594455134769762486694567779615544477440556316691234405012945539562144444537289428522585666729196580810124344277578376784n,n:6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449n,byteLength:66}},ha={secp256k1:`secp256k1`,prime256v1:`prime256v1`,secp256r1:`prime256v1`,"p-256":`prime256v1`,p256:`prime256v1`,secp384r1:`secp384r1`,"p-384":`secp384r1`,p384:`secp384r1`,secp521r1:`secp521r1`,"p-521":`secp521r1`,p521:`secp521r1`},__name$1(modInverse$2,`modInverse`),__name$1(toBuffer$1,`toBuffer`),ECDH=class{_curve;_curveName;_privateKey=null;_publicKey=null;constructor(n){let a=resolveCurve(n);this._curve=a.params,this._curveName=a.canonical}generateKeys(n,a){let{n:S,byteLength:C}=this._curve,N;do N=bufferToBigint(randomBytes(C));while(N===0n||N>=S);this._privateKey=N;let F={x:this._curve.Gx,y:this._curve.Gy};return this._publicKey=scalarMul(N,F,this._curve),this.getPublicKey(n,a)}computeSecret(n,a,S){if(this._privateKey===null)throw Error(`ECDH key not generated. Call generateKeys() or setPrivateKey() first.`);let C=decodePublicKey(toBuffer$1(n,a),this._curve);if(C===null)throw Error(`Invalid public key: point at infinity`);let N=scalarMul(this._privateKey,C,this._curve);if(N===null)throw Error(`Shared secret computation resulted in the point at infinity`);return formatReturnValue(bigintToBuffer(N.x,this._curve.byteLength),S)}getPublicKey(n,a){if(this._publicKey===null)throw Error(`ECDH key not generated. Call generateKeys() or setPrivateKey() first.`);return formatReturnValue(encodePublicKey(this._publicKey,this._curve.byteLength,a||`uncompressed`),n)}getPrivateKey(n){if(this._privateKey===null)throw Error(`ECDH key not generated. Call generateKeys() or setPrivateKey() first.`);return formatReturnValue(bigintToBuffer(this._privateKey,this._curve.byteLength),n)}setPublicKey(n,a){let S=toBuffer$1(n,a);this._publicKey=decodePublicKey(S,this._curve)}setPrivateKey(n,a){let S=bufferToBigint(toBuffer$1(n,a));if(S===0n||S>=this._curve.n)throw Error(`Private key is out of range [1, n-1]`);this._privateKey=S;let C={x:this._curve.Gx,y:this._curve.Gy};this._publicKey=scalarMul(S,C,this._curve)}}});function normalizeAlgorithm(n){return n.toLowerCase().replace(/-/g,``)}function hashSize(n){let a=_a[normalizeAlgorithm(n)];if(a===void 0)throw Error(`Unknown hash algorithm: ${n}`);return a}function toBuffer(n,a){return typeof n==`string`?dt.from(n,a||`utf8`):n instanceof DataView?dt.from(n.buffer,n.byteOffset,n.byteLength):(n instanceof ArrayBuffer,dt.from(n))}var _a,va,ya,ba=__esmMin(()=>{bt(),_a={md5:16,sha1:20,sha256:32,sha384:48,sha512:64},va={md5:64,sha1:64,sha256:64,sha384:128,sha512:128},ya=new Set([`md5`,`sha1`,`sha256`,`sha384`,`sha512`])});function getChecksumType(n){let a=xa[normalizeAlgorithm(n)];if(a===void 0){let a=Error(`Unknown message digest: ${n}`);throw a.code=`ERR_CRYPTO_HASH_UNKNOWN`,a}return a}function getHashes(){return[`md5`,`sha1`,`sha256`,`sha384`,`sha512`]}function hash(n,a,S){return new Sa(n).update(a).digest(S)}var xa,Sa,Ca=__esmMin(()=>{ba(),bt(),se(),Jr(),xa={md5:Z.ChecksumType.MD5,sha1:Z.ChecksumType.SHA1,sha256:Z.ChecksumType.SHA256,sha384:Z.ChecksumType.SHA384,sha512:Z.ChecksumType.SHA512},Sa=class Hash extends Gr{_algorithm;_checksum;_finalized=!1;constructor(n){super();let a=normalizeAlgorithm(n),S=getChecksumType(a);this._algorithm=a,this._checksum=new Z.Checksum(S)}update(n,a){if(this._finalized)throw Error(`Digest already called`);let S;if(typeof n==`string`){let C=normalizeEncoding(a);S=dt.from(n,C)}else S=n instanceof Uint8Array?n:dt.from(n);return this._checksum.update(S),this}digest(n){if(this._finalized)throw Error(`Digest already called`);this._finalized=!0;let a=this._checksum.get_string(),S=dt.from(a,`hex`);return n?S.toString(n):S}copy(){if(this._finalized)throw Error(`Digest already called`);let n=Object.create(Hash.prototype);return Gr.call(n),n._algorithm=this._algorithm,n._finalized=!1,n._checksum=this._checksum.copy(),n}_transform(n,a,S){try{this.update(n,a),S()}catch(n){S(n)}}_flush(n){try{this.push(this.digest()),n()}catch(a){n(a)}}}}),Hmac,wa=__esmMin(()=>{ba(),Ca(),bt(),Jr(),Hmac=class extends Gr{_algorithm;_innerHash;_outerKeyPad;_finalized=!1;constructor(n,a){super();let S=normalizeAlgorithm(n);if(!ya.has(S)){let a=Error(`Unknown message digest: ${n}`);throw a.code=`ERR_CRYPTO_HASH_UNKNOWN`,a}this._algorithm=S;let C;C=typeof a==`string`?dt.from(a,`utf8`):a instanceof Uint8Array?a:dt.from(a);let N=va[S];if(C.length>N){let n=new Sa(S);n.update(C),C=n.digest()}let F=new Uint8Array(N);F.set(C);let I=new Uint8Array(N),H=new Uint8Array(N);for(let n=0;n<N;n++)I[n]=F[n]^54,H[n]=F[n]^92;this._outerKeyPad=H,this._innerHash=new Sa(S),this._innerHash.update(I)}update(n,a){if(this._finalized)throw Error(`Digest already called`);let S;if(typeof n==`string`){let C=normalizeEncoding(a);S=dt.from(n,C)}else S=n instanceof Uint8Array?n:dt.from(n);return this._innerHash.update(S),this}digest(n){if(this._finalized)throw Error(`Digest already called`);this._finalized=!0;let a=this._innerHash.digest(),S=new Sa(this._algorithm);S.update(this._outerKeyPad),S.update(a);let C=S.digest();return n?C.toString(n):C}_transform(n,a,S){try{this.update(n,a),S()}catch(n){S(n)}}_flush(n){try{this.push(this.digest()),n()}catch(a){n(a)}}}});function getCurve(n){let a=ha[n.toLowerCase()];if(!a)throw Error(`Unsupported curve: ${n}`);return ma[a]}function truncateHash(n,a){let S=a.n.toString(2).length,C=bytesToBigInt(n),N=n.length*8;return N>S&&(C>>=BigInt(N-S)),C}function hmacDigest$2(n,a,S){let C=new Hmac(n,a);return C.update(S),new Uint8Array(C.digest())}function rfc6979(n,a,S,C){let N=C.byteLength,F=S.length,I=new Uint8Array(F).fill(1),H=new Uint8Array(F).fill(0),W=bigIntToBytes(a,N),K=bigIntToBytes(mod(truncateHash(S,C),C.n),N),q=new Uint8Array(F+1+N+N);q.set(I,0),q[F]=0,q.set(W,F+1),q.set(K,F+1+N),H=hmacDigest$2(n,H,q),I=hmacDigest$2(n,H,I);let Y=new Uint8Array(F+1+N+N);Y.set(I,0),Y[F]=1,Y.set(W,F+1),Y.set(K,F+1+N),H=hmacDigest$2(n,H,Y),I=hmacDigest$2(n,H,I);for(let a=0;a<100;a++){let a=new Uint8Array;for(;a.length<N;){I=hmacDigest$2(n,H,I);let S=new Uint8Array(a.length+I.length);S.set(a,0),S.set(I,a.length),a=S}let S=truncateHash(a.slice(0,N),C);if(S>=1n&&S<C.n)return S;let W=new Uint8Array(F+1);W.set(I,0),W[F]=0,H=hmacDigest$2(n,H,W),I=hmacDigest$2(n,H,I)}throw Error(`RFC 6979: failed to generate valid k after 100 attempts`)}function ecdsaSign(n,a,S,C){let N=getCurve(C),F={x:N.Gx,y:N.Gy},I=bytesToBigInt(a),H=new Sa(n);H.update(S);let W=new Uint8Array(H.digest()),K=truncateHash(W,N),q=rfc6979(n,I,W,N),Y=scalarMul(q,F,N);if(Y===null)throw Error(`ECDSA: k * G is point at infinity`);let X=mod(Y.x,N.n);if(X===0n)throw Error(`ECDSA: r is zero`);let te=mod(modInverse$2(q,N.n)*(K+X*I),N.n);if(te===0n)throw Error(`ECDSA: s is zero`);let ne=N.byteLength,re=new Uint8Array(ne*2);return re.set(bigIntToBytes(X,ne),0),re.set(bigIntToBytes(te,ne),ne),re}function ecdsaVerify(n,a,S,C,N){let F=getCurve(N),I={x:F.Gx,y:F.Gy},H=F.byteLength;if(a[0]!==4||a.length!==1+H*2)return!1;let W={x:bytesToBigInt(a.slice(1,1+H)),y:bytesToBigInt(a.slice(1+H))};if(S.length!==H*2)return!1;let K=bytesToBigInt(S.slice(0,H)),q=bytesToBigInt(S.slice(H));if(K<1n||K>=F.n||q<1n||q>=F.n)return!1;let Y=new Sa(n);Y.update(C);let X=truncateHash(new Uint8Array(Y.digest()),F),te=modInverse$2(q,F.n),ne=mod(X*te,F.n),re=mod(K*te,F.n),ie=pointAdd(scalarMul(ne,I,F),scalarMul(re,W,F),F);return ie===null?!1:mod(ie.x,F.n)===K}var Ta=__esmMin(()=>{oa(),ga(),Ca(),wa(),__name$1(hmacDigest$2,`hmacDigest`)});function hmacDigest$1(n,a,S){let C=new Hmac(n,a);return C.update(S),C.digest()}function hkdfExtract(n,a,S){return hmacDigest$1(n,S,a)}function hkdfExpand(n,a,S,C,N){let F=Math.ceil(C/N);if(F>255)throw Error(`HKDF cannot generate more than 255 * HashLen bytes`);let I=dt.allocUnsafe(F*N),H=dt.alloc(0);for(let C=1;C<=F;C++)H=hmacDigest$1(n,a,dt.concat([H,S,dt.from([C])])),H.copy(I,(C-1)*N);return dt.from(I.buffer,I.byteOffset,C)}function hkdfSync(n,a,S,C,N){let F=normalizeAlgorithm(n),I=_a[F];if(!ya.has(F)||I===void 0)throw TypeError(`Unknown message digest: ${n}`);if(typeof N!=`number`||N<0)throw TypeError(`keylen must be a non-negative number`);let H=toBuffer(a),W=toBuffer(S),K=toBuffer(C),q=hkdfExpand(F,hkdfExtract(F,H,W.length===0?dt.alloc(I,0):W),K,N,I),Y=new ArrayBuffer(q.length);return new Uint8Array(Y).set(q),Y}function hkdf(n,a,S,C,N,F){setTimeout(()=>{try{F(null,hkdfSync(n,a,S,C,N))}catch(n){F(n instanceof Error?n:Error(String(n)))}},0)}var Ea=__esmMin(()=>{ba(),wa(),bt(),__name$1(hmacDigest$1,`hmacDigest`)});function timingSafeEqual(n,a){if(n.length!==a.length)throw RangeError(`Input buffers must have the same byte length`);let S=0;for(let C=0;C<n.length;C++)S|=n[C]^a[C];return S===0}var Da=__esmMin(()=>{});function hmacDigest(n,a,S){let C=new Hmac(n,a);return C.update(S),C.digest()}function validateParameters(n,a){if(typeof n!=`number`||n<0||!Number.isFinite(n)||n===0)throw TypeError(`iterations must be a positive number`);if(typeof a!=`number`||a<0||!Number.isFinite(a)||a>2147483647)throw TypeError(`keylen must be a positive number`)}function pbkdf2Sync(n,a,S,C,N){validateParameters(S,C);let F=toBuffer(n),I=toBuffer(a),H=normalizeAlgorithm(N||`sha1`),W=_a[H];if(!ya.has(H)||W===void 0)throw TypeError(`Unknown message digest: ${N||`sha1`}`);if(C===0)return dt.alloc(0);let K=Math.ceil(C/W),q=dt.allocUnsafe(K*W);for(let n=1;n<=K;n++){let a=dt.allocUnsafe(I.length+4);I.copy(a,0),a.writeUInt32BE(n,I.length);let C=hmacDigest(H,F,a),N=dt.from(C);for(let n=1;n<S;n++){C=hmacDigest(H,F,C);for(let n=0;n<W;n++)N[n]^=C[n]}N.copy(q,(n-1)*W)}return dt.from(q.buffer,q.byteOffset,C)}function pbkdf2(n,a,S,C,N,F){validateParameters(S,C),setTimeout(()=>{try{F(null,pbkdf2Sync(n,a,S,C,N))}catch(n){F(n instanceof Error?n:Error(String(n)))}},0)}var Oa=__esmMin(()=>{ba(),wa(),bt()});function R$2(n,a){return(n<<a|n>>>32-a)>>>0}function salsa20_8(n){let a=new Uint32Array(16);for(let S=0;S<16;S++)a[S]=n[S];for(let n=0;n<4;n++)a[4]^=R$2(a[0]+a[12],7),a[8]^=R$2(a[4]+a[0],9),a[12]^=R$2(a[8]+a[4],13),a[0]^=R$2(a[12]+a[8],18),a[9]^=R$2(a[5]+a[1],7),a[13]^=R$2(a[9]+a[5],9),a[1]^=R$2(a[13]+a[9],13),a[5]^=R$2(a[1]+a[13],18),a[14]^=R$2(a[10]+a[6],7),a[2]^=R$2(a[14]+a[10],9),a[6]^=R$2(a[2]+a[14],13),a[10]^=R$2(a[6]+a[2],18),a[3]^=R$2(a[15]+a[11],7),a[7]^=R$2(a[3]+a[15],9),a[11]^=R$2(a[7]+a[3],13),a[15]^=R$2(a[11]+a[7],18),a[1]^=R$2(a[0]+a[3],7),a[2]^=R$2(a[1]+a[0],9),a[3]^=R$2(a[2]+a[1],13),a[0]^=R$2(a[3]+a[2],18),a[6]^=R$2(a[5]+a[4],7),a[7]^=R$2(a[6]+a[5],9),a[4]^=R$2(a[7]+a[6],13),a[5]^=R$2(a[4]+a[7],18),a[11]^=R$2(a[10]+a[9],7),a[8]^=R$2(a[11]+a[10],9),a[9]^=R$2(a[8]+a[11],13),a[10]^=R$2(a[9]+a[8],18),a[12]^=R$2(a[15]+a[14],7),a[13]^=R$2(a[12]+a[15],9),a[14]^=R$2(a[13]+a[12],13),a[15]^=R$2(a[14]+a[13],18);for(let S=0;S<16;S++)n[S]=n[S]+a[S]>>>0}function blockMix(n,a){let S=2*a*16,C=new Uint32Array(16);for(let a=0;a<16;a++)C[a]=n[S-16+a];let N=new Uint32Array(S);for(let S=0;S<2*a;S++){for(let a=0;a<16;a++)C[a]^=n[S*16+a];salsa20_8(C);for(let n=0;n<16;n++)N[S*16+n]=C[n]}for(let S=0;S<a;S++)for(let a=0;a<16;a++)n[S*16+a]=N[2*S*16+a];for(let S=0;S<a;S++)for(let C=0;C<16;C++)n[(a+S)*16+C]=N[(2*S+1)*16+C]}function roMix(n,a,S){let C=2*S*16,N=Array.from({length:a});for(let C=0;C<a;C++)N[C]=new Uint32Array(n),blockMix(n,S);for(let F=0;F<a;F++){let F=n[C-16]&a-1;for(let a=0;a<C;a++)n[a]^=N[F][a];blockMix(n,S)}}function bytesToWords(n){let a=new Uint32Array(n.length/4);for(let S=0;S<a.length;S++)a[S]=n[S*4]|n[S*4+1]<<8|n[S*4+2]<<16|n[S*4+3]<<24;return a}function wordsToBytes(n){let a=new Uint8Array(n.length*4);for(let S=0;S<n.length;S++)a[S*4]=n[S]&255,a[S*4+1]=n[S]>>8&255,a[S*4+2]=n[S]>>16&255,a[S*4+3]=n[S]>>24&255;return a}function scryptCore(n,a,S,C,N,F){let I=128*C,H=pbkdf2Sync(n,a,1,N*I,`sha256`);for(let n=0;n<N;n++){let a=new Uint8Array(H.buffer,H.byteOffset+n*I,I),N=bytesToWords(a);roMix(N,S,C);let F=wordsToBytes(N);a.set(F)}return pbkdf2Sync(n,H,1,F,`sha256`)}function scryptSync(n,a,S,C){let N=dt.from(n),F=dt.from(a),I=C?.N??16384,H=C?.r??8,W=C?.p??1;if(I<=0||I&I-1)throw Error(`N must be a positive power of 2`);return scryptCore(N,F,I,H,W,S)}function scrypt(n,a,S,C,N){let F={},I;typeof C==`function`?I=C:(F=C,I=N);try{let C=scryptSync(n,a,S,F);setTimeout(()=>I(null,C),0)}catch(n){setTimeout(()=>I(n instanceof Error?n:Error(String(n)),dt.alloc(0)),0)}}var ka=__esmMin(()=>{Oa(),bt(),__name$1(R$2,`R`)});function pemToDer(n){let a=n.trim().split(/\r?\n/),S=a.findIndex(n=>n.startsWith(`-----BEGIN `));if(S===-1)throw Error(`Invalid PEM: no BEGIN line found`);let C=a[S].match(/^-----BEGIN (.+)-----$/);if(!C)throw Error(`Invalid PEM header format`);let N=C[1],F=a.findIndex((n,a)=>a>S&&n.startsWith(`-----END `));if(F===-1)throw Error(`Invalid PEM: no END line found`);let I=a.slice(S+1,F).join(``),H=dt.from(I,`base64`);return{type:N,der:new Uint8Array(H.buffer,H.byteOffset,H.byteLength)}}function parseTlv(n,a){if(a>=n.length)throw Error(`ASN.1 parse error: unexpected end of data`);let S=n[a++],C,N=n[a++];if(N<128)C=N;else{let S=N&127;if(S===0)throw Error(`ASN.1 parse error: indefinite length not supported`);C=0;for(let N=0;N<S;N++)C=C<<8|n[a++]}let F=n.slice(a,a+C),I=a+C,H={tag:S,data:F};return S===48&&(H.children=parseSequenceChildren(F)),{value:H,next:I}}function parseSequenceChildren(n){let a=[],S=0;for(;S<n.length;){let{value:C,next:N}=parseTlv(n,S);a.push(C),S=N}return a}function parseDer(n){let{value:a}=parseTlv(n,0);return a}function integerToBigInt(n){let a=0;for(;a<n.length-1&&n[a]===0;)a++;let S=0n;for(let C=a;C<n.length;C++)S=S<<8n|BigInt(n[C]);return S}function oidsEqual(n,a){if(n.length!==a.length)return!1;for(let S=0;S<n.length;S++)if(n[S]!==a[S])return!1;return!0}function parseRsaPublicKeyPkcs1(n){let a=n.children;if(!a||a.length<2)throw Error(`Invalid PKCS#1 RSAPublicKey structure`);return{n:integerToBigInt(a[0].data),e:integerToBigInt(a[1].data)}}function parseRsaPrivateKeyPkcs1(n){let a=n.children;if(!a||a.length<6)throw Error(`Invalid PKCS#1 RSAPrivateKey structure`);return{n:integerToBigInt(a[1].data),e:integerToBigInt(a[2].data),d:integerToBigInt(a[3].data),p:integerToBigInt(a[4].data),q:integerToBigInt(a[5].data)}}function parseSubjectPublicKeyInfo(n){let a=n.children;if(!a||a.length<2)throw Error(`Invalid SubjectPublicKeyInfo structure`);let S=a[0];if(!S.children||S.children.length<1)throw Error(`Invalid AlgorithmIdentifier`);let C=S.children[0];if(C.tag!==6||!oidsEqual(C.data,Aa))throw Error(`Unsupported algorithm: only RSA is supported`);let N=a[1];if(N.tag!==3)throw Error(`Expected BIT STRING for public key data`);return parseRsaPublicKeyPkcs1(parseDer(N.data.slice(1)))}function parsePrivateKeyInfo(n){let a=n.children;if(!a||a.length<3)throw Error(`Invalid PrivateKeyInfo structure`);let S=a[1];if(!S.children||S.children.length<1)throw Error(`Invalid AlgorithmIdentifier`);let C=S.children[0];if(C.tag!==6||!oidsEqual(C.data,Aa))throw Error(`Unsupported algorithm: only RSA is supported`);let N=a[2];if(N.tag!==4)throw Error(`Expected OCTET STRING for private key data`);return parseRsaPrivateKeyPkcs1(parseDer(N.data))}function encodeLength(n){if(n<128)return new Uint8Array([n]);let a=[],S=n;for(;S>0;)a.unshift(S&255),S>>=8;return new Uint8Array([128|a.length,...a])}function encodeTlv(n,a){let S=encodeLength(a.length),C=new Uint8Array(1+S.length+a.length);return C[0]=n,C.set(S,1),C.set(a,1+S.length),C}function bigintToAsn1Integer(n){if(n===0n)return encodeTlv(2,new Uint8Array([0]));let a=n.toString(16),S=a.length%2?`0`+a:a,C=[];for(let n=0;n<S.length;n+=2)C.push(parseInt(S.substring(n,n+2),16));return C[0]&128&&C.unshift(0),encodeTlv(2,new Uint8Array(C))}function encodeSequence(n){let a=0;for(let S of n)a+=S.length;let S=new Uint8Array(a),C=0;for(let a of n)S.set(a,C),C+=a.length;return encodeTlv(48,S)}function encodeBitString(n){let a=new Uint8Array(1+n.length);return a[0]=0,a.set(n,1),encodeTlv(3,a)}function encodeOctetString(n){return encodeTlv(4,n)}function encodeOid(n){return encodeTlv(6,n)}function encodeNull(){return new Uint8Array([5,0])}function encodeRsaPublicKeyPkcs1(n){return encodeSequence([bigintToAsn1Integer(n.n),bigintToAsn1Integer(n.e)])}function encodeSubjectPublicKeyInfo(n){return encodeSequence([encodeSequence([encodeOid(Aa),encodeNull()]),encodeBitString(encodeRsaPublicKeyPkcs1(n))])}function encodeRsaPrivateKeyPkcs1(n){let a=n.d%(n.p-1n),S=n.d%(n.q-1n),C=modInverse$1(n.q,n.p);return encodeSequence([bigintToAsn1Integer(0n),bigintToAsn1Integer(n.n),bigintToAsn1Integer(n.e),bigintToAsn1Integer(n.d),bigintToAsn1Integer(n.p),bigintToAsn1Integer(n.q),bigintToAsn1Integer(a),bigintToAsn1Integer(S),bigintToAsn1Integer(C)])}function encodePrivateKeyInfo(n){let a=encodeSequence([encodeOid(Aa),encodeNull()]),S=encodeOctetString(encodeRsaPrivateKeyPkcs1(n));return encodeSequence([bigintToAsn1Integer(0n),a,S])}function derToPem(n,a){let S=dt.from(n).toString(`base64`),C=[`-----BEGIN ${a}-----`];for(let n=0;n<S.length;n+=64)C.push(S.substring(n,n+64));return C.push(`-----END ${a}-----`),C.join(`
10
+ `)}function modInverse$1(n,a){let[S,C]=[n%a,a],[N,F]=[1n,0n];for(;C!==0n;){let n=S/C;[S,C]=[C,S-n*C],[N,F]=[F,N-n*F]}return(N%a+a)%a}function parseX509(n){let{der:a}=pemToDer(n);return parseX509Der(a)}function parseX509Der(n){let a=parseDer(n);if(a.tag!==48||!a.children||a.children.length<3)throw Error(`Invalid X.509 certificate structure`);let S=a.children[0],C=a.children[1],N=a.children[2];if(!S.children||S.children.length<6)throw Error(`Invalid TBSCertificate structure`);let F=0;S.children[0].tag===160&&F++;let I=integerToBigInt(S.children[F].data);F++,F++;let H=parseDN(S.children[F]);F++;let W=S.children[F],K=parseAsn1Time(W.children[0]),q=parseAsn1Time(W.children[1]);F++;let Y=parseDN(S.children[F]);F++;let X=null,te=`unknown`;if(F<S.children.length){let n=S.children[F];try{if(n.children&&n.children.length>=2){let a=n.children[0];if(a.children&&a.children.length>=1){let S=a.children[0];S.tag===6&&oidsEqual(S.data,Aa)&&(te=`rsa`,X=parseSubjectPublicKeyInfo(n))}}}catch{}F++}let ne,re;for(let n=F;n<S.children.length;n++){let a=S.children[n];if(a.tag===163&&a.data.length>0){let n=parseDer(a.data);if(n.children){re=n.children;let a=new Uint8Array([85,29,17]);for(let S of n.children)if(S.children&&S.children.length>=2){let n=S.children[0];if(n.tag===6&&oidsEqual(n.data,a)){let n=S.children[S.children.length-1];ne=parseSAN(n.data)}}}}}let ie=`unknown`;C.children&&C.children.length>=1&&(ie=oidToName(C.children[0].data));let ae=N.tag===3?N.data.slice(1):N.data;return{raw:n,tbsCertificate:S.data,serialNumber:I,issuer:H,subject:Y,validFrom:K,validTo:q,publicKey:X,publicKeyAlgorithm:te,signatureAlgorithm:ie,signature:ae,subjectAltName:ne,extensions:re}}function decodeOidString(n){if(n.length===0)return``;let a=[];a.push(Math.floor(n[0]/40)),a.push(n[0]%40);let S=0;for(let C=1;C<n.length;C++)S=S<<7|n[C]&127,n[C]&128||(a.push(S),S=0);return a.join(`.`)}function oidToName(n){let a=decodeOidString(n);return Ma[a]||a}function parseDN(n){if(!n.children)return``;let a=[];for(let S of n.children){let n=S.tag===49?parseSequenceChildren(S.data):S.children||[];for(let S of n)if(S.children&&S.children.length>=2){let n=S.children[0].data,C=decodeOidString(n),N=ja[C]||C,F=S.children[1].data,I=new TextDecoder().decode(F);a.push(`${N}=${I}`)}}return a.join(`, `)}function parseAsn1Time(n){let a=new TextDecoder().decode(n.data);if(n.tag===23){let n=parseInt(a.substring(0,2),10);n=n>=50?1900+n:2e3+n;let S=parseInt(a.substring(2,4),10)-1,C=parseInt(a.substring(4,6),10),N=parseInt(a.substring(6,8),10),F=parseInt(a.substring(8,10),10),I=parseInt(a.substring(10,12),10);return new Date(Date.UTC(n,S,C,N,F,I))}if(n.tag===24){let n=parseInt(a.substring(0,4),10),S=parseInt(a.substring(4,6),10)-1,C=parseInt(a.substring(6,8),10),N=parseInt(a.substring(8,10),10),F=parseInt(a.substring(10,12),10),I=parseInt(a.substring(12,14),10);return new Date(Date.UTC(n,S,C,N,F,I))}throw Error(`Unsupported time tag: 0x${n.tag.toString(16)}`)}function parseSAN(n){let a=[];try{let S=parseDer(n);if(S.tag===48&&S.children){for(let n of S.children)if(n.tag===130)a.push(`DNS:`+new TextDecoder().decode(n.data));else if(n.tag===135){if(n.data.length===4)a.push(`IP Address:`+n.data.join(`.`));else if(n.data.length===16){let S=[];for(let a=0;a<16;a+=2)S.push((n.data[a]<<8|n.data[a+1]).toString(16));a.push(`IP Address:`+S.join(`:`))}}}}catch{}return a}function parsePemKey(n){let{type:a,der:S}=pemToDer(n),C=parseDer(S);if(C.tag!==48)throw Error(`Invalid key format: expected top-level SEQUENCE`);switch(a){case`RSA PUBLIC KEY`:return{type:`rsa-public`,components:parseRsaPublicKeyPkcs1(C)};case`PUBLIC KEY`:return{type:`rsa-public`,components:parseSubjectPublicKeyInfo(C)};case`RSA PRIVATE KEY`:return{type:`rsa-private`,components:parseRsaPrivateKeyPkcs1(C)};case`PRIVATE KEY`:return{type:`rsa-private`,components:parsePrivateKeyInfo(C)};default:throw Error(`Unsupported PEM type: ${a}`)}}function rsaKeySize(n){let a=0,S=n;for(;S>0n;)a++,S>>=1n;return Math.ceil(a/8)}var Aa,ja,Ma,Na=__esmMin(()=>{bt(),Aa=new Uint8Array([42,134,72,134,247,13,1,1,1]),__name$1(modInverse$1,`modInverse`),ja={"2.5.4.3":`CN`,"2.5.4.6":`C`,"2.5.4.7":`L`,"2.5.4.8":`ST`,"2.5.4.10":`O`,"2.5.4.11":`OU`,"1.2.840.113549.1.9.1":`emailAddress`},Ma={"1.2.840.113549.1.1.1":`rsaEncryption`,"1.2.840.113549.1.1.5":`sha1WithRSAEncryption`,"1.2.840.113549.1.1.11":`sha256WithRSAEncryption`,"1.2.840.113549.1.1.12":`sha384WithRSAEncryption`,"1.2.840.113549.1.1.13":`sha512WithRSAEncryption`}});function normalizeSignAlgorithm(n){let a=n.toLowerCase().replace(/-/g,``);if(a.startsWith(`rsa`)&&(a=a.slice(3)),!Pa[a])throw Error(`Unsupported algorithm: ${n}. Supported: RSA-SHA1, RSA-SHA256, RSA-SHA512`);return a}function extractPem$1(n){if(typeof n==`string`)return n;if(dt.isBuffer(n)||n instanceof Uint8Array)return dt.from(n).toString(`utf8`);if(n&&typeof n==`object`&&`key`in n){let a=n.key;if(typeof a==`string`)return a;if(dt.isBuffer(a)||a instanceof Uint8Array)return dt.from(a).toString(`utf8`)}throw TypeError(`Invalid key argument`)}function createSign(n){return new Sign(n)}function createVerify(n){return new Verify(n)}var Pa,Sign,Verify,Fa=__esmMin(()=>{Na(),oa(),Ca(),bt(),Pa={sha1:new Uint8Array([48,33,48,9,6,5,43,14,3,2,26,5,0,4,20]),sha256:new Uint8Array([48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32]),sha512:new Uint8Array([48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64])},__name$1(extractPem$1,`extractPem`),Sign=class{_algorithm;_hash;_finalized=!1;constructor(n){this._algorithm=normalizeSignAlgorithm(n),this._hash=new Sa(this._algorithm)}update(n,a){if(this._finalized)throw Error(`Sign was already finalized`);return this._hash.update(n,a),this}sign(n,a){if(this._finalized)throw Error(`Sign was already finalized`);this._finalized=!0;let S=this._hash.digest(),C=parsePemKey(extractPem$1(n));if(C.type!==`rsa-private`)throw Error(`privateKey must be an RSA private key`);let{n:N,d:F}=C.components,I=rsaKeySize(N),H=Pa[this._algorithm],W=new Uint8Array(H.length+S.length);W.set(H,0),W.set(S,H.length);let K=I-W.length-3;if(K<8)throw Error(`Key is too short for the specified hash algorithm`);let q=new Uint8Array(I);q[0]=0,q[1]=1;for(let n=2;n<2+K;n++)q[n]=255;q[2+K]=0,q.set(W,3+K);let Y=bigIntToBytes(modPow(bytesToBigInt(q),F,N),I),X=dt.from(Y);return a?X.toString(a):X}},Verify=class{_algorithm;_hash;_finalized=!1;constructor(n){this._algorithm=normalizeSignAlgorithm(n),this._hash=new Sa(this._algorithm)}update(n,a){if(this._finalized)throw Error(`Verify was already finalized`);return this._hash.update(n,a),this}verify(n,a,S){if(this._finalized)throw Error(`Verify was already finalized`);this._finalized=!0;let C=this._hash.digest(),N=parsePemKey(extractPem$1(n)),F,I;if(N.type===`rsa-public`)F=N.components.n,I=N.components.e;else if(N.type===`rsa-private`)F=N.components.n,I=N.components.e;else throw Error(`publicKey must be an RSA public or private key`);let H=rsaKeySize(F),W;if(W=typeof a==`string`?dt.from(a,S||`base64`):a instanceof Uint8Array?a:dt.from(a),W.length!==H)return!1;let K=bytesToBigInt(W);if(K>=F)return!1;let q=bigIntToBytes(modPow(K,I,F),H);if(q[0]!==0||q[1]!==1)return!1;let Y=2;for(;Y<q.length&&q[Y]===255;)Y++;if(Y>=q.length||q[Y]!==0||Y-2<8)return!1;Y++;let X=q.slice(Y),te=Pa[this._algorithm],ne=new Uint8Array(te.length+C.length);if(ne.set(te,0),ne.set(C,te.length),X.length!==ne.length)return!1;let re=0;for(let n=0;n<X.length;n++)re|=X[n]^ne[n];return re===0}}});function extractPem(n){if(typeof n==`string`)return n;if(dt.isBuffer(n)||n instanceof Uint8Array)return dt.from(n).toString(`utf8`);if(n&&typeof n==`object`&&`key`in n){let a=n.key;if(typeof a==`string`)return a;if(dt.isBuffer(a)||a instanceof Uint8Array)return dt.from(a).toString(`utf8`)}throw TypeError(`Invalid key argument`)}function pkcs1v15Type2Pad(n,a){let S=a-11;if(n.length>S)throw Error(`Data too long for key size. Max ${S} bytes, got ${n.length}`);let C=a-n.length-3,N=new Uint8Array(a);N[0]=0,N[1]=2;let F=randomBytes(C);for(let n=0;n<C;n++){for(;F[n]===0;)F[n]=randomBytes(1)[0];N[2+n]=F[n]}return N[2+C]=0,N.set(n,3+C),N}function pkcs1v15Type1Pad(n,a){let S=a-11;if(n.length>S)throw Error(`Data too long for key size. Max ${S} bytes, got ${n.length}`);let C=a-n.length-3,N=new Uint8Array(a);N[0]=0,N[1]=1;for(let n=2;n<2+C;n++)N[n]=255;return N[2+C]=0,N.set(n,3+C),N}function pkcs1v15Type2Unpad(n){if(n.length<11)throw Error(`Decryption error: message too short`);if(n[0]!==0||n[1]!==2)throw Error(`Decryption error: invalid padding`);let a=2;for(;a<n.length&&n[a]!==0;)a++;if(a>=n.length||a<10)throw Error(`Decryption error: invalid padding`);return n.slice(a+1)}function pkcs1v15Type1Unpad(n){if(n.length<11)throw Error(`Decryption error: message too short`);if(n[0]!==0||n[1]!==1)throw Error(`Decryption error: invalid padding`);let a=2;for(;a<n.length&&n[a]===255;)a++;if(a>=n.length||n[a]!==0||a<10)throw Error(`Decryption error: invalid padding`);return n.slice(a+1)}function publicEncrypt(n,a){let S=parsePemKey(extractPem(n)),C,N;if(S.type===`rsa-public`)C=S.components.n,N=S.components.e;else if(S.type===`rsa-private`)C=S.components.n,N=S.components.e;else throw Error(`Key must be an RSA public or private key`);let F=rsaKeySize(C),I=modPow(bytesToBigInt(pkcs1v15Type2Pad(a instanceof Uint8Array?a:dt.from(a),F)),N,C);return dt.from(bigIntToBytes(I,F))}function privateDecrypt(n,a){let S=parsePemKey(extractPem(n));if(S.type!==`rsa-private`)throw Error(`Key must be an RSA private key`);let{n:C,d:N}=S.components,F=rsaKeySize(C),I=a instanceof Uint8Array?a:dt.from(a);if(I.length!==F)throw Error(`Data length (${I.length}) does not match key length (${F})`);let H=bytesToBigInt(I);if(H>=C)throw Error(`Decryption error: cipher value out of range`);let W=bigIntToBytes(modPow(H,N,C),F);return dt.from(pkcs1v15Type2Unpad(W))}function privateEncrypt(n,a){let S=parsePemKey(extractPem(n));if(S.type!==`rsa-private`)throw Error(`Key must be an RSA private key`);let{n:C,d:N}=S.components,F=rsaKeySize(C),I=modPow(bytesToBigInt(pkcs1v15Type1Pad(a instanceof Uint8Array?a:dt.from(a),F)),N,C);return dt.from(bigIntToBytes(I,F))}function publicDecrypt(n,a){let S=parsePemKey(extractPem(n)),C,N;if(S.type===`rsa-public`)C=S.components.n,N=S.components.e;else if(S.type===`rsa-private`)C=S.components.n,N=S.components.e;else throw Error(`Key must be an RSA public or private key`);let F=rsaKeySize(C),I=a instanceof Uint8Array?a:dt.from(a);if(I.length!==F)throw Error(`Data length (${I.length}) does not match key length (${F})`);let H=bytesToBigInt(I);if(H>=C)throw Error(`Decryption error: cipher value out of range`);let W=bigIntToBytes(modPow(H,N,C),F);return dt.from(pkcs1v15Type1Unpad(W))}var Ia=__esmMin(()=>{Na(),oa(),aa(),bt()});function mgf1(n,a,S){let C=new Uint8Array(S),N=0,F=0;for(;N<S;){let I=new Uint8Array(4);I[0]=F>>>24&255,I[1]=F>>>16&255,I[2]=F>>>8&255,I[3]=F&255;let H=new Sa(n);H.update(a),H.update(I);let W=new Uint8Array(H.digest()),K=Math.min(W.length,S-N);C.set(W.slice(0,K),N),N+=K,F++}return C}var La=__esmMin(()=>{Ca()});function hashDigest$1(n,a){let S=new Sa(n);return S.update(a),new Uint8Array(S.digest())}function emsaPssEncode(n,a,S,C){let N=hashSize(S),F=Math.ceil(a/8);if(F<N+C+2)throw Error(`RSA-PSS: encoding error — key too short`);let I=C>0?new Uint8Array(randomBytes(C)):new Uint8Array,H=new Uint8Array(8+N+C);H.set(n,8),H.set(I,8+N);let W=hashDigest$1(S,H),K=F-N-1,q=new Uint8Array(K);q[K-C-1]=1,q.set(I,K-C);let Y=mgf1(S,W,K),X=new Uint8Array(K);for(let n=0;n<K;n++)X[n]=q[n]^Y[n];let te=8*F-a;te>0&&(X[0]&=255>>>te);let ne=new Uint8Array(F);return ne.set(X,0),ne.set(W,K),ne[F-1]=188,ne}function emsaPssVerify(n,a,S,C,N){let F=hashSize(C),I=Math.ceil(S/8);if(I<F+N+2||a[I-1]!==188)return!1;let H=I-F-1,W=a.slice(0,H),K=a.slice(H,H+F),q=8*I-S;if(q>0&&W[0]&255<<8-q)return!1;let Y=mgf1(C,K,H),X=new Uint8Array(H);for(let n=0;n<H;n++)X[n]=W[n]^Y[n];q>0&&(X[0]&=255>>>q);for(let n=0;n<H-N-1;n++)if(X[n]!==0)return!1;if(X[H-N-1]!==1)return!1;let te=X.slice(H-N),ne=new Uint8Array(8+F+N);ne.set(n,8),ne.set(te,8+F);let re=hashDigest$1(C,ne);if(K.length!==re.length)return!1;let ie=0;for(let n=0;n<K.length;n++)ie|=K[n]^re[n];return ie===0}function rsaPssSign(n,a,S,C){let N=parsePemKey(a);if(N.type!==`rsa-private`)throw Error(`RSA-PSS: expected RSA private key`);let{n:F,d:I}=N.components,H=rsaKeySize(F),W=Math.ceil(H/8);return bigIntToBytes(modPow(bytesToBigInt(emsaPssEncode(hashDigest$1(n,S),H-1,n,C)),I,F),W)}function rsaPssVerify(n,a,S,C,N){let F=parsePemKey(a),I,H;if(F.type===`rsa-public`)({n:I,e:H}=F.components);else if(F.type===`rsa-private`)({n:I,e:H}=F.components);else throw Error(`RSA-PSS: expected RSA key`);let W=rsaKeySize(I),K=Math.ceil(W/8);if(S.length!==K)return!1;let q=bigIntToBytes(modPow(bytesToBigInt(S),H,I),Math.ceil((W-1)/8));return emsaPssVerify(hashDigest$1(n,C),q,W-1,n,N)}var Ra=__esmMin(()=>{Na(),oa(),ba(),aa(),Ca(),La(),__name$1(hashDigest$1,`hashDigest`)});function hashDigest(n,a){let S=new Sa(n);return S.update(a),new Uint8Array(S.digest())}function rsaOaepEncrypt(n,a,S,C){let N=parsePemKey(a),F,I;if(N.type===`rsa-public`)({n:F,e:I}=N.components);else if(N.type===`rsa-private`)({n:F,e:I}=N.components);else throw Error(`RSA-OAEP: expected RSA key`);let H=Math.ceil(rsaKeySize(F)/8),W=hashSize(n);if(S.length>H-2*W-2)throw Error(`RSA-OAEP: message too long`);let K=hashDigest(n,C||new Uint8Array),q=H-W-1,Y=new Uint8Array(q);Y.set(K,0),Y[q-S.length-1]=1,Y.set(S,q-S.length);let X=new Uint8Array(randomBytes(W)),te=mgf1(n,X,q),ne=new Uint8Array(q);for(let n=0;n<q;n++)ne[n]=Y[n]^te[n];let re=mgf1(n,ne,W),ie=new Uint8Array(W);for(let n=0;n<W;n++)ie[n]=X[n]^re[n];let ae=new Uint8Array(H);return ae[0]=0,ae.set(ie,1),ae.set(ne,1+W),bigIntToBytes(modPow(bytesToBigInt(ae),I,F),H)}function rsaOaepDecrypt(n,a,S,C){let N=parsePemKey(a);if(N.type!==`rsa-private`)throw Error(`RSA-OAEP: expected RSA private key`);let{n:F,d:I}=N.components,H=Math.ceil(rsaKeySize(F)/8),W=hashSize(n);if(S.length!==H||H<2*W+2)throw Error(`RSA-OAEP: decryption error`);let K=bigIntToBytes(modPow(bytesToBigInt(S),I,F),H),q=K[0],Y=K.slice(1,1+W),X=K.slice(1+W),te=H-W-1,ne=mgf1(n,X,W),re=new Uint8Array(W);for(let n=0;n<W;n++)re[n]=Y[n]^ne[n];let ie=mgf1(n,re,te),ae=new Uint8Array(te);for(let n=0;n<te;n++)ae[n]=X[n]^ie[n];let oe=hashDigest(n,C||new Uint8Array),Z=ae.slice(0,W),se=+(q===0);for(let n=0;n<W;n++)se&=+(oe[n]===Z[n]);let ce=-1;for(let n=W;n<te;n++)if(ae[n]===1){ce=n;break}else if(ae[n]!==0){se=0;break}if(ce===-1&&(se=0),!se)throw Error(`RSA-OAEP: decryption error`);return ae.slice(ce+1)}var za=__esmMin(()=>{Na(),oa(),ba(),aa(),Ca(),La()});function bigintToBase64url(n){if(n===0n)return`AA`;let a=n.toString(16),S=a.length%2?`0`+a:a,C=[];for(let n=0;n<S.length;n+=2)C.push(parseInt(S.substring(n,n+2),16));return dt.from(C).toString(`base64url`)}function base64urlToBigint(n){let a=dt.from(n,`base64url`),S=0n;for(let n=0;n<a.length;n++)S=S<<8n|BigInt(a[n]);return S}function exportJwk(n,a){if(n.type===`rsa-public`)return{kty:`RSA`,n:bigintToBase64url(n.components.n),e:bigintToBase64url(n.components.e)};if(n.type===`rsa-private`){if(a===`public`)return{kty:`RSA`,n:bigintToBase64url(n.components.n),e:bigintToBase64url(n.components.e)};let{n:S,e:C,d:N,p:F,q:I}=n.components,H=N%(F-1n),W=N%(I-1n),K=modInverse(I,F);return{kty:`RSA`,n:bigintToBase64url(S),e:bigintToBase64url(C),d:bigintToBase64url(N),p:bigintToBase64url(F),q:bigintToBase64url(I),dp:bigintToBase64url(H),dq:bigintToBase64url(W),qi:bigintToBase64url(K)}}throw Error(`Unsupported key type for JWK export`)}function importJwkRsa(n){if(n.d){let a={n:base64urlToBigint(n.n),e:base64urlToBigint(n.e),d:base64urlToBigint(n.d),p:base64urlToBigint(n.p),q:base64urlToBigint(n.q)};return{parsed:{type:`rsa-private`,components:a},pem:derToPem(encodeRsaPrivateKeyPkcs1(a),`RSA PRIVATE KEY`)}}let a={n:base64urlToBigint(n.n),e:base64urlToBigint(n.e)};return{parsed:{type:`rsa-public`,components:a},pem:derToPem(encodeSubjectPublicKeyInfo(a),`PUBLIC KEY`)}}function generatePem(n,a,S){if(n.type===`rsa-public`)return S===`pkcs1`?derToPem(encodeRsaPublicKeyPkcs1(n.components),`RSA PUBLIC KEY`):derToPem(encodeSubjectPublicKeyInfo(n.components),`PUBLIC KEY`);if(n.type===`rsa-private`&&a===`public`){let a={n:n.components.n,e:n.components.e};return S===`pkcs1`?derToPem(encodeRsaPublicKeyPkcs1(a),`RSA PUBLIC KEY`):derToPem(encodeSubjectPublicKeyInfo(a),`PUBLIC KEY`)}if(n.type===`rsa-private`)return S===`pkcs8`?derToPem(encodePrivateKeyInfo(n.components),`PRIVATE KEY`):derToPem(encodeRsaPrivateKeyPkcs1(n.components),`RSA PRIVATE KEY`);throw Error(`Cannot generate PEM for this key type`)}function generateDer(n,a,S){if(n.type===`rsa-public`)return S===`pkcs1`?dt.from(encodeRsaPublicKeyPkcs1(n.components)):dt.from(encodeSubjectPublicKeyInfo(n.components));if(n.type===`rsa-private`&&a===`public`){let a={n:n.components.n,e:n.components.e};return S===`pkcs1`?dt.from(encodeRsaPublicKeyPkcs1(a)):dt.from(encodeSubjectPublicKeyInfo(a))}if(n.type===`rsa-private`)return S===`pkcs8`?dt.from(encodePrivateKeyInfo(n.components)):dt.from(encodeRsaPrivateKeyPkcs1(n.components));throw Error(`Cannot generate DER for this key type`)}function modInverse(n,a){let[S,C]=[n%a,a],[N,F]=[1n,0n];for(;C!==0n;){let n=S/C;[S,C]=[C,S-n*C],[N,F]=[F,N-n*F]}return(N%a+a)%a}function createSecretKey(n,a){let S;return S=typeof n==`string`?dt.from(n,a??`utf8`):new Uint8Array(n),new Ba(`secret`,S)}function createPublicKey(n){if(n instanceof Ba){if(n.type===`public`)return n;if(n.type===`private`){let a=n._handle;if(a.parsed.type===`rsa-private`){let n={n:a.parsed.components.n,e:a.parsed.components.e};return new Ba(`public`,{parsed:{type:`rsa-public`,components:n},pem:derToPem(encodeSubjectPublicKeyInfo(n),`PUBLIC KEY`)})}}throw TypeError(`Cannot create public key from secret key`)}if(typeof n==`object`&&!dt.isBuffer(n)&&`key`in n){let a=n;if(a.format===`jwk`){let n=a.key;if(n.kty===`RSA`){let{parsed:a,pem:S}=importJwkRsa({n:n.n,e:n.e});return new Ba(`public`,{parsed:a,pem:S})}throw Error(`Unsupported JWK key type: ${n.kty}`)}}let a=normalizePem(n),S=parsePemKey(a);if(S.type===`rsa-private`){let n={n:S.components.n,e:S.components.e};return new Ba(`public`,{parsed:{type:`rsa-public`,components:n},pem:derToPem(encodeSubjectPublicKeyInfo(n),`PUBLIC KEY`)})}return new Ba(`public`,{parsed:S,pem:a})}function createPrivateKey(n){if(typeof n==`object`&&!dt.isBuffer(n)&&`key`in n){let a=n;if(a.format===`jwk`){let n=a.key;if(n.kty===`RSA`&&n.d){let{parsed:a,pem:S}=importJwkRsa(n);return new Ba(`private`,{parsed:a,pem:S})}throw Error(`JWK does not contain a private key`)}}let a=normalizePem(n),S=parsePemKey(a);if(S.type!==`rsa-private`)throw TypeError(`Key is not a private key`);return new Ba(`private`,{parsed:S,pem:a})}function normalizePem(n){if(typeof n==`string`)return n;if(dt.isBuffer(n))return n.toString(`utf8`);if(n&&typeof n==`object`&&`key`in n){let a=n;if(typeof a.key==`string`)return a.key;if(dt.isBuffer(a.key))return a.key.toString(a.encoding??`utf8`);if(a.key instanceof Ba)return a.key.export({format:`pem`})}throw TypeError(`Invalid key input`)}var Ba,Va=__esmMin(()=>{Na(),bt(),Ba=class KeyObject{type;_handle;constructor(n,a){if(n!==`secret`&&n!==`public`&&n!==`private`)throw TypeError(`Invalid KeyObject type: ${n}`);this.type=n,this._handle=a}get symmetricKeySize(){if(this.type===`secret`)return this._handle.byteLength}get asymmetricKeyType(){if(this.type===`secret`)return;let n=this._handle;if(n.parsed.type===`rsa-public`||n.parsed.type===`rsa-private`)return`rsa`}get asymmetricKeySize(){if(this.type===`secret`)return;let n=this._handle;if(n.parsed.type===`rsa-public`||n.parsed.type===`rsa-private`)return rsaKeySize(n.parsed.components.n)/8}equals(n){if(!(n instanceof KeyObject)||this.type!==n.type)return!1;if(this.type===`secret`){let a=this._handle,S=n._handle;if(a.byteLength!==S.byteLength)return!1;for(let n=0;n<a.byteLength;n++)if(a[n]!==S[n])return!1;return!0}let a=this._handle,S=n._handle;return a.pem===S.pem}export(n){if(this.type===`secret`){let a=this._handle;return n?.format===`jwk`?{kty:`oct`,k:dt.from(a).toString(`base64url`)}:dt.from(a)}let a=this._handle,S=n?.format??`pem`,C=n?.type;if(S===`jwk`)return exportJwk(a.parsed,this.type);if(S===`pem`)return a.pem&&!a.pem.startsWith(`[`)?a.pem:generatePem(a.parsed,this.type,C);if(S===`der`){if(a.pem&&!a.pem.startsWith(`[`)){let n=a.pem.trim().split(/\r?\n/),S=n.findIndex(n=>n.startsWith(`-----BEGIN `)),C=n.findIndex((n,a)=>a>S&&n.startsWith(`-----END `)),N=n.slice(S+1,C).join(``);return dt.from(N,`base64`)}return generateDer(a.parsed,this.type,C)}throw TypeError(`Unsupported export format: ${S}`)}get[Symbol.toStringTag](){return`KeyObject`}}});function formatFingerprint(n){let a=n.toString(`hex`).toUpperCase(),S=[];for(let n=0;n<a.length;n+=2)S.push(a.substring(n,n+2));return S.join(`:`)}function matchHostname(n,a){let S=n.toLowerCase(),C=a.toLowerCase();if(S===C)return!0;if(S.startsWith(`*.`)){let n=S.substring(2),a=C.split(`.`);if(a.length>=2)return a.slice(1).join(`.`)===n}return!1}function parseDNToObject(n){let a={},S=n.split(`, `);for(let n of S){let S=n.indexOf(`=`);S>0&&(a[n.substring(0,S)]=n.substring(S+1))}return a}var X509Certificate,Ha=__esmMin(()=>{Na(),Va(),Ga(),bt(),X509Certificate=class{_components;_pem;constructor(n){if(typeof n==`string`)this._pem=n,this._components=parseX509(n);else{let a=dt.isBuffer(n)?n:dt.from(n),S=a.toString(`utf8`);S.includes(`-----BEGIN CERTIFICATE-----`)?(this._pem=S,this._components=parseX509(S)):(this._components=parseX509Der(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)),this._pem=derToPem(this._components.raw,`CERTIFICATE`))}}get raw(){return dt.from(this._components.raw)}get serialNumber(){return this._components.serialNumber.toString(16).toUpperCase()}get subject(){return this._components.subject}get issuer(){return this._components.issuer}get validFrom(){return this._components.validFrom.toUTCString()}get validTo(){return this._components.validTo.toUTCString()}get fingerprint(){return formatFingerprint(createHash(`sha1`).update(this._components.raw).digest())}get fingerprint256(){return formatFingerprint(createHash(`sha256`).update(this._components.raw).digest())}get fingerprint512(){return formatFingerprint(createHash(`sha512`).update(this._components.raw).digest())}get publicKey(){if(!this._components.publicKey)throw Error(`Certificate does not contain a supported public key type`);let n=derToPem(encodeSubjectPublicKeyInfo(this._components.publicKey),`PUBLIC KEY`);return new Ba(`public`,{parsed:{type:`rsa-public`,components:this._components.publicKey},pem:n})}get subjectAltName(){if(!(!this._components.subjectAltName||this._components.subjectAltName.length===0))return this._components.subjectAltName.join(`, `)}get keyUsage(){}get infoAccess(){}get ca(){return!1}checkHost(n){let a=this._components.subject.match(/CN=([^,]+)/);if(a){let S=a[1].trim();if(matchHostname(S,n))return S}if(this._components.subjectAltName){for(let a of this._components.subjectAltName)if(a.startsWith(`DNS:`)){let S=a.substring(4);if(matchHostname(S,n))return S}}}checkEmail(n){let a=n.toLowerCase(),S=this._components.subject.match(/emailAddress=([^,]+)/);if(S&&S[1].toLowerCase()===a)return S[1]}checkIP(n){if(this._components.subjectAltName){for(let a of this._components.subjectAltName)if(a.startsWith(`IP Address:`)&&a.substring(11)===n)return n}}verify(n){return!0}checkIssued(n){return this.issuer===n.subject}toLegacyObject(){return{subject:parseDNToObject(this._components.subject),issuer:parseDNToObject(this._components.issuer),valid_from:this.validFrom,valid_to:this.validTo,serialNumber:this.serialNumber,fingerprint:this.fingerprint,fingerprint256:this.fingerprint256}}toString(){return this._pem}toJSON(){return this._pem}get[Symbol.toStringTag](){return`X509Certificate`}}}),Ua=__exportAll$3({DiffieHellman:()=>DiffieHellman,DiffieHellmanGroup:()=>fa,Hash:()=>Sa,Hmac:()=>Hmac,KeyObject:()=>Ba,Sign:()=>Sign,Verify:()=>Verify,X509Certificate:()=>X509Certificate,constants:()=>na,createCipher:()=>createCipher,createCipheriv:()=>createCipheriv,createDecipher:()=>createDecipher,createDecipheriv:()=>createDecipheriv,createDiffieHellman:()=>createDiffieHellman,createDiffieHellmanGroup:()=>da,createECDH:()=>createECDH,createHash:()=>createHash,createHmac:()=>createHmac,createPrivateKey:()=>createPrivateKey,createPublicKey:()=>createPublicKey,createSecretKey:()=>createSecretKey,createSign:()=>createSign,createVerify:()=>createVerify,default:()=>Wa,ecdsaSign:()=>ecdsaSign,ecdsaVerify:()=>ecdsaVerify,getCiphers:()=>getCiphers,getCurves:()=>getCurves,getDiffieHellman:()=>getDiffieHellman,getHashes:()=>getHashes,hash:()=>hash,hkdf:()=>hkdf,hkdfSync:()=>hkdfSync,mgf1:()=>mgf1,pbkdf2:()=>pbkdf2,pbkdf2Sync:()=>pbkdf2Sync,privateDecrypt:()=>privateDecrypt,privateEncrypt:()=>privateEncrypt,publicDecrypt:()=>publicDecrypt,publicEncrypt:()=>publicEncrypt,randomBytes:()=>randomBytes,randomFill:()=>randomFill,randomFillSync:()=>randomFillSync,randomInt:()=>randomInt,randomUUID:()=>randomUUID,rsaOaepDecrypt:()=>rsaOaepDecrypt,rsaOaepEncrypt:()=>rsaOaepEncrypt,rsaPssSign:()=>rsaPssSign,rsaPssVerify:()=>rsaPssVerify,scrypt:()=>scrypt,scryptSync:()=>scryptSync,timingSafeEqual:()=>timingSafeEqual});function createHash(n){return new Sa(n)}function createHmac(n,a){return new Hmac(n,a)}var Wa,Ga=__esmMin(()=>{ta(),ra(),aa(),pa(),ga(),Ca(),wa(),Ta(),Ea(),Da(),Oa(),ka(),Fa(),Ia(),La(),Ra(),za(),Va(),Ha(),Wa={Hash:Sa,getHashes,hash,Hmac,randomBytes,randomFill,randomFillSync,randomUUID,randomInt,timingSafeEqual,constants:na,pbkdf2,pbkdf2Sync,hkdf,hkdfSync,scrypt,scryptSync,createHash,createHmac,createCipher,createCipheriv,createDecipher,createDecipheriv,getCiphers,Sign,Verify,createSign,createVerify,createDiffieHellman,getDiffieHellman,DiffieHellman,DiffieHellmanGroup:fa,createDiffieHellmanGroup:da,createECDH,getCurves,ecdsaSign,ecdsaVerify,publicEncrypt,privateDecrypt,privateEncrypt,publicDecrypt,rsaPssSign,rsaPssVerify,rsaOaepEncrypt,rsaOaepDecrypt,mgf1,KeyObject:Ba,createSecretKey,createPublicKey,createPrivateKey,X509Certificate}});let Ka=!1,qa,Ja,Ya,Xa,Za,Qa,$a,eo,to,no,ro,io,ao,oo,so,co;async function loadCrypto(){if(Ka)return;let n=await Promise.resolve().then(()=>(Ga(),Ua));qa=n.createHash,Ja=n.createHmac,Ya=n.createCipheriv,Xa=n.createDecipheriv,Za=n.createSign,Qa=n.createVerify,$a=n.pbkdf2Sync,eo=n.hkdfSync,to=n.createECDH,no=n.randomBytes,n.publicEncrypt,n.privateDecrypt,n.createPublicKey,n.createPrivateKey,ro=n.ecdsaSign,io=n.ecdsaVerify,ao=n.rsaPssSign,oo=n.rsaPssVerify,so=n.rsaOaepEncrypt,co=n.rsaOaepDecrypt,Ka=!0}const lo=loadCrypto();var SubtleCrypto=class{async digest(n,a){await lo;let S=toNodeHashName(normalizeAlgorithm$1(n).name),C=toUint8Array(a),N=qa(S);N.update(C);let F=N.digest();return F.buffer.slice(F.byteOffset,F.byteOffset+F.byteLength)}async generateKey(n,a,S){await lo;let C=normalizeAlgorithm$1(n);switch(C.name.toUpperCase()){case`AES-CBC`:case`AES-CTR`:case`AES-GCM`:{let N=n.length;if(![128,192,256].includes(N))throw new DOMException(`Invalid AES key length: ${N}`,`OperationError`);validateUsages(S,[`encrypt`,`decrypt`,`wrapKey`,`unwrapKey`]);let F=no(N/8);return new CryptoKey(`secret`,a,{name:C.name,length:N},S,new Uint8Array(F))}case`HMAC`:{let C=n,N=normalizeAlgorithm$1(C.hash),F=C.length||hashSize$1(N.name)*8;validateUsages(S,[`sign`,`verify`]);let I=no(Math.ceil(F/8));return new CryptoKey(`secret`,a,{name:`HMAC`,hash:{name:N.name},length:F},S,new Uint8Array(I))}case`ECDH`:{let C=n.namedCurve,N=toNodeCurveName(C);validateUsages(S,[`deriveKey`,`deriveBits`]);let F=to(N);F.generateKeys();let I=new Uint8Array(F.getPublicKey()),H=new Uint8Array(F.getPrivateKey());return{publicKey:new CryptoKey(`public`,!0,{name:`ECDH`,namedCurve:C},[],I),privateKey:new CryptoKey(`private`,a,{name:`ECDH`,namedCurve:C},S,{pub:I,priv:H})}}case`ECDSA`:{let C=n.namedCurve,N=toNodeCurveName(C);validateUsages(S,[`sign`,`verify`]);let F=to(N);F.generateKeys();let I=new Uint8Array(F.getPublicKey()),H=new Uint8Array(F.getPrivateKey());return{publicKey:new CryptoKey(`public`,!0,{name:`ECDSA`,namedCurve:C},[`verify`],I),privateKey:new CryptoKey(`private`,a,{name:`ECDSA`,namedCurve:C},[`sign`],{pub:I,priv:H})}}default:throw new DOMException(`Unsupported algorithm: ${C.name}`,`NotSupportedError`)}}async importKey(n,a,S,C,N){await lo;let F=normalizeAlgorithm$1(S),I=F.name.toUpperCase();switch(I){case`AES-CBC`:case`AES-CTR`:case`AES-GCM`:if(n===`raw`){let n=toUint8Array(a);if(![16,24,32].includes(n.length))throw new DOMException(`Invalid AES key length: ${n.length*8}`,`DataError`);return validateUsages(N,[`encrypt`,`decrypt`,`wrapKey`,`unwrapKey`]),new CryptoKey(`secret`,C,{name:F.name,length:n.length*8},N,new Uint8Array(n))}if(n===`jwk`){let n=a;if(n.kty!==`oct`)throw new DOMException(`JWK kty must be "oct"`,`DataError`);let S=base64urlDecode(n.k);if(![16,24,32].includes(S.length))throw new DOMException(`Invalid AES key length: ${S.length*8}`,`DataError`);return validateUsages(N,[`encrypt`,`decrypt`,`wrapKey`,`unwrapKey`]),new CryptoKey(`secret`,C,{name:F.name,length:S.length*8},N,S)}throw new DOMException(`Unsupported format: ${n}`,`NotSupportedError`);case`HMAC`:{let F=normalizeAlgorithm$1(S.hash);if(n===`raw`){let n=toUint8Array(a);return validateUsages(N,[`sign`,`verify`]),new CryptoKey(`secret`,C,{name:`HMAC`,hash:{name:F.name},length:n.length*8},N,new Uint8Array(n))}if(n===`jwk`){let n=a;if(n.kty!==`oct`)throw new DOMException(`JWK kty must be "oct"`,`DataError`);let S=base64urlDecode(n.k);return validateUsages(N,[`sign`,`verify`]),new CryptoKey(`secret`,C,{name:`HMAC`,hash:{name:F.name},length:S.length*8},N,S)}throw new DOMException(`Unsupported format: ${n}`,`NotSupportedError`)}case`PBKDF2`:if(n===`raw`){let n=toUint8Array(a);return validateUsages(N,[`deriveKey`,`deriveBits`]),new CryptoKey(`secret`,!1,{name:`PBKDF2`},N,new Uint8Array(n))}throw new DOMException(`Unsupported format: ${n}`,`NotSupportedError`);case`HKDF`:if(n===`raw`){let n=toUint8Array(a);return validateUsages(N,[`deriveKey`,`deriveBits`]),new CryptoKey(`secret`,!1,{name:`HKDF`},N,new Uint8Array(n))}throw new DOMException(`Unsupported format: ${n}`,`NotSupportedError`);case`ECDH`:case`ECDSA`:{let H=S.namedCurve;if(n===`raw`){let n=toUint8Array(a);return I===`ECDH`?N.length>0&&validateUsages(N,[`deriveKey`,`deriveBits`]):validateUsages(N,[`verify`]),new CryptoKey(`public`,C,{name:F.name,namedCurve:H},N,new Uint8Array(n))}if(n===`jwk`){let n=a;if(n.kty!==`EC`)throw new DOMException(`JWK kty must be "EC"`,`DataError`);if(n.d){let a=base64urlDecode(n.d),S=base64urlDecode(n.x),W=base64urlDecode(n.y),K=new Uint8Array(1+S.length+W.length);return K[0]=4,K.set(S,1),K.set(W,1+S.length),validateUsages(N,I===`ECDH`?[`deriveKey`,`deriveBits`]:[`sign`]),new CryptoKey(`private`,C,{name:F.name,namedCurve:H},N,{pub:K,priv:a})}else{let a=base64urlDecode(n.x),S=base64urlDecode(n.y),W=new Uint8Array(1+a.length+S.length);return W[0]=4,W.set(a,1),W.set(S,1+a.length),I===`ECDH`?N.length>0&&validateUsages(N,[`deriveKey`,`deriveBits`]):validateUsages(N,[`verify`]),new CryptoKey(`public`,C,{name:F.name,namedCurve:H},N,W)}}throw new DOMException(`Unsupported format: ${n}`,`NotSupportedError`)}default:throw new DOMException(`Unsupported algorithm: ${F.name}`,`NotSupportedError`)}}async exportKey(n,a){if(!a.extractable)throw new DOMException(`Key is not extractable`,`InvalidAccessError`);let S=a.algorithm.name.toUpperCase();if(n===`raw`){if(a.type===`secret`){let n=a._handle;return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength)}if(a.type===`public`&&(S===`ECDH`||S===`ECDSA`)){let n=a._handle;return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength)}throw new DOMException(`Cannot export in raw format`,`InvalidAccessError`)}if(n===`jwk`){if(a.type===`secret`){let n=a._handle,C={kty:`oct`,k:base64urlEncode(n),ext:a.extractable,key_ops:[...a.usages]};return S.startsWith(`AES-`)?C.alg=`A${a.algorithm.length}${S.replace(`AES-`,``)}`:S===`HMAC`&&(C.alg=`HS${a.algorithm.hash.name.replace(`SHA-`,``)}`),C}if((S===`ECDH`||S===`ECDSA`)&&(a.type===`public`||a.type===`private`)){let n=a.algorithm.namedCurve,S;S=a.type===`public`?a._handle:a._handle.pub;let C=(S.length-1)/2,N=S.slice(1,1+C),F=S.slice(1+C),I={kty:`EC`,crv:n,x:base64urlEncode(N),y:base64urlEncode(F),ext:a.extractable,key_ops:[...a.usages]};return a.type===`private`&&(I.d=base64urlEncode(a._handle.priv)),I}throw new DOMException(`JWK export not supported for ${S} ${a.type}`,`NotSupportedError`)}throw new DOMException(`Unsupported export format: ${n}`,`NotSupportedError`)}async encrypt(n,a,S){await lo,checkUsage(a,`encrypt`);let C=normalizeAlgorithm$1(n),N=C.name.toUpperCase(),F=toUint8Array(S);switch(N){case`AES-CBC`:{let S=toUint8Array(n.iv),C=a._handle,N=C.length*8,I=Ya(`aes-${N}-cbc`,C,S),H=I.update(F),W=I.final(),K=new Uint8Array(H.length+W.length);return K.set(new Uint8Array(H),0),K.set(new Uint8Array(W),H.length),K.buffer}case`AES-CTR`:{let S=toUint8Array(n.counter),C=a._handle,N=C.length*8,I=Ya(`aes-${N}-ctr`,C,S),H=I.update(F),W=I.final(),K=new Uint8Array(H.length+W.length);return K.set(new Uint8Array(H),0),K.set(new Uint8Array(W),H.length),K.buffer}case`AES-GCM`:{let S=n,C=toUint8Array(S.iv),N=S.additionalData?toUint8Array(S.additionalData):void 0,I=a._handle,H=I.length*8,W=Ya(`aes-${H}-gcm`,I,C);N&&W.setAAD(N);let K=W.update(F),q=W.final(),Y=W.getAuthTag(),X=new Uint8Array(K.length+q.length+Y.length);return X.set(new Uint8Array(K),0),X.set(new Uint8Array(q),K.length),X.set(new Uint8Array(Y),K.length+q.length),X.buffer}case`RSA-OAEP`:{let S=a.algorithm.hash.name,C=toNodeHashName(S),N=a._handle,I=n,H=I.label?toUint8Array(I.label):void 0,W=so(C,N.pem,F,H);return W.buffer.slice(W.byteOffset,W.byteOffset+W.byteLength)}default:throw new DOMException(`Unsupported algorithm: ${C.name}`,`NotSupportedError`)}}async decrypt(n,a,S){await lo,checkUsage(a,`decrypt`);let C=normalizeAlgorithm$1(n),N=C.name.toUpperCase(),F=toUint8Array(S);switch(N){case`AES-CBC`:{let S=toUint8Array(n.iv),C=a._handle,N=C.length*8,I=Xa(`aes-${N}-cbc`,C,S),H=I.update(F),W=I.final(),K=new Uint8Array(H.length+W.length);return K.set(new Uint8Array(H),0),K.set(new Uint8Array(W),H.length),K.buffer}case`AES-CTR`:{let S=toUint8Array(n.counter),C=a._handle,N=C.length*8,I=Xa(`aes-${N}-ctr`,C,S),H=I.update(F),W=I.final(),K=new Uint8Array(H.length+W.length);return K.set(new Uint8Array(H),0),K.set(new Uint8Array(W),H.length),K.buffer}case`AES-GCM`:{let S=n,C=toUint8Array(S.iv),N=(S.tagLength||128)/8,I=S.additionalData?toUint8Array(S.additionalData):void 0,H=a._handle,W=H.length*8,K=F.slice(0,F.length-N),q=F.slice(F.length-N),Y=Xa(`aes-${W}-gcm`,H,C);Y.setAuthTag(q),I&&Y.setAAD(I);let X=Y.update(K),te=Y.final(),ne=new Uint8Array(X.length+te.length);return ne.set(new Uint8Array(X),0),ne.set(new Uint8Array(te),X.length),ne.buffer}case`RSA-OAEP`:{let S=a.algorithm.hash.name,C=toNodeHashName(S),N=a._handle,I=n,H=I.label?toUint8Array(I.label):void 0,W=co(C,N.pem,F,H);return W.buffer.slice(W.byteOffset,W.byteOffset+W.byteLength)}default:throw new DOMException(`Unsupported algorithm: ${C.name}`,`NotSupportedError`)}}async sign(n,a,S){await lo,checkUsage(a,`sign`);let C=normalizeAlgorithm$1(n),N=C.name.toUpperCase(),F=toUint8Array(S);switch(N){case`HMAC`:{let n=a.algorithm.hash.name,S=toNodeHashName(n),C=a._handle,N=Ja(S,C);N.update(F);let I=N.digest();return I.buffer.slice(I.byteOffset,I.byteOffset+I.byteLength)}case`RSASSA-PKCS1-V1_5`:{let n=a.algorithm.hash.name,S=toNodeHashName(n),C=a._handle,N=Za(S);N.update(F);let I=N.sign(C.pem);return I.buffer.slice(I.byteOffset,I.byteOffset+I.byteLength)}case`ECDSA`:{let S=n,C=toNodeHashName(typeof S.hash==`string`?S.hash:S.hash.name),N=a.algorithm.namedCurve,I=a._handle,H=ro(C,I.priv,F,N);return H.buffer.slice(H.byteOffset,H.byteOffset+H.byteLength)}case`RSA-PSS`:{let S=a.algorithm.hash.name,C=toNodeHashName(S),N=a._handle,I=n.saltLength??hashSize$1(S),H=ao(C,N.pem,F,I);return H.buffer.slice(H.byteOffset,H.byteOffset+H.byteLength)}default:throw new DOMException(`Unsupported algorithm: ${C.name}`,`NotSupportedError`)}}async verify(n,a,S,C){await lo,checkUsage(a,`verify`);let N=normalizeAlgorithm$1(n),F=N.name.toUpperCase(),I=toUint8Array(C),H=toUint8Array(S);switch(F){case`HMAC`:{let n=a.algorithm.hash.name,S=toNodeHashName(n),C=a._handle,N=Ja(S,C);N.update(I);let F=new Uint8Array(N.digest());if(F.length!==H.length)return!1;let W=0;for(let n=0;n<F.length;n++)W|=F[n]^H[n];return W===0}case`RSASSA-PKCS1-V1_5`:{let n=a.algorithm.hash.name,S=toNodeHashName(n),C=a._handle,N=Qa(S);return N.update(I),N.verify(C.pem,H)}case`ECDSA`:{let S=n,C=toNodeHashName(typeof S.hash==`string`?S.hash:S.hash.name),N=a.algorithm.namedCurve,F=a._handle;return io(C,F,H,I,N)}case`RSA-PSS`:{let S=a.algorithm.hash.name,C=toNodeHashName(S),N=a._handle,F=n.saltLength??hashSize$1(S);return oo(C,N.pem,H,I,F)}default:throw new DOMException(`Unsupported algorithm: ${N.name}`,`NotSupportedError`)}}async _deriveBitsInternal(n,a,S){await lo;let C=normalizeAlgorithm$1(n);switch(C.name.toUpperCase()){case`PBKDF2`:{let C=n,N=toNodeHashName(normalizeAlgorithm$1(C.hash).name),F=toUint8Array(C.salt),I=C.iterations,H=a._handle,W=$a(H,F,I,S/8,N);return W.buffer.slice(W.byteOffset,W.byteOffset+W.byteLength)}case`HKDF`:{let C=n,N=toNodeHashName(normalizeAlgorithm$1(C.hash).name),F=toUint8Array(C.salt),I=toUint8Array(C.info),H=a._handle;return eo(N,H,F,I,S/8)}case`ECDH`:{let C=n.public,N=a.algorithm.namedCurve,F=toNodeCurveName(N),I=to(F),H=a._handle;I.setPrivateKey(H.priv);let W=C._handle instanceof Uint8Array?C._handle:C._handle.pub,K=I.computeSecret(W),q=new Uint8Array(K);return S?q.buffer.slice(0,S/8):q.buffer.slice(q.byteOffset,q.byteOffset+q.byteLength)}default:throw new DOMException(`Unsupported algorithm: ${C.name}`,`NotSupportedError`)}}async deriveBits(n,a,S){return checkUsage(a,`deriveBits`),this._deriveBitsInternal(n,a,S)}async deriveKey(n,a,S,C,N){checkUsage(a,`deriveKey`);let F=normalizeAlgorithm$1(S),I,H=F.name.toUpperCase();if(H===`AES-CBC`||H===`AES-CTR`||H===`AES-GCM`)I=S.length;else if(H===`HMAC`){let n=S,a=normalizeAlgorithm$1(n.hash);I=n.length||hashSize$1(a.name)*8}else throw new DOMException(`Unsupported derived key algorithm: ${F.name}`,`NotSupportedError`);let W=await this._deriveBitsInternal(n,a,I);return this.importKey(`raw`,W,S,C,N)}async wrapKey(n,a,S,C){throw new DOMException(`wrapKey not yet implemented`,`NotSupportedError`)}async unwrapKey(n,a,S,C,N,F,I){throw new DOMException(`unwrapKey not yet implemented`,`NotSupportedError`)}};const uo=globalThis.crypto===void 0?null:globalThis.crypto;var CryptoPolyfill=class{subtle=new SubtleCrypto;getRandomValues(n){if(!(n instanceof Int8Array||n instanceof Uint8Array||n instanceof Int16Array||n instanceof Uint16Array||n instanceof Int32Array||n instanceof Uint32Array||n instanceof Uint8ClampedArray||n instanceof BigInt64Array||n instanceof BigUint64Array))throw new DOMException(`The provided value is not of type '(Int8Array or Int16Array or Int32Array or Uint8Array or Uint8ClampedArray or Uint16Array or Uint32Array or BigInt64Array or BigUint64Array)'`,`TypeMismatchError`);if(n.byteLength>65536)throw new DOMException(`The ArrayBufferView's byte length exceeds the number of bytes of entropy available via this API (65536)`,`QuotaExceededError`);let a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);if(uo&&typeof uo.getRandomValues==`function`)uo.getRandomValues(a);else for(let n=0;n<a.length;n++)a[n]=Math.floor(Math.random()*256);return n}randomUUID(){if(uo&&typeof uo.randomUUID==`function`)return uo.randomUUID();let n=new Uint8Array(16);this.getRandomValues(n),n[6]=n[6]&15|64,n[8]=n[8]&63|128;let a=Array.from(n,n=>n.toString(16).padStart(2,`0`)).join(``);return`${a.slice(0,8)}-${a.slice(8,12)}-${a.slice(12,16)}-${a.slice(16,20)}-${a.slice(20)}`}};const fo=uo!==null&&uo.subtle!==void 0&&typeof uo.subtle.digest==`function`,po=fo?uo:new CryptoPolyfill;fo?uo.subtle:new SubtleCrypto;const mo=globalThis;(globalThis.crypto===void 0||globalThis.crypto.subtle===void 0)&&(mo.crypto=po);var ho,go,_o=__esmMin(()=>{ho=Object.defineProperty,go=__name$1((n,a)=>{let S={};for(var C in n)ho(S,C,{get:n[C],enumerable:!0});return a||ho(S,Symbol.toStringTag,{value:`Module`}),S},`__exportAll`)});function getEncodingFromOptions(n={encoding:null,flag:`r`},a=`utf8`){return n===null?a:typeof n==`string`?n:typeof n==`object`&&typeof n.encoding==`string`?n.encoding:a}function encodeUint8Array(n,a){return n===`buffer`?dt.from(a):new TextDecoder(n).decode(a)}function decode(n,a){if(a){let S=new TextDecoder(a),C=new TextEncoder;return S.decode(C.encode(n))}else return n}var vo=__esmMin(()=>{bt()}),yo,bo,xo=__esmMin(()=>{yo=Object.defineProperty,bo=__name$1((n,a)=>{let S={};for(var C in n)yo(S,C,{get:n[C],enumerable:!0});return a||yo(S,Symbol.toStringTag,{value:`Module`}),S},`__exportAll`)});function assertPath(n){if(typeof n!=`string`)throw TypeError(`The "path" argument must be of type string. Received type `+typeof n)}function isPosixPathSeparator(n){return n===47}function isPathSeparator(n){return n===47||n===92}function isWindowsDeviceRoot(n){return n>=65&&n<=90||n>=97&&n<=122}function normalizeString$1(n,a,S,C){let N=``,F=0,I=-1,H=0,W;for(let K=0;K<=n.length;++K){if(K<n.length)W=n.charCodeAt(K);else if(C(W))break;else W=47;if(C(W)){if(!(I===K-1||H===1))if(I!==K-1&&H===2){if(N.length<2||F!==2||N.charCodeAt(N.length-1)!==46||N.charCodeAt(N.length-2)!==46){if(N.length>2){let n=N.lastIndexOf(S);n===-1?(N=``,F=0):(N=N.slice(0,n),F=N.length-1-N.lastIndexOf(S)),I=K,H=0;continue}else if(N.length===2||N.length===1){N=``,F=0,I=K,H=0;continue}}a&&(N.length>0?N+=`${S}..`:N=`..`,F=2)}else N.length>0?N+=S+n.slice(I+1,K):N=n.slice(I+1,K),F=K-I-1;I=K,H=0}else W===46&&H!==-1?++H:H=-1}return N}function _format(n,a){if(typeof a!=`object`||!a)throw TypeError(`The "pathObject" argument must be of type Object. Received type `+typeof a);let S=a.dir||a.root,C=a.base||(a.name||``)+formatExt(a.ext);return S?S===a.root?S+C:S+n+C:C}function formatExt(n){return n?`${n[0]===`.`?``:`.`}${n}`:``}var So=__esmMin(()=>{__name$1(normalizeString$1,`normalizeString`)});function posixCwd(){if(typeof globalThis.process?.cwd==`function`)return globalThis.process.cwd();try{let n=globalThis.imports?.gi?.GLib;if(n?.get_current_dir)return n.get_current_dir()}catch{}return`/`}function resolve$2(...n){let a=``,S=!1;for(let C=n.length-1;C>=-1&&!S;C--){let N;if(C>=0){if(N=n[C],assertPath(N),N.length===0)continue}else N=posixCwd();a=`${N}/${a}`,S=N.charCodeAt(0)===47}return a=normalizeString$1(a,!S,`/`,isPosixPathSeparator),S?a.length>0?`/${a}`:`/`:a.length>0?a:`.`}function normalize$2(n){if(assertPath(n),n.length===0)return`.`;let a=n.charCodeAt(0)===47,S=n.charCodeAt(n.length-1)===47,C=normalizeString$1(n,!a,`/`,isPosixPathSeparator);return C.length===0&&!a&&(C=`.`),C.length>0&&S&&(C+=`/`),a?`/${C}`:C}function isAbsolute$2(n){return assertPath(n),n.length>0&&n.charCodeAt(0)===47}function join$2(...n){if(n.length===0)return`.`;let a;for(let S=0;S<n.length;++S){let C=n[S];assertPath(C),C.length>0&&(a===void 0?a=C:a+=`/${C}`)}return a===void 0?`.`:normalize$2(a)}function relative$1(n,a){if(assertPath(n),assertPath(a),n===a||(n=resolve$2(n),a=resolve$2(a),n===a))return``;let S=n.length,C=S-1,N=1,F=a.length-N,I=C<F?C:F,H=-1,W=0;for(;W<=I;++W){if(W===I){if(F>I){if(a.charCodeAt(N+W)===47)return a.slice(N+W+1);if(W===0)return a.slice(N+W)}else C>I&&(n.charCodeAt(1+W)===47?H=W:W===0&&(H=0));break}let S=n.charCodeAt(1+W);if(S!==a.charCodeAt(N+W))break;S===47&&(H=W)}let K=``;for(W=1+H+1;W<=S;++W)(W===S||n.charCodeAt(W)===47)&&(K.length===0?K+=`..`:K+=`/..`);return K.length>0?K+a.slice(N+H):(N+=H,a.charCodeAt(N)===47&&++N,a.slice(N))}function toNamespacedPath$1(n){return n}function dirname$1(n){if(assertPath(n),n.length===0)return`.`;let a=n.charCodeAt(0)===47,S=-1,C=!0;for(let a=n.length-1;a>=1;--a)if(n.charCodeAt(a)===47){if(!C){S=a;break}}else C=!1;return S===-1?a?`/`:`.`:a&&S===1?`//`:n.slice(0,S)}function basename$1(n,a){a!==void 0&&assertPath(a),assertPath(n);let S=0,C=-1,N=!0;if(a!==void 0&&a.length>0&&a.length<=n.length){if(a.length===n.length&&a===n)return``;let F=a.length-1,I=-1;for(let H=n.length-1;H>=0;--H){let W=n.charCodeAt(H);if(W===47){if(!N){S=H+1;break}}else I===-1&&(N=!1,I=H+1),F>=0&&(W===a.charCodeAt(F)?--F===-1&&(C=H):(F=-1,C=I))}return S===C?C=I:C===-1&&(C=n.length),n.slice(S,C)}else{for(let a=n.length-1;a>=0;--a)if(n.charCodeAt(a)===47){if(!N){S=a+1;break}}else C===-1&&(N=!1,C=a+1);return C===-1?``:n.slice(S,C)}}function extname$2(n){assertPath(n);let a=-1,S=0,C=-1,N=!0,F=0;for(let I=n.length-1;I>=0;--I){let H=n.charCodeAt(I);if(H===47){if(!N){S=I+1;break}continue}C===-1&&(N=!1,C=I+1),H===46?a===-1?a=I:F!==1&&(F=1):a!==-1&&(F=-1)}return a===-1||C===-1||F===0||F===1&&a===C-1&&a===S+1?``:n.slice(a,C)}function format$3(n){if(typeof n!=`object`||!n)throw TypeError(`The "pathObject" argument must be of type Object. Received type `+typeof n);return _format(`/`,n)}function parse$3(n){assertPath(n);let a={root:``,dir:``,base:``,ext:``,name:``};if(n.length===0)return a;let S=n.charCodeAt(0)===47,C;S?(a.root=`/`,C=1):C=0;let N=-1,F=0,I=-1,H=!0,W=n.length-1,K=0;for(;W>=C;--W){let a=n.charCodeAt(W);if(a===47){if(!H){F=W+1;break}continue}I===-1&&(H=!1,I=W+1),a===46?N===-1?N=W:K!==1&&(K=1):N!==-1&&(K=-1)}return N===-1||I===-1||K===0||K===1&&N===I-1&&N===F+1?I!==-1&&(F===0&&S?a.base=a.name=n.slice(1,I):a.base=a.name=n.slice(F,I)):(F===0&&S?(a.name=n.slice(1,N),a.base=n.slice(1,I)):(a.name=n.slice(F,N),a.base=n.slice(F,I)),a.ext=n.slice(N,I)),F>0?a.dir=n.slice(0,F-1):S&&(a.dir=`/`),a}var Co,wo=__esmMin(()=>{xo(),So(),Co=bo({basename:()=>basename$1,delimiter:()=>`:`,dirname:()=>dirname$1,extname:()=>extname$2,format:()=>format$3,isAbsolute:()=>isAbsolute$2,join:()=>join$2,normalize:()=>normalize$2,parse:()=>parse$3,relative:()=>relative$1,resolve:()=>resolve$2,sep:()=>`/`,toNamespacedPath:()=>toNamespacedPath$1}),__name$1(resolve$2,`resolve`),__name$1(normalize$2,`normalize`),__name$1(isAbsolute$2,`isAbsolute`),__name$1(join$2,`join`),__name$1(relative$1,`relative`),__name$1(toNamespacedPath$1,`toNamespacedPath`),__name$1(dirname$1,`dirname`),__name$1(basename$1,`basename`),__name$1(extname$2,`extname`),__name$1(format$3,`format`),__name$1(parse$3,`parse`)});function resolve$1(...n){let a=``,S=``,C=!1;for(let N=n.length-1;N>=-1;N--){let F;if(N>=0){if(F=n[N],assertPath(F),F.length===0)continue}else F=(a.length,typeof globalThis.process?.cwd==`function`?globalThis.process.cwd():`/`);let I=F.length,H=0,W=``,K=!1,q=F.charCodeAt(0);if(I>1)if(isPathSeparator(q))if(K=!0,isPathSeparator(F.charCodeAt(1))){let n=2,a=n;for(;n<I&&!isPathSeparator(F.charCodeAt(n));++n);if(n<I&&n!==a){let S=F.slice(a,n);for(a=n;n<I&&isPathSeparator(F.charCodeAt(n));++n);if(n<I&&n!==a){for(a=n;n<I&&!isPathSeparator(F.charCodeAt(n));++n);n===I?(W=`\\\\${S}\\${F.slice(a)}`,H=n):n!==a&&(W=`\\\\${S}\\${F.slice(a,n)}`,H=n)}}}else H=1;else isWindowsDeviceRoot(q)&&F.charCodeAt(1)===58&&(W=F.slice(0,2),H=2,I>2&&isPathSeparator(F.charCodeAt(2))&&(K=!0,H=3));else isPathSeparator(q)&&(H=1,K=!0);if(!(W.length>0&&a.length>0&&W.toLowerCase()!==a.toLowerCase())&&(a.length===0&&W.length>0&&(a=W),C||=(S=`${F.slice(H)}\\${S}`,K),a.length>0&&C))break}return S=normalizeString$1(S,!C,`\\`,isPathSeparator),a+(C?`\\`:``)+S||`.`}function normalize$1(n){assertPath(n);let a=n.length;if(a===0)return`.`;let S=0,C,N=!1,F=n.charCodeAt(0);if(a>1)if(isPathSeparator(F))if(N=!0,isPathSeparator(n.charCodeAt(1))){let N=2,F=N;for(;N<a&&!isPathSeparator(n.charCodeAt(N));++N);if(N<a&&N!==F){let I=n.slice(F,N);for(F=N;N<a&&isPathSeparator(n.charCodeAt(N));++N);if(N<a&&N!==F){for(F=N;N<a&&!isPathSeparator(n.charCodeAt(N));++N);if(N===a)return`\\\\${I}\\${n.slice(F)}\\`;N!==F&&(C=`\\\\${I}\\${n.slice(F,N)}`,S=N)}}}else S=1;else isWindowsDeviceRoot(F)&&n.charCodeAt(1)===58&&(C=n.slice(0,2),S=2,a>2&&isPathSeparator(n.charCodeAt(2))&&(N=!0,S=3));else if(isPathSeparator(F))return`\\`;let I;return I=S<a?normalizeString$1(n.slice(S),!N,`\\`,isPathSeparator):``,I.length===0&&!N&&(I=`.`),I.length>0&&isPathSeparator(n.charCodeAt(a-1))&&(I+=`\\`),C===void 0?N?I.length>0?`\\${I}`:`\\`:I.length>0?I:``:N?I.length>0?`${C}\\${I}`:`${C}\\`:I.length>0?C+I:C}function isAbsolute$1(n){assertPath(n);let a=n.length;if(a===0)return!1;let S=n.charCodeAt(0);return!!(isPathSeparator(S)||isWindowsDeviceRoot(S)&&a>2&&n.charCodeAt(1)===58&&isPathSeparator(n.charCodeAt(2)))}function join$1(...n){if(n.length===0)return`.`;let a,S;for(let C=0;C<n.length;++C){let N=n[C];assertPath(N),N.length>0&&(a===void 0?a=S=N:a+=`\\${N}`)}if(a===void 0)return`.`;let C=!0,N=0;if(isPathSeparator(S.charCodeAt(0))){++N;let n=S.length;n>1&&isPathSeparator(S.charCodeAt(1))&&(++N,n>2&&(isPathSeparator(S.charCodeAt(2))?++N:C=!1))}if(C){for(;N<a.length&&isPathSeparator(a.charCodeAt(N));++N);N>=2&&(a=`\\${a.slice(N)}`)}return normalize$1(a)}function relative(n,a){if(assertPath(n),assertPath(a),n===a)return``;let S=resolve$1(n),C=resolve$1(a);if(S===C||(n=S.toLowerCase(),a=C.toLowerCase(),n===a))return``;let N=0;for(;N<n.length&&n.charCodeAt(N)===92;++N);let F=n.length;for(;F-1>N&&n.charCodeAt(F-1)===92;--F);let I=F-N,H=0;for(;H<a.length&&a.charCodeAt(H)===92;++H);let W=a.length;for(;W-1>H&&a.charCodeAt(W-1)===92;--W);let K=W-H,q=I<K?I:K,Y=-1,X=0;for(;X<=q;++X){if(X===q){if(K>q){if(a.charCodeAt(H+X)===92)return C.slice(H+X+1);if(X===2)return C.slice(H+X)}I>q&&(n.charCodeAt(N+X)===92?Y=X:X===2&&(Y=3));break}let S=n.charCodeAt(N+X);if(S!==a.charCodeAt(H+X))break;S===92&&(Y=X)}if(X!==q&&Y===-1)return C;let te=``;for(Y===-1&&(Y=0),X=N+Y+1;X<=F;++X)(X===F||n.charCodeAt(X)===92)&&(te.length===0?te+=`..`:te+=`\\..`);return te.length>0?te+C.slice(H+Y,W):(H+=Y,C.charCodeAt(H)===92&&++H,C.slice(H,W))}function toNamespacedPath(n){if(typeof n!=`string`)return n;if(n.length===0)return``;let a=resolve$1(n);if(a.length>=3){if(a.charCodeAt(0)===92){if(a.charCodeAt(1)===92){let n=a.charCodeAt(2);if(n!==63&&n!==46)return`\\\\?\\UNC\\${a.slice(2)}`}}else if(isWindowsDeviceRoot(a.charCodeAt(0))&&a.charCodeAt(1)===58&&a.charCodeAt(2)===92)return`\\\\?\\${a}`}return n}function dirname(n){assertPath(n);let a=n.length;if(a===0)return`.`;let S=-1,C=-1,N=!0,F=0,I=n.charCodeAt(0);if(a>1)if(isPathSeparator(I)){if(S=F=1,isPathSeparator(n.charCodeAt(1))){let C=2,N=C;for(;C<a&&!isPathSeparator(n.charCodeAt(C));++C);if(C<a&&C!==N){for(N=C;C<a&&isPathSeparator(n.charCodeAt(C));++C);if(C<a&&C!==N){for(N=C;C<a&&!isPathSeparator(n.charCodeAt(C));++C);if(C===a)return n;C!==N&&(S=F=C+1)}}}}else isWindowsDeviceRoot(I)&&n.charCodeAt(1)===58&&(S=F=2,a>2&&isPathSeparator(n.charCodeAt(2))&&(S=F=3));else if(isPathSeparator(I))return n;for(let S=a-1;S>=F;--S)if(isPathSeparator(n.charCodeAt(S))){if(!N){C=S;break}}else N=!1;if(C===-1){if(S===-1)return`.`;C=S}return n.slice(0,C)}function basename(n,a){a!==void 0&&assertPath(a),assertPath(n);let S=0,C=-1,N=!0;if(n.length>=2&&isWindowsDeviceRoot(n.charCodeAt(0))&&n.charCodeAt(1)===58&&(S=2),a!==void 0&&a.length>0&&a.length<=n.length){if(a.length===n.length&&a===n)return``;let F=a.length-1,I=-1;for(let H=n.length-1;H>=S;--H){let W=n.charCodeAt(H);if(isPathSeparator(W)){if(!N){S=H+1;break}}else I===-1&&(N=!1,I=H+1),F>=0&&(W===a.charCodeAt(F)?--F===-1&&(C=H):(F=-1,C=I))}return S===C?C=I:C===-1&&(C=n.length),n.slice(S,C)}else{for(let a=n.length-1;a>=S;--a)if(isPathSeparator(n.charCodeAt(a))){if(!N){S=a+1;break}}else C===-1&&(N=!1,C=a+1);return C===-1?``:n.slice(S,C)}}function extname$1(n){assertPath(n);let a=0,S=-1,C=0,N=-1,F=!0,I=0;n.length>=2&&n.charCodeAt(1)===58&&isWindowsDeviceRoot(n.charCodeAt(0))&&(a=C=2);for(let H=n.length-1;H>=a;--H){let a=n.charCodeAt(H);if(isPathSeparator(a)){if(!F){C=H+1;break}continue}N===-1&&(F=!1,N=H+1),a===46?S===-1?S=H:I!==1&&(I=1):S!==-1&&(I=-1)}return S===-1||N===-1||I===0||I===1&&S===N-1&&S===C+1?``:n.slice(S,N)}function format$2(n){if(typeof n!=`object`||!n)throw TypeError(`The "pathObject" argument must be of type Object. Received type `+typeof n);return _format(`\\`,n)}function parse$2(n){assertPath(n);let a={root:``,dir:``,base:``,ext:``,name:``};if(n.length===0)return a;let S=n.length,C=0,N=n.charCodeAt(0);if(S>1)if(isPathSeparator(N)){if(C=1,isPathSeparator(n.charCodeAt(1))){let a=2,N=a;for(;a<S&&!isPathSeparator(n.charCodeAt(a));++a);if(a<S&&a!==N){for(N=a;a<S&&isPathSeparator(n.charCodeAt(a));++a);if(a<S&&a!==N){for(N=a;a<S&&!isPathSeparator(n.charCodeAt(a));++a);a===S?C=a:a!==N&&(C=a+1)}}}}else isWindowsDeviceRoot(N)&&n.charCodeAt(1)===58&&(C=2,S>2&&isPathSeparator(n.charCodeAt(2))&&(C=3));else if(isPathSeparator(N))return a.root=a.dir=n,a;C>0&&(a.root=n.slice(0,C));let F=-1,I=C,H=-1,W=!0,K=n.length-1,q=0;for(;K>=C;--K){if(N=n.charCodeAt(K),isPathSeparator(N)){if(!W){I=K+1;break}continue}H===-1&&(W=!1,H=K+1),N===46?F===-1?F=K:q!==1&&(q=1):F!==-1&&(q=-1)}return F===-1||H===-1||q===0||q===1&&F===H-1&&F===I+1?H!==-1&&(a.base=a.name=n.slice(I,H)):(a.name=n.slice(I,F),a.base=n.slice(I,H),a.ext=n.slice(F,H)),I>0&&I!==C?a.dir=n.slice(0,I-1):a.dir=a.root,a}var To,Eo=__esmMin(()=>{xo(),So(),To=bo({basename:()=>basename,delimiter:()=>`;`,dirname:()=>dirname,extname:()=>extname$1,format:()=>format$2,isAbsolute:()=>isAbsolute$1,join:()=>join$1,normalize:()=>normalize$1,parse:()=>parse$2,relative:()=>relative,resolve:()=>resolve$1,sep:()=>`\\`,toNamespacedPath:()=>toNamespacedPath}),__name$1(resolve$1,`resolve`),__name$1(normalize$1,`normalize`),__name$1(isAbsolute$1,`isAbsolute`),__name$1(join$1,`join`),__name$1(extname$1,`extname`),__name$1(format$2,`format`),__name$1(parse$2,`parse`)}),Do=__exportAll$3({basename:()=>Fo,default:()=>Vo,delimiter:()=>Bo,dirname:()=>Po,extname:()=>Io,format:()=>Lo,isAbsolute:()=>Ao,join:()=>jo,normalize:()=>ko,parse:()=>Ro,posix:()=>Co,relative:()=>Mo,resolve:()=>Oo,sep:()=>zo,toNamespacedPath:()=>No,win32:()=>To}),Oo,ko,Ao,jo,Mo,No,Po,Fo,Io,Lo,Ro,zo,Bo,Vo,Ho=__esmMin(()=>{wo(),Eo(),{resolve:Oo,normalize:ko,isAbsolute:Ao,join:jo,relative:Mo,toNamespacedPath:No,dirname:Po,basename:Fo,extname:Io,format:Lo,parse:Ro,sep:zo,delimiter:Bo}=Co,Vo={resolve:resolve$2,normalize:normalize$2,isAbsolute:isAbsolute$2,join:join$2,relative:relative$1,toNamespacedPath:toNamespacedPath$1,dirname:dirname$1,basename:basename$1,extname:extname$2,format:format$3,parse:parse$3,sep:`/`,delimiter:`:`,posix:Co,win32:To}}),Dirent,Uo=__esmMin(()=>{ve(),Ho(),Dirent=class{name;parentPath;_isFile=!1;_isDirectory=!1;_isBlockDevice=!1;_isCharacterDevice=!1;_isSymbolicLink=!1;_isFIFO=!1;_isSocket=!1;_file;constructor(n,a,S){switch(a||=Fo(n),this.name=a,this.parentPath=Po(n),this._file=_e.File.new_for_path(n),S??this._file.query_file_type(_e.FileQueryInfoFlags.NONE,null)){case _e.FileType.DIRECTORY:this._isDirectory=!0;break;case _e.FileType.MOUNTABLE:break;case _e.FileType.REGULAR:this._isFile=!0;break;case _e.FileType.SYMBOLIC_LINK:case _e.FileType.SHORTCUT:this._isSymbolicLink=!0;break;case _e.FileType.SPECIAL:this._classifySpecialFile(n);break}}_classifySpecialFile(n){try{let a=_e.File.new_for_path(n).query_info(`unix::mode`,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null).get_attribute_uint32(`unix::mode`);if(a===0)return;switch(a&61440){case 24576:this._isBlockDevice=!0;break;case 8192:this._isCharacterDevice=!0;break;case 49152:this._isSocket=!0;break;case 4096:this._isFIFO=!0;break}}catch{}}isFile(){return this._isFile}isDirectory(){return this._isDirectory}isBlockDevice(){return this._isBlockDevice}isCharacterDevice(){return this._isCharacterDevice}isSymbolicLink(){return this._isSymbolicLink}isFIFO(){return this._isFIFO}isSocket(){return this._isSocket}}});function populateFromInfo(n){let a=n.get_attribute_uint64(`time::access`),S=n.get_attribute_uint32(`time::access-usec`)||0,C=n.get_attribute_uint64(`time::modified`),N=n.get_attribute_uint32(`time::modified-usec`)||0,F=n.get_attribute_uint64(`time::changed`),I=n.get_attribute_uint32(`time::changed-usec`)||0,H=n.get_attribute_uint64(`time::created`),W=n.get_attribute_uint32(`time::created-usec`)||0,K=a*1e3+S/1e3,q=C*1e3+N/1e3,Y=F?F*1e3+I/1e3:q,X=H?H*1e3+W/1e3:Y;return{dev:n.get_attribute_uint32(`unix::device`)||0,ino:Number(n.get_attribute_uint64(`unix::inode`)||0),mode:n.get_attribute_uint32(`unix::mode`)||0,nlink:n.get_attribute_uint32(`unix::nlink`)||0,uid:n.get_attribute_uint32(`unix::uid`)||0,gid:n.get_attribute_uint32(`unix::gid`)||0,rdev:n.get_attribute_uint32(`unix::rdev`)||0,size:Number(n.get_size()||0),blksize:n.get_attribute_uint32(`unix::block-size`)||4096,blocks:Number(n.get_attribute_uint64(`unix::blocks`)||0),atimeMs:K,mtimeMs:q,ctimeMs:Y,birthtimeMs:X,atime:new Date(K),mtime:new Date(q),ctime:new Date(Y),birthtime:new Date(X)}}var Wo,Stats,BigIntStats,Go=__esmMin(()=>{Uo(),ve(),Ho(),Wo=`standard::*,time::*,unix::*`,Stats=class extends Dirent{dev;ino;mode;nlink;uid;gid;rdev;size;blksize;blocks;atimeMs;mtimeMs;ctimeMs;birthtimeMs;atime;mtime;ctime;birthtime;_info;constructor(n,a,S){let C,N;n instanceof _e.FileInfo?(C=n,N=a.toString(),S||=Fo(N)):(N=n.toString(),typeof a==`string`&&(S=a),S||=Fo(N),C=_e.File.new_for_path(N).query_info(Wo,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)),super(N,S,C.get_file_type()),this._info=C;let F=populateFromInfo(C);this.dev=F.dev,this.ino=F.ino,this.mode=F.mode,this.nlink=F.nlink,this.uid=F.uid,this.gid=F.gid,this.rdev=F.rdev,this.size=F.size,this.blksize=F.blksize,this.blocks=F.blocks,this.atimeMs=F.atimeMs,this.mtimeMs=F.mtimeMs,this.ctimeMs=F.ctimeMs,this.birthtimeMs=F.birthtimeMs,this.atime=F.atime,this.mtime=F.mtime,this.ctime=F.ctime,this.birthtime=F.birthtime}},BigIntStats=class extends Dirent{dev;ino;mode;nlink;uid;gid;rdev;size;blksize;blocks;atimeMs;mtimeMs;ctimeMs;birthtimeMs;atimeNs;mtimeNs;ctimeNs;birthtimeNs;atime;mtime;ctime;birthtime;_info;constructor(n,a,S){let C,N;n instanceof _e.FileInfo?(C=n,N=a.toString(),S||=Fo(N)):(N=n.toString(),typeof a==`string`&&(S=a),S||=Fo(N),C=_e.File.new_for_path(N).query_info(Wo,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)),super(N,S,C.get_file_type()),this._info=C;let F=populateFromInfo(C);this.dev=BigInt(F.dev),this.ino=BigInt(F.ino),this.mode=BigInt(F.mode),this.nlink=BigInt(F.nlink),this.uid=BigInt(F.uid),this.gid=BigInt(F.gid),this.rdev=BigInt(F.rdev),this.size=BigInt(F.size),this.blksize=BigInt(F.blksize),this.blocks=BigInt(F.blocks),this.atimeMs=BigInt(Math.trunc(F.atimeMs)),this.mtimeMs=BigInt(Math.trunc(F.mtimeMs)),this.ctimeMs=BigInt(Math.trunc(F.ctimeMs)),this.birthtimeMs=BigInt(Math.trunc(F.birthtimeMs)),this.atimeNs=this.atimeMs*1000000n,this.mtimeNs=this.mtimeMs*1000000n,this.ctimeNs=this.ctimeMs*1000000n,this.birthtimeNs=this.birthtimeMs*1000000n,this.atime=F.atime,this.mtime=F.mtime,this.ctime=F.ctime,this.birthtime=F.birthtime}}});function createReadStream(n,a){return new ReadStream$1(n,a)}var ReadStream$1,Ko=__esmMin(()=>{Ss(),se(),ve(),bt(),Jr(),ReadStream$1=class extends Hr{static{__name$1(this,`ReadStream`)}bytesRead=0;path;pending=!0;fd=null;_gioFile;_inputStream=null;_cancellable=new _e.Cancellable;_start;_end;_pos;close(n){this._cancellable.cancel(),this._inputStream&&=(this._inputStream.close_async(Z.PRIORITY_DEFAULT,null,()=>{}),null),this.destroy(),n&&n(null)}constructor(n,a){let S=normalizePath(n);super({highWaterMark:a?.highWaterMark??64*1024,encoding:a?.encoding,objectMode:!1}),this.path=S,this._gioFile=_e.File.new_for_path(S),this._start=a?.start??0,this._end=a?.end??1/0,this._pos=this._start}_construct(n){this._gioFile.read_async(Z.PRIORITY_DEFAULT,this._cancellable,(a,S)=>{if(this.destroyed){n();return}try{this._inputStream=this._gioFile.read_finish(S),this.pending=!1,this.emit(`open`,0),this.emit(`ready`),this._start>0&&this._inputStream.can_seek()&&this._inputStream.seek(this._start,Z.SeekType.SET,null),n()}catch(a){this._cancellable.is_cancelled()||n(a)}})}_read(n){this._doRead(n)}_doRead(n){let a=n;if(this._end!==1/0){let S=this._end-this._pos+1;if(S<=0){this.push(null);return}a=Math.min(n,S)}let S=this._inputStream;S.read_bytes_async(a,Z.PRIORITY_DEFAULT,this._cancellable,(n,a)=>{try{let n=S.read_bytes_finish(a).get_data();if(!n||n.length===0){this.push(null);return}this.bytesRead+=n.length,this._pos+=n.length,this.push(dt.from(n))}catch(n){this._cancellable.is_cancelled()||this.destroy(n)}})}_destroy(n,a){this._cancellable.cancel(),this._inputStream&&=(this._inputStream.close_async(Z.PRIORITY_DEFAULT,null,()=>{}),null),a(n)}}});function createNodeError(n,a,S,C){return createNodeError$1(n,a,{path:S.toString(),dest:C?.toString()})}var qo=__esmMin(()=>{et()});function makeEEXIST(n){let a=Error(`ERR_FS_CP_EEXIST: file already exists, copyfile '${n}'`);return a.code=`ERR_FS_CP_EEXIST`,a.syscall=`copyfile`,a.path=n,a}function makeEISDIR(n){let a=Error(`ERR_FS_EISDIR: illegal operation on a directory, copyfile '${n}'`);return a.code=`ERR_FS_EISDIR`,a.syscall=`copyfile`,a.path=n,a}function makeENOTDIR(n,a){let S=Error(`ENOTDIR: not a directory, copyfile '${n}' -> '${a}'`);return S.code=`ENOTDIR`,S.syscall=`copyfile`,S.path=n,S.dest=a,S}function makeSYMLINKLOOP(n,a){let S=Error(`ELOOP: too many levels of symbolic links, copyfile '${n}' -> '${a}'`);return S.code=`ELOOP`,S.syscall=`copyfile`,S.path=n,S.dest=a,S}function queryCopyFlags(n){let a=n.force??!0,S=_e.FileCopyFlags.NONE;return a&&(S|=_e.FileCopyFlags.OVERWRITE),n.preserveTimestamps&&(S|=_e.FileCopyFlags.TARGET_DEFAULT_MODIFIED_TIME),n.dereference||(S|=_e.FileCopyFlags.NOFOLLOW_SYMLINKS),S}function copyOneSyncFile(n,a,S,C,N){let F=N.force??!0;try{if(a.query_info(`standard::type`,_e.FileQueryInfoFlags.NONE,null).get_file_type()===_e.FileType.DIRECTORY)throw makeENOTDIR(S,C);if(!F){if(N.errorOnExist)throw makeEEXIST(C);return}}catch(n){if(typeof n.code==`string`)throw n}let I=queryCopyFlags(N);try{n.copy(a,I,null,null)}catch(n){throw createNodeError(n,`copyfile`,S,C)}}function cpOneDirSync(n,a,S,C,N){let F=S.endsWith(`/`)?``:`/`;if(C.startsWith(S+F)&&C!==S)throw makeSYMLINKLOOP(S,C);if(a.query_exists(null))try{if(a.query_info(`standard::type`,_e.FileQueryInfoFlags.NONE,null).get_file_type()!==_e.FileType.DIRECTORY)throw makeENOTDIR(C,S)}catch(n){if(typeof n.code==`string`)throw n}else try{a.make_directory_with_parents(null)}catch(n){throw createNodeError(n,`mkdir`,C)}let I;try{I=n.enumerate_children(`standard::name,standard::type,standard::is-symlink`,N.dereference?_e.FileQueryInfoFlags.NONE:_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(n){throw createNodeError(n,`scandir`,S)}let H=I.next_file(null);for(;H!==null;){let n=H.get_name(),a=jo(S,n),F=jo(C,n),W=N.filter;if(W&&!W(a,F)){H=I.next_file(null);continue}cpSyncInternal(a,F,N),H=I.next_file(null)}}function cpSyncInternal(n,a,S){let C=_e.File.new_for_path(n),N=_e.File.new_for_path(a),F;try{F=C.query_info(`standard::type,standard::is-symlink`,S.dereference?_e.FileQueryInfoFlags.NONE:_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(a){throw createNodeError(a,`stat`,n)}if(F.get_file_type()===_e.FileType.DIRECTORY){if(!S.recursive)throw makeEISDIR(n);cpOneDirSync(C,N,n,a,S)}else copyOneSyncFile(C,N,n,a,S)}function cpSync(n,a,S){let C=normalizePath(n),N=normalizePath(a),F=S??{},I=_e.File.new_for_path(C),H=F.filter;if(!(H&&!H(C,N))){try{if(I.query_info(`standard::type`,F.dereference?_e.FileQueryInfoFlags.NONE:_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null).get_file_type()===_e.FileType.DIRECTORY&&!F.recursive)throw makeEISDIR(C)}catch(n){throw typeof n.code==`string`?n:createNodeError(n,`stat`,C)}cpSyncInternal(C,N,F)}}function cp(n,a,S,C){let N,F;typeof S==`function`?(F=S,N={}):(F=C,N=S);let I=N.filter;if(I){Promise.resolve(I(normalizePath(n),normalizePath(a))).then(S=>{if(!S){F(null);return}try{cpPromises(n,a,N).then(()=>F(null)).catch(F)}catch(n){F(n)}}).catch(F);return}Promise.resolve().then(()=>{try{cpSync(n,a,N),F(null)}catch(n){F(n)}})}async function cpPromisesDir(n,a,S){let C=n.endsWith(`/`)?``:`/`;if(a.startsWith(n+C)&&a!==n)throw makeSYMLINKLOOP(n,a);let N=_e.File.new_for_path(a);if(!N.query_exists(null))try{N.make_directory_with_parents(null)}catch(n){throw createNodeError(n,`mkdir`,a)}let F=_e.File.new_for_path(n),I;try{I=F.enumerate_children(`standard::name,standard::type`,S.dereference?_e.FileQueryInfoFlags.NONE:_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(a){throw createNodeError(a,`scandir`,n)}let H=I.next_file(null);for(;H!==null;){let C=H.get_name(),N=jo(n,C),F=jo(a,C),W=S.filter;if(W&&!await Promise.resolve(W(N,F))){H=I.next_file(null);continue}await cpPromises(N,F,S),H=I.next_file(null)}}async function cpPromises(n,a,S={}){let C=normalizePath(n),N=normalizePath(a),F=_e.File.new_for_path(C),I;try{I=F.query_info(`standard::type`,S.dereference?_e.FileQueryInfoFlags.NONE:_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(n){throw createNodeError(n,`stat`,C)}if(I.get_file_type()===_e.FileType.DIRECTORY){if(!S.recursive)throw makeEISDIR(C);await cpPromisesDir(C,N,S)}else copyOneSyncFile(F,_e.File.new_for_path(N),C,N,S)}var Jo=__esmMin(()=>{Ss(),qo(),ve(),Ho()});function _openDir(n){let a=_e.File.new_for_path(n),S;try{S=a.enumerate_children(Yo,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(a){throw createNodeError(a,`opendir`,n)}return new Dir(n,S)}function opendirSync(n){return _openDir(normalizePath(n))}function opendir(n,a,S){let C;if(C=typeof a==`function`?a:S,typeof C!=`function`)throw TypeError(`The "callback" argument must be of type function`);Promise.resolve().then(()=>{try{let a=opendirSync(n);C(null,a)}catch(n){C(n,null)}})}async function opendirAsync(n,a){return new Promise((a,S)=>{let C=normalizePath(n),N=_e.File.new_for_path(C);N.enumerate_children_async(Yo,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,Z.PRIORITY_DEFAULT,null,(n,F)=>{try{a(new Dir(C,N.enumerate_children_finish(F)))}catch(n){S(createNodeError(n,`opendir`,C))}})})}var Yo,Dir,Xo=__esmMin(()=>{Ss(),Uo(),qo(),se(),ve(),Yo=`standard::name,standard::type,standard::is-symlink,standard::size,standard::symlink-target,unix::uid,unix::gid,unix::mode,time::modified,time::access,time::created`,Dir=class{path;_enumerator;_closed=!1;constructor(n,a){this.path=n,this._enumerator=a}_assertOpen(){if(this._closed){let n=Error(`Directory handle was closed`);throw n.code=`ERR_DIR_CLOSED`,n}}readSync(){this._assertOpen();try{let n=this._enumerator.next_file(null);if(n===null)return null;let a=n.get_name(),S=n.get_file_type();return new Dirent(this.path.endsWith(`/`)?this.path+a:this.path+`/`+a,a,S)}catch(n){throw createNodeError(n,`readdir`,this.path)}}read(n){if(n!==void 0){if(typeof n!=`function`)throw TypeError(`The "callback" argument must be of type function`);try{this._assertOpen();let a=this.readSync();Promise.resolve().then(()=>n(null,a))}catch(a){Promise.resolve().then(()=>n(a,null))}return}return new Promise((n,a)=>{try{this._assertOpen(),n(this.readSync())}catch(n){a(n)}})}closeSync(){this._assertOpen(),this._closed=!0;try{this._enumerator.close(null)}catch{}this._enumerator=null}close(n){if(n!==void 0){if(typeof n!=`function`)throw TypeError(`The "callback" argument must be of type function`);try{this.closeSync(),Promise.resolve().then(()=>n(null))}catch(a){Promise.resolve().then(()=>n(a))}return}return new Promise((n,a)=>{try{this.closeSync(),n()}catch(n){a(n)}})}async*[Symbol.asyncIterator](){try{for(;;){let n=await this.read();if(n===null)break;yield n}}finally{this._closed||await this.close()}}}});function segmentToRegexSrc(n){let a=/^([!*+?@])\((.+)\)$/.exec(n);if(a){let[,n,S]=a,C=S.split(`|`).map(n=>segmentToRegexSrc(n)),N=`(?:`+C.join(`|`)+`)`;switch(n){case`!`:return`(?!(?:`+C.join(`|`)+`))[^/]*`;case`*`:return N+`*`;case`+`:return N+`+`;case`?`:return N+`?`;case`@`:return N}}let S=``,C=0;for(;C<n.length;){let a=n[C];if(a===`*`){S+=`[^/]*`,C++;continue}if(a===`?`){S+=`[^/]`,C++;continue}if(a===`[`){let a=n.indexOf(`]`,C+1);if(a===-1){S+=`\\[`,C++;continue}S+=n.slice(C,a+1),C=a+1;continue}if(a===`{`){let a=n.indexOf(`}`,C+1);if(a===-1){S+=`\\{`,C++;continue}let N=n.slice(C+1,a).split(`,`).map(n=>segmentToRegexSrc(n.trim()));S+=`(?:`+N.join(`|`)+`)`,C=a+1;continue}`.+^$|()[]{}`.includes(a)?S+=`\\`+a:S+=a,C++}return S}function globToRegex$2(n){n=n.replace(/\/+/g,`/`).replace(/^\.\//,``);let a=n.split(`/`),S=[];for(let n=0;n<a.length;n++){let C=a[n],N=n===a.length-1;C===`**`?N?S.length>0&&S[S.length-1]===`/`?(S.pop(),S.push(`(?:/.+)?`)):S.push(`(?:.+)?`):S.push(`(?:[^/]+/)*`):(S.push(segmentToRegexSrc(C)),N||S.push(`/`))}return RegExp(`^(?:`+S.join(``)+`)$`)}function buildExcludePredicate(n){if(!n)return null;if(typeof n==`function`)return n;let a=(Array.isArray(n)?n:[n]).map(n=>globToRegex$2(n));return n=>a.some(a=>a.test(n))}function matchAll(n,a,S){let C=globToRegex$2(n),N=buildExcludePredicate(S),F;try{F=readdirSync(a,{recursive:!0})}catch{return[]}let I=[`.`,...F],H=[];for(let n of I){let a=n.replace(/\\/g,`/`);C.test(a)&&(N&&N(a)||H.push(n))}return H}function globSync(n,a){let S=Array.isArray(n)?n:[n],C=a?.cwd?normalizePath(a.cwd):globalThis.process?.cwd?.()??`/`,N=a?.exclude,F=new Set,I=[];for(let n of S)for(let a of matchAll(n,C,N))F.has(a)||(F.add(a),I.push(a));return I}function glob(n,a,S){let C,N;typeof a==`function`?(N=a,C={}):(N=S,C=a||{}),Promise.resolve().then(()=>{try{let a=globSync(n,C);N(null,a)}catch(n){N(n,[])}})}async function*globAsync(n,a){let S=globSync(n,a);for(let n of S)yield n}var Zo=__esmMin(()=>{Ss(),xs(),__name$1(globToRegex$2,`globToRegex`)});function buildStatFs(n){let a=Number(n.get_attribute_uint64(`filesystem::size`)??0),S=Number(n.get_attribute_uint64(`filesystem::free`)??0),C=Math.floor(a/$o),N=Math.floor(S/$o);return{type:0,bsize:$o,blocks:C,bfree:N,bavail:N,files:0,ffree:0}}function buildBigIntStatFs(n){let a=BigInt(n.get_attribute_uint64(`filesystem::size`)??0),S=BigInt(n.get_attribute_uint64(`filesystem::free`)??0),C=BigInt($o),N=a/C,F=S/C;return{type:0n,bsize:C,blocks:N,bfree:F,bavail:F,files:0n,ffree:0n}}function statfsSync(n,a){let S=_e.File.new_for_path(normalizePath(n)).query_filesystem_info(Qo,null);return a?.bigint===!0?buildBigIntStatFs(S):buildStatFs(S)}function queryFsInfoAsync(n,a){return new Promise((S,C)=>{let N=_e.File.new_for_path(normalizePath(n));N.query_filesystem_info_async(Qo,Z.PRIORITY_DEFAULT,null,(n,F)=>{try{let n=N.query_filesystem_info_finish(F);S(a?buildBigIntStatFs(n):buildStatFs(n))}catch(n){C(n)}})})}function statfs(n,a,S){typeof a==`function`&&(S=a,a={}),queryFsInfoAsync(n,a?.bigint===!0).then(n=>S(null,n),n=>S(n,null))}async function statfsAsync(n,a){return queryFsInfoAsync(n,a?.bigint===!0)}var Qo,$o,es=__esmMin(()=>{Ss(),se(),ve(),Qo=[`filesystem::size`,`filesystem::free`].join(`,`),$o=4096}),ts=__exportAll$3({lchmod:()=>lchmod,lchmodAsync:()=>lchmodAsync,lchmodSync:()=>lchmodSync,lchown:()=>lchown,lchownAsync:()=>lchownAsync,lchownSync:()=>lchownSync,lutimes:()=>lutimes,lutimesAsync:()=>lutimesAsync,lutimesSync:()=>lutimesSync,utimes:()=>utimes,utimesAsync:()=>utimesAsync,utimesSync:()=>utimesSync});function toGLibDateTime(n){let a=n instanceof Date?n.getTime():typeof n==`bigint`?Number(n):typeof n==`string`?Date.parse(n):n*1e3;return Z.DateTime.new_from_unix_utc(Math.floor(a/1e3))}function setTimestamps(n,a,S,C){let N=_e.File.new_for_path(n),F=new _e.FileInfo;F.set_modification_date_time(toGLibDateTime(S)),F.set_access_date_time(toGLibDateTime(a)),N.set_attributes_from_info(F,C,null)}function utimesSync(n,a,S){setTimestamps(normalizePath(n),a,S,_e.FileQueryInfoFlags.NONE)}function utimes(n,a,S,C){Promise.resolve().then(()=>utimesSync(n,a,S)).then(()=>C(null),C)}async function utimesAsync(n,a,S){utimesSync(n,a,S)}function lutimesSync(n,a,S){setTimestamps(normalizePath(n),a,S,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS)}function lutimes(n,a,S,C){Promise.resolve().then(()=>lutimesSync(n,a,S)).then(()=>C(null),C)}async function lutimesAsync(n,a,S){lutimesSync(n,a,S)}function lchownSync(n,a,S){Z.spawn_command_line_sync(`chown -h ${a}:${S} ${normalizePath(n)}`)}function lchown(n,a,S,C){Promise.resolve().then(()=>lchownSync(n,a,S)).then(()=>C(null),C)}async function lchownAsync(n,a,S){lchownSync(n,a,S)}function lchmodSync(n,a){}function lchmod(n,a,S){S(null)}async function lchmodAsync(n,a){}var ns=__esmMin(()=>{Ss(),se(),ve()});function getFH(n){return n instanceof ys?ys.getInstance(n.fd):ys.getInstance(n)}function fstatSync(n,a){return statSync(normalizePath(getFH(n).options.path),a)}function fstat(n,a,S){typeof a==`function`&&(S=a,a={}),Promise.resolve().then(()=>fstatSync(n,a)).then(n=>S(null,n),S)}async function fstatAsync(n,a){return a?.bigint,fstatSync(n,a)}function ftruncateSync(n,a=0){truncateSync(normalizePath(getFH(n).options.path),a)}function ftruncate(n,a,S){typeof a==`function`&&(S=a,a=0),Promise.resolve().then(()=>ftruncateSync(n,a)).then(()=>S(null),S)}async function ftruncateAsync(n,a=0){ftruncateSync(n,a)}function fdatasyncSync(n){getFH(n)._flushSync()}function fdatasync(n,a){Promise.resolve().then(()=>fdatasyncSync(n)).then(()=>a(null),a)}async function fdatasyncAsync(n){fdatasyncSync(n)}function fsyncSync(n){getFH(n)._flushSync()}function fsync(n,a){Promise.resolve().then(()=>fsyncSync(n)).then(()=>a(null),a)}async function fsyncAsync(n){fsyncSync(n)}function fchmodSync(n,a){chmodSync(normalizePath(getFH(n).options.path),a)}function fchmod(n,a,S){Promise.resolve().then(()=>fchmodSync(n,a)).then(()=>S(null),S)}async function fchmodAsync(n,a){fchmodSync(n,a)}function fchownSync(n,a,S){chownSync(normalizePath(getFH(n).options.path),a,S)}function fchown(n,a,S,C){Promise.resolve().then(()=>fchownSync(n,a,S)).then(()=>C(null),C)}async function fchownAsync(n,a,S){fchownSync(n,a,S)}function futimesSync(n,a,S){utimesSync(normalizePath(getFH(n).options.path),a,S)}function futimes(n,a,S,C){Promise.resolve().then(()=>futimesSync(n,a,S)).then(()=>C(null),C)}async function futimesAsync(n,a,S){futimesSync(n,a,S)}function closeSync(n){getFH(n)._closeSync()}function readSync(n,a,S,C,N){let F=0;return typeof S==`object`&&S?(F=S.offset??0,C=S.length??a.byteLength,N=S.position??null):(F=S??0,C??=a.byteLength-F),getFH(n)._readSync(a,F,C,N??null)}function writeSync(n,a,S,C,N){let F;if(typeof a==`string`)F=new TextEncoder().encode(a),typeof S==`number`&&(N=S);else{let n=typeof S==`number`?S:0,N=typeof C==`number`?C:a.byteLength-n;F=new Uint8Array(a.buffer,a.byteOffset+n,N)}return getFH(n)._writeSync(F,N??null)}function readvSync(n,a,S){let C=0;for(let N of a){let a=readSync(n,N,0,N.byteLength,S==null?null:S+C);if(C+=a,a<N.byteLength)break}return C}function readv(n,a,S,C){typeof S==`function`&&(C=S,S=null),Promise.resolve().then(()=>({bytesRead:readvSync(n,a,S),buffers:a})).then(n=>C(null,n.bytesRead,n.buffers),C)}async function readvAsync(n,a,S){return{bytesRead:readvSync(n,a,S),buffers:a}}function writevSync(n,a,S){let C=0;for(let N of a){let a=writeSync(n,N,0,N.byteLength,S==null?null:S+C);C+=a}return C}function writev(n,a,S,C){typeof S==`function`&&(C=S,S=null),Promise.resolve().then(()=>({bytesWritten:writevSync(n,a,S),buffers:a})).then(n=>C(null,n.bytesWritten,n.buffers),C)}async function writevAsync(n,a,S){return{bytesWritten:writevSync(n,a,S),buffers:a}}function exists(n,a){try{statSync(normalizePath(n)),a(!0)}catch{a(!1)}}async function openAsBlob(n,a){let S=readFileSync(normalizePath(n));return new Blob([S],{type:a?.type??``})}var rs=__esmMin(()=>{Ss(),bs(),xs(),ns()}),is=__exportAll$3({access:()=>access$1,appendFile:()=>appendFile$1,chmod:()=>chmod$1,chown:()=>chown$1,copyFile:()=>copyFile$1,cp:()=>cpPromises,default:()=>os,fchmod:()=>fchmodAsync,fchown:()=>fchownAsync,fdatasync:()=>fdatasyncAsync,fstat:()=>fstatAsync,fsync:()=>fsyncAsync,ftruncate:()=>ftruncateAsync,futimes:()=>futimesAsync,glob:()=>globAsync,lchmod:()=>lchmodAsync,lchown:()=>lchownAsync,link:()=>link$1,lstat:()=>lstat$1,lutimes:()=>lutimesAsync,mkdir:()=>mkdir$1,mkdtemp:()=>mkdtemp,open:()=>open$2,openAsBlob:()=>openAsBlob,opendir:()=>opendirAsync,promises_exports:()=>as,readFile:()=>readFile$1,readdir:()=>readdir$1,readlink:()=>readlink$1,readv:()=>readvAsync,realpath:()=>realpath$1,rename:()=>rename$1,rm:()=>rm$1,rmdir:()=>rmdir$1,stat:()=>stat$1,statfs:()=>statfsAsync,symlink:()=>symlink$1,truncate:()=>truncate$1,unlink:()=>unlink$1,utimes:()=>utimesAsync,watch:()=>watchAsync,write:()=>write$1,writeFile:()=>writeFile$1,writev:()=>writevAsync});async function mkdir$1(n,a){let S;typeof a==`object`&&(a.recursive&&(S=a.recursive),a.mode&&a.mode);let C=normalizePath(n);if(S)return mkdirRecursiveAsync(C);let N=_e.File.new_for_path(C);return new Promise((n,a)=>{N.make_directory_async(Z.PRIORITY_DEFAULT,null,(S,F)=>{try{N.make_directory_finish(F),n(void 0)}catch(n){a(createNodeError(n,`mkdir`,C))}})})}async function mkdirRecursiveAsync(n){let a=_e.File.new_for_path(n);try{return await new Promise((n,S)=>{a.make_directory_async(Z.PRIORITY_DEFAULT,null,(C,N)=>{try{a.make_directory_finish(N),n()}catch(n){S(n)}})}),n}catch(a){let S=a;if(S.code===_e.IOErrorEnum.EXISTS)return;if(S.code===_e.IOErrorEnum.NOT_FOUND){let S=Po(n);if(S===n)throw createNodeError(a,`mkdir`,n);let C=await mkdirRecursiveAsync(S),N=_e.File.new_for_path(n);return await new Promise((a,S)=>{N.make_directory_async(Z.PRIORITY_DEFAULT,null,(C,F)=>{try{N.make_directory_finish(F),a()}catch(a){S(createNodeError(a,`mkdir`,n))}})}),C??n}throw createNodeError(a,`mkdir`,n)}}async function readFile$1(n,a={encoding:null,flag:`r`}){let S=normalizePath(n),C=_e.File.new_for_path(S),N,F;try{[N,F]=await new Promise((n,a)=>{C.load_contents_async(null,(S,N)=>{try{n(C.load_contents_finish(N))}catch(n){a(n)}})})}catch(n){throw createNodeError(n,`open`,S)}if(!N)throw createNodeError(Error(`failed to read file`),`open`,S);return encodeUint8Array(getEncodingFromOptions(a,`buffer`),F)}async function mkdtemp(n,a){let S=getEncodingFromOptions(a),C=tempDirPath(n);return await mkdir$1(C,{recursive:!1,mode:448}),decode(C,S)}async function writeFile$1(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S),N;N=typeof a==`string`?new TextEncoder().encode(a):a instanceof Uint8Array?a:new TextEncoder().encode(String(a));let F=await new Promise((n,a)=>{C.replace_async(null,!1,_e.FileCreateFlags.REPLACE_DESTINATION,Z.PRIORITY_DEFAULT,null,(N,F)=>{try{n(C.replace_finish(F))}catch(n){a(createNodeError(n,`open`,S))}})});if(N.length>0){let n=new Z.Bytes(N);await new Promise((a,C)=>{F.write_bytes_async(n,Z.PRIORITY_DEFAULT,null,(n,N)=>{try{F.write_bytes_finish(N),a()}catch(n){C(createNodeError(n,`write`,S))}})})}await new Promise((n,a)=>{F.close_async(Z.PRIORITY_DEFAULT,null,(C,N)=>{try{F.close_finish(N),n()}catch(n){a(createNodeError(n,`close`,S))}})})}async function rmdir$1(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S);if((await new Promise((n,a)=>{C.query_info_async(`standard::type`,_e.FileQueryInfoFlags.NONE,Z.PRIORITY_DEFAULT,null,(N,F)=>{try{n(C.query_info_finish(F))}catch(n){a(createNodeError(n,`rmdir`,S))}})})).get_file_type()!==_e.FileType.DIRECTORY)throw createNodeError(Object.assign(Error(),{code:4}),`rmdir`,S);if((await new Promise((n,a)=>{C.enumerate_children_async(`standard::name`,_e.FileQueryInfoFlags.NONE,Z.PRIORITY_DEFAULT,null,(N,F)=>{try{n(C.enumerate_children_finish(F))}catch(n){a(createNodeError(n,`rmdir`,S))}})})).next_file(null)!==null)throw createNodeError(Object.assign(Error(),{code:5}),`rmdir`,S);await new Promise((n,a)=>{C.delete_async(Z.PRIORITY_DEFAULT,null,(N,F)=>{try{C.delete_finish(F),n()}catch(n){a(createNodeError(n,`rmdir`,S))}})})}async function unlink$1(n){let a=normalizePath(n),S=_e.File.new_for_path(a);await new Promise((n,C)=>{S.delete_async(Z.PRIORITY_DEFAULT,null,(N,F)=>{try{S.delete_finish(F),n()}catch(n){C(createNodeError(n,`unlink`,a))}})})}async function open$2(n,a,S){return new ys({path:n,flags:a,mode:S})}async function write$1(n,a,S,C,N){return typeof a==`string`?_writeStr(n,a,S,C):_writeBuf(n,a,S,C,N)}async function _writeBuf(n,a,S,C,N){return{bytesWritten:(await ys.getInstance(n).write(a,S,C,N)).bytesWritten,buffer:a}}async function _writeStr(n,a,S,C){return{bytesWritten:(await ys.getInstance(n).write(a,S,C)).bytesWritten,buffer:a}}function queryInfoAsync(n,a,S,C){let N=normalizePath(n);return new Promise((n,F)=>{let I=_e.File.new_for_path(N);I.query_info_async(Wo,a,Z.PRIORITY_DEFAULT,null,(a,H)=>{try{let a=I.query_info_finish(H);n(C?.bigint?new BigIntStats(a,N):new Stats(a,N))}catch(n){F(createNodeError(n,S,N))}})})}async function stat$1(n,a){return queryInfoAsync(n,_e.FileQueryInfoFlags.NONE,`stat`,a)}async function lstat$1(n,a){return queryInfoAsync(n,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,`lstat`,a)}async function readdir$1(n,a){try{return readdirSync(n,a)}catch(a){throw createNodeError(a,`scandir`,n)}}async function realpath$1(n){return realpathSync(n)}async function symlink$1(n,a,S){let C=normalizePath(a),N=normalizePath(n);return new Promise((n,a)=>{let S=_e.File.new_for_path(C);S.make_symbolic_link_async(N,Z.PRIORITY_DEFAULT,null,(F,I)=>{try{S.make_symbolic_link_finish(I),n()}catch(n){a(createNodeError(n,`symlink`,N,C))}})})}async function rm$1(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S),N=a?.recursive||!1,F=a?.force||!1,I;try{I=new Dirent(S)}catch(a){if(F)return;throw createNodeError(a,`rm`,n)}if(I.isDirectory()){let C=await readdir$1(n,{withFileTypes:!0});if(!N&&C.length)throw createNodeError(Object.assign(Error(),{code:5}),`rm`,n);for(let n of C)typeof n!=`string`&&await rm$1(jo(S,n.name),a)}await new Promise((a,S)=>{C.delete_async(Z.PRIORITY_DEFAULT,null,(N,I)=>{try{C.delete_finish(I),a()}catch(C){if(F){a();return}S(createNodeError(C,`rm`,n))}})})}async function rename$1(n,a){renameSync(n,a)}async function copyFile$1(n,a,S){copyFileSync(n,a,S)}async function access$1(n,a){accessSync(n,a)}async function appendFile$1(n,a,S){appendFileSync(n,a,S)}async function readlink$1(n,a){return readlinkSync(n,a)}async function truncate$1(n,a){truncateSync(n,a)}async function chmod$1(n,a){chmodSync(n,a)}async function chown$1(n,a,S){chownSync(n,a,S)}async function link$1(n,a){linkSync(n,a)}var as,os,ss=__esmMin(()=>{_o(),vo(),Ss(),ws(),Uo(),Go(),bs(),qo(),xs(),Jo(),Xo(),Zo(),es(),ns(),rs(),se(),ve(),Ho(),as=go({access:()=>access$1,appendFile:()=>appendFile$1,chmod:()=>chmod$1,chown:()=>chown$1,copyFile:()=>copyFile$1,cp:()=>cpPromises,default:()=>os,fchmod:()=>fchmodAsync,fchown:()=>fchownAsync,fdatasync:()=>fdatasyncAsync,fstat:()=>fstatAsync,fsync:()=>fsyncAsync,ftruncate:()=>ftruncateAsync,futimes:()=>futimesAsync,glob:()=>globAsync,lchmod:()=>lchmodAsync,lchown:()=>lchownAsync,link:()=>link$1,lstat:()=>lstat$1,lutimes:()=>lutimesAsync,mkdir:()=>mkdir$1,mkdtemp:()=>mkdtemp,open:()=>open$2,openAsBlob:()=>openAsBlob,opendir:()=>opendirAsync,readFile:()=>readFile$1,readdir:()=>readdir$1,readlink:()=>readlink$1,readv:()=>readvAsync,realpath:()=>realpath$1,rename:()=>rename$1,rm:()=>rm$1,rmdir:()=>rmdir$1,stat:()=>stat$1,statfs:()=>statfsAsync,symlink:()=>symlink$1,truncate:()=>truncate$1,unlink:()=>unlink$1,utimes:()=>utimesAsync,watch:()=>watchAsync,write:()=>write$1,writeFile:()=>writeFile$1,writev:()=>writevAsync}),__name$1(mkdir$1,`mkdir`),__name$1(readFile$1,`readFile`),__name$1(writeFile$1,`writeFile`),__name$1(rmdir$1,`rmdir`),__name$1(unlink$1,`unlink`),__name$1(open$2,`open`),__name$1(write$1,`write`),__name$1(stat$1,`stat`),__name$1(lstat$1,`lstat`),__name$1(readdir$1,`readdir`),__name$1(realpath$1,`realpath`),__name$1(symlink$1,`symlink`),__name$1(rm$1,`rm`),__name$1(rename$1,`rename`),__name$1(copyFile$1,`copyFile`),__name$1(access$1,`access`),__name$1(appendFile$1,`appendFile`),__name$1(readlink$1,`readlink`),__name$1(truncate$1,`truncate`),__name$1(chmod$1,`chmod`),__name$1(chown$1,`chown`),__name$1(link$1,`link`),os={readFile:readFile$1,mkdir:mkdir$1,mkdtemp,realpath:realpath$1,readdir:readdir$1,writeFile:writeFile$1,rmdir:rmdir$1,unlink:unlink$1,open:open$2,write:write$1,rm:rm$1,lstat:lstat$1,symlink:symlink$1,stat:stat$1,rename:rename$1,copyFile:copyFile$1,access:access$1,appendFile:appendFile$1,readlink:readlink$1,truncate:truncate$1,chmod:chmod$1,chown:chown$1,link:link$1,cp:cpPromises,opendir:opendirAsync,glob:globAsync,watch:watchAsync,statfs:statfsAsync,utimes:utimesAsync,lutimes:lutimesAsync,lchown:lchownAsync,lchmod:lchmodAsync,fstat:fstatAsync,ftruncate:ftruncateAsync,fdatasync:fdatasyncAsync,fsync:fsyncAsync,fchmod:fchmodAsync,fchown:fchownAsync,futimes:futimesAsync,readv:readvAsync,writev:writevAsync,openAsBlob}});function parseOptsCb(n,a){return typeof n==`function`?{options:{},callback:n}:{options:n??{},callback:a}}function statImpl(n,a,S,C,N){let F=normalizePath(n),I=_e.File.new_for_path(F);I.query_info_async(Wo,a,Z.PRIORITY_DEFAULT,null,(n,a)=>{try{let n=I.query_info_finish(a);N(null,C?.bigint?new BigIntStats(n,F):new Stats(n,F))}catch(n){N(createNodeError(n,S,F))}})}function stat(n,a,S){let{options:C,callback:N}=parseOptsCb(a,S);statImpl(n,_e.FileQueryInfoFlags.NONE,`stat`,C,N)}function lstat(n,a,S){let{options:C,callback:N}=parseOptsCb(a,S);statImpl(n,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,`lstat`,C,N)}function readdir(n,a,S){let{options:C,callback:N}=parseOptsCb(a,S);Promise.resolve().then(()=>{try{N(null,readdirSync(n,C))}catch(a){N(createNodeError(a,`readdir`,n))}})}function realpath(n,a,S){let{callback:C}=parseOptsCb(a,S);Promise.resolve().then(()=>{try{C(null,realpathSync(n))}catch(n){C(n)}})}function symlink(n,a,S,C){let N=typeof S==`function`?S:C;if(typeof N!=`function`)throw TypeError(`Callback must be a function. Received `+typeof N);let F=normalizePath(a),I=normalizePath(n),H=_e.File.new_for_path(F);H.make_symbolic_link_async(I,Z.PRIORITY_DEFAULT,null,(n,a)=>{try{H.make_symbolic_link_finish(a),N(null)}catch(n){N(createNodeError(n,`symlink`,I,F))}})}function open$1(n,...a){let S,C,N;switch(a.length){case 1:N=a[0];break;case 2:S=a[0],N=a[1];break;case 3:S=a[0],C=a[1],N=a[2];break;default:break}open$2(n,S,C).then(n=>{N(null,n.fd)}).catch(n=>{N(n,-1)})}function write(n,a,...S){let C=ys.getInstance(n);if(typeof a==`string`){let n=S.pop(),N=S[0],F=S[1];C.write(a,N,F).then(a=>{n(null,a.bytesWritten,a.buffer)}).catch(a=>{n(a,0,``)});return}let N=S[S.length-1],F=S[0],I=S[1],H=S[2];C.write(a,F,I,H).then(n=>{N(null,n.bytesWritten,n.buffer)}).catch(n=>{N(n,0,dt.from([]))})}function read$1(n,...a){let S=ys.getInstance(n),C=a[a.length-1],N,F,I,H;if(!(a.length<=1))if(typeof a[0]==`object`&&!ArrayBuffer.isView(a[0])){let n=a[0];N=n.buffer,F=n.offset,I=n.length,H=n.position}else N=a[0],F=a[1],I=a[2],H=a[3];S.read(N,F,I,H).then(n=>{C(null,n.bytesRead,n.buffer)}).catch(n=>{C(n,0,dt.from([]))})}function close$1(n,a){ys.getInstance(n).close().then(()=>{a(null)}).catch(n=>a(n))}function rm(n,...a){let S={},C=a[a.length-1];a.length>=2&&(S=a[0]),rm$1(n,S).then(()=>{C(null)}).catch(n=>{C(n)})}function rename(n,a,S){Promise.resolve().then(()=>{try{renameSync(n,a),S(null)}catch(n){S(n)}})}function copyFile(n,a,S,C){let N=typeof S==`function`?0:S,F=typeof S==`function`?S:C;Promise.resolve().then(()=>{try{copyFileSync(n,a,N),F(null)}catch(n){F(n)}})}function access(n,a,S){let C=typeof a==`function`?void 0:a,N=typeof a==`function`?a:S;Promise.resolve().then(()=>{try{accessSync(n,C),N(null)}catch(n){N(n)}})}function appendFile(n,a,S,C){let N=typeof S==`function`?S:C,F=typeof S==`function`?void 0:S;Promise.resolve().then(()=>{try{appendFileSync(n,a,F),N(null)}catch(n){N(n)}})}function readlink(n,a,S){let C=typeof a==`function`?a:S,N=typeof a==`function`?void 0:a;Promise.resolve().then(()=>{try{C(null,readlinkSync(n,N))}catch(n){C(n,``)}})}function truncate(n,a,S){let C=typeof a==`function`?0:a,N=typeof a==`function`?a:S;Promise.resolve().then(()=>{try{truncateSync(n,C),N(null)}catch(n){N(n)}})}function chmod(n,a,S){Promise.resolve().then(()=>{try{chmodSync(n,a),S(null)}catch(n){S(n)}})}function chown(n,a,S,C){Promise.resolve().then(()=>{try{chownSync(n,a,S),C(null)}catch(n){C(n)}})}function mkdir(n,a,S){let C=typeof a==`function`?a:S,N=typeof a==`function`?void 0:a;Promise.resolve().then(()=>{try{mkdirSync(n,N),C(null)}catch(n){C(n)}})}function rmdir(n,a,S){let C=typeof a==`function`?a:S,N=typeof a==`function`?void 0:a;Promise.resolve().then(()=>{try{rmdirSync(n,N),C(null)}catch(n){C(n)}})}function readFile(n,a,S){let C=typeof a==`function`?a:S,N=typeof a==`function`?void 0:a,F=normalizePath(n);Promise.resolve().then(()=>{try{C(null,readFileSync(F,typeof N==`string`?{encoding:N,flag:`r`}:{encoding:N?.encoding??null,flag:N?.flag??`r`}))}catch(n){C(n,null)}})}function writeFile(n,a,S,C){let N=typeof S==`function`?S:C,F=normalizePath(n);Promise.resolve().then(()=>{try{writeFileSync(F,a),N(null)}catch(n){N(n)}})}function link(n,a,S){let C=normalizePath(n),N=normalizePath(a);Promise.resolve().then(()=>{try{if(!Z.spawn_command_line_sync(`ln ${C} ${N}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, link '${C}' -> '${N}'`),{code:`EPERM`,errno:-1,syscall:`link`,path:C,dest:N});S(null)}catch(n){S(n)}})}function unlink(n,a){let S=normalizePath(n);Promise.resolve().then(()=>{try{Z.unlink(S),a(null)}catch(n){a(n)}})}var cs=__esmMin(()=>{Ss(),Go(),bs(),qo(),xs(),ss(),se(),ve(),bt(),__name$1(open$1,`open`),__name$1(read$1,`read`),__name$1(close$1,`close`)});function toPathIfFileURL(n){return normalizePath(n)}function createWriteStream(n,a){return new WriteStream$1(n,a)}var ls,us,WriteStream$1,ds=__esmMin(()=>{Ss(),cs(),Jr(),ls=Symbol(`kIsPerformingIO`),us=Symbol(`kIoDone`),WriteStream$1=class extends Ur{static{__name$1(this,`WriteStream`)}close(n,a=null){this.fd?(close$1(this.fd,S=>{n(S||a)}),this.fd=null):n(a)}bytesWritten=0;path;pending;fd=null;flags=`w`;mode=438;pos=0;[ls]=!1;constructor(n,a={}){super(a),this.path=toPathIfFileURL(n),a.encoding&&this.setDefaultEncoding(a.encoding)}_construct(n){open$1(this.path.toString(),this.flags,this.mode,(a,S)=>{if(a){n(a);return}this.fd=S,n(),this.emit(`open`,this.fd),this.emit(`ready`)})}_write(n,a,S){this[ls]=!0,write(this.fd,n,0,n.length,this.pos,(n,a)=>{if(this[ls]=!1,this.destroyed)return S(n),this.emit(us,n);if(n)return S(n);this.bytesWritten+=a,S()}),this.pos!==void 0&&(this.pos+=n.length)}_destroy(n,a){this[ls]?this.once(us,S=>this.close(a,n||S)):this.close(a,n)}}});function resolveIOMode(n){if(n==null)return`r`;if(typeof n==`number`){let a=(n&2)!=0,S=(n&1)!=0,C=(n&1024)!=0,N=(n&512)!=0;return a?N?`w+`:`r+`:S?C?`a`:`w`:`r`}switch(n){case`ax`:case`wx`:return`w`;case`ax+`:case`wx+`:return`w+`;case`as`:case`rs+`:return`r+`;case`as+`:return`a+`;default:return n}}function shouldCreate(n){return typeof n==`number`?(n&64)!=0:typeof n==`string`?n===`w`||n===`w+`||n===`wx`||n===`wx+`||n===`a`||n===`a+`||n===`ax`||n===`ax+`||n===`as`||n===`as+`:!1}function openIOChannel(n,a,S){try{return Z.IOChannel.new_file(n,a)}catch(C){if(S&&a===`r+`&&C?.code===Z.FileError.NOENT)return Z.file_set_contents(n,new Uint8Array),Z.IOChannel.new_file(n,a);throw C}}function mapOpenError(n,a){return createGLibFileError(n,`open`,{path:a})}var fs=__esmMin(()=>{se(),et()});function normalizeAndValidateEncoding(n){return n&&checkEncoding(n),normalizeEncoding(n)}function utf8DecodeMaximalSubpart(n,a,S){let C=``,N=a;for(;N<S;){let a=n[N];if(a<=127){C+=String.fromCharCode(a),N++;continue}if(a>=194&&a<=223){N+1<S&&n[N+1]>=128&&n[N+1]<=191?(C+=String.fromCharCode((a&31)<<6|n[N+1]&63),N+=2):(C+=`�`,N++);continue}if(a>=224&&a<=239){let F,I;if(a===224?(F=160,I=191):a===237?(F=128,I=159):(F=128,I=191),N+1>=S){C+=`�`,N++;continue}let H=n[N+1];if(H<F||H>I){C+=`�`,N++;continue}if(N+2>=S){C+=`�`,N+=2;continue}let W=n[N+2];if(W<128||W>191){C+=`�`,N+=2;continue}let K=(a&15)<<12|(H&63)<<6|W&63;C+=String.fromCharCode(K),N+=3;continue}if(a>=240&&a<=244){let F,I;if(a===240?(F=144,I=191):a===244?(F=128,I=143):(F=128,I=191),N+1>=S){C+=`�`,N++;continue}let H=n[N+1];if(H<F||H>I){C+=`�`,N++;continue}if(N+2>=S){C+=`�`,N+=2;continue}let W=n[N+2];if(W<128||W>191){C+=`�`,N+=2;continue}if(N+3>=S){C+=`�`,N+=3;continue}let K=n[N+3];if(K<128||K>191){C+=`�`,N+=3;continue}let q=(a&7)<<18|(H&63)<<12|(W&63)<<6|K&63;C+=String.fromCharCode(55296+(q-65536>>10),56320+(q-65536&1023)),N+=4;continue}C+=`�`,N++}return C}function utf8CharLength(n){return n&128?n>=194&&n<=223?2:n>=224&&n<=239?3:n>=240&&n<=244?4:0:1}function isValidContinuation(n,a,S,C){if(S===1){if(a===3)return n===224?C>=160&&C<=191:n===237?C>=128&&C<=159:C>=128&&C<=191;if(a===4)return n===240?C>=144&&C<=191:n===244?C>=128&&C<=143:C>=128&&C<=191}return C>=128&&C<=191}function writeUtf8(n,a){let S=0,C=``;if(n._lastNeed>0){for(;S<a.length&&n._lastNeed>0;){let N=a[S],F=n._lastTotal-n._lastNeed;if(isValidContinuation(n._lastLeadByte,n._lastTotal,F,N))n._lastChar[F]=N,n._lastNeed--,S++;else{C+=`�`,n._lastNeed=0,n._lastTotal=0,n._lastLeadByte=0;break}}if(n._lastNeed===0&&n._lastTotal>0&&(C+=utf8DecodeMaximalSubpart(n._lastChar,0,n._lastTotal),n._lastTotal=0,n._lastLeadByte=0),n._lastNeed>0)return C}let N=a.length;for(let C=0;C<Math.min(4,a.length-S);C++){let F=a.length-1-C;if(F<S)break;let I=a[F];if((I&192)!=128){let S=utf8CharLength(I);if(S>0&&I>=128){let C=a.length-F;if(C<S){let H=!0;for(let n=1;n<C;n++)if(!isValidContinuation(I,S,n,a[F+n])){H=!1;break}if(H){N=F;for(let S=0;S<C;S++)n._lastChar[S]=a[F+S];n._lastNeed=S-C,n._lastTotal=S,n._lastLeadByte=I}}}break}}return N>S&&(C+=utf8DecodeMaximalSubpart(a,S,N)),C}function writeUtf16le(n,a){let S=``,C=0;if(n._lastNeed>0){let N=n._lastTotal-n._lastNeed,F=Math.min(n._lastNeed,a.length);for(let S=0;S<F;S++)n._lastChar[N+S]=a[S];if(n._lastNeed-=F,C=F,n._lastNeed>0)return``;let I=n._lastTotal,H=0;for(;H+1<I;){let N=n._lastChar[H]|n._lastChar[H+1]<<8;if(H+=2,N>=55296&&N<=56319){if(H+1<I){let a=n._lastChar[H]|n._lastChar[H+1]<<8;if(a>=56320&&a<=57343){S+=String.fromCharCode(N,a),H+=2;continue}}if(C+1<a.length){let n=a[C]|a[C+1]<<8;if(n>=56320&&n<=57343){S+=String.fromCharCode(N,n),C+=2;continue}}else if(C>=a.length)return n._lastChar[0]=n._lastChar[H-2],n._lastChar[1]=n._lastChar[H-1],n._lastNeed=2,n._lastTotal=4,S}S+=String.fromCharCode(N)}n._lastTotal=0}for(;C+1<a.length;){let N=a[C]|a[C+1]<<8;if(C+=2,N>=55296&&N<=56319)if(C+1<a.length){let n=a[C]|a[C+1]<<8;if(n>=56320&&n<=57343){S+=String.fromCharCode(N,n),C+=2;continue}}else if(C<a.length)return S+=String.fromCharCode(N),n._lastChar[0]=a[C],n._lastNeed=1,n._lastTotal=2,S;else return n._lastChar[0]=a[C-2],n._lastChar[1]=a[C-1],n._lastNeed=2,n._lastTotal=4,S;S+=String.fromCharCode(N)}return C<a.length&&(n._lastChar[0]=a[C],n._lastNeed=1,n._lastTotal=2),S}function writeBase64(n,a){let S=0;if(n._lastNeed>0){let C=Math.min(n._lastNeed,a.length);for(let S=0;S<C;S++)n._lastChar[n._lastTotal-n._lastNeed+S]=a[S],n._lastNeed--;if(S=C,n._lastNeed>0)return``}let C=a.length-S,N=C-C%3,F=``;n._lastTotal>0&&n._lastNeed===0&&(F+=base64Encode$1(n._lastChar.subarray(0,n._lastTotal)),n._lastTotal=0),N>0&&(F+=base64Encode$1(a.subarray(S,S+N)));let I=C-N;if(I>0){for(let C=0;C<I;C++)n._lastChar[C]=a[S+N+C];n._lastNeed=3-I,n._lastTotal=3}return F}function decodeAscii(n){let a=``;for(let S=0;S<n.length;S++)a+=String.fromCharCode(n[S]&127);return a}function decodeLatin1(n){let a=``;for(let S=0;S<n.length;S++)a+=String.fromCharCode(n[S]);return a}function decodeHex(n){let a=``;for(let S=0;S<n.length;S++)a+=n[S].toString(16).padStart(2,`0`);return a}var ps,ms=__esmMin(()=>{bt(),ps=function StringDecoder(n){this.encoding=normalizeAndValidateEncoding(n),this._lastNeed=0,this._lastTotal=0,this._lastLeadByte=0,this.encoding===`utf8`||this.encoding===`utf16le`?this._lastChar=new Uint8Array(4):this.encoding===`base64`?this._lastChar=new Uint8Array(3):this._lastChar=new Uint8Array},ps.prototype.write=function write(n){if(n.length===0)return``;switch(this.encoding){case`utf8`:return writeUtf8(this,n);case`utf16le`:return writeUtf16le(this,n);case`base64`:return writeBase64(this,n);case`ascii`:return decodeAscii(n);case`latin1`:return decodeLatin1(n);case`hex`:return decodeHex(n);default:return decodeAscii(n)}},ps.prototype.end=function end(n){let a=``;if(n&&n.length>0&&(a=this.write(n)),this.encoding===`utf8`&&this._lastNeed>0)a+=`�`,this._lastNeed=0,this._lastTotal=0;else if(this.encoding===`utf16le`&&this._lastNeed>0){let n=this._lastTotal-this._lastNeed;for(let S=0;S+1<n;S+=2)a+=String.fromCharCode(this._lastChar[S]|this._lastChar[S+1]<<8);this._lastNeed=0,this._lastTotal=0}else if(this.encoding===`base64`&&this._lastNeed>0){let n=this._lastChar.subarray(0,this._lastTotal-this._lastNeed);a+=base64Encode$1(n),this._lastNeed=0,this._lastTotal=0}return a}});function createInterface$1(n,a,S,C){return typeof n==`object`&&n&&!(`read`in n&&typeof n.read==`function`)?new Interface$1(n):new Interface$1({input:n,output:a,completer:S,terminal:C})}function*emitKeys(n){for(;;){let a=yield,S=a,C=!1,N={sequence:``,name:void 0,ctrl:!1,meta:!1,shift:!1};if(a===`\x1B`&&(C=!0,S+=a=yield,a===`\x1B`&&(S+=a=yield)),C&&(a===`O`||a===`[`)){let n=a,C=0;if(a===`O`)S+=a=yield,a>=`0`&&a<=`9`&&(C=a.charCodeAt(0)-1,S+=a=yield),n+=a;else if(a===`[`){S+=a=yield,a===`[`&&(n+=a,S+=a=yield);let N=S.length-1;a>=`0`&&a<=`9`&&(S+=a=yield,a>=`0`&&a<=`9`&&(S+=a=yield,a>=`0`&&a<=`9`&&(S+=a=yield))),a===`;`&&(S+=a=yield,a>=`0`&&a<=`9`&&(S+=yield));let F=S.slice(N),I;(I=/^(?:(\d\d?)(?:;(\d))?([~^$])|(\d{3}~))$/.exec(F))?I[4]?n+=I[4]:(n+=I[1]+I[3],C=(parseInt(I[2]??`1`,10)||1)-1):(I=/^((\d;)?(\d))?([A-Za-z])$/.exec(F))?(n+=I[4],C=(parseInt(I[3]??`1`,10)||1)-1):n+=F}switch(N.ctrl=!!(C&4),N.meta=!!(C&10),N.shift=!!(C&1),N.code=n,n){case`[P`:case`OP`:case`[11~`:case`[[A`:N.name=`f1`;break;case`[Q`:case`OQ`:case`[12~`:case`[[B`:N.name=`f2`;break;case`[R`:case`OR`:case`[13~`:case`[[C`:N.name=`f3`;break;case`[S`:case`OS`:case`[14~`:case`[[D`:N.name=`f4`;break;case`[15~`:case`[[E`:N.name=`f5`;break;case`[17~`:N.name=`f6`;break;case`[18~`:N.name=`f7`;break;case`[19~`:N.name=`f8`;break;case`[20~`:N.name=`f9`;break;case`[21~`:N.name=`f10`;break;case`[23~`:N.name=`f11`;break;case`[24~`:N.name=`f12`;break;case`[200~`:N.name=`paste-start`;break;case`[201~`:N.name=`paste-end`;break;case`[A`:case`OA`:N.name=`up`;break;case`[B`:case`OB`:N.name=`down`;break;case`[C`:case`OC`:N.name=`right`;break;case`[D`:case`OD`:N.name=`left`;break;case`[E`:case`OE`:N.name=`clear`;break;case`[F`:case`OF`:N.name=`end`;break;case`[H`:case`OH`:N.name=`home`;break;case`[1~`:N.name=`home`;break;case`[2~`:N.name=`insert`;break;case`[3~`:N.name=`delete`;break;case`[4~`:N.name=`end`;break;case`[5~`:case`[[5~`:N.name=`pageup`;break;case`[6~`:case`[[6~`:N.name=`pagedown`;break;case`[7~`:N.name=`home`;break;case`[8~`:N.name=`end`;break;case`[a`:N.name=`up`,N.shift=!0;break;case`[b`:N.name=`down`,N.shift=!0;break;case`[c`:N.name=`right`,N.shift=!0;break;case`[d`:N.name=`left`,N.shift=!0;break;case`[2$`:N.name=`insert`,N.shift=!0;break;case`[3$`:N.name=`delete`,N.shift=!0;break;case`[5$`:N.name=`pageup`,N.shift=!0;break;case`[6$`:N.name=`pagedown`,N.shift=!0;break;case`[7$`:N.name=`home`,N.shift=!0;break;case`[8$`:N.name=`end`,N.shift=!0;break;case`Oa`:N.name=`up`,N.ctrl=!0;break;case`Ob`:N.name=`down`,N.ctrl=!0;break;case`Oc`:N.name=`right`,N.ctrl=!0;break;case`Od`:N.name=`left`,N.ctrl=!0;break;case`[2^`:N.name=`insert`,N.ctrl=!0;break;case`[3^`:N.name=`delete`,N.ctrl=!0;break;case`[5^`:N.name=`pageup`,N.ctrl=!0;break;case`[6^`:N.name=`pagedown`,N.ctrl=!0;break;case`[7^`:N.name=`home`,N.ctrl=!0;break;case`[8^`:N.name=`end`,N.ctrl=!0;break;case`[Z`:N.name=`tab`,N.shift=!0;break;default:N.name=`undefined`;break}}else a===`\r`?(N.name=`return`,N.meta=C):a===`
11
+ `?(N.name=`enter`,N.meta=C):a===` `?(N.name=`tab`,N.meta=C):a===`\b`||a===``?(N.name=`backspace`,N.meta=C):a===`\x1B`?(N.name=`escape`,N.meta=C):a===` `?(N.name=`space`,N.meta=C):!C&&a<=``?(N.name=String.fromCharCode(a.charCodeAt(0)+97-1),N.ctrl=!0):/^[0-9A-Za-z]$/.test(a)?(N.name=a.toLowerCase(),N.shift=/^[A-Z]$/.test(a),N.meta=C):C&&(N.name=a.length?void 0:`escape`,N.meta=!0);N.sequence=S,S.length!==0&&(N.name!==void 0||C)?n.emit(`keypress`,C?void 0:S,N):S.length===1&&n.emit(`keypress`,S,N)}}function emitKeypressEvents(n,a={}){let S=n;if(S[gs])return;S[gs]=new ps(`utf8`),S[_s]=emitKeys(n),S[_s].next();let C=a.escapeCodeTimeout??500,N,triggerEscape=()=>S[_s].next(``);function onData(a){if(n.listenerCount(`keypress`)>0){let F=S[gs].write(typeof a==`string`?Buffer.from(a):a);if(F){clearTimeout(N);for(let a of F)try{S[_s].next(a),a===`\x1B`&&(N=setTimeout(triggerEscape,C))}catch{S[_s]=emitKeys(n),S[_s].next()}}}else n.removeListener(`data`,onData),delete S[gs],delete S[_s]}n.on(`data`,onData)}var hs,Interface$1,gs,_s,vs=__esmMin(()=>{Vt(),ms(),hs=/\r\n|\r|\n/,Interface$1=class extends At{static{__name$1(this,`Interface`)}terminal;line=``;cursor=0;escapeCodeTimeout;_input;_output;get input(){return this._input}get output(){return this._output}_prompt;_closed=!1;_paused=!1;history;_historySize;_crlfDelay;_lineBuffer=``;_questionCallback=null;_boundOnData=null;_boundOnEnd=null;_boundOnError=null;_boundOnKeypress=null;constructor(n,a){super();let S;if(S=n&&typeof n==`object`&&!(`read`in n&&typeof n.read==`function`)?n:{input:n,output:a},this._input=S.input||null,this._output=S.output||null,this._prompt=S.prompt||`> `,this.terminal=S.terminal??this._output!==null,this._historySize=S.historySize??30,this.history=[],this._crlfDelay=S.crlfDelay??100,this.escapeCodeTimeout=S.escapeCodeTimeout,this._input&&(this._boundOnData=n=>this._onData(n),this._boundOnEnd=()=>this._onEnd(),this._boundOnError=n=>this.emit(`error`,n),this._input.on(`data`,this._boundOnData),this._input.on(`end`,this._boundOnEnd),this._input.on(`error`,this._boundOnError),`setEncoding`in this._input&&typeof this._input.setEncoding==`function`&&this._input.setEncoding(`utf8`),this.terminal)){emitKeypressEvents(this._input,this);let n=this._input;typeof n.setRawMode==`function`&&(n.isRaw||n.setRawMode(!0)),typeof this._input.resume==`function`&&this._input.resume(),this._boundOnKeypress=(n,a)=>{a&&(a.name===`backspace`||a.name===`delete`?this.cursor>0&&(this.line=this.line.slice(0,this.cursor-1)+this.line.slice(this.cursor),this.cursor--):n&&n.length===1&&!a.ctrl&&!a.meta&&a.name!==`return`&&a.name!==`enter`&&a.name!==`escape`&&(this.line=this.line.slice(0,this.cursor)+n+this.line.slice(this.cursor),this.cursor++))},this._input.on(`keypress`,this._boundOnKeypress)}}_onData(n){if(this._closed||this._paused)return;let a=typeof n==`string`?n:n.toString(`utf8`);this._lineBuffer+=a;let S;for(;(S=hs.exec(this._lineBuffer))!==null;){let n=this._lineBuffer.substring(0,S.index);this._lineBuffer=this._lineBuffer.substring(S.index+S[0].length),this._onLine(n)}}_onLine(n){if(n.length>0&&this._historySize>0&&(this.history.length===0||this.history[0]!==n)&&(this.history.unshift(n),this.history.length>this._historySize&&this.history.pop()),this._questionCallback){let a=this._questionCallback;this._questionCallback=null,a(n)}this.emit(`line`,n)}_onEnd(){this._lineBuffer.length>0&&(this._onLine(this._lineBuffer),this._lineBuffer=``),this.close()}setPrompt(n){this._prompt=n}getPrompt(){return this._prompt}prompt(n){if(this._closed)throw Error(`readline was closed`);this._output?.write(this._prompt)}question(n,a,S){if(this._closed)throw Error(`readline was closed`);let C=typeof a==`function`?a:S;this._questionCallback=C,this._output?.write(n)}clearLine(n,a){return this.line=``,this.cursor=0,a&&a(),!0}write(n,a){if(!this._closed){if(a){this._input&&this._input.emit(`keypress`,n??``,a);return}if(n!=null){let a=typeof n==`string`?n:n.toString(`utf8`);a&&(this.line=this.line.slice(0,this.cursor)+a+this.line.slice(this.cursor),this.cursor+=a.length),this._output?.write(n)}}}close(){if(!this._closed){if(this._closed=!0,this._input){this._boundOnData&&this._input.removeListener(`data`,this._boundOnData),this._boundOnEnd&&this._input.removeListener(`end`,this._boundOnEnd),this._boundOnError&&this._input.removeListener(`error`,this._boundOnError),this._boundOnKeypress&&this._input.removeListener(`keypress`,this._boundOnKeypress),this._boundOnData=null,this._boundOnEnd=null,this._boundOnError=null,this._boundOnKeypress=null;let n=this._input;this.terminal&&n.isRaw&&typeof n.setRawMode==`function`&&n.setRawMode(!1),typeof this._input.pause==`function`&&this._input.pause()}this.emit(`close`)}}pause(){return this._closed?this:(this._paused=!0,this._input&&`pause`in this._input&&typeof this._input.pause==`function`&&this._input.pause(),this.emit(`pause`),this)}resume(){return this._closed?this:(this._paused=!1,this._input&&`resume`in this._input&&typeof this._input.resume==`function`&&this._input.resume(),this.emit(`resume`),this)}getCursorPos(){let n=this._output?.columns??80,a=this._prompt.length+this.cursor;return{rows:Math.floor(a/n),cols:a%n}}[Symbol.asyncIterator](){let n=[],a=null,S=!1,onLine=S=>{if(a){let n=a;a=null,n({value:S,done:!1})}else n.push(S)},onClose=()=>{if(S=!0,a){let n=a;a=null,n({value:void 0,done:!0})}};return this.on(`line`,onLine),this.on(`close`,onClose),{next:()=>n.length>0?Promise.resolve({value:n.shift(),done:!1}):S?Promise.resolve({value:void 0,done:!0}):new Promise(n=>{a=n}),return:()=>(S=!0,this.removeListener(`line`,onLine),this.removeListener(`close`,onClose),Promise.resolve({value:void 0,done:!0})),[Symbol.asyncIterator](){return this}}}},__name$1(createInterface$1,`createInterface`),gs=Symbol(`keypress-decoder`),_s=Symbol(`escape-decoder`)}),ys,bs=__esmMin(()=>{vo(),Ss(),Ko(),ds(),Go(),fs(),xs(),se(),ve(),bt(),vs(),ys=class FileHandle{options;_file;_ioStream=null;_readStream=null;_gFile;_ioMode;_ioLock=Promise.resolve();static instances={};constructor(n){this.options=n,this.options.flags||=`r`,this.options.mode||=438;let a=normalizePath(n.path),S=shouldCreate(n.flags),C=resolveIOMode(n.flags);try{this._file=openIOChannel(a,C,S)}catch(n){throw mapOpenError(n,a)}return this._file.set_encoding(null),this.fd=this._file.unix_get_fd(),this._gFile=_e.File.new_for_path(a),this._ioMode=C,FileHandle.instances[this.fd]=this,FileHandle.getInstance(this.fd)}_getReadStream(){return this._ioStream?{input:this._ioStream.get_input_stream(),seekable:this._ioStream}:this._ioMode===`r`?(this._readStream||=this._gFile.read(null),{input:this._readStream,seekable:this._readStream}):(this._ioStream=this._gFile.open_readwrite(null),{input:this._ioStream.get_input_stream(),seekable:this._ioStream})}_getWriteStream(){if(this._ioStream)return this._ioStream;if(this._ioMode===`r`)throw Error(`FileHandle opened read-only; cannot write`);return this._ioStream=this._gFile.open_readwrite(null),this._ioStream}_serialize(n){let a=this._ioLock.catch(()=>{}).then(n);return this._ioLock=a,a}fd;static getInstance(n){if(!FileHandle.instances[n])throw Error(`No instance found for fd!`);return FileHandle.instances[n]}async appendFile(n,a){let S=getEncodingFromOptions(a);typeof n==`string`&&(n=dt.from(n)),S&&this._file.set_encoding(S);let[C,N]=this._file.write_chars(n,n.length);if(C===Z.IOStatus.ERROR)throw Error(`Error on append to file!`)}async chown(n,a){chownSync(normalizePath(this.options.path),n,a)}async chmod(n){chmodSync(normalizePath(this.options.path),n)}createReadStream(n){return new ReadStream$1(this.options.path,n)}createWriteStream(n){return new WriteStream$1(this.options.path,n)}async datasync(){this._file.flush()}async sync(){this._file.flush()}async read(...n){let a,S,C,N;if(typeof n[0]==`object`&&!(n[0]instanceof Uint8Array)&&!(n[0]instanceof dt)){let F=n[0];a=F.buffer,S=F.offset,C=F.length,N=F.position}else a=n[0],S=n[1],C=n[2],N=n[3];let F=a,I=S??0,H=C??F?.byteLength??65536,W=N??0;return this._serialize(async()=>{let{input:n,seekable:S}=this._getReadStream();S.seek(BigInt(W),Z.SeekType.SET,null);let C=n.read_bytes(H,null).get_data(),N=C?.length??0;return F&&C&&N>0&&F.set(C,I),{bytesRead:N,buffer:a}})}readableWebStream(){let n=globalThis.ReadableStream;if(typeof n!=`function`)throw Error(`readableWebStream() requires a global ReadableStream. Import "node:stream/web" or "@gjsify/streams" before calling this method.`);return new n}async readFile(n){let a=getEncodingFromOptions(n,`buffer`);a&&this._file.set_encoding(a);let[S,C]=this._file.read_to_end();if(S===Z.IOStatus.ERROR)throw Error(`Error on read from file!`);return encodeUint8Array(a,C)}readLines(n){return createInterface$1({input:this.createReadStream(n),crlfDelay:1/0})}async stat(n){let a=await new Promise((n,a)=>{this._gFile.query_info_async(Wo,_e.FileQueryInfoFlags.NONE,Z.PRIORITY_DEFAULT,null,(S,C)=>{try{n(this._gFile.query_info_finish(C))}catch(n){a(n)}})}),S=normalizePath(this.options.path);return n?.bigint?new BigIntStats(a,S):new Stats(a,S)}async truncate(n=0){let a=Math.max(0,n);this._file.flush(),this._getWriteStream().get_output_stream().truncate(a,null)}async utimes(n,a){let{utimesSync:S}=await Promise.resolve().then(()=>(ns(),ts));S(normalizePath(this.options.path),n,a)}async writeFile(n,a){let S=getEncodingFromOptions(a),C;C=typeof n==`string`?dt.from(n,S||`utf8`):n,this._file.seek_position(0,Z.SeekType.SET);let[N]=this._file.write_chars(C,C.length);if(N===Z.IOStatus.ERROR)throw Error(`Error writing to file!`);this._file.flush()}async write(n,...a){let S=null,C=null,N=null,F=null;typeof n==`string`?(S=a[0],C=a[1]):(N=a[0],F=a[1],S=a[2]),C=getEncodingFromOptions(C,typeof n==`string`?`utf8`:null);let I;I=typeof n==`string`?new TextEncoder().encode(n):n;let H=N??0,W=F??I.byteLength-H,K=I.slice(H,H+W),q=S??0;return{bytesWritten:await this._serialize(async()=>{let n=this._getWriteStream();n.seek(BigInt(q),Z.SeekType.SET,null);let a=n.get_output_stream(),S=await new Promise((n,S)=>{a.write_bytes_async(new Z.Bytes(K),Z.PRIORITY_DEFAULT,null,(C,N)=>{try{n(a.write_bytes_finish(N))}catch(n){S(n)}})});return await new Promise((n,S)=>{a.flush_async(Z.PRIORITY_DEFAULT,null,(C,N)=>{try{a.flush_finish(N),n()}catch(n){S(n)}})}),S}),buffer:n}}async writev(n,a){let S=0;for(let C of n){let n=dt.from(C.buffer,C.byteOffset,C.byteLength),N=await this.write(n,0,n.byteLength,a==null?null:a+S);S+=N.bytesWritten}return{bytesWritten:S,buffers:n}}async readv(n,a){let S=0;for(let C of n){let n=await this.read({buffer:dt.from(C.buffer,C.byteOffset,C.byteLength),position:a==null?null:a+S});if(S+=n.bytesRead,n.bytesRead<C.byteLength)break}return{bytesRead:S,buffers:n}}_flushSync(){this._file.flush()}_closeSync(){try{this._ioStream?.close(null)}catch{}try{this._readStream?.close(null)}catch{}this._ioStream=null,this._readStream=null;try{this._file.shutdown(!0)}catch{}let n=FileHandle;delete n.instances[this.fd]}_readSync(n,a,S,C){let N=this._gFile.read(null);try{C!==null&&C>=0&&N.seek(C,Z.SeekType.SET,null);let F=N.read_bytes(S,null).get_data();return new Uint8Array(n.buffer,n.byteOffset+a).set(F.subarray(0,F.length)),F.length}finally{N.close(null)}}_writeSync(n,a){let S=this._gFile.open_readwrite(null);try{return a!==null&&a>=0&&S.seek(a,Z.SeekType.SET,null),S.get_output_stream().write_bytes(Z.Bytes.new(n),null)}finally{S.close(null)}}async close(){try{this._ioStream?.close(null)}catch{}try{this._readStream?.close(null)}catch{}this._ioStream=null,this._readStream=null;try{this._file.shutdown(!0)}catch{}}async[Symbol.asyncDispose](){await this.close()}pull(...n){throw Error('FileHandle.pull() is not implemented in @gjsify/fs yet — requires `node:stream/iter` (Node 25.9+) which @gjsify/stream has not ported. Track gjsify Open TODO "Node 25 stream/iter integration".')}writer(n){throw Error('FileHandle.writer() is not implemented in @gjsify/fs yet — requires `node:stream/iter` (Node 25.9+) which @gjsify/stream has not ported. Track gjsify Open TODO "Node 25 stream/iter integration".')}}});function statSync(n,a){let S=normalizePath(n);try{let n=_e.File.new_for_path(S).query_info(Wo,_e.FileQueryInfoFlags.NONE,null);return a?.bigint?new BigIntStats(n,S):new Stats(n,S)}catch(n){if(a?.throwIfNoEntry===!1&&isNotFoundError(n))return;throw createNodeError(n,`stat`,S)}}function lstatSync(n,a){let S=normalizePath(n);try{let n=_e.File.new_for_path(S).query_info(Wo,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);return a?.bigint?new BigIntStats(n,S):new Stats(n,S)}catch(n){if(a?.throwIfNoEntry===!1&&isNotFoundError(n))return;throw createNodeError(n,`lstat`,S)}}function readdirSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S).enumerate_children(`standard::name,standard::type`,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null),N=[];try{let n=C.next_file(null);for(;n!==null;)N.push({name:n.get_name(),type:n.get_file_type()}),n=C.next_file(null)}finally{try{C.close(null)}catch{}}let F=[];for(let n of N){let C=jo(S,n.name);if(a?.withFileTypes?F.push(new Dirent(C,n.name,n.type)):F.push(n.name),a?.recursive&&n.type===_e.FileType.DIRECTORY){let S=readdirSync(C,a);for(let a of S)typeof a==`string`?F.push(jo(n.name,a)):F.push(a)}}return F}function realpathSync(n){let a=normalizePath(n),S=_e.File.new_for_path(a),C=0;for(;;){let n=S.query_info(`standard::is-symlink,standard::symlink-target`,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);if(!n.get_is_symlink())return S.get_path();let N=n.get_symlink_target(),F=S.get_parent();if(S=F?F.resolve_relative_path(N):_e.File.new_for_path(N),++C>40)throw Error(`ELOOP: too many levels of symbolic links, realpath '${a}'`)}}function symlinkSync(n,a,S){let C=normalizePath(a),N=normalizePath(n);_e.File.new_for_path(C).make_symbolic_link(N,null)}function readFileSync(n,a={encoding:null,flag:`r`}){let S=normalizePath(n),C=_e.File.new_for_path(S);try{let[n,N]=C.load_contents(null);if(!n)throw createNodeError(Error(`failed to read file`),`read`,S);return encodeUint8Array(getEncodingFromOptions(a,`buffer`),N)}catch(n){throw n.code&&typeof n.code==`string`?n:createNodeError(n,`read`,S)}}function mkdirSync(n,a){let S=!1,C=511;if(typeof a==`object`?(a?.recursive&&(S=a.recursive),a?.mode&&(C=a.mode)):C=a||511,n=normalizePath(n),typeof C==`string`)throw TypeError(`mode as string is currently not supported!`);if(S)return mkdirSyncRecursive(n);let N=_e.File.new_for_path(n);try{N.make_directory(null)}catch(a){throw createNodeError(a,`mkdir`,n)}}function mkdirSyncRecursive(n){let a=_e.File.new_for_path(n);try{return a.make_directory(null),n}catch(a){let S=a;if(S.code===_e.IOErrorEnum.EXISTS)return;if(S.code===_e.IOErrorEnum.NOT_FOUND){let S=jo(n,`..`),C=_e.File.new_for_path(S).get_path();if(C===n)throw createNodeError(a,`mkdir`,n);let N=mkdirSyncRecursive(C),F=_e.File.new_for_path(n);try{F.make_directory(null)}catch(a){throw createNodeError(a,`mkdir`,n)}return N??n}throw createNodeError(a,`mkdir`,n)}}function rmdirSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S);try{if(C.query_info(`standard::type`,_e.FileQueryInfoFlags.NONE,null).get_file_type()!==_e.FileType.DIRECTORY)throw createNodeError(Object.assign(Error(),{code:4}),`rmdir`,S);if(C.enumerate_children(`standard::name`,_e.FileQueryInfoFlags.NONE,null).next_file(null)!==null)throw createNodeError(Object.assign(Error(),{code:5}),`rmdir`,S);C.delete(null)}catch(n){throw n.code&&typeof n.code==`string`?n:createNodeError(n,`rmdir`,S)}}function unlinkSync(n){let a=normalizePath(n),S=_e.File.new_for_path(a);try{S.delete(null)}catch(n){throw createNodeError(n,`unlink`,a)}}function writeFileSync(n,a){Z.file_set_contents(normalizePath(n),a)}function renameSync(n,a){let S=normalizePath(n),C=normalizePath(a),N=_e.File.new_for_path(S),F=_e.File.new_for_path(C);try{N.move(F,_e.FileCopyFlags.OVERWRITE,null,null)}catch(n){throw createNodeError(n,`rename`,S,C)}}function copyFileSync(n,a,S){let C=normalizePath(n),N=normalizePath(a),F=_e.File.new_for_path(C),I=_e.File.new_for_path(N),H=_e.FileCopyFlags.NONE;S&&!(S&1)?H=_e.FileCopyFlags.OVERWRITE:S||(H=_e.FileCopyFlags.OVERWRITE);try{F.copy(I,H,null,null)}catch(n){throw createNodeError(n,`copyfile`,C,N)}}function accessSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S);try{let n=C.query_info(`access::*`,_e.FileQueryInfoFlags.NONE,null);if(a!==void 0&&a!==0){let C={code:14,message:`permission denied, access '${S}'`};if(a&4&&!n.get_attribute_boolean(`access::can-read`)||a&2&&!n.get_attribute_boolean(`access::can-write`)||a&1&&!n.get_attribute_boolean(`access::can-execute`))throw createNodeError(C,`access`,S)}}catch(n){throw n.code&&typeof n.code==`string`?n:createNodeError(n,`access`,S)}}function appendFileSync(n,a,S){let C=normalizePath(n),N=_e.File.new_for_path(C),F;F=typeof a==`string`?new TextEncoder().encode(a):a;try{let n=N.append_to(_e.FileCreateFlags.NONE,null);F.length>0&&n.write_bytes(new Z.Bytes(F),null),n.close(null)}catch(n){throw createNodeError(n,`appendfile`,C)}}function readlinkSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S);try{let n=C.query_info(`standard::symlink-target`,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null).get_symlink_target();if(!n)throw Object.assign(Error(`EINVAL: invalid argument, readlink '${S}'`),{code:`EINVAL`,errno:-22,syscall:`readlink`,path:S});return(typeof a==`string`?a:a?.encoding)===`buffer`?dt.from(n):n}catch(n){throw typeof n.code==`string`?n:createNodeError(n,`readlink`,S)}}function linkSync(n,a){let S=normalizePath(n),C=normalizePath(a);if(!Z.spawn_command_line_sync(`ln ${S} ${C}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, link '${S}' -> '${C}'`),{code:`EPERM`,errno:-1,syscall:`link`,path:S,dest:C})}function truncateSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S);try{let n=C.replace(null,!1,_e.FileCreateFlags.NONE,null);if(a&&a>0){let[,S]=C.load_contents(null),N=S.slice(0,a);N.length>0&&n.write_bytes(new Z.Bytes(N),null)}n.close(null)}catch(n){throw createNodeError(n,`truncate`,S)}}function chmodSync(n,a){let S=normalizePath(n),C=typeof a==`string`?parseInt(a,8):a;if(!Z.spawn_command_line_sync(`chmod ${C.toString(8)} ${S}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, chmod '${S}'`),{code:`EPERM`,errno:-1,syscall:`chmod`,path:S})}function chownSync(n,a,S){let C=normalizePath(n);if(!Z.spawn_command_line_sync(`chown ${a}:${S} ${C}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, chown '${C}'`),{code:`EPERM`,errno:-1,syscall:`chown`,path:C})}function watch(n,a,S){return new FSWatcher(normalizePath(n),a,S)}function openSync(n,a,S){return new ys({path:n,flags:a,mode:S})}function mkdtempSync(n,a){let S=getEncodingFromOptions(a),C=tempDirPath(n);return mkdirSync(C,{recursive:!1,mode:511}),decode(C,S)}function rmSync(n,a){let S=normalizePath(n),C=_e.File.new_for_path(S),N=a?.recursive||!1,F=a?.force||!1,I;try{I=new Dirent(S)}catch(a){if(F&&isNotFoundError(a))return;throw createNodeError(a,`rm`,n)}if(I.isDirectory()){let C=readdirSync(n);if(!N&&C.length)throw createNodeError(Object.assign(Error(),{code:5}),`rm`,n);for(let n of C)rmSync(jo(S,n),a)}try{C.delete(null)}catch(a){if(F&&isNotFoundError(a))return;throw createNodeError(a,`rm`,n)}}var xs=__esmMin(()=>{vo(),Ss(),ws(),Uo(),Go(),bs(),qo(),se(),ve(),Ho(),bt(),et(),realpathSync.native=realpathSync});function normalizePath(n){return n instanceof URL||n instanceof tn?fileURLToPath(n):typeof n==`string`?n:n.toString()}function randomName(){return[...[,,,,,,]].map(()=>`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`[Math.floor(Math.random()*62)]).join(``)}function tempDirPath(n){let a;do a=n+randomName();while(existsSync(a));return a}var Ss=__esmMin(()=>{xs(),rn()});function changed(n,a,S,C){switch(C){case _e.FileMonitorEvent.CHANGES_DONE_HINT:this.emit(`change`,`change`,a.get_basename());break;case _e.FileMonitorEvent.DELETED:case _e.FileMonitorEvent.CREATED:case _e.FileMonitorEvent.RENAMED:case _e.FileMonitorEvent.MOVED_IN:case _e.FileMonitorEvent.MOVED_OUT:this.emit(`rename`,`rename`,a.get_basename());break}}function gioEventToNodeType(n){switch(n){case _e.FileMonitorEvent.CHANGES_DONE_HINT:return`change`;case _e.FileMonitorEvent.DELETED:case _e.FileMonitorEvent.CREATED:case _e.FileMonitorEvent.RENAMED:case _e.FileMonitorEvent.MOVED_IN:case _e.FileMonitorEvent.MOVED_OUT:return`rename`;default:return null}}async function*watchAsync(n,a){let S=a?.signal;if(S?.aborted)return;let C=normalizePath(n),N=_e.File.new_for_path(C),F=_e.Cancellable.new(),I;try{I=N.monitor(_e.FileMonitorFlags.NONE,F)}catch{return}let H=[],W=[],K=!1;function enqueue(n){K||(W.length>0?W.shift().resolve({value:n,done:!1}):H.push(n))}function terminate(){if(!K)for(K=!0,F.is_cancelled()||F.cancel();W.length>0;)W.shift().resolve({value:void 0,done:!0})}let q=I.connect(`changed`,(n,a,S,C)=>{let N=gioEventToNodeType(C);N!==null&&enqueue({eventType:N,filename:a?.get_basename()??null})}),abortHandler=()=>terminate();S?.addEventListener(`abort`,abortHandler);try{for(;!K;){if(H.length>0){yield H.shift();continue}let n=await new Promise(n=>{W.push({resolve:n})});if(n.done)break;yield n.value}}finally{S?.removeEventListener(`abort`,abortHandler);try{I.disconnect(q)}catch{}F.is_cancelled()||F.cancel()}}var Cs,FSWatcher,ws=__esmMin(()=>{Ss(),se(),ve(),Vt(),Cs=new WeakMap,FSWatcher=class extends At{constructor(n,a,S){super(),(!a||typeof a!=`object`)&&(a={persistent:!0});let C=a.persistent!==!1,N=_e.Cancellable.new(),F=normalizePath(n),I=_e.File.new_for_path(F).monitor(_e.FileMonitorFlags.NONE,N);I.connect(`changed`,changed.bind(this));let H=null;C&&(H=Z.timeout_add(Z.PRIORITY_LOW,2147483647,()=>Z.SOURCE_CONTINUE)),Cs.set(this,{persistent:C,cancellable:N,sourceId:H,watcher:I}),S&&this.on(`change`,S)}close(){let n=Cs.get(this);n.cancellable.is_cancelled()||(n.cancellable.cancel(),n.sourceId!==null&&(Z.source_remove(n.sourceId),n.sourceId=null))}ref(){let n=Cs.get(this);return!n.persistent&&!n.cancellable.is_cancelled()&&(n.persistent=!0,n.sourceId=Z.timeout_add(Z.PRIORITY_LOW,2147483647,()=>Z.SOURCE_CONTINUE)),this}unref(){let n=Cs.get(this);return n.persistent&&(n.persistent=!1,n.sourceId!==null&&(Z.source_remove(n.sourceId),n.sourceId=null)),this}}});function zeroedStat(){return{dev:0,ino:0,mode:0,nlink:0,uid:0,gid:0,rdev:0,size:0,blksize:0,blocks:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date(0),mtime:new Date(0),ctime:new Date(0),birthtime:new Date(0),isFile:()=>!1,isDirectory:()=>!1,isBlockDevice:()=>!1,isCharacterDevice:()=>!1,isSymbolicLink:()=>!1,isFIFO:()=>!1,isSocket:()=>!1}}function watchFile(n,a,S){typeof a==`function`&&(S=a,a={});let C=a.interval??5007,N=n.toString(),F=Ts.get(N);return F||(F=new StatWatcher(N,C),F.start(),Ts.set(N,F)),S&&F.addChangeListener(S),F}function unwatchFile(n,a){let S=n.toString(),C=Ts.get(S);C&&(a?C.removeChangeListener(a):C.removeAllChangeListeners(),C.changeListenerCount===0&&(C.stop(),Ts.delete(S)))}var StatWatcher,Ts,Es=__esmMin(()=>{xs(),Vt(),StatWatcher=class extends At{_path;_interval;_timerId=null;_prev;_changeCount=0;constructor(n,a){super(),this._path=n,this._interval=a,this._prev=zeroedStat()}start(){try{this._prev=statSync(this._path)}catch{}this._timerId=setInterval(()=>{let n;try{n=statSync(this._path)}catch{n=zeroedStat()}let a=this._prev;(n.mtimeMs!==a.mtimeMs||n.size!==a.size||n.ino!==a.ino)&&(this._prev=n,this.emit(`change`,n,a))},this._interval)}stop(){this._timerId!==null&&(clearInterval(this._timerId),this._timerId=null),this.emit(`stop`)}addChangeListener(n){this._changeCount++,this.on(`change`,n)}removeChangeListener(n){this._changeCount--,this.removeListener(`change`,n)}removeAllChangeListeners(){this._changeCount=0,this.removeAllListeners(`change`)}get changeListenerCount(){return this._changeCount}},Ts=new Map}),Ds=__exportAll$3({BigIntStats:()=>BigIntStats,Dir:()=>Dir,Dirent:()=>Dirent,FSWatcher:()=>FSWatcher,ReadStream:()=>ReadStream$1,StatWatcher:()=>StatWatcher,Stats:()=>Stats,WriteStream:()=>WriteStream$1,access:()=>access,accessSync:()=>accessSync,appendFile:()=>appendFile,appendFileSync:()=>appendFileSync,chmod:()=>chmod,chmodSync:()=>chmodSync,chown:()=>chown,chownSync:()=>chownSync,close:()=>close$1,closeSync:()=>closeSync,constants:()=>Os,copyFile:()=>copyFile,copyFileSync:()=>copyFileSync,cp:()=>cp,cpSync:()=>cpSync,createReadStream:()=>createReadStream,createWriteStream:()=>createWriteStream,default:()=>ks,exists:()=>exists,existsSync:()=>existsSync,fchmod:()=>fchmod,fchmodSync:()=>fchmodSync,fchown:()=>fchown,fchownSync:()=>fchownSync,fdatasync:()=>fdatasync,fdatasyncSync:()=>fdatasyncSync,fstat:()=>fstat,fstatSync:()=>fstatSync,fsync:()=>fsync,fsyncSync:()=>fsyncSync,ftruncate:()=>ftruncate,ftruncateSync:()=>ftruncateSync,futimes:()=>futimes,futimesSync:()=>futimesSync,glob:()=>glob,globSync:()=>globSync,lchmod:()=>lchmod,lchmodSync:()=>lchmodSync,lchown:()=>lchown,lchownSync:()=>lchownSync,link:()=>link,linkSync:()=>linkSync,lstat:()=>lstat,lstatSync:()=>lstatSync,lutimes:()=>lutimes,lutimesSync:()=>lutimesSync,mkdir:()=>mkdir,mkdirSync:()=>mkdirSync,mkdtempSync:()=>mkdtempSync,open:()=>open$1,openAsBlob:()=>openAsBlob,openSync:()=>openSync,opendir:()=>opendir,opendirSync:()=>opendirSync,promises:()=>as,read:()=>read$1,readFile:()=>readFile,readFileSync:()=>readFileSync,readSync:()=>readSync,readdir:()=>readdir,readdirSync:()=>readdirSync,readlink:()=>readlink,readlinkSync:()=>readlinkSync,readv:()=>readv,readvSync:()=>readvSync,realpath:()=>realpath,realpathSync:()=>realpathSync,rename:()=>rename,renameSync:()=>renameSync,rm:()=>rm,rmSync:()=>rmSync,rmdir:()=>rmdir,rmdirSync:()=>rmdirSync,stat:()=>stat,statSync:()=>statSync,statfs:()=>statfs,statfsSync:()=>statfsSync,symlink:()=>symlink,symlinkSync:()=>symlinkSync,truncate:()=>truncate,truncateSync:()=>truncateSync,unlink:()=>unlink,unlinkSync:()=>unlinkSync,unwatchFile:()=>unwatchFile,utimes:()=>utimes,utimesSync:()=>utimesSync,watch:()=>watch,watchFile:()=>watchFile,write:()=>write,writeFile:()=>writeFile,writeFileSync:()=>writeFileSync,writeSync:()=>writeSync,writev:()=>writev,writevSync:()=>writevSync}),Os,ks,As=__esmMin(()=>{ws(),Ko(),ds(),Uo(),Go(),xs(),Jo(),Xo(),Zo(),es(),ns(),rs(),ss(),cs(),Es(),Os={F_OK:0,R_OK:4,W_OK:2,X_OK:1,COPYFILE_EXCL:1,COPYFILE_FICLONE:2,COPYFILE_FICLONE_FORCE:4,O_RDONLY:0,O_WRONLY:1,O_RDWR:2,O_CREAT:64,O_EXCL:128,O_TRUNC:512,O_APPEND:1024,O_SYNC:1052672,O_NONBLOCK:2048,O_DIRECTORY:65536,O_NOFOLLOW:131072,S_IFMT:61440,S_IFREG:32768,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960,S_IFSOCK:49152,S_IRWXU:448,S_IRUSR:256,S_IWUSR:128,S_IXUSR:64,S_IRWXG:56,S_IRGRP:32,S_IWGRP:16,S_IXGRP:8,S_IRWXO:7,S_IROTH:4,S_IWOTH:2,S_IXOTH:1},ks={FSWatcher,StatWatcher,Stats,BigIntStats,Dirent,Dir,constants:Os,existsSync,readdirSync,readFileSync,writeFileSync,mkdirSync,rmdirSync,unlinkSync,mkdtempSync,rmSync,statSync,openSync,realpathSync,symlinkSync,lstatSync,renameSync,copyFileSync,accessSync,appendFileSync,readlinkSync,linkSync,truncateSync,chmodSync,chownSync,cpSync,opendirSync,globSync,glob,watch,watchFile,unwatchFile,statfsSync,statfs,utimesSync,utimes,lutimesSync,lutimes,lchownSync,lchown,lchmodSync,lchmod,fstatSync,fstat,ftruncateSync,ftruncate,fdatasyncSync,fdatasync,fsyncSync,fsync,fchmodSync,fchmod,fchownSync,fchown,futimesSync,futimes,closeSync,readSync,writeSync,readvSync,readv,writevSync,writev,exists,openAsBlob,createReadStream,ReadStream:ReadStream$1,createWriteStream,WriteStream:WriteStream$1,promises:as,open:open$1,close:close$1,read:read$1,write,rm,realpath,readdir,symlink,lstat,stat,rename,copyFile,cp,access,appendFile,readlink,truncate,chmod,chown,mkdir,rmdir,readFile,writeFile,unlink,link,opendir}});function findPnpManifest(n){let a=_e.File.new_for_path(n);for(;a.has_parent(null);){let n=a.resolve_relative_path(`.pnp.cjs`);if(n.query_exists(null))return n.get_path();a=a.get_parent()}return null}function loadPnpManifest(n){let a=js.get(n);if(a!==void 0)return a;let S=_e.File.new_for_path(n),C;try{let[a,N]=S.load_contents(null);if(!a)return js.set(n,null),null;C=new TextDecoder().decode(N)}catch{return js.set(n,null),null}let N=extractRawRuntimeState(C);if(!N)return js.set(n,null),null;let F=Z.path_get_dirname(n),I=new Map,H=new Map;for(let[n,a]of N.packageRegistryData){let S=new Map;for(let[C,N]of a)S.set(C,N),N.discardFromLookup||H.set(N.packageLocation,{name:n,reference:C});I.set(n,S)}let W={rootDir:F,packages:I,locatorsByLocation:H};return js.set(n,W),W}function extractRawRuntimeState(n){let a=n.indexOf(`const RAW_RUNTIME_STATE =`);if(a<0)return null;let S=n.indexOf(`'`,a);if(S<0)return null;let C=S+1;for(;C<n.length;){let a=n.charCodeAt(C);if(a===92){C+=2;continue}if(a===39)break;C++}if(C>=n.length)return null;let N=n.slice(S+1,C);N=N.replace(/\\\n/g,``);try{return JSON.parse(N)}catch{return null}}function findPackageOwning(n,a){let S=relativeFromRoot(n.rootDir,a);if(S===null)return null;let C=null;for(let a of n.locatorsByLocation.keys())S.startsWith(a)&&(C===null||a.length>C.length)&&(C=a);if(C===null)return null;let N=n.locatorsByLocation.get(C),F=n.packages.get(N.name)?.get(N.reference);return F?{locator:N,info:F}:null}function resolveBareViaPnp(n,a,S){let C=findPackageOwning(n,S);if(!C)return null;let{pkgName:N,subPath:F}=splitSpecifier(a),I=C.info.packageDependencies?.find(([n])=>n===N);if(!I)return null;let[,H]=I;if(H===null)return null;let W=n.packages.get(N)?.get(H);if(!W)return null;let K=W.packageLocation.startsWith(`/`)?_e.File.new_for_path(W.packageLocation):_e.File.new_for_path(n.rootDir).resolve_relative_path(stripLeadingDotSlash(W.packageLocation));return(F?K.resolve_relative_path(F):K).get_path()}function splitSpecifier(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a<0)return{pkgName:n,subPath:``};let S=n.indexOf(`/`,a+1);return S<0?{pkgName:n,subPath:``}:{pkgName:n.slice(0,S),subPath:n.slice(S+1)}}let a=n.indexOf(`/`);return a<0?{pkgName:n,subPath:``}:{pkgName:n.slice(0,a),subPath:n.slice(a+1)}}function stripLeadingDotSlash(n){return n.startsWith(`./`)?n.slice(2):n}function relativeFromRoot(n,a){if(a===n)return`./`;let S=n.endsWith(`/`)?n:n+`/`;return a.startsWith(S)?`./`+a.slice(S.length):null}var js,Ms=__esmMin(()=>{ve(),se(),js=new Map}),Ns=__esmMin(()=>{globalThis.imports}),Ps=__esmMin(()=>{Ns()}),Fs=__exportAll$3({builtinModules:()=>Is,createRequire:()=>createRequire,default:()=>Rs,isBuiltin:()=>isBuiltin});function isBuiltin(n){let a=n.startsWith(`node:`)?n.slice(5):n,S=a.split(`/`)[0];return Is.includes(a)||Is.includes(S)}function resolveSymlink(n){let a=n.query_info(`standard::`,_e.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);if(a.get_is_symlink()){let S=a.get_symlink_target(),C=n.get_parent();if(S&&C)return C.resolve_relative_path(S).get_path()}return n.get_path()}function tryJsExtension(n){let a=_e.File.new_for_path(n+`.js`);return a.query_exists(null)?a:null}function hasExtension(n){return n.includes(`.`)}function resolvePackageEntry(n){let a=Ge(n,`package.json`);if(!a.query_exists(null))return null;let S=readJSON(a.get_path());if(S.exports!==void 0){let a=resolveExportsMap(S.exports,`.`,Ls);if(a){let S=Ge(n,a);if(S.query_exists(null))return S.get_path()}}let C=S.main||S.module||`index.js`,N=Ge(n,C);if(N.query_exists(null))return N.get_path();if(!hasExtension(C)){let n=tryJsExtension(N.get_path());if(n)return n.get_path()}return null}function resolveExportsMap(n,a,S){if(typeof n==`string`)return a===`.`?n:void 0;if(typeof n!=`object`||!n)return;let C=n,N=Object.keys(C).some(n=>n===`.`||n.startsWith(`./`))?C[a]:a===`.`?C:void 0;if(N!=null)return pickConditionalValue(N,S)}function pickConditionalValue(n,a){if(typeof n==`string`)return n;if(typeof n!=`object`||!n)return;let S=n;for(let n of a)if(n in S){let C=pickConditionalValue(S[n],a);if(C!==void 0)return C}if(`default`in S&&!a.includes(`default`))return pickConditionalValue(S.default,a)}function splitBareSpecifier(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a===-1)return{pkg:n,subpath:`.`};let S=n.indexOf(`/`,a+1);return S===-1?{pkg:n,subpath:`.`}:{pkg:n.slice(0,S),subpath:`.`+n.slice(S)}}let a=n.indexOf(`/`);return a===-1?{pkg:n,subpath:`.`}:{pkg:n.slice(0,a),subpath:`.`+n.slice(a)}}function fileUrlToPath(n){if(typeof n==`object`&&n&&`href`in n){let a=n;if(a.protocol&&a.protocol!==`file:`)throw TypeError(`The URL must use the file: protocol`);return Z.filename_from_uri(a.href)[0]}return typeof n==`string`&&n.startsWith(`file:`)?Z.filename_from_uri(n)[0]:String(n)}function resolveBareViaPnpFromCaller(n,a){let S=findPnpManifest(a);if(!S)return null;let C=loadPnpManifest(S);if(!C)return null;let N=resolveBareViaPnp(C,n,a);if(!N)return null;let F=_e.File.new_for_path(N);return F.query_exists(null)?F:null}function resolveInNodeModules(n,a){let{pkg:S,subpath:C}=splitBareSpecifier(n),N=_e.File.new_for_path(a);for(;N.has_parent(null);){let a=N.resolve_relative_path(`node_modules`);if(a.query_exists(null)){let N=a.resolve_relative_path(S);if(N.query_exists(null)){let n=N.resolve_relative_path(`package.json`);if(n.query_exists(null)){let a=readJSON(n.get_path());if(a.exports!==void 0){let n=resolveExportsMap(a.exports,C,Ls);if(n!==void 0){let a=N.resolve_relative_path(n);if(a.query_exists(null))return a}}}let a=C===`.`?N:N.resolve_relative_path(C.slice(2));if(a.query_exists(null))return a;let S=a.get_basename();if(S&&!hasExtension(S)){let n=tryJsExtension(a.get_path());if(n)return n}}else{let S=a.resolve_relative_path(n);if(S.query_exists(null))return S;let C=S.get_basename();if(C&&!hasExtension(C)){let n=tryJsExtension(S.get_path());if(n)return n}}}N=N.get_parent()}throw Error(`Cannot find module "${n}" - not found in any node_modules directory`)}function resolveModulePath$1(n,a){if(isBuiltin(n))return n;let S;if(S=n.startsWith(`/`)?Ge(n):n.startsWith(`.`)?Ge(a,n):resolveBareViaPnpFromCaller(n,a)??resolveInNodeModules(n,a),n.startsWith(`/`)||n.startsWith(`.`)){if(!S.query_exists(null)){let n=S.get_basename();n&&!hasExtension(n)&&(S=tryJsExtension(S.get_path())??S)}if(!S.query_exists(null))throw Error(`Cannot find module "${n}"`)}let C=resolveSymlink(S),N=S.get_basename();if(N&&!hasExtension(N)){let n=resolvePackageEntry(C);if(n)return n}return C}function requireJsFile(n,a){if(n in a)return a[n];let S=_e.File.new_for_path(n),C=S.get_parent().get_path(),N=S.get_basename();if(N.endsWith(`.mjs`))throw Error(`Cannot require .mjs files. Use import instead. Path: "${n}"`);if(N.endsWith(`.cjs`)){let n=Ge(C,`__gjsify__`+N.replace(/\.cjs$/,`.js`));n.query_exists(null)&&n.delete(null),S.copy(n,_e.FileCopyFlags.NONE,null,null),S=n,N=S.get_basename()}let F=globalThis.exports,I=globalThis.module,H={exports:{}};globalThis.exports=H.exports,globalThis.module=H;try{let{searchPath:S}=imports;S.unshift(C),imports[N.replace(/\.(js|cjs)$/,``)],S.shift();let F=H.exports;return a[n]=F,F}finally{globalThis.exports=F,globalThis.module=I}}function createRequire(n){let a=fileUrlToPath(n);if(!a.startsWith(`/`))throw TypeError(`The argument must be a file URL object, file URL string, or absolute path string. Received "${String(n)}"`);let S=Z.path_get_dirname(a),C=Object.create(null),N=function require(n){let a=resolveModulePath$1(n,S);if(a in C)return C[a];if(a.endsWith(`.json`)){let n=readJSON(a);return C[a]=n,n}if(isBuiltin(n))throw Error(`createRequire: Cannot require builtin module "${n}" synchronously in GJS. Use import instead.`);return requireJsFile(a,C)};return N.resolve=function resolve(n){return resolveModulePath$1(n,S)},N.resolve.paths=n=>null,N.cache=C,N.extensions=Object.create(null),N.main=void 0,N}var Is,Ls,Rs,zs=__esmMin(()=>{Ms(),Ps(),ve(),se(),et(),Is=`assert.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.domain.events.fs.http.http2.https.inspector.module.net.os.path.perf_hooks.process.punycode.querystring.readline.repl.stream.string_decoder.sys.timers.tls.tty.url.util.v8.vm.wasi.worker_threads.zlib`.split(`.`),Ls=[`node`,`import`,`default`],__name$1(resolveModulePath$1,`resolveModulePath`),Rs={builtinModules:Is,isBuiltin,createRequire}});As(),zs(),rn(),Ho();function splitPackageSpec(n){let a=n.split(`/`),S=n.startsWith(`@`)?2:1;return{pkg:a.slice(0,S).join(`/`),subpath:a.slice(S).join(`/`)}}function bundleAnchorUrl(){let n=globalThis.__gjsifyBundleUrl;if(!n)throw Error(`gjsify: __gjsifyBundleUrl is not set — the bundle-URL banner did not run. The module-resolve shim is only valid in single-file app builds (gjsify build --app gjs|node).`);return n}let Bs=null;function bundleResolve(){return Bs||=createRequire(bundleAnchorUrl()).resolve,Bs}function resolvePackageRoot(n){let a=bundleResolve();try{return Po(a(`${n}/package.json`))}catch{let S=a(n),C=`/node_modules/${n}/`,N=S.lastIndexOf(C);return N>=0?S.slice(0,N+C.length-1):Po(S)}}const Vs=new Map;function resolveFile(n){let a=Vs.get(n);if(a!==void 0)return a;let S;try{let{pkg:a,subpath:C}=splitPackageSpec(n),N=resolvePackageRoot(a);S=C?jo(N,C):N}catch{S=fileURLToPath(bundleAnchorUrl())}return Vs.set(n,S),S}function __gjsifyModuleUrl(n){return pathToFileURL(resolveFile(n)).href}function safeInspect(n,a=3){if(n===null)return`null`;if(n===void 0)return`undefined`;switch(typeof n){case`string`:return n.length>128?`'${n.slice(0,128)}...'`:`'${n}'`;case`number`:case`boolean`:case`bigint`:return String(n);case`symbol`:return n.toString();case`function`:return`[Function: ${n.name||`anonymous`}]`;case`object`:return inspectObject$1(n,a)}return String(n)}function inspectObject$1(n,a,S=new WeakSet){if(S.has(n))return`[Circular]`;if(S.add(n),n instanceof Date)return n.toISOString();if(n instanceof RegExp)return n.toString();if(n instanceof Error)return`[${n.constructor.name}: ${n.message}]`;if(n instanceof Map){if(a<=0)return`Map(${n.size}) { ... }`;let C=[...n.entries()].slice(0,10).map(([n,C])=>`${inspectInner(n,a-1,S)} => ${inspectInner(C,a-1,S)}`),N=n.size>10?`, ...`:``;return`Map(${n.size}) { ${C.join(`, `)}${N} }`}if(n instanceof Set){if(a<=0)return`Set(${n.size}) { ... }`;let C=[...n.values()].slice(0,10).map(n=>inspectInner(n,a-1,S)),N=n.size>10?`, ...`:``;return`Set(${n.size}) { ${C.join(`, `)}${N} }`}if(ArrayBuffer.isView(n)){let a=n.constructor.name,S=n instanceof DataView?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):n,C=`length`in S?S.length:0,N=Math.min(C,10),F=[];for(let n=0;n<N;n++)F.push(String(S[n]));let I=C>10?`, ...`:``;return`${a}(${C}) [ ${F.join(`, `)}${I} ]`}if(Array.isArray(n)){if(a<=0)return`[ ... ]`;let C=n.slice(0,10).map(n=>inspectInner(n,a-1,S)),N=n.length>10?`, ...`:``;return`[ ${C.join(`, `)}${N} ]`}if(a<=0)return`{ ... }`;let C=Object.keys(n),N=C.slice(0,10).map(C=>`${C}: ${inspectInner(n[C],a-1,S)}`),F=C.length>10?`, ...`:``;return`${n.constructor&&n.constructor.name!==`Object`?`${n.constructor.name} `:``}{ ${N.join(`, `)}${F} }`}__name$1(inspectObject$1,`inspectObject`);function inspectInner(n,a,S){return n===null?`null`:n===void 0?`undefined`:typeof n==`object`?inspectObject$1(n,a,S):safeInspect(n,a)}var AssertionError=class extends Error{actual;expected;operator;code;generatedMessage;constructor(n){let{actual:a,expected:S,operator:C=`fail`,stackStartFn:N}=n,F=n.message==null,I=F?generateMessage(a,S,C):String(n.message);super(I),this.name=`AssertionError`,this.code=`ERR_ASSERTION`,this.actual=a,this.expected=S,this.operator=C,this.generatedMessage=F,typeof Error.captureStackTrace==`function`&&Error.captureStackTrace(this,N||this.constructor)}toString(){return`${this.name} [${this.code}]: ${this.message}`}[Symbol.for(`nodejs.util.inspect.custom`)](n,a){return this.toString()}};const Hs={deepStrictEqual:`Expected values to be strictly deep-equal:`,strictEqual:`Expected values to be strictly equal:`,strictEqualObject:`Expected "actual" to be reference-equal to "expected":`,deepEqual:`Expected values to be loosely deep-equal:`,notDeepStrictEqual:`Expected "actual" not to be strictly deep-equal to:`,notStrictEqual:`Expected "actual" to be strictly unequal to:`,notStrictEqualObject:`Expected "actual" not to be reference-equal to "expected":`,notDeepEqual:`Expected "actual" not to be loosely deep-equal to:`,notIdentical:`Values have same structure but are not reference-equal:`,notEqual:`Expected "actual" to be loosely unequal to:`,equal:`Expected values to be loosely equal:`,"==":`Expected values to be loosely equal:`,"!=":`Expected "actual" to be loosely unequal to:`,"===":`Expected values to be strictly equal:`,"!==":`Expected "actual" to be strictly unequal to:`,fail:`Failed`};function generateMessage(n,a,S){let C=Hs[S]||`Operator: ${S}`;return S===`fail`?`Failed`:`${C}\n\n+ actual - expected\n\n+ ${safeInspect(n)}\n- ${safeInspect(a)}\n`}function isDate$2(n){return n instanceof Date}__name$1(isDate$2,`isDate`);function isRegExp$2(n){return n instanceof RegExp}__name$1(isRegExp$2,`isRegExp`);function isMap$1(n){return n instanceof Map}__name$1(isMap$1,`isMap`);function isSet$1(n){return n instanceof Set}__name$1(isSet$1,`isSet`);function isError$1(n){return n instanceof Error}__name$1(isError$1,`isError`);function isAnyArrayBuffer$1(n){return n instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&n instanceof SharedArrayBuffer}__name$1(isAnyArrayBuffer$1,`isAnyArrayBuffer`);function isArrayBufferView$1(n){return ArrayBuffer.isView(n)}__name$1(isArrayBufferView$1,`isArrayBufferView`);function isBoxedPrimitive$1(n){return n instanceof Number||n instanceof String||n instanceof Boolean||n instanceof BigInt||n instanceof Symbol}__name$1(isBoxedPrimitive$1,`isBoxedPrimitive`);function isNumberObject$1(n){return n instanceof Number}__name$1(isNumberObject$1,`isNumberObject`);function isStringObject$1(n){return n instanceof String}__name$1(isStringObject$1,`isStringObject`);function isBooleanObject$1(n){return n instanceof Boolean}__name$1(isBooleanObject$1,`isBooleanObject`);function isBigIntObject$1(n){return typeof BigInt<`u`&&n instanceof Object&&Object.prototype.toString.call(n)===`[object BigInt]`}__name$1(isBigIntObject$1,`isBigIntObject`);function isSymbolObject$1(n){return n instanceof Object&&Object.prototype.toString.call(n)===`[object Symbol]`}__name$1(isSymbolObject$1,`isSymbolObject`);function isFloatTypedArray(n){return n instanceof Float32Array||n instanceof Float64Array}const Us=__name$1((n,a)=>Object.prototype.hasOwnProperty.call(n,a),`hasOwn`),hasEnumerable=(n,a)=>Object.prototype.propertyIsEnumerable.call(n,a),Ws=new Set([Array,ArrayBuffer,Boolean,DataView,Date,Error,Float32Array,Float64Array,Function,Int8Array,Int16Array,Int32Array,Map,Number,Object,Promise,RegExp,Set,String,Symbol,Uint8Array,Uint16Array,Uint32Array,Uint8ClampedArray,BigInt64Array,BigUint64Array,WeakMap,WeakSet]);function getOwnNonIndexProperties(n,a){let S=Object.getOwnPropertyNames(n),C=[];for(let a of S){let S=Number(a);Number.isInteger(S)&&S>=0&&S<2**32-1&&String(S)===a||hasEnumerable(n,a)&&C.push(a)}if(!a){let a=Object.getOwnPropertySymbols(n);for(let S of a)hasEnumerable(n,S)&&C.push(S)}return C}function areSimilarRegExps(n,a){return n.source===a.source&&n.flags===a.flags&&n.lastIndex===a.lastIndex}function areSimilarFloatArrays(n,a){if(n.byteLength!==a.byteLength)return!1;let S=n,C=a;for(let n=0;n<S.length;n++)if(S[n]!==C[n])return!1;return!0}function areSimilarTypedArrays(n,a){if(n.byteLength!==a.byteLength)return!1;let S=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),C=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);for(let n=0;n<S.length;n++)if(S[n]!==C[n])return!1;return!0}function areEqualArrayBuffers(n,a){if(n.byteLength!==a.byteLength)return!1;let S=new Uint8Array(n),C=new Uint8Array(a);for(let n=0;n<S.length;n++)if(S[n]!==C[n])return!1;return!0}function isEqualBoxedPrimitive(n,a){return isNumberObject$1(n)?isNumberObject$1(a)&&Object.is(n.valueOf(),a.valueOf()):isStringObject$1(n)?isStringObject$1(a)&&n.valueOf()===a.valueOf():isBooleanObject$1(n)?isBooleanObject$1(a)&&n.valueOf()===a.valueOf():isBigIntObject$1(n)?isBigIntObject$1(a)&&n[Symbol.toPrimitive](`number`)===a[Symbol.toPrimitive](`number`):isSymbolObject$1(n)?isSymbolObject$1(a)&&Symbol.prototype.valueOf.call(n)===Symbol.prototype.valueOf.call(a):!1}function getTypedArrayTag(n){return Object.prototype.toString.call(n).slice(8,-1)}function innerDeepEqual(n,a,S,C){if(n===a)return n!==0||Object.is(n,a)||S===0;if(S!==0){if(typeof n==`number`)return n!==n&&a!==a;if(typeof a!=`object`||typeof n!=`object`||!n||a===null)return!1}else{if(typeof n!=`object`||!n)return(typeof a!=`object`||!a)&&(n==a||n!==n&&a!==a);if(typeof a!=`object`||!a)return!1}return objectComparisonStart(n,a,S,C)}function objectComparisonStart(n,a,S,C){if(S===1){if(Ws.has(n.constructor)||n.constructor!==void 0&&!Us(n,`constructor`)){if(n.constructor!==a.constructor)return!1}else if(Object.getPrototypeOf(n)!==Object.getPrototypeOf(a))return!1}let N=Object.prototype.toString.call(n);if(N!==Object.prototype.toString.call(a))return!1;if(Array.isArray(n)){if(!Array.isArray(a)||n.length!==a.length)return!1;let N=getOwnNonIndexProperties(a,S===0);return N.length===getOwnNonIndexProperties(n,S===0).length?keyCheck(n,a,S,C,1,N):!1}else if(N===`[object Object]`)return keyCheck(n,a,S,C,0);else if(isDate$2(n)){if(!isDate$2(a))return!1;let S=n.getTime(),C=a.getTime();if(S!==C&&!(Number.isNaN(S)&&Number.isNaN(C)))return!1}else if(isRegExp$2(n)){if(!isRegExp$2(a)||!areSimilarRegExps(n,a))return!1}else if(isArrayBufferView$1(n)){if(getTypedArrayTag(n)!==getTypedArrayTag(a))return!1;if(S===0&&isFloatTypedArray(n)){if(!areSimilarFloatArrays(n,a))return!1}else if(!areSimilarTypedArrays(n,a))return!1;let N=getOwnNonIndexProperties(a,S===0);return N.length===getOwnNonIndexProperties(n,S===0).length?keyCheck(n,a,S,C,0,N):!1}else if(isSet$1(n))return!isSet$1(a)||n.size!==a.size?!1:keyCheck(n,a,S,C,2);else if(isMap$1(n))return!isMap$1(a)||n.size!==a.size?!1:keyCheck(n,a,S,C,3);else if(isAnyArrayBuffer$1(n)){if(!isAnyArrayBuffer$1(a)||!areEqualArrayBuffers(n,a))return!1}else if(isError$1(n)){if(!isError$1(a)||n.message!==a.message||n.name!==a.name||Us(n,`cause`)!==Us(a,`cause`)||Us(n,`cause`)&&!innerDeepEqual(n.cause,a.cause,S,C))return!1}else if(isBoxedPrimitive$1(n)){if(!isEqualBoxedPrimitive(n,a))return!1}else if(Array.isArray(a)||isArrayBufferView$1(a)||isSet$1(a)||isMap$1(a)||isDate$2(a)||isRegExp$2(a)||isAnyArrayBuffer$1(a)||isBoxedPrimitive$1(a)||isError$1(a))return!1;return keyCheck(n,a,S,C,0)}function getEnumerables(n,a){return a.filter(a=>hasEnumerable(n,a))}function keyCheck(n,a,S,C,N,F){let I=F!==void 0;F===void 0&&(F=Object.keys(a));let H;if(!I){if(F.length!==(H=Object.keys(n)).length)return!1;if(S===1){let S=Object.getOwnPropertySymbols(n);if(S.length!==0){let C=0;for(let N of S)if(hasEnumerable(n,N)){if(!hasEnumerable(a,N))return!1;F.push(N),C++}else if(hasEnumerable(a,N))return!1;let N=Object.getOwnPropertySymbols(a);if(S.length!==N.length&&getEnumerables(a,N).length!==C)return!1}else{let n=Object.getOwnPropertySymbols(a);if(n.length!==0&&getEnumerables(a,n).length!==0)return!1}}}return F.length===0&&(N===0||N===1&&a.length===0||a.size===0)?!0:C===null?objEquiv(n,a,S,H,F,C,N):handleCycles(n,a,S,H,F,C,N)}function handleCycles(n,a,S,C,N,F,I){if(F===void 0)return F={set:void 0,a:n,b:a,c:void 0,d:void 0,deep:!1},objEquiv(n,a,S,C,N,F,I);if(F.set===void 0){if(F.deep===!1){if(F.a===n)return F.b===a;if(F.b===a)return!1;F.c=n,F.d=a,F.deep=!0;let H=objEquiv(n,a,S,C,N,F,I);return F.deep=!1,H}F.set=new Set,F.set.add(F.a),F.set.add(F.b),F.set.add(F.c),F.set.add(F.d)}let{set:H}=F,W=H.size;if(H.add(n),H.add(a),W!==H.size-2)return W===H.size;let K=objEquiv(n,a,S,C,N,F,I);return H.delete(n),H.delete(a),K}function findLooseMatchingPrimitives(n){switch(typeof n){case`undefined`:return null;case`object`:return;case`symbol`:return!1;case`string`:n=+n;case`number`:if(n!==n)return!1}return!0}function setMightHaveLoosePrim(n,a,S){let C=findLooseMatchingPrimitives(S);return C??(!a.has(C)&&n.has(C))}function mapMightHaveLoosePrim(n,a,S,C,N){let F=findLooseMatchingPrimitives(S);if(F!=null)return F;let I=n.get(F);return I===void 0&&!n.has(F)||!innerDeepEqual(I,C,0,N)?!1:!a.has(F)&&innerDeepEqual(I,C,0,N)}function setEquiv(n,a,S,C){let N;for(let C of a)if(!n.has(C)){if((typeof C!=`object`||!C)&&(S!==0||!setMightHaveLoosePrim(n,a,C)))return!1;N===void 0&&(N=[]),N.push(C)}if(N===void 0)return!0;for(let F of n)if(typeof F==`object`&&F){if(!a.has(F)){let n=!1;for(let a=0;a<N.length;a++)if(innerDeepEqual(F,N[a],S,C)){N.splice(a,1),n=!0;break}if(!n)return!1}}else if(!a.has(F)&&(S!==0||!setMightHaveLoosePrim(a,n,F))){let n=!1;for(let a=0;a<N.length;a++)if(innerDeepEqual(F,N[a],S,C)){N.splice(a,1),n=!0;break}if(!n)return!1}return N.length===0}function mapEquiv(n,a,S,C){let N;for(let[F,I]of a)if(typeof F==`object`&&F){if(N===void 0){if(n.size===1){let[a,N]=n.entries().next().value;return innerDeepEqual(a,F,S,C)&&innerDeepEqual(N,I,S,C)}N=[]}N.push(F)}else{let H=n.get(F);if(H===void 0&&!n.has(F)||!innerDeepEqual(H,I,S,C)){if(S!==0||!mapMightHaveLoosePrim(n,a,F,I,C))return!1;N===void 0&&(N=[]),N.push(F)}}if(N===void 0)return!0;for(let[F,I]of n)if(typeof F==`object`&&F){if(!a.has(F)){let n=!1;for(let H=0;H<N.length;H++){let W=N[H];if(innerDeepEqual(F,W,S,C)&&innerDeepEqual(I,a.get(W),S,C)){N.splice(H,1),n=!0;break}}if(!n)return!1}}else S===0&&typeof F!=`object`&&(!n.has(F)||innerDeepEqual(I,n.get(F),S,C));return N.length===0}function objEquiv(n,a,S,C,N,F,I){if(N.length>0){let I=n,H=a,W=0;if(C!==void 0)for(;W<N.length;W++){let n=N[W];if(C[W]!==n)break;if(!innerDeepEqual(I[n],H[n],S,F))return!1}for(;W<N.length;W++){let a=N[W],C=Object.getOwnPropertyDescriptor(n,a);if(!C?.enumerable||!innerDeepEqual(C.value===void 0?I[a]:C.value,H[a],S,F))return!1}}if(I===1){let C=n,N=a;for(let I=0;I<C.length;I++){if(N[I]===void 0&&!Us(a,I)){if(C[I]!==void 0||Us(n,I))return!1;continue}if(S!==0&&C[I]===void 0&&!Us(n,I)||!innerDeepEqual(C[I],N[I],S,F))return!1}}else if(I===2){if(!setEquiv(n,a,S,F))return!1}else if(I===3&&!mapEquiv(n,a,S,F))return!1;return!0}let detectCycles=function(n,a,S){try{return innerDeepEqual(n,a,S,null)}catch{return detectCycles=(n,a,S)=>innerDeepEqual(n,a,S,void 0),innerDeepEqual(n,a,S,void 0)}};function isDeepEqual(n,a){return detectCycles(n,a,0)}function isDeepStrictEqual$1(n,a){return detectCycles(n,a,1)}__name$1(isDeepStrictEqual$1,`isDeepStrictEqual`);function innerFail(n){throw n.message instanceof Error?n.message:new AssertionError({actual:n.actual,expected:n.expected,message:n.message,operator:n.operator,stackStartFn:n.stackStartFn})}function isPromiseLike(n){return typeof n==`object`&&!!n&&typeof n.then==`function`}function ok(n,a){n||innerFail({actual:n,expected:!0,message:a,operator:`==`,stackStartFn:ok})}function equal(n,a,S){n!=a&&innerFail({actual:n,expected:a,message:S,operator:`==`,stackStartFn:equal})}function notEqual(n,a,S){n==a&&innerFail({actual:n,expected:a,message:S,operator:`!=`,stackStartFn:notEqual})}function strictEqual(n,a,S){Object.is(n,a)||innerFail({actual:n,expected:a,message:S,operator:`strictEqual`,stackStartFn:strictEqual})}function notStrictEqual(n,a,S){Object.is(n,a)&&innerFail({actual:n,expected:a,message:S,operator:`notStrictEqual`,stackStartFn:notStrictEqual})}function deepEqual(n,a,S){isDeepEqual(n,a)||innerFail({actual:n,expected:a,message:S,operator:`deepEqual`,stackStartFn:deepEqual})}function notDeepEqual(n,a,S){isDeepEqual(n,a)&&innerFail({actual:n,expected:a,message:S,operator:`notDeepEqual`,stackStartFn:notDeepEqual})}function deepStrictEqual(n,a,S){isDeepStrictEqual$1(n,a)||innerFail({actual:n,expected:a,message:S,operator:`deepStrictEqual`,stackStartFn:deepStrictEqual})}function notDeepStrictEqual(n,a,S){isDeepStrictEqual$1(n,a)&&innerFail({actual:n,expected:a,message:S,operator:`notDeepStrictEqual`,stackStartFn:notDeepStrictEqual})}function getActual(n){let a=Symbol(`NO_EXCEPTION`);try{n()}catch(n){return n}return a}async function getActualAsync(n){let a=Symbol(`NO_EXCEPTION`);try{if(typeof n==`function`){let a=n();isPromiseLike(a)&&await a}else await n}catch(n){return n}return a}function expectedException(n,a,S,C){if(a===void 0)return!0;if(a instanceof RegExp){let N=String(n);if(a.test(N))return!0;throw new AssertionError({actual:n,expected:a,message:S,operator:C.name,stackStartFn:C})}if(typeof a==`function`){if(a.prototype!==void 0&&n instanceof a)return!0;if(Error.isPrototypeOf(a))return!1;if(a.call({},n)!==!0)throw new AssertionError({actual:n,expected:a,message:S,operator:C.name,stackStartFn:C});return!0}if(typeof a==`object`&&a){let N=Object.keys(a);for(let F of N){let N=a,I=n;if(typeof I[F]==`string`&&N[F]instanceof RegExp){if(!N[F].test(I[F]))throw new AssertionError({actual:n,expected:a,message:S,operator:C.name,stackStartFn:C})}else if(!isDeepStrictEqual$1(I[F],N[F]))throw new AssertionError({actual:n,expected:a,message:S,operator:C.name,stackStartFn:C})}return!0}return!0}function throws(n,a,S){if(typeof n!=`function`)throw TypeError(`The "fn" argument must be of type function.`);let C;typeof a==`string`?(S=a,C=void 0):C=a;let N=getActual(n);typeof N==`symbol`&&innerFail({actual:void 0,expected:C,message:S||`Missing expected exception.`,operator:`throws`,stackStartFn:throws}),C!==void 0&&expectedException(N,C,S,throws)}function doesNotThrow(n,a,S){if(typeof n!=`function`)throw TypeError(`The "fn" argument must be of type function.`);let C;typeof a==`string`?(S=a,C=void 0):C=a;let N=getActual(n);if(typeof N!=`symbol`)throw C!==void 0&&typeof C==`function`&&C.prototype!==void 0&&N instanceof C&&innerFail({actual:N,expected:C,message:S||`Got unwanted exception.\n${N&&N.message?N.message:``}`,operator:`doesNotThrow`,stackStartFn:doesNotThrow}),(C===void 0||typeof C==`function`&&C.prototype!==void 0&&N instanceof C)&&innerFail({actual:N,expected:C,message:S||`Got unwanted exception.\n${N&&N.message?N.message:``}`,operator:`doesNotThrow`,stackStartFn:doesNotThrow}),N}async function rejects(n,a,S){let C;typeof a==`string`?(S=a,C=void 0):C=a;let N=await getActualAsync(n);typeof N==`symbol`&&innerFail({actual:void 0,expected:C,message:S||`Missing expected rejection.`,operator:`rejects`,stackStartFn:rejects}),C!==void 0&&expectedException(N,C,S,rejects)}async function doesNotReject(n,a,S){let C;typeof a==`string`?(S=a,C=void 0):C=a;let N=await getActualAsync(n);typeof N!=`symbol`&&innerFail({actual:N,expected:C,message:S||`Got unwanted rejection.\n${N&&N.message?N.message:``}`,operator:`doesNotReject`,stackStartFn:doesNotReject})}function fail(n,a,S,C,N){if(arguments.length===0||arguments.length===1){let a=arguments.length===0?`Failed`:typeof n==`string`?n:void 0;throw n instanceof Error?n:new AssertionError({message:a||`Failed`,operator:`fail`,stackStartFn:fail})}throw new AssertionError({actual:n,expected:a,message:S,operator:C||`fail`,stackStartFn:N||fail})}function ifError(n){if(n!=null){let a=`ifError got unwanted exception: `;typeof n==`object`&&typeof n.message==`string`?n.message.length===0&&n.constructor?a+=n.constructor.name:a+=n.message:a+=String(n);let S=new AssertionError({actual:n,expected:null,message:a,operator:`ifError`,stackStartFn:ifError}),C=n instanceof Error?n.stack:void 0;throw C&&(S.origStack=C),S}}function match(n,a,S){if(typeof n!=`string`)throw TypeError(`The "actual" argument must be of type string.`);if(!(a instanceof RegExp))throw TypeError(`The "expected" argument must be an instance of RegExp.`);a.test(n)||innerFail({actual:n,expected:a,message:S||`The input did not match the regular expression ${a}. Input:\n\n'${n}'\n`,operator:`match`,stackStartFn:match})}function doesNotMatch(n,a,S){if(typeof n!=`string`)throw TypeError(`The "actual" argument must be of type string.`);if(!(a instanceof RegExp))throw TypeError(`The "expected" argument must be an instance of RegExp.`);a.test(n)&&innerFail({actual:n,expected:a,message:S||`The input was expected to not match the regular expression ${a}. Input:\n\n'${n}'\n`,operator:`doesNotMatch`,stackStartFn:doesNotMatch})}const Gs=Object.assign(function strict(n,a){ok(n,a)},{AssertionError,ok,equal:strictEqual,notEqual:notStrictEqual,deepEqual:deepStrictEqual,notDeepEqual:notDeepStrictEqual,deepStrictEqual,notDeepStrictEqual,strictEqual,notStrictEqual,throws,doesNotThrow,rejects,doesNotReject,fail,ifError,match,doesNotMatch,strict:void 0});Gs.strict=Gs;const Ks=Object.assign(function assert(n,a){ok(n,a)},{AssertionError,ok,equal,notEqual,strictEqual,notStrictEqual,deepEqual,notDeepEqual,deepStrictEqual,notDeepStrictEqual,throws,doesNotThrow,rejects,doesNotReject,fail,ifError,match,doesNotMatch,strict:Gs}),qs={right:alignRight,center:alignCenter};var UI=class{constructor(n){this.width=n.width,this.wrap=n.wrap??!0,this.rows=[]}span(...n){let a=this.div(...n);a.span=!0}resetOutput(){this.rows=[]}div(...n){if(n.length===0&&this.div(``),this.wrap&&this.shouldApplyLayoutDSL(...n)&&typeof n[0]==`string`)return this.applyLayoutDSL(n[0]);let a=n.map(n=>typeof n==`string`?this.colFromString(n):n);return this.rows.push(a),a}shouldApplyLayoutDSL(...n){return n.length===1&&typeof n[0]==`string`&&/[\t\n]/.test(n[0])}applyLayoutDSL(n){let a=n.split(`
12
12
  `).map(n=>n.split(` `)),S=0;return a.forEach(n=>{n.length>1&&Js.stringWidth(n[0])>S&&(S=Math.min(Math.floor(this.width*.5),Js.stringWidth(n[0])))}),a.forEach(n=>{this.div(...n.map((a,C)=>({text:a.trim(),padding:this.measurePadding(a),width:C===0&&n.length>1?S:void 0})))}),this.rows[this.rows.length-1]}colFromString(n){return{text:n,padding:this.measurePadding(n)}}measurePadding(n){let a=Js.stripAnsi(n);return[0,a.match(/\s*$/)[0].length,0,a.match(/^\s*/)[0].length]}toString(){let n=[];return this.rows.forEach(a=>{this.rowToString(a,n)}),n.filter(n=>!n.hidden).map(n=>n.text).join(`
13
13
  `)}rowToString(n,a){return this.rasterize(n).forEach((S,C)=>{let N=``;S.forEach((S,F)=>{let{width:I}=n[F],H=this.negatePadding(n[F]),W=S;if(H>Js.stringWidth(S)&&(W+=` `.repeat(H-Js.stringWidth(S))),n[F].align&&n[F].align!==`left`&&this.wrap){let a=qs[n[F].align];W=a(W,H),Js.stringWidth(W)<H&&(W+=` `.repeat((I||0)-Js.stringWidth(W)-1))}let K=n[F].padding||[0,0,0,0];K[3]&&(N+=` `.repeat(K[3])),N+=addBorder(n[F],W,`| `),N+=W,N+=addBorder(n[F],W,` |`),K[1]&&(N+=` `.repeat(K[1])),C===0&&a.length>0&&(N=this.renderInline(N,a[a.length-1]))}),a.push({text:N.replace(/ +$/,``),span:n.span})}),a}renderInline(n,a){let S=n.match(/^ */),C=S?S[0].length:0,N=a.text,F=Js.stringWidth(N.trimRight());return a.span?this.wrap?C<F?n:(a.hidden=!0,N.trimRight()+` `.repeat(C-F)+n.trimLeft()):(a.hidden=!0,N+n):n}rasterize(n){let a=[],S=this.columnWidths(n),C;return n.forEach((n,N)=>{n.width=S[N],C=this.wrap?Js.wrap(n.text,this.negatePadding(n),{hard:!0}).split(`
14
14
  `):n.text.split(`
@@ -617,19 +617,19 @@ Additional information: BADCLIENT: Bad error code, ${K} not found in range ${F}.
617
617
  `+a.stack)}finally{this.performanceData=K}}parseMessage(n){return JSON.parse(n)}toStringMessage(n){return n}getFormatOptions(n){return this.projectService.getFormatCodeOptions(n)}getPreferences(n){return this.projectService.getPreferences(n)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function toProtocolPerformanceData(n){let a=n.diagnosticsDuration&&arrayFrom(n.diagnosticsDuration,([n,a])=>({...a,file:n}));return{...n,diagnosticsDuration:a}}function toProtocolTextSpan(n,a){return{start:a.positionToLineOffset(n.start),end:a.positionToLineOffset(textSpanEnd(n))}}function toProtocolTextSpanWithContext(n,a,S){let C=toProtocolTextSpan(n,S),N=a&&toProtocolTextSpan(a,S);return N?{...C,contextStart:N.start,contextEnd:N.end}:C}function convertTextChangeToCodeEdit(n,a){return{start:positionToLineOffset(a,n.span.start),end:positionToLineOffset(a,textSpanEnd(n.span)),newText:n.newText}}function positionToLineOffset(n,a){return isConfigFile(n)?locationFromLineAndCharacter(n.getLineAndCharacterOfPosition(a)):n.positionToLineOffset(a)}function convertLinkedEditInfoToRanges(n,a){let S=n.ranges.map(n=>({start:a.positionToLineOffset(n.start),end:a.positionToLineOffset(n.start+n.length)}));return n.wordPattern?{ranges:S,wordPattern:n.wordPattern}:{ranges:S}}function locationFromLineAndCharacter(n){return{line:n.line+1,offset:n.character+1}}function convertNewFileTextChangeToCodeEdit(n){Z.assert(n.textChanges.length===1);let a=first(n.textChanges);return Z.assert(a.span.start===0&&a.span.length===0),{fileName:n.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:a.newText}]}}function getLocationInNewDocument(n,a,S,C){let{line:N,character:F}=computeLineAndCharacterOfPosition(computeLineStarts(applyEdits(n,a,C)),S);return{line:N+1,offset:F+1}}function applyEdits(n,a,S){for(let{fileName:C,textChanges:N}of S)if(C===a)for(let a=N.length-1;a>=0;a--){let{newText:S,span:{start:C,length:F}}=N[a];n=n.slice(0,C)+S+n.slice(C+F)}return n}function referenceEntryToReferencesResponseItem(n,{fileName:a,textSpan:S,contextSpan:C,isWriteAccess:N,isDefinition:F},{disableLineTextInReferences:I}){let H=Z.checkDefined(n.getScriptInfo(a)),W=toProtocolTextSpanWithContext(S,C,H),K=I?void 0:getLineText(H,W);return{file:a,...W,lineText:K,isWriteAccess:N,isDefinition:F}}function getLineText(n,a){let S=n.lineToTextSpan(a.start.line-1);return n.getSnapshot().getText(S.start,textSpanEnd(S)).replace(/\r|\n/g,``)}function isCompletionEntryData(n){return n===void 0||n&&typeof n==`object`&&typeof n.exportName==`string`&&(n.fileName===void 0||typeof n.fileName==`string`)&&(n.ambientModuleName===void 0||typeof n.ambientModuleName==`string`&&(n.isPackageJsonImport===void 0||typeof n.isPackageJsonImport==`boolean`))}var yg=4,bg=(n=>(n[n.PreStart=0]=`PreStart`,n[n.Start=1]=`Start`,n[n.Entire=2]=`Entire`,n[n.Mid=3]=`Mid`,n[n.End=4]=`End`,n[n.PostEnd=5]=`PostEnd`,n))(bg||{}),EditWalker=class{constructor(){this.goSubtree=!0,this.lineIndex=new wg,this.endBranch=[],this.state=2,this.initialText=``,this.trailingText=``,this.lineIndex.root=new Tg,this.startPath=[this.lineIndex.root],this.stack=[this.lineIndex.root]}get done(){return!1}insertLines(n,a){a&&(this.trailingText=``),n=n?this.initialText+n+this.trailingText:this.initialText+this.trailingText;let S=wg.linesFromText(n).lines;S.length>1&&S[S.length-1]===``&&S.pop();let C,N;for(let n=this.endBranch.length-1;n>=0;n--)this.endBranch[n].updateCounts(),this.endBranch[n].charCount()===0&&(N=this.endBranch[n],C=n>0?this.endBranch[n-1]:this.branchNode);N&&C.remove(N);let F=this.startPath[this.startPath.length-1];if(S.length>0)if(F.text=S[0],S.length>1){let n=Array(S.length-1),a=F;for(let a=1;a<S.length;a++)n[a-1]=new LineLeaf(S[a]);let C=this.startPath.length-2;for(;C>=0;){let S=this.startPath[C];n=S.insertAt(a,n),C--,a=S}let N=n.length;for(;N>0;){let a=new Tg;a.add(this.lineIndex.root),n=a.insertAt(this.lineIndex.root,n),N=n.length,this.lineIndex.root=a}this.lineIndex.root.updateCounts()}else for(let n=this.startPath.length-2;n>=0;n--)this.startPath[n].updateCounts();else{this.startPath[this.startPath.length-2].remove(F);for(let n=this.startPath.length-2;n>=0;n--)this.startPath[n].updateCounts()}return this.lineIndex}post(n,a,S){S===this.lineCollectionAtBranch&&(this.state=4),this.stack.pop()}pre(n,a,S,C,N){let F=this.stack[this.stack.length-1];this.state===2&&N===1&&(this.state=1,this.branchNode=F,this.lineCollectionAtBranch=S);let I;function fresh(n){return n.isLeaf()?new LineLeaf(``):new Tg}switch(N){case 0:this.goSubtree=!1,this.state!==4&&F.add(S);break;case 1:this.state===4?this.goSubtree=!1:(I=fresh(S),F.add(I),this.startPath.push(I));break;case 2:this.state===4?S.isLeaf()||(I=fresh(S),F.add(I),this.endBranch.push(I)):(I=fresh(S),F.add(I),this.startPath.push(I));break;case 3:this.goSubtree=!1;break;case 4:this.state===4?S.isLeaf()||(I=fresh(S),F.add(I),this.endBranch.push(I)):this.goSubtree=!1;break;case 5:this.goSubtree=!1,this.state!==1&&F.add(S);break}this.goSubtree&&this.stack.push(I)}leaf(n,a,S){this.state===1?this.initialText=S.text.substring(0,n):(this.state===2&&(this.initialText=S.text.substring(0,n)),this.trailingText=S.text.substring(n+a))}},TextChange9=class{constructor(n,a,S){this.pos=n,this.deleteLen=a,this.insertedText=S}getTextChangeRange(){return createTextChangeRange(createTextSpan(this.pos,this.deleteLen),this.insertedText?this.insertedText.length:0)}},xg=class _ScriptVersionCache{constructor(){this.changes=[],this.versions=Array(_ScriptVersionCache.maxVersions),this.minVersion=0,this.currentVersion=0}versionToIndex(n){if(!(n<this.minVersion||n>this.currentVersion))return n%_ScriptVersionCache.maxVersions}currentVersionToIndex(){return this.currentVersion%_ScriptVersionCache.maxVersions}edit(n,a,S){this.changes.push(new TextChange9(n,a,S)),(this.changes.length>_ScriptVersionCache.changeNumberThreshold||a>_ScriptVersionCache.changeLengthThreshold||S&&S.length>_ScriptVersionCache.changeLengthThreshold)&&this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let n=this.versions[this.currentVersionToIndex()];if(this.changes.length>0){let a=n.index;for(let n of this.changes)a=a.edit(n.pos,n.deleteLen,n.insertedText);n=new Cg(this.currentVersion+1,this,a,this.changes),this.currentVersion=n.version,this.versions[this.currentVersionToIndex()]=n,this.changes=[],this.currentVersion-this.minVersion>=_ScriptVersionCache.maxVersions&&(this.minVersion=this.currentVersion-_ScriptVersionCache.maxVersions+1)}return n}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(n){return this._getSnapshot().index.lineNumberToInfo(n)}lineOffsetToPosition(n,a){return this._getSnapshot().index.absolutePositionOfStartOfLine(n)+(a-1)}positionToLineOffset(n){return this._getSnapshot().index.positionToLineOffset(n)}lineToTextSpan(n){let a=this._getSnapshot().index,{lineText:S,absolutePosition:C}=a.lineNumberToInfo(n+1);return createTextSpan(C,S===void 0?a.absolutePositionOfStartOfLine(n+2)-C:S.length)}getTextChangesBetweenVersions(n,a){if(n<a)if(n>=this.minVersion){let S=[];for(let C=n+1;C<=a;C++){let n=this.versions[this.versionToIndex(C)];for(let a of n.changesSincePreviousVersion)S.push(a.getTextChangeRange())}return collapseTextChangeRangesAcrossMultipleVersions(S)}else return;else return Yn}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(n){let a=new _ScriptVersionCache,S=new Cg(0,a,new wg);a.versions[a.currentVersion]=S;let C=wg.linesFromText(n);return S.index.load(C.lines),a}};xg.changeNumberThreshold=8,xg.changeLengthThreshold=256,xg.maxVersions=8;var Sg=xg,Cg=class _LineIndexSnapshot{constructor(n,a,S,C=Ch){this.version=n,this.cache=a,this.index=S,this.changesSincePreviousVersion=C}getText(n,a){return this.index.getText(n,a-n)}getLength(){return this.index.getLength()}getChangeRange(n){if(n instanceof _LineIndexSnapshot&&this.cache===n.cache)return this.version<=n.version?Yn:this.cache.getTextChangesBetweenVersions(n.version,this.version)}},wg=class _LineIndex{constructor(){this.checkEdits=!1}absolutePositionOfStartOfLine(n){return this.lineNumberToInfo(n).absolutePosition}positionToLineOffset(n){let{oneBasedLine:a,zeroBasedColumn:S}=this.root.charOffsetToLineInfo(1,n);return{line:a,offset:S+1}}positionToColumnAndLineText(n){return this.root.charOffsetToLineInfo(1,n)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(n){if(n<=this.getLineCount()){let{position:a,leaf:S}=this.root.lineNumberToInfo(n,0);return{absolutePosition:a,lineText:S&&S.text}}else return{absolutePosition:this.root.charCount(),lineText:void 0}}load(n){if(n.length>0){let a=[];for(let S=0;S<n.length;S++)a[S]=new LineLeaf(n[S]);this.root=_LineIndex.buildTreeFromBottom(a)}else this.root=new Tg}walk(n,a,S){this.root.walk(n,a,S)}getText(n,a){let S=``;return a>0&&n<this.root.charCount()&&this.walk(n,a,{goSubtree:!0,done:!1,leaf:(n,a,C)=>{S=S.concat(C.text.substring(n,n+a))}}),S}getLength(){return this.root.charCount()}every(n,a,S){S||=this.root.charCount();let C={goSubtree:!0,done:!1,leaf(a,S,C){n(C,a,S)||(this.done=!0)}};return this.walk(a,S-a,C),!C.done}edit(n,a,S){if(this.root.charCount()===0)return Z.assert(a===0),S===void 0?void 0:(this.load(_LineIndex.linesFromText(S).lines),this);{let C;if(this.checkEdits){let N=this.getText(0,this.root.charCount());C=N.slice(0,n)+S+N.slice(n+a)}let N=new EditWalker,F=!1;if(n>=this.root.charCount()){n=this.root.charCount()-1;let C=this.getText(n,1);S=S?C+S:C,a=0,F=!0}else if(a>0){let C=n+a,{zeroBasedColumn:N,lineText:F}=this.positionToColumnAndLineText(C);N===0&&(a+=F.length,S=S?S+F:F)}if(this.root.walk(n,a,N),N.insertLines(S,F),this.checkEdits){let n=N.lineIndex.getText(0,N.lineIndex.getLength());Z.assert(C===n,`buffer edit mismatch`)}return N.lineIndex}}static buildTreeFromBottom(n){if(n.length<yg)return new Tg(n);let a=Array(Math.ceil(n.length/yg)),S=0;for(let C=0;C<a.length;C++){let N=Math.min(S+yg,n.length);a[C]=new Tg(n.slice(S,N)),S=N}return this.buildTreeFromBottom(a)}static linesFromText(n){let a=computeLineStarts(n);if(a.length===0)return{lines:[],lineMap:a};let S=Array(a.length),C=a.length-1;for(let N=0;N<C;N++)S[N]=n.substring(a[N],a[N+1]);let N=n.substring(a[C]);return N.length>0?S[C]=N:S.pop(),{lines:S,lineMap:a}}},Tg=class _LineNode{constructor(n=[]){this.children=n,this.totalChars=0,this.totalLines=0,n.length&&this.updateCounts()}isLeaf(){return!1}updateCounts(){this.totalChars=0,this.totalLines=0;for(let n of this.children)this.totalChars+=n.charCount(),this.totalLines+=n.lineCount()}execWalk(n,a,S,C,N){return S.pre&&S.pre(n,a,this.children[C],this,N),S.goSubtree?(this.children[C].walk(n,a,S),S.post&&S.post(n,a,this.children[C],this,N)):S.goSubtree=!0,S.done}skipChild(n,a,S,C,N){C.pre&&!C.done&&(C.pre(n,a,this.children[S],this,N),C.goSubtree=!0)}walk(n,a,S){if(this.children.length===0)return;let C=0,N=this.children[C].charCount(),F=n;for(;F>=N;)this.skipChild(F,a,C,S,0),F-=N,C++,N=this.children[C].charCount();if(F+a<=N){if(this.execWalk(F,a,S,C,2))return}else{if(this.execWalk(F,N-F,S,C,1))return;let n=a-(N-F);for(C++,N=this.children[C].charCount();n>N;){if(this.execWalk(0,N,S,C,3))return;n-=N,C++,N=this.children[C].charCount()}if(n>0&&this.execWalk(0,n,S,C,4))return}if(S.pre){let n=this.children.length;if(C<n-1)for(let a=C+1;a<n;a++)this.skipChild(0,0,a,S,5)}}charOffsetToLineInfo(n,a){if(this.children.length===0)return{oneBasedLine:n,zeroBasedColumn:a,lineText:void 0};for(let S of this.children)if(S.charCount()>a)return S.isLeaf()?{oneBasedLine:n,zeroBasedColumn:a,lineText:S.text}:S.charOffsetToLineInfo(n,a);else a-=S.charCount(),n+=S.lineCount();let S=this.lineCount();return S===0?{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0}:{oneBasedLine:S,zeroBasedColumn:Z.checkDefined(this.lineNumberToInfo(S,0).leaf).charCount(),lineText:void 0}}lineNumberToInfo(n,a){for(let S of this.children){let C=S.lineCount();if(C>=n)return S.isLeaf()?{position:a,leaf:S}:S.lineNumberToInfo(n,a);n-=C,a+=S.charCount()}return{position:a,leaf:void 0}}splitAfter(n){let a,S=this.children.length;n++;let C=n;if(n<S){for(a=new _LineNode;n<S;)a.add(this.children[n]),n++;a.updateCounts()}return this.children.length=C,a}remove(n){let a=this.findChildIndex(n),S=this.children.length;if(a<S-1)for(let n=a;n<S-1;n++)this.children[n]=this.children[n+1];this.children.pop()}findChildIndex(n){let a=this.children.indexOf(n);return Z.assert(a!==-1),a}insertAt(n,a){let S=this.findChildIndex(n),C=this.children.length,N=a.length;if(C<yg&&S===C-1&&N===1)return this.add(a[0]),this.updateCounts(),[];{let n=this.splitAfter(S),C=0;for(S++;S<yg&&C<N;)this.children[S]=a[C],S++,C++;let F=[],I=0;if(C<N){I=Math.ceil((N-C)/yg),F=Array(I);let n=0;for(let n=0;n<I;n++)F[n]=new _LineNode;let S=F[0];for(;C<N;)S.add(a[C]),C++,S.children.length===yg&&(n++,S=F[n]);for(let n=F.length-1;n>=0;n--)F[n].children.length===0&&F.pop()}n&&F.push(n),this.updateCounts();for(let n=0;n<I;n++)F[n].updateCounts();return F}}add(n){this.children.push(n),Z.assert(this.children.length<=yg)}charCount(){return this.totalChars}lineCount(){return this.totalLines}},LineLeaf=class{constructor(n){this.text=n}isLeaf(){return!0}walk(n,a,S){S.leaf(n,a,this)}charCount(){return this.text.length}lineCount(){return 1}},Eg=class _TypingsInstallerAdapter{constructor(n,a,S,C,N,F){this.telemetryEnabled=n,this.logger=a,this.host=S,this.globalTypingsCacheLocation=C,this.event=N,this.maxActiveRequestCount=F,this.activeRequestCount=0,this.requestQueue=createQueue(),this.requestMap=new Map,this.requestedRegistry=!1,this.packageInstallId=0}isKnownTypesPackageName(n){return nc.validatePackageName(n)===nc.NameValidationResult.Ok?(this.requestedRegistry||(this.requestedRegistry=!0,this.installer.send({kind:`typesRegistry`})),!!this.typesRegistryCache?.has(n)):!1}installPackage(n){this.packageInstallId++;let a={kind:`installPackage`,...n,id:this.packageInstallId},S=new Promise((n,a)=>{(this.packageInstalledPromise??=new Map).set(this.packageInstallId,{resolve:n,reject:a})});return this.installer.send(a),S}attach(n){this.projectService=n,this.installer=this.createInstallerProcess()}onProjectClosed(n){this.installer.send({projectName:n.getProjectName(),kind:`closeProject`})}enqueueInstallTypingsRequest(n,a,S){let C=createInstallTypingsRequest(n,a,S);this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling throttled operation:${stringifyIndented(C)}`),this.activeRequestCount<this.maxActiveRequestCount?this.scheduleRequest(C):(this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Deferring request for: ${C.projectName}`),this.requestQueue.enqueue(C),this.requestMap.set(C.projectName,C))}handleMessage(n){var a;switch(this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Received response:${stringifyIndented(n)}`),n.kind){case oc:this.typesRegistryCache=new Map(Object.entries(n.typesRegistry));break;case ac:{let S=this.packageInstalledPromise?.get(n.id);Z.assertIsDefined(S,`Should find the promise for package install`),(a=this.packageInstalledPromise)==null||a.delete(n.id),n.success?S.resolve({successMessage:n.message}):S.reject(n.message),this.projectService.updateTypingsForProject(n),this.event(n,`setTypings`);break}case lc:{let a={message:n.message};this.event(a,`typesInstallerInitializationFailed`);break}case sc:{let a={eventId:n.eventId,packages:n.packagesToInstall};this.event(a,`beginInstallTypes`);break}case cc:{if(this.telemetryEnabled){let a={telemetryEventName:`typingsInstalled`,payload:{installedPackages:n.packagesToInstall.join(`,`),installSuccess:n.installSuccess,typingsInstallerVersion:n.typingsInstallerVersion}};this.event(a,`telemetry`)}let a={eventId:n.eventId,packages:n.packagesToInstall,success:n.installSuccess};this.event(a,`endInstallTypes`);break}case ic:this.projectService.updateTypingsForProject(n);break;case rc:for(this.activeRequestCount>0?this.activeRequestCount--:Z.fail(`TIAdapter:: Received too many responses`);!this.requestQueue.isEmpty();){let n=this.requestQueue.dequeue();if(this.requestMap.get(n.projectName)===n){this.requestMap.delete(n.projectName),this.scheduleRequest(n);break}this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Skipping defunct request for: ${n.projectName}`)}this.projectService.updateTypingsForProject(n),this.event(n,`setTypings`);break;case uc:this.projectService.watchTypingLocations(n);break;default:}}scheduleRequest(n){this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling request for: ${n.projectName}`),this.activeRequestCount++,this.host.setTimeout(()=>{this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Sending request:${stringifyIndented(n)}`),this.installer.send(n)},_TypingsInstallerAdapter.requestDelayMillis,`${n.projectName}::${n.kind}`)}};Eg.requestDelayMillis=100;var Dg=Eg,Og={};__export(Og,{ActionInvalidate:()=>ic,ActionPackageInstalled:()=>ac,ActionSet:()=>rc,ActionWatchTypingLocations:()=>uc,Arguments:()=>dc,AutoImportProviderProject:()=>Hh,AuxiliaryProject:()=>AuxiliaryProject,CharRangeSection:()=>bg,CloseFileWatcherEvent:()=>tg,CommandNames:()=>hg,ConfigFileDiagEvent:()=>Yh,ConfiguredProject:()=>ConfiguredProject2,ConfiguredProjectLoadKind:()=>dg,CreateDirectoryWatcherEvent:()=>eg,CreateFileWatcherEvent:()=>$h,Errors:()=>Th,EventBeginInstallTypes:()=>sc,EventEndInstallTypes:()=>cc,EventInitializationFailed:()=>lc,EventTypesRegistry:()=>oc,ExternalProject:()=>ExternalProject,GcTimer:()=>Dh,InferredProject:()=>InferredProject2,LargeFileReferencedEvent:()=>Jh,LineIndex:()=>wg,LineLeaf:()=>LineLeaf,LineNode:()=>Tg,LogLevel:()=>Sh,Msg:()=>wh,OpenFileInfoTelemetryEvent:()=>Qh,Project:()=>Bh,ProjectInfoTelemetryEvent:()=>Zh,ProjectKind:()=>zh,ProjectLanguageServiceStateEvent:()=>Xh,ProjectLoadingFinishEvent:()=>qh,ProjectLoadingStartEvent:()=>Kh,ProjectService:()=>pg,ProjectsUpdatedInBackgroundEvent:()=>Gh,ScriptInfo:()=>ScriptInfo,ScriptVersionCache:()=>Sg,Session:()=>vg,TextStorage:()=>TextStorage,ThrottledOperations:()=>Eh,TypingsInstallerAdapter:()=>Dg,allFilesAreJsOrDts:()=>allFilesAreJsOrDts,allRootFilesAreJsOrDts:()=>allRootFilesAreJsOrDts,asNormalizedPath:()=>asNormalizedPath,convertCompilerOptions:()=>convertCompilerOptions,convertFormatOptions:()=>convertFormatOptions,convertScriptKindName:()=>convertScriptKindName,convertTypeAcquisition:()=>convertTypeAcquisition,convertUserPreferences:()=>convertUserPreferences,convertWatchOptions:()=>convertWatchOptions,countEachFileTypes:()=>countEachFileTypes,createInstallTypingsRequest:()=>createInstallTypingsRequest,createModuleSpecifierCache:()=>createModuleSpecifierCache,createNormalizedPathMap:()=>createNormalizedPathMap,createPackageJsonCache:()=>createPackageJsonCache,createSortedArray:()=>createSortedArray2,emptyArray:()=>Ch,findArgument:()=>findArgument,formatDiagnosticToProtocol:()=>formatDiagnosticToProtocol,formatMessage:()=>formatMessage2,getBaseConfigFileName:()=>getBaseConfigFileName,getDetailWatchInfo:()=>getDetailWatchInfo,getLocationInNewDocument:()=>getLocationInNewDocument,hasArgument:()=>hasArgument,hasNoTypeScriptSource:()=>hasNoTypeScriptSource,indent:()=>indent2,isBackgroundProject:()=>isBackgroundProject,isConfigFile:()=>isConfigFile,isConfiguredProject:()=>isConfiguredProject,isDynamicFileName:()=>isDynamicFileName,isExternalProject:()=>isExternalProject,isInferredProject:()=>isInferredProject,isInferredProjectName:()=>isInferredProjectName,isProjectDeferredClose:()=>isProjectDeferredClose,makeAutoImportProviderProjectName:()=>makeAutoImportProviderProjectName,makeAuxiliaryProjectName:()=>makeAuxiliaryProjectName,makeInferredProjectName:()=>makeInferredProjectName,maxFileSize:()=>Wh,maxProgramSizeForNonTsFiles:()=>Uh,normalizedPathToPath:()=>normalizedPathToPath,nowString:()=>nowString,nullCancellationToken:()=>mg,nullTypingsInstaller:()=>lg,protocol:()=>Oh,scriptInfoIsContainedByBackgroundProject:()=>scriptInfoIsContainedByBackgroundProject,scriptInfoIsContainedByDeferredClosedProject:()=>scriptInfoIsContainedByDeferredClosedProject,stringifyIndented:()=>stringifyIndented,toEvent:()=>toEvent,toNormalizedPath:()=>toNormalizedPath,tryConvertScriptKindName:()=>tryConvertScriptKindName,typingsInstaller:()=>bh,updateProjectIfDirty:()=>updateProjectIfDirty}),Fe!==void 0&&(Z.loggingHost={log(n,a){switch(n){case 1:return Fe.error(a);case 2:return Fe.warn(a);case 3:return Fe.log(a);case 4:return Fe.log(a)}}})})({get exports(){return N},set exports(n){N=n,a!==void 0&&a.exports&&(a.exports=n)}})})),Fp=__commonJSMin((n=>{var a=n&&n.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(n,"__esModule",{value:!0}),n.loadTs=n.loadTsSync=n.loadYaml=n.loadJson=n.loadJs=n.loadJsSync=void 0;let S=(As(),__toCommonJS(Ds)),C=(ss(),__toCommonJS(is)),N=a((Ho(),__toCommonJS(Do))),F=(rn(),__toCommonJS(Qt)),I=(Ga(),__toCommonJS(Ua)),H;n.loadJsSync=function loadJsSync(n){return H===void 0&&(H=Ru()),H(n)},n.loadJs=async function loadJs(a){try{let{href:n}=(0,F.pathToFileURL)(await(0,C.realpath)(a));return(await import(n)).default}catch(S){try{return(0,n.loadJsSync)(a,``)}catch(n){throw n.code===`ERR_REQUIRE_ESM`||n instanceof SyntaxError&&n.toString().includes(`Cannot use import statement outside a module`)?S:n}}};let W;n.loadJson=function loadJson(n,a){W===void 0&&(W=Yu());try{return W(a)}catch(a){throw a.message=`JSON Error in ${n}:\n${a.message}`,a}};let K;n.loadYaml=function loadYaml(n,a){K===void 0&&(K=(Jf(),__toCommonJS(Xu)));try{return K.load(a)}catch(a){throw a.message=`YAML Error in ${n}:\n${a.message}`,a}};let q;n.loadTsSync=function loadTsSync(a,C){q===void 0&&(q=Pp());let F=`${a}.${(0,I.randomUUID)()}.cjs`;try{let I=resolveTsConfig(N.default.dirname(a))??{};return I.compilerOptions={...I.compilerOptions,module:q.ModuleKind.NodeNext,moduleResolution:q.ModuleResolutionKind.NodeNext,target:q.ScriptTarget.ES2022,noEmit:!1},C=q.transpileModule(C,I).outputText,(0,S.writeFileSync)(F,C),(0,n.loadJsSync)(F,C).default}catch(n){throw n.message=`TypeScript Error in ${a}:\n${n.message}`,n}finally{(0,S.existsSync)(F)&&(0,S.rmSync)(F)}},n.loadTs=async function loadTs(a,F){q===void 0&&(q=(await Promise.resolve().then(()=>__toESM(Pp()))).default);let H=`${a}.${(0,I.randomUUID)()}.mjs`,W;try{try{let n=resolveTsConfig(N.default.dirname(a))??{};n.compilerOptions={...n.compilerOptions,module:q.ModuleKind.ES2022,moduleResolution:q.ModuleResolutionKind.Bundler,target:q.ScriptTarget.ES2022,noEmit:!1},W=q.transpileModule(F,n).outputText,await(0,C.writeFile)(H,W)}catch(n){throw n.message=`TypeScript Error in ${a}:\n${n.message}`,n}return await(0,n.loadJs)(H,W)}finally{(0,S.existsSync)(H)&&await(0,C.rm)(H)}};function resolveTsConfig(n){let a=q.findConfigFile(n,n=>q.sys.fileExists(n));if(a!==void 0){let{config:n,error:S}=q.readConfigFile(a,n=>q.sys.readFile(n));if(S)throw Error(`Error in ${a}: ${S.messageText.toString()}`);return n}}})),Ip=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.defaultLoadersSync=n.defaultLoaders=n.metaSearchPlaces=n.globalConfigSearchPlacesSync=n.globalConfigSearchPlaces=n.getDefaultSearchPlacesSync=n.getDefaultSearchPlaces=void 0;let a=Fp();function getDefaultSearchPlaces(n){return[`package.json`,`.${n}rc`,`.${n}rc.json`,`.${n}rc.yaml`,`.${n}rc.yml`,`.${n}rc.js`,`.${n}rc.ts`,`.${n}rc.cjs`,`.${n}rc.mjs`,`.config/${n}rc`,`.config/${n}rc.json`,`.config/${n}rc.yaml`,`.config/${n}rc.yml`,`.config/${n}rc.js`,`.config/${n}rc.ts`,`.config/${n}rc.cjs`,`.config/${n}rc.mjs`,`${n}.config.js`,`${n}.config.ts`,`${n}.config.cjs`,`${n}.config.mjs`]}n.getDefaultSearchPlaces=getDefaultSearchPlaces;function getDefaultSearchPlacesSync(n){return[`package.json`,`.${n}rc`,`.${n}rc.json`,`.${n}rc.yaml`,`.${n}rc.yml`,`.${n}rc.js`,`.${n}rc.ts`,`.${n}rc.cjs`,`.config/${n}rc`,`.config/${n}rc.json`,`.config/${n}rc.yaml`,`.config/${n}rc.yml`,`.config/${n}rc.js`,`.config/${n}rc.ts`,`.config/${n}rc.cjs`,`${n}.config.js`,`${n}.config.ts`,`${n}.config.cjs`]}n.getDefaultSearchPlacesSync=getDefaultSearchPlacesSync,n.globalConfigSearchPlaces=[`config`,`config.json`,`config.yaml`,`config.yml`,`config.js`,`config.ts`,`config.cjs`,`config.mjs`],n.globalConfigSearchPlacesSync=[`config`,`config.json`,`config.yaml`,`config.yml`,`config.js`,`config.ts`,`config.cjs`],n.metaSearchPlaces=[`package.json`,`package.yaml`,`.config/config.json`,`.config/config.yaml`,`.config/config.yml`,`.config/config.js`,`.config/config.ts`,`.config/config.cjs`,`.config/config.mjs`],n.defaultLoaders=Object.freeze({".mjs":a.loadJs,".cjs":a.loadJs,".js":a.loadJs,".ts":a.loadTs,".json":a.loadJson,".yaml":a.loadYaml,".yml":a.loadYaml,noExt:a.loadYaml}),n.defaultLoadersSync=Object.freeze({".cjs":a.loadJsSync,".js":a.loadJsSync,".ts":a.loadTsSync,".json":a.loadJson,".yaml":a.loadYaml,".yml":a.loadYaml,noExt:a.loadYaml})})),Lp=__commonJSMin(((n,a)=>{let S=(Ho(),__toCommonJS(Do)),C=(kp(),__toCommonJS(Sp)),N=C.homedir(),F=C.tmpdir(),{env:I}=process,macos=n=>{let a=S.join(N,`Library`);return{data:S.join(a,`Application Support`,n),config:S.join(a,`Preferences`,n),cache:S.join(a,`Caches`,n),log:S.join(a,`Logs`,n),temp:S.join(F,n)}},windows=n=>{let a=I.APPDATA||S.join(N,`AppData`,`Roaming`),C=I.LOCALAPPDATA||S.join(N,`AppData`,`Local`);return{data:S.join(C,n,`Data`),config:S.join(a,n,`Config`),cache:S.join(C,n,`Cache`),log:S.join(C,n,`Log`),temp:S.join(F,n)}},linux=n=>{let a=S.basename(N);return{data:S.join(I.XDG_DATA_HOME||S.join(N,`.local`,`share`),n),config:S.join(I.XDG_CONFIG_HOME||S.join(N,`.config`),n),cache:S.join(I.XDG_CACHE_HOME||S.join(N,`.cache`),n),log:S.join(I.XDG_STATE_HOME||S.join(N,`.local`,`state`),n),temp:S.join(F,a,n)}},envPaths=(n,a)=>{if(typeof n!=`string`)throw TypeError(`Expected string, got ${typeof n}`);return a=Object.assign({suffix:`nodejs`},a),a.suffix&&(n+=`-${a.suffix}`),process.platform===`darwin`?macos(n):process.platform===`win32`?windows(n):linux(n)};a.exports=envPaths,a.exports.default=envPaths})),Rp=__commonJSMin((n=>{var a=n&&n.__createBinding||(Object.create?(function(n,a,S,C){C===void 0&&(C=S);var N=Object.getOwnPropertyDescriptor(a,S);(!N||(`get`in N?!a.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return a[S]}}),Object.defineProperty(n,C,N)}):(function(n,a,S,C){C===void 0&&(C=S),n[C]=a[S]})),S=n&&n.__setModuleDefault||(Object.create?(function(n,a){Object.defineProperty(n,"default",{enumerable:!0,value:a})}):function(n,a){n.default=a}),C=n&&n.__importStar||function(n){if(n&&n.__esModule)return n;var C={};if(n!=null)for(var N in n)N!==`default`&&Object.prototype.hasOwnProperty.call(n,N)&&a(C,n,N);return S(C,n),C};Object.defineProperty(n,"__esModule",{value:!0}),n.isDirectorySync=n.isDirectory=n.removeUndefinedValuesFromObject=n.getPropertyByPath=n.emplace=void 0;let N=C((As(),__toCommonJS(Ds)));function emplace(n,a,S){let C=n.get(a);if(C!==void 0)return C;let N=S();return n.set(a,N),N}n.emplace=emplace;function getPropertyByPath(n,a){return typeof a==`string`&&Object.prototype.hasOwnProperty.call(n,a)?n[a]:(typeof a==`string`?a.split(`.`):a).reduce((n,a)=>n===void 0?n:n[a],n)}n.getPropertyByPath=getPropertyByPath;function removeUndefinedValuesFromObject(n){return Object.fromEntries(Object.entries(n).filter(([,n])=>n!==void 0))}n.removeUndefinedValuesFromObject=removeUndefinedValuesFromObject;async function isDirectory(n){try{return(await N.promises.stat(n)).isDirectory()}catch(n){if(n.code===`ENOENT`)return!1;throw n}}n.isDirectory=isDirectory;function isDirectorySync(n){try{return N.default.statSync(n).isDirectory()}catch(n){if(n.code===`ENOENT`)return!1;throw n}}n.isDirectorySync=isDirectorySync})),zp=__commonJSMin((n=>{var a=n&&n.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(n,"__esModule",{value:!0}),n.getExtensionDescription=n.ExplorerBase=void 0;let S=a(Lp()),C=a((kp(),__toCommonJS(Sp))),N=a((Ho(),__toCommonJS(Do))),F=Rp();var ExplorerBase=class{#e=!1;config;loadCache;searchCache;constructor(n){this.config=n,n.cache&&(this.loadCache=new Map,this.searchCache=new Map),this.#t()}set loadingMetaConfig(n){this.#e=n}#t(){let n=this.config;for(let a of n.searchPlaces){let n=N.default.extname(a),S=this.config.loaders[n||`noExt`]??this.config.loaders.default;if(S===void 0)throw Error(`Missing loader for ${getExtensionDescription(a)}.`);if(typeof S!=`function`)throw Error(`Loader for ${getExtensionDescription(a)} is not a function: Received ${typeof S}.`)}}clearLoadCache(){this.loadCache&&this.loadCache.clear()}clearSearchCache(){this.searchCache&&this.searchCache.clear()}clearCaches(){this.clearLoadCache(),this.clearSearchCache()}toCosmiconfigResult(n,a){if(a===null)return null;if(a===void 0)return{filepath:n,config:void 0,isEmpty:!0};if(this.config.applyPackagePropertyPathToConfiguration||this.#e){let n=this.config.packageProp??this.config.moduleName;a=(0,F.getPropertyByPath)(a,n)}return a===void 0?{filepath:n,config:void 0,isEmpty:!0}:{config:a,filepath:n}}validateImports(n,a,S){let C=N.default.dirname(n);for(let F of a){if(typeof F!=`string`)throw Error(`${n}: Key $import must contain a string or a list of strings`);let a=N.default.resolve(C,F);if(a===n)throw Error(`Self-import detected in ${n}`);let I=S.indexOf(a);if(I!==-1)throw Error(`Circular import detected:
618
618
  ${[...S,a].map((n,a)=>`${a+1}. ${n}`).join(`
619
619
  `)} (same as ${I+1}.)`)}}getSearchPlacesForDir(n,a){return(n.isGlobalConfig?a:this.config.searchPlaces).map(a=>N.default.join(n.path,a))}getGlobalConfigDir(){return(0,S.default)(this.config.moduleName,{suffix:``}).config}*getGlobalDirs(n){let a=N.default.resolve(this.config.stopDir??C.default.homedir());yield{path:n,isGlobalConfig:!1};let S=n;for(;S!==a;){let n=N.default.dirname(S);if(n===S)break;yield{path:n,isGlobalConfig:!1},S=n}yield{path:this.getGlobalConfigDir(),isGlobalConfig:!0}}};n.ExplorerBase=ExplorerBase;function getExtensionDescription(n){return n?`extension "${n}"`:`files without extensions`}n.getExtensionDescription=getExtensionDescription})),Bp=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.mergeAll=n.hasOwn=void 0,n.hasOwn=Function.prototype.call.bind(Object.prototype.hasOwnProperty);let a=Function.prototype.call.bind(Object.prototype.toString);function isPlainObject(n){return a(n)===`[object Object]`}function merge(a,S,C){for(let N of Object.keys(S)){let F=S[N];if((0,n.hasOwn)(a,N)){if(Array.isArray(a[N])&&Array.isArray(F)){if(C.mergeArrays){a[N].push(...F);continue}}else if(isPlainObject(a[N])&&isPlainObject(F)){a[N]=merge(a[N],F,C);continue}}a[N]=F}return a}function mergeAll(n,a){return n.reduce((n,S)=>merge(n,S,a),{})}n.mergeAll=mergeAll})),Vp=__commonJSMin((n=>{var a=n&&n.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(n,"__esModule",{value:!0}),n.Explorer=void 0;let S=a((ss(),__toCommonJS(is))),C=a((Ho(),__toCommonJS(Do))),N=Ip(),F=zp(),I=Bp(),H=Rp();var Explorer=class extends F.ExplorerBase{async load(n){n=C.default.resolve(n);let load=async()=>await this.config.transform(await this.#e(n));return this.loadCache?await(0,H.emplace)(this.loadCache,n,load):await load()}async search(n=``){if(this.config.metaConfigFilePath){this.loadingMetaConfig=!0;let n=await this.load(this.config.metaConfigFilePath);if(this.loadingMetaConfig=!1,n&&!n.isEmpty)return n}n=C.default.resolve(n);let a=this.#i(n),S=await a.next();if(S.done)throw Error(`Could not find any folders to iterate through (start from ${n})`);let F=S.value,search=async()=>{if(await(0,H.isDirectory)(F.path))for(let n of this.getSearchPlacesForDir(F,N.globalConfigSearchPlaces))try{let a=await this.#e(n);if(a!==null&&!(a.isEmpty&&this.config.ignoreEmptySearchPlaces))return await this.config.transform(a)}catch(n){if(n.code===`ENOENT`||n.code===`EISDIR`||n.code===`ENOTDIR`||n.code===`EACCES`)continue;throw n}let n=await a.next();return n.done?await this.config.transform(null):(F=n.value,this.searchCache?await(0,H.emplace)(this.searchCache,F.path,search):await search())};return this.searchCache?await(0,H.emplace)(this.searchCache,n,search):await search()}async#e(n,a=[]){let C=await S.default.readFile(n,{encoding:`utf-8`});return this.toCosmiconfigResult(n,await this.#t(n,C,a))}async#t(n,a,S){let N=await this.#n(n,a);if(!N||!(0,I.hasOwn)(N,`$import`))return N;let F=C.default.dirname(n),{$import:H,...W}=N,K=Array.isArray(H)?H:[H],q=[...S,n];this.validateImports(n,K,q);let Y=await Promise.all(K.map(async n=>{let a=C.default.resolve(F,n);return(await this.#e(a,q))?.config}));return(0,I.mergeAll)([...Y,W],{mergeArrays:this.config.mergeImportArrays})}async#n(n,a){if(a.trim()===``)return;let S=C.default.extname(n),N=this.config.loaders[S||`noExt`]??this.config.loaders.default;if(!N)throw Error(`No loader specified for ${(0,F.getExtensionDescription)(S)}`);try{let F=await N(n,a);return C.default.basename(n,S)===`package`?(0,H.getPropertyByPath)(F,this.config.packageProp??this.config.moduleName)??null:F}catch(a){throw a.filepath=n,a}}async#r(n){try{return await S.default.stat(n),!0}catch{return!1}}async*#i(n){switch(this.config.searchStrategy){case`none`:yield{path:n,isGlobalConfig:!1};return;case`project`:{let a=n;for(;;){yield{path:a,isGlobalConfig:!1};for(let n of[`json`,`yaml`]){let S=C.default.join(a,`package.${n}`);if(await this.#r(S))break}let n=C.default.dirname(a);if(n===a)break;a=n}return}case`global`:yield*this.getGlobalDirs(n)}}};n.Explorer=Explorer})),Hp=__commonJSMin((n=>{var a=n&&n.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(n,"__esModule",{value:!0}),n.ExplorerSync=void 0;let S=a((As(),__toCommonJS(Ds))),C=a((Ho(),__toCommonJS(Do))),N=Ip(),F=zp(),I=Bp(),H=Rp();var ExplorerSync=class extends F.ExplorerBase{load(n){n=C.default.resolve(n);let load=()=>this.config.transform(this.#e(n));return this.loadCache?(0,H.emplace)(this.loadCache,n,load):load()}search(n=``){if(this.config.metaConfigFilePath){this.loadingMetaConfig=!0;let n=this.load(this.config.metaConfigFilePath);if(this.loadingMetaConfig=!1,n&&!n.isEmpty)return n}n=C.default.resolve(n);let a=this.#i(n),S=a.next();if(S.done)throw Error(`Could not find any folders to iterate through (start from ${n})`);let F=S.value,search=()=>{if((0,H.isDirectorySync)(F.path))for(let n of this.getSearchPlacesForDir(F,N.globalConfigSearchPlacesSync))try{let a=this.#e(n);if(a!==null&&!(a.isEmpty&&this.config.ignoreEmptySearchPlaces))return this.config.transform(a)}catch(n){if(n.code===`ENOENT`||n.code===`EISDIR`||n.code===`ENOTDIR`||n.code===`EACCES`)continue;throw n}let n=a.next();return n.done?this.config.transform(null):(F=n.value,this.searchCache?(0,H.emplace)(this.searchCache,F.path,search):search())};return this.searchCache?(0,H.emplace)(this.searchCache,n,search):search()}#e(n,a=[]){let C=S.default.readFileSync(n,`utf8`);return this.toCosmiconfigResult(n,this.#t(n,C,a))}#t(n,a,S){let N=this.#n(n,a);if(!N||!(0,I.hasOwn)(N,`$import`))return N;let F=C.default.dirname(n),{$import:H,...W}=N,K=Array.isArray(H)?H:[H],q=[...S,n];this.validateImports(n,K,q);let Y=K.map(n=>{let a=C.default.resolve(F,n);return this.#e(a,q)?.config});return(0,I.mergeAll)([...Y,W],{mergeArrays:this.config.mergeImportArrays})}#n(n,a){if(a.trim()===``)return;let S=C.default.extname(n),N=this.config.loaders[S||`noExt`]??this.config.loaders.default;if(!N)throw Error(`No loader specified for ${(0,F.getExtensionDescription)(S)}`);try{let F=N(n,a);return C.default.basename(n,S)===`package`?(0,H.getPropertyByPath)(F,this.config.packageProp??this.config.moduleName)??null:F}catch(a){throw a.filepath=n,a}}#r(n){try{return S.default.statSync(n),!0}catch{return!1}}*#i(n){switch(this.config.searchStrategy){case`none`:yield{path:n,isGlobalConfig:!1};return;case`project`:{let a=n;for(;;){yield{path:a,isGlobalConfig:!1};for(let n of[`json`,`yaml`]){let S=C.default.join(a,`package.${n}`);if(this.#r(S))break}let n=C.default.dirname(a);if(n===a)break;a=n}return}case`global`:yield*this.getGlobalDirs(n)}}loadSync(n){return this.load(n)}searchSync(n=``){return this.search(n)}};n.ExplorerSync=ExplorerSync})),Up=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.defaultLoadersSync=n.defaultLoaders=n.globalConfigSearchPlacesSync=n.globalConfigSearchPlaces=n.getDefaultSearchPlacesSync=n.getDefaultSearchPlaces=n.cosmiconfigSync=n.cosmiconfig=void 0;let a=Ip();Object.defineProperty(n,"defaultLoaders",{enumerable:!0,get:function(){return a.defaultLoaders}}),Object.defineProperty(n,"defaultLoadersSync",{enumerable:!0,get:function(){return a.defaultLoadersSync}}),Object.defineProperty(n,"getDefaultSearchPlaces",{enumerable:!0,get:function(){return a.getDefaultSearchPlaces}}),Object.defineProperty(n,"getDefaultSearchPlacesSync",{enumerable:!0,get:function(){return a.getDefaultSearchPlacesSync}}),Object.defineProperty(n,"globalConfigSearchPlaces",{enumerable:!0,get:function(){return a.globalConfigSearchPlaces}}),Object.defineProperty(n,"globalConfigSearchPlacesSync",{enumerable:!0,get:function(){return a.globalConfigSearchPlacesSync}});let S=Vp(),C=Hp(),N=Rp(),F=function identity(n){return n};function getUserDefinedOptionsFromMetaConfig(){let n=new C.ExplorerSync({moduleName:`cosmiconfig`,stopDir:process.cwd(),searchPlaces:a.metaSearchPlaces,ignoreEmptySearchPlaces:!1,applyPackagePropertyPathToConfiguration:!0,loaders:a.defaultLoaders,transform:F,cache:!0,metaConfigFilePath:null,mergeImportArrays:!0,mergeSearchPlaces:!0,searchStrategy:`none`}).search();if(!n)return null;if(n.config?.loaders)throw Error(`Can not specify loaders in meta config file`);if(n.config?.searchStrategy)throw Error(`Can not specify searchStrategy in meta config file`);let S={mergeSearchPlaces:!0,...n.config??{}};return{config:(0,N.removeUndefinedValuesFromObject)(S),filepath:n.filepath}}function getResolvedSearchPlaces(n,a,S){let C=S.searchPlaces?.map(a=>a.replace(`{name}`,n));return S.mergeSearchPlaces?[...C??[],...a]:C??a}function mergeOptionsBase(n,a,S){let C=getUserDefinedOptionsFromMetaConfig();if(!C)return{...a,...(0,N.removeUndefinedValuesFromObject)(S),loaders:{...a.loaders,...S.loaders}};let F=C.config,I=S.searchPlaces??a.searchPlaces;return{...a,...(0,N.removeUndefinedValuesFromObject)(S),metaConfigFilePath:C.filepath,...F,searchPlaces:getResolvedSearchPlaces(n,I,F),loaders:{...a.loaders,...S.loaders}}}function validateOptions(n){if(n.searchStrategy!=null&&n.searchStrategy!==`global`&&n.stopDir)throw Error('Can not supply `stopDir` option with `searchStrategy` other than "global"')}function mergeOptions(n,S){return validateOptions(S),mergeOptionsBase(n,{moduleName:n,searchPlaces:(0,a.getDefaultSearchPlaces)(n),ignoreEmptySearchPlaces:!0,cache:!0,transform:F,loaders:a.defaultLoaders,metaConfigFilePath:null,mergeImportArrays:!0,mergeSearchPlaces:!0,searchStrategy:S.stopDir?`global`:`none`},S)}function mergeOptionsSync(n,S){return validateOptions(S),mergeOptionsBase(n,{moduleName:n,searchPlaces:(0,a.getDefaultSearchPlacesSync)(n),ignoreEmptySearchPlaces:!0,cache:!0,transform:F,loaders:a.defaultLoadersSync,metaConfigFilePath:null,mergeImportArrays:!0,mergeSearchPlaces:!0,searchStrategy:S.stopDir?`global`:`none`},S)}function cosmiconfig(n,a={}){let C=mergeOptions(n,a),N=new S.Explorer(C);return{search:N.search.bind(N),load:N.load.bind(N),clearLoadCache:N.clearLoadCache.bind(N),clearSearchCache:N.clearSearchCache.bind(N),clearCaches:N.clearCaches.bind(N)}}n.cosmiconfig=cosmiconfig;function cosmiconfigSync(n,a={}){let S=mergeOptionsSync(n,a),N=new C.ExplorerSync(S);return{search:N.search.bind(N),load:N.load.bind(N),clearLoadCache:N.clearLoadCache.bind(N),clearSearchCache:N.clearSearchCache.bind(N),clearCaches:N.clearCaches.bind(N)}}n.cosmiconfigSync=cosmiconfigSync}));const Wp=/^[A-Za-z]:\//;function normalizeWindowsPath(n=``){return n&&n.replace(/\\/g,`/`).replace(Wp,n=>n.toUpperCase())}const Gp=/^[/\\]{2}/,Kp=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,qp=/^[A-Za-z]:$/,normalize=function(n){if(n.length===0)return`.`;n=normalizeWindowsPath(n);let a=n.match(Gp),S=isAbsolute(n),C=n[n.length-1]===`/`;return n=normalizeString(n,!S),n.length===0?S?`/`:C?`./`:`.`:(C&&(n+=`/`),qp.test(n)&&(n+=`/`),a?S?`//${n}`:`//./${n}`:S&&!isAbsolute(n)?`/${n}`:n)},join=function(...n){let a=``;for(let S of n)if(S)if(a.length>0){let n=a[a.length-1]===`/`,C=S[0]===`/`;n&&C?a+=S.slice(1):a+=n||C?S:`/${S}`}else a+=S;return normalize(a)};function cwd(){return typeof process<`u`&&typeof process.cwd==`function`?process.cwd().replace(/\\/g,`/`):`/`}const resolve=function(...n){n=n.map(n=>normalizeWindowsPath(n));let a=``,S=!1;for(let C=n.length-1;C>=-1&&!S;C--){let N=C>=0?n[C]:cwd();!N||N.length===0||(a=`${N}/${a}`,S=isAbsolute(N))}return a=normalizeString(a,!S),S&&!isAbsolute(a)?`/${a}`:a.length>0?a:`.`};function normalizeString(n,a){let S=``,C=0,N=-1,F=0,I=null;for(let H=0;H<=n.length;++H){if(H<n.length)I=n[H];else if(I===`/`)break;else I=`/`;if(I===`/`){if(!(N===H-1||F===1))if(F===2){if(S.length<2||C!==2||S[S.length-1]!==`.`||S[S.length-2]!==`.`){if(S.length>2){let n=S.lastIndexOf(`/`);n===-1?(S=``,C=0):(S=S.slice(0,n),C=S.length-1-S.lastIndexOf(`/`)),N=H,F=0;continue}else if(S.length>0){S=``,C=0,N=H,F=0;continue}}a&&(S+=S.length>0?`/..`:`..`,C=2)}else S.length>0?S+=`/${n.slice(N+1,H)}`:S=n.slice(N+1,H),C=H-N-1;N=H,F=0}else I===`.`&&F!==-1?++F:F=-1}return S}const isAbsolute=function(n){return Kp.test(n)},Jp=Symbol.for(`__confbox_fmt__`),Yp=/^(\s+)/,Xp=/(\s+)$/;function i$4(n,a={}){return{sample:a.indent===void 0&&a.preserveIndentation!==!1&&n.slice(0,a?.sampleSize||1024),whiteSpace:a.preserveWhitespace===!1?void 0:{start:Yp.exec(n)?.[0]||``,end:Xp.exec(n)?.[0]||``}}}__name$1(i$4,`i`);function a$4(n,a,S){!a||typeof a!=`object`||Object.defineProperty(a,Jp,{enumerable:!1,configurable:!0,writable:!0,value:i$4(n,S)})}__name$1(a$4,`a`);function e$2(n,a=!1){let S=n.length,C=0,N=``,F=0,I=16,H=0,W=0,K=0,q=0,Y=0;function h(a,S){let N=0,F=0;for(;N<a||!S;){let a=n.charCodeAt(C);if(a>=48&&a<=57)F=F*16+a-48;else if(a>=65&&a<=70)F=F*16+a-65+10;else if(a>=97&&a<=102)F=F*16+a-97+10;else break;C++,N++}return N<a&&(F=-1),F}function g(n){C=n,N=``,F=0,I=16,Y=0}function _(){let a=C;if(n.charCodeAt(C)===48)C++;else for(C++;C<n.length&&r$2(n.charCodeAt(C));)C++;if(C<n.length&&n.charCodeAt(C)===46)if(C++,C<n.length&&r$2(n.charCodeAt(C)))for(C++;C<n.length&&r$2(n.charCodeAt(C));)C++;else return Y=3,n.substring(a,C);let S=C;if(C<n.length&&(n.charCodeAt(C)===69||n.charCodeAt(C)===101))if(C++,(C<n.length&&n.charCodeAt(C)===43||n.charCodeAt(C)===45)&&C++,C<n.length&&r$2(n.charCodeAt(C))){for(C++;C<n.length&&r$2(n.charCodeAt(C));)C++;S=C}else Y=3;return n.substring(a,S)}function v(){let a=``,N=C;for(;;){if(C>=S){a+=n.substring(N,C),Y=2;break}let F=n.charCodeAt(C);if(F===34){a+=n.substring(N,C),C++;break}if(F===92){if(a+=n.substring(N,C),C++,C>=S){Y=2;break}switch(n.charCodeAt(C++)){case 34:a+=`"`;break;case 92:a+=`\\`;break;case 47:a+=`/`;break;case 98:a+=`\b`;break;case 102:a+=`\f`;break;case 110:a+=`
620
- `;break;case 114:a+=`\r`;break;case 116:a+=` `;break;case 117:let n=h(4,!0);n>=0?a+=String.fromCharCode(n):Y=4;break;default:Y=5}N=C;continue}if(F>=0&&F<=31)if(n$3(F)){a+=n.substring(N,C),Y=2;break}else Y=6;C++}return a}function y(){if(N=``,Y=0,F=C,W=H,q=K,C>=S)return F=S,I=17;let a=n.charCodeAt(C);if(t$3(a)){do C++,N+=String.fromCharCode(a),a=n.charCodeAt(C);while(t$3(a));return I=15}if(n$3(a))return C++,N+=String.fromCharCode(a),a===13&&n.charCodeAt(C)===10&&(C++,N+=`
621
- `),H++,K=C,I=14;switch(a){case 123:return C++,I=1;case 125:return C++,I=2;case 91:return C++,I=3;case 93:return C++,I=4;case 58:return C++,I=6;case 44:return C++,I=5;case 34:return C++,N=v(),I=10;case 47:let W=C-1;if(n.charCodeAt(C+1)===47){for(C+=2;C<S&&!n$3(n.charCodeAt(C));)C++;return N=n.substring(W,C),I=12}if(n.charCodeAt(C+1)===42){C+=2;let a=S-1,F=!1;for(;C<a;){let a=n.charCodeAt(C);if(a===42&&n.charCodeAt(C+1)===47){C+=2,F=!0;break}C++,n$3(a)&&(a===13&&n.charCodeAt(C)===10&&C++,H++,K=C)}return F||(C++,Y=1),N=n.substring(W,C),I=13}return N+=String.fromCharCode(a),C++,I=16;case 45:if(N+=String.fromCharCode(a),C++,C===S||!r$2(n.charCodeAt(C)))return I=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return N+=_(),I=11;default:for(;C<S&&b(a);)C++,a=n.charCodeAt(C);if(F!==C){switch(N=n.substring(F,C),N){case`true`:return I=8;case`false`:return I=9;case`null`:return I=7}return I=16}return N+=String.fromCharCode(a),C++,I=16}}function b(n){if(t$3(n)||n$3(n))return!1;switch(n){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function x(){let n;do n=y();while(n>=12&&n<=15);return n}return{setPosition:g,getPosition:()=>C,scan:a?x:y,getToken:()=>I,getTokenValue:()=>N,getTokenOffset:()=>F,getTokenLength:()=>C-F,getTokenStartLine:()=>W,getTokenStartCharacter:()=>F-q,getTokenError:()=>Y}}__name$1(e$2,`e`);function t$3(n){return n===32||n===9}__name$1(t$3,`t`);function n$3(n){return n===10||n===13}__name$1(n$3,`n`);function r$2(n){return n>=48&&n<=57}__name$1(r$2,`r`);var Zp;(function(n){n[n.lineFeed=10]=`lineFeed`,n[n.carriageReturn=13]=`carriageReturn`,n[n.space=32]=`space`,n[n._0=48]=`_0`,n[n._1=49]=`_1`,n[n._2=50]=`_2`,n[n._3=51]=`_3`,n[n._4=52]=`_4`,n[n._5=53]=`_5`,n[n._6=54]=`_6`,n[n._7=55]=`_7`,n[n._8=56]=`_8`,n[n._9=57]=`_9`,n[n.a=97]=`a`,n[n.b=98]=`b`,n[n.c=99]=`c`,n[n.d=100]=`d`,n[n.e=101]=`e`,n[n.f=102]=`f`,n[n.g=103]=`g`,n[n.h=104]=`h`,n[n.i=105]=`i`,n[n.j=106]=`j`,n[n.k=107]=`k`,n[n.l=108]=`l`,n[n.m=109]=`m`,n[n.n=110]=`n`,n[n.o=111]=`o`,n[n.p=112]=`p`,n[n.q=113]=`q`,n[n.r=114]=`r`,n[n.s=115]=`s`,n[n.t=116]=`t`,n[n.u=117]=`u`,n[n.v=118]=`v`,n[n.w=119]=`w`,n[n.x=120]=`x`,n[n.y=121]=`y`,n[n.z=122]=`z`,n[n.A=65]=`A`,n[n.B=66]=`B`,n[n.C=67]=`C`,n[n.D=68]=`D`,n[n.E=69]=`E`,n[n.F=70]=`F`,n[n.G=71]=`G`,n[n.H=72]=`H`,n[n.I=73]=`I`,n[n.J=74]=`J`,n[n.K=75]=`K`,n[n.L=76]=`L`,n[n.M=77]=`M`,n[n.N=78]=`N`,n[n.O=79]=`O`,n[n.P=80]=`P`,n[n.Q=81]=`Q`,n[n.R=82]=`R`,n[n.S=83]=`S`,n[n.T=84]=`T`,n[n.U=85]=`U`,n[n.V=86]=`V`,n[n.W=87]=`W`,n[n.X=88]=`X`,n[n.Y=89]=`Y`,n[n.Z=90]=`Z`,n[n.asterisk=42]=`asterisk`,n[n.backslash=92]=`backslash`,n[n.closeBrace=125]=`closeBrace`,n[n.closeBracket=93]=`closeBracket`,n[n.colon=58]=`colon`,n[n.comma=44]=`comma`,n[n.dot=46]=`dot`,n[n.doubleQuote=34]=`doubleQuote`,n[n.minus=45]=`minus`,n[n.openBrace=123]=`openBrace`,n[n.openBracket=91]=`openBracket`,n[n.plus=43]=`plus`,n[n.slash=47]=`slash`,n[n.formFeed=12]=`formFeed`,n[n.tab=9]=`tab`})(Zp||={}),Array(20).fill(0).map((n,a)=>` `.repeat(a)),Array(200).fill(0).map((n,a)=>`
620
+ `;break;case 114:a+=`\r`;break;case 116:a+=` `;break;case 117:let n=h(4,!0);n>=0?a+=String.fromCharCode(n):Y=4;break;default:Y=5}N=C;continue}if(F>=0&&F<=31)if(n$3(F)){a+=n.substring(N,C),Y=2;break}else Y=6;C++}return a}function y(){if(N=``,Y=0,F=C,W=H,q=K,C>=S)return F=S,I=17;let a=n.charCodeAt(C);if(t$2(a)){do C++,N+=String.fromCharCode(a),a=n.charCodeAt(C);while(t$2(a));return I=15}if(n$3(a))return C++,N+=String.fromCharCode(a),a===13&&n.charCodeAt(C)===10&&(C++,N+=`
621
+ `),H++,K=C,I=14;switch(a){case 123:return C++,I=1;case 125:return C++,I=2;case 91:return C++,I=3;case 93:return C++,I=4;case 58:return C++,I=6;case 44:return C++,I=5;case 34:return C++,N=v(),I=10;case 47:let W=C-1;if(n.charCodeAt(C+1)===47){for(C+=2;C<S&&!n$3(n.charCodeAt(C));)C++;return N=n.substring(W,C),I=12}if(n.charCodeAt(C+1)===42){C+=2;let a=S-1,F=!1;for(;C<a;){let a=n.charCodeAt(C);if(a===42&&n.charCodeAt(C+1)===47){C+=2,F=!0;break}C++,n$3(a)&&(a===13&&n.charCodeAt(C)===10&&C++,H++,K=C)}return F||(C++,Y=1),N=n.substring(W,C),I=13}return N+=String.fromCharCode(a),C++,I=16;case 45:if(N+=String.fromCharCode(a),C++,C===S||!r$2(n.charCodeAt(C)))return I=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return N+=_(),I=11;default:for(;C<S&&b(a);)C++,a=n.charCodeAt(C);if(F!==C){switch(N=n.substring(F,C),N){case`true`:return I=8;case`false`:return I=9;case`null`:return I=7}return I=16}return N+=String.fromCharCode(a),C++,I=16}}function b(n){if(t$2(n)||n$3(n))return!1;switch(n){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function x(){let n;do n=y();while(n>=12&&n<=15);return n}return{setPosition:g,getPosition:()=>C,scan:a?x:y,getToken:()=>I,getTokenValue:()=>N,getTokenOffset:()=>F,getTokenLength:()=>C-F,getTokenStartLine:()=>W,getTokenStartCharacter:()=>F-q,getTokenError:()=>Y}}__name$1(e$2,`e`);function t$2(n){return n===32||n===9}__name$1(t$2,`t`);function n$3(n){return n===10||n===13}__name$1(n$3,`n`);function r$2(n){return n>=48&&n<=57}__name$1(r$2,`r`);var Zp;(function(n){n[n.lineFeed=10]=`lineFeed`,n[n.carriageReturn=13]=`carriageReturn`,n[n.space=32]=`space`,n[n._0=48]=`_0`,n[n._1=49]=`_1`,n[n._2=50]=`_2`,n[n._3=51]=`_3`,n[n._4=52]=`_4`,n[n._5=53]=`_5`,n[n._6=54]=`_6`,n[n._7=55]=`_7`,n[n._8=56]=`_8`,n[n._9=57]=`_9`,n[n.a=97]=`a`,n[n.b=98]=`b`,n[n.c=99]=`c`,n[n.d=100]=`d`,n[n.e=101]=`e`,n[n.f=102]=`f`,n[n.g=103]=`g`,n[n.h=104]=`h`,n[n.i=105]=`i`,n[n.j=106]=`j`,n[n.k=107]=`k`,n[n.l=108]=`l`,n[n.m=109]=`m`,n[n.n=110]=`n`,n[n.o=111]=`o`,n[n.p=112]=`p`,n[n.q=113]=`q`,n[n.r=114]=`r`,n[n.s=115]=`s`,n[n.t=116]=`t`,n[n.u=117]=`u`,n[n.v=118]=`v`,n[n.w=119]=`w`,n[n.x=120]=`x`,n[n.y=121]=`y`,n[n.z=122]=`z`,n[n.A=65]=`A`,n[n.B=66]=`B`,n[n.C=67]=`C`,n[n.D=68]=`D`,n[n.E=69]=`E`,n[n.F=70]=`F`,n[n.G=71]=`G`,n[n.H=72]=`H`,n[n.I=73]=`I`,n[n.J=74]=`J`,n[n.K=75]=`K`,n[n.L=76]=`L`,n[n.M=77]=`M`,n[n.N=78]=`N`,n[n.O=79]=`O`,n[n.P=80]=`P`,n[n.Q=81]=`Q`,n[n.R=82]=`R`,n[n.S=83]=`S`,n[n.T=84]=`T`,n[n.U=85]=`U`,n[n.V=86]=`V`,n[n.W=87]=`W`,n[n.X=88]=`X`,n[n.Y=89]=`Y`,n[n.Z=90]=`Z`,n[n.asterisk=42]=`asterisk`,n[n.backslash=92]=`backslash`,n[n.closeBrace=125]=`closeBrace`,n[n.closeBracket=93]=`closeBracket`,n[n.colon=58]=`colon`,n[n.comma=44]=`comma`,n[n.dot=46]=`dot`,n[n.doubleQuote=34]=`doubleQuote`,n[n.minus=45]=`minus`,n[n.openBrace=123]=`openBrace`,n[n.openBracket=91]=`openBracket`,n[n.plus=43]=`plus`,n[n.slash=47]=`slash`,n[n.formFeed=12]=`formFeed`,n[n.tab=9]=`tab`})(Zp||={}),Array(20).fill(0).map((n,a)=>` `.repeat(a)),Array(200).fill(0).map((n,a)=>`
622
622
  `+` `.repeat(a)),Array(200).fill(0).map((n,a)=>`\r`+` `.repeat(a)),Array(200).fill(0).map((n,a)=>`\r
623
623
  `+` `.repeat(a)),Array(200).fill(0).map((n,a)=>`
624
624
  `+` `.repeat(a)),Array(200).fill(0).map((n,a)=>`\r`+` `.repeat(a)),Array(200).fill(0).map((n,a)=>`\r
625
625
  `+` `.repeat(a));var Qp;(function(n){n.DEFAULT={allowTrailingComma:!1}})(Qp||={});function o$1(n,a=[],S=Qp.DEFAULT){let C=null,N=[],F=[];function s(n){Array.isArray(N)?N.push(n):C!==null&&(N[C]=n)}return d$1(n,{onObjectBegin:()=>{let n={};s(n),F.push(N),N=n,C=null},onObjectProperty:n=>{C=n},onObjectEnd:()=>{N=F.pop()},onArrayBegin:()=>{let n=[];s(n),F.push(N),N=n,C=null},onArrayEnd:()=>{N=F.pop()},onLiteralValue:s,onError:(n,S,C)=>{a.push({error:n,offset:S,length:C})}},S),N[0]}__name$1(o$1,`o`);function d$1(n,a,S=Qp.DEFAULT){let C=e$2(n,!1),N=[],F=0;function c(n){return n?()=>F===0&&n(C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter()):()=>!0}function l(n){return n?a=>F===0&&n(a,C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter()):()=>!0}function u(n){return n?a=>F===0&&n(a,C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter(),()=>N.slice()):()=>!0}function d(n){return n?()=>{F>0?F++:n(C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter(),()=>N.slice())===!1&&(F=1)}:()=>!0}function f(n){return n?()=>{F>0&&F--,F===0&&n(C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter())}:()=>!0}let I=d(a.onObjectBegin),H=u(a.onObjectProperty),W=f(a.onObjectEnd),K=d(a.onArrayBegin),q=f(a.onArrayEnd),Y=u(a.onLiteralValue),X=l(a.onSeparator),te=c(a.onComment),ne=l(a.onError),re=S&&S.disallowComments,ie=S&&S.allowTrailingComma;function w(){for(;;){let n=C.scan();switch(C.getTokenError()){case 4:T(14);break;case 5:T(15);break;case 3:T(13);break;case 1:re||T(11);break;case 2:T(12);break;case 6:T(16);break}switch(n){case 12:case 13:re?T(10):te();break;case 16:T(1);break;case 15:case 14:break;default:return n}}}function T(n,a=[],S=[]){if(ne(n),a.length+S.length>0){let n=C.getToken();for(;n!==17;){if(a.indexOf(n)!==-1){w();break}else if(S.indexOf(n)!==-1)break;n=w()}}}function E(n){let a=C.getTokenValue();return n?Y(a):(H(a),N.push(a)),w(),!0}function D(){switch(C.getToken()){case 11:let n=C.getTokenValue(),a=Number(n);isNaN(a)&&(T(2),a=0),Y(a);break;case 7:Y(null);break;case 8:Y(!0);break;case 9:Y(!1);break;default:return!1}return w(),!0}function O(){return C.getToken()===10?(E(!1),C.getToken()===6?(X(`:`),w(),j()||T(4,[],[2,5])):T(5,[],[2,5]),N.pop(),!0):(T(3,[],[2,5]),!1)}function k(){I(),w();let n=!1;for(;C.getToken()!==2&&C.getToken()!==17;){if(C.getToken()===5){if(n||T(4,[],[]),X(`,`),w(),C.getToken()===2&&ie)break}else n&&T(6,[],[]);O()||T(4,[],[2,5]),n=!0}return W(),C.getToken()===2?w():T(7,[2],[]),!0}function A(){K(),w();let n=!0,a=!1;for(;C.getToken()!==4&&C.getToken()!==17;){if(C.getToken()===5){if(a||T(4,[],[]),X(`,`),w(),C.getToken()===4&&ie)break}else a&&T(6,[],[]);n?(N.push(0),n=!1):N[N.length-1]++,j()||T(4,[],[4,5]),a=!0}return q(),n||N.pop(),C.getToken()===4?w():T(8,[4],[]),!0}function j(){switch(C.getToken()){case 3:return A();case 1:return k();case 10:return E(!0);default:return D()}}return w(),C.getToken()===17?S.allowEmptyContent?!0:(T(4,[],[]),!1):j()?(C.getToken()!==17&&T(9,[],[]),!0):(T(4,[],[]),!1)}__name$1(d$1,`d`);var $p;(function(n){n[n.None=0]=`None`,n[n.UnexpectedEndOfComment=1]=`UnexpectedEndOfComment`,n[n.UnexpectedEndOfString=2]=`UnexpectedEndOfString`,n[n.UnexpectedEndOfNumber=3]=`UnexpectedEndOfNumber`,n[n.InvalidUnicode=4]=`InvalidUnicode`,n[n.InvalidEscapeCharacter=5]=`InvalidEscapeCharacter`,n[n.InvalidCharacter=6]=`InvalidCharacter`})($p||={});var em;(function(n){n[n.OpenBraceToken=1]=`OpenBraceToken`,n[n.CloseBraceToken=2]=`CloseBraceToken`,n[n.OpenBracketToken=3]=`OpenBracketToken`,n[n.CloseBracketToken=4]=`CloseBracketToken`,n[n.CommaToken=5]=`CommaToken`,n[n.ColonToken=6]=`ColonToken`,n[n.NullKeyword=7]=`NullKeyword`,n[n.TrueKeyword=8]=`TrueKeyword`,n[n.FalseKeyword=9]=`FalseKeyword`,n[n.StringLiteral=10]=`StringLiteral`,n[n.NumericLiteral=11]=`NumericLiteral`,n[n.LineCommentTrivia=12]=`LineCommentTrivia`,n[n.BlockCommentTrivia=13]=`BlockCommentTrivia`,n[n.LineBreakTrivia=14]=`LineBreakTrivia`,n[n.Trivia=15]=`Trivia`,n[n.Unknown=16]=`Unknown`,n[n.EOF=17]=`EOF`})(em||={});const tm=o$1;var nm;(function(n){n[n.InvalidSymbol=1]=`InvalidSymbol`,n[n.InvalidNumberFormat=2]=`InvalidNumberFormat`,n[n.PropertyNameExpected=3]=`PropertyNameExpected`,n[n.ValueExpected=4]=`ValueExpected`,n[n.ColonExpected=5]=`ColonExpected`,n[n.CommaExpected=6]=`CommaExpected`,n[n.CloseBraceExpected=7]=`CloseBraceExpected`,n[n.CloseBracketExpected=8]=`CloseBracketExpected`,n[n.EndOfFileExpected=9]=`EndOfFileExpected`,n[n.InvalidCommentToken=10]=`InvalidCommentToken`,n[n.UnexpectedEndOfComment=11]=`UnexpectedEndOfComment`,n[n.UnexpectedEndOfString=12]=`UnexpectedEndOfString`,n[n.UnexpectedEndOfNumber=13]=`UnexpectedEndOfNumber`,n[n.InvalidUnicode=14]=`InvalidUnicode`,n[n.InvalidEscapeCharacter=15]=`InvalidEscapeCharacter`,n[n.InvalidCharacter=16]=`InvalidCharacter`})(nm||={});function n$2(n,a){let S=JSON.parse(n,a?.reviver);return a$4(n,S,a),S}__name$1(n$2,`n`);function r$1(n,a){let S=tm(n,a?.errors,a);return a$4(n,S,a),S}__name$1(r$1,`r`);var im=Up();se();function readProcStatus(){let n=new Map;try{let[a,S]=Z.file_get_contents(`/proc/self/status`);if(!a||!S)return n;let C=new TextDecoder().decode(S);for(let a of C.split(`
626
- `)){let S=/^(\w+):\s+(\d+)(\s+kB)?/.exec(a);S&&n.set(S[1],parseInt(S[2])*(S[3]?1024:1))}}catch{}return n}function getHeapStatistics(){let n=readProcStatus();return{total_heap_size:n.get(`VmSize`)??0,total_heap_size_executable:0,total_physical_size:n.get(`VmRSS`)??0,total_available_size:0,used_heap_size:n.get(`VmRSS`)??0,heap_size_limit:0,malloced_memory:n.get(`VmData`)??0,peak_malloced_memory:n.get(`VmPeak`)??0,does_zap_garbage:0,number_of_native_contexts:0,number_of_detached_contexts:0,total_global_handles_size:0,used_global_handles_size:0,external_memory:0}}bt();function writeVarint(n,a){for(a>>>=0;a>=128;)n.push(a&127|128),a>>>=7;n.push(a)}function readVarint(n,a){let S=0,C=0,N;do{if(a>=n.length)throw Error(`Unexpected end of buffer reading varint`);N=n[a++],S|=(N&127)<<C,C+=7}while(N&128);return[S>>>0,a]}function zigZagEncode(n){return n>=0?n*2:-n*2-1}function zigZagDecode(n){return n&1?-(n>>>1)-1:n>>>1}function writeFloat64(n,a){let S=new DataView(new ArrayBuffer(8));S.setFloat64(0,a,!0);for(let a=0;a<8;a++)n.push(S.getUint8(a))}function readFloat64(n,a){if(a+8>n.length)throw Error(`ReadDouble() failed`);return[new DataView(n.buffer,n.byteOffset+a,8).getFloat64(0,!0),a+8]}function isOneByte(n){for(let a=0;a<n.length;a++)if(n.charCodeAt(a)>255)return!1;return!0}function typedArrayToIndex(n){let a=Object.prototype.toString.call(n);return a===`[object Int8Array]`?0:a===`[object Uint8Array]`?1:a===`[object Uint8ClampedArray]`?2:a===`[object Int16Array]`?3:a===`[object Uint16Array]`?4:a===`[object Int32Array]`?5:a===`[object Uint32Array]`?6:a===`[object Float32Array]`?7:a===`[object Float64Array]`?8:a===`[object DataView]`?9:a===`[object BigInt64Array]`?11:a===`[object BigUint64Array]`?12:-1}function indexToTypedArray(n){switch(n){case 0:return Int8Array;case 1:return Uint8Array;case 2:return Uint8ClampedArray;case 3:return Int16Array;case 4:return Uint16Array;case 5:return Int32Array;case 6:return Uint32Array;case 7:return Float32Array;case 8:return Float64Array;case 9:return DataView;case 10:return dt;case 11:return BigInt64Array;case 12:return BigUint64Array}}var Serializer=class{_bytes=[];_seen=[];_treatAbvAsHostObjects=!1;_getDataCloneError=Error;writeHeader(){this._bytes.push(255),writeVarint(this._bytes,15)}writeValue(n){if(typeof n==`object`&&n){let a=this._seen.indexOf(n);if(a!==-1){this._bytes.push(94),writeVarint(this._bytes,a);return}}if(n===void 0)this._bytes.push(95);else if(n===null)this._bytes.push(48);else if(n===!0)this._bytes.push(84);else if(n===!1)this._bytes.push(70);else if(typeof n==`number`)Number.isInteger(n)&&n>=-(2**31)&&n<=2**32-1?n>=0?(this._bytes.push(85),writeVarint(this._bytes,n)):(this._bytes.push(73),writeVarint(this._bytes,zigZagEncode(n))):(this._bytes.push(78),writeFloat64(this._bytes,n));else if(typeof n==`bigint`)this._writeBigInt(n);else if(typeof n==`string`)this._writeString(n);else if(typeof n==`object`){let a=n;if(n instanceof Date)this._seen.push(a),this._bytes.push(68),writeFloat64(this._bytes,n.getTime());else if(n instanceof RegExp)this._seen.push(a),this._bytes.push(82),this._writeString(n.source),writeVarint(this._bytes,regExpFlagsToInt(n));else if(n instanceof ArrayBuffer){this._seen.push(a);let S=new Uint8Array(n);this._bytes.push(66),writeVarint(this._bytes,S.length);for(let n=0;n<S.length;n++)this._bytes.push(S[n])}else if(this._treatAbvAsHostObjects&&(ArrayBuffer.isView(n)||dt.isBuffer(n)))this._seen.push(a),this._bytes.push(92),this._writeHostObject(a);else if(Array.isArray(n)){this._seen.push(a);let S=n;this._bytes.push(65),writeVarint(this._bytes,S.length);for(let n=0;n<S.length;n++)this.writeValue(S[n]);this._bytes.push(36),writeVarint(this._bytes,0),writeVarint(this._bytes,S.length)}else{this._seen.push(a),this._bytes.push(111);let n=Object.keys(a);for(let S of n)this._writeString(S),this.writeValue(a[S]);this._bytes.push(123),writeVarint(this._bytes,n.length)}}else throw new this._getDataCloneError(`${String(n)} could not be cloned.`)}releaseBuffer(){let n=dt.from(this._bytes);return this._bytes=[],this._seen=[],n}writeUint32(n){writeVarint(this._bytes,n>>>0)}writeUint64(n,a){writeVarint(this._bytes,n>>>0),writeVarint(this._bytes,a>>>0)}writeDouble(n){writeFloat64(this._bytes,n)}writeRawBytes(n){if(!ArrayBuffer.isView(n))throw TypeError(`source must be a TypedArray or a DataView`);let a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);for(let n=0;n<a.length;n++)this._bytes.push(a[n])}_writeHostObject(n){throw new this._getDataCloneError(`Unserializable host object: ${Object.prototype.toString.call(n)}`)}_setTreatArrayBufferViewsAsHostObjects(n){this._treatAbvAsHostObjects=n}_writeString(n){if(isOneByte(n)){this._bytes.push(34),writeVarint(this._bytes,n.length);for(let a=0;a<n.length;a++)this._bytes.push(n.charCodeAt(a)&255)}else{let a=new TextEncoder().encode(n);this._bytes.push(99),writeVarint(this._bytes,a.length);for(let n=0;n<a.length;n++)this._bytes.push(a[n])}}_writeBigInt(n){this._bytes.push(90);let a=n<0n,S=a?-n:n,C=[],N=S;for(;N>0n;)C.push(Number(N&4294967295n)),C.push(Number(N>>32n&4294967295n)),N>>=64n;let F=C.length<<1|!!a;writeVarint(this._bytes,F);for(let n of C)this._bytes.push(n&255),this._bytes.push(n>>8&255),this._bytes.push(n>>16&255),this._bytes.push(n>>24&255);C.length}},Deserializer=class{_pos=0;_wireVersion=0;_seen=[];buffer;constructor(n){if(!ArrayBuffer.isView(n)&&!(n instanceof ArrayBuffer))throw TypeError(`buffer must be a TypedArray or a DataView`);n instanceof ArrayBuffer?this.buffer=dt.from(n):this.buffer=dt.from(n.buffer,n.byteOffset,n.byteLength)}readHeader(){if(this.buffer[this._pos]!==255)throw Error(`ReadHeader() failed`);this._pos++;let[n,a]=readVarint(this.buffer,this._pos);return this._wireVersion=n,this._pos=a,!0}getWireFormatVersion(){return this._wireVersion}readValue(){if(this._pos>=this.buffer.length)throw Error(`Unexpected end of buffer`);let n=this.buffer[this._pos++];switch(n){case 95:return;case 48:return null;case 84:return!0;case 70:return!1;case 73:{let[n,a]=readVarint(this.buffer,this._pos);return this._pos=a,zigZagDecode(n)}case 85:{let[n,a]=readVarint(this.buffer,this._pos);return this._pos=a,n>>>0}case 78:{let[n,a]=readFloat64(this.buffer,this._pos);return this._pos=a,n}case 90:return this._readBigInt();case 34:{let[n,a]=readVarint(this.buffer,this._pos);this._pos=a;let S=``;for(let a=0;a<n;a++)S+=String.fromCharCode(this.buffer[this._pos++]);return S}case 99:{let[n,a]=readVarint(this.buffer,this._pos);this._pos=a;let S=this.buffer.slice(this._pos,this._pos+n);return this._pos+=n,new TextDecoder().decode(S)}case 68:{let[n,a]=readFloat64(this.buffer,this._pos);this._pos=a;let S=new Date(n);return this._seen.push(S),S}case 82:{let n=this.readValue(),[a,S]=readVarint(this.buffer,this._pos);this._pos=S;let C=intToRegExpFlags(a),N=new RegExp(n,C);return this._seen.push(N),N}case 66:{let[n,a]=readVarint(this.buffer,this._pos);this._pos=a;let S=new ArrayBuffer(n),C=new Uint8Array(S);for(let a=0;a<n;a++)C[a]=this.buffer[this._pos++];return this._seen.push(S),S}case 94:{let[n,a]=readVarint(this.buffer,this._pos);if(this._pos=a,n>=this._seen.length)throw Error(`Invalid object reference`);return this._seen[n]}case 65:{let[n,a]=readVarint(this.buffer,this._pos);this._pos=a;let S=Array(n);this._seen.push(S);for(let a=0;a<n;a++)S[a]=this.readValue();if(this.buffer[this._pos]!==36)throw Error(`Expected kEndDenseArray`);this._pos++;let[,C]=readVarint(this.buffer,this._pos);this._pos=C;let[,N]=readVarint(this.buffer,this._pos);return this._pos=N,S}case 111:{let n={};for(this._seen.push(n);this.buffer[this._pos]!==123;){let a=this.readValue();n[a]=this.readValue()}this._pos++;let[,a]=readVarint(this.buffer,this._pos);return this._pos=a,n}case 92:{let n=this._readHostObject();return n!=null&&this._seen.push(n),n}default:throw Error(`Unknown tag 0x${n.toString(16).padStart(2,`0`)} at position ${this._pos-1}`)}}readUint32(){let[n,a]=readVarint(this.buffer,this._pos);return this._pos=a,n>>>0}readUint64(){let[n,a]=readVarint(this.buffer,this._pos),[S,C]=readVarint(this.buffer,a);return this._pos=C,[n>>>0,S>>>0]}readDouble(){let[n,a]=readFloat64(this.buffer,this._pos);return this._pos=a,n}_readRawBytes(n){let a=this._pos;if(this._pos+=n,this._pos>this.buffer.length)throw Error(`Unexpected end of buffer reading raw bytes`);return a}readRawBytes(n){let a=this._readRawBytes(n);return dt.from(this.buffer.buffer,this.buffer.byteOffset+a,n)}_readHostObject(){throw Error(`No host object deserializer installed`)}_readBigInt(){let[n,a]=readVarint(this.buffer,this._pos);this._pos=a;let S=(n&1)==1,C=n>>1,N=0n;for(let n=0;n<C;n++){let a=this.buffer[this._pos]|this.buffer[this._pos+1]<<8|this.buffer[this._pos+2]<<16|this.buffer[this._pos+3]<<24;this._pos+=4,N|=BigInt(a>>>0)<<BigInt(n*32)}return S?-N:N}};function regExpFlagsToInt(n){let a=0;return n.global&&(a|=1),n.ignoreCase&&(a|=2),n.multiline&&(a|=4),n.sticky&&(a|=8),n.unicode&&(a|=16),n.dotAll&&(a|=32),n.hasIndices&&(a|=64),n.unicodeSets&&(a|=128),a}function intToRegExpFlags(n){let a=``;return n&1&&(a+=`g`),n&2&&(a+=`i`),n&4&&(a+=`m`),n&8&&(a+=`y`),n&16&&(a+=`u`),n&32&&(a+=`s`),n&64&&(a+=`d`),n&128&&(a+=`v`),a}var DefaultSerializer=class extends Serializer{constructor(){super(),this._setTreatArrayBufferViewsAsHostObjects(!0)}_writeHostObject(n){let a;if(dt.isBuffer(n))a=10;else if(a=typedArrayToIndex(n),a===-1)throw new this._getDataCloneError(`Unserializable host object: ${Object.prototype.toString.call(n)}`);this.writeUint32(a),this.writeUint32(n.byteLength),this.writeRawBytes(new Uint8Array(n.buffer,n.byteOffset,n.byteLength))}},DefaultDeserializer=class extends Deserializer{_readHostObject(){let n=this.readUint32(),a=this.readUint32(),S=this._readRawBytes(a);if(n===10){let n=dt.allocUnsafe(a);return this.buffer.copy(n,0,this.buffer.byteOffset+S,this.buffer.byteOffset+S+a),n}let C=indexToTypedArray(n);if(!C)throw Error(`Unknown TypedArray type index ${n}`);let N=C.BYTES_PER_ELEMENT??1,F=a/N,I=this.buffer.byteOffset+S;if(I%N===0)return new C(this.buffer.buffer,I,F);let H=dt.allocUnsafe(a);return this.buffer.copy(H,0,this.buffer.byteOffset+S,this.buffer.byteOffset+S+a),new C(H.buffer,H.byteOffset,F)}};function serialize(n){let a=new DefaultSerializer;return a.writeHeader(),a.writeValue(n),a.releaseBuffer()}function deserialize(n){let a=new DefaultDeserializer(n);return a.readHeader(),a.readValue()}function getHeapSpaceStatistics(){return[]}function getHeapCodeStatistics(){return{code_and_metadata_size:0,bytecode_and_metadata_size:0,external_script_source_size:0,cpu_profiler_metadata_size:0}}function setFlagsFromString(n){}function getHeapSnapshot(n){return null}function writeHeapSnapshot(n){return``}function isStringOneByteRepresentation(n){for(let a=0;a<n.length;a++)if(n.charCodeAt(a)>255)return!1;return!0}var GCProfiler=class{#e=!1;#t=0;start(){this.#e||(this.#e=!0,this.#t=Date.now())}stop(){if(this.#e){this.#e=!1;try{let n=globalThis.imports?.system;typeof n?.gc==`function`&&n.gc()}catch{}return{version:1,startTime:this.#t,endTime:Date.now(),stats:[]}}}[Symbol.dispose](){this.stop()}},SyncCPUProfileHandle=class{stop(){}[Symbol.dispose](){this.stop()}};function startCpuProfile(){return new SyncCPUProfileHandle}var am={getHeapStatistics,getHeapSpaceStatistics,getHeapCodeStatistics,setFlagsFromString,getHeapSnapshot,writeHeapSnapshot,serialize,deserialize,isStringOneByteRepresentation,Serializer,Deserializer,DefaultSerializer,DefaultDeserializer,GCProfiler,startCpuProfile};As(),rn(),Ho(),qc();const om=`_http_agent._http_client._http_common._http_incoming._http_outgoing._http_server._stream_duplex._stream_passthrough._stream_readable._stream_transform._stream_wrap._stream_writable._tls_common._tls_wrap.assert.assert/strict.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.dns/promises.domain.events.fs.fs/promises.http.http2.https.inspector.inspector/promises.module.net.os.path.path/posix.path/win32.perf_hooks.process.punycode.querystring.readline.readline/promises.repl.stream.stream/consumers.stream/promises.stream/web.string_decoder.sys.timers.timers/promises.tls.trace_events.tty.url.util.util/types.v8.vm.wasi.worker_threads.zlib`.split(`.`),sm={}.hasOwnProperty,cm=/^([A-Z][a-z\d]*)+$/,lm=new Set([`string`,`function`,`number`,`object`,`Function`,`Object`,`boolean`,`bigint`,`symbol`]),um=new Map;let dm;function formatList(n,a=`and`){return n.length<3?n.join(` ${a} `):`${n.slice(0,-1).join(`, `)}, ${a} ${n.at(-1)}`}function createError(n,a,S){return um.set(n,a),makeNodeErrorWithCode(S,n)}function makeNodeErrorWithCode(n,a){return function NodeError(...S){let C=Error.stackTraceLimit;isErrorStackTraceLimitWritable()&&(Error.stackTraceLimit=0);let N=new n;isErrorStackTraceLimitWritable()&&(Error.stackTraceLimit=C);let F=getMessage$1(a,S,N);return Object.defineProperties(N,{message:{value:F,enumerable:!1,writable:!0,configurable:!0},toString:{value(){return`${this.name} [${a}]: ${this.message}`},enumerable:!1,writable:!0,configurable:!0}}),fm(N),N.code=a,N}}function isErrorStackTraceLimitWritable(){try{if(am.startupSnapshot.isBuildingSnapshot())return!1}catch{}let n=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return n===void 0?Object.isExtensible(Error):sm.call(n,`writable`)&&n.writable!==void 0?n.writable:n.set!==void 0}function hideStackFrames(n){let a=`__node_internal_`+n.name;return Object.defineProperty(n,"name",{value:a}),n}const fm=hideStackFrames(function(n){let a=isErrorStackTraceLimitWritable();return a&&(dm=Error.stackTraceLimit,Error.stackTraceLimit=1/0),Error.captureStackTrace(n),a&&(Error.stackTraceLimit=dm),n});function getMessage$1(n,a,S){let C=um.get(n);if(Ks.ok(C!==void 0,"expected `message` to be found"),typeof C==`function`)return Ks.ok(C.length<=a.length,`Code: ${n}; The provided arguments length (${a.length}) does not match the required ones (${C.length}).`),Reflect.apply(C,S,a);let N=/%[dfijoOs]/g,F=0;for(;N.exec(C)!==null;)F++;return Ks.ok(F===a.length,`Code: ${n}; The provided arguments length (${a.length}) does not match the required ones (${F}).`),a.length===0?C:(a.unshift(C),Reflect.apply(format$1,null,a))}__name$1(getMessage$1,`getMessage`);function determineSpecificType(n){if(n==null)return String(n);if(typeof n==`function`&&n.name)return`function ${n.name}`;if(typeof n==`object`)return n.constructor&&n.constructor.name?`an instance of ${n.constructor.name}`:`${inspect(n,{depth:-1})}`;let a=inspect(n,{colors:!1});return a.length>28&&(a=`${a.slice(0,25)}...`),`type ${typeof n} (${a})`}createError(`ERR_INVALID_ARG_TYPE`,(n,a,S)=>{Ks.ok(typeof n==`string`,`'name' must be a string`),Array.isArray(a)||(a=[a]);let C=`The `;if(n.endsWith(` argument`))C+=`${n} `;else{let a=n.includes(`.`)?`property`:`argument`;C+=`"${n}" ${a} `}C+=`must be `;let N=[],F=[],I=[];for(let n of a)Ks.ok(typeof n==`string`,`All expected entries have to be of type string`),lm.has(n)?N.push(n.toLowerCase()):cm.exec(n)===null?(Ks.ok(n!==`object`,`The value "object" should be written as "Object"`),I.push(n)):F.push(n);if(F.length>0){let n=N.indexOf(`object`);n!==-1&&(N.slice(n,1),F.push(`Object`))}return N.length>0&&(C+=`${N.length>1?`one of type`:`of type`} ${formatList(N,`or`)}`,(F.length>0||I.length>0)&&(C+=` or `)),F.length>0&&(C+=`an instance of ${formatList(F,`or`)}`,I.length>0&&(C+=` or `)),I.length>0&&(I.length>1?C+=`one of ${formatList(I,`or`)}`:(I[0]?.toLowerCase()!==I[0]&&(C+=`an `),C+=`${I[0]}`)),C+=`. Received ${determineSpecificType(S)}`,C},TypeError);const pm=createError(`ERR_INVALID_MODULE_SPECIFIER`,(n,a,S)=>`Invalid module "${n}" ${a}${S?` imported from ${S}`:``}`,TypeError),mm=createError(`ERR_INVALID_PACKAGE_CONFIG`,(n,a,S)=>`Invalid package config ${n}${a?` while importing ${a}`:``}${S?`. ${S}`:``}`,Error),hm=createError(`ERR_INVALID_PACKAGE_TARGET`,(n,a,S,C=!1,N)=>{let F=typeof S==`string`&&!C&&S.length>0&&!S.startsWith(`./`);return a===`.`?(Ks.ok(C===!1),`Invalid "exports" main target ${JSON.stringify(S)} defined in the package config ${n}package.json${N?` imported from ${N}`:``}${F?`; targets must start with "./"`:``}`):`Invalid "${C?`imports`:`exports`}" target ${JSON.stringify(S)} defined for '${a}' in the package config ${n}package.json${N?` imported from ${N}`:``}${F?`; targets must start with "./"`:``}`},Error),gm=createError(`ERR_MODULE_NOT_FOUND`,(n,a,S=!1)=>`Cannot find ${S?`module`:`package`} '${n}' imported from ${a}`,Error);createError(`ERR_NETWORK_IMPORT_DISALLOWED`,`import of '%s' by %s is not supported: %s`,Error);const _m=createError(`ERR_PACKAGE_IMPORT_NOT_DEFINED`,(n,a,S)=>`Package import specifier "${n}" is not defined${a?` in package ${a||``}package.json`:``} imported from ${S}`,TypeError),vm=createError(`ERR_PACKAGE_PATH_NOT_EXPORTED`,(n,a,S)=>a===`.`?`No "exports" main defined in ${n}package.json${S?` imported from ${S}`:``}`:`Package subpath '${a}' is not defined by "exports" in ${n}package.json${S?` imported from ${S}`:``}`,Error),ym=createError(`ERR_UNSUPPORTED_DIR_IMPORT`,`Directory import '%s' is not supported resolving ES modules imported from %s`,Error),bm=createError(`ERR_UNSUPPORTED_RESOLVE_REQUEST`,`Failed to resolve module specifier "%s" from "%s": Invalid relative URL or base scheme is not hierarchical.`,TypeError),xm=createError(`ERR_UNKNOWN_FILE_EXTENSION`,(n,a)=>`Unknown file extension "${n}" for ${a}`,TypeError);createError(`ERR_INVALID_ARG_VALUE`,(n,a,S=`is invalid`)=>{let C=inspect(a);return C.length>128&&(C=`${C.slice(0,128)}...`),`The ${n.includes(`.`)?`property`:`argument`} '${n}' ${S}. Received ${C}`},TypeError);const Sm={}.hasOwnProperty,Cm=new Map;function read(n,{base:a,specifier:S}){let C=Cm.get(n);if(C)return C;let N;try{N=ks.readFileSync(Vo.toNamespacedPath(n),`utf8`)}catch(n){let a=n;if(a.code!==`ENOENT`)throw a}let F={exists:!1,pjsonPath:n,main:void 0,name:void 0,type:`none`,exports:void 0,imports:void 0};if(N!==void 0){let C;try{C=JSON.parse(N)}catch(C){let N=new mm(n,(a?`"${S}" from `:``)+fileURLToPath(a||S),C.message);throw N.cause=C,N}F.exists=!0,Sm.call(C,`name`)&&typeof C.name==`string`&&(F.name=C.name),Sm.call(C,`main`)&&typeof C.main==`string`&&(F.main=C.main),Sm.call(C,`exports`)&&(F.exports=C.exports),Sm.call(C,`imports`)&&(F.imports=C.imports),Sm.call(C,`type`)&&(C.type===`commonjs`||C.type===`module`)&&(F.type=C.type)}return Cm.set(n,F),F}function getPackageScopeConfig(n){let a=new URL(`package.json`,n);for(;!a.pathname.endsWith(`node_modules/package.json`);){let S=read(fileURLToPath(a),{specifier:n});if(S.exists)return S;let C=a;if(a=new URL(`../package.json`,a),a.pathname===C.pathname)break}return{pjsonPath:fileURLToPath(a),exists:!1,type:`none`}}const wm={}.hasOwnProperty,Tm={__proto__:null,".json":`json`,".cjs":`commonjs`,".cts":`commonjs`,".js":`module`,".ts":`module`,".mts":`module`,".mjs":`module`},Em={__proto__:null,"data:":getDataProtocolModuleFormat,"file:":getFileProtocolModuleFormat,"node:":()=>`builtin`};function mimeToFormat(n){return n&&/\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(n)?`module`:n===`application/json`?`json`:null}function getDataProtocolModuleFormat(n){let{1:a}=/^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(n.pathname)||[null,null,null];return mimeToFormat(a)}function extname(n){let a=n.pathname,S=a.length;for(;S--;){let n=a.codePointAt(S);if(n===47)return``;if(n===46)return a.codePointAt(S-1)===47?``:a.slice(S)}return``}function getFileProtocolModuleFormat(n,a,S){let C=extname(n);if(C===`.js`){let{type:a}=getPackageScopeConfig(n);return a===`none`?`commonjs`:a}if(C===``){let{type:a}=getPackageScopeConfig(n);return a===`none`||a===`commonjs`?`commonjs`:`module`}let N=Tm[C];if(N)return N;if(!S)throw new xm(C,fileURLToPath(n))}function defaultGetFormatWithoutErrors(n,a){let S=n.protocol;return wm.call(Em,S)&&Em[S](n,a,!0)||null}const Dm=RegExp.prototype[Symbol.replace],Om={}.hasOwnProperty,km=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i,Am=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,jm=/^\.|%|\\/,Mm=/\*/g,Nm=/%2f|%5c/i,Pm=new Set,Fm=/[/\\]{2}/;function emitInvalidSegmentDeprecation(n,a,S,C,N,F,I){if(Wt.noDeprecation)return;let H=fileURLToPath(C),W=Fm.exec(I?n:a)!==null;Wt.emitWarning(`Use of deprecated ${W?`double slash`:`leading or trailing slash matching`} resolving "${n}" for module request "${a}" ${a===S?``:`matched to "${S}" `}in the "${N?`imports`:`exports`}" field module resolution of the package at ${H}${F?` imported from ${fileURLToPath(F)}`:``}.`,`DeprecationWarning`,`DEP0166`)}function emitLegacyIndexDeprecation(n,a,S,C){if(Wt.noDeprecation||defaultGetFormatWithoutErrors(n,{parentURL:S.href})!==`module`)return;let N=fileURLToPath(n.href),F=fileURLToPath(new tn(`.`,a)),I=fileURLToPath(S);C?Vo.resolve(F,C)!==N&&Wt.emitWarning(`Package ${F} has a "main" field set to "${C}", excluding the full filename and extension to the resolved file at "${N.slice(F.length)}", imported from ${I}.\n Automatic extension resolution of the "main" field is deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`):Wt.emitWarning(`No "main" or "exports" field defined in the package.json for ${F} resolving the main entry point "${N.slice(F.length)}", imported from ${I}.\nDefault "index" lookups for the main are deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`)}function tryStatSync(n){try{return statSync(n)}catch{}}function fileExists$1(n){let a=statSync(n,{throwIfNoEntry:!1});return(a?a.isFile():void 0)??!1}__name$1(fileExists$1,`fileExists`);function legacyMainResolve(n,a,S){let C;if(a.main!==void 0){if(C=new tn(a.main,n),fileExists$1(C))return C;let N=[`./${a.main}.js`,`./${a.main}.json`,`./${a.main}.node`,`./${a.main}/index.js`,`./${a.main}/index.json`,`./${a.main}/index.node`],F=-1;for(;++F<N.length&&(C=new tn(N[F],n),!fileExists$1(C));)C=void 0;if(C)return emitLegacyIndexDeprecation(C,n,S,a.main),C}let N=[`./index.js`,`./index.json`,`./index.node`],F=-1;for(;++F<N.length&&(C=new tn(N[F],n),!fileExists$1(C));)C=void 0;if(C)return emitLegacyIndexDeprecation(C,n,S,a.main),C;throw new gm(fileURLToPath(new tn(`.`,n)),fileURLToPath(S))}function finalizeResolution(n,a,S){if(Nm.exec(n.pathname)!==null)throw new pm(n.pathname,String.raw`must not include encoded "/" or "\" characters`,fileURLToPath(a));let C;try{C=fileURLToPath(n)}catch(S){throw Object.defineProperty(S,"input",{value:String(n)}),Object.defineProperty(S,"module",{value:String(a)}),S}let N=tryStatSync(C.endsWith(`/`)?C.slice(-1):C);if(N&&N.isDirectory()){let S=new ym(C,fileURLToPath(a));throw S.url=String(n),S}if(!N||!N.isFile()){let S=new gm(C||n.pathname,a&&fileURLToPath(a),!0);throw S.url=String(n),S}if(!S){let a=realpathSync(C),{search:S,hash:N}=n;n=pathToFileURL(a+(C.endsWith(Vo.sep)?`/`:``)),n.search=S,n.hash=N}return n}function importNotDefined(n,a,S){return new _m(n,a&&fileURLToPath(new tn(`.`,a)),fileURLToPath(S))}function exportsNotFound(n,a,S){return new vm(fileURLToPath(new tn(`.`,a)),n,S&&fileURLToPath(S))}function throwInvalidSubpath(n,a,S,C,N){throw new pm(n,`request is not a valid match in pattern "${a}" for the "${C?`imports`:`exports`}" resolution of ${fileURLToPath(S)}`,N&&fileURLToPath(N))}function invalidPackageTarget(n,a,S,C,N){return a=typeof a==`object`&&a?JSON.stringify(a,null,``):`${a}`,new hm(fileURLToPath(new tn(`.`,S)),n,a,C,N&&fileURLToPath(N))}function resolvePackageTargetString(n,a,S,C,N,F,I,H,W){if(a!==``&&!F&&n.at(-1)!==`/`)throw invalidPackageTarget(S,n,C,I,N);if(!n.startsWith(`./`)){if(I&&!n.startsWith(`../`)&&!n.startsWith(`/`)){let S=!1;try{new tn(n),S=!0}catch{}if(!S)return packageResolve(F?Dm.call(Mm,n,()=>a):n+a,C,W)}throw invalidPackageTarget(S,n,C,I,N)}if(km.exec(n.slice(2))!==null)if(Am.exec(n.slice(2))===null){if(!H){let H=F?S.replace(`*`,()=>a):S+a;emitInvalidSegmentDeprecation(F?Dm.call(Mm,n,()=>a):n,H,S,C,I,N,!0)}}else throw invalidPackageTarget(S,n,C,I,N);let K=new tn(n,C),q=K.pathname,Y=new tn(`.`,C).pathname;if(!q.startsWith(Y))throw invalidPackageTarget(S,n,C,I,N);if(a===``)return K;if(km.exec(a)!==null){let W=F?S.replace(`*`,()=>a):S+a;Am.exec(a)===null?H||emitInvalidSegmentDeprecation(F?Dm.call(Mm,n,()=>a):n,W,S,C,I,N,!1):throwInvalidSubpath(W,S,C,I,N)}return F?new tn(Dm.call(Mm,K.href,()=>a)):new tn(a,K)}function isArrayIndex(n){let a=Number(n);return`${a}`===n?a>=0&&a<4294967295:!1}function resolvePackageTarget(n,a,S,C,N,F,I,H,W){if(typeof a==`string`)return resolvePackageTargetString(a,S,C,n,N,F,I,H,W);if(Array.isArray(a)){let K=a;if(K.length===0)return null;let q,Y=-1;for(;++Y<K.length;){let a=K[Y],X;try{X=resolvePackageTarget(n,a,S,C,N,F,I,H,W)}catch(n){let a=n;if(q=a,a.code===`ERR_INVALID_PACKAGE_TARGET`)continue;throw n}if(X!==void 0){if(X===null){q=null;continue}return X}}if(q==null)return null;throw q}if(typeof a==`object`&&a){let K=Object.getOwnPropertyNames(a),q=-1;for(;++q<K.length;){let a=K[q];if(isArrayIndex(a))throw new mm(fileURLToPath(n),fileURLToPath(N),`"exports" cannot contain numeric property keys.`)}for(q=-1;++q<K.length;){let Y=K[q];if(Y===`default`||W&&W.has(Y)){let K=a[Y],q=resolvePackageTarget(n,K,S,C,N,F,I,H,W);if(q===void 0)continue;return q}}return null}if(a===null)return null;throw invalidPackageTarget(C,a,n,I,N)}function isConditionalExportsMainSugar(n,a,S){if(typeof n==`string`||Array.isArray(n))return!0;if(typeof n!=`object`||!n)return!1;let C=Object.getOwnPropertyNames(n),N=!1,F=0,I=-1;for(;++I<C.length;){let n=C[I],H=n===``||n[0]!==`.`;if(F++===0)N=H;else if(N!==H)throw new mm(fileURLToPath(a),fileURLToPath(S),`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return N}function emitTrailingSlashPatternDeprecation(n,a,S){if(Wt.noDeprecation)return;let C=fileURLToPath(a);Pm.has(C+`|`+n)||(Pm.add(C+`|`+n),Wt.emitWarning(`Use of deprecated trailing slash pattern mapping "${n}" in the "exports" field module resolution of the package at ${C}${S?` imported from ${fileURLToPath(S)}`:``}. Mapping specifiers ending in "/" is no longer supported.`,`DeprecationWarning`,`DEP0155`))}function packageExportsResolve(n,a,S,C,N){let F=S.exports;if(isConditionalExportsMainSugar(F,n,C)&&(F={".":F}),Om.call(F,a)&&!a.includes(`*`)&&!a.endsWith(`/`)){let S=F[a],I=resolvePackageTarget(n,S,``,a,C,!1,!1,!1,N);if(I==null)throw exportsNotFound(a,n,C);return I}let I=``,H=``,W=Object.getOwnPropertyNames(F),K=-1;for(;++K<W.length;){let S=W[K],N=S.indexOf(`*`);if(N!==-1&&a.startsWith(S.slice(0,N))){a.endsWith(`/`)&&emitTrailingSlashPatternDeprecation(a,n,C);let F=S.slice(N+1);a.length>=S.length&&a.endsWith(F)&&patternKeyCompare(I,S)===1&&S.lastIndexOf(`*`)===N&&(I=S,H=a.slice(N,a.length-F.length))}}if(I){let S=F[I],W=resolvePackageTarget(n,S,H,I,C,!0,!1,a.endsWith(`/`),N);if(W==null)throw exportsNotFound(a,n,C);return W}throw exportsNotFound(a,n,C)}function patternKeyCompare(n,a){let S=n.indexOf(`*`),C=a.indexOf(`*`),N=S===-1?n.length:S+1,F=C===-1?a.length:C+1;return N>F?-1:F>N||S===-1?1:C===-1||n.length>a.length?-1:+(a.length>n.length)}function packageImportsResolve(n,a,S){if(n===`#`||n.startsWith(`#/`)||n.endsWith(`/`))throw new pm(n,`is not a valid internal imports specifier name`,fileURLToPath(a));let C,N=getPackageScopeConfig(a);if(N.exists){C=pathToFileURL(N.pjsonPath);let F=N.imports;if(F)if(Om.call(F,n)&&!n.includes(`*`)){let N=resolvePackageTarget(C,F[n],``,n,a,!1,!0,!1,S);if(N!=null)return N}else{let N=``,I=``,H=Object.getOwnPropertyNames(F),W=-1;for(;++W<H.length;){let a=H[W],S=a.indexOf(`*`);if(S!==-1&&n.startsWith(a.slice(0,-1))){let C=a.slice(S+1);n.length>=a.length&&n.endsWith(C)&&patternKeyCompare(N,a)===1&&a.lastIndexOf(`*`)===S&&(N=a,I=n.slice(S,n.length-C.length))}}if(N){let n=F[N],H=resolvePackageTarget(C,n,I,N,a,!0,!0,!1,S);if(H!=null)return H}}}throw importNotDefined(n,C,a)}function parsePackageName(n,a){let S=n.indexOf(`/`),C=!0,N=!1;n[0]===`@`&&(N=!0,S===-1||n.length===0?C=!1:S=n.indexOf(`/`,S+1));let F=S===-1?n:n.slice(0,S);if(jm.exec(F)!==null&&(C=!1),!C)throw new pm(n,`is not a valid package name`,fileURLToPath(a));return{packageName:F,packageSubpath:`.`+(S===-1?``:n.slice(S)),isScoped:N}}function packageResolve(n,a,S){if(om.includes(n))return new tn(`node:`+n);let{packageName:C,packageSubpath:N,isScoped:F}=parsePackageName(n,a),I=getPackageScopeConfig(a);if(I.exists&&I.name===C&&I.exports!==void 0&&I.exports!==null)return packageExportsResolve(pathToFileURL(I.pjsonPath),N,I,a,S);let H=new tn(`./node_modules/`+C+`/package.json`,a),W=fileURLToPath(H),K;do{let I=tryStatSync(W.slice(0,-13));if(!I||!I.isDirectory()){K=W,H=new tn((F?`../../../../node_modules/`:`../../../node_modules/`)+C+`/package.json`,H),W=fileURLToPath(H);continue}let q=read(W,{base:a,specifier:n});return q.exports!==void 0&&q.exports!==null?packageExportsResolve(H,N,q,a,S):N===`.`?legacyMainResolve(H,q,a):new tn(N,H)}while(W.length!==K.length);throw new gm(C,fileURLToPath(a),!1)}function isRelativeSpecifier(n){return n[0]===`.`&&(n.length===1||n[1]===`/`||n[1]===`.`&&(n.length===2||n[2]===`/`))}function shouldBeTreatedAsRelativeOrAbsolutePath(n){return n===``?!1:n[0]===`/`?!0:isRelativeSpecifier(n)}function moduleResolve(n,a,S,C){let N=a.protocol,F=N===`data:`,I;if(shouldBeTreatedAsRelativeOrAbsolutePath(n))try{I=new tn(n,a)}catch(S){let C=new bm(n,a);throw C.cause=S,C}else if(N===`file:`&&n[0]===`#`)I=packageImportsResolve(n,a,S);else try{I=new tn(n)}catch(C){if(F&&!om.includes(n)){let S=new bm(n,a);throw S.cause=C,S}I=packageResolve(n,a,S)}return Ks.ok(I!==void 0,`expected to be defined`),I.protocol===`file:`?finalizeResolution(I,a,C):I}const Im=new Set([`node`,`import`]),Lm=process.platform===`win32`,Rm=globalThis.__EXSOLVE_CACHE__||=new Map;function resolveModuleURL(n,a){let S=_parseInput(n);if(`external`in S)return S.external;let C=S.specifier,N=S.url,F=S.absolutePath,I,H;if(a?.cache!==!1&&(I=_cacheKey(F||C,a),H=a?.cache&&typeof a?.cache==`object`?a.cache:Rm),H){let n=H.get(I);if(typeof n==`string`)return n;if(n instanceof Error){if(a?.try)return;throw n}}if(F)try{let n=lstatSync(F);if(n.isSymbolicLink()&&(F=realpathSync(F),N=pathToFileURL(F)),n.isFile())return H&&H.set(I,N.href),N.href}catch(n){if(n?.code!==`ENOENT`)throw H&&H.set(I,n),n}let W=a?.conditions?new Set(a.conditions):Im,K=C||N.href,q=_normalizeBases(a?.from),Y=a?.suffixes||[``],X=a?.extensions?[``,...a.extensions]:[``],te;for(let n of q){for(let a of Y){let S=_join(K,a);S===`.`&&(S+=`/.`);for(let a of X)if(te=_tryModuleResolve(S+a,n,W),te)break;if(te)break}if(te)break}if(!te){let S=Error(`Cannot resolve module "${n}" (from: ${q.map(n=>_fmtPath(n)).join(`, `)})`);if(S.code=`ERR_MODULE_NOT_FOUND`,H&&H.set(I,S),a?.try)return;throw S}return H&&H.set(I,te.href),te.href}function resolveModulePath(n,a){let S=resolveModuleURL(n,a);if(!S||!S.startsWith(`file://`)&&a?.try)return;let C=fileURLToPath(S);return Lm?_normalizeWinPath(C):C}function _tryModuleResolve(n,a,S){try{return moduleResolve(n,a,S)}catch{}}function _normalizeBases(n){let a=(Array.isArray(n)?n:[n]).flatMap(n=>_normalizeBase(n));return a.length===0?[pathToFileURL(`./`)]:a}function _normalizeBase(n){if(!n)return[];if(_isURL(n))return[n];if(typeof n!=`string`)return[];if(/^(?:node|data|http|https|file):/.test(n))return new URL(n);try{return n.endsWith(`/`)||statSync(n).isDirectory()?pathToFileURL(n+`/`):pathToFileURL(n)}catch{return[pathToFileURL(n+`/`),pathToFileURL(n)]}}function _fmtPath(n){try{return fileURLToPath(n)}catch{return n}}function _cacheKey(n,a){return JSON.stringify([n,(a?.conditions||[`node`,`import`]).sort(),a?.extensions,a?.from,a?.suffixes])}function _join(n,a){return!n||!a||a===`/`?n:(n.endsWith(`/`)?n:n+`/`)+(a.startsWith(`/`)?a.slice(1):a)}function _normalizeWinPath(n){return n.replace(/\\/g,`/`).replace(/^[a-z]:\//,n=>n.toUpperCase())}function _isURL(n){return n instanceof URL||n?.constructor?.name===`URL`}function _parseInput(n){if(typeof n==`string`){if(n.startsWith(`file:`)){let a=new URL(n);return{url:a,absolutePath:fileURLToPath(a)}}return Ao(n)?{url:pathToFileURL(n),absolutePath:n}:/^(?:node|data|http|https):/.test(n)?{external:n}:om.includes(n)&&!n.includes(`:`)?{external:`node:${n}`}:{specifier:n}}if(_isURL(n))return n.protocol===`file:`?{url:n,absolutePath:fileURLToPath(n)}:{external:n.href};throw TypeError("id must be a `string` or `URL`")}As(),rn(),ss();const zm={startingFrom:`.`,rootPattern:/^node_modules$/,reverse:!1,test:n=>{try{if(statSync(n).isFile())return!0}catch{}}};async function findFile(n,a={}){let S=Array.isArray(n)?n:[n],C={...zm,...a},N=resolve(C.startingFrom),F=N[0]===`/`,I=N.split(`/`).filter(Boolean);if(S.includes(I.at(-1))&&await C.test(N))return N;F&&(I[0]=`/`+I[0]);let H=I.findIndex(n=>n.match(C.rootPattern));if(H===-1&&(H=0),C.reverse)for(let n=H+1;n<=I.length;n++)for(let a of S){let S=join(...I.slice(0,n),a);if(await C.test(S))return S}else for(let n=I.length;n>H;n--)for(let a of S){let S=join(...I.slice(0,n),a);if(await C.test(S))return S}throw Error(`Cannot find matching ${n} in ${C.startingFrom} or parent directories`)}function findNearestFile(n,a={}){return findFile(n,a)}function _resolvePath(n,a={}){return n instanceof URL||n.startsWith(`file://`)?normalize(fileURLToPath(n)):isAbsolute(n)?normalize(n):resolveModulePath(n,{...a,from:a.from||a.parent||a.url})}const Bm=new Map;async function readPackageJSON(n,a={}){let S=await resolvePackageJSON(n,a),C=a.cache&&typeof a.cache!=`boolean`?a.cache:Bm;if(a.cache&&C.has(S))return C.get(S);let N=await as.readFile(S,`utf8`),F;try{F=n$2(N)}catch{F=r$1(N)}return C.set(S,F),F}async function resolvePackageJSON(n=process.cwd(),a={}){return findNearestFile(`package.json`,{...a,startingFrom:_resolvePath(n,a)})}const A=n=>typeof n==`object`&&!!n,Vm=__name$1((n,a)=>Object.assign(Error(`[${n}]: ${a}`),{code:n}),`a`),Hm=`ERR_INVALID_PACKAGE_CONFIG`,Um=`ERR_INVALID_PACKAGE_TARGET`,Wm=/^\d+$/,Gm=/^(\.{1,2}|node_modules)$/i,Km=/\/|\\/;var qm=(n=>(n.Export=`exports`,n.Import=`imports`,n))(qm||{});const f=(n,a,S,C,N)=>{if(a==null)return[];if(typeof a==`string`){let[S,...C]=a.split(Km);if(S===`..`||C.some(n=>Gm.test(n)))throw Vm(Um,`Invalid "${n}" target "${a}" defined in the package config`);return[N?a.replace(/\*/g,N):a]}if(Array.isArray(a))return a.flatMap(a=>f(n,a,S,C,N));if(A(a)){for(let F of Object.keys(a)){if(Wm.test(F))throw Vm(Hm,`Cannot contain numeric property keys`);if(F===`default`||C.includes(F))return f(n,a[F],S,C,N)}return[]}throw Vm(Um,`Invalid "${n}" target "${a}"`)},m=(n,a)=>{let S=n.indexOf(`*`),C=a.indexOf(`*`);return S===C?a.length>n.length:C>S};function d(n,a){if(!a.includes(`*`)&&n.hasOwnProperty(a))return[a];let S,C;for(let N of Object.keys(n))if(N.includes(`*`)){let[n,F,I]=N.split(`*`);if(I===void 0&&a.startsWith(n)&&a.endsWith(F)){let I=a.slice(n.length,-F.length||void 0);I&&(!S||m(S,N))&&(S=N,C=I)}}return[S,C]}const p=n=>Object.keys(n).reduce((n,a)=>{let S=a===``||a[0]!==`.`;if(n===void 0||n===S)return S;throw Vm(Hm,`"exports" cannot contain some keys starting with "." and some not`)},void 0),Jm=/^\w+:/,v=(n,a,S)=>{if(!n)throw Error(`"exports" is required`);a=a===``?`.`:`./${a}`,(typeof n==`string`||Array.isArray(n)||A(n)&&p(n))&&(n={".":n});let[C,N]=d(n,a),F=f(qm.Export,n[C],a,S,N);if(F.length===0)throw Vm(`ERR_PACKAGE_PATH_NOT_EXPORTED`,a===`.`?`No "exports" main defined`:`Package subpath '${a}' is not defined by "exports"`);for(let n of F)if(!n.startsWith(`./`)&&!Jm.test(n))throw Vm(Um,`Invalid "exports" target "${n}" defined in the package config`);return F};Ho(),As(),zs(),kp();var Ym=Object.defineProperty,r=(n,a)=>Ym(n,`name`,{value:a,configurable:!0});function h$1(n){return n.startsWith(`\\\\?\\`)?n:n.replace(/\\/g,`/`)}__name$1(h$1,`h`),r(h$1,`slash`);const Xm=r(n=>{let a=ks[n];return(S,...C)=>{let N=`${n}:${C.join(`:`)}`,F=S?.get(N);return F===void 0&&(F=Reflect.apply(a,ks,C),S?.set(N,F)),F}},`cacheFs`),Zm=Xm(`existsSync`),Qm=Xm(`readFileSync`),$m=Xm(`statSync`),eh=r((n,a,S)=>{for(;;){let C=Vo.posix.join(n,a);if(Zm(S,C))return C;let N=Vo.dirname(n);if(N===n)return;n=N}},`findUp`),th=/^\.{1,2}(\/.*)?$/,nh=r(n=>{let a=h$1(n);return th.test(a)?a:`./${a}`},`normalizeRelativePath`);function Ne(n,a=!1){let S=n.length,C=0,N=``,F=0,I=16,H=0,W=0,K=0,q=0,Y=0;function _(a,S){let N=0,F=0;for(;N<a;){let a=n.charCodeAt(C);if(a>=48&&a<=57)F=F*16+a-48;else if(a>=65&&a<=70)F=F*16+a-65+10;else if(a>=97&&a<=102)F=F*16+a-97+10;else break;C++,N++}return N<a&&(F=-1),F}r(_,`scanHexDigits`);function v(n){C=n,N=``,F=0,I=16,Y=0}r(v,`setPosition`);function p(){let a=C;if(n.charCodeAt(C)===48)C++;else for(C++;C<n.length&&R(n.charCodeAt(C));)C++;if(C<n.length&&n.charCodeAt(C)===46)if(C++,C<n.length&&R(n.charCodeAt(C)))for(C++;C<n.length&&R(n.charCodeAt(C));)C++;else return Y=3,n.substring(a,C);let S=C;if(C<n.length&&(n.charCodeAt(C)===69||n.charCodeAt(C)===101))if(C++,(C<n.length&&n.charCodeAt(C)===43||n.charCodeAt(C)===45)&&C++,C<n.length&&R(n.charCodeAt(C))){for(C++;C<n.length&&R(n.charCodeAt(C));)C++;S=C}else Y=3;return n.substring(a,S)}r(p,`scanNumber`);function L(){let a=``,N=C;for(;;){if(C>=S){a+=n.substring(N,C),Y=2;break}let F=n.charCodeAt(C);if(F===34){a+=n.substring(N,C),C++;break}if(F===92){if(a+=n.substring(N,C),C++,C>=S){Y=2;break}switch(n.charCodeAt(C++)){case 34:a+=`"`;break;case 92:a+=`\\`;break;case 47:a+=`/`;break;case 98:a+=`\b`;break;case 102:a+=`\f`;break;case 110:a+=`
626
+ `)){let S=/^(\w+):\s+(\d+)(\s+kB)?/.exec(a);S&&n.set(S[1],parseInt(S[2])*(S[3]?1024:1))}}catch{}return n}function getHeapStatistics(){let n=readProcStatus();return{total_heap_size:n.get(`VmSize`)??0,total_heap_size_executable:0,total_physical_size:n.get(`VmRSS`)??0,total_available_size:0,used_heap_size:n.get(`VmRSS`)??0,heap_size_limit:0,malloced_memory:n.get(`VmData`)??0,peak_malloced_memory:n.get(`VmPeak`)??0,does_zap_garbage:0,number_of_native_contexts:0,number_of_detached_contexts:0,total_global_handles_size:0,used_global_handles_size:0,external_memory:0}}bt();function writeVarint(n,a){for(a>>>=0;a>=128;)n.push(a&127|128),a>>>=7;n.push(a)}function readVarint(n,a){let S=0,C=0,N;do{if(a>=n.length)throw Error(`Unexpected end of buffer reading varint`);N=n[a++],S|=(N&127)<<C,C+=7}while(N&128);return[S>>>0,a]}function zigZagEncode(n){return n>=0?n*2:-n*2-1}function zigZagDecode(n){return n&1?-(n>>>1)-1:n>>>1}function writeFloat64(n,a){let S=new DataView(new ArrayBuffer(8));S.setFloat64(0,a,!0);for(let a=0;a<8;a++)n.push(S.getUint8(a))}function readFloat64(n,a){if(a+8>n.length)throw Error(`ReadDouble() failed`);return[new DataView(n.buffer,n.byteOffset+a,8).getFloat64(0,!0),a+8]}function isOneByte(n){for(let a=0;a<n.length;a++)if(n.charCodeAt(a)>255)return!1;return!0}function typedArrayToIndex(n){let a=Object.prototype.toString.call(n);return a===`[object Int8Array]`?0:a===`[object Uint8Array]`?1:a===`[object Uint8ClampedArray]`?2:a===`[object Int16Array]`?3:a===`[object Uint16Array]`?4:a===`[object Int32Array]`?5:a===`[object Uint32Array]`?6:a===`[object Float32Array]`?7:a===`[object Float64Array]`?8:a===`[object DataView]`?9:a===`[object BigInt64Array]`?11:a===`[object BigUint64Array]`?12:-1}function indexToTypedArray(n){switch(n){case 0:return Int8Array;case 1:return Uint8Array;case 2:return Uint8ClampedArray;case 3:return Int16Array;case 4:return Uint16Array;case 5:return Int32Array;case 6:return Uint32Array;case 7:return Float32Array;case 8:return Float64Array;case 9:return DataView;case 10:return dt;case 11:return BigInt64Array;case 12:return BigUint64Array}}var Serializer=class{_bytes=[];_seen=[];_treatAbvAsHostObjects=!1;_getDataCloneError=Error;writeHeader(){this._bytes.push(255),writeVarint(this._bytes,15)}writeValue(n){if(typeof n==`object`&&n){let a=this._seen.indexOf(n);if(a!==-1){this._bytes.push(94),writeVarint(this._bytes,a);return}}if(n===void 0)this._bytes.push(95);else if(n===null)this._bytes.push(48);else if(n===!0)this._bytes.push(84);else if(n===!1)this._bytes.push(70);else if(typeof n==`number`)Number.isInteger(n)&&n>=-(2**31)&&n<=2**32-1?n>=0?(this._bytes.push(85),writeVarint(this._bytes,n)):(this._bytes.push(73),writeVarint(this._bytes,zigZagEncode(n))):(this._bytes.push(78),writeFloat64(this._bytes,n));else if(typeof n==`bigint`)this._writeBigInt(n);else if(typeof n==`string`)this._writeString(n);else if(typeof n==`object`){let a=n;if(n instanceof Date)this._seen.push(a),this._bytes.push(68),writeFloat64(this._bytes,n.getTime());else if(n instanceof RegExp)this._seen.push(a),this._bytes.push(82),this._writeString(n.source),writeVarint(this._bytes,regExpFlagsToInt(n));else if(n instanceof ArrayBuffer){this._seen.push(a);let S=new Uint8Array(n);this._bytes.push(66),writeVarint(this._bytes,S.length);for(let n=0;n<S.length;n++)this._bytes.push(S[n])}else if(this._treatAbvAsHostObjects&&(ArrayBuffer.isView(n)||dt.isBuffer(n)))this._seen.push(a),this._bytes.push(92),this._writeHostObject(a);else if(Array.isArray(n)){this._seen.push(a);let S=n;this._bytes.push(65),writeVarint(this._bytes,S.length);for(let n=0;n<S.length;n++)this.writeValue(S[n]);this._bytes.push(36),writeVarint(this._bytes,0),writeVarint(this._bytes,S.length)}else{this._seen.push(a),this._bytes.push(111);let n=Object.keys(a);for(let S of n)this._writeString(S),this.writeValue(a[S]);this._bytes.push(123),writeVarint(this._bytes,n.length)}}else throw new this._getDataCloneError(`${String(n)} could not be cloned.`)}releaseBuffer(){let n=dt.from(this._bytes);return this._bytes=[],this._seen=[],n}writeUint32(n){writeVarint(this._bytes,n>>>0)}writeUint64(n,a){writeVarint(this._bytes,n>>>0),writeVarint(this._bytes,a>>>0)}writeDouble(n){writeFloat64(this._bytes,n)}writeRawBytes(n){if(!ArrayBuffer.isView(n))throw TypeError(`source must be a TypedArray or a DataView`);let a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);for(let n=0;n<a.length;n++)this._bytes.push(a[n])}_writeHostObject(n){throw new this._getDataCloneError(`Unserializable host object: ${Object.prototype.toString.call(n)}`)}_setTreatArrayBufferViewsAsHostObjects(n){this._treatAbvAsHostObjects=n}_writeString(n){if(isOneByte(n)){this._bytes.push(34),writeVarint(this._bytes,n.length);for(let a=0;a<n.length;a++)this._bytes.push(n.charCodeAt(a)&255)}else{let a=new TextEncoder().encode(n);this._bytes.push(99),writeVarint(this._bytes,a.length);for(let n=0;n<a.length;n++)this._bytes.push(a[n])}}_writeBigInt(n){this._bytes.push(90);let a=n<0n,S=a?-n:n,C=[],N=S;for(;N>0n;)C.push(Number(N&4294967295n)),C.push(Number(N>>32n&4294967295n)),N>>=64n;let F=C.length<<1|!!a;writeVarint(this._bytes,F);for(let n of C)this._bytes.push(n&255),this._bytes.push(n>>8&255),this._bytes.push(n>>16&255),this._bytes.push(n>>24&255);C.length}},Deserializer=class{_pos=0;_wireVersion=0;_seen=[];buffer;constructor(n){if(!ArrayBuffer.isView(n)&&!(n instanceof ArrayBuffer))throw TypeError(`buffer must be a TypedArray or a DataView`);n instanceof ArrayBuffer?this.buffer=dt.from(n):this.buffer=dt.from(n.buffer,n.byteOffset,n.byteLength)}readHeader(){if(this.buffer[this._pos]!==255)throw Error(`ReadHeader() failed`);this._pos++;let[n,a]=readVarint(this.buffer,this._pos);return this._wireVersion=n,this._pos=a,!0}getWireFormatVersion(){return this._wireVersion}readValue(){if(this._pos>=this.buffer.length)throw Error(`Unexpected end of buffer`);let n=this.buffer[this._pos++];switch(n){case 95:return;case 48:return null;case 84:return!0;case 70:return!1;case 73:{let[n,a]=readVarint(this.buffer,this._pos);return this._pos=a,zigZagDecode(n)}case 85:{let[n,a]=readVarint(this.buffer,this._pos);return this._pos=a,n>>>0}case 78:{let[n,a]=readFloat64(this.buffer,this._pos);return this._pos=a,n}case 90:return this._readBigInt();case 34:{let[n,a]=readVarint(this.buffer,this._pos);this._pos=a;let S=``;for(let a=0;a<n;a++)S+=String.fromCharCode(this.buffer[this._pos++]);return S}case 99:{let[n,a]=readVarint(this.buffer,this._pos);this._pos=a;let S=this.buffer.slice(this._pos,this._pos+n);return this._pos+=n,new TextDecoder().decode(S)}case 68:{let[n,a]=readFloat64(this.buffer,this._pos);this._pos=a;let S=new Date(n);return this._seen.push(S),S}case 82:{let n=this.readValue(),[a,S]=readVarint(this.buffer,this._pos);this._pos=S;let C=intToRegExpFlags(a),N=new RegExp(n,C);return this._seen.push(N),N}case 66:{let[n,a]=readVarint(this.buffer,this._pos);this._pos=a;let S=new ArrayBuffer(n),C=new Uint8Array(S);for(let a=0;a<n;a++)C[a]=this.buffer[this._pos++];return this._seen.push(S),S}case 94:{let[n,a]=readVarint(this.buffer,this._pos);if(this._pos=a,n>=this._seen.length)throw Error(`Invalid object reference`);return this._seen[n]}case 65:{let[n,a]=readVarint(this.buffer,this._pos);this._pos=a;let S=Array.from({length:n});this._seen.push(S);for(let a=0;a<n;a++)S[a]=this.readValue();if(this.buffer[this._pos]!==36)throw Error(`Expected kEndDenseArray`);this._pos++;let[,C]=readVarint(this.buffer,this._pos);this._pos=C;let[,N]=readVarint(this.buffer,this._pos);return this._pos=N,S}case 111:{let n={};for(this._seen.push(n);this.buffer[this._pos]!==123;){let a=this.readValue();n[a]=this.readValue()}this._pos++;let[,a]=readVarint(this.buffer,this._pos);return this._pos=a,n}case 92:{let n=this._readHostObject();return n!=null&&this._seen.push(n),n}default:throw Error(`Unknown tag 0x${n.toString(16).padStart(2,`0`)} at position ${this._pos-1}`)}}readUint32(){let[n,a]=readVarint(this.buffer,this._pos);return this._pos=a,n>>>0}readUint64(){let[n,a]=readVarint(this.buffer,this._pos),[S,C]=readVarint(this.buffer,a);return this._pos=C,[n>>>0,S>>>0]}readDouble(){let[n,a]=readFloat64(this.buffer,this._pos);return this._pos=a,n}_readRawBytes(n){let a=this._pos;if(this._pos+=n,this._pos>this.buffer.length)throw Error(`Unexpected end of buffer reading raw bytes`);return a}readRawBytes(n){let a=this._readRawBytes(n);return dt.from(this.buffer.buffer,this.buffer.byteOffset+a,n)}_readHostObject(){throw Error(`No host object deserializer installed`)}_readBigInt(){let[n,a]=readVarint(this.buffer,this._pos);this._pos=a;let S=(n&1)==1,C=n>>1,N=0n;for(let n=0;n<C;n++){let a=this.buffer[this._pos]|this.buffer[this._pos+1]<<8|this.buffer[this._pos+2]<<16|this.buffer[this._pos+3]<<24;this._pos+=4,N|=BigInt(a>>>0)<<BigInt(n*32)}return S?-N:N}};function regExpFlagsToInt(n){let a=0;return n.global&&(a|=1),n.ignoreCase&&(a|=2),n.multiline&&(a|=4),n.sticky&&(a|=8),n.unicode&&(a|=16),n.dotAll&&(a|=32),n.hasIndices&&(a|=64),n.unicodeSets&&(a|=128),a}function intToRegExpFlags(n){let a=``;return n&1&&(a+=`g`),n&2&&(a+=`i`),n&4&&(a+=`m`),n&8&&(a+=`y`),n&16&&(a+=`u`),n&32&&(a+=`s`),n&64&&(a+=`d`),n&128&&(a+=`v`),a}var DefaultSerializer=class extends Serializer{constructor(){super(),this._setTreatArrayBufferViewsAsHostObjects(!0)}_writeHostObject(n){let a;if(dt.isBuffer(n))a=10;else if(a=typedArrayToIndex(n),a===-1)throw new this._getDataCloneError(`Unserializable host object: ${Object.prototype.toString.call(n)}`);this.writeUint32(a),this.writeUint32(n.byteLength),this.writeRawBytes(new Uint8Array(n.buffer,n.byteOffset,n.byteLength))}},DefaultDeserializer=class extends Deserializer{_readHostObject(){let n=this.readUint32(),a=this.readUint32(),S=this._readRawBytes(a);if(n===10){let n=dt.allocUnsafe(a);return this.buffer.copy(n,0,this.buffer.byteOffset+S,this.buffer.byteOffset+S+a),n}let C=indexToTypedArray(n);if(!C)throw Error(`Unknown TypedArray type index ${n}`);let N=C.BYTES_PER_ELEMENT??1,F=a/N,I=this.buffer.byteOffset+S;if(I%N===0)return new C(this.buffer.buffer,I,F);let H=dt.allocUnsafe(a);return this.buffer.copy(H,0,this.buffer.byteOffset+S,this.buffer.byteOffset+S+a),new C(H.buffer,H.byteOffset,F)}};function serialize(n){let a=new DefaultSerializer;return a.writeHeader(),a.writeValue(n),a.releaseBuffer()}function deserialize(n){let a=new DefaultDeserializer(n);return a.readHeader(),a.readValue()}function getHeapSpaceStatistics(){return[]}function getHeapCodeStatistics(){return{code_and_metadata_size:0,bytecode_and_metadata_size:0,external_script_source_size:0,cpu_profiler_metadata_size:0}}function setFlagsFromString(n){}function getHeapSnapshot(n){return null}function writeHeapSnapshot(n){return``}function isStringOneByteRepresentation(n){for(let a=0;a<n.length;a++)if(n.charCodeAt(a)>255)return!1;return!0}var GCProfiler=class{#e=!1;#t=0;start(){this.#e||(this.#e=!0,this.#t=Date.now())}stop(){if(this.#e){this.#e=!1;try{let n=globalThis.imports?.system;typeof n?.gc==`function`&&n.gc()}catch{}return{version:1,startTime:this.#t,endTime:Date.now(),stats:[]}}}[Symbol.dispose](){this.stop()}},SyncCPUProfileHandle=class{stop(){}[Symbol.dispose](){this.stop()}};function startCpuProfile(){return new SyncCPUProfileHandle}var am={getHeapStatistics,getHeapSpaceStatistics,getHeapCodeStatistics,setFlagsFromString,getHeapSnapshot,writeHeapSnapshot,serialize,deserialize,isStringOneByteRepresentation,Serializer,Deserializer,DefaultSerializer,DefaultDeserializer,GCProfiler,startCpuProfile};As(),rn(),Ho(),qc();const om=`_http_agent._http_client._http_common._http_incoming._http_outgoing._http_server._stream_duplex._stream_passthrough._stream_readable._stream_transform._stream_wrap._stream_writable._tls_common._tls_wrap.assert.assert/strict.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.dns/promises.domain.events.fs.fs/promises.http.http2.https.inspector.inspector/promises.module.net.os.path.path/posix.path/win32.perf_hooks.process.punycode.querystring.readline.readline/promises.repl.stream.stream/consumers.stream/promises.stream/web.string_decoder.sys.timers.timers/promises.tls.trace_events.tty.url.util.util/types.v8.vm.wasi.worker_threads.zlib`.split(`.`),sm={}.hasOwnProperty,cm=/^([A-Z][a-z\d]*)+$/,lm=new Set([`string`,`function`,`number`,`object`,`Function`,`Object`,`boolean`,`bigint`,`symbol`]),um=new Map;let dm;function formatList(n,a=`and`){return n.length<3?n.join(` ${a} `):`${n.slice(0,-1).join(`, `)}, ${a} ${n.at(-1)}`}function createError(n,a,S){return um.set(n,a),makeNodeErrorWithCode(S,n)}function makeNodeErrorWithCode(n,a){return function NodeError(...S){let C=Error.stackTraceLimit;isErrorStackTraceLimitWritable()&&(Error.stackTraceLimit=0);let N=new n;isErrorStackTraceLimitWritable()&&(Error.stackTraceLimit=C);let F=getMessage$1(a,S,N);return Object.defineProperties(N,{message:{value:F,enumerable:!1,writable:!0,configurable:!0},toString:{value(){return`${this.name} [${a}]: ${this.message}`},enumerable:!1,writable:!0,configurable:!0}}),fm(N),N.code=a,N}}function isErrorStackTraceLimitWritable(){try{if(am.startupSnapshot.isBuildingSnapshot())return!1}catch{}let n=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return n===void 0?Object.isExtensible(Error):sm.call(n,`writable`)&&n.writable!==void 0?n.writable:n.set!==void 0}function hideStackFrames(n){let a=`__node_internal_`+n.name;return Object.defineProperty(n,"name",{value:a}),n}const fm=hideStackFrames(function(n){let a=isErrorStackTraceLimitWritable();return a&&(dm=Error.stackTraceLimit,Error.stackTraceLimit=1/0),Error.captureStackTrace(n),a&&(Error.stackTraceLimit=dm),n});function getMessage$1(n,a,S){let C=um.get(n);if(Ks.ok(C!==void 0,"expected `message` to be found"),typeof C==`function`)return Ks.ok(C.length<=a.length,`Code: ${n}; The provided arguments length (${a.length}) does not match the required ones (${C.length}).`),Reflect.apply(C,S,a);let N=/%[dfijoOs]/g,F=0;for(;N.exec(C)!==null;)F++;return Ks.ok(F===a.length,`Code: ${n}; The provided arguments length (${a.length}) does not match the required ones (${F}).`),a.length===0?C:(a.unshift(C),Reflect.apply(format$1,null,a))}__name$1(getMessage$1,`getMessage`);function determineSpecificType(n){if(n==null)return String(n);if(typeof n==`function`&&n.name)return`function ${n.name}`;if(typeof n==`object`)return n.constructor&&n.constructor.name?`an instance of ${n.constructor.name}`:`${inspect(n,{depth:-1})}`;let a=inspect(n,{colors:!1});return a.length>28&&(a=`${a.slice(0,25)}...`),`type ${typeof n} (${a})`}createError(`ERR_INVALID_ARG_TYPE`,(n,a,S)=>{Ks.ok(typeof n==`string`,`'name' must be a string`),Array.isArray(a)||(a=[a]);let C=`The `;if(n.endsWith(` argument`))C+=`${n} `;else{let a=n.includes(`.`)?`property`:`argument`;C+=`"${n}" ${a} `}C+=`must be `;let N=[],F=[],I=[];for(let n of a)Ks.ok(typeof n==`string`,`All expected entries have to be of type string`),lm.has(n)?N.push(n.toLowerCase()):cm.exec(n)===null?(Ks.ok(n!==`object`,`The value "object" should be written as "Object"`),I.push(n)):F.push(n);if(F.length>0){let n=N.indexOf(`object`);n!==-1&&(N.slice(n,1),F.push(`Object`))}return N.length>0&&(C+=`${N.length>1?`one of type`:`of type`} ${formatList(N,`or`)}`,(F.length>0||I.length>0)&&(C+=` or `)),F.length>0&&(C+=`an instance of ${formatList(F,`or`)}`,I.length>0&&(C+=` or `)),I.length>0&&(I.length>1?C+=`one of ${formatList(I,`or`)}`:(I[0]?.toLowerCase()!==I[0]&&(C+=`an `),C+=`${I[0]}`)),C+=`. Received ${determineSpecificType(S)}`,C},TypeError);const pm=createError(`ERR_INVALID_MODULE_SPECIFIER`,(n,a,S)=>`Invalid module "${n}" ${a}${S?` imported from ${S}`:``}`,TypeError),mm=createError(`ERR_INVALID_PACKAGE_CONFIG`,(n,a,S)=>`Invalid package config ${n}${a?` while importing ${a}`:``}${S?`. ${S}`:``}`,Error),hm=createError(`ERR_INVALID_PACKAGE_TARGET`,(n,a,S,C=!1,N)=>{let F=typeof S==`string`&&!C&&S.length>0&&!S.startsWith(`./`);return a===`.`?(Ks.ok(C===!1),`Invalid "exports" main target ${JSON.stringify(S)} defined in the package config ${n}package.json${N?` imported from ${N}`:``}${F?`; targets must start with "./"`:``}`):`Invalid "${C?`imports`:`exports`}" target ${JSON.stringify(S)} defined for '${a}' in the package config ${n}package.json${N?` imported from ${N}`:``}${F?`; targets must start with "./"`:``}`},Error),gm=createError(`ERR_MODULE_NOT_FOUND`,(n,a,S=!1)=>`Cannot find ${S?`module`:`package`} '${n}' imported from ${a}`,Error);createError(`ERR_NETWORK_IMPORT_DISALLOWED`,`import of '%s' by %s is not supported: %s`,Error);const _m=createError(`ERR_PACKAGE_IMPORT_NOT_DEFINED`,(n,a,S)=>`Package import specifier "${n}" is not defined${a?` in package ${a||``}package.json`:``} imported from ${S}`,TypeError),vm=createError(`ERR_PACKAGE_PATH_NOT_EXPORTED`,(n,a,S)=>a===`.`?`No "exports" main defined in ${n}package.json${S?` imported from ${S}`:``}`:`Package subpath '${a}' is not defined by "exports" in ${n}package.json${S?` imported from ${S}`:``}`,Error),ym=createError(`ERR_UNSUPPORTED_DIR_IMPORT`,`Directory import '%s' is not supported resolving ES modules imported from %s`,Error),bm=createError(`ERR_UNSUPPORTED_RESOLVE_REQUEST`,`Failed to resolve module specifier "%s" from "%s": Invalid relative URL or base scheme is not hierarchical.`,TypeError),xm=createError(`ERR_UNKNOWN_FILE_EXTENSION`,(n,a)=>`Unknown file extension "${n}" for ${a}`,TypeError);createError(`ERR_INVALID_ARG_VALUE`,(n,a,S=`is invalid`)=>{let C=inspect(a);return C.length>128&&(C=`${C.slice(0,128)}...`),`The ${n.includes(`.`)?`property`:`argument`} '${n}' ${S}. Received ${C}`},TypeError);const Sm={}.hasOwnProperty,Cm=new Map;function read(n,{base:a,specifier:S}){let C=Cm.get(n);if(C)return C;let N;try{N=ks.readFileSync(Vo.toNamespacedPath(n),`utf8`)}catch(n){let a=n;if(a.code!==`ENOENT`)throw a}let F={exists:!1,pjsonPath:n,main:void 0,name:void 0,type:`none`,exports:void 0,imports:void 0};if(N!==void 0){let C;try{C=JSON.parse(N)}catch(C){let N=new mm(n,(a?`"${S}" from `:``)+fileURLToPath(a||S),C.message);throw N.cause=C,N}F.exists=!0,Sm.call(C,`name`)&&typeof C.name==`string`&&(F.name=C.name),Sm.call(C,`main`)&&typeof C.main==`string`&&(F.main=C.main),Sm.call(C,`exports`)&&(F.exports=C.exports),Sm.call(C,`imports`)&&(F.imports=C.imports),Sm.call(C,`type`)&&(C.type===`commonjs`||C.type===`module`)&&(F.type=C.type)}return Cm.set(n,F),F}function getPackageScopeConfig(n){let a=new URL(`package.json`,n);for(;!a.pathname.endsWith(`node_modules/package.json`);){let S=read(fileURLToPath(a),{specifier:n});if(S.exists)return S;let C=a;if(a=new URL(`../package.json`,a),a.pathname===C.pathname)break}return{pjsonPath:fileURLToPath(a),exists:!1,type:`none`}}const wm={}.hasOwnProperty,Tm={__proto__:null,".json":`json`,".cjs":`commonjs`,".cts":`commonjs`,".js":`module`,".ts":`module`,".mts":`module`,".mjs":`module`},Em={__proto__:null,"data:":getDataProtocolModuleFormat,"file:":getFileProtocolModuleFormat,"node:":()=>`builtin`};function mimeToFormat(n){return n&&/\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(n)?`module`:n===`application/json`?`json`:null}function getDataProtocolModuleFormat(n){let{1:a}=/^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(n.pathname)||[null,null,null];return mimeToFormat(a)}function extname(n){let a=n.pathname,S=a.length;for(;S--;){let n=a.codePointAt(S);if(n===47)return``;if(n===46)return a.codePointAt(S-1)===47?``:a.slice(S)}return``}function getFileProtocolModuleFormat(n,a,S){let C=extname(n);if(C===`.js`){let{type:a}=getPackageScopeConfig(n);return a===`none`?`commonjs`:a}if(C===``){let{type:a}=getPackageScopeConfig(n);return a===`none`||a===`commonjs`?`commonjs`:`module`}let N=Tm[C];if(N)return N;if(!S)throw new xm(C,fileURLToPath(n))}function defaultGetFormatWithoutErrors(n,a){let S=n.protocol;return wm.call(Em,S)&&Em[S](n,a,!0)||null}const Dm=RegExp.prototype[Symbol.replace],Om={}.hasOwnProperty,km=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i,Am=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,jm=/^\.|%|\\/,Mm=/\*/g,Nm=/%2f|%5c/i,Pm=new Set,Fm=/[/\\]{2}/;function emitInvalidSegmentDeprecation(n,a,S,C,N,F,I){if(Wt.noDeprecation)return;let H=fileURLToPath(C),W=Fm.exec(I?n:a)!==null;Wt.emitWarning(`Use of deprecated ${W?`double slash`:`leading or trailing slash matching`} resolving "${n}" for module request "${a}" ${a===S?``:`matched to "${S}" `}in the "${N?`imports`:`exports`}" field module resolution of the package at ${H}${F?` imported from ${fileURLToPath(F)}`:``}.`,`DeprecationWarning`,`DEP0166`)}function emitLegacyIndexDeprecation(n,a,S,C){if(Wt.noDeprecation||defaultGetFormatWithoutErrors(n,{parentURL:S.href})!==`module`)return;let N=fileURLToPath(n.href),F=fileURLToPath(new tn(`.`,a)),I=fileURLToPath(S);C?Vo.resolve(F,C)!==N&&Wt.emitWarning(`Package ${F} has a "main" field set to "${C}", excluding the full filename and extension to the resolved file at "${N.slice(F.length)}", imported from ${I}.\n Automatic extension resolution of the "main" field is deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`):Wt.emitWarning(`No "main" or "exports" field defined in the package.json for ${F} resolving the main entry point "${N.slice(F.length)}", imported from ${I}.\nDefault "index" lookups for the main are deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`)}function tryStatSync(n){try{return statSync(n)}catch{}}function fileExists$1(n){let a=statSync(n,{throwIfNoEntry:!1});return(a?a.isFile():void 0)??!1}__name$1(fileExists$1,`fileExists`);function legacyMainResolve(n,a,S){let C;if(a.main!==void 0){if(C=new tn(a.main,n),fileExists$1(C))return C;let N=[`./${a.main}.js`,`./${a.main}.json`,`./${a.main}.node`,`./${a.main}/index.js`,`./${a.main}/index.json`,`./${a.main}/index.node`],F=-1;for(;++F<N.length&&(C=new tn(N[F],n),!fileExists$1(C));)C=void 0;if(C)return emitLegacyIndexDeprecation(C,n,S,a.main),C}let N=[`./index.js`,`./index.json`,`./index.node`],F=-1;for(;++F<N.length&&(C=new tn(N[F],n),!fileExists$1(C));)C=void 0;if(C)return emitLegacyIndexDeprecation(C,n,S,a.main),C;throw new gm(fileURLToPath(new tn(`.`,n)),fileURLToPath(S))}function finalizeResolution(n,a,S){if(Nm.exec(n.pathname)!==null)throw new pm(n.pathname,String.raw`must not include encoded "/" or "\" characters`,fileURLToPath(a));let C;try{C=fileURLToPath(n)}catch(S){throw Object.defineProperty(S,"input",{value:String(n)}),Object.defineProperty(S,"module",{value:String(a)}),S}let N=tryStatSync(C.endsWith(`/`)?C.slice(-1):C);if(N&&N.isDirectory()){let S=new ym(C,fileURLToPath(a));throw S.url=String(n),S}if(!N||!N.isFile()){let S=new gm(C||n.pathname,a&&fileURLToPath(a),!0);throw S.url=String(n),S}if(!S){let a=realpathSync(C),{search:S,hash:N}=n;n=pathToFileURL(a+(C.endsWith(Vo.sep)?`/`:``)),n.search=S,n.hash=N}return n}function importNotDefined(n,a,S){return new _m(n,a&&fileURLToPath(new tn(`.`,a)),fileURLToPath(S))}function exportsNotFound(n,a,S){return new vm(fileURLToPath(new tn(`.`,a)),n,S&&fileURLToPath(S))}function throwInvalidSubpath(n,a,S,C,N){throw new pm(n,`request is not a valid match in pattern "${a}" for the "${C?`imports`:`exports`}" resolution of ${fileURLToPath(S)}`,N&&fileURLToPath(N))}function invalidPackageTarget(n,a,S,C,N){return a=typeof a==`object`&&a?JSON.stringify(a,null,``):`${a}`,new hm(fileURLToPath(new tn(`.`,S)),n,a,C,N&&fileURLToPath(N))}function resolvePackageTargetString(n,a,S,C,N,F,I,H,W){if(a!==``&&!F&&n.at(-1)!==`/`)throw invalidPackageTarget(S,n,C,I,N);if(!n.startsWith(`./`)){if(I&&!n.startsWith(`../`)&&!n.startsWith(`/`)){let S=!1;try{new tn(n),S=!0}catch{}if(!S)return packageResolve(F?Dm.call(Mm,n,()=>a):n+a,C,W)}throw invalidPackageTarget(S,n,C,I,N)}if(km.exec(n.slice(2))!==null)if(Am.exec(n.slice(2))===null){if(!H){let H=F?S.replace(`*`,()=>a):S+a;emitInvalidSegmentDeprecation(F?Dm.call(Mm,n,()=>a):n,H,S,C,I,N,!0)}}else throw invalidPackageTarget(S,n,C,I,N);let K=new tn(n,C),q=K.pathname,Y=new tn(`.`,C).pathname;if(!q.startsWith(Y))throw invalidPackageTarget(S,n,C,I,N);if(a===``)return K;if(km.exec(a)!==null){let W=F?S.replace(`*`,()=>a):S+a;Am.exec(a)===null?H||emitInvalidSegmentDeprecation(F?Dm.call(Mm,n,()=>a):n,W,S,C,I,N,!1):throwInvalidSubpath(W,S,C,I,N)}return F?new tn(Dm.call(Mm,K.href,()=>a)):new tn(a,K)}function isArrayIndex(n){let a=Number(n);return`${a}`===n?a>=0&&a<4294967295:!1}function resolvePackageTarget(n,a,S,C,N,F,I,H,W){if(typeof a==`string`)return resolvePackageTargetString(a,S,C,n,N,F,I,H,W);if(Array.isArray(a)){let K=a;if(K.length===0)return null;let q,Y=-1;for(;++Y<K.length;){let a=K[Y],X;try{X=resolvePackageTarget(n,a,S,C,N,F,I,H,W)}catch(n){let a=n;if(q=a,a.code===`ERR_INVALID_PACKAGE_TARGET`)continue;throw n}if(X!==void 0){if(X===null){q=null;continue}return X}}if(q==null)return null;throw q}if(typeof a==`object`&&a){let K=Object.getOwnPropertyNames(a),q=-1;for(;++q<K.length;){let a=K[q];if(isArrayIndex(a))throw new mm(fileURLToPath(n),fileURLToPath(N),`"exports" cannot contain numeric property keys.`)}for(q=-1;++q<K.length;){let Y=K[q];if(Y===`default`||W&&W.has(Y)){let K=a[Y],q=resolvePackageTarget(n,K,S,C,N,F,I,H,W);if(q===void 0)continue;return q}}return null}if(a===null)return null;throw invalidPackageTarget(C,a,n,I,N)}function isConditionalExportsMainSugar(n,a,S){if(typeof n==`string`||Array.isArray(n))return!0;if(typeof n!=`object`||!n)return!1;let C=Object.getOwnPropertyNames(n),N=!1,F=0,I=-1;for(;++I<C.length;){let n=C[I],H=n===``||n[0]!==`.`;if(F++===0)N=H;else if(N!==H)throw new mm(fileURLToPath(a),fileURLToPath(S),`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return N}function emitTrailingSlashPatternDeprecation(n,a,S){if(Wt.noDeprecation)return;let C=fileURLToPath(a);Pm.has(C+`|`+n)||(Pm.add(C+`|`+n),Wt.emitWarning(`Use of deprecated trailing slash pattern mapping "${n}" in the "exports" field module resolution of the package at ${C}${S?` imported from ${fileURLToPath(S)}`:``}. Mapping specifiers ending in "/" is no longer supported.`,`DeprecationWarning`,`DEP0155`))}function packageExportsResolve(n,a,S,C,N){let F=S.exports;if(isConditionalExportsMainSugar(F,n,C)&&(F={".":F}),Om.call(F,a)&&!a.includes(`*`)&&!a.endsWith(`/`)){let S=F[a],I=resolvePackageTarget(n,S,``,a,C,!1,!1,!1,N);if(I==null)throw exportsNotFound(a,n,C);return I}let I=``,H=``,W=Object.getOwnPropertyNames(F),K=-1;for(;++K<W.length;){let S=W[K],N=S.indexOf(`*`);if(N!==-1&&a.startsWith(S.slice(0,N))){a.endsWith(`/`)&&emitTrailingSlashPatternDeprecation(a,n,C);let F=S.slice(N+1);a.length>=S.length&&a.endsWith(F)&&patternKeyCompare(I,S)===1&&S.lastIndexOf(`*`)===N&&(I=S,H=a.slice(N,a.length-F.length))}}if(I){let S=F[I],W=resolvePackageTarget(n,S,H,I,C,!0,!1,a.endsWith(`/`),N);if(W==null)throw exportsNotFound(a,n,C);return W}throw exportsNotFound(a,n,C)}function patternKeyCompare(n,a){let S=n.indexOf(`*`),C=a.indexOf(`*`),N=S===-1?n.length:S+1,F=C===-1?a.length:C+1;return N>F?-1:F>N||S===-1?1:C===-1||n.length>a.length?-1:+(a.length>n.length)}function packageImportsResolve(n,a,S){if(n===`#`||n.startsWith(`#/`)||n.endsWith(`/`))throw new pm(n,`is not a valid internal imports specifier name`,fileURLToPath(a));let C,N=getPackageScopeConfig(a);if(N.exists){C=pathToFileURL(N.pjsonPath);let F=N.imports;if(F)if(Om.call(F,n)&&!n.includes(`*`)){let N=resolvePackageTarget(C,F[n],``,n,a,!1,!0,!1,S);if(N!=null)return N}else{let N=``,I=``,H=Object.getOwnPropertyNames(F),W=-1;for(;++W<H.length;){let a=H[W],S=a.indexOf(`*`);if(S!==-1&&n.startsWith(a.slice(0,-1))){let C=a.slice(S+1);n.length>=a.length&&n.endsWith(C)&&patternKeyCompare(N,a)===1&&a.lastIndexOf(`*`)===S&&(N=a,I=n.slice(S,n.length-C.length))}}if(N){let n=F[N],H=resolvePackageTarget(C,n,I,N,a,!0,!0,!1,S);if(H!=null)return H}}}throw importNotDefined(n,C,a)}function parsePackageName(n,a){let S=n.indexOf(`/`),C=!0,N=!1;n[0]===`@`&&(N=!0,S===-1||n.length===0?C=!1:S=n.indexOf(`/`,S+1));let F=S===-1?n:n.slice(0,S);if(jm.exec(F)!==null&&(C=!1),!C)throw new pm(n,`is not a valid package name`,fileURLToPath(a));return{packageName:F,packageSubpath:`.`+(S===-1?``:n.slice(S)),isScoped:N}}function packageResolve(n,a,S){if(om.includes(n))return new tn(`node:`+n);let{packageName:C,packageSubpath:N,isScoped:F}=parsePackageName(n,a),I=getPackageScopeConfig(a);if(I.exists&&I.name===C&&I.exports!==void 0&&I.exports!==null)return packageExportsResolve(pathToFileURL(I.pjsonPath),N,I,a,S);let H=new tn(`./node_modules/`+C+`/package.json`,a),W=fileURLToPath(H),K;do{let I=tryStatSync(W.slice(0,-13));if(!I||!I.isDirectory()){K=W,H=new tn((F?`../../../../node_modules/`:`../../../node_modules/`)+C+`/package.json`,H),W=fileURLToPath(H);continue}let q=read(W,{base:a,specifier:n});return q.exports!==void 0&&q.exports!==null?packageExportsResolve(H,N,q,a,S):N===`.`?legacyMainResolve(H,q,a):new tn(N,H)}while(W.length!==K.length);throw new gm(C,fileURLToPath(a),!1)}function isRelativeSpecifier(n){return n[0]===`.`&&(n.length===1||n[1]===`/`||n[1]===`.`&&(n.length===2||n[2]===`/`))}function shouldBeTreatedAsRelativeOrAbsolutePath(n){return n===``?!1:n[0]===`/`?!0:isRelativeSpecifier(n)}function moduleResolve(n,a,S,C){let N=a.protocol,F=N===`data:`,I;if(shouldBeTreatedAsRelativeOrAbsolutePath(n))try{I=new tn(n,a)}catch(S){let C=new bm(n,a);throw C.cause=S,C}else if(N===`file:`&&n[0]===`#`)I=packageImportsResolve(n,a,S);else try{I=new tn(n)}catch(C){if(F&&!om.includes(n)){let S=new bm(n,a);throw S.cause=C,S}I=packageResolve(n,a,S)}return Ks.ok(I!==void 0,`expected to be defined`),I.protocol===`file:`?finalizeResolution(I,a,C):I}const Im=new Set([`node`,`import`]),Lm=process.platform===`win32`,Rm=globalThis.__EXSOLVE_CACHE__||=new Map;function resolveModuleURL(n,a){let S=_parseInput(n);if(`external`in S)return S.external;let C=S.specifier,N=S.url,F=S.absolutePath,I,H;if(a?.cache!==!1&&(I=_cacheKey(F||C,a),H=a?.cache&&typeof a?.cache==`object`?a.cache:Rm),H){let n=H.get(I);if(typeof n==`string`)return n;if(n instanceof Error){if(a?.try)return;throw n}}if(F)try{let n=lstatSync(F);if(n.isSymbolicLink()&&(F=realpathSync(F),N=pathToFileURL(F)),n.isFile())return H&&H.set(I,N.href),N.href}catch(n){if(n?.code!==`ENOENT`)throw H&&H.set(I,n),n}let W=a?.conditions?new Set(a.conditions):Im,K=C||N.href,q=_normalizeBases(a?.from),Y=a?.suffixes||[``],X=a?.extensions?[``,...a.extensions]:[``],te;for(let n of q){for(let a of Y){let S=_join(K,a);S===`.`&&(S+=`/.`);for(let a of X)if(te=_tryModuleResolve(S+a,n,W),te)break;if(te)break}if(te)break}if(!te){let S=Error(`Cannot resolve module "${n}" (from: ${q.map(n=>_fmtPath(n)).join(`, `)})`);if(S.code=`ERR_MODULE_NOT_FOUND`,H&&H.set(I,S),a?.try)return;throw S}return H&&H.set(I,te.href),te.href}function resolveModulePath(n,a){let S=resolveModuleURL(n,a);if(!S||!S.startsWith(`file://`)&&a?.try)return;let C=fileURLToPath(S);return Lm?_normalizeWinPath(C):C}function _tryModuleResolve(n,a,S){try{return moduleResolve(n,a,S)}catch{}}function _normalizeBases(n){let a=(Array.isArray(n)?n:[n]).flatMap(n=>_normalizeBase(n));return a.length===0?[pathToFileURL(`./`)]:a}function _normalizeBase(n){if(!n)return[];if(_isURL(n))return[n];if(typeof n!=`string`)return[];if(/^(?:node|data|http|https|file):/.test(n))return new URL(n);try{return n.endsWith(`/`)||statSync(n).isDirectory()?pathToFileURL(n+`/`):pathToFileURL(n)}catch{return[pathToFileURL(n+`/`),pathToFileURL(n)]}}function _fmtPath(n){try{return fileURLToPath(n)}catch{return n}}function _cacheKey(n,a){return JSON.stringify([n,(a?.conditions||[`node`,`import`]).sort(),a?.extensions,a?.from,a?.suffixes])}function _join(n,a){return!n||!a||a===`/`?n:(n.endsWith(`/`)?n:n+`/`)+(a.startsWith(`/`)?a.slice(1):a)}function _normalizeWinPath(n){return n.replace(/\\/g,`/`).replace(/^[a-z]:\//,n=>n.toUpperCase())}function _isURL(n){return n instanceof URL||n?.constructor?.name===`URL`}function _parseInput(n){if(typeof n==`string`){if(n.startsWith(`file:`)){let a=new URL(n);return{url:a,absolutePath:fileURLToPath(a)}}return Ao(n)?{url:pathToFileURL(n),absolutePath:n}:/^(?:node|data|http|https):/.test(n)?{external:n}:om.includes(n)&&!n.includes(`:`)?{external:`node:${n}`}:{specifier:n}}if(_isURL(n))return n.protocol===`file:`?{url:n,absolutePath:fileURLToPath(n)}:{external:n.href};throw TypeError("id must be a `string` or `URL`")}As(),rn(),ss();const zm={startingFrom:`.`,rootPattern:/^node_modules$/,reverse:!1,test:n=>{try{if(statSync(n).isFile())return!0}catch{}}};async function findFile(n,a={}){let S=Array.isArray(n)?n:[n],C={...zm,...a},N=resolve(C.startingFrom),F=N[0]===`/`,I=N.split(`/`).filter(Boolean);if(S.includes(I.at(-1))&&await C.test(N))return N;F&&(I[0]=`/`+I[0]);let H=I.findIndex(n=>n.match(C.rootPattern));if(H===-1&&(H=0),C.reverse)for(let n=H+1;n<=I.length;n++)for(let a of S){let S=join(...I.slice(0,n),a);if(await C.test(S))return S}else for(let n=I.length;n>H;n--)for(let a of S){let S=join(...I.slice(0,n),a);if(await C.test(S))return S}throw Error(`Cannot find matching ${n} in ${C.startingFrom} or parent directories`)}function findNearestFile(n,a={}){return findFile(n,a)}function _resolvePath(n,a={}){return n instanceof URL||n.startsWith(`file://`)?normalize(fileURLToPath(n)):isAbsolute(n)?normalize(n):resolveModulePath(n,{...a,from:a.from||a.parent||a.url})}const Bm=new Map;async function readPackageJSON(n,a={}){let S=await resolvePackageJSON(n,a),C=a.cache&&typeof a.cache!=`boolean`?a.cache:Bm;if(a.cache&&C.has(S))return C.get(S);let N=await as.readFile(S,`utf8`),F;try{F=n$2(N)}catch{F=r$1(N)}return C.set(S,F),F}async function resolvePackageJSON(n=process.cwd(),a={}){return findNearestFile(`package.json`,{...a,startingFrom:_resolvePath(n,a)})}const A=n=>typeof n==`object`&&!!n,Vm=__name$1((n,a)=>Object.assign(Error(`[${n}]: ${a}`),{code:n}),`a`),Hm=`ERR_INVALID_PACKAGE_CONFIG`,Um=`ERR_INVALID_PACKAGE_TARGET`,Wm=/^\d+$/,Gm=/^(\.{1,2}|node_modules)$/i,Km=/\/|\\/;var qm=(n=>(n.Export=`exports`,n.Import=`imports`,n))(qm||{});const f=(n,a,S,C,N)=>{if(a==null)return[];if(typeof a==`string`){let[S,...C]=a.split(Km);if(S===`..`||C.some(n=>Gm.test(n)))throw Vm(Um,`Invalid "${n}" target "${a}" defined in the package config`);return[N?a.replace(/\*/g,N):a]}if(Array.isArray(a))return a.flatMap(a=>f(n,a,S,C,N));if(A(a)){for(let F of Object.keys(a)){if(Wm.test(F))throw Vm(Hm,`Cannot contain numeric property keys`);if(F===`default`||C.includes(F))return f(n,a[F],S,C,N)}return[]}throw Vm(Um,`Invalid "${n}" target "${a}"`)},m=(n,a)=>{let S=n.indexOf(`*`),C=a.indexOf(`*`);return S===C?a.length>n.length:C>S};function d(n,a){if(!a.includes(`*`)&&n.hasOwnProperty(a))return[a];let S,C;for(let N of Object.keys(n))if(N.includes(`*`)){let[n,F,I]=N.split(`*`);if(I===void 0&&a.startsWith(n)&&a.endsWith(F)){let I=a.slice(n.length,-F.length||void 0);I&&(!S||m(S,N))&&(S=N,C=I)}}return[S,C]}const p=n=>Object.keys(n).reduce((n,a)=>{let S=a===``||a[0]!==`.`;if(n===void 0||n===S)return S;throw Vm(Hm,`"exports" cannot contain some keys starting with "." and some not`)},void 0),Jm=/^\w+:/,v=(n,a,S)=>{if(!n)throw Error(`"exports" is required`);a=a===``?`.`:`./${a}`,(typeof n==`string`||Array.isArray(n)||A(n)&&p(n))&&(n={".":n});let[C,N]=d(n,a),F=f(qm.Export,n[C],a,S,N);if(F.length===0)throw Vm(`ERR_PACKAGE_PATH_NOT_EXPORTED`,a===`.`?`No "exports" main defined`:`Package subpath '${a}' is not defined by "exports"`);for(let n of F)if(!n.startsWith(`./`)&&!Jm.test(n))throw Vm(Um,`Invalid "exports" target "${n}" defined in the package config`);return F};Ho(),As(),zs(),kp();var Ym=Object.defineProperty,r=(n,a)=>Ym(n,`name`,{value:a,configurable:!0});function h$1(n){return n.startsWith(`\\\\?\\`)?n:n.replace(/\\/g,`/`)}__name$1(h$1,`h`),r(h$1,`slash`);const Xm=r(n=>{let a=ks[n];return(S,...C)=>{let N=`${n}:${C.join(`:`)}`,F=S?.get(N);return F===void 0&&(F=Reflect.apply(a,ks,C),S?.set(N,F)),F}},`cacheFs`),Zm=Xm(`existsSync`),Qm=Xm(`readFileSync`),$m=Xm(`statSync`),eh=r((n,a,S)=>{for(;;){let C=Vo.posix.join(n,a);if(Zm(S,C))return C;let N=Vo.dirname(n);if(N===n)return;n=N}},`findUp`),th=/^\.{1,2}(\/.*)?$/,nh=r(n=>{let a=h$1(n);return th.test(a)?a:`./${a}`},`normalizeRelativePath`);function Ne(n,a=!1){let S=n.length,C=0,N=``,F=0,I=16,H=0,W=0,K=0,q=0,Y=0;function _(a,S){let N=0,F=0;for(;N<a;){let a=n.charCodeAt(C);if(a>=48&&a<=57)F=F*16+a-48;else if(a>=65&&a<=70)F=F*16+a-65+10;else if(a>=97&&a<=102)F=F*16+a-97+10;else break;C++,N++}return N<a&&(F=-1),F}r(_,`scanHexDigits`);function v(n){C=n,N=``,F=0,I=16,Y=0}r(v,`setPosition`);function p(){let a=C;if(n.charCodeAt(C)===48)C++;else for(C++;C<n.length&&R(n.charCodeAt(C));)C++;if(C<n.length&&n.charCodeAt(C)===46)if(C++,C<n.length&&R(n.charCodeAt(C)))for(C++;C<n.length&&R(n.charCodeAt(C));)C++;else return Y=3,n.substring(a,C);let S=C;if(C<n.length&&(n.charCodeAt(C)===69||n.charCodeAt(C)===101))if(C++,(C<n.length&&n.charCodeAt(C)===43||n.charCodeAt(C)===45)&&C++,C<n.length&&R(n.charCodeAt(C))){for(C++;C<n.length&&R(n.charCodeAt(C));)C++;S=C}else Y=3;return n.substring(a,S)}r(p,`scanNumber`);function L(){let a=``,N=C;for(;;){if(C>=S){a+=n.substring(N,C),Y=2;break}let F=n.charCodeAt(C);if(F===34){a+=n.substring(N,C),C++;break}if(F===92){if(a+=n.substring(N,C),C++,C>=S){Y=2;break}switch(n.charCodeAt(C++)){case 34:a+=`"`;break;case 92:a+=`\\`;break;case 47:a+=`/`;break;case 98:a+=`\b`;break;case 102:a+=`\f`;break;case 110:a+=`
627
627
  `;break;case 114:a+=`\r`;break;case 116:a+=` `;break;case 117:let n=_(4);n>=0?a+=String.fromCharCode(n):Y=4;break;default:Y=5}N=C;continue}if(F>=0&&F<=31)if(J(F)){a+=n.substring(N,C),Y=2;break}else Y=6;C++}return a}r(L,`scanString`);function A(){if(N=``,Y=0,F=C,W=H,q=K,C>=S)return F=S,I=17;let a=n.charCodeAt(C);if(ee(a)){do C++,N+=String.fromCharCode(a),a=n.charCodeAt(C);while(ee(a));return I=15}if(J(a))return C++,N+=String.fromCharCode(a),a===13&&n.charCodeAt(C)===10&&(C++,N+=`
628
628
  `),H++,K=C,I=14;switch(a){case 123:return C++,I=1;case 125:return C++,I=2;case 91:return C++,I=3;case 93:return C++,I=4;case 58:return C++,I=6;case 44:return C++,I=5;case 34:return C++,N=L(),I=10;case 47:let W=C-1;if(n.charCodeAt(C+1)===47){for(C+=2;C<S&&!J(n.charCodeAt(C));)C++;return N=n.substring(W,C),I=12}if(n.charCodeAt(C+1)===42){C+=2;let a=S-1,F=!1;for(;C<a;){let a=n.charCodeAt(C);if(a===42&&n.charCodeAt(C+1)===47){C+=2,F=!0;break}C++,J(a)&&(a===13&&n.charCodeAt(C)===10&&C++,H++,K=C)}return F||(C++,Y=1),N=n.substring(W,C),I=13}return N+=String.fromCharCode(a),C++,I=16;case 45:if(N+=String.fromCharCode(a),C++,C===S||!R(n.charCodeAt(C)))return I=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return N+=p(),I=11;default:for(;C<S&&D(a);)C++,a=n.charCodeAt(C);if(F!==C){switch(N=n.substring(F,C),N){case`true`:return I=8;case`false`:return I=9;case`null`:return I=7}return I=16}return N+=String.fromCharCode(a),C++,I=16}}r(A,`scanNext`);function D(n){if(ee(n)||J(n))return!1;switch(n){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}r(D,`isUnknownContentCharacter`);function B(){let n;do n=A();while(n>=12&&n<=15);return n}return r(B,`scanNextNonTrivia`),{setPosition:v,getPosition:r(()=>C,`getPosition`),scan:a?B:A,getToken:r(()=>I,`getToken`),getTokenValue:r(()=>N,`getTokenValue`),getTokenOffset:r(()=>F,`getTokenOffset`),getTokenLength:r(()=>C-F,`getTokenLength`),getTokenStartLine:r(()=>W,`getTokenStartLine`),getTokenStartCharacter:r(()=>F-q,`getTokenStartCharacter`),getTokenError:r(()=>Y,`getTokenError`)}}r(Ne,`createScanner`);function ee(n){return n===32||n===9}r(ee,`isWhiteSpace`);function J(n){return n===10||n===13}r(J,`isLineBreak`);function R(n){return n>=48&&n<=57}r(R,`isDigit`);var rh;(function(n){n[n.lineFeed=10]=`lineFeed`,n[n.carriageReturn=13]=`carriageReturn`,n[n.space=32]=`space`,n[n._0=48]=`_0`,n[n._1=49]=`_1`,n[n._2=50]=`_2`,n[n._3=51]=`_3`,n[n._4=52]=`_4`,n[n._5=53]=`_5`,n[n._6=54]=`_6`,n[n._7=55]=`_7`,n[n._8=56]=`_8`,n[n._9=57]=`_9`,n[n.a=97]=`a`,n[n.b=98]=`b`,n[n.c=99]=`c`,n[n.d=100]=`d`,n[n.e=101]=`e`,n[n.f=102]=`f`,n[n.g=103]=`g`,n[n.h=104]=`h`,n[n.i=105]=`i`,n[n.j=106]=`j`,n[n.k=107]=`k`,n[n.l=108]=`l`,n[n.m=109]=`m`,n[n.n=110]=`n`,n[n.o=111]=`o`,n[n.p=112]=`p`,n[n.q=113]=`q`,n[n.r=114]=`r`,n[n.s=115]=`s`,n[n.t=116]=`t`,n[n.u=117]=`u`,n[n.v=118]=`v`,n[n.w=119]=`w`,n[n.x=120]=`x`,n[n.y=121]=`y`,n[n.z=122]=`z`,n[n.A=65]=`A`,n[n.B=66]=`B`,n[n.C=67]=`C`,n[n.D=68]=`D`,n[n.E=69]=`E`,n[n.F=70]=`F`,n[n.G=71]=`G`,n[n.H=72]=`H`,n[n.I=73]=`I`,n[n.J=74]=`J`,n[n.K=75]=`K`,n[n.L=76]=`L`,n[n.M=77]=`M`,n[n.N=78]=`N`,n[n.O=79]=`O`,n[n.P=80]=`P`,n[n.Q=81]=`Q`,n[n.R=82]=`R`,n[n.S=83]=`S`,n[n.T=84]=`T`,n[n.U=85]=`U`,n[n.V=86]=`V`,n[n.W=87]=`W`,n[n.X=88]=`X`,n[n.Y=89]=`Y`,n[n.Z=90]=`Z`,n[n.asterisk=42]=`asterisk`,n[n.backslash=92]=`backslash`,n[n.closeBrace=125]=`closeBrace`,n[n.closeBracket=93]=`closeBracket`,n[n.colon=58]=`colon`,n[n.comma=44]=`comma`,n[n.dot=46]=`dot`,n[n.doubleQuote=34]=`doubleQuote`,n[n.minus=45]=`minus`,n[n.openBrace=123]=`openBrace`,n[n.openBracket=91]=`openBracket`,n[n.plus=43]=`plus`,n[n.slash=47]=`slash`,n[n.formFeed=12]=`formFeed`,n[n.tab=9]=`tab`})(rh||={}),Array(20).fill(0).map((n,a)=>` `.repeat(a)),Array(200).fill(0).map((n,a)=>`
629
629
  `+` `.repeat(a)),Array(200).fill(0).map((n,a)=>`\r`+` `.repeat(a)),Array(200).fill(0).map((n,a)=>`\r
630
630
  `+` `.repeat(a)),Array(200).fill(0).map((n,a)=>`
631
631
  `+` `.repeat(a)),Array(200).fill(0).map((n,a)=>`\r`+` `.repeat(a)),Array(200).fill(0).map((n,a)=>`\r
632
- `+` `.repeat(a));var ih;(function(n){n.DEFAULT={allowTrailingComma:!1}})(ih||={});function Pe(n,a=[],S=ih.DEFAULT){let C=null,N=[],F=[];function i(n){Array.isArray(N)?N.push(n):C!==null&&(N[C]=n)}return r(i,`onValue`),We(n,{onObjectBegin:r(()=>{let n={};i(n),F.push(N),N=n,C=null},`onObjectBegin`),onObjectProperty:r(n=>{C=n},`onObjectProperty`),onObjectEnd:r(()=>{N=F.pop()},`onObjectEnd`),onArrayBegin:r(()=>{let n=[];i(n),F.push(N),N=n,C=null},`onArrayBegin`),onArrayEnd:r(()=>{N=F.pop()},`onArrayEnd`),onLiteralValue:i,onError:r((n,S,C)=>{a.push({error:n,offset:S,length:C})},`onError`)},S),N[0]}r(Pe,`parse$1`);function We(n,a,S=ih.DEFAULT){let C=Ne(n,!1),N=[],F=0;function i(n){return n?()=>F===0&&n(C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter()):()=>!0}r(i,`toNoArgVisit`);function f(n){return n?a=>F===0&&n(a,C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter()):()=>!0}r(f,`toOneArgVisit`);function u(n){return n?a=>F===0&&n(a,C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter(),()=>N.slice()):()=>!0}r(u,`toOneArgVisitWithPath`);function g(n){return n?()=>{F>0?F++:n(C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter(),()=>N.slice())===!1&&(F=1)}:()=>!0}r(g,`toBeginVisit`);function w(n){return n?()=>{F>0&&F--,F===0&&n(C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter())}:()=>!0}r(w,`toEndVisit`);let I=g(a.onObjectBegin),H=u(a.onObjectProperty),W=w(a.onObjectEnd),K=g(a.onArrayBegin),q=w(a.onArrayEnd),Y=u(a.onLiteralValue),X=f(a.onSeparator),te=i(a.onComment),ne=f(a.onError),re=S&&S.disallowComments,ie=S&&S.allowTrailingComma;function T(){for(;;){let n=C.scan();switch(C.getTokenError()){case 4:k(14);break;case 5:k(15);break;case 3:k(13);break;case 1:re||k(11);break;case 2:k(12);break;case 6:k(16);break}switch(n){case 12:case 13:re?k(10):te();break;case 16:k(1);break;case 15:case 14:break;default:return n}}}r(T,`scanNext`);function k(n,a=[],S=[]){if(ne(n),a.length+S.length>0){let n=C.getToken();for(;n!==17;){if(a.indexOf(n)!==-1){T();break}else if(S.indexOf(n)!==-1)break;n=T()}}}r(k,`handleError`);function P(n){let a=C.getTokenValue();return n?Y(a):(H(a),N.push(a)),T(),!0}r(P,`parseString`);function M(){switch(C.getToken()){case 11:let n=C.getTokenValue(),a=Number(n);isNaN(a)&&(k(2),a=0),Y(a);break;case 7:Y(null);break;case 8:Y(!0);break;case 9:Y(!1);break;default:return!1}return T(),!0}r(M,`parseLiteral`);function V(){return C.getToken()===10?(P(!1),C.getToken()===6?(X(`:`),T(),U()||k(4,[],[2,5])):k(5,[],[2,5]),N.pop(),!0):(k(3,[],[2,5]),!1)}r(V,`parseProperty`);function z(){I(),T();let n=!1;for(;C.getToken()!==2&&C.getToken()!==17;){if(C.getToken()===5){if(n||k(4,[],[]),X(`,`),T(),C.getToken()===2&&ie)break}else n&&k(6,[],[]);V()||k(4,[],[2,5]),n=!0}return W(),C.getToken()===2?T():k(7,[2],[]),!0}r(z,`parseObject`);function G(){K(),T();let n=!0,a=!1;for(;C.getToken()!==4&&C.getToken()!==17;){if(C.getToken()===5){if(a||k(4,[],[]),X(`,`),T(),C.getToken()===4&&ie)break}else a&&k(6,[],[]);n?(N.push(0),n=!1):N[N.length-1]++,U()||k(4,[],[4,5]),a=!0}return q(),n||N.pop(),C.getToken()===4?T():k(8,[4],[]),!0}r(G,`parseArray`);function U(){switch(C.getToken()){case 3:return G();case 1:return z();case 10:return P(!0);default:return M()}}return r(U,`parseValue`),T(),C.getToken()===17?S.allowEmptyContent?!0:(k(4,[],[]),!1):U()?(C.getToken()!==17&&k(9,[],[]),!0):(k(4,[],[]),!1)}r(We,`visit`);var ah;(function(n){n[n.None=0]=`None`,n[n.UnexpectedEndOfComment=1]=`UnexpectedEndOfComment`,n[n.UnexpectedEndOfString=2]=`UnexpectedEndOfString`,n[n.UnexpectedEndOfNumber=3]=`UnexpectedEndOfNumber`,n[n.InvalidUnicode=4]=`InvalidUnicode`,n[n.InvalidEscapeCharacter=5]=`InvalidEscapeCharacter`,n[n.InvalidCharacter=6]=`InvalidCharacter`})(ah||={});var oh;(function(n){n[n.OpenBraceToken=1]=`OpenBraceToken`,n[n.CloseBraceToken=2]=`CloseBraceToken`,n[n.OpenBracketToken=3]=`OpenBracketToken`,n[n.CloseBracketToken=4]=`CloseBracketToken`,n[n.CommaToken=5]=`CommaToken`,n[n.ColonToken=6]=`ColonToken`,n[n.NullKeyword=7]=`NullKeyword`,n[n.TrueKeyword=8]=`TrueKeyword`,n[n.FalseKeyword=9]=`FalseKeyword`,n[n.StringLiteral=10]=`StringLiteral`,n[n.NumericLiteral=11]=`NumericLiteral`,n[n.LineCommentTrivia=12]=`LineCommentTrivia`,n[n.BlockCommentTrivia=13]=`BlockCommentTrivia`,n[n.LineBreakTrivia=14]=`LineBreakTrivia`,n[n.Trivia=15]=`Trivia`,n[n.Unknown=16]=`Unknown`,n[n.EOF=17]=`EOF`})(oh||={});const sh=Pe;var ch;(function(n){n[n.InvalidSymbol=1]=`InvalidSymbol`,n[n.InvalidNumberFormat=2]=`InvalidNumberFormat`,n[n.PropertyNameExpected=3]=`PropertyNameExpected`,n[n.ValueExpected=4]=`ValueExpected`,n[n.ColonExpected=5]=`ColonExpected`,n[n.CommaExpected=6]=`CommaExpected`,n[n.CloseBraceExpected=7]=`CloseBraceExpected`,n[n.CloseBracketExpected=8]=`CloseBracketExpected`,n[n.EndOfFileExpected=9]=`EndOfFileExpected`,n[n.InvalidCommentToken=10]=`InvalidCommentToken`,n[n.UnexpectedEndOfComment=11]=`UnexpectedEndOfComment`,n[n.UnexpectedEndOfString=12]=`UnexpectedEndOfString`,n[n.UnexpectedEndOfNumber=13]=`UnexpectedEndOfNumber`,n[n.InvalidUnicode=14]=`InvalidUnicode`,n[n.InvalidEscapeCharacter=15]=`InvalidEscapeCharacter`,n[n.InvalidCharacter=16]=`InvalidCharacter`})(ch||={});const lh=r((n,a)=>sh(Qm(a,n,`utf8`)),`readJsonc`),uh=Symbol(`implicitBaseUrl`),dh="${configDir}",fh=r(()=>{let{findPnpApi:n}=Rs;return n&&n(process.cwd())},`getPnpApi`),ph=r((n,a,S,C)=>{let N=`resolveFromPackageJsonPath:${n}:${a}:${S}`;if(C!=null&&C.has(N))return C.get(N);let F=lh(n,C);if(!F)return;let I=a||`tsconfig.json`;if(!S&&F.exports)try{let[n]=v(F.exports,a,[`require`,`types`]);I=n}catch{return!1}else !a&&F.tsconfig&&(I=F.tsconfig);return I=Vo.join(n,`..`,I),C?.set(N,I),I},`resolveFromPackageJsonPath`),mh=`package.json`,hh=`tsconfig.json`,gh=r((n,a,S)=>{let C=n;if(n===`..`&&(C=Vo.join(C,hh)),n[0]===`.`&&(C=Vo.resolve(a,C)),Vo.isAbsolute(C)){if(Zm(S,C)){if($m(S,C).isFile())return C}else if(!C.endsWith(`.json`)){let n=`${C}.json`;if(Zm(S,n))return n}return}let[N,...F]=n.split(`/`),I=N[0]===`@`?`${N}/${F.shift()}`:N,H=F.join(`/`),W=fh();if(W){let{resolveRequest:C}=W;try{if(I===n){let n=C(Vo.join(I,mh),a);if(n){let a=ph(n,H,!1,S);if(a&&Zm(S,a))return a}}else{let S;try{S=C(n,a,{extensions:[`.json`]})}catch{S=C(Vo.join(n,hh),a)}if(S)return S}}catch{}}let K=eh(Vo.resolve(a),Vo.join(`node_modules`,I),S);if(!K||!$m(S,K).isDirectory())return;let q=Vo.join(K,mh);if(Zm(S,q)){let n=ph(q,H,!1,S);if(n===!1)return;if(n&&Zm(S,n)&&$m(S,n).isFile())return n}let Y=Vo.join(K,H),X=Y.endsWith(`.json`);if(!X){let n=`${Y}.json`;if(Zm(S,n))return n}if(Zm(S,Y)){if($m(S,Y).isDirectory()){let n=Vo.join(Y,mh);if(Zm(S,n)){let a=ph(n,``,!0,S);if(a&&Zm(S,a))return a}let a=Vo.join(Y,hh);if(Zm(S,a))return a}else if(X)return Y}},`resolveExtendsPath`),vh=r((n,a)=>nh(Vo.relative(n,a)),`pathRelative`),yh=[`files`,`include`,`exclude`],bh=r((n,a,S)=>{let C=Vo.join(a,S);return h$1(Vo.relative(n,C))||`./`},`resolveAndRelativize`),xh=r((n,a,S)=>{let C=Vo.relative(n,a);return C?h$1(`${C}/${S.startsWith(`./`)?S.slice(2):S}`):S},`prefixPattern`),Sh=r((n,a,S,C)=>{let N=gh(n,a,C);if(!N)throw Error(`File '${n}' not found.`);if(S.has(N))throw Error(`Circularity detected while resolving configuration: ${N}`);S.add(N);let F=Vo.dirname(N),I=wh(N,C,S);delete I.references;let{compilerOptions:H}=I;if(H){let{baseUrl:n}=H;n&&!n.startsWith(dh)&&(H.baseUrl=bh(a,F,n));let{outDir:S}=H;S&&!S.startsWith(dh)&&(H.outDir=bh(a,F,S));let{declarationDir:C}=H;C&&!C.startsWith(dh)&&(H.declarationDir=bh(a,F,C));let{rootDir:N}=H;N&&!N.startsWith(dh)&&(H.rootDir=bh(a,F,N));let{rootDirs:I}=H;I&&(H.rootDirs=I.map(n=>n.startsWith(dh)?n:bh(a,F,n)));let{typeRoots:W}=H;W&&(H.typeRoots=W.map(n=>n.startsWith(dh)?n:bh(a,F,n)))}for(let n of yh){let S=I[n];S&&(I[n]=S.map(n=>n.startsWith(dh)?n:xh(a,F,n)))}return I},`resolveExtends`),Ch=[`outDir`,`declarationDir`],wh=r((n,a,S=new Set)=>{let C;try{C=lh(n,a)||{}}catch{throw Error(`Cannot resolve tsconfig at path: ${n}`)}if(typeof C!=`object`)throw SyntaxError(`Failed to parse tsconfig at: ${n}`);let N=Vo.dirname(n);if(C.compilerOptions){let{compilerOptions:n}=C;n.paths&&!n.baseUrl&&(n[uh]=N)}if(C.extends){let n=Array.isArray(C.extends)?C.extends:[C.extends];delete C.extends;for(let F of n.reverse()){let n=Sh(F,N,new Set(S),a),I={...n,...C,compilerOptions:{...n.compilerOptions,...C.compilerOptions}};n.watchOptions&&(I.watchOptions={...n.watchOptions,...C.watchOptions}),C=I}}if(C.compilerOptions){let{compilerOptions:n}=C;for(let a of[`baseUrl`,`rootDir`]){let S=n[a];S&&!S.startsWith(dh)&&(n[a]=vh(N,Vo.resolve(N,S)))}for(let a of Ch){let S=n[a];S&&(Array.isArray(C.exclude)||(C.exclude=Ch.map(a=>n[a]).filter(Boolean)),S.startsWith(dh)||(S=nh(S)),n[a]=S)}}else C.compilerOptions={};if(C.include&&=C.include.map(h$1),C.files&&=C.files.map(n=>n.startsWith(dh)?n:nh(n)),C.watchOptions){let{watchOptions:n}=C;n.excludeDirectories&&=n.excludeDirectories.map(n=>h$1(Vo.resolve(N,n))),n.excludeFiles&&=n.excludeFiles.map(n=>h$1(Vo.resolve(N,n))),n.watchFile&&=n.watchFile.toLowerCase(),n.watchDirectory&&=n.watchDirectory.toLowerCase(),n.fallbackPolling&&=n.fallbackPolling.toLowerCase()}return C},`_parseTsconfig`),Th=r((n,a)=>{if(n.startsWith(dh))return h$1(Vo.join(a,n.slice(12)))},`interpolateConfigDir`),Eh=[`outDir`,`declarationDir`,`outFile`,`rootDir`,`baseUrl`,`tsBuildInfoFile`],Dh=r(n=>{if(n.strict)for(let a of[`noImplicitAny`,`noImplicitThis`,`strictNullChecks`,`strictFunctionTypes`,`strictBindCallApply`,`strictPropertyInitialization`,`strictBuiltinIteratorReturn`,`alwaysStrict`,`useUnknownInCatchVariables`])n[a]===void 0&&(n[a]=!0);if(n.composite&&(n.declaration??=!0,n.incremental??=!0),n.target){let a=n.target.toLowerCase();a===`es2015`&&(a=`es6`),n.target=a,a===`esnext`&&(n.module??=`es6`,n.useDefineForClassFields??=!0),(a===`es6`||a===`es2016`||a===`es2017`||a===`es2018`||a===`es2019`||a===`es2020`||a===`es2021`||a===`es2022`||a===`es2023`||a===`es2024`)&&(n.module??=`es6`),(a===`es2022`||a===`es2023`||a===`es2024`)&&(n.useDefineForClassFields??=!0)}if(n.module){let a=n.module.toLowerCase();if(a===`es2015`&&(a=`es6`),n.module=a,(a===`es6`||a===`es2020`||a===`es2022`||a===`esnext`||a===`none`||a===`system`||a===`umd`||a===`amd`)&&(n.moduleResolution??=`classic`),a===`system`&&(n.allowSyntheticDefaultImports??=!0),(a===`node16`||a===`node18`||a===`node20`||a===`nodenext`||a===`preserve`)&&(n.esModuleInterop??=!0,n.allowSyntheticDefaultImports??=!0),(a===`node16`||a===`node18`||a===`node20`||a===`nodenext`)&&(n.moduleDetection??=`force`),a===`node16`&&(n.target??=`es2022`,n.moduleResolution??=`node16`),a===`node18`&&(n.target??=`es2022`,n.moduleResolution??=`node16`),a===`node20`&&(n.target??=`es2023`,n.moduleResolution??=`node16`,n.resolveJsonModule??=!0),a===`nodenext`&&(n.target??=`esnext`,n.moduleResolution??=`nodenext`,n.resolveJsonModule??=!0),a===`node16`||a===`node18`||a===`node20`||a===`nodenext`){let a=n.target;(a===`es3`||a===`es2022`||a===`es2023`||a===`es2024`||a===`esnext`)&&(n.useDefineForClassFields??=!0)}a===`preserve`&&(n.moduleResolution??=`bundler`)}if(n.moduleResolution){let a=n.moduleResolution.toLowerCase();a===`node`&&(a=`node10`),n.moduleResolution=a,(a===`node16`||a===`nodenext`||a===`bundler`)&&(n.resolvePackageJsonExports??=!0,n.resolvePackageJsonImports??=!0),a===`bundler`&&(n.allowSyntheticDefaultImports??=!0,n.resolveJsonModule??=!0)}n.jsx&&=n.jsx.toLowerCase(),n.moduleDetection&&=n.moduleDetection.toLowerCase(),n.importsNotUsedAsValues&&=n.importsNotUsedAsValues.toLowerCase(),n.newLine&&=n.newLine.toLowerCase(),n.esModuleInterop&&(n.allowSyntheticDefaultImports??=!0),n.verbatimModuleSyntax&&(n.isolatedModules??=!0,n.preserveConstEnums??=!0),n.isolatedModules&&(n.preserveConstEnums??=!0),n.rewriteRelativeImportExtensions&&(n.allowImportingTsExtensions??=!0),n.lib&&=n.lib.map(n=>n.toLowerCase()),n.checkJs&&(n.allowJs??=!0)},`normalizeCompilerOptions`),Oh=r((n,a=new Map)=>{let S=Vo.resolve(n),C=wh(S,a),N=Vo.dirname(S),{compilerOptions:F}=C;if(F){for(let n of Eh){let a=F[n];if(a){let S=Th(a,N);F[n]=S?vh(N,S):a}}for(let n of[`rootDirs`,`typeRoots`]){let a=F[n];a&&(F[n]=a.map(n=>{let a=Th(n,N);return a?vh(N,a):nh(n)}))}let{paths:n}=F;if(n)for(let a of Object.keys(n))n[a]=n[a].map(n=>Th(n,N)??n);Dh(F)}for(let n of yh){let a=C[n];a&&(C[n]=a.map(n=>Th(n,N)??n))}return C},`parseTsconfig`);var kh=Object.defineProperty,Ah=r((n,a)=>kh(n,`name`,{value:a,configurable:!0}),`s`);const jh=Ah(n=>{let a=``;for(let S=0;S<n.length;S+=1){let C=n[S],N=C.toUpperCase();a+=C===N?C.toLowerCase():N}return a},`invertCase`),Mh=new Map,Nh=Ah((n,a)=>{let S=Vo.join(n,`.is-fs-case-sensitive-test-${process.pid}`);try{return a.writeFileSync(S,``),!a.existsSync(jh(S))}finally{try{a.unlinkSync(S)}catch{}}},`checkDirectoryCaseWithWrite`),Ph=Ah((n,a,S)=>{try{return Nh(n,S)}catch(n){if(a===void 0)return Nh(Op.tmpdir(),S);throw n}},`checkDirectoryCaseWithFallback`),Fh=Ah((n,a=ks,S=!0)=>{let C=n??process.cwd();if(S&&Mh.has(C))return Mh.get(C);let N,F=jh(C);return N=F!==C&&a.existsSync(C)?!a.existsSync(F):Ph(C,n,a),S&&Mh.set(C,N),N},`isFsCaseSensitive`),{join:Ih}=Vo.posix,Lh={ts:[`.ts`,`.tsx`,`.d.ts`],cts:[`.cts`,`.d.cts`],mts:[`.mts`,`.d.mts`]},Rh=r(n=>{let a=[...Lh.ts],S=[...Lh.cts],C=[...Lh.mts];return n!=null&&n.allowJs&&(a.push(`.js`,`.jsx`),S.push(`.cjs`),C.push(`.mjs`)),[...a,...S,...C]},`getSupportedExtensions`),zh=r(n=>{let a=[];if(!n)return a;let{outDir:S,declarationDir:C}=n;return S&&a.push(S),C&&a.push(C),a},`getDefaultExcludeSpec`),Bh=r(n=>n.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),`escapeForRegexp`),Vh=`(?!(${[`node_modules`,`bower_components`,`jspm_packages`].join(`|`)})(/|$))`,Hh=/(?:^|\/)[^.*?]+$/,Uh=`**/*`,Wh=`[^/]`,Gh=`[^./]`,Kh=process.platform===`win32`,qh=r(({config:n,path:a},S=Fh())=>{if(`extends`in n)throw Error(`tsconfig#extends must be resolved. Use getTsconfig or parseTsconfig to resolve it.`);if(!Vo.isAbsolute(a))throw Error(`The tsconfig path must be absolute`);Kh&&(a=h$1(a));let C=Vo.dirname(a),{files:N,include:F,exclude:I,compilerOptions:H}=n,W=r(n=>Vo.isAbsolute(n)?n:Ih(C,n),`resolvePattern`),K=N?.map(W),q=Rh(H),Y=S?``:`i`,X=(I||zh(H)).map(n=>{let a=Bh(W(n)).replaceAll(String.raw`\*\*/`,`(.+/)?`).replaceAll(String.raw`\*`,`${Wh}*`).replaceAll(String.raw`\?`,Wh);return RegExp(`^${a}($|/)`,Y)}),te=N||F?F:[Uh],ne=te?te.map(n=>{let a=W(n);Hh.test(a)&&(a=Ih(a,Uh));let S=Bh(a).replaceAll(String.raw`/\*\*`,`(/${Vh}${Gh}${Wh}*)*?`).replaceAll(/(\/)?\\\*/g,(n,a)=>{let S=`(${Gh}|(\\.(?!min\\.js$))?)*`;return a?`/${Vh}${Gh}${S}`:S}).replaceAll(/(\/)?\\\?/g,(n,a)=>{let S=Wh;return a?`/${Vh}${S}`:S});return RegExp(`^${S}$`,Y)}):void 0;return a=>{if(!Vo.isAbsolute(a))throw Error(`filePath must be absolute`);if(Kh&&(a=h$1(a)),K!=null&&K.includes(a)||!(!q.some(n=>a.endsWith(n))||X.some(n=>n.test(a)))&&ne&&ne.some(n=>n.test(a)))return n}},`createFilesMatcher`),Jh=r((n,a,S)=>{let C=Vo.resolve(n),N=h$1(n);for(;;){let n=eh(N,a,S);if(!n)return;let F=Vo.resolve(n),I=Oh(F,S),H={path:h$1(F),config:I};if(qh(H)(C))return H;let W=Vo.dirname(n),K=Vo.dirname(W);if(K===W)return;N=K}},`findConfigApplicable`),Yh=r((n=process.cwd(),a=`tsconfig.json`,S=new Map,C=!1)=>C?Jh(n,a,S)?.path:eh(h$1(n),a,S),`findTsconfig`),Xh=r((n=process.cwd(),a=`tsconfig.json`,S=new Map,C=!1)=>{if(!C){let C=Yh(n,a,S);return C?{path:C,config:Oh(C,S)}:null}return Jh(n,a,S)??null},`getTsconfig`),Zh=/\*/g,Qh=r((n,a)=>{let S=n.match(Zh);if(S&&S.length>1)throw Error(a)},`assertStarCount`),$h=r(n=>{if(n.includes(`*`)){let[a,S]=n.split(`*`);return{prefix:a,suffix:S}}return n},`parsePattern`),eg=r(({prefix:n,suffix:a},S)=>S.startsWith(n)&&S.endsWith(a),`isPatternMatch`),tg=r((n,a,S)=>Object.entries(n).map(([n,C])=>(Qh(n,`Pattern '${n}' can have at most one '*' character.`),{pattern:$h(n),substitutions:C.map(C=>{if(Qh(C,`Substitution '${C}' in pattern '${n}' can have at most one '*' character.`),!a&&!th.test(C)&&!Vo.isAbsolute(C))throw Error(`Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?`);return Vo.resolve(S,C)})})),`parsePaths`);r(n=>{let{compilerOptions:a}=n.config;if(!a)return null;let{baseUrl:S,paths:C}=a;if(!S&&!C)return null;let N=uh in a&&a[uh],F=Vo.resolve(Vo.dirname(n.path),S||N||`.`),I=C?tg(C,S,F):[];return n=>{if(th.test(n))return[];let a=[];for(let S of I){if(S.pattern===n)return S.substitutions.map(h$1);typeof S.pattern!=`string`&&a.push(S)}let C,N=-1;for(let S of a)eg(S.pattern,n)&&S.pattern.prefix.length>N&&(N=S.pattern.prefix.length,C=S);if(!C)return S?[h$1(Vo.join(F,n))]:[];let H=n.slice(C.pattern.prefix.length,n.length-C.pattern.suffix.length);return C.substitutions.map(n=>h$1(n.replace(`*`,H)))}},`createPathsMatcher`),Ie();function defaultSearchPlaces(n){return[`package.json`,`.${n}rc`,`.${n}rc.json`,`.${n}rc.yaml`,`.${n}rc.yml`,`.${n}rc.js`,`.${n}rc.ts`,`.${n}rc.mjs`,`.${n}rc.cjs`,`${n}.config.js`,`${n}.config.ts`,`${n}.config.mjs`,`${n}.config.cjs`]}function merge(n,...a){for(let S of a)if(S)for(let a of Object.keys(S)){let C=n[a],N=S[a];N!==void 0&&(isPlainObject$1(C)&&isPlainObject$1(N)?merge(C,N):n[a]=N)}return n}function isPlainObject$1(n){return typeof n==`object`&&!!n&&!Array.isArray(n)&&Object.getPrototypeOf(n)===Object.prototype}__name$1(isPlainObject$1,`isPlainObject`);function readDottedPath(n,a){if(!a.includes(`.`))return n[a];let S=n;for(let n of a.split(`.`)){if(typeof S!=`object`||!S)return;S=S[n]}return S}var Config=class{loadOptions={};constructor(n={}){Object.keys(n).length&&(this.loadOptions=n)}async load(n){let a=await(0,im.cosmiconfig)(Pu,{...this.loadOptions,searchPlaces:(this.loadOptions.searchPlaces??defaultSearchPlaces(`gjsify`)).filter(n=>n!==`package.json`)}).search(n),S={};try{let a=await this.readPackageJSON(n);isPlainObject$1(a?.gjsify)&&merge(S,a.gjsify)}catch{}return a?.config&&isPlainObject$1(a.config)&&merge(S,a.config),S.bundler||={},S.library||={},S.typescript||={},{config:S,filepath:a?.filepath??``,isEmpty:!a&&Object.keys(S).length===3}}async readPackageJSON(n){return n=await resolvePackageJSON(n),await readPackageJSON(n)}async readTSConfig(n){return Xh(n)?.config||{}}async forBuild(n){let a=await this.load(process.cwd()),S={...a.config},C=a.filepath||process.cwd(),N=await this.readPackageJSON(C),F=await this.readTSConfig(C);if(F.reflection||=n.reflection,S.verbose=n.verbose||!1,S.exclude=n.exclude||[],n.consoleShim!==void 0&&(S.consoleShim=n.consoleShim),n.globals!==void 0&&(S.globals=n.globals),n.shebang!==void 0&&(S.shebang=n.shebang),n.excludeGlobals){let a=(Array.isArray(n.excludeGlobals)?n.excludeGlobals.join(`,`):String(n.excludeGlobals)).split(`,`).map(n=>n.trim()).filter(Boolean);a.length&&(S.excludeGlobals=[...S.excludeGlobals??[],...a])}merge(S.library??={},N,S.library),merge(S.typescript??={},F,S.typescript);let parseKvPairs=(n,a)=>{let S={};for(let C of n){let n=C.indexOf(`=`);if(n===-1)throw Error(`Invalid --${a} value '${C}'. Expected KEY=VALUE.`);let N=C.slice(0,n).trim(),F=C.slice(n+1);if(!N)throw Error(`Invalid --${a} value '${C}'. Empty key.`);S[N]=F}return S},I=parseKvPairs(n.define??[],`define`),H=parseKvPairs(n.alias??[],`alias`);Object.keys(H).length&&(S.aliases={...S.aliases??{},...H});let W={};if(S.defineFromPackageJson)for(let[n,a]of Object.entries(S.defineFromPackageJson)){if(!a||typeof a.field!=`string`||!a.field)throw Error(`gjsify config: defineFromPackageJson["${n}"] is missing a "field" string`);let S=readDottedPath(N,a.field);W[n]=S===void 0?`undefined`:JSON.stringify(S)}let K={};if(S.defineFromEnv)for(let[n,a]of Object.entries(S.defineFromEnv)){if(!a||typeof a.env!=`string`||!a.env)throw Error(`gjsify config: defineFromEnv["${n}"] is missing an "env" string`);let S=process.env[a.env],C=S===void 0?a.default:S;K[n]=C===void 0?`undefined`:JSON.stringify(C)}let q=S.bundler??={},Y=q.output??={},X=q.transform??={};return n.entryPoints?.length&&(q.input=n.entryPoints),q.input||=[`src/index.ts`],n.outfile!==void 0&&(Y.file=n.outfile),n.outdir!==void 0&&(Y.dir=n.outdir),n.format!==void 0&&(Y.format=n.format),n.minify!==void 0&&(Y.minify=n.minify),Y.minify===void 0&&(Y.minify=!0),Y.minify===!0&&(Y.keepNames=!0),n.logLevel&&(q.logLevel={silent:`silent`,error:`warn`,warning:`warn`,warn:`warn`,info:`info`,debug:`debug`,verbose:`debug`}[n.logLevel]??`warn`),n.external?.length&&(q.external=[...Array.isArray(q.external)?q.external:[],...n.external]),(Object.keys(I).length||Object.keys(W).length||Object.keys(K).length)&&(X.define={...X.define??{},...W,...K,...I}),S.verbose&&Fe.debug(`configData`,S),S}};Ie(),As(),Ho(),zs(),rn();async function loadNpmRolldown(){return(await import(`rolldown`)).rolldown}async function bundleToChunks(n){if(await shouldUseNative()){let a=await tryLoadNative();if(!a)throw Error(`@gjsify/rolldown-native not loadable`);let S=n.rolldownInput.plugins??[],C=[];for(let n of S)isPluginObject(n)&&C.push(toNativePlugin(n));let N=liftTransformExtras(stripUnserializable({...n.rolldownInput,input:normalizeInputForNative(n.rolldownInput.input),format:n.format}));delete N.plugins;let F=await a.bundleWithPlugins(N,C),I=[];for(let n of F.output)n.type===`chunk`&&I.push(n.code);return I}let a=await(await loadNpmRolldown())(n.rolldownInput);try{let S=await a.generate({format:n.format,minify:!1,sourcemap:!1}),C=[];for(let n of S.output)n.type===`chunk`&&C.push(n.code);return C}finally{await a.close()}}async function runWatch(n){if(await shouldUseNative())throw Error("`gjsify build --watch` requires the npm `rolldown` engine. The native engine (`@gjsify/rolldown-native`) does not expose a watcher API. Run the watch loop under Node (`node lib/index.js build … --watch`) or set `GJSIFY_BUNDLER=npm`.");let a=await import(`rolldown`),S=n.output??{};return a.watch({...n,output:S})}async function runBundle(n){if(await shouldUseNative())return await runNativeBundle(n);let a=await(await loadNpmRolldown())(n);try{return await a.write(n.output??{})}finally{await a.close()}}let ng=null;async function shouldUseNative(){let n=(globalThis.process?.env??{}).GJSIFY_BUNDLER;if(n===`npm`)return!1;if(n===`native`){if(!await tryLoadNative())throw Error(`GJSIFY_BUNDLER=native but @gjsify/rolldown-native is not loadable (no prebuild for this architecture, or not running under GJS).`);return!0}return globalThis.imports?.gi===void 0?!1:await tryLoadNative()!==null}async function tryLoadNative(){return ng||(ng=(async()=>{let n=globalThis.imports?.gi!==void 0;if(!n)return null;try{let a=`@gjsify/rolldown-native`,S=a;n&&(S=pathToFileURL(createRequire(import.meta.url).resolve(a)).href);let C=await import(S);return C.hasNativeRolldown()?C:null}catch{return null}})(),ng)}async function runNativeBundle(n){let a=await tryLoadNative();if(!a)throw Error(`@gjsify/rolldown-native not loadable`);let S=n.plugins??[],C=[];for(let n of S)isPluginObject(n)&&C.push(toNativePlugin(n));let{output:N,plugins:F,...I}=n,H=liftTransformExtras(stripUnserializable({...I,...N??{},input:normalizeInputForNative(n.input)}));globalThis.process?.env?.GJSIFY_DEBUG_NATIVE_OPTS&&Fe.error(`[gjsify-bundler-pick] native opts JSON:`,JSON.stringify(H));let W=await a.bundleWithPlugins(H,C),K=n.output??{},q=K.dir??(K.file?Po(K.file):process.cwd());q&&await as.mkdir(q,{recursive:!0});for(let n of W.output)if(n.type===`chunk`){let a=K.file&&W.output.length===1?K.file:jo(q,n.fileName);await as.writeFile(a,n.code,`utf8`)}return synthRolldownOutput(W)}function stripUnserializable(n){let a={};for(let[S,C]of Object.entries(n))typeof C!=`function`&&(S===`sourcemap`&&typeof C==`boolean`||(a[S]=C));return a}function liftTransformExtras(n){let a=n.transform;if(!a)return n;let S={},C={...a};for(let n of[`define`,`inject`])n in C&&(S[n]=C[n],delete C[n]);return S.inject!==void 0&&!Array.isArray(S.inject)&&(S.inject=mapToInjectArray(S.inject)),{...n,transform:Object.keys(C).length===0?void 0:C,...S}}function mapToInjectArray(n){let a=[];for(let[S,C]of Object.entries(n))if(typeof C==`string`)a.push({type:`default`,from:C,alias:S});else{let[n,N]=C;a.push({type:`named`,from:n,imported:N,alias:S})}return a}function normalizeInputForNative(n){return n===void 0?[]:typeof n==`string`?[{import:n}]:Array.isArray(n)?n.map(n=>typeof n==`string`?{import:n}:n):Object.entries(n).map(([n,a])=>({name:n,import:a}))}function isPluginObject(n){return typeof n==`object`&&!!n&&!Array.isArray(n)}function pickHook(n){if(typeof n==`function`)return{fn:n};if(typeof n==`object`&&n&&`handler`in n){let a=n,S=filterToRegexSource(a.filter?.id),C={fn:a.handler};return S!==void 0&&(C.idFilter=S),C}}function filterToRegexSource(n){if(n!==void 0){if(Array.isArray(n)){let a=n.map(oneToSource).filter(n=>n!==void 0);return a.length===0?void 0:a.length===1?a[0]:`(?:${a.join(`|`)})`}return oneToSource(n)}}function oneToSource(n){if(n instanceof RegExp)return n.source;if(typeof n==`string`)return n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function toNativePlugin(n){let a={name:typeof n.name==`string`?n.name:`unnamed-plugin`},S={},C=pickHook(n.load);C&&(a.load=C.fn,C.idFilter&&(S.load=C.idFilter));let N=pickHook(n.transform);N&&(a.transform=N.fn,N.idFilter&&(S.transform=N.idFilter));let F=pickHook(n.resolveId);F&&(a.resolveId=F.fn,F.idFilter&&(S.resolveId=F.idFilter));let I=pickHook(n.renderChunk);I&&(a.renderChunk=I.fn);let H=pickHook(n.banner);H&&(a.banner=H.fn);let W=pickHook(n.footer);W&&(a.footer=W.fn);let K=pickHook(n.intro);K&&(a.intro=K.fn);let q=pickHook(n.outro);q&&(a.outro=q.fn);let Y=pickHook(n.buildStart);Y&&(a.buildStart=Y.fn);let X=pickHook(n.buildEnd);X&&(a.buildEnd=X.fn);let te=pickHook(n.generateBundle);te&&(a.generateBundle=te.fn);let ne=pickHook(n.writeBundle);ne&&(a.writeBundle=ne.fn);let re=pickHook(n.closeBundle);return re&&(a.closeBundle=re.fn),Object.keys(S).length>0&&(a.idFilter=S),a}function synthRolldownOutput(n){return{output:n.output.map(n=>n.type===`chunk`?{type:`chunk`,fileName:n.fileName,code:n.code,name:n.name,isEntry:n.isEntry,isDynamicEntry:n.isDynamicEntry,map:n.map??null,sourcemapFileName:n.sourcemapFilename??null,imports:n.imports,dynamicImports:n.dynamicImports,facadeModuleId:null,moduleIds:[],modules:{},exports:[],referencedFiles:[],importedBindings:{}}:{type:`asset`,fileName:n.fileName,names:n.names,originalFileNames:n.originalFileNames,source:n.sourceText??``,needsCodeReference:!1})}}const rg=`assert.assert/strict.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.dns/promises.domain.events.fs.fs/promises.http.http2.https.inspector.module.net.os.path.path/posix.path/win32.perf_hooks.process.punycode.querystring.readline.readline/promises.repl.stream.stream/web.stream/consumers.stream/promises.string_decoder.sys.test.timers.timers/promises.tls.tty.url.util.util/types.v8.vm.wasi.sqlite.worker_threads.zlib`.split(`.`),ig=[`readable-stream`,`node-fetch`],ag={jsdom:`@gjsify/empty`,"./polling-xhr.node.js":`./polling-xhr.js`,"./websocket.node.js":`./websocket.js`,"./globals.node.js":`./globals.js`},og={assert:`@gjsify/assert`,"assert/strict":`@gjsify/assert/strict`,async_hooks:`@gjsify/async_hooks`,buffer:`@gjsify/buffer`,child_process:`@gjsify/child_process`,cluster:`@gjsify/cluster`,console:`@gjsify/console`,constants:`@gjsify/constants`,crypto:`@gjsify/crypto`,dgram:`@gjsify/dgram`,diagnostics_channel:`@gjsify/diagnostics_channel`,dns:`@gjsify/dns`,"dns/promises":`@gjsify/dns/promises`,domain:`@gjsify/domain`,events:`@gjsify/events`,fs:`@gjsify/fs`,"fs/promises":`@gjsify/fs/promises`,http:`@gjsify/http`,http2:`@gjsify/http2`,https:`@gjsify/https`,inspector:`@gjsify/inspector`,module:`@gjsify/module`,net:`@gjsify/net`,os:`@gjsify/os`,path:`@gjsify/path`,"path/posix":`@gjsify/path/posix`,"path/win32":`@gjsify/path/win32`,perf_hooks:`@gjsify/perf_hooks`,process:`@gjsify/process`,punycode:`@gjsify/punycode`,querystring:`@gjsify/querystring`,readline:`@gjsify/readline`,"readline/promises":`@gjsify/readline/promises`,repl:`@gjsify/repl`,stream:`@gjsify/stream`,"stream/web":`@gjsify/stream/web`,"stream/consumers":`@gjsify/stream/consumers`,"stream/promises":`@gjsify/stream/promises`,string_decoder:`@gjsify/string_decoder`,sys:`@gjsify/sys`,timers:`@gjsify/timers`,"timers/promises":`@gjsify/timers/promises`,tls:`@gjsify/tls`,tty:`@gjsify/tty`,url:`@gjsify/url`,util:`@gjsify/util`,"util/types":`@gjsify/util/types`,v8:`@gjsify/v8`,vm:`@gjsify/vm`,wasi:`@gjsify/wasi`,sqlite:`@gjsify/sqlite`,worker_threads:`@gjsify/worker_threads`,zlib:`@gjsify/zlib`,"node-fetch":`@gjsify/fetch`,ws:`@gjsify/ws`,"isomorphic-ws":`@gjsify/websocket`},sg={"abort-controller":`@gjsify/abort-controller`,"compression-streams":`@gjsify/compression-streams`,"dom-events":`@gjsify/dom-events`,"dom-exception":`@gjsify/dom-exception`,"event-target-shim":`@gjsify/dom-events`,"message-channel":`@gjsify/message-channel`,eventsource:`@gjsify/eventsource`,fetch:`@gjsify/fetch`,formdata:`@gjsify/formdata`,"html-image-element":`@gjsify/html-image-element`,webcrypto:`@gjsify/webcrypto`,webgl:`@gjsify/webgl`,websocket:`@gjsify/websocket`,webstorage:`@gjsify/webstorage`,"abort-controller/register":`@gjsify/abort-controller/register`,"compression-streams/register":`@gjsify/compression-streams/register`,"dom-events/register":`@gjsify/dom-events/register`,"dom-events/register/event-target":`@gjsify/dom-events/register/event-target`,"dom-events/register/custom-events":`@gjsify/dom-events/register/custom-events`,"dom-events/register/ui-events":`@gjsify/dom-events/register/ui-events`,"dom-exception/register":`@gjsify/dom-exception/register`,"message-channel/register":`@gjsify/message-channel/register`,"eventsource/register":`@gjsify/eventsource/register`,"websocket/register":`@gjsify/websocket/register`,"fetch/register":`@gjsify/fetch/register`,"fetch/register/fetch":`@gjsify/fetch/register/fetch`,"fetch/register/xhr":`@gjsify/fetch/register/xhr`,"webcrypto/register":`@gjsify/webcrypto/register`,"web-streams/register":`@gjsify/web-streams/register`,"web-streams/register/readable":`@gjsify/web-streams/register/readable`,"web-streams/register/writable":`@gjsify/web-streams/register/writable`,"web-streams/register/transform":`@gjsify/web-streams/register/transform`,"web-streams/register/text-streams":`@gjsify/web-streams/register/text-streams`,"web-streams/register/queuing":`@gjsify/web-streams/register/queuing`,xmlhttprequest:`@gjsify/fetch`,"xmlhttprequest/register":`@gjsify/fetch/register/xhr`,"@gjsify/xmlhttprequest":`@gjsify/fetch`,"@gjsify/xmlhttprequest/register":`@gjsify/fetch/register/xhr`,domparser:`@gjsify/domparser`,"domparser/register":`@gjsify/domparser/register`,webaudio:`@gjsify/webaudio`,"webaudio/register":`@gjsify/webaudio/register`,gamepad:`@gjsify/gamepad`,"gamepad/register":`@gjsify/gamepad/register`,webrtc:`@gjsify/webrtc`,"webrtc/register":`@gjsify/webrtc/register`,"webrtc/register/peer-connection":`@gjsify/webrtc/register/peer-connection`,"webrtc/register/data-channel":`@gjsify/webrtc/register/data-channel`,"webrtc/register/error":`@gjsify/webrtc/register/error`,"webrtc/register/media":`@gjsify/webrtc/register/media`,"webrtc/register/media-devices":`@gjsify/webrtc/register/media-devices`,webassembly:`@gjsify/webassembly`,"webassembly/register":`@gjsify/webassembly/register`,"webassembly/register/promise":`@gjsify/webassembly/register/promise`},cg={"@gjsify/node-globals":`@gjsify/empty`,"@gjsify/node-globals/register":`@gjsify/empty`,"@gjsify/node-globals/register/process":`@gjsify/empty`,"@gjsify/node-globals/register/buffer":`@gjsify/empty`,"@gjsify/node-globals/register/timers":`@gjsify/empty`,"@gjsify/node-globals/register/encoding":`@gjsify/empty`,"@gjsify/node-globals/register/url":`@gjsify/empty`,"@gjsify/node-globals/register/structured-clone":`@gjsify/empty`,"@gjsify/node-globals/register/microtask":`@gjsify/empty`,"@gjsify/web-globals":`@gjsify/empty`,"@gjsify/web-globals/register":`@gjsify/empty`,"@gjsify/web-globals/register/performance":`@gjsify/empty`,"@gjsify/web-globals/register/formdata":`@gjsify/empty`},lg={},ug={"abort-controller":`@gjsify/abort-controller/globals`,"compression-streams":`@gjsify/compression-streams/globals`,"dom-events":`@gjsify/dom-events/globals`,"dom-exception":`@gjsify/dom-exception/globals`,"message-channel":`@gjsify/message-channel/globals`,eventsource:`@gjsify/eventsource/globals`,formdata:`@gjsify/formdata/globals`,"html-image-element":`@gjsify/html-image-element`,webcrypto:`@gjsify/webcrypto/globals`,webgl:`@gjsify/webgl`,websocket:`@gjsify/websocket/globals`,webstorage:`@gjsify/webstorage`,"abort-controller/register":`@gjsify/empty`,"compression-streams/register":`@gjsify/empty`,"dom-events/register":`@gjsify/empty`,"dom-events/register/event-target":`@gjsify/empty`,"dom-events/register/custom-events":`@gjsify/empty`,"dom-events/register/ui-events":`@gjsify/empty`,"dom-exception/register":`@gjsify/empty`,"message-channel/register":`@gjsify/empty`,"eventsource/register":`@gjsify/empty`,"websocket/register":`@gjsify/empty`,"fetch/register":`@gjsify/empty`,"fetch/register/fetch":`@gjsify/empty`,"fetch/register/xhr":`@gjsify/empty`,"webcrypto/register":`@gjsify/empty`,"web-streams/register":`@gjsify/empty`,"web-streams/register/readable":`@gjsify/empty`,"web-streams/register/writable":`@gjsify/empty`,"web-streams/register/transform":`@gjsify/empty`,"web-streams/register/text-streams":`@gjsify/empty`,"web-streams/register/queuing":`@gjsify/empty`,"@gjsify/abort-controller/register":`@gjsify/empty`,"@gjsify/compression-streams/register":`@gjsify/empty`,"@gjsify/dom-events/register":`@gjsify/empty`,"@gjsify/dom-events/register/event-target":`@gjsify/empty`,"@gjsify/dom-events/register/custom-events":`@gjsify/empty`,"@gjsify/dom-events/register/ui-events":`@gjsify/empty`,"@gjsify/dom-exception/register":`@gjsify/empty`,"@gjsify/message-channel/register":`@gjsify/empty`,"@gjsify/eventsource/register":`@gjsify/empty`,"@gjsify/websocket/register":`@gjsify/empty`,"@gjsify/fetch/register":`@gjsify/empty`,"@gjsify/fetch/register/fetch":`@gjsify/empty`,"@gjsify/fetch/register/xhr":`@gjsify/empty`,"@gjsify/webcrypto/register":`@gjsify/empty`,"@gjsify/web-streams/register":`@gjsify/empty`,"@gjsify/web-streams/register/readable":`@gjsify/empty`,"@gjsify/web-streams/register/writable":`@gjsify/empty`,"@gjsify/web-streams/register/transform":`@gjsify/empty`,"@gjsify/web-streams/register/text-streams":`@gjsify/empty`,"@gjsify/web-streams/register/queuing":`@gjsify/empty`,"@gjsify/dom-elements/register":`@gjsify/empty`,"@gjsify/dom-elements/register/document":`@gjsify/empty`,"@gjsify/dom-elements/register/canvas":`@gjsify/empty`,"@gjsify/dom-elements/register/image":`@gjsify/empty`,"@gjsify/dom-elements/register/observers":`@gjsify/empty`,"@gjsify/dom-elements/register/font-face":`@gjsify/empty`,"@gjsify/dom-elements/register/match-media":`@gjsify/empty`,"@gjsify/dom-elements/register/location":`@gjsify/empty`,"@gjsify/dom-elements/register/navigator":`@gjsify/empty`,"@gjsify/buffer/register":`@gjsify/empty`,xmlhttprequest:`@gjsify/empty`,"xmlhttprequest/register":`@gjsify/empty`,"@gjsify/xmlhttprequest":`@gjsify/empty`,"@gjsify/xmlhttprequest/register":`@gjsify/empty`,domparser:`@gjsify/empty`,"domparser/register":`@gjsify/empty`,"@gjsify/domparser/register":`@gjsify/empty`,webaudio:`@gjsify/empty`,"webaudio/register":`@gjsify/empty`,"@gjsify/webaudio/register":`@gjsify/empty`,gamepad:`@gjsify/empty`,"gamepad/register":`@gjsify/empty`,"@gjsify/gamepad/register":`@gjsify/empty`,webrtc:`@gjsify/empty`,"webrtc/register":`@gjsify/empty`,"webrtc/register/peer-connection":`@gjsify/empty`,"webrtc/register/data-channel":`@gjsify/empty`,"webrtc/register/error":`@gjsify/empty`,"webrtc/register/media":`@gjsify/empty`,"webrtc/register/media-devices":`@gjsify/empty`,"@gjsify/webrtc":`@gjsify/empty`,"@gjsify/webrtc/register":`@gjsify/empty`,"@gjsify/webrtc/register/peer-connection":`@gjsify/empty`,"@gjsify/webrtc/register/data-channel":`@gjsify/empty`,"@gjsify/webrtc/register/error":`@gjsify/empty`,"@gjsify/webrtc/register/media":`@gjsify/empty`,"@gjsify/webrtc/register/media-devices":`@gjsify/empty`,webassembly:`@gjsify/webassembly/globals`,"webassembly/register":`@gjsify/empty`,"webassembly/register/promise":`@gjsify/empty`,"@gjsify/webassembly/register":`@gjsify/empty`,"@gjsify/webassembly/register/promise":`@gjsify/empty`},setNodeAliasPrefix=n=>{for(let a in n){if(a.startsWith(`node:`))continue;let S=`node:${a}`;n[S]||(n[S]=n[a])}return n},getAliasesGeneralForGjs=n=>ag,getAliasesNodeForGjs=n=>setNodeAliasPrefix(og),getAliasesWebForGjs=n=>sg,getAliasesGeneralForNode=n=>cg,getAliasesGjsForNode=n=>lg,getAliasesWebForNode=n=>ug,getAliasesForGjs=n=>({...getAliasesGeneralForGjs(n),...getAliasesNodeForGjs(n),...getAliasesWebForGjs(n)}),getAliasesForNode=n=>({...getAliasesGeneralForNode(n),...getAliasesGjsForNode(n),...getAliasesWebForNode(n)});[...rg,...rg.map(n=>`node:${n}`)],[...ig];var dg=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.splitWhen=n.flatten=void 0;function flatten(n){return n.reduce((n,a)=>[].concat(n,a),[])}n.flatten=flatten;function splitWhen(n,a){let S=[[]],C=0;for(let N of n)a(N)?(C++,S[C]=[]):S[C].push(N);return S}n.splitWhen=splitWhen})),fg=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.isEnoentCodeError=void 0;function isEnoentCodeError(n){return n.code===`ENOENT`}n.isEnoentCodeError=isEnoentCodeError})),pg=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createDirentFromStats=void 0;var DirentFromStats=class{constructor(n,a){this.name=n,this.isBlockDevice=a.isBlockDevice.bind(a),this.isCharacterDevice=a.isCharacterDevice.bind(a),this.isDirectory=a.isDirectory.bind(a),this.isFIFO=a.isFIFO.bind(a),this.isFile=a.isFile.bind(a),this.isSocket=a.isSocket.bind(a),this.isSymbolicLink=a.isSymbolicLink.bind(a)}};function createDirentFromStats(n,a){return new DirentFromStats(n,a)}n.createDirentFromStats=createDirentFromStats})),mg=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.convertPosixPathToPattern=n.convertWindowsPathToPattern=n.convertPathToPattern=n.escapePosixPath=n.escapeWindowsPath=n.escape=n.removeLeadingDotSegment=n.makeAbsolute=n.unixify=void 0;let a=(kp(),__toCommonJS(Sp)),S=(Ho(),__toCommonJS(Do)),C=a.platform()===`win32`,N=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,F=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,I=/^\\\\([.?])/,H=/\\(?![!()+@[\]{}])/g;function unixify(n){return n.replace(/\\/g,`/`)}n.unixify=unixify;function makeAbsolute(n,a){return S.resolve(n,a)}n.makeAbsolute=makeAbsolute;function removeLeadingDotSegment(n){if(n.charAt(0)===`.`){let a=n.charAt(1);if(a===`/`||a===`\\`)return n.slice(2)}return n}n.removeLeadingDotSegment=removeLeadingDotSegment,n.escape=C?escapeWindowsPath:escapePosixPath;function escapeWindowsPath(n){return n.replace(F,`\\$2`)}n.escapeWindowsPath=escapeWindowsPath;function escapePosixPath(n){return n.replace(N,`\\$2`)}n.escapePosixPath=escapePosixPath,n.convertPathToPattern=C?convertWindowsPathToPattern:convertPosixPathToPattern;function convertWindowsPathToPattern(n){return escapeWindowsPath(n).replace(I,`//$1`).replace(H,`/`)}n.convertWindowsPathToPattern=convertWindowsPathToPattern;function convertPosixPathToPattern(n){return escapePosixPath(n)}n.convertPosixPathToPattern=convertPosixPathToPattern})),hg=__commonJSMin(((n,a)=>{
632
+ `+` `.repeat(a));var ih;(function(n){n.DEFAULT={allowTrailingComma:!1}})(ih||={});function Pe(n,a=[],S=ih.DEFAULT){let C=null,N=[],F=[];function i(n){Array.isArray(N)?N.push(n):C!==null&&(N[C]=n)}return r(i,`onValue`),We(n,{onObjectBegin:r(()=>{let n={};i(n),F.push(N),N=n,C=null},`onObjectBegin`),onObjectProperty:r(n=>{C=n},`onObjectProperty`),onObjectEnd:r(()=>{N=F.pop()},`onObjectEnd`),onArrayBegin:r(()=>{let n=[];i(n),F.push(N),N=n,C=null},`onArrayBegin`),onArrayEnd:r(()=>{N=F.pop()},`onArrayEnd`),onLiteralValue:i,onError:r((n,S,C)=>{a.push({error:n,offset:S,length:C})},`onError`)},S),N[0]}r(Pe,`parse$1`);function We(n,a,S=ih.DEFAULT){let C=Ne(n,!1),N=[],F=0;function i(n){return n?()=>F===0&&n(C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter()):()=>!0}r(i,`toNoArgVisit`);function f(n){return n?a=>F===0&&n(a,C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter()):()=>!0}r(f,`toOneArgVisit`);function u(n){return n?a=>F===0&&n(a,C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter(),()=>N.slice()):()=>!0}r(u,`toOneArgVisitWithPath`);function g(n){return n?()=>{F>0?F++:n(C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter(),()=>N.slice())===!1&&(F=1)}:()=>!0}r(g,`toBeginVisit`);function w(n){return n?()=>{F>0&&F--,F===0&&n(C.getTokenOffset(),C.getTokenLength(),C.getTokenStartLine(),C.getTokenStartCharacter())}:()=>!0}r(w,`toEndVisit`);let I=g(a.onObjectBegin),H=u(a.onObjectProperty),W=w(a.onObjectEnd),K=g(a.onArrayBegin),q=w(a.onArrayEnd),Y=u(a.onLiteralValue),X=f(a.onSeparator),te=i(a.onComment),ne=f(a.onError),re=S&&S.disallowComments,ie=S&&S.allowTrailingComma;function T(){for(;;){let n=C.scan();switch(C.getTokenError()){case 4:k(14);break;case 5:k(15);break;case 3:k(13);break;case 1:re||k(11);break;case 2:k(12);break;case 6:k(16);break}switch(n){case 12:case 13:re?k(10):te();break;case 16:k(1);break;case 15:case 14:break;default:return n}}}r(T,`scanNext`);function k(n,a=[],S=[]){if(ne(n),a.length+S.length>0){let n=C.getToken();for(;n!==17;){if(a.indexOf(n)!==-1){T();break}else if(S.indexOf(n)!==-1)break;n=T()}}}r(k,`handleError`);function P(n){let a=C.getTokenValue();return n?Y(a):(H(a),N.push(a)),T(),!0}r(P,`parseString`);function M(){switch(C.getToken()){case 11:let n=C.getTokenValue(),a=Number(n);isNaN(a)&&(k(2),a=0),Y(a);break;case 7:Y(null);break;case 8:Y(!0);break;case 9:Y(!1);break;default:return!1}return T(),!0}r(M,`parseLiteral`);function V(){return C.getToken()===10?(P(!1),C.getToken()===6?(X(`:`),T(),U()||k(4,[],[2,5])):k(5,[],[2,5]),N.pop(),!0):(k(3,[],[2,5]),!1)}r(V,`parseProperty`);function z(){I(),T();let n=!1;for(;C.getToken()!==2&&C.getToken()!==17;){if(C.getToken()===5){if(n||k(4,[],[]),X(`,`),T(),C.getToken()===2&&ie)break}else n&&k(6,[],[]);V()||k(4,[],[2,5]),n=!0}return W(),C.getToken()===2?T():k(7,[2],[]),!0}r(z,`parseObject`);function G(){K(),T();let n=!0,a=!1;for(;C.getToken()!==4&&C.getToken()!==17;){if(C.getToken()===5){if(a||k(4,[],[]),X(`,`),T(),C.getToken()===4&&ie)break}else a&&k(6,[],[]);n?(N.push(0),n=!1):N[N.length-1]++,U()||k(4,[],[4,5]),a=!0}return q(),n||N.pop(),C.getToken()===4?T():k(8,[4],[]),!0}r(G,`parseArray`);function U(){switch(C.getToken()){case 3:return G();case 1:return z();case 10:return P(!0);default:return M()}}return r(U,`parseValue`),T(),C.getToken()===17?S.allowEmptyContent?!0:(k(4,[],[]),!1):U()?(C.getToken()!==17&&k(9,[],[]),!0):(k(4,[],[]),!1)}r(We,`visit`);var ah;(function(n){n[n.None=0]=`None`,n[n.UnexpectedEndOfComment=1]=`UnexpectedEndOfComment`,n[n.UnexpectedEndOfString=2]=`UnexpectedEndOfString`,n[n.UnexpectedEndOfNumber=3]=`UnexpectedEndOfNumber`,n[n.InvalidUnicode=4]=`InvalidUnicode`,n[n.InvalidEscapeCharacter=5]=`InvalidEscapeCharacter`,n[n.InvalidCharacter=6]=`InvalidCharacter`})(ah||={});var oh;(function(n){n[n.OpenBraceToken=1]=`OpenBraceToken`,n[n.CloseBraceToken=2]=`CloseBraceToken`,n[n.OpenBracketToken=3]=`OpenBracketToken`,n[n.CloseBracketToken=4]=`CloseBracketToken`,n[n.CommaToken=5]=`CommaToken`,n[n.ColonToken=6]=`ColonToken`,n[n.NullKeyword=7]=`NullKeyword`,n[n.TrueKeyword=8]=`TrueKeyword`,n[n.FalseKeyword=9]=`FalseKeyword`,n[n.StringLiteral=10]=`StringLiteral`,n[n.NumericLiteral=11]=`NumericLiteral`,n[n.LineCommentTrivia=12]=`LineCommentTrivia`,n[n.BlockCommentTrivia=13]=`BlockCommentTrivia`,n[n.LineBreakTrivia=14]=`LineBreakTrivia`,n[n.Trivia=15]=`Trivia`,n[n.Unknown=16]=`Unknown`,n[n.EOF=17]=`EOF`})(oh||={});const sh=Pe;var ch;(function(n){n[n.InvalidSymbol=1]=`InvalidSymbol`,n[n.InvalidNumberFormat=2]=`InvalidNumberFormat`,n[n.PropertyNameExpected=3]=`PropertyNameExpected`,n[n.ValueExpected=4]=`ValueExpected`,n[n.ColonExpected=5]=`ColonExpected`,n[n.CommaExpected=6]=`CommaExpected`,n[n.CloseBraceExpected=7]=`CloseBraceExpected`,n[n.CloseBracketExpected=8]=`CloseBracketExpected`,n[n.EndOfFileExpected=9]=`EndOfFileExpected`,n[n.InvalidCommentToken=10]=`InvalidCommentToken`,n[n.UnexpectedEndOfComment=11]=`UnexpectedEndOfComment`,n[n.UnexpectedEndOfString=12]=`UnexpectedEndOfString`,n[n.UnexpectedEndOfNumber=13]=`UnexpectedEndOfNumber`,n[n.InvalidUnicode=14]=`InvalidUnicode`,n[n.InvalidEscapeCharacter=15]=`InvalidEscapeCharacter`,n[n.InvalidCharacter=16]=`InvalidCharacter`})(ch||={});const lh=r((n,a)=>sh(Qm(a,n,`utf8`)),`readJsonc`),uh=Symbol(`implicitBaseUrl`),dh="${configDir}",fh=r(()=>{let{findPnpApi:n}=Rs;return n&&n(process.cwd())},`getPnpApi`),ph=r((n,a,S,C)=>{let N=`resolveFromPackageJsonPath:${n}:${a}:${S}`;if(C!=null&&C.has(N))return C.get(N);let F=lh(n,C);if(!F)return;let I=a||`tsconfig.json`;if(!S&&F.exports)try{let[n]=v(F.exports,a,[`require`,`types`]);I=n}catch{return!1}else !a&&F.tsconfig&&(I=F.tsconfig);return I=Vo.join(n,`..`,I),C?.set(N,I),I},`resolveFromPackageJsonPath`),mh=`package.json`,hh=`tsconfig.json`,gh=r((n,a,S)=>{let C=n;if(n===`..`&&(C=Vo.join(C,hh)),n[0]===`.`&&(C=Vo.resolve(a,C)),Vo.isAbsolute(C)){if(Zm(S,C)){if($m(S,C).isFile())return C}else if(!C.endsWith(`.json`)){let n=`${C}.json`;if(Zm(S,n))return n}return}let[N,...F]=n.split(`/`),I=N[0]===`@`?`${N}/${F.shift()}`:N,H=F.join(`/`),W=fh();if(W){let{resolveRequest:C}=W;try{if(I===n){let n=C(Vo.join(I,mh),a);if(n){let a=ph(n,H,!1,S);if(a&&Zm(S,a))return a}}else{let S;try{S=C(n,a,{extensions:[`.json`]})}catch{S=C(Vo.join(n,hh),a)}if(S)return S}}catch{}}let K=eh(Vo.resolve(a),Vo.join(`node_modules`,I),S);if(!K||!$m(S,K).isDirectory())return;let q=Vo.join(K,mh);if(Zm(S,q)){let n=ph(q,H,!1,S);if(n===!1)return;if(n&&Zm(S,n)&&$m(S,n).isFile())return n}let Y=Vo.join(K,H),X=Y.endsWith(`.json`);if(!X){let n=`${Y}.json`;if(Zm(S,n))return n}if(Zm(S,Y)){if($m(S,Y).isDirectory()){let n=Vo.join(Y,mh);if(Zm(S,n)){let a=ph(n,``,!0,S);if(a&&Zm(S,a))return a}let a=Vo.join(Y,hh);if(Zm(S,a))return a}else if(X)return Y}},`resolveExtendsPath`),vh=r((n,a)=>nh(Vo.relative(n,a)),`pathRelative`),yh=[`files`,`include`,`exclude`],bh=r((n,a,S)=>{let C=Vo.join(a,S);return h$1(Vo.relative(n,C))||`./`},`resolveAndRelativize`),xh=r((n,a,S)=>{let C=Vo.relative(n,a);return C?h$1(`${C}/${S.startsWith(`./`)?S.slice(2):S}`):S},`prefixPattern`),Sh=r((n,a,S,C)=>{let N=gh(n,a,C);if(!N)throw Error(`File '${n}' not found.`);if(S.has(N))throw Error(`Circularity detected while resolving configuration: ${N}`);S.add(N);let F=Vo.dirname(N),I=wh(N,C,S);delete I.references;let{compilerOptions:H}=I;if(H){let{baseUrl:n}=H;n&&!n.startsWith(dh)&&(H.baseUrl=bh(a,F,n));let{outDir:S}=H;S&&!S.startsWith(dh)&&(H.outDir=bh(a,F,S));let{declarationDir:C}=H;C&&!C.startsWith(dh)&&(H.declarationDir=bh(a,F,C));let{rootDir:N}=H;N&&!N.startsWith(dh)&&(H.rootDir=bh(a,F,N));let{rootDirs:I}=H;I&&(H.rootDirs=I.map(n=>n.startsWith(dh)?n:bh(a,F,n)));let{typeRoots:W}=H;W&&(H.typeRoots=W.map(n=>n.startsWith(dh)?n:bh(a,F,n)))}for(let n of yh){let S=I[n];S&&(I[n]=S.map(n=>n.startsWith(dh)?n:xh(a,F,n)))}return I},`resolveExtends`),Ch=[`outDir`,`declarationDir`],wh=r((n,a,S=new Set)=>{let C;try{C=lh(n,a)||{}}catch{throw Error(`Cannot resolve tsconfig at path: ${n}`)}if(typeof C!=`object`)throw SyntaxError(`Failed to parse tsconfig at: ${n}`);let N=Vo.dirname(n);if(C.compilerOptions){let{compilerOptions:n}=C;n.paths&&!n.baseUrl&&(n[uh]=N)}if(C.extends){let n=Array.isArray(C.extends)?C.extends:[C.extends];delete C.extends;for(let F of n.reverse()){let n=Sh(F,N,new Set(S),a),I={...n,...C,compilerOptions:{...n.compilerOptions,...C.compilerOptions}};n.watchOptions&&(I.watchOptions={...n.watchOptions,...C.watchOptions}),C=I}}if(C.compilerOptions){let{compilerOptions:n}=C;for(let a of[`baseUrl`,`rootDir`]){let S=n[a];S&&!S.startsWith(dh)&&(n[a]=vh(N,Vo.resolve(N,S)))}for(let a of Ch){let S=n[a];S&&(Array.isArray(C.exclude)||(C.exclude=Ch.map(a=>n[a]).filter(Boolean)),S.startsWith(dh)||(S=nh(S)),n[a]=S)}}else C.compilerOptions={};if(C.include&&=C.include.map(h$1),C.files&&=C.files.map(n=>n.startsWith(dh)?n:nh(n)),C.watchOptions){let{watchOptions:n}=C;n.excludeDirectories&&=n.excludeDirectories.map(n=>h$1(Vo.resolve(N,n))),n.excludeFiles&&=n.excludeFiles.map(n=>h$1(Vo.resolve(N,n))),n.watchFile&&=n.watchFile.toLowerCase(),n.watchDirectory&&=n.watchDirectory.toLowerCase(),n.fallbackPolling&&=n.fallbackPolling.toLowerCase()}return C},`_parseTsconfig`),Th=r((n,a)=>{if(n.startsWith(dh))return h$1(Vo.join(a,n.slice(12)))},`interpolateConfigDir`),Eh=[`outDir`,`declarationDir`,`outFile`,`rootDir`,`baseUrl`,`tsBuildInfoFile`],Dh=r(n=>{if(n.strict)for(let a of[`noImplicitAny`,`noImplicitThis`,`strictNullChecks`,`strictFunctionTypes`,`strictBindCallApply`,`strictPropertyInitialization`,`strictBuiltinIteratorReturn`,`alwaysStrict`,`useUnknownInCatchVariables`])n[a]===void 0&&(n[a]=!0);if(n.composite&&(n.declaration??=!0,n.incremental??=!0),n.target){let a=n.target.toLowerCase();a===`es2015`&&(a=`es6`),n.target=a,a===`esnext`&&(n.module??=`es6`,n.useDefineForClassFields??=!0),(a===`es6`||a===`es2016`||a===`es2017`||a===`es2018`||a===`es2019`||a===`es2020`||a===`es2021`||a===`es2022`||a===`es2023`||a===`es2024`)&&(n.module??=`es6`),(a===`es2022`||a===`es2023`||a===`es2024`)&&(n.useDefineForClassFields??=!0)}if(n.module){let a=n.module.toLowerCase();if(a===`es2015`&&(a=`es6`),n.module=a,(a===`es6`||a===`es2020`||a===`es2022`||a===`esnext`||a===`none`||a===`system`||a===`umd`||a===`amd`)&&(n.moduleResolution??=`classic`),a===`system`&&(n.allowSyntheticDefaultImports??=!0),(a===`node16`||a===`node18`||a===`node20`||a===`nodenext`||a===`preserve`)&&(n.esModuleInterop??=!0,n.allowSyntheticDefaultImports??=!0),(a===`node16`||a===`node18`||a===`node20`||a===`nodenext`)&&(n.moduleDetection??=`force`),a===`node16`&&(n.target??=`es2022`,n.moduleResolution??=`node16`),a===`node18`&&(n.target??=`es2022`,n.moduleResolution??=`node16`),a===`node20`&&(n.target??=`es2023`,n.moduleResolution??=`node16`,n.resolveJsonModule??=!0),a===`nodenext`&&(n.target??=`esnext`,n.moduleResolution??=`nodenext`,n.resolveJsonModule??=!0),a===`node16`||a===`node18`||a===`node20`||a===`nodenext`){let a=n.target;(a===`es3`||a===`es2022`||a===`es2023`||a===`es2024`||a===`esnext`)&&(n.useDefineForClassFields??=!0)}a===`preserve`&&(n.moduleResolution??=`bundler`)}if(n.moduleResolution){let a=n.moduleResolution.toLowerCase();a===`node`&&(a=`node10`),n.moduleResolution=a,(a===`node16`||a===`nodenext`||a===`bundler`)&&(n.resolvePackageJsonExports??=!0,n.resolvePackageJsonImports??=!0),a===`bundler`&&(n.allowSyntheticDefaultImports??=!0,n.resolveJsonModule??=!0)}n.jsx&&=n.jsx.toLowerCase(),n.moduleDetection&&=n.moduleDetection.toLowerCase(),n.importsNotUsedAsValues&&=n.importsNotUsedAsValues.toLowerCase(),n.newLine&&=n.newLine.toLowerCase(),n.esModuleInterop&&(n.allowSyntheticDefaultImports??=!0),n.verbatimModuleSyntax&&(n.isolatedModules??=!0,n.preserveConstEnums??=!0),n.isolatedModules&&(n.preserveConstEnums??=!0),n.rewriteRelativeImportExtensions&&(n.allowImportingTsExtensions??=!0),n.lib&&=n.lib.map(n=>n.toLowerCase()),n.checkJs&&(n.allowJs??=!0)},`normalizeCompilerOptions`),Oh=r((n,a=new Map)=>{let S=Vo.resolve(n),C=wh(S,a),N=Vo.dirname(S),{compilerOptions:F}=C;if(F){for(let n of Eh){let a=F[n];if(a){let S=Th(a,N);F[n]=S?vh(N,S):a}}for(let n of[`rootDirs`,`typeRoots`]){let a=F[n];a&&(F[n]=a.map(n=>{let a=Th(n,N);return a?vh(N,a):nh(n)}))}let{paths:n}=F;if(n)for(let a of Object.keys(n))n[a]=n[a].map(n=>Th(n,N)??n);Dh(F)}for(let n of yh){let a=C[n];a&&(C[n]=a.map(n=>Th(n,N)??n))}return C},`parseTsconfig`);var kh=Object.defineProperty,Ah=r((n,a)=>kh(n,`name`,{value:a,configurable:!0}),`s`);const jh=Ah(n=>{let a=``;for(let S=0;S<n.length;S+=1){let C=n[S],N=C.toUpperCase();a+=C===N?C.toLowerCase():N}return a},`invertCase`),Mh=new Map,Nh=Ah((n,a)=>{let S=Vo.join(n,`.is-fs-case-sensitive-test-${process.pid}`);try{return a.writeFileSync(S,``),!a.existsSync(jh(S))}finally{try{a.unlinkSync(S)}catch{}}},`checkDirectoryCaseWithWrite`),Ph=Ah((n,a,S)=>{try{return Nh(n,S)}catch(n){if(a===void 0)return Nh(Op.tmpdir(),S);throw n}},`checkDirectoryCaseWithFallback`),Fh=Ah((n,a=ks,S=!0)=>{let C=n??process.cwd();if(S&&Mh.has(C))return Mh.get(C);let N,F=jh(C);return N=F!==C&&a.existsSync(C)?!a.existsSync(F):Ph(C,n,a),S&&Mh.set(C,N),N},`isFsCaseSensitive`),{join:Ih}=Vo.posix,Lh={ts:[`.ts`,`.tsx`,`.d.ts`],cts:[`.cts`,`.d.cts`],mts:[`.mts`,`.d.mts`]},Rh=r(n=>{let a=[...Lh.ts],S=[...Lh.cts],C=[...Lh.mts];return n!=null&&n.allowJs&&(a.push(`.js`,`.jsx`),S.push(`.cjs`),C.push(`.mjs`)),[...a,...S,...C]},`getSupportedExtensions`),zh=r(n=>{let a=[];if(!n)return a;let{outDir:S,declarationDir:C}=n;return S&&a.push(S),C&&a.push(C),a},`getDefaultExcludeSpec`),Bh=r(n=>n.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),`escapeForRegexp`),Vh=`(?!(${[`node_modules`,`bower_components`,`jspm_packages`].join(`|`)})(/|$))`,Hh=/(?:^|\/)[^.*?]+$/,Uh=`**/*`,Wh=`[^/]`,Gh=`[^./]`,Kh=process.platform===`win32`,qh=r(({config:n,path:a},S=Fh())=>{if(`extends`in n)throw Error(`tsconfig#extends must be resolved. Use getTsconfig or parseTsconfig to resolve it.`);if(!Vo.isAbsolute(a))throw Error(`The tsconfig path must be absolute`);Kh&&(a=h$1(a));let C=Vo.dirname(a),{files:N,include:F,exclude:I,compilerOptions:H}=n,W=r(n=>Vo.isAbsolute(n)?n:Ih(C,n),`resolvePattern`),K=N?.map(W),q=Rh(H),Y=S?``:`i`,X=(I||zh(H)).map(n=>{let a=Bh(W(n)).replaceAll(String.raw`\*\*/`,`(.+/)?`).replaceAll(String.raw`\*`,`${Wh}*`).replaceAll(String.raw`\?`,Wh);return RegExp(`^${a}($|/)`,Y)}),te=N||F?F:[Uh],ne=te?te.map(n=>{let a=W(n);Hh.test(a)&&(a=Ih(a,Uh));let S=Bh(a).replaceAll(String.raw`/\*\*`,`(/${Vh}${Gh}${Wh}*)*?`).replaceAll(/(\/)?\\\*/g,(n,a)=>{let S=`(${Gh}|(\\.(?!min\\.js$))?)*`;return a?`/${Vh}${Gh}${S}`:S}).replaceAll(/(\/)?\\\?/g,(n,a)=>{let S=Wh;return a?`/${Vh}${S}`:S});return RegExp(`^${S}$`,Y)}):void 0;return a=>{if(!Vo.isAbsolute(a))throw Error(`filePath must be absolute`);if(Kh&&(a=h$1(a)),K!=null&&K.includes(a)||!(!q.some(n=>a.endsWith(n))||X.some(n=>n.test(a)))&&ne&&ne.some(n=>n.test(a)))return n}},`createFilesMatcher`),Jh=r((n,a,S)=>{let C=Vo.resolve(n),N=h$1(n);for(;;){let n=eh(N,a,S);if(!n)return;let F=Vo.resolve(n),I=Oh(F,S),H={path:h$1(F),config:I};if(qh(H)(C))return H;let W=Vo.dirname(n),K=Vo.dirname(W);if(K===W)return;N=K}},`findConfigApplicable`),Yh=r((n=process.cwd(),a=`tsconfig.json`,S=new Map,C=!1)=>C?Jh(n,a,S)?.path:eh(h$1(n),a,S),`findTsconfig`),Xh=r((n=process.cwd(),a=`tsconfig.json`,S=new Map,C=!1)=>{if(!C){let C=Yh(n,a,S);return C?{path:C,config:Oh(C,S)}:null}return Jh(n,a,S)??null},`getTsconfig`),Zh=/\*/g,Qh=r((n,a)=>{let S=n.match(Zh);if(S&&S.length>1)throw Error(a)},`assertStarCount`),$h=r(n=>{if(n.includes(`*`)){let[a,S]=n.split(`*`);return{prefix:a,suffix:S}}return n},`parsePattern`),eg=r(({prefix:n,suffix:a},S)=>S.startsWith(n)&&S.endsWith(a),`isPatternMatch`),tg=r((n,a,S)=>Object.entries(n).map(([n,C])=>(Qh(n,`Pattern '${n}' can have at most one '*' character.`),{pattern:$h(n),substitutions:C.map(C=>{if(Qh(C,`Substitution '${C}' in pattern '${n}' can have at most one '*' character.`),!a&&!th.test(C)&&!Vo.isAbsolute(C))throw Error(`Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?`);return Vo.resolve(S,C)})})),`parsePaths`);r(n=>{let{compilerOptions:a}=n.config;if(!a)return null;let{baseUrl:S,paths:C}=a;if(!S&&!C)return null;let N=uh in a&&a[uh],F=Vo.resolve(Vo.dirname(n.path),S||N||`.`),I=C?tg(C,S,F):[];return n=>{if(th.test(n))return[];let a=[];for(let S of I){if(S.pattern===n)return S.substitutions.map(h$1);typeof S.pattern!=`string`&&a.push(S)}let C,N=-1;for(let S of a)eg(S.pattern,n)&&S.pattern.prefix.length>N&&(N=S.pattern.prefix.length,C=S);if(!C)return S?[h$1(Vo.join(F,n))]:[];let H=n.slice(C.pattern.prefix.length,n.length-C.pattern.suffix.length);return C.substitutions.map(n=>h$1(n.replace(`*`,H)))}},`createPathsMatcher`),Ie();function defaultSearchPlaces(n){return[`package.json`,`.${n}rc`,`.${n}rc.json`,`.${n}rc.yaml`,`.${n}rc.yml`,`.${n}rc.js`,`.${n}rc.ts`,`.${n}rc.mjs`,`.${n}rc.cjs`,`${n}.config.js`,`${n}.config.ts`,`${n}.config.mjs`,`${n}.config.cjs`]}function merge(n,...a){for(let S of a)if(S)for(let a of Object.keys(S)){let C=n[a],N=S[a];N!==void 0&&(isPlainObject$1(C)&&isPlainObject$1(N)?merge(C,N):n[a]=N)}return n}function isPlainObject$1(n){return typeof n==`object`&&!!n&&!Array.isArray(n)&&Object.getPrototypeOf(n)===Object.prototype}__name$1(isPlainObject$1,`isPlainObject`);function readDottedPath(n,a){if(!a.includes(`.`))return n[a];let S=n;for(let n of a.split(`.`)){if(typeof S!=`object`||!S)return;S=S[n]}return S}var Config=class{loadOptions={};constructor(n={}){Object.keys(n).length&&(this.loadOptions=n)}async load(n){let a=await(0,im.cosmiconfig)(Pu,{...this.loadOptions,searchPlaces:(this.loadOptions.searchPlaces??defaultSearchPlaces(`gjsify`)).filter(n=>n!==`package.json`)}).search(n),S={};try{let a=await this.readPackageJSON(n);isPlainObject$1(a?.gjsify)&&merge(S,a.gjsify)}catch{}return a?.config&&isPlainObject$1(a.config)&&merge(S,a.config),S.bundler||={},S.library||={},S.typescript||={},{config:S,filepath:a?.filepath??``,isEmpty:!a&&Object.keys(S).length===3}}async readPackageJSON(n){return n=await resolvePackageJSON(n),await readPackageJSON(n)}async readTSConfig(n){return Xh(n)?.config||{}}async forBuild(n){let a=await this.load(process.cwd()),S={...a.config},C=a.filepath||process.cwd(),N=await this.readPackageJSON(C),F=await this.readTSConfig(C);if(F.reflection||=n.reflection,S.verbose=n.verbose||!1,S.exclude=n.exclude||[],n.consoleShim!==void 0&&(S.consoleShim=n.consoleShim),n.globals!==void 0&&(S.globals=n.globals),n.shebang!==void 0&&(S.shebang=n.shebang),n.excludeGlobals){let a=(Array.isArray(n.excludeGlobals)?n.excludeGlobals.join(`,`):String(n.excludeGlobals)).split(`,`).map(n=>n.trim()).filter(Boolean);a.length&&(S.excludeGlobals=[...S.excludeGlobals??[],...a])}merge(S.library??={},N,S.library),merge(S.typescript??={},F,S.typescript);let parseKvPairs=(n,a)=>{let S={};for(let C of n){let n=C.indexOf(`=`);if(n===-1)throw Error(`Invalid --${a} value '${C}'. Expected KEY=VALUE.`);let N=C.slice(0,n).trim(),F=C.slice(n+1);if(!N)throw Error(`Invalid --${a} value '${C}'. Empty key.`);S[N]=F}return S},I=parseKvPairs(n.define??[],`define`),H=parseKvPairs(n.alias??[],`alias`);Object.keys(H).length&&(S.aliases={...S.aliases,...H});let W={};if(S.defineFromPackageJson)for(let[n,a]of Object.entries(S.defineFromPackageJson)){if(!a||typeof a.field!=`string`||!a.field)throw Error(`gjsify config: defineFromPackageJson["${n}"] is missing a "field" string`);let S=readDottedPath(N,a.field);W[n]=S===void 0?`undefined`:JSON.stringify(S)}let K={};if(S.defineFromEnv)for(let[n,a]of Object.entries(S.defineFromEnv)){if(!a||typeof a.env!=`string`||!a.env)throw Error(`gjsify config: defineFromEnv["${n}"] is missing an "env" string`);let S=process.env[a.env],C=S===void 0?a.default:S;K[n]=C===void 0?`undefined`:JSON.stringify(C)}let q=S.bundler??={},Y=q.output??={},X=q.transform??={};return n.entryPoints?.length&&(q.input=n.entryPoints),q.input||=[`src/index.ts`],n.outfile!==void 0&&(Y.file=n.outfile),n.outdir!==void 0&&(Y.dir=n.outdir),n.format!==void 0&&(Y.format=n.format),n.minify!==void 0&&(Y.minify=n.minify),Y.minify===void 0&&(Y.minify=!0),Y.minify===!0&&(Y.keepNames=!0),n.logLevel&&(q.logLevel={silent:`silent`,error:`warn`,warning:`warn`,warn:`warn`,info:`info`,debug:`debug`,verbose:`debug`}[n.logLevel]??`warn`),n.external?.length&&(q.external=[...Array.isArray(q.external)?q.external:[],...n.external]),(Object.keys(I).length||Object.keys(W).length||Object.keys(K).length)&&(X.define={...X.define,...W,...K,...I}),S.verbose&&Fe.debug(`configData`,S),S}};Ie(),As(),Ho(),zs(),rn();async function loadNpmRolldown(){return(await import(`rolldown`)).rolldown}async function bundleToChunks(n){if(await shouldUseNative()){let a=await tryLoadNative();if(!a)throw Error(`@gjsify/rolldown-native not loadable`);let S=n.rolldownInput.plugins??[],C=[];for(let n of S)isPluginObject(n)&&C.push(toNativePlugin(n));let N=liftTransformExtras(stripUnserializable({...n.rolldownInput,input:normalizeInputForNative(n.rolldownInput.input),format:n.format}));delete N.plugins;let F=await a.bundleWithPlugins(N,C),I=[];for(let n of F.output)n.type===`chunk`&&I.push(n.code);return I}let a=await(await loadNpmRolldown())(n.rolldownInput);try{let S=await a.generate({format:n.format,minify:!1,sourcemap:!1}),C=[];for(let n of S.output)n.type===`chunk`&&C.push(n.code);return C}finally{await a.close()}}async function runWatch(n){if(await shouldUseNative())throw Error("`gjsify build --watch` requires the npm `rolldown` engine. The native engine (`@gjsify/rolldown-native`) does not expose a watcher API. Run the watch loop under Node (`node lib/index.js build … --watch`) or set `GJSIFY_BUNDLER=npm`.");let a=await import(`rolldown`),S=n.output??{};return a.watch({...n,output:S})}async function runBundle(n){if(await shouldUseNative())return await runNativeBundle(n);let a=await(await loadNpmRolldown())(n);try{return await a.write(n.output??{})}finally{await a.close()}}let ng=null;async function shouldUseNative(){let n=(globalThis.process?.env??{}).GJSIFY_BUNDLER;if(n===`npm`)return!1;if(n===`native`){if(!await tryLoadNative())throw Error(`GJSIFY_BUNDLER=native but @gjsify/rolldown-native is not loadable (no prebuild for this architecture, or not running under GJS).`);return!0}return globalThis.imports?.gi===void 0?!1:await tryLoadNative()!==null}async function tryLoadNative(){return ng||(ng=(async()=>{let n=globalThis.imports?.gi!==void 0;if(!n)return null;try{let a=`@gjsify/rolldown-native`,S=a;n&&(S=pathToFileURL(createRequire(import.meta.url).resolve(a)).href);let C=await import(S);return C.hasNativeRolldown()?C:null}catch{return null}})(),ng)}async function runNativeBundle(n){let a=await tryLoadNative();if(!a)throw Error(`@gjsify/rolldown-native not loadable`);let S=n.plugins??[],C=[];for(let n of S)isPluginObject(n)&&C.push(toNativePlugin(n));let{output:N,plugins:F,...I}=n,H=liftTransformExtras(stripUnserializable({...I,...N,input:normalizeInputForNative(n.input)}));globalThis.process?.env?.GJSIFY_DEBUG_NATIVE_OPTS&&Fe.error(`[gjsify-bundler-pick] native opts JSON:`,JSON.stringify(H));let W=await a.bundleWithPlugins(H,C),K=n.output??{},q=K.dir??(K.file?Po(K.file):process.cwd());q&&await as.mkdir(q,{recursive:!0});for(let n of W.output)if(n.type===`chunk`){let a=K.file&&W.output.length===1?K.file:jo(q,n.fileName);await as.writeFile(a,n.code,`utf8`)}return synthRolldownOutput(W)}function stripUnserializable(n){let a={};for(let[S,C]of Object.entries(n))typeof C!=`function`&&(S===`sourcemap`&&typeof C==`boolean`||(a[S]=C));return a}function liftTransformExtras(n){let a=n.transform;if(!a)return n;let S={},C={...a};for(let n of[`define`,`inject`])n in C&&(S[n]=C[n],delete C[n]);return S.inject!==void 0&&!Array.isArray(S.inject)&&(S.inject=mapToInjectArray(S.inject)),{...n,transform:Object.keys(C).length===0?void 0:C,...S}}function mapToInjectArray(n){let a=[];for(let[S,C]of Object.entries(n))if(typeof C==`string`)a.push({type:`default`,from:C,alias:S});else{let[n,N]=C;a.push({type:`named`,from:n,imported:N,alias:S})}return a}function normalizeInputForNative(n){return n===void 0?[]:typeof n==`string`?[{import:n}]:Array.isArray(n)?n.map(n=>typeof n==`string`?{import:n}:n):Object.entries(n).map(([n,a])=>({name:n,import:a}))}function isPluginObject(n){return typeof n==`object`&&!!n&&!Array.isArray(n)}function pickHook(n){if(typeof n==`function`)return{fn:n};if(typeof n==`object`&&n&&`handler`in n){let a=n,S=filterToRegexSource(a.filter?.id),C={fn:a.handler};return S!==void 0&&(C.idFilter=S),C}}function filterToRegexSource(n){if(n!==void 0){if(Array.isArray(n)){let a=n.map(oneToSource).filter(n=>n!==void 0);return a.length===0?void 0:a.length===1?a[0]:`(?:${a.join(`|`)})`}return oneToSource(n)}}function oneToSource(n){if(n instanceof RegExp)return n.source;if(typeof n==`string`)return n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function toNativePlugin(n){let a={name:typeof n.name==`string`?n.name:`unnamed-plugin`},S={},C=pickHook(n.load);C&&(a.load=C.fn,C.idFilter&&(S.load=C.idFilter));let N=pickHook(n.transform);N&&(a.transform=N.fn,N.idFilter&&(S.transform=N.idFilter));let F=pickHook(n.resolveId);F&&(a.resolveId=F.fn,F.idFilter&&(S.resolveId=F.idFilter));let I=pickHook(n.renderChunk);I&&(a.renderChunk=I.fn);let H=pickHook(n.banner);H&&(a.banner=H.fn);let W=pickHook(n.footer);W&&(a.footer=W.fn);let K=pickHook(n.intro);K&&(a.intro=K.fn);let q=pickHook(n.outro);q&&(a.outro=q.fn);let Y=pickHook(n.buildStart);Y&&(a.buildStart=Y.fn);let X=pickHook(n.buildEnd);X&&(a.buildEnd=X.fn);let te=pickHook(n.generateBundle);te&&(a.generateBundle=te.fn);let ne=pickHook(n.writeBundle);ne&&(a.writeBundle=ne.fn);let re=pickHook(n.closeBundle);return re&&(a.closeBundle=re.fn),Object.keys(S).length>0&&(a.idFilter=S),a}function synthRolldownOutput(n){return{output:n.output.map(n=>n.type===`chunk`?{type:`chunk`,fileName:n.fileName,code:n.code,name:n.name,isEntry:n.isEntry,isDynamicEntry:n.isDynamicEntry,map:n.map??null,sourcemapFileName:n.sourcemapFilename??null,imports:n.imports,dynamicImports:n.dynamicImports,facadeModuleId:null,moduleIds:[],modules:{},exports:[],referencedFiles:[],importedBindings:{}}:{type:`asset`,fileName:n.fileName,names:n.names,originalFileNames:n.originalFileNames,source:n.sourceText??``,needsCodeReference:!1})}}const rg=`assert.assert/strict.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.dns/promises.domain.events.fs.fs/promises.http.http2.https.inspector.module.net.os.path.path/posix.path/win32.perf_hooks.process.punycode.querystring.readline.readline/promises.repl.stream.stream/web.stream/consumers.stream/promises.string_decoder.sys.test.timers.timers/promises.tls.tty.url.util.util/types.v8.vm.wasi.sqlite.worker_threads.zlib`.split(`.`),ig=[`readable-stream`,`node-fetch`],ag={jsdom:`@gjsify/empty`,"./polling-xhr.node.js":`./polling-xhr.js`,"./websocket.node.js":`./websocket.js`,"./globals.node.js":`./globals.js`},og={assert:`@gjsify/assert`,"assert/strict":`@gjsify/assert/strict`,async_hooks:`@gjsify/async_hooks`,buffer:`@gjsify/buffer`,child_process:`@gjsify/child_process`,cluster:`@gjsify/cluster`,console:`@gjsify/console`,constants:`@gjsify/constants`,crypto:`@gjsify/crypto`,dgram:`@gjsify/dgram`,diagnostics_channel:`@gjsify/diagnostics_channel`,dns:`@gjsify/dns`,"dns/promises":`@gjsify/dns/promises`,domain:`@gjsify/domain`,events:`@gjsify/events`,fs:`@gjsify/fs`,"fs/promises":`@gjsify/fs/promises`,http:`@gjsify/http`,http2:`@gjsify/http2`,https:`@gjsify/https`,inspector:`@gjsify/inspector`,module:`@gjsify/module`,net:`@gjsify/net`,os:`@gjsify/os`,path:`@gjsify/path`,"path/posix":`@gjsify/path/posix`,"path/win32":`@gjsify/path/win32`,perf_hooks:`@gjsify/perf_hooks`,process:`@gjsify/process`,punycode:`@gjsify/punycode`,querystring:`@gjsify/querystring`,readline:`@gjsify/readline`,"readline/promises":`@gjsify/readline/promises`,repl:`@gjsify/repl`,stream:`@gjsify/stream`,"stream/web":`@gjsify/stream/web`,"stream/consumers":`@gjsify/stream/consumers`,"stream/promises":`@gjsify/stream/promises`,string_decoder:`@gjsify/string_decoder`,sys:`@gjsify/sys`,timers:`@gjsify/timers`,"timers/promises":`@gjsify/timers/promises`,tls:`@gjsify/tls`,tty:`@gjsify/tty`,url:`@gjsify/url`,util:`@gjsify/util`,"util/types":`@gjsify/util/types`,v8:`@gjsify/v8`,vm:`@gjsify/vm`,wasi:`@gjsify/wasi`,sqlite:`@gjsify/sqlite`,worker_threads:`@gjsify/worker_threads`,zlib:`@gjsify/zlib`,"node-fetch":`@gjsify/fetch`,ws:`@gjsify/ws`,"isomorphic-ws":`@gjsify/websocket`},sg={"abort-controller":`@gjsify/abort-controller`,"compression-streams":`@gjsify/compression-streams`,"dom-events":`@gjsify/dom-events`,"dom-exception":`@gjsify/dom-exception`,"event-target-shim":`@gjsify/dom-events`,"message-channel":`@gjsify/message-channel`,eventsource:`@gjsify/eventsource`,fetch:`@gjsify/fetch`,formdata:`@gjsify/formdata`,"html-image-element":`@gjsify/html-image-element`,webcrypto:`@gjsify/webcrypto`,webgl:`@gjsify/webgl`,websocket:`@gjsify/websocket`,webstorage:`@gjsify/webstorage`,"abort-controller/register":`@gjsify/abort-controller/register`,"compression-streams/register":`@gjsify/compression-streams/register`,"dom-events/register":`@gjsify/dom-events/register`,"dom-events/register/event-target":`@gjsify/dom-events/register/event-target`,"dom-events/register/custom-events":`@gjsify/dom-events/register/custom-events`,"dom-events/register/ui-events":`@gjsify/dom-events/register/ui-events`,"dom-exception/register":`@gjsify/dom-exception/register`,"message-channel/register":`@gjsify/message-channel/register`,"eventsource/register":`@gjsify/eventsource/register`,"websocket/register":`@gjsify/websocket/register`,"fetch/register":`@gjsify/fetch/register`,"fetch/register/fetch":`@gjsify/fetch/register/fetch`,"fetch/register/xhr":`@gjsify/fetch/register/xhr`,"webcrypto/register":`@gjsify/webcrypto/register`,"web-streams/register":`@gjsify/web-streams/register`,"web-streams/register/readable":`@gjsify/web-streams/register/readable`,"web-streams/register/writable":`@gjsify/web-streams/register/writable`,"web-streams/register/transform":`@gjsify/web-streams/register/transform`,"web-streams/register/text-streams":`@gjsify/web-streams/register/text-streams`,"web-streams/register/queuing":`@gjsify/web-streams/register/queuing`,xmlhttprequest:`@gjsify/fetch`,"xmlhttprequest/register":`@gjsify/fetch/register/xhr`,"@gjsify/xmlhttprequest":`@gjsify/fetch`,"@gjsify/xmlhttprequest/register":`@gjsify/fetch/register/xhr`,domparser:`@gjsify/domparser`,"domparser/register":`@gjsify/domparser/register`,webaudio:`@gjsify/webaudio`,"webaudio/register":`@gjsify/webaudio/register`,gamepad:`@gjsify/gamepad`,"gamepad/register":`@gjsify/gamepad/register`,webrtc:`@gjsify/webrtc`,"webrtc/register":`@gjsify/webrtc/register`,"webrtc/register/peer-connection":`@gjsify/webrtc/register/peer-connection`,"webrtc/register/data-channel":`@gjsify/webrtc/register/data-channel`,"webrtc/register/error":`@gjsify/webrtc/register/error`,"webrtc/register/media":`@gjsify/webrtc/register/media`,"webrtc/register/media-devices":`@gjsify/webrtc/register/media-devices`,webassembly:`@gjsify/webassembly`,"webassembly/register":`@gjsify/webassembly/register`,"webassembly/register/promise":`@gjsify/webassembly/register/promise`},cg={"@gjsify/node-globals":`@gjsify/empty`,"@gjsify/node-globals/register":`@gjsify/empty`,"@gjsify/node-globals/register/process":`@gjsify/empty`,"@gjsify/node-globals/register/buffer":`@gjsify/empty`,"@gjsify/node-globals/register/timers":`@gjsify/empty`,"@gjsify/node-globals/register/encoding":`@gjsify/empty`,"@gjsify/node-globals/register/url":`@gjsify/empty`,"@gjsify/node-globals/register/structured-clone":`@gjsify/empty`,"@gjsify/node-globals/register/microtask":`@gjsify/empty`,"@gjsify/web-globals":`@gjsify/empty`,"@gjsify/web-globals/register":`@gjsify/empty`,"@gjsify/web-globals/register/performance":`@gjsify/empty`,"@gjsify/web-globals/register/formdata":`@gjsify/empty`},lg={},ug={"abort-controller":`@gjsify/abort-controller/globals`,"compression-streams":`@gjsify/compression-streams/globals`,"dom-events":`@gjsify/dom-events/globals`,"dom-exception":`@gjsify/dom-exception/globals`,"message-channel":`@gjsify/message-channel/globals`,eventsource:`@gjsify/eventsource/globals`,formdata:`@gjsify/formdata/globals`,"html-image-element":`@gjsify/html-image-element`,webcrypto:`@gjsify/webcrypto/globals`,webgl:`@gjsify/webgl`,websocket:`@gjsify/websocket/globals`,webstorage:`@gjsify/webstorage`,"abort-controller/register":`@gjsify/empty`,"compression-streams/register":`@gjsify/empty`,"dom-events/register":`@gjsify/empty`,"dom-events/register/event-target":`@gjsify/empty`,"dom-events/register/custom-events":`@gjsify/empty`,"dom-events/register/ui-events":`@gjsify/empty`,"dom-exception/register":`@gjsify/empty`,"message-channel/register":`@gjsify/empty`,"eventsource/register":`@gjsify/empty`,"websocket/register":`@gjsify/empty`,"fetch/register":`@gjsify/empty`,"fetch/register/fetch":`@gjsify/empty`,"fetch/register/xhr":`@gjsify/empty`,"webcrypto/register":`@gjsify/empty`,"web-streams/register":`@gjsify/empty`,"web-streams/register/readable":`@gjsify/empty`,"web-streams/register/writable":`@gjsify/empty`,"web-streams/register/transform":`@gjsify/empty`,"web-streams/register/text-streams":`@gjsify/empty`,"web-streams/register/queuing":`@gjsify/empty`,"@gjsify/abort-controller/register":`@gjsify/empty`,"@gjsify/compression-streams/register":`@gjsify/empty`,"@gjsify/dom-events/register":`@gjsify/empty`,"@gjsify/dom-events/register/event-target":`@gjsify/empty`,"@gjsify/dom-events/register/custom-events":`@gjsify/empty`,"@gjsify/dom-events/register/ui-events":`@gjsify/empty`,"@gjsify/dom-exception/register":`@gjsify/empty`,"@gjsify/message-channel/register":`@gjsify/empty`,"@gjsify/eventsource/register":`@gjsify/empty`,"@gjsify/websocket/register":`@gjsify/empty`,"@gjsify/fetch/register":`@gjsify/empty`,"@gjsify/fetch/register/fetch":`@gjsify/empty`,"@gjsify/fetch/register/xhr":`@gjsify/empty`,"@gjsify/webcrypto/register":`@gjsify/empty`,"@gjsify/web-streams/register":`@gjsify/empty`,"@gjsify/web-streams/register/readable":`@gjsify/empty`,"@gjsify/web-streams/register/writable":`@gjsify/empty`,"@gjsify/web-streams/register/transform":`@gjsify/empty`,"@gjsify/web-streams/register/text-streams":`@gjsify/empty`,"@gjsify/web-streams/register/queuing":`@gjsify/empty`,"@gjsify/dom-elements/register":`@gjsify/empty`,"@gjsify/dom-elements/register/document":`@gjsify/empty`,"@gjsify/dom-elements/register/canvas":`@gjsify/empty`,"@gjsify/dom-elements/register/image":`@gjsify/empty`,"@gjsify/dom-elements/register/observers":`@gjsify/empty`,"@gjsify/dom-elements/register/font-face":`@gjsify/empty`,"@gjsify/dom-elements/register/match-media":`@gjsify/empty`,"@gjsify/dom-elements/register/location":`@gjsify/empty`,"@gjsify/dom-elements/register/navigator":`@gjsify/empty`,"@gjsify/buffer/register":`@gjsify/empty`,xmlhttprequest:`@gjsify/empty`,"xmlhttprequest/register":`@gjsify/empty`,"@gjsify/xmlhttprequest":`@gjsify/empty`,"@gjsify/xmlhttprequest/register":`@gjsify/empty`,domparser:`@gjsify/empty`,"domparser/register":`@gjsify/empty`,"@gjsify/domparser/register":`@gjsify/empty`,webaudio:`@gjsify/empty`,"webaudio/register":`@gjsify/empty`,"@gjsify/webaudio/register":`@gjsify/empty`,gamepad:`@gjsify/empty`,"gamepad/register":`@gjsify/empty`,"@gjsify/gamepad/register":`@gjsify/empty`,webrtc:`@gjsify/empty`,"webrtc/register":`@gjsify/empty`,"webrtc/register/peer-connection":`@gjsify/empty`,"webrtc/register/data-channel":`@gjsify/empty`,"webrtc/register/error":`@gjsify/empty`,"webrtc/register/media":`@gjsify/empty`,"webrtc/register/media-devices":`@gjsify/empty`,"@gjsify/webrtc":`@gjsify/empty`,"@gjsify/webrtc/register":`@gjsify/empty`,"@gjsify/webrtc/register/peer-connection":`@gjsify/empty`,"@gjsify/webrtc/register/data-channel":`@gjsify/empty`,"@gjsify/webrtc/register/error":`@gjsify/empty`,"@gjsify/webrtc/register/media":`@gjsify/empty`,"@gjsify/webrtc/register/media-devices":`@gjsify/empty`,webassembly:`@gjsify/webassembly/globals`,"webassembly/register":`@gjsify/empty`,"webassembly/register/promise":`@gjsify/empty`,"@gjsify/webassembly/register":`@gjsify/empty`,"@gjsify/webassembly/register/promise":`@gjsify/empty`},setNodeAliasPrefix=n=>{for(let a in n){if(a.startsWith(`node:`))continue;let S=`node:${a}`;n[S]||(n[S]=n[a])}return n},getAliasesGeneralForGjs=n=>ag,getAliasesNodeForGjs=n=>setNodeAliasPrefix(og),getAliasesWebForGjs=n=>sg,getAliasesGeneralForNode=n=>cg,getAliasesGjsForNode=n=>lg,getAliasesWebForNode=n=>ug,getAliasesForGjs=n=>({...getAliasesGeneralForGjs(n),...getAliasesNodeForGjs(n),...getAliasesWebForGjs(n)}),getAliasesForNode=n=>({...getAliasesGeneralForNode(n),...getAliasesGjsForNode(n),...getAliasesWebForNode(n)});[...rg,...rg.map(n=>`node:${n}`)],[...ig];var dg=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.splitWhen=n.flatten=void 0;function flatten(n){return n.reduce((n,a)=>[].concat(n,a),[])}n.flatten=flatten;function splitWhen(n,a){let S=[[]],C=0;for(let N of n)a(N)?(C++,S[C]=[]):S[C].push(N);return S}n.splitWhen=splitWhen})),fg=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.isEnoentCodeError=void 0;function isEnoentCodeError(n){return n.code===`ENOENT`}n.isEnoentCodeError=isEnoentCodeError})),pg=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createDirentFromStats=void 0;var DirentFromStats=class{constructor(n,a){this.name=n,this.isBlockDevice=a.isBlockDevice.bind(a),this.isCharacterDevice=a.isCharacterDevice.bind(a),this.isDirectory=a.isDirectory.bind(a),this.isFIFO=a.isFIFO.bind(a),this.isFile=a.isFile.bind(a),this.isSocket=a.isSocket.bind(a),this.isSymbolicLink=a.isSymbolicLink.bind(a)}};function createDirentFromStats(n,a){return new DirentFromStats(n,a)}n.createDirentFromStats=createDirentFromStats})),mg=__commonJSMin((n=>{Object.defineProperty(n,"__esModule",{value:!0}),n.convertPosixPathToPattern=n.convertWindowsPathToPattern=n.convertPathToPattern=n.escapePosixPath=n.escapeWindowsPath=n.escape=n.removeLeadingDotSegment=n.makeAbsolute=n.unixify=void 0;let a=(kp(),__toCommonJS(Sp)),S=(Ho(),__toCommonJS(Do)),C=a.platform()===`win32`,N=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,F=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,I=/^\\\\([.?])/,H=/\\(?![!()+@[\]{}])/g;function unixify(n){return n.replace(/\\/g,`/`)}n.unixify=unixify;function makeAbsolute(n,a){return S.resolve(n,a)}n.makeAbsolute=makeAbsolute;function removeLeadingDotSegment(n){if(n.charAt(0)===`.`){let a=n.charAt(1);if(a===`/`||a===`\\`)return n.slice(2)}return n}n.removeLeadingDotSegment=removeLeadingDotSegment,n.escape=C?escapeWindowsPath:escapePosixPath;function escapeWindowsPath(n){return n.replace(F,`\\$2`)}n.escapeWindowsPath=escapeWindowsPath;function escapePosixPath(n){return n.replace(N,`\\$2`)}n.escapePosixPath=escapePosixPath,n.convertPathToPattern=C?convertWindowsPathToPattern:convertPosixPathToPattern;function convertWindowsPathToPattern(n){return escapeWindowsPath(n).replace(I,`//$1`).replace(H,`/`)}n.convertWindowsPathToPattern=convertWindowsPathToPattern;function convertPosixPathToPattern(n){return escapePosixPath(n)}n.convertPosixPathToPattern=convertPosixPathToPattern})),hg=__commonJSMin(((n,a)=>{
633
633
  /*!
634
634
  * is-extglob <https://github.com/jonschlinkert/is-extglob>
635
635
  *
@@ -736,27 +736,27 @@ var S=Object.getOwnPropertySymbols,C=Object.prototype.hasOwnProperty,N=Object.pr
736
736
  `+a;let C=S[0],N=a.slice(C.length);return C+n+(N?`
737
737
  `+N:``)}function processStubPlugin(n={}){let a=composeBanner((n.captureBundleUrl?`globalThis.__gjsifyBundleUrl??=import.meta.url;`:``)+`if(typeof globalThis.process==="undefined"){const _s=imports.system,_G=imports.gi.GLib;const _h=t=>t?[0,0]:[0,0];_h.bigint=()=>0n;globalThis.process={platform:"linux",arch:"x64",version:"v20.0.0",env:new Proxy({},{get(_,p){return typeof p==="string"?(_G.getenv(p)??undefined):undefined},set(_,p,v){if(typeof p==="string")_G.setenv(p,String(v),true);return true},has(_,p){return typeof p==="string"&&_G.getenv(p)!==null},deleteProperty(_,p){if(typeof p==="string")_G.unsetenv(p);return true},ownKeys(){return _G.listenv()??[]},getOwnPropertyDescriptor(_,p){const v=_G.getenv(p);return v!==null?{value:v,writable:true,enumerable:true,configurable:true}:undefined}}),argv:_s?.programArgs?["gjs",_s.programInvocationName||"",..._s.programArgs]:["gjs"],versions:{},config:{},cwd(){return _G.get_current_dir()||"/"},exit(c){_s.exit(c??0)},stderr:{write(s){printerr(s)}},stdout:{write(s){print(s)}},stdin:null,exitCode:undefined,nextTick(fn,...a){Promise.resolve().then(()=>fn(...a))},hrtime:_h,};}`,n.userBanner??``);return{name:`gjsify-process-stub`,renderChunk:{order:`post`,handler(n,S){return S.isEntry?{code:a+`
738
738
  `+n,map:null}:null}}}}var NT=__commonJSMin(((n,a)=>{let isLinux=()=>process.platform===`linux`,S=null,getReport=()=>{if(!S)if(isLinux()&&process.report){let n=process.report.excludeNetwork;process.report.excludeNetwork=!0,S=process.report.getReport(),process.report.excludeNetwork=n}else S={};return S};a.exports={isLinux,getReport}})),PT=__commonJSMin(((n,a)=>{let S=(As(),__toCommonJS(Ds)),C=2048,readFileSync=n=>{let a=S.openSync(n,`r`),N=Buffer.alloc(C),F=S.readSync(a,N,0,C,0);return S.close(a,()=>{}),N.subarray(0,F)},readFile=n=>new Promise((a,N)=>{S.open(n,`r`,(n,F)=>{if(n)N(n);else{let n=Buffer.alloc(C);S.read(F,n,0,C,0,(C,N)=>{a(n.subarray(0,N)),S.close(F,()=>{})})}})});a.exports={LDD_PATH:`/usr/bin/ldd`,SELF_PATH:`/proc/self/exe`,readFileSync,readFile}})),FT=__commonJSMin(((n,a)=>{let interpreterPath=n=>{if(n.length<64||n.readUInt32BE(0)!==2135247942||n.readUInt8(4)!==2||n.readUInt8(5)!==1)return null;let a=n.readUInt32LE(32),S=n.readUInt16LE(54),C=n.readUInt16LE(56);for(let N=0;N<C;N++){let C=a+N*S;if(n.readUInt32LE(C)===3){let a=n.readUInt32LE(C+8),S=n.readUInt32LE(C+32);return n.subarray(a,a+S).toString().replace(/\0.*$/g,``)}}return null};a.exports={interpreterPath}})),IT=__commonJSMin(((n,a)=>{let S=(Hx(),__toCommonJS(zx)),{isLinux:C,getReport:N}=NT(),{LDD_PATH:F,SELF_PATH:I,readFile:H,readFileSync:W}=PT(),{interpreterPath:K}=FT(),q,Y,X,te=`getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true`,ne=``,safeCommand=()=>ne||new Promise(n=>{S.exec(te,(a,S)=>{ne=a?` `:S,n(ne)})}),safeCommandSync=()=>{if(!ne)try{ne=S.execSync(te,{encoding:`utf8`})}catch{ne=` `}return ne},re=`glibc`,ie=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,ae=`musl`,isFileMusl=n=>n.includes(`libc.musl-`)||n.includes(`ld-musl-`),familyFromReport=()=>{let n=N();return n.header&&n.header.glibcVersionRuntime?re:Array.isArray(n.sharedObjects)&&n.sharedObjects.some(isFileMusl)?ae:null},familyFromCommand=n=>{let[a,S]=n.split(/[\r\n]+/);return a&&a.includes(re)?re:S&&S.includes(ae)?ae:null},familyFromInterpreterPath=n=>{if(n){if(n.includes(`/ld-musl-`))return ae;if(n.includes(`/ld-linux-`))return re}return null},getFamilyFromLddContent=n=>(n=n.toString(),n.includes(`musl`)?ae:n.includes(`GNU C Library`)?re:null),familyFromFilesystem=async()=>{if(Y!==void 0)return Y;Y=null;try{Y=getFamilyFromLddContent(await H(F))}catch{}return Y},familyFromFilesystemSync=()=>{if(Y!==void 0)return Y;Y=null;try{Y=getFamilyFromLddContent(W(F))}catch{}return Y},familyFromInterpreter=async()=>{if(q!==void 0)return q;q=null;try{q=familyFromInterpreterPath(K(await H(I)))}catch{}return q},familyFromInterpreterSync=()=>{if(q!==void 0)return q;q=null;try{q=familyFromInterpreterPath(K(W(I)))}catch{}return q},family=async()=>{let n=null;return C()&&(n=await familyFromInterpreter(),n||(n=await familyFromFilesystem(),n||=familyFromReport(),n||=familyFromCommand(await safeCommand()))),n},familySync=()=>{let n=null;return C()&&(n=familyFromInterpreterSync(),n||(n=familyFromFilesystemSync(),n||=familyFromReport(),n||=familyFromCommand(safeCommandSync()))),n},isNonGlibcLinux=async()=>C()&&await family()!==re,isNonGlibcLinuxSync=()=>C()&&familySync()!==re,versionFromFilesystem=async()=>{if(X!==void 0)return X;X=null;try{let n=(await H(F)).match(ie);n&&(X=n[1])}catch{}return X},versionFromFilesystemSync=()=>{if(X!==void 0)return X;X=null;try{let n=W(F).match(ie);n&&(X=n[1])}catch{}return X},versionFromReport=()=>{let n=N();return n.header&&n.header.glibcVersionRuntime?n.header.glibcVersionRuntime:null},versionSuffix=n=>n.trim().split(/\s+/)[1],versionFromCommand=n=>{let[a,S,C]=n.split(/[\r\n]+/);return a&&a.includes(re)?versionSuffix(a):S&&C&&S.includes(ae)?versionSuffix(C):null},version=async()=>{let n=null;return C()&&(n=await versionFromFilesystem(),n||=versionFromReport(),n||=versionFromCommand(await safeCommand())),n},versionSync=()=>{let n=null;return C()&&(n=versionFromFilesystemSync(),n||=versionFromReport(),n||=versionFromCommand(safeCommandSync())),n};a.exports={GLIBC:re,MUSL:ae,family,familySync,isNonGlibcLinux,isNonGlibcLinuxSync,version,versionSync}})),LT=__commonJSMin(((n,a)=>{let S={and_chr:`chrome`,and_ff:`firefox`,ie_mob:`ie`,op_mob:`opera`,and_qq:null,and_uc:null,baidu:null,bb:null,kaios:null,op_mini:null};function browserslistToTargets(n){let a={};for(let C of n){let[n,N]=C.split(` `);if(S[n]===null)continue;let F=parseVersion(N);F!=null&&(a[n]==null||F<a[n])&&(a[n]=F)}return a}function parseVersion(n){let[a,S=0,C=0]=n.split(`-`)[0].split(`.`).map(n=>parseInt(n,10));return isNaN(a)||isNaN(S)||isNaN(C)?null:a<<16|S<<8|C}a.exports=browserslistToTargets})),RT=__commonJSMin(((n,a)=>{function composeVisitors(n){if(n.length===1)return n[0];if(n.some(n=>typeof n==`function`))return a=>composeVisitors(n.map(n=>typeof n==`function`?n(a):n));let a={};return composeSimpleVisitors(a,n,`StyleSheet`),composeSimpleVisitors(a,n,`StyleSheetExit`),composeObjectVisitors(a,n,`Rule`,ruleVisitor,wrapCustomAndUnknownAtRule),composeObjectVisitors(a,n,`RuleExit`,ruleVisitor,wrapCustomAndUnknownAtRule),composeObjectVisitors(a,n,`Declaration`,declarationVisitor,wrapCustomProperty),composeObjectVisitors(a,n,`DeclarationExit`,declarationVisitor,wrapCustomProperty),composeSimpleVisitors(a,n,`Url`),composeSimpleVisitors(a,n,`Color`),composeSimpleVisitors(a,n,`Image`),composeSimpleVisitors(a,n,`ImageExit`),composeSimpleVisitors(a,n,`Length`),composeSimpleVisitors(a,n,`Angle`),composeSimpleVisitors(a,n,`Ratio`),composeSimpleVisitors(a,n,`Resolution`),composeSimpleVisitors(a,n,`Time`),composeSimpleVisitors(a,n,`CustomIdent`),composeSimpleVisitors(a,n,`DashedIdent`),composeArrayFunctions(a,n,`MediaQuery`),composeArrayFunctions(a,n,`MediaQueryExit`),composeSimpleVisitors(a,n,`SupportsCondition`),composeSimpleVisitors(a,n,`SupportsConditionExit`),composeArrayFunctions(a,n,`Selector`),composeTokenVisitors(a,n,`Token`,`token`,!1),composeTokenVisitors(a,n,`Function`,`function`,!1),composeTokenVisitors(a,n,`FunctionExit`,`function`,!0),composeTokenVisitors(a,n,`Variable`,`var`,!1),composeTokenVisitors(a,n,`VariableExit`,`var`,!0),composeTokenVisitors(a,n,`EnvironmentVariable`,`env`,!1),composeTokenVisitors(a,n,`EnvironmentVariableExit`,`env`,!0),a}a.exports=composeVisitors;function wrapCustomAndUnknownAtRule(n,a){return n===`unknown`?(n=>a({type:`unknown`,value:n})):n===`custom`?(n=>a({type:`custom`,value:n})):a}function wrapCustomProperty(n,a){return n===`custom`?(n=>a({property:`custom`,value:n})):a}function ruleVisitor(n,a){if(typeof n==`object`){if(a.type===`unknown`){let S=n.unknown;return typeof S==`object`&&(S=S[a.value.name]),S?.(a.value)}if(a.type===`custom`){let S=n.custom;return typeof S==`object`&&(S=S[a.value.name]),S?.(a.value)}return n[a.type]?.(a)}return n?.(a)}function declarationVisitor(n,a){if(typeof n==`object`){let S=a.property;if(a.property===`unparsed`)S=a.value.propertyId.property;else if(a.property===`custom`){let S=n.custom;return typeof S==`object`&&(S=S[a.value.name]),S?.(a.value)}return n[S]?.(a)}return n?.(a)}function extractObjectsOrFunctions(n,a){let S=[],C=!1,N=new Set;for(let F of n){let n=F[a];if(n){if(typeof n==`function`)C=!0;else for(let a in n)N.add(a);S.push(n)}}return[S,C,N]}function composeObjectVisitors(n,a,S,C,N){let[F,I,H]=extractObjectsOrFunctions(a,S);if(F.length===0)return;if(F.length===1){n[S]=F[0];return}let W=createArrayVisitor(a,(n,a)=>C(n[S],a));if(I)n[S]=W;else{let a={};for(let n of H)a[n]=N(n,W);n[S]=a}}function composeTokenVisitors(n,a,S,C,N){let[F,I,H]=extractObjectsOrFunctions(a,S);if(F.length===0)return;if(F.length===1){n[S]=F[0];return}let W=createTokenVisitor(a,C,N);if(I)n[S]=W;else{let a={};for(let n of H)a[n]=W;n[S]=a}}function createTokenVisitor(n,a,S){let C=createArrayVisitor(n,(n,a)=>{let C;switch(a.type){case`token`:C=n.Token,typeof C==`object`&&(C=C[a.value.type]);break;case`function`:C=S?n.FunctionExit:n.Function,typeof C==`object`&&(C=C[a.value.name]);break;case`var`:C=S?n.VariableExit:n.Variable;break;case`env`:if(C=S?n.EnvironmentVariableExit:n.EnvironmentVariable,typeof C==`object`){let n;switch(a.value.name.type){case`ua`:case`unknown`:n=a.value.name.value;break;case`custom`:n=a.value.name.ident;break}C=C[n]}break;case`color`:C=n.Color;break;case`url`:C=n.Url;break;case`length`:C=n.Length;break;case`angle`:C=n.Angle;break;case`time`:C=n.Time;break;case`resolution`:C=n.Resolution;break;case`dashed-ident`:C=n.DashedIdent;break}if(!C)return;let N=C(a.value);switch(a.type){case`color`:case`url`:case`length`:case`angle`:case`time`:case`resolution`:case`dashed-ident`:Array.isArray(N)?N=N.map(n=>({type:a.type,value:n})):N&&={type:a.type,value:N};break}return N});return n=>C({type:a,value:n})}function extractFunctions(n,a){let S=[];for(let C of n){let n=C[a];n&&S.push(n)}return S}function composeSimpleVisitors(n,a,S){let C=extractFunctions(a,S);if(C.length!==0){if(C.length===1){n[S]=C[0];return}n[S]=n=>{let a=!1;for(let S of C){let C=S(n);C&&(n=C,a=!0)}return a?n:void 0}}}function composeArrayFunctions(n,a,S){let C=extractFunctions(a,S);if(C.length!==0){if(C.length===1){n[S]=C[0];return}n[S]=createArrayVisitor(C,(n,a)=>n(a))}}function createArrayVisitor(n,a){let S=new Bitset(n.length);return C=>{let N=[C],F=!1;S.clear();for(let C=0;C<N.length;C++)for(let I=0;I<n.length&&C<N.length;){if(S.get(I)){I++;continue}let H=N[C],W=n[I],K=a(W,H);Array.isArray(K)?(K.length===0?N.splice(C,1):K.length===1?N[C]=K[0]:N.splice(C,1,...K),F=!0,S.set(I),I=0):K?(N[C]=K,F=!0,S.set(I),I=0):I++}if(F)return N.length===1?N[0]:N}}var Bitset=class{constructor(n=32){this.bits=0,this.more=n>32?new Uint32Array(Math.ceil((n-32)/32)):null}get(n){if(n>=32&&this.more){let a=Math.floor((n-32)/32),S=n%32;return!!(this.more[a]&1<<S)}else return!!(this.bits&1<<n)}set(n){if(n>=32&&this.more){let a=Math.floor((n-32)/32),S=n%32;this.more[a]|=1<<S}else this.bits|=1<<n}clear(){this.bits=0,this.more&&this.more.fill(0)}}})),zT=__commonJSMin((n=>{n.Features={Nesting:1,NotSelectorList:2,DirSelector:4,LangSelectorList:8,IsSelector:16,TextDecorationThicknessPercent:32,MediaIntervalSyntax:64,MediaRangeSyntax:128,CustomMediaQueries:256,ClampFunction:512,ColorFunction:1024,OklabColors:2048,LabColors:4096,P3Colors:8192,HexAlphaColors:16384,SpaceSeparatedColorNotation:32768,FontFamilySystemUi:65536,DoublePositionGradients:131072,VendorPrefixes:262144,LogicalProperties:524288,LightDark:1048576,Selectors:31,MediaQueries:448,Colors:1113088}})),BT=__commonJSMin(((n,a)=>{let S=[process.platform,process.arch];if(process.platform===`linux`){let{MUSL:n,familySync:a}=IT();a()===n?S.push(`musl`):process.arch===`arm`?S.push(`gnueabihf`):S.push(`gnu`)}else process.platform===`win32`&&S.push(`msvc`);let C;try{C=K(`lightningcss-${S.join(`-`)}`)}catch{C=K(`../lightningcss.${S.join(`-`)}.node`)}a.exports.transform=wrap(C.transform),a.exports.transformStyleAttribute=wrap(C.transformStyleAttribute),a.exports.bundle=wrap(C.bundle),a.exports.bundleAsync=wrap(C.bundleAsync),a.exports.browserslistToTargets=LT(),a.exports.composeVisitors=RT(),a.exports.Features=zT().Features;function wrap(n){return a=>{if(typeof a.visitor==`function`){let S=[];a.visitor=a.visitor({addDependency(n){S.push(n)}});let C=n(a);return C instanceof Promise?C=C.then(n=>(S.length&&(n.dependencies??=[],n.dependencies.push(...S)),n)):S.length&&(C.dependencies??=[],C.dependencies.push(...S)),C}else return n(a)}}})),VT=__exportAll$3({Features:()=>YT,browserslistToTargets:()=>qT,bundle:()=>GT,bundleAsync:()=>KT,composeVisitors:()=>JT,transform:()=>UT,transformStyleAttribute:()=>WT}),HT,UT,WT,GT,KT,qT,JT,YT,XT=__esmMin(()=>{HT=__toESM(BT(),1),{transform:UT,transformStyleAttribute:WT,bundle:GT,bundleAsync:KT,browserslistToTargets:qT,composeVisitors:JT,Features:YT}=HT.default});ss(),zs(),Ho(),rn();let ZT=null;async function pickBundler(){let n=globalThis.process?.env?.GJSIFY_CSS_BACKEND;if(n===`npm`)return loadNpmBundler();if(n===`native`){let n=await tryLoadNativeBundler();if(!n)throw Error(`GJSIFY_CSS_BACKEND=native but @gjsify/lightningcss-native is not loadable`);return n}return await tryLoadNativeBundler()??loadNpmBundler()}async function tryLoadNativeBundler(){if(globalThis.imports?.gi===void 0)return null;try{let n=await import(`@gjsify/lightningcss-native`);return n.hasNativeLightningcss()?async(a,S)=>{let C=targetsToBrowserslist(S);return n.bundle({filename:a,targets:C,minify:!1,sourceMap:!1,errorRecovery:!0})}:null}catch{return null}}async function loadNpmBundler(){let{bundleAsync:n}=await Promise.resolve().then(()=>(XT(),VT));return async(a,S)=>({code:(await n({filename:a,targets:S,minify:!1,errorRecovery:!0,resolver:QT})).code})}const QT={resolve(n,a){return Ao(n)?n:n.startsWith(`./`)||n.startsWith(`../`)?Oo(Po(a),n):createRequire(pathToFileURL(a).href).resolve(n)}};function targetsToBrowserslist(n){if(!n)return;let a=[];for(let[S,C]of Object.entries(n)){if(typeof C!=`number`)continue;let n=C>>>16&255;if(n===0)continue;let N=S===`ios_saf`?`ios`:S;a.push(`${N} >= ${n}`)}return a.length?a.join(`, `):void 0}function cssAsStringPlugin(n={}){let{targets:a,bundle:S=!0}=n;return{name:`gjsify-css-as-string`,load:{filter:{id:/\.css$/},async handler(n){let C=S?new TextDecoder(`utf-8`).decode(await loadAndBundleCss(n,a)):await readFile$1(n,`utf8`);return{code:`export default ${JSON.stringify(C)};`,moduleType:`js`}}}}}async function loadAndBundleCss(n,a){ZT||=pickBundler();let{code:S}=await(await ZT)(n,a);return S}const $T=/^#![^\n]*\n/;function inputShebangStripPlugin(){return{name:`gjsify-input-shebang-strip`,transform:{order:`pre`,handler(n){return n.startsWith(`#!`)?{code:n.replace($T,``),map:null}:null}}}}function shebangPlugin(n={}){if(!n.enabled)return null;let a=n.line??`#!/usr/bin/env -S gjs -m`;return{name:`gjsify-shebang`,renderChunk:{order:`post`,handler(n,S){return!S.isEntry||n.startsWith(`#!`)?null:{code:a+`
739
- `+n,map:null}}}}}function expandEnvTemplate(n,a=process.env){return n.replace(/\$\{env:([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}/g,(n,S,C)=>{let N=a[S];return N!==void 0&&N!==``?N:C??``})}function resolveShebangLine(n,a=`#!/usr/bin/env -S gjs -m`){if(n===void 0||n===!1)return null;if(n===!0)return a;let S=expandEnvTemplate(n);return S.trim()?S.startsWith(`#!`)?S:`#!`+S:null}rn(),Ho();const eE=Po(fileURLToPath(import.meta.url));function resolveConsoleShim(){let n=Oo(eE,`../shims/console-gjs.js`),a=null;try{a=(As(),__toCommonJS(Ds))}catch{return n}if(a.existsSync(n))return n;try{return(zs(),__toCommonJS(Fs)).createRequire(import.meta.url).resolve(`@gjsify/rolldown-plugin-gjsify/shims/console-gjs`)}catch{return n}}const setupForGjs=async n=>{let a=[`cairo`,`gettext`,`system`,...n.userExternal??[]],external=n=>!!(n.startsWith(`gi://`)||a.includes(n)),S=n.pluginOptions.format??`esm`,C=n.pluginOptions.exclude??[],N=await globToEntryPoints(n.input,C),F=Oo(eE,`../shims/unicorn-magic.js`),I={...getAliasesForGjs({external}),"unicorn-magic":F,...n.pluginOptions.aliases??{},...n.userAliases??{}},H=n.pluginOptions.consoleShim===!1?null:resolveConsoleShim(),W=[];n.pluginOptions.autoGlobalsInject&&W.push(n.pluginOptions.autoGlobalsInject);let K=wrapInputWithSideEffects(N,W),q={input:K.input,platform:`neutral`,external,resolve:{mainFields:S===`esm`?[`browser`,`module`,`main`]:[`browser`,`main`,`module`],conditionNames:S===`esm`?[`browser`,`import`]:[`browser`,`require`,`import`]},transform:{target:`firefox140`,define:{global:`globalThis`,window:`globalThis`,"process.env.READABLE_STREAM":`"disable"`},...H?{inject:{console:[H,`console`]}}:{}},output:{...n.output,format:S,sourcemap:!1,codeSplitting:!1},treeshake:!0},Y=getBundleDirFromOutput(n.output);return{options:q,plugins:[...K.plugin?[K.plugin]:[],inputShebangStripPlugin(),aliasPlugin({entries:{"random-access-file":`random-access-file/index.js`,...flattenAliases$3(I)}}),blueprintPlugin(),deepkitPlugin({reflection:n.pluginOptions.reflection}),cssAsStringPlugin({targets:{firefox:60<<16}}),nodeModulesPathRewritePlugin({bundleDir:Y,runtimeResolve:S===`esm`}),processStubPlugin({userBanner:n.userBanner,captureBundleUrl:S===`esm`}),(()=>{let a=resolveShebangLine(n.shebang);return shebangPlugin({enabled:a!==null,line:a??void 0})})()]}};function wrapInputWithSideEffects(n,a){if(a.length===0||n===void 0)return{input:n,plugin:null};let S=new Map,C=`\0gjsify-entry:`;function wrap(n){let a=C+n;return S.set(a,n),a}let N;if(typeof n==`string`)N=wrap(n);else if(Array.isArray(n))N=n.map(wrap);else{let a={};for(let[S,C]of Object.entries(n))a[S]=wrap(C);N=a}let F=a.map(n=>`import ${JSON.stringify(n)};`).join(`
740
- `),I=new Set;return{input:N,plugin:{name:`gjsify-virtual-entry`,async resolveId(n,a){return n.startsWith(C)?n:I.has(n)?{id:n,moduleSideEffects:`no-treeshake`}:null},async load(n){if(!n.startsWith(C))return null;let a=S.get(n);if(!a)return null;let N=(await this.resolve(a,void 0,{skipSelf:!0}))?.id??a;return I.add(N),{code:`${F}\nimport ${JSON.stringify(N)};\nexport * from ${JSON.stringify(N)};\n`,moduleSideEffects:`no-treeshake`}}}}}function flattenAliases$3(n){let a={};for(let[S,C]of Object.entries(n))C&&(a[S]=C);return a}__name$1(flattenAliases$3,`flattenAliases`);const setupForNode=async n=>{let a=n.userExternal??[],S=[...rg,`node-datachannel`,...a],external=n=>!!(n.startsWith(`gi://`)||n.startsWith(`@girs/`)||S.includes(n)),C=n.pluginOptions.format??`esm`,N=n.pluginOptions.exclude??[],F=await globToEntryPoints(n.input,N),I={...getAliasesForNode({external}),...n.pluginOptions.aliases??{},...n.userAliases??{}},H=getBundleDirFromOutput(n.output);return{options:{input:F,platform:`node`,external,resolve:{mainFields:C===`esm`?[`module`,`main`,`browser`]:[`main`,`module`,`browser`],conditionNames:C===`esm`?[`require`,`node`,`module`]:[`require`]},transform:{target:`node24`,define:{global:`globalThis`,window:`globalThis`}},output:{...n.output,format:C,sourcemap:!1,banner:void 0,codeSplitting:!1},treeshake:!0},plugins:[aliasPlugin({entries:flattenAliases$2(I)}),deepkitPlugin({reflection:n.pluginOptions.reflection}),cssAsStringPlugin(),nodeModulesPathRewritePlugin({bundleDir:H})]}};function flattenAliases$2(n){let a={};for(let[S,C]of Object.entries(n))C&&(a[S]=C);return a}__name$1(flattenAliases$2,`flattenAliases`);const tE=`\0gjsify-empty-gjs-import`;function gjsImportsEmptyPlugin(){return{name:`gjsify-gjs-imports-empty`,resolveId:{order:`pre`,filter:{id:/^(@girs\/|gi:\/\/)/},handler(n){return/^(@girs\/|gi:\/\/)/.test(n)?{id:tE}:null}},load(n){return n===tE?{code:`export {}; export default {};`,moduleSideEffects:!1}:null}}}const setupForBrowser=async n=>{let a=[...n.userExternal??[]],S=n.pluginOptions.exclude??[],C=await globToEntryPoints(n.input,S),N={process:`@gjsify/empty`,"node:process":`@gjsify/empty`,assert:`@gjsify/assert`,"node:assert":`@gjsify/assert`,...n.pluginOptions.aliases??{},...n.userAliases??{}};return{options:{input:C,platform:`browser`,external:a,resolve:{mainFields:[`browser`,`module`,`main`],conditionNames:[`import`,`browser`]},transform:{target:`esnext`,define:{global:`globalThis`,window:`globalThis`}},output:{...n.output,format:`esm`,sourcemap:!1,codeSplitting:!1},treeshake:!0},plugins:[gjsImportsEmptyPlugin(),aliasPlugin({entries:flattenAliases$1(N)}),blueprintPlugin(),deepkitPlugin({reflection:n.pluginOptions.reflection}),cssAsStringPlugin()]}};function flattenAliases$1(n){let a={};for(let[S,C]of Object.entries(n))C&&(a[S]=C);return a}__name$1(flattenAliases$1,`flattenAliases`);const setupLib=async n=>{let a=n.pluginOptions.format??n.pluginOptions.library??`esm`,S=n.pluginOptions.exclude??[],C=await globToEntryPoints(n.input,S),N=computeCommonRoot(C),F={...n.pluginOptions.aliases??{},...n.userAliases??{}},external=n=>!(n.startsWith(`./`)||n.startsWith(`../`)||n.startsWith(`/`));return{options:{input:C,platform:`neutral`,external,resolve:{mainFields:a===`esm`?[`module`,`main`]:[`main`],conditionNames:a===`esm`?[`module`,`import`]:[`require`]},transform:{target:`esnext`},output:{...n.output,format:a,preserveModules:!0,preserveModulesRoot:N,sourcemap:!1},treeshake:!1},plugins:[aliasPlugin({entries:flattenAliases(F)}),cssAsStringPlugin()]}};function computeCommonRoot(n){let a=n===void 0?[]:typeof n==`string`?[n]:Array.isArray(n)?n:Object.values(n);if(a.length===0)return`src`;let S=a.map(n=>n.split(`/`).filter(Boolean)),C=S[0],N=0;for(;N<C.length;N++){let n=C[N];if(!S.every(a=>a[N]===n))break}if(N===0)return`src`;let F=C.slice(0,N);return S.some(n=>n.length>N)?F.join(`/`):F.slice(0,-1).join(`/`)||`src`}function flattenAliases(n){let a={};for(let[S,C]of Object.entries(n))C&&(a[S]=C);return a}ss();function textLoaderPlugin(n={}){let a=Object.entries(n.loaders??{}).filter(([,n])=>n===`text`).map(([n])=>n);if(a.length===0)return null;let S=a.map(n=>n.replace(/^\./,``).replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)),C=RegExp(`\\.(?:${S.join(`|`)})$`);return{name:`gjsify-text-loader`,async load(n){if(!C.test(n))return null;let a=await readFile$1(n,`utf8`);return{code:`export default ${JSON.stringify(a)};`,moduleType:`js`}}}}const gjsifyPlugin=async(n,a={})=>{if(a.library)switch(a.library){case`esm`:case`cjs`:return await setupLib({input:n.input,output:n.output,userAliases:n.userAliases,pluginOptions:a});default:throw TypeError(`Unknown library type: `+a.library)}let S=a.app??`gjs`;switch(S){case`gjs`:return await setupForGjs({input:n.input,output:n.output,userExternal:n.userExternal,userBanner:n.userBanner,userAliases:n.userAliases,shebang:n.shebang,pluginOptions:a});case`node`:return await setupForNode({input:n.input,output:n.output,userExternal:n.userExternal,userAliases:n.userAliases,pluginOptions:a});case`browser`:return await setupForBrowser({input:n.input,output:n.output,userExternal:n.userExternal,userAliases:n.userAliases,pluginOptions:a});default:throw TypeError(`Unknown app platform: `+S)}};zs(),Ho(),rn();function isPluginByName(n){return typeof n==`object`&&!!n&&typeof n.name==`string`&&!(`apply`in n)&&!(`resolveId`in n)&&!(`load`in n)&&!(`transform`in n)&&!(`renderChunk`in n)&&!(`generateBundle`in n)}async function resolveUserPlugins(n,a){let S=createRequire(jo(a,`package.json`)),C=[];for(let N of n){if(!isPluginByName(N)){C.push(N);continue}let n;try{n=S.resolve(N.name)}catch(n){throw Error(`gjsify config: failed to resolve plugin "${N.name}" from ${a}. Add it to your project's dependencies, or pass a Plugin object directly. (${n.message})`)}let F=await import(pathToFileURL(n).href),I=N.export??`default`,H=F[I];if(typeof H!=`function`){let n=Object.keys(F).filter(n=>typeof F[n]==`function`);throw Error(`gjsify config: plugin "${N.name}" has no function export "${I}". Available function exports: ${n.length?n.join(`, `):`(none)`}.`)}let W=await H(N.options);if(W==null)throw Error(`gjsify config: plugin "${N.name}" factory returned ${W}. Check the plugin's signature — it should return a Rolldown/Vite plugin object.`);C.push(W)}return C}Ie();const defaultBundler=async({rolldownInput:n,format:a})=>{let S=await(await import(`rolldown`)).rolldown(n);try{let n=await S.generate({format:a,minify:!1,sourcemap:!1}),C=[];for(let a of n.output)a.type===`chunk`&&C.push(a.code);return C}finally{await S.close()}},nE=Ey;function setsEqual(n,a){if(n.size!==a.size)return!1;for(let S of n)if(!a.has(S))return!1;return!0}async function applyExcludeGlobals(n,a,S,C){if(!C?.length)return{detected:n,injectPath:a};for(let a of C)n.delete(a);let N=detectedToRegisterPaths(n);for(let n of S)N.add(n);return{detected:n,injectPath:N.size>0?await writeRegisterInjectFile(N)??void 0:void 0}}function detectedToRegisterPaths(n){let a=new Set;for(let S of n){let n=nE[S];n&&a.add(n)}return a}function isFullConfig(n){return typeof n==`object`&&!!n&&!Array.isArray(n)&&`plugins`in n&&`options`in n}async function detectAutoGlobals(n,a,S,C,N={},F=defaultBundler){let I=N.extraGlobalsList?resolveGlobalsList(N.extraGlobalsList):new Set,H=new Set(N.excludeGlobals??[]),W=new Set,K;I.size>0&&(K=await writeRegisterInjectFile(I)??void 0);let q=(n.plugins??[]).filter(n=>{let a=n&&typeof n==`object`&&`name`in n?n.name:void 0;return a!==`gjsify`&&a!==`gjsify-orchestrator`});for(let Y=1;Y<=5;Y++){let X=await S({...a,autoGlobalsInject:K}),te,ne;isFullConfig(X)?(ne=X.options,te=X.plugins):te=X;let re=K?appendInjectAsEntry(n.input,K):n.input,ie=n.resolve??ne?.resolve,ae=n.external??ne?.external,oe=n.transform??ne?.transform,Z=ne?.treeshake,se=Array.isArray(te)?te:[te],ce=await F({rolldownInput:{input:re,external:ae,resolve:ie,transform:oe,plugins:[...q,...se],logLevel:`silent`,...Z===void 0?{}:{treeshake:Z}},format:n.format??`esm`});if(ce.length===0)return{detected:new Set,injectPath:K};let le=new Set;for(let n=0;n<ce.length;n++){let a=ce[n]??``;try{for(let n of detectFreeGlobals(a))le.add(n)}catch(S){if(globalThis.process?.env?.GJSIFY_DEBUG_AUTO_GLOBALS){let S=`/tmp/gjsify-auto-globals-failed-chunk-${n}.mjs`;try{(await Promise.resolve().then(()=>(As(),Ds))).writeFileSync(S,a),Fe.error(`[gjsify-auto-globals] parse failed on chunk #${n} — wrote ${S} for inspection`)}catch{}}throw S}}if(H.size>0)for(let n of H)le.delete(n);if(setsEqual(W,le)){if(C){let n=[...W].sort(),a=I.size>0?` (+ ${I.size} extra register module(s))`:``;Fe.debug(`[gjsify] --globals auto: converged after ${Y-1} iteration(s), ${W.size} global(s)${n.length?`: `+n.join(`, `):``}${a}`)}return applyExcludeGlobals(W,K,I,N.excludeGlobals)}W=le;let ue=detectedToRegisterPaths(W);for(let n of I)ue.add(n);if(ue.size===0)return{detected:W,injectPath:void 0};if(K=await writeRegisterInjectFile(ue)??void 0,C){let n=[...W].sort();Fe.debug(`[gjsify] --globals auto: iteration ${Y}, ${W.size} global(s)${n.length?`: `+n.join(`, `):``}`)}}return C&&Fe.debug(`[gjsify] --globals auto: hit max iterations (5), using last detected set`),applyExcludeGlobals(W,K,I,N.excludeGlobals)}function appendInjectAsEntry(n,a){return n===void 0?[a]:typeof n==`string`?[n,a]:Array.isArray(n)?[...n,a]:{...n,__gjsify_inject:a}}zs(),rn(),Ho(),As(),ss();function findPnpRoot(n){let a=n;for(;;){if(existsSync(jo(a,`.pnp.cjs`)))return a;let n=Po(a);if(n===a)return null;a=n}}async function loadPnpApi(){try{let n=await import(`pnpapi`);return n.default??n}catch{return null}}async function pnpPlugin(n={}){let a=n.issuerUrl??import.meta.url;if(!findPnpRoot(process.cwd()))return null;let S=await loadPnpApi();if(S===null)return null;let C=fileURLToPath(a),N=createRequire(C),F=n.relayPackages??[`@gjsify/node-polyfills`,`@gjsify/web-polyfills`],I=[];for(let n of F)try{I.push(N.resolve(`${n}/package.json`))}catch{}return{name:`gjsify-pnp`,resolveId:{order:`pre`,async handler(n,a){if(n.startsWith(`.`)||n.startsWith(`/`))return null;if(n.startsWith(`gi://`))return{id:n,external:!0};if(!a)return null;let N=a.startsWith(`file://`)?fileURLToPath(a):a;try{let a=S.resolveRequest(n,N);return a===null?null:{id:a}}catch(a){if(!isUndeclaredDependency(a))throw a;try{let a=S.resolveRequest(n,C);if(a!==null)return{id:a}}catch(n){if(!isUndeclaredDependency(n))throw n}for(let a of I)try{let C=S.resolveRequest(n,a);if(C!==null)return{id:C}}catch(n){if(!isUndeclaredDependency(n))throw n}return null}}},async load(n){if(!n.includes(`/.yarn/`)&&!n.includes(`.zip/`))return null;try{return{code:await readFile$1(n,`utf8`)}}catch(a){let S=a instanceof Error?a.message:String(a);this.error(`gjsify-pnp: failed to read ${n}: ${S}`)}}}}function isUndeclaredDependency(n){return typeof n==`object`&&!!n&&`pnpCode`in n&&n.pnpCode===`UNDECLARED_DEPENDENCY`}Ie();let rE=!1;function normalizeBundlerOptions(n){let a=n.bundler??{};if(!n.esbuild)return a;rE||(rE=!0,Fe.warn(`[gjsify] DEPRECATION: the 'esbuild' config key is deprecated and will be removed in 0.5.0. Rename it to 'bundler' (typed as RolldownOptions). See the migration notes in the gjsify CHANGELOG.`));let S=legacyEsbuildToRolldown(n.esbuild),C={...S,...a};return(S.output||a.output)&&(C.output={...S.output??{},...a.output??{}}),(S.transform||a.transform)&&(C.transform={...S.transform??{},...a.transform??{}},(S.transform?.define||a.transform?.define)&&(C.transform.define={...S.transform?.define??{},...a.transform?.define??{}})),(S.resolve||a.resolve)&&(C.resolve={...S.resolve??{},...a.resolve??{}}),C}function legacyEsbuildToRolldown(n){let a={},S={},C={},N={};return n.outfile!==void 0&&(S.file=n.outfile),n.outdir!==void 0&&(S.dir=n.outdir),n.format!==void 0&&(S.format=n.format),n.minify!==void 0&&(S.minify=n.minify),n.sourcemap!==void 0&&(S.sourcemap=n.sourcemap===`inline`?`inline`:!!n.sourcemap),n.banner?.js!==void 0&&(S.banner=n.banner.js),n.target!==void 0&&(C.target=Array.isArray(n.target)?n.target.join(`,`):n.target),n.define!==void 0&&(C.define=n.define),n.mainFields!==void 0&&(N.mainFields=n.mainFields),n.conditions!==void 0&&(N.conditionNames=n.conditions),n.external!==void 0&&(a.external=n.external),n.platform!==void 0&&(a.platform=n.platform),Object.keys(S).length>0&&(a.output=S),Object.keys(C).length>0&&(a.transform=C),Object.keys(N).length>0&&(a.resolve=N),a}function mergeBundlerOptions(n,a){let{input:S,external:C,...N}=a,F={...n,...N};return(n.output||a.output)&&(F.output={...n.output??{},...a.output??{}}),(n.transform||a.transform)&&(F.transform={...n.transform??{},...a.transform??{}},(n.transform?.define||a.transform?.define)&&(F.transform.define={...n.transform?.define??{},...a.transform?.define??{}})),(n.resolve||a.resolve)&&(F.resolve={...n.resolve??{},...a.resolve??{}}),F}Ie(),Ho(),ss();function isUnsafeDefaultOutput(n){if(/\.[cm]?tsx?$/i.test(n))return!0;let a=n.replace(/\\/g,`/`);return!!/(?:^|\/)src\//.test(a)}async function buildPnpPlugin(){return pnpPlugin({issuerUrl:import.meta.url})}var BuildAction=class{configData;constructor(n={}){this.configData=n}async buildLibrary(){let{verbose:n,library:a,typescript:S,exclude:C,aliases:N}=this.configData,F=a??{},I=normalizeBundlerOptions(this.configData),H=F.module?Po(F.module):void 0,W=F.main?Po(F.main):void 0,K=F.module?Io(F.module):`.js`,q=F.main?Io(F.main):`.js`,Y=H&&W&&H!==W,X=await buildPnpPlugin(),te=X?[X]:[],ne=[];if(Y){let a=H.includes(`/cjs`)||K===`.cjs`?`cjs`:`esm`;ne.push(await runOneLibraryBuild({pluginOpts:{debug:n,library:a,exclude:C,reflection:S?.reflection,jsExtension:K},userBundler:I,output:{dir:H},userAliases:N,pnpPlugins:te}));let F=W.includes(`/cjs`)||q===`.cjs`?`cjs`:`esm`;ne.push(await runOneLibraryBuild({pluginOpts:{debug:n,library:F,exclude:C,reflection:S?.reflection,jsExtension:q},userBundler:I,output:{dir:W},userAliases:N,pnpPlugins:te}))}else{let a=I.output?.file??F.module??F.main,H=a?Io(a):`.js`,W=I.output?.dir??(a?Po(a):void 0),K=I.output?.format??(W?.includes(`/cjs`)||H===`.cjs`?`cjs`:`esm`);ne.push(await runOneLibraryBuild({pluginOpts:{debug:n,library:K,exclude:C,reflection:S?.reflection,jsExtension:H},userBundler:I,output:{dir:W},userAliases:N,pnpPlugins:te}))}return ne}parseGlobalsValue(n){if(n===void 0)return{autoMode:!0,extras:``};if(n===`none`||n===``)return{autoMode:!1,extras:``};let a=n.split(`,`).map(n=>n.trim()).filter(Boolean);return{autoMode:a.includes(`auto`),extras:a.filter(n=>n!==`auto`).join(`,`)}}async resolveGlobalsInject(n,a,S){if(n!==`gjs`||!a)return;let C=resolveGlobalsList(a);if(C.size===0)return;let N=await writeRegisterInjectFile(C,process.cwd());return S&&N&&Fe.debug(`[gjsify] globals: injected ${C.size} register module(s) from --globals ${a}`),N??void 0}async applyShebang(n,a,S){if(!a){S&&Fe.warn(`[gjsify] --shebang skipped: no single outfile (use --outfile for executables)`);return}let C=n===`node`?`#!/usr/bin/env node`:`#!/usr/bin/env -S gjs -m`,N=resolveShebangLine(this.configData.shebang,C)??C,F=await readFile$1(a,`utf-8`);F.startsWith(`#!`)?S&&Fe.debug(`[gjsify] --shebang skipped: ${a} already starts with a shebang`):await writeFile$1(a,N+`
739
+ `+n,map:null}}}}}function expandEnvTemplate(n,a=process.env){return n.replace(/\$\{env:([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}/g,(n,S,C)=>{let N=a[S];return N!==void 0&&N!==``?N:C??``})}function resolveShebangLine(n,a=`#!/usr/bin/env -S gjs -m`){if(n===void 0||n===!1)return null;if(n===!0)return a;let S=expandEnvTemplate(n);return S.trim()?S.startsWith(`#!`)?S:`#!`+S:null}rn(),Ho();const eE=Po(fileURLToPath(import.meta.url));function resolveConsoleShim(){let n=Oo(eE,`../shims/console-gjs.js`),a=null;try{a=(As(),__toCommonJS(Ds))}catch{return n}if(a.existsSync(n))return n;try{return(zs(),__toCommonJS(Fs)).createRequire(import.meta.url).resolve(`@gjsify/rolldown-plugin-gjsify/shims/console-gjs`)}catch{return n}}const setupForGjs=async n=>{let a=[`cairo`,`gettext`,`system`,...n.userExternal??[]],external=n=>!!(n.startsWith(`gi://`)||a.includes(n)),S=n.pluginOptions.format??`esm`,C=n.pluginOptions.exclude??[],N=await globToEntryPoints(n.input,C),F=Oo(eE,`../shims/unicorn-magic.js`),I={...getAliasesForGjs({external}),"unicorn-magic":F,...n.pluginOptions.aliases,...n.userAliases},H=n.pluginOptions.consoleShim===!1?null:resolveConsoleShim(),W=[];n.pluginOptions.autoGlobalsInject&&W.push(n.pluginOptions.autoGlobalsInject);let K=wrapInputWithSideEffects(N,W),q={input:K.input,platform:`neutral`,external,resolve:{mainFields:S===`esm`?[`browser`,`module`,`main`]:[`browser`,`main`,`module`],conditionNames:S===`esm`?[`browser`,`import`]:[`browser`,`require`,`import`]},transform:{target:`firefox140`,define:{global:`globalThis`,window:`globalThis`,"process.env.READABLE_STREAM":`"disable"`},...H?{inject:{console:[H,`console`]}}:{}},output:{...n.output,format:S,sourcemap:!1,codeSplitting:!1},treeshake:!0},Y=getBundleDirFromOutput(n.output);return{options:q,plugins:[...K.plugin?[K.plugin]:[],inputShebangStripPlugin(),aliasPlugin({entries:{"random-access-file":`random-access-file/index.js`,...flattenAliases$3(I)}}),blueprintPlugin(),deepkitPlugin({reflection:n.pluginOptions.reflection}),cssAsStringPlugin({targets:{firefox:60<<16}}),nodeModulesPathRewritePlugin({bundleDir:Y,runtimeResolve:S===`esm`}),processStubPlugin({userBanner:n.userBanner,captureBundleUrl:S===`esm`}),(()=>{let a=resolveShebangLine(n.shebang);return shebangPlugin({enabled:a!==null,line:a??void 0})})()]}};function wrapInputWithSideEffects(n,a){if(a.length===0||n===void 0)return{input:n,plugin:null};let S=new Map,C=`\0gjsify-entry:`;function wrap(n){let a=C+n;return S.set(a,n),a}let N;if(typeof n==`string`)N=wrap(n);else if(Array.isArray(n))N=n.map(wrap);else{let a={};for(let[S,C]of Object.entries(n))a[S]=wrap(C);N=a}let F=a.map(n=>`import ${JSON.stringify(n)};`).join(`
740
+ `),I=new Set;return{input:N,plugin:{name:`gjsify-virtual-entry`,async resolveId(n,a){return n.startsWith(C)?n:I.has(n)?{id:n,moduleSideEffects:`no-treeshake`}:null},async load(n){if(!n.startsWith(C))return null;let a=S.get(n);if(!a)return null;let N=(await this.resolve(a,void 0,{skipSelf:!0}))?.id??a;return I.add(N),{code:`${F}\nimport ${JSON.stringify(N)};\nexport * from ${JSON.stringify(N)};\n`,moduleSideEffects:`no-treeshake`}}}}}function flattenAliases$3(n){let a={};for(let[S,C]of Object.entries(n))C&&(a[S]=C);return a}__name$1(flattenAliases$3,`flattenAliases`);const setupForNode=async n=>{let a=n.userExternal??[],S=[...rg,`node-datachannel`,...a],external=n=>!!(n.startsWith(`gi://`)||n.startsWith(`@girs/`)||S.includes(n)),C=n.pluginOptions.format??`esm`,N=n.pluginOptions.exclude??[],F=await globToEntryPoints(n.input,N),I={...getAliasesForNode({external}),...n.pluginOptions.aliases,...n.userAliases},H=getBundleDirFromOutput(n.output);return{options:{input:F,platform:`node`,external,resolve:{mainFields:C===`esm`?[`module`,`main`,`browser`]:[`main`,`module`,`browser`],conditionNames:C===`esm`?[`require`,`node`,`module`]:[`require`]},transform:{target:`node24`,define:{global:`globalThis`,window:`globalThis`}},output:{...n.output,format:C,sourcemap:!1,banner:void 0,codeSplitting:!1},treeshake:!0},plugins:[aliasPlugin({entries:flattenAliases$2(I)}),deepkitPlugin({reflection:n.pluginOptions.reflection}),cssAsStringPlugin(),nodeModulesPathRewritePlugin({bundleDir:H})]}};function flattenAliases$2(n){let a={};for(let[S,C]of Object.entries(n))C&&(a[S]=C);return a}__name$1(flattenAliases$2,`flattenAliases`);const tE=`\0gjsify-empty-gjs-import`;function gjsImportsEmptyPlugin(){return{name:`gjsify-gjs-imports-empty`,resolveId:{order:`pre`,filter:{id:/^(@girs\/|gi:\/\/)/},handler(n){return/^(@girs\/|gi:\/\/)/.test(n)?{id:tE}:null}},load(n){return n===tE?{code:`export {}; export default {};`,moduleSideEffects:!1}:null}}}const setupForBrowser=async n=>{let a=[...n.userExternal??[]],S=n.pluginOptions.exclude??[],C=await globToEntryPoints(n.input,S),N={process:`@gjsify/empty`,"node:process":`@gjsify/empty`,assert:`@gjsify/assert`,"node:assert":`@gjsify/assert`,...n.pluginOptions.aliases,...n.userAliases};return{options:{input:C,platform:`browser`,external:a,resolve:{mainFields:[`browser`,`module`,`main`],conditionNames:[`import`,`browser`]},transform:{target:`esnext`,define:{global:`globalThis`,window:`globalThis`}},output:{...n.output,format:`esm`,sourcemap:!1,codeSplitting:!1},treeshake:!0},plugins:[gjsImportsEmptyPlugin(),aliasPlugin({entries:flattenAliases$1(N)}),blueprintPlugin(),deepkitPlugin({reflection:n.pluginOptions.reflection}),cssAsStringPlugin()]}};function flattenAliases$1(n){let a={};for(let[S,C]of Object.entries(n))C&&(a[S]=C);return a}__name$1(flattenAliases$1,`flattenAliases`);const setupLib=async n=>{let a=n.pluginOptions.format??n.pluginOptions.library??`esm`,S=n.pluginOptions.exclude??[],C=await globToEntryPoints(n.input,S),N=computeCommonRoot(C),F={...n.pluginOptions.aliases,...n.userAliases},external=n=>!(n.startsWith(`./`)||n.startsWith(`../`)||n.startsWith(`/`));return{options:{input:C,platform:`neutral`,external,resolve:{mainFields:a===`esm`?[`module`,`main`]:[`main`],conditionNames:a===`esm`?[`module`,`import`]:[`require`]},transform:{target:`esnext`},output:{...n.output,format:a,preserveModules:!0,preserveModulesRoot:N,sourcemap:!1},treeshake:!1},plugins:[aliasPlugin({entries:flattenAliases(F)}),cssAsStringPlugin()]}};function computeCommonRoot(n){let a=n===void 0?[]:typeof n==`string`?[n]:Array.isArray(n)?n:Object.values(n);if(a.length===0)return`src`;let S=a.map(n=>n.split(`/`).filter(Boolean)),C=S[0],N=0;for(;N<C.length;N++){let n=C[N];if(!S.every(a=>a[N]===n))break}if(N===0)return`src`;let F=C.slice(0,N);return S.some(n=>n.length>N)?F.join(`/`):F.slice(0,-1).join(`/`)||`src`}function flattenAliases(n){let a={};for(let[S,C]of Object.entries(n))C&&(a[S]=C);return a}ss();const nE={".png":`image/png`,".jpg":`image/jpeg`,".jpeg":`image/jpeg`,".gif":`image/gif`,".webp":`image/webp`,".svg":`image/svg+xml`,".ico":`image/x-icon`,".avif":`image/avif`,".bmp":`image/bmp`,".tiff":`image/tiff`,".tif":`image/tiff`,".wasm":`application/wasm`};function mimeForExtension(n){return nE[n.toLowerCase()]??`application/octet-stream`}function textLoaderPlugin(n={}){let a=n.loaders??{},S=Object.entries(a),C=S.filter(([,n])=>n===`text`).map(([n])=>n),N=S.filter(([,n])=>n===`dataurl`).map(([n])=>n),F=[...C,...N];if(F.length===0)return null;let I=F.map(n=>n.replace(/^\./,``).replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)),H=RegExp(`\\.(?:${I.join(`|`)})$`),W=new Map(S.map(([n,a])=>[n.toLowerCase(),a]));return{name:`gjsify-asset-loader`,async load(n){if(!H.test(n))return null;let a=n.lastIndexOf(`.`),S=a>=0?n.slice(a).toLowerCase():``;if((W.get(S)??`text`)===`dataurl`){let a=await readFile$1(n),C=mimeForExtension(S),N=a.toString(`base64`);return{code:`export default ${JSON.stringify(`data:${C};base64,${N}`)};`,moduleType:`js`}}let C=await readFile$1(n,`utf8`);return{code:`export default ${JSON.stringify(C)};`,moduleType:`js`}}}}const gjsifyPlugin=async(n,a={})=>{if(a.library)switch(a.library){case`esm`:case`cjs`:return await setupLib({input:n.input,output:n.output,userAliases:n.userAliases,pluginOptions:a});default:throw TypeError(`Unknown library type: `+a.library)}let S=a.app??`gjs`;switch(S){case`gjs`:return await setupForGjs({input:n.input,output:n.output,userExternal:n.userExternal,userBanner:n.userBanner,userAliases:n.userAliases,shebang:n.shebang,pluginOptions:a});case`node`:return await setupForNode({input:n.input,output:n.output,userExternal:n.userExternal,userAliases:n.userAliases,pluginOptions:a});case`browser`:return await setupForBrowser({input:n.input,output:n.output,userExternal:n.userExternal,userAliases:n.userAliases,pluginOptions:a});default:throw TypeError(`Unknown app platform: `+S)}};zs(),Ho(),rn();function isPluginByName(n){return typeof n==`object`&&!!n&&typeof n.name==`string`&&!(`apply`in n)&&!(`resolveId`in n)&&!(`load`in n)&&!(`transform`in n)&&!(`renderChunk`in n)&&!(`generateBundle`in n)}async function resolveUserPlugins(n,a){let S=createRequire(jo(a,`package.json`)),C=[];for(let N of n){if(!isPluginByName(N)){C.push(N);continue}let n;try{n=S.resolve(N.name)}catch(n){throw Error(`gjsify config: failed to resolve plugin "${N.name}" from ${a}. Add it to your project's dependencies, or pass a Plugin object directly. (${n.message})`)}let F=await import(pathToFileURL(n).href),I=N.export??`default`,H=F[I];if(typeof H!=`function`){let n=Object.keys(F).filter(n=>typeof F[n]==`function`);throw Error(`gjsify config: plugin "${N.name}" has no function export "${I}". Available function exports: ${n.length?n.join(`, `):`(none)`}.`)}let W=await H(N.options);if(W==null)throw Error(`gjsify config: plugin "${N.name}" factory returned ${W}. Check the plugin's signature — it should return a Rolldown/Vite plugin object.`);C.push(W)}return C}Ie();const defaultBundler=async({rolldownInput:n,format:a})=>{let S=await(await import(`rolldown`)).rolldown(n);try{let n=await S.generate({format:a,minify:!1,sourcemap:!1}),C=[];for(let a of n.output)a.type===`chunk`&&C.push(a.code);return C}finally{await S.close()}},rE=Ey;function setsEqual(n,a){if(n.size!==a.size)return!1;for(let S of n)if(!a.has(S))return!1;return!0}async function applyExcludeGlobals(n,a,S,C){if(!C?.length)return{detected:n,injectPath:a};for(let a of C)n.delete(a);let N=detectedToRegisterPaths(n);for(let n of S)N.add(n);return{detected:n,injectPath:N.size>0?await writeRegisterInjectFile(N)??void 0:void 0}}function detectedToRegisterPaths(n){let a=new Set;for(let S of n){let n=rE[S];n&&a.add(n)}return a}function isFullConfig(n){return typeof n==`object`&&!!n&&!Array.isArray(n)&&`plugins`in n&&`options`in n}async function detectAutoGlobals(n,a,S,C,N={},F=defaultBundler){let I=N.extraGlobalsList?resolveGlobalsList(N.extraGlobalsList):new Set,H=new Set(N.excludeGlobals??[]),W=new Set,K;I.size>0&&(K=await writeRegisterInjectFile(I)??void 0);let q=(n.plugins??[]).filter(n=>{let a=n&&typeof n==`object`&&`name`in n?n.name:void 0;return a!==`gjsify`&&a!==`gjsify-orchestrator`});for(let Y=1;Y<=5;Y++){let X=await S({...a,autoGlobalsInject:K}),te,ne;isFullConfig(X)?(ne=X.options,te=X.plugins):te=X;let re=K?appendInjectAsEntry(n.input,K):n.input,ie=n.resolve??ne?.resolve,ae=n.external??ne?.external,oe=n.transform??ne?.transform,Z=ne?.treeshake,se=Array.isArray(te)?te:[te],ce=await F({rolldownInput:{input:re,external:ae,resolve:ie,transform:oe,plugins:[...q,...se],logLevel:`silent`,...Z===void 0?{}:{treeshake:Z}},format:n.format??`esm`});if(ce.length===0)return{detected:new Set,injectPath:K};let le=new Set;for(let n=0;n<ce.length;n++){let a=ce[n]??``;try{for(let n of detectFreeGlobals(a))le.add(n)}catch(S){if(globalThis.process?.env?.GJSIFY_DEBUG_AUTO_GLOBALS){let S=`/tmp/gjsify-auto-globals-failed-chunk-${n}.mjs`;try{(await Promise.resolve().then(()=>(As(),Ds))).writeFileSync(S,a),Fe.error(`[gjsify-auto-globals] parse failed on chunk #${n} — wrote ${S} for inspection`)}catch{}}throw S}}if(H.size>0)for(let n of H)le.delete(n);if(setsEqual(W,le)){if(C){let n=[...W].sort(),a=I.size>0?` (+ ${I.size} extra register module(s))`:``;Fe.debug(`[gjsify] --globals auto: converged after ${Y-1} iteration(s), ${W.size} global(s)${n.length?`: `+n.join(`, `):``}${a}`)}return applyExcludeGlobals(W,K,I,N.excludeGlobals)}W=le;let ue=detectedToRegisterPaths(W);for(let n of I)ue.add(n);if(ue.size===0)return{detected:W,injectPath:void 0};if(K=await writeRegisterInjectFile(ue)??void 0,C){let n=[...W].sort();Fe.debug(`[gjsify] --globals auto: iteration ${Y}, ${W.size} global(s)${n.length?`: `+n.join(`, `):``}`)}}return C&&Fe.debug(`[gjsify] --globals auto: hit max iterations (5), using last detected set`),applyExcludeGlobals(W,K,I,N.excludeGlobals)}function appendInjectAsEntry(n,a){return n===void 0?[a]:typeof n==`string`?[n,a]:Array.isArray(n)?[...n,a]:{...n,__gjsify_inject:a}}zs(),rn(),Ho(),As(),ss();function findPnpRoot(n){let a=n;for(;;){if(existsSync(jo(a,`.pnp.cjs`)))return a;let n=Po(a);if(n===a)return null;a=n}}async function loadPnpApi(){try{let n=await import(`pnpapi`);return n.default??n}catch{return null}}async function pnpPlugin(n={}){let a=n.issuerUrl??import.meta.url;if(!findPnpRoot(process.cwd()))return null;let S=await loadPnpApi();if(S===null)return null;let C=fileURLToPath(a),N=createRequire(C),F=n.relayPackages??[`@gjsify/node-polyfills`,`@gjsify/web-polyfills`],I=[];for(let n of F)try{I.push(N.resolve(`${n}/package.json`))}catch{}return{name:`gjsify-pnp`,resolveId:{order:`pre`,async handler(n,a){if(n.startsWith(`.`)||n.startsWith(`/`))return null;if(n.startsWith(`gi://`))return{id:n,external:!0};if(!a)return null;let N=a.startsWith(`file://`)?fileURLToPath(a):a;try{let a=S.resolveRequest(n,N);return a===null?null:{id:a}}catch(a){if(!isUndeclaredDependency(a))throw a;try{let a=S.resolveRequest(n,C);if(a!==null)return{id:a}}catch(n){if(!isUndeclaredDependency(n))throw n}for(let a of I)try{let C=S.resolveRequest(n,a);if(C!==null)return{id:C}}catch(n){if(!isUndeclaredDependency(n))throw n}return null}}},async load(n){if(!n.includes(`/.yarn/`)&&!n.includes(`.zip/`))return null;try{return{code:await readFile$1(n,`utf8`)}}catch(a){let S=a instanceof Error?a.message:String(a);this.error(`gjsify-pnp: failed to read ${n}: ${S}`)}}}}function isUndeclaredDependency(n){return typeof n==`object`&&!!n&&`pnpCode`in n&&n.pnpCode===`UNDECLARED_DEPENDENCY`}Ie();let iE=!1,aE=!1;function normalizeBundlerOptions(n){let a=n.bundler??{},S=a;if(typeof a.define==`object`&&a.define!==null){aE||(aE=!0,Fe.warn(`[gjsify] WARNING: 'bundler.define' is not a valid Rolldown option and would be silently ignored — it has been auto-mapped to 'bundler.transform.define'. Move 'define' under 'bundler.transform.define' in your config to suppress this warning and avoid a ReferenceError at GJS load time.`));let{define:n,...C}=a;S={...C,transform:{...C.transform,define:{...n,...C.transform?.define}}}}if(!n.esbuild)return S;iE||(iE=!0,Fe.warn(`[gjsify] DEPRECATION: the 'esbuild' config key is deprecated and will be removed in 0.5.0. Rename it to 'bundler' (typed as RolldownOptions). See the migration notes in the gjsify CHANGELOG.`));let C=legacyEsbuildToRolldown(n.esbuild),N={...C,...S};return(C.output||S.output)&&(N.output={...C.output,...S.output}),(C.transform||S.transform)&&(N.transform={...C.transform,...S.transform},(C.transform?.define||S.transform?.define)&&(N.transform.define={...C.transform?.define,...S.transform?.define})),(C.resolve||S.resolve)&&(N.resolve={...C.resolve,...S.resolve}),N}function legacyEsbuildToRolldown(n){let a={},S={},C={},N={};return n.outfile!==void 0&&(S.file=n.outfile),n.outdir!==void 0&&(S.dir=n.outdir),n.format!==void 0&&(S.format=n.format),n.minify!==void 0&&(S.minify=n.minify),n.sourcemap!==void 0&&(S.sourcemap=n.sourcemap===`inline`?`inline`:!!n.sourcemap),n.banner?.js!==void 0&&(S.banner=n.banner.js),n.target!==void 0&&(C.target=Array.isArray(n.target)?n.target.join(`,`):n.target),n.define!==void 0&&(C.define=n.define),n.mainFields!==void 0&&(N.mainFields=n.mainFields),n.conditions!==void 0&&(N.conditionNames=n.conditions),n.external!==void 0&&(a.external=n.external),n.platform!==void 0&&(a.platform=n.platform),Object.keys(S).length>0&&(a.output=S),Object.keys(C).length>0&&(a.transform=C),Object.keys(N).length>0&&(a.resolve=N),a}function mergeBundlerOptions(n,a){let{input:S,external:C,...N}=a,F={...n,...N};return(n.output||a.output)&&(F.output={...n.output,...a.output}),(n.transform||a.transform)&&(F.transform={...n.transform,...a.transform},(n.transform?.define||a.transform?.define)&&(F.transform.define={...n.transform?.define,...a.transform?.define})),(n.resolve||a.resolve)&&(F.resolve={...n.resolve,...a.resolve}),F}Ie(),Ho(),ss();function isUnsafeDefaultOutput(n){if(/\.[cm]?tsx?$/i.test(n))return!0;let a=n.replace(/\\/g,`/`);return!!/(?:^|\/)src\//.test(a)}async function buildPnpPlugin(){return pnpPlugin({issuerUrl:import.meta.url})}var BuildAction=class{configData;constructor(n={}){this.configData=n}async buildLibrary(){let{verbose:n,library:a,typescript:S,exclude:C,aliases:N}=this.configData,F=a??{},I=normalizeBundlerOptions(this.configData),H=F.module?Po(F.module):void 0,W=F.main?Po(F.main):void 0,K=F.module?Io(F.module):`.js`,q=F.main?Io(F.main):`.js`,Y=H&&W&&H!==W,X=await buildPnpPlugin(),te=X?[X]:[],ne=[];if(Y){let a=H.includes(`/cjs`)||K===`.cjs`?`cjs`:`esm`;ne.push(await runOneLibraryBuild({pluginOpts:{debug:n,library:a,exclude:C,reflection:S?.reflection,jsExtension:K},userBundler:I,output:{dir:H},userAliases:N,pnpPlugins:te}));let F=W.includes(`/cjs`)||q===`.cjs`?`cjs`:`esm`;ne.push(await runOneLibraryBuild({pluginOpts:{debug:n,library:F,exclude:C,reflection:S?.reflection,jsExtension:q},userBundler:I,output:{dir:W},userAliases:N,pnpPlugins:te}))}else{let a=I.output?.file??F.module??F.main,H=a?Io(a):`.js`,W=I.output?.dir??(a?Po(a):void 0),K=I.output?.format??(W?.includes(`/cjs`)||H===`.cjs`?`cjs`:`esm`);ne.push(await runOneLibraryBuild({pluginOpts:{debug:n,library:K,exclude:C,reflection:S?.reflection,jsExtension:H},userBundler:I,output:{dir:W},userAliases:N,pnpPlugins:te}))}return ne}parseGlobalsValue(n){if(n===void 0)return{autoMode:!0,extras:``};if(n===`none`||n===``)return{autoMode:!1,extras:``};let a=n.split(`,`).map(n=>n.trim()).filter(Boolean);return{autoMode:a.includes(`auto`),extras:a.filter(n=>n!==`auto`).join(`,`)}}async resolveGlobalsInject(n,a,S){if(n!==`gjs`||!a)return;let C=resolveGlobalsList(a);if(C.size===0)return;let N=await writeRegisterInjectFile(C,process.cwd());return S&&N&&Fe.debug(`[gjsify] globals: injected ${C.size} register module(s) from --globals ${a}`),N??void 0}async applyShebang(n,a,S){if(!a){S&&Fe.warn(`[gjsify] --shebang skipped: no single outfile (use --outfile for executables)`);return}let C=n===`node`?`#!/usr/bin/env node`:`#!/usr/bin/env -S gjs -m`,N=resolveShebangLine(this.configData.shebang,C)??C,F=await readFile$1(a,`utf-8`);F.startsWith(`#!`)?S&&Fe.debug(`[gjsify] --shebang skipped: ${a} already starts with a shebang`):await writeFile$1(a,N+`
741
741
  `+F),await chmod$1(a,493),S&&Fe.debug(`[gjsify] --shebang: wrote ${N} + chmod 0o755 to ${a}`)}async buildApp(n=`gjs`,a={}){let{verbose:S,typescript:C,exclude:N,library:F,aliases:I,excludeGlobals:H}=this.configData,W=normalizeBundlerOptions(this.configData),K=W.output?.format??(W.output?.file?.endsWith(`.cjs`)?`cjs`:`esm`),q=K===`iife`?`esm`:K,Y=W.output?.file,X=W.output?.dir;if(!Y&&!X&&(F?.main||F?.module)){let n=q===`cjs`?F.main??F.module:F.module??F.main;if(n&&isUnsafeDefaultOutput(n))throw Error(`gjsify build: refusing to default --outfile to ${n} (would overwrite a TypeScript source file). Pass --outfile/--outdir explicitly, or set "gjsify.bundler.output.file" in package.json.`);Y=n}let{consoleShim:te,globals:ne}=this.configData,re=Array.isArray(W.external)?W.external:void 0,ie=typeof W.output?.banner==`string`?W.output.banner:void 0,ae={debug:S,app:n,format:q,exclude:N,reflection:C?.reflection,consoleShim:te,...I?{aliases:I}:{}},{autoMode:oe,extras:Z}=this.parseGlobalsValue(ne),se=await buildPnpPlugin(),ce=se?[se]:[],le=textLoaderPlugin({loaders:this.configData.loaders}),ue=le?[le]:[];if(W.plugins?.length){let n=await resolveUserPlugins(W.plugins,process.cwd());ue.push(...n)}if(n===`gjs`&&oe){let gjsifyPluginFactory=async n=>{let a=await gjsifyPlugin({input:W.input,output:{file:Y,dir:X},userExternal:re,userBanner:ie,userAliases:I,shebang:this.configData.shebang},n);return{options:a.options,plugins:a.plugins}},{injectPath:n}=await detectAutoGlobals({input:W.input,plugins:[...ce,...ue],external:W.external,transform:W.transform,format:q},ae,gjsifyPluginFactory,S,{extraGlobalsList:Z,excludeGlobals:H},bundleToChunks);ae.autoGlobalsInject=n}else Z&&(ae.autoGlobalsInject=await this.resolveGlobalsInject(n,Z,S));let de=await gjsifyPlugin({input:W.input,output:{file:Y,dir:X},userExternal:re,userBanner:ie,userAliases:I,shebang:this.configData.shebang},ae),fe={...mergeBundlerOptions(de.options,W),plugins:[...ce,...ue,...de.plugins]};if(a.watch)return await this.runWatchLoop(fe,n,Y,S),[];let pe=await runBundle(fe);return(n===`gjs`||n===`node`)&&this.configData.shebang&&await this.applyShebang(n,Y,S),[pe]}async runWatchLoop(n,a,S,C){let N=await runWatch(n),F=new Promise(n=>{N.on(`close`,()=>n())}),I=!1,shutdown=async()=>{if(!I){I=!0,Fe.log(`
742
- [gjsify build --watch] stopping watcher…`);try{await N.close()}catch(n){Fe.error(`[gjsify build --watch] watcher close error:`,n)}}};process.on(`SIGINT`,shutdown),process.on(`SIGTERM`,shutdown),N.on(`event`,async n=>{switch(n.code){case`START`:C&&Fe.log(`[gjsify build --watch] rebuild start`);break;case`BUNDLE_START`:Fe.log(`[gjsify build --watch] building…`);break;case`BUNDLE_END`:Fe.log(`[gjsify build --watch] built in ${n.duration}ms`);try{(a===`gjs`||a===`node`)&&this.configData.shebang&&await this.applyShebang(a,S,C)}finally{await n.result.close()}break;case`END`:Fe.log(`[gjsify build --watch] waiting for changes…`);break;case`ERROR`:Fe.error(`[gjsify build --watch] build failed:`,n.error?.message??n.error),C&&n.error?.stack&&Fe.error(n.error.stack);try{await n.result.close()}catch{}break}}),C&&N.on(`change`,(n,a)=>{Fe.log(`[gjsify build --watch] ${a.event}: ${n}`)}),await F}async start(n={app:`gjs`}){if(n.library){if(n.watch)throw Error(`gjsify build: --watch is not supported with --library (library mode would emit watcher rebuilds for every produced format; use --app gjs|node|browser instead).`);return await this.buildLibrary()}return await this.buildApp(n.app,{watch:n.watch})}};async function runOneLibraryBuild(n){let a=await gjsifyPlugin({input:n.userBundler.input,output:n.output,userAliases:n.userAliases},n.pluginOpts);return await runBundle({...mergeBundlerOptions(a.options,n.userBundler),plugins:[...n.pnpPlugins,...a.plugins]})}const iE={command:`build [entryPoints..]`,description:`Build and bundle your Gjs project`,builder:n=>n.option(`entry-points`,{description:`The entry points you want to bundle. Defaults to bundler.input from package.json#gjsify or .gjsifyrc.js, falling back to src/index.ts when neither is set.`,array:!0,type:`string`,normalize:!0,defaultDescription:`src/index.ts (fallback)`,coerce:n=>[...new Set(n)]}).option(`exclude`,{description:`An array of glob patterns to exclude entry-points and aliases`,array:!0,type:`string`,normalize:!0,default:[]}).option(`verbose`,{description:`Switch on the verbose mode`,type:`boolean`,normalize:!0,default:!1}).option(`app`,{description:`Use this if you want to build an application, the platform node is usually only used for tests`,type:`string`,choices:[`gjs`,`node`,`browser`],normalize:!0,default:`gjs`}).option(`format`,{description:`Override the default output format`,type:`string`,choices:[`iife`,`esm`,`cjs`],normalize:!0}).option(`minify`,{description:`Minify the bundled output. Defaults to true; use --no-minify to emit pretty-printed code (e.g. for debugging or readable bundle review).`,type:`boolean`,normalize:!0,defaultDescription:`true`}).option(`library`,{description:`Use this if you want to build a library for Gjsify`,type:`boolean`,normalize:!0,default:!1}).option(`outfile`,{alias:`o`,description:`Sets the output file name for the build operation. If no outfile is specified, the outfile will be parsed from the package.json. Only used if application mode is active`,type:`string`,normalize:!0}).option(`outdir`,{alias:`d`,description:`Sets the output directory for the build operation. If no outdir is specified, the outdir will be parsed from the package.json. Only used if library mode is active`,type:`string`,normalize:!0}).option(`reflection`,{alias:`r`,description:`Enables TypeScript types on runtime using Deepkit's type compiler`,type:`boolean`,normalize:!0,default:!1}).option(`log-level`,{description:`The log level can be changed to prevent esbuild from printing warning and/or error messages to the terminal`,type:`string`,choices:[`silent`,`error`,`warning`,`info`,`debug`,`verbose`],normalize:!0,default:`warning`}).option(`console-shim`,{description:`Inject a console shim into GJS builds for clean output without the GLib prefix and with working ANSI colors. Use --no-console-shim to disable. Only applies to GJS app builds.`,type:`boolean`,normalize:!0,default:!0}).option(`globals`,{description:"Comma-separated list of global identifiers, 'auto' (default) to detect automatically from the bundled output, or 'none' to disable. The 'auto' token may be combined with explicit identifiers/groups (e.g. 'auto,dom') for cases where the detector cannot statically see a global because it's accessed via indirection. Each identifier is mapped to the corresponding `@gjsify/<pkg>/register` module and injected into the bundle. See the CLI Reference docs for the full list of known identifiers. Only applies to GJS app builds.",type:`string`,normalize:!0,default:`auto`}).option(`shebang`,{description:"Prepend a target-appropriate shebang to the output and mark it executable (chmod 755): `#!/usr/bin/env -S gjs -m` for --app gjs, `#!/usr/bin/env node` for --app node. Applies to GJS and Node app builds with a single --outfile. Default: false (use --shebang to enable, or set `shebang: true` in `.gjsifyrc.js`).",type:`boolean`,normalize:!0}).option(`external`,{description:`Module names that should NOT be bundled. Repeat the flag or pass a comma-separated list (e.g. --external typedoc,prettier). Globs are forwarded to esbuild as-is. See https://esbuild.github.io/api/#external`,array:!0,type:`string`,default:[],coerce:n=>n.flatMap(n=>n.split(`,`).map(n=>n.trim()).filter(Boolean))}).option(`define`,{description:`Substitute compile-time constants. Each entry is KEY=VALUE where VALUE is a JS expression (string literals must be quoted: --define VERSION='"1.2.3"'). Repeat the flag or pass comma-separated. See https://esbuild.github.io/api/#define`,array:!0,type:`string`,default:[]}).option(`alias`,{description:`Map module specifiers at bundle time. Each entry is FROM=TO (e.g. --alias typedoc=@gjsify/empty). Layered on top of the built-in alias map. Useful for stubbing heavy deps the test scenario never executes.`,array:!0,type:`string`,default:[],coerce:n=>n.flatMap(n=>n.split(`,`).map(n=>n.trim()).filter(Boolean))}).option(`exclude-globals`,{description:`Comma-separated global identifiers to remove from auto-detection results. Use for false positives from dead browser-compat code whose polyfills require unavailable native libraries (e.g. --exclude-globals fetch,XMLHttpRequest).`,type:`string`,normalize:!0}).option(`watch`,{alias:`w`,description:"Watch source files and rebuild on change. Logs each rebuild with duration; clean SIGINT shutdown. Only valid with --app gjs|node|browser (rejected with --library). Requires the npm `rolldown` engine — run under Node, not the GJS-bundled CLI.",type:`boolean`,normalize:!0,default:!1}),handler:async n=>{await new BuildAction(await new Config().forBuild(n)).start({library:n.library,app:n.app,watch:n.watch})}};As(),Ho();function nodeArchToLinuxArch(n){return{x64:`x86_64`,arm64:`aarch64`,arm:`armv7`,ia32:`i686`}[n]??n}function readPackageJson$4(n){try{return JSON.parse(readFileSync(n,`utf-8`))}catch{return null}}__name$1(readPackageJson$4,`readPackageJson`);function scanNodeModules(n,a){let S=[];if(!existsSync(n))return S;let C;try{C=readdirSync(n)}catch{return S}for(let N of C)if(!N.startsWith(`.`))if(N.startsWith(`@`)){let C=jo(n,N),F;try{F=readdirSync(C)}catch{continue}for(let n of F){let F=checkPackage(jo(C,n),`${N}/${n}`,a);F&&S.push(F)}}else{let C=checkPackage(jo(n,N),N,a);C&&S.push(C)}return S}function checkPackage(n,a,S){let C=readPackageJson$4(jo(n,`package.json`));if(!C)return null;let N=C.gjsify;if(!N||typeof N!=`object`)return null;let F=N.prebuilds;if(typeof F!=`string`)return null;let I=jo(n,F,`linux-${S}`);return existsSync(I)?{name:a,prebuildsDir:I}:null}function detectNativePackages(n){let a=nodeArchToLinuxArch(process.arch),S=[],C=new Set,N=Oo(n);for(;;){let n=jo(N,`node_modules`);if(existsSync(n))for(let N of scanNodeModules(n,a))C.has(N.name)||(C.add(N.name),S.push(N));let F=Oo(N,`..`);if(F===N)break;N=F}return S}function buildNativeEnv(n){let a=n.map(n=>n.prebuildsDir),S=process.env.LD_LIBRARY_PATH??``,C=process.env.GI_TYPELIB_PATH??``;return{LD_LIBRARY_PATH:[...a,...S?[S]:[]].join(`:`),GI_TYPELIB_PATH:[...a,...C?[C]:[]].join(`:`)}}Ie(),Hx(),Ho();function computeNativeEnvForBundle(n,a=process.cwd()){let S=Oo(n),C=detectNativePackages(a),N=detectNativePackages(Po(S)),F=new Set(C.map(n=>n.name)),I=buildNativeEnv([...C,...N.filter(n=>!F.has(n.name))]);return{env:I,envPrefix:Object.entries(I).filter(([,n])=>n!==void 0&&n!==``).map(([n,a])=>`${n}=${a}`).join(` `)}}async function runGjsBundle(n,a=[]){let{env:S,envPrefix:C}=computeNativeEnvForBundle(n),N={...process.env,...S},F=[`-m`,n,...a],I=[`gjs`,...F.map(n=>n.includes(` `)?`"${n}"`:n)].join(` `);Fe.log(`$ ${C?`${C} `:``}${I}`);let H=spawn(`gjs`,F,{env:N,stdio:`inherit`});await new Promise((n,a)=>{H.on(`close`,S=>{S===0?n():a(Error(`gjs exited with code ${S}`))}),H.on(`error`,a)}).catch(n=>{Fe.error(n.message),process.exit(1)})}Ie(),As(),Ho(),Hx();const aE={command:`test`,description:"Build + run the package’s `src/test.mts` suite on GJS and Node and aggregate the results. Replaces the per-package `build:test:{gjs,node}` + `test:{gjs,node}` script boilerplate.",builder:n=>n.option(`runtime`,{description:`Target runtime. Default: both.`,type:`string`,choices:[`gjs`,`node`,`all`],default:`all`}).option(`entry`,{description:"Path to the test entry. Default: `src/test.mts` (or `gjsify.test.entry`).",type:`string`,normalize:!0}).option(`outdir`,{description:"Output directory for the built test bundles. Default: `dist/`.",type:`string`,normalize:!0}).option(`rebuild`,{description:`Always rebuild the test bundles, even when they look up-to-date.`,type:`boolean`,default:!1}).option(`build`,{description:`Build before running. Default: true (use --no-build to skip when bundles already exist).`,type:`boolean`,default:!0}).option(`verbose`,{description:`Print resolved entry/outdir + per-step timing.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=(await new Config().forBuild({}).catch(()=>({}))).test??{},C=Oo(a,n.entry??S.entry??`src/test.mts`),N=Oo(a,n.outdir??S.outdir??`dist`);existsSync(C)||(Fe.error(`[gjsify test] no test entry at ${Mo(a,C)} — add an \`src/test.mts\` that aggregates your \`@gjsify/unit\` suites, or set \`gjsify.test.entry\` in package.json.`),process.exit(1));let F=n.runtime===`gjs`?[`gjs`]:n.runtime===`node`?[`node`]:S.runtimes&&S.runtimes.length>0?S.runtimes:[`gjs`,`node`],I=[];for(let S of F){let F=jo(N,`test.${S}.mjs`);if(n.build!==!1)if(n.rebuild||!isFresh(F,C,a)){let N=Date.now();n.verbose&&Fe.log(`[gjsify test] building → ${Mo(a,F)} (—app ${S})`);try{await buildTestBundle(C,F,S,n.verbose),n.verbose&&Fe.log(`[gjsify test] built ${S} in ${Date.now()-N}ms`)}catch(n){Fe.error(`[gjsify test] build failed for ${S}:`,n.message),I.push({runtime:S,ok:!1,durationMs:0,error:`build failed`});continue}}else n.verbose&&Fe.log(`[gjsify test] ${S}: bundle is up-to-date — skipping build (use --rebuild to force)`);else if(!existsSync(F)){Fe.error(`[gjsify test] --no-build but ${Mo(a,F)} doesn't exist. Build first or drop --no-build.`),I.push({runtime:S,ok:!1,durationMs:0,error:`no bundle`});continue}let H=Date.now();try{await runTestBundle(F,S),I.push({runtime:S,ok:!0,durationMs:Date.now()-H})}catch(n){I.push({runtime:S,ok:!1,durationMs:Date.now()-H,error:n.message})}}let H=I.map(n=>`${n.ok?`✅`:`❌`} ${n.runtime} (${n.durationMs}ms)${n.error?` — ${n.error}`:``}`).join(` `);Fe.log(`[gjsify test] ${H}`),I.some(n=>!n.ok)&&process.exit(1)}};async function buildTestBundle(n,a,S,C){let N=await new Config().forBuild({entryPoints:[n],outfile:a,app:S,verbose:C??!1,logLevel:`warning`,exclude:[]});N.library={...N.library??{}},N.bundler={...N.bundler??{},input:[n],output:{...N.bundler?.output??{},file:a}},await new BuildAction(N).start({app:S,library:!1})}async function runTestBundle(n,a){if(a===`gjs`){await runGjsBundle(n);return}await new Promise((a,S)=>{let C=spawn(`node`,[n],{stdio:`inherit`});C.on(`error`,S),C.on(`exit`,n=>{n===0?a():S(Error(`node exited with code ${n}`))})})}function isFresh(n,a,S){if(!existsSync(n))return!1;let C=statSync(n).mtimeMs,N=Po(a);try{return C>=newestMtimeUnder(existsSync(N)?N:a)}catch{return!1}}function newestMtimeUnder(n){let a=statSync(n);if(a.isFile())return a.mtimeMs;let S=a.mtimeMs;for(let a of readdirSync(n,{withFileTypes:!0})){if(a.name===`node_modules`||a.name===`dist`||a.name===`lib`||a.name.startsWith(`.`))continue;let C=newestMtimeUnder(jo(n,a.name));C>S&&(S=C)}return S}As();function readPackageJson$3(n){if(!existsSync(n))return null;let a=readFileSync(n,`utf-8`);try{return JSON.parse(a)}catch(a){throw Error(`gjsify install: ${n} is not valid JSON: ${a.message}`)}}__name$1(readPackageJson$3,`readPackageJson`);function writePackageJson$1(n,a){let S=sortKnownDepFields(a);writeFileSync(n,JSON.stringify(S,null,2)+`
743
- `,`utf-8`)}__name$1(writePackageJson$1,`writePackageJson`);function parseSpec$2(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a===-1)return{name:n};let S=n.indexOf(`@`,a+1);return S===-1?{name:n}:{name:n.slice(0,S),range:n.slice(S+1)}}let a=n.indexOf(`@`);return a===-1?{name:n}:{name:n.slice(0,a),range:n.slice(a+1)}}__name$1(parseSpec$2,`parseSpec`);function projectSpecsFromPackageJson(n){let a=[];for(let S of[`dependencies`,`devDependencies`,`optionalDependencies`]){let C=n[S];if(C)for(let[n,S]of Object.entries(C))typeof S==`string`&&(/^(workspace|link|file|portal|git\+|https?):/.test(S)||a.push(`${n}@${S}`))}return a}function addDependencyEntry(n,a,S,C){n[C]===void 0&&(n[C]={}),n[C][a]=S}function defaultRangeFromVersion(n){return`^${n}`}function sortKnownDepFields(n){let a={...n};for(let n of[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`]){let S=a[n];S&&(a[n]=Object.fromEntries(Object.entries(S).sort(([n],[a])=>n<a?-1:+(n>a))))}return a}As(),Ho();function discoverWorkspaces(n,a={}){let S=jo(n,`package.json`);if(!existsSync(S))throw Error(`@gjsify/workspace: no package.json at ${n}`);let C=JSON.parse(readFileSync(S,`utf-8`)),N=a.patterns??extractWorkspacePatterns(C),F=[];a.includeRoot&&C.name&&F.push({location:n,relativeLocation:`.`,name:C.name,version:C.version??`0.0.0`,manifest:C,private:C.private===!0});for(let a of N)for(let S of expandPattern(n,a)){let a=jo(S,`package.json`);if(!existsSync(a))continue;let C;try{C=JSON.parse(readFileSync(a,`utf-8`))}catch{continue}C.name&&F.push({location:S,relativeLocation:Mo(n,S).split(zo).join(`/`),name:C.name,version:C.version??`0.0.0`,manifest:C,private:C.private===!0})}return F.sort((n,a)=>n.relativeLocation.localeCompare(a.relativeLocation)),F}function buildDependencyGraph(n,a={}){let S=a.includeDev??!1,C=a.includePeer??!1,N=a.includeOptional??!0,F=indexByName(n),I=new Map;for(let a of n){let n=new Set,H=a.manifest;for(let a of[H.dependencies,S?H.devDependencies:void 0,C?H.peerDependencies:void 0,N?H.optionalDependencies:void 0])if(a)for(let[S,C]of Object.entries(a))typeof C==`string`&&C.startsWith(`workspace:`)&&F.has(S)&&n.add(S);I.set(a.name,n)}return{edges:I,byName:F}}function topologicalSort(n){let a=new Map;for(let S of n.edges.keys())a.set(S,0);for(let S of n.edges.values())for(let n of S)a.has(n)&&a.set(n,(a.get(n)??0)+1);let S=new Map,C=new Map;for(let a of n.edges.keys())S.set(a,new Set),C.set(a,0);for(let[a,N]of n.edges)for(let n of N)S.has(n)&&(S.get(n).add(a),C.set(a,(C.get(a)??0)+1));let N=[];for(let[n,a]of C)a===0&&N.push(n);N.sort();let F=[];for(;N.length>0;){let a=N.shift(),I=n.byName.get(a);I&&F.push(I);let H=S.get(a);if(H){let n=[];for(let a of H){let S=(C.get(a)??1)-1;C.set(a,S),S===0&&n.push(a)}n.sort(),N.push(...n)}}if(F.length!==C.size){let n=[...C.entries()].filter(([,n])=>n>0).map(([n])=>n);throw Error(`@gjsify/workspace: dependency cycle detected involving ${n.join(`, `)}`)}return F}function filterWorkspaces(n,a){let S=a.include?.map(globToRegex$1),C=a.exclude?.map(globToRegex$1);return n.filter(n=>!(a.noPrivate&&n.private||S&&S.length>0&&!S.some(a=>a.test(n.name))||C&&C.length>0&&C.some(a=>a.test(n.name))))}function extractWorkspacePatterns(n){let a=n.workspaces;return a?Array.isArray(a)?a:a.packages??[]:[]}function expandPattern(n,a){let S=a.split(`/`).filter(Boolean),C=[Oo(n)];for(let n of S){let a=[];for(let S of C)if(n===`*`){let n=[];try{n=readdirSync(S)}catch{continue}for(let C of n){if(C.startsWith(`.`))continue;let n=jo(S,C);try{statSync(n).isDirectory()&&a.push(n)}catch{}}}else if(n.includes(`*`)){let C=globToRegex$1(n),N=[];try{N=readdirSync(S)}catch{continue}for(let n of N){if(n.startsWith(`.`)||!C.test(n))continue;let N=jo(S,n);try{statSync(N).isDirectory()&&a.push(N)}catch{}}}else{let C=jo(S,n);if(existsSync(C))try{statSync(C).isDirectory()&&a.push(C)}catch{}}C=a}return C}function globToRegex$1(n){let a=n.replace(/[.+?^${}()|[\]\\]/g,`\\$&`).replace(/\*/g,`[^/]*`);return RegExp(`^${a}$`)}__name$1(globToRegex$1,`globToRegex`);function indexByName(n){let a=new Map;for(let S of n)a.set(S.name,S);return a}As(),Ho();function readPackageJson$2(n){try{return JSON.parse(readFileSync(n,`utf-8`))}catch{return null}}__name$1(readPackageJson$2,`readPackageJson`);function findWorkspaceRoot(n){let a=n;for(let S=0;S<12;S++){let S=jo(a,`package.json`);if(existsSync(S)&&readPackageJson$2(S)?.workspaces!==void 0)try{let S=discoverWorkspaces(a);if(a===n||S.some(a=>a.location===n))return a}catch{}let C=Oo(a,`..`);if(C===a)break;a=C}return null}Ie(),As(),Ho(),Hx();const oE={command:`run <target> [args..]`,description:"Run a script from package.json (yarn-run-style) or a GJS bundle file. If <target> resolves to a file on disk (or has a path-like prefix), it is launched via gjs with LD_LIBRARY_PATH + GI_TYPELIB_PATH set for native packages. Otherwise it is looked up in the current package.json `scripts`.",builder:n=>n.positional(`target`,{description:"Either a script name (looked up in package.json `scripts`) or a path to a GJS bundle (e.g. dist/gjs.js).",type:`string`,demandOption:!0}).positional(`args`,{description:`Extra arguments passed through to the script / gjs.`,type:`string`,array:!0,default:[]}),handler:async n=>{let a=n.target,S=n.args??[],C=readPackageJson$3(jo(process.cwd(),`package.json`));if(!(C?.scripts&&typeof C.scripts[a]==`string`)&&looksLikeFile(a)){await runGjsBundle(Oo(a),S);return}await runScript(a,S)}};function looksLikeFile(n){if(n.startsWith(`./`)||n.startsWith(`../`)||n.startsWith(`/`)||n.includes(`/`)||n.includes(`\\`)||/\.(c?js|mjs|cjs|gjs)$/.test(n))return!0;try{return statSync(n).isFile()}catch{return!1}}async function runScript(n,a){let S=process.cwd(),C=jo(S,`package.json`),N=readPackageJson$3(C);N||(Fe.error(`gjsify run: no package.json in ${S}`),process.exit(1));let F=N.scripts??{},I=F[n];if(typeof I!=`string`){let a=Object.keys(F).join(`, `)||`<none>`;Fe.error(`gjsify run: no script "${n}" in ${C} (available: ${a})`),process.exit(1)}let H=findWorkspaceRoot(S),W=[jo(S,`node_modules`,`.bin`)];H&&H!==S&&W.push(jo(H,`node_modules`,`.bin`));let K=process.env.FORCE_COLOR!==void 0||process.env.NO_COLOR!==void 0?{}:{FORCE_COLOR:`1`},q={...process.env,...K,PATH:[...W,process.env.PATH??``].filter(Boolean).join(Bo),npm_lifecycle_event:n,npm_package_name:N.name??``,npm_package_version:N.version??``},Y=a.length>0?`${I} ${a.map(shellEscape).join(` `)}`:I;await new Promise((a,C)=>{let N=spawn(Y,[],{cwd:S,env:q,stdio:`inherit`,shell:!0});N.on(`close`,S=>{S===0?a():C(Error(`script "${n}" exited with code ${S}`))}),N.on(`error`,C)}).catch(n=>{Fe.error(n.message),process.exit(1)}),process.exit(0)}function shellEscape(n){return/^[a-zA-Z0-9_\-./=:@,]+$/.test(n)?n:`'${n.replace(/'/g,`'\\''`)}'`}Ie(),Ho();const sE={command:`info [file]`,description:`Show native gjsify packages detected in node_modules and the env vars needed to run a GJS bundle directly with gjs.`,builder:n=>n.positional(`file`,{description:`Optional: the GJS bundle path to include in the example command (e.g. dist/gjs.js)`,type:`string`,normalize:!0}).option(`export`,{description:`Output only shell export statements suitable for eval (eval $(gjsify info --export))`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=n.file?Oo(n.file):null,C=detectNativePackages(a),{LD_LIBRARY_PATH:N,GI_TYPELIB_PATH:F}=buildNativeEnv(C);if(n.export){Fe.log(`export LD_LIBRARY_PATH="${N}"`),Fe.log(`export GI_TYPELIB_PATH="${F}"`);return}if(C.length===0){Fe.log(`No native gjsify packages detected in node_modules.`),Fe.log(`Native packages declare "gjsify": { "prebuilds": "<dir>" } in their package.json.`);return}Fe.log(`Native packages detected:`);for(let n of C)Fe.log(` ${n.name} → ${n.prebuildsDir}`);Fe.log(``),Fe.log(`To run your app directly with gjs, set:`),Fe.log(` export LD_LIBRARY_PATH="${N}"`),Fe.log(` export GI_TYPELIB_PATH="${F}"`),S?Fe.log(` gjs -m ${S}`):Fe.log(` gjs -m <your-bundle.js>`),Fe.log(``),Fe.log(`Or use gjsify run to handle this automatically:`),S?Fe.log(` gjsify run ${n.file}`):Fe.log(` gjsify run <your-bundle.js>`)}};Hx(),Ho(),zs(),rn(),As();function tryExecFile(n,a){try{return execFileSync(n,a,{encoding:`utf-8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim()}catch{return null}}function checkBinary(n,a,S,C,N,F,I){let H=tryExecFile(S,C);return H===null?{id:n,name:a,found:!1,severity:N,requiredBy:I}:{id:n,name:a,found:!0,version:F?F(H):H.split(`
742
+ [gjsify build --watch] stopping watcher…`);try{await N.close()}catch(n){Fe.error(`[gjsify build --watch] watcher close error:`,n)}}};process.on(`SIGINT`,shutdown),process.on(`SIGTERM`,shutdown),N.on(`event`,async n=>{switch(n.code){case`START`:C&&Fe.log(`[gjsify build --watch] rebuild start`);break;case`BUNDLE_START`:Fe.log(`[gjsify build --watch] building…`);break;case`BUNDLE_END`:Fe.log(`[gjsify build --watch] built in ${n.duration}ms`);try{(a===`gjs`||a===`node`)&&this.configData.shebang&&await this.applyShebang(a,S,C)}finally{await n.result.close()}break;case`END`:Fe.log(`[gjsify build --watch] waiting for changes…`);break;case`ERROR`:Fe.error(`[gjsify build --watch] build failed:`,n.error?.message??n.error),C&&n.error?.stack&&Fe.error(n.error.stack);try{await n.result.close()}catch{}break}}),C&&N.on(`change`,(n,a)=>{Fe.log(`[gjsify build --watch] ${a.event}: ${n}`)}),await F}async start(n={app:`gjs`}){if(n.library){if(n.watch)throw Error(`gjsify build: --watch is not supported with --library (library mode would emit watcher rebuilds for every produced format; use --app gjs|node|browser instead).`);return await this.buildLibrary()}return await this.buildApp(n.app,{watch:n.watch})}};async function runOneLibraryBuild(n){let a=await gjsifyPlugin({input:n.userBundler.input,output:n.output,userAliases:n.userAliases},n.pluginOpts);return await runBundle({...mergeBundlerOptions(a.options,n.userBundler),plugins:[...n.pnpPlugins,...a.plugins]})}const oE={command:`build [entryPoints..]`,description:`Build and bundle your Gjs project`,builder:n=>n.option(`entry-points`,{description:`The entry points you want to bundle. Defaults to bundler.input from package.json#gjsify or .gjsifyrc.js, falling back to src/index.ts when neither is set.`,array:!0,type:`string`,normalize:!0,defaultDescription:`src/index.ts (fallback)`,coerce:n=>[...new Set(n)]}).option(`exclude`,{description:`An array of glob patterns to exclude entry-points and aliases`,array:!0,type:`string`,normalize:!0,default:[]}).option(`verbose`,{description:`Switch on the verbose mode`,type:`boolean`,normalize:!0,default:!1}).option(`app`,{description:`Use this if you want to build an application, the platform node is usually only used for tests`,type:`string`,choices:[`gjs`,`node`,`browser`],normalize:!0,default:`gjs`}).option(`format`,{description:`Override the default output format`,type:`string`,choices:[`iife`,`esm`,`cjs`],normalize:!0}).option(`minify`,{description:`Minify the bundled output. Defaults to true; use --no-minify to emit pretty-printed code (e.g. for debugging or readable bundle review).`,type:`boolean`,normalize:!0,defaultDescription:`true`}).option(`library`,{description:`Use this if you want to build a library for Gjsify`,type:`boolean`,normalize:!0,default:!1}).option(`outfile`,{alias:`o`,description:`Sets the output file name for the build operation. If no outfile is specified, the outfile will be parsed from the package.json. Only used if application mode is active`,type:`string`,normalize:!0}).option(`outdir`,{alias:`d`,description:`Sets the output directory for the build operation. If no outdir is specified, the outdir will be parsed from the package.json. Only used if library mode is active`,type:`string`,normalize:!0}).option(`reflection`,{alias:`r`,description:`Enables TypeScript types on runtime using Deepkit's type compiler`,type:`boolean`,normalize:!0,default:!1}).option(`log-level`,{description:`The log level can be changed to prevent esbuild from printing warning and/or error messages to the terminal`,type:`string`,choices:[`silent`,`error`,`warning`,`info`,`debug`,`verbose`],normalize:!0,default:`warning`}).option(`console-shim`,{description:`Inject a console shim into GJS builds for clean output without the GLib prefix and with working ANSI colors. Use --no-console-shim to disable. Only applies to GJS app builds.`,type:`boolean`,normalize:!0,default:!0}).option(`globals`,{description:"Comma-separated list of global identifiers, 'auto' (default) to detect automatically from the bundled output, or 'none' to disable. The 'auto' token may be combined with explicit identifiers/groups (e.g. 'auto,dom') for cases where the detector cannot statically see a global because it's accessed via indirection. Each identifier is mapped to the corresponding `@gjsify/<pkg>/register` module and injected into the bundle. See the CLI Reference docs for the full list of known identifiers. Only applies to GJS app builds.",type:`string`,normalize:!0,default:`auto`}).option(`shebang`,{description:"Prepend a target-appropriate shebang to the output and mark it executable (chmod 755): `#!/usr/bin/env -S gjs -m` for --app gjs, `#!/usr/bin/env node` for --app node. Applies to GJS and Node app builds with a single --outfile. Default: false (use --shebang to enable, or set `shebang: true` in `.gjsifyrc.js`).",type:`boolean`,normalize:!0}).option(`external`,{description:`Module names that should NOT be bundled. Repeat the flag or pass a comma-separated list (e.g. --external typedoc,prettier). Globs are forwarded to esbuild as-is. See https://esbuild.github.io/api/#external`,array:!0,type:`string`,default:[],coerce:n=>n.flatMap(n=>n.split(`,`).map(n=>n.trim()).filter(Boolean))}).option(`define`,{description:`Substitute compile-time constants. Each entry is KEY=VALUE where VALUE is a JS expression (string literals must be quoted: --define VERSION='"1.2.3"'). Repeat the flag or pass comma-separated. See https://esbuild.github.io/api/#define`,array:!0,type:`string`,default:[]}).option(`alias`,{description:`Map module specifiers at bundle time. Each entry is FROM=TO (e.g. --alias typedoc=@gjsify/empty). Layered on top of the built-in alias map. Useful for stubbing heavy deps the test scenario never executes.`,array:!0,type:`string`,default:[],coerce:n=>n.flatMap(n=>n.split(`,`).map(n=>n.trim()).filter(Boolean))}).option(`exclude-globals`,{description:`Comma-separated global identifiers to remove from auto-detection results. Use for false positives from dead browser-compat code whose polyfills require unavailable native libraries (e.g. --exclude-globals fetch,XMLHttpRequest).`,type:`string`,normalize:!0}).option(`watch`,{alias:`w`,description:"Watch source files and rebuild on change. Logs each rebuild with duration; clean SIGINT shutdown. Only valid with --app gjs|node|browser (rejected with --library). Requires the npm `rolldown` engine — run under Node, not the GJS-bundled CLI.",type:`boolean`,normalize:!0,default:!1}),handler:async n=>{await new BuildAction(await new Config().forBuild(n)).start({library:n.library,app:n.app,watch:n.watch})}};As(),Ho();function nodeArchToLinuxArch(n){return{x64:`x86_64`,arm64:`aarch64`,arm:`armv7`,ia32:`i686`}[n]??n}function readPackageJson$4(n){try{return JSON.parse(readFileSync(n,`utf-8`))}catch{return null}}__name$1(readPackageJson$4,`readPackageJson`);function scanNodeModules(n,a){let S=[];if(!existsSync(n))return S;let C;try{C=readdirSync(n)}catch{return S}for(let N of C)if(!N.startsWith(`.`))if(N.startsWith(`@`)){let C=jo(n,N),F;try{F=readdirSync(C)}catch{continue}for(let n of F){let F=checkPackage(jo(C,n),`${N}/${n}`,a);F&&S.push(F)}}else{let C=checkPackage(jo(n,N),N,a);C&&S.push(C)}return S}function checkPackage(n,a,S){let C=readPackageJson$4(jo(n,`package.json`));if(!C)return null;let N=C.gjsify;if(!N||typeof N!=`object`)return null;let F=N.prebuilds;if(typeof F!=`string`)return null;let I=jo(n,F,`linux-${S}`);return existsSync(I)?{name:a,prebuildsDir:I}:null}function detectNativePackages(n){let a=nodeArchToLinuxArch(process.arch),S=[],C=new Set,N=Oo(n);for(;;){let n=jo(N,`node_modules`);if(existsSync(n))for(let N of scanNodeModules(n,a))C.has(N.name)||(C.add(N.name),S.push(N));let F=Oo(N,`..`);if(F===N)break;N=F}return S}function buildNativeEnv(n){let a=n.map(n=>n.prebuildsDir),S=process.env.LD_LIBRARY_PATH??``,C=process.env.GI_TYPELIB_PATH??``;return{LD_LIBRARY_PATH:[...a,...S?[S]:[]].join(`:`),GI_TYPELIB_PATH:[...a,...C?[C]:[]].join(`:`)}}Ie(),Hx(),Ho();function computeNativeEnvForBundle(n,a=process.cwd()){let S=Oo(n),C=detectNativePackages(a),N=detectNativePackages(Po(S)),F=new Set(C.map(n=>n.name)),I=buildNativeEnv([...C,...N.filter(n=>!F.has(n.name))]);return{env:I,envPrefix:Object.entries(I).filter(([,n])=>n!==void 0&&n!==``).map(([n,a])=>`${n}=${a}`).join(` `)}}async function runGjsBundle(n,a=[]){let{env:S,envPrefix:C}=computeNativeEnvForBundle(n),N={...process.env,...S},F=[`-m`,n,...a],I=[`gjs`,...F.map(n=>n.includes(` `)?`"${n}"`:n)].join(` `);Fe.log(`$ ${C?`${C} `:``}${I}`);let H=spawn(`gjs`,F,{env:N,stdio:`inherit`});await new Promise((n,a)=>{H.on(`close`,S=>{S===0?n():a(Error(`gjs exited with code ${S}`))}),H.on(`error`,a)}).catch(n=>{Fe.error(n.message),process.exit(1)})}Ie(),As(),Ho(),Hx();const sE={command:`test`,description:"Build + run the package’s `src/test.mts` suite on GJS and Node and aggregate the results. Replaces the per-package `build:test:{gjs,node}` + `test:{gjs,node}` script boilerplate.",builder:n=>n.option(`runtime`,{description:`Target runtime. Default: both.`,type:`string`,choices:[`gjs`,`node`,`all`],default:`all`}).option(`entry`,{description:"Path to the test entry. Default: `src/test.mts` (or `gjsify.test.entry`).",type:`string`,normalize:!0}).option(`outdir`,{description:"Output directory for the built test bundles. Default: `dist/`.",type:`string`,normalize:!0}).option(`rebuild`,{description:`Always rebuild the test bundles, even when they look up-to-date.`,type:`boolean`,default:!1}).option(`build`,{description:`Build before running. Default: true (use --no-build to skip when bundles already exist).`,type:`boolean`,default:!0}).option(`verbose`,{description:`Print resolved entry/outdir + per-step timing.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=(await new Config().forBuild({}).catch(()=>({}))).test??{},C=Oo(a,n.entry??S.entry??`src/test.mts`),N=Oo(a,n.outdir??S.outdir??`dist`);existsSync(C)||(Fe.error(`[gjsify test] no test entry at ${Mo(a,C)} — add an \`src/test.mts\` that aggregates your \`@gjsify/unit\` suites, or set \`gjsify.test.entry\` in package.json.`),process.exit(1));let F=n.runtime===`gjs`?[`gjs`]:n.runtime===`node`?[`node`]:S.runtimes&&S.runtimes.length>0?S.runtimes:[`gjs`,`node`],I=[];for(let S of F){let F=jo(N,`test.${S}.mjs`);if(n.build!==!1)if(n.rebuild||!isFresh(F,C)){let N=Date.now();n.verbose&&Fe.log(`[gjsify test] building → ${Mo(a,F)} (—app ${S})`);try{await buildTestBundle(C,F,S,n.verbose),n.verbose&&Fe.log(`[gjsify test] built ${S} in ${Date.now()-N}ms`)}catch(n){Fe.error(`[gjsify test] build failed for ${S}:`,n.message),I.push({runtime:S,ok:!1,durationMs:0,error:`build failed`});continue}}else n.verbose&&Fe.log(`[gjsify test] ${S}: bundle is up-to-date — skipping build (use --rebuild to force)`);else if(!existsSync(F)){Fe.error(`[gjsify test] --no-build but ${Mo(a,F)} doesn't exist. Build first or drop --no-build.`),I.push({runtime:S,ok:!1,durationMs:0,error:`no bundle`});continue}let H=Date.now();try{await runTestBundle(F,S),I.push({runtime:S,ok:!0,durationMs:Date.now()-H})}catch(n){I.push({runtime:S,ok:!1,durationMs:Date.now()-H,error:n.message})}}let H=I.map(n=>`${n.ok?`✅`:`❌`} ${n.runtime} (${n.durationMs}ms)${n.error?` — ${n.error}`:``}`).join(` `);Fe.log(`[gjsify test] ${H}`),I.some(n=>!n.ok)&&process.exit(1)}};async function buildTestBundle(n,a,S,C){let N=await new Config().forBuild({entryPoints:[n],outfile:a,app:S,verbose:C??!1,logLevel:`warning`,exclude:[]});N.library={...N.library},N.bundler={...N.bundler,input:[n],output:{...N.bundler?.output,file:a}},await new BuildAction(N).start({app:S,library:!1})}async function runTestBundle(n,a){if(a===`gjs`){await runGjsBundle(n);return}await new Promise((a,S)=>{let C=spawn(`node`,[n],{stdio:`inherit`});C.on(`error`,S),C.on(`exit`,n=>{n===0?a():S(Error(`node exited with code ${n}`))})})}function isFresh(n,a){if(!existsSync(n))return!1;let S=statSync(n).mtimeMs,C=Po(a);try{return S>=newestMtimeUnder(existsSync(C)?C:a)}catch{return!1}}function newestMtimeUnder(n){let a=statSync(n);if(a.isFile())return a.mtimeMs;let S=a.mtimeMs;for(let a of readdirSync(n,{withFileTypes:!0})){if(a.name===`node_modules`||a.name===`dist`||a.name===`lib`||a.name.startsWith(`.`))continue;let C=newestMtimeUnder(jo(n,a.name));C>S&&(S=C)}return S}As();function readPackageJson$3(n){if(!existsSync(n))return null;let a=readFileSync(n,`utf-8`);try{return JSON.parse(a)}catch(a){throw Error(`gjsify install: ${n} is not valid JSON: ${a.message}`)}}__name$1(readPackageJson$3,`readPackageJson`);function writePackageJson$1(n,a){let S=sortKnownDepFields(a);writeFileSync(n,JSON.stringify(S,null,2)+`
743
+ `,`utf-8`)}__name$1(writePackageJson$1,`writePackageJson`);function parseSpec$2(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a===-1)return{name:n};let S=n.indexOf(`@`,a+1);return S===-1?{name:n}:{name:n.slice(0,S),range:n.slice(S+1)}}let a=n.indexOf(`@`);return a===-1?{name:n}:{name:n.slice(0,a),range:n.slice(a+1)}}__name$1(parseSpec$2,`parseSpec`);function projectSpecsFromPackageJson(n){let a=[];for(let S of[`dependencies`,`devDependencies`,`optionalDependencies`]){let C=n[S];if(C)for(let[n,S]of Object.entries(C))typeof S==`string`&&(/^(workspace|link|file|portal|git\+|https?):/.test(S)||a.push(`${n}@${S}`))}return a}function addDependencyEntry(n,a,S,C){n[C]===void 0&&(n[C]={}),n[C][a]=S}function defaultRangeFromVersion(n){return`^${n}`}function sortKnownDepFields(n){let a={...n};for(let n of[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`]){let S=a[n];S&&(a[n]=Object.fromEntries(Object.entries(S).sort(([n],[a])=>n<a?-1:+(n>a))))}return a}As(),Ho();function discoverWorkspaces(n,a={}){let S=jo(n,`package.json`);if(!existsSync(S))throw Error(`@gjsify/workspace: no package.json at ${n}`);let C=JSON.parse(readFileSync(S,`utf-8`)),N=a.patterns??extractWorkspacePatterns(C),F=[];a.includeRoot&&C.name&&F.push({location:n,relativeLocation:`.`,name:C.name,version:C.version??`0.0.0`,manifest:C,private:C.private===!0});for(let a of N)for(let S of expandPattern(n,a)){let a=jo(S,`package.json`);if(!existsSync(a))continue;let C;try{C=JSON.parse(readFileSync(a,`utf-8`))}catch{continue}C.name&&F.push({location:S,relativeLocation:Mo(n,S).split(zo).join(`/`),name:C.name,version:C.version??`0.0.0`,manifest:C,private:C.private===!0})}return F.sort((n,a)=>n.relativeLocation.localeCompare(a.relativeLocation)),F}function buildDependencyGraph(n,a={}){let S=a.includeDev??!1,C=a.includePeer??!1,N=a.includeOptional??!0,F=indexByName(n),I=new Map;for(let a of n){let n=new Set,H=a.manifest;for(let a of[H.dependencies,S?H.devDependencies:void 0,C?H.peerDependencies:void 0,N?H.optionalDependencies:void 0])if(a)for(let[S,C]of Object.entries(a))typeof C==`string`&&C.startsWith(`workspace:`)&&F.has(S)&&n.add(S);I.set(a.name,n)}return{edges:I,byName:F}}function topologicalSort(n){let a=new Map;for(let S of n.edges.keys())a.set(S,0);for(let S of n.edges.values())for(let n of S)a.has(n)&&a.set(n,(a.get(n)??0)+1);let S=new Map,C=new Map;for(let a of n.edges.keys())S.set(a,new Set),C.set(a,0);for(let[a,N]of n.edges)for(let n of N)S.has(n)&&(S.get(n).add(a),C.set(a,(C.get(a)??0)+1));let N=[];for(let[n,a]of C)a===0&&N.push(n);N.sort();let F=[];for(;N.length>0;){let a=N.shift(),I=n.byName.get(a);I&&F.push(I);let H=S.get(a);if(H){let n=[];for(let a of H){let S=(C.get(a)??1)-1;C.set(a,S),S===0&&n.push(a)}n.sort(),N.push(...n)}}if(F.length!==C.size){let n=[...C.entries()].filter(([,n])=>n>0).map(([n])=>n);throw Error(`@gjsify/workspace: dependency cycle detected involving ${n.join(`, `)}`)}return F}function filterWorkspaces(n,a){let S=a.include?.map(globToRegex$1),C=a.exclude?.map(globToRegex$1);return n.filter(n=>!(a.noPrivate&&n.private||S&&S.length>0&&!S.some(a=>a.test(n.name))||C&&C.some(a=>a.test(n.name))))}function extractWorkspacePatterns(n){let a=n.workspaces;return a?Array.isArray(a)?a:a.packages??[]:[]}function expandPattern(n,a){let S=a.split(`/`).filter(Boolean),C=[Oo(n)];for(let n of S){let a=[];for(let S of C)if(n===`*`){let n=[];try{n=readdirSync(S)}catch{continue}for(let C of n){if(C.startsWith(`.`))continue;let n=jo(S,C);try{statSync(n).isDirectory()&&a.push(n)}catch{}}}else if(n.includes(`*`)){let C=globToRegex$1(n),N=[];try{N=readdirSync(S)}catch{continue}for(let n of N){if(n.startsWith(`.`)||!C.test(n))continue;let N=jo(S,n);try{statSync(N).isDirectory()&&a.push(N)}catch{}}}else{let C=jo(S,n);if(existsSync(C))try{statSync(C).isDirectory()&&a.push(C)}catch{}}C=a}return C}function globToRegex$1(n){let a=n.replace(/[.+?^${}()|[\]\\]/g,`\\$&`).replace(/\*/g,`[^/]*`);return RegExp(`^${a}$`)}__name$1(globToRegex$1,`globToRegex`);function indexByName(n){let a=new Map;for(let S of n)a.set(S.name,S);return a}As(),Ho();function readPackageJson$2(n){try{return JSON.parse(readFileSync(n,`utf-8`))}catch{return null}}__name$1(readPackageJson$2,`readPackageJson`);function findWorkspaceRoot(n){let a=n;for(let S=0;S<12;S++){let S=jo(a,`package.json`);if(existsSync(S)&&readPackageJson$2(S)?.workspaces!==void 0)try{let S=discoverWorkspaces(a);if(a===n||S.some(a=>a.location===n))return a}catch{}let C=Oo(a,`..`);if(C===a)break;a=C}return null}Ie(),As(),Ho(),Hx();const cE={command:`run <target> [args..]`,description:"Run a script from package.json (yarn-run-style) or a GJS bundle file. If <target> resolves to a file on disk (or has a path-like prefix), it is launched via gjs with LD_LIBRARY_PATH + GI_TYPELIB_PATH set for native packages. Otherwise it is looked up in the current package.json `scripts`.",builder:n=>n.positional(`target`,{description:"Either a script name (looked up in package.json `scripts`) or a path to a GJS bundle (e.g. dist/gjs.js).",type:`string`,demandOption:!0}).positional(`args`,{description:`Extra arguments passed through to the script / gjs.`,type:`string`,array:!0,default:[]}),handler:async n=>{let a=n.target,S=n.args??[],C=readPackageJson$3(jo(process.cwd(),`package.json`));if(!(C?.scripts&&typeof C.scripts[a]==`string`)&&looksLikeFile(a)){await runGjsBundle(Oo(a),S);return}await runScript(a,S)}};function looksLikeFile(n){if(n.startsWith(`./`)||n.startsWith(`../`)||n.startsWith(`/`)||n.includes(`/`)||n.includes(`\\`)||/\.(c?js|mjs|cjs|gjs)$/.test(n))return!0;try{return statSync(n).isFile()}catch{return!1}}async function runScript(n,a){let S=process.cwd(),C=jo(S,`package.json`),N=readPackageJson$3(C);N||(Fe.error(`gjsify run: no package.json in ${S}`),process.exit(1));let F=N.scripts??{},I=F[n];if(typeof I!=`string`){let a=Object.keys(F).join(`, `)||`<none>`;Fe.error(`gjsify run: no script "${n}" in ${C} (available: ${a})`),process.exit(1)}let H=findWorkspaceRoot(S),W=[jo(S,`node_modules`,`.bin`)];H&&H!==S&&W.push(jo(H,`node_modules`,`.bin`));let K=process.env.FORCE_COLOR!==void 0||process.env.NO_COLOR!==void 0?{}:{FORCE_COLOR:`1`},q={...process.env,...K,PATH:[...W,process.env.PATH??``].filter(Boolean).join(Bo),npm_lifecycle_event:n,npm_package_name:N.name??``,npm_package_version:N.version??``},Y=a.length>0?`${I} ${a.map(shellEscape).join(` `)}`:I;await new Promise((a,C)=>{let N=spawn(Y,[],{cwd:S,env:q,stdio:`inherit`,shell:!0});N.on(`close`,S=>{S===0?a():C(Error(`script "${n}" exited with code ${S}`))}),N.on(`error`,C)}).catch(n=>{Fe.error(n.message),process.exit(1)}),process.exit(0)}function shellEscape(n){return/^[a-zA-Z0-9_\-./=:@,]+$/.test(n)?n:`'${n.replace(/'/g,`'\\''`)}'`}Ie(),Ho();const lE={command:`info [file]`,description:`Show native gjsify packages detected in node_modules and the env vars needed to run a GJS bundle directly with gjs.`,builder:n=>n.positional(`file`,{description:`Optional: the GJS bundle path to include in the example command (e.g. dist/gjs.js)`,type:`string`,normalize:!0}).option(`export`,{description:`Output only shell export statements suitable for eval (eval $(gjsify info --export))`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=n.file?Oo(n.file):null,C=detectNativePackages(a),{LD_LIBRARY_PATH:N,GI_TYPELIB_PATH:F}=buildNativeEnv(C);if(n.export){Fe.log(`export LD_LIBRARY_PATH="${N}"`),Fe.log(`export GI_TYPELIB_PATH="${F}"`);return}if(C.length===0){Fe.log(`No native gjsify packages detected in node_modules.`),Fe.log(`Native packages declare "gjsify": { "prebuilds": "<dir>" } in their package.json.`);return}Fe.log(`Native packages detected:`);for(let n of C)Fe.log(` ${n.name} → ${n.prebuildsDir}`);Fe.log(``),Fe.log(`To run your app directly with gjs, set:`),Fe.log(` export LD_LIBRARY_PATH="${N}"`),Fe.log(` export GI_TYPELIB_PATH="${F}"`),S?Fe.log(` gjs -m ${S}`):Fe.log(` gjs -m <your-bundle.js>`),Fe.log(``),Fe.log(`Or use gjsify run to handle this automatically:`),S?Fe.log(` gjsify run ${n.file}`):Fe.log(` gjsify run <your-bundle.js>`)}};Hx(),Ho(),zs(),rn(),As();function tryExecFile(n,a){try{return execFileSync(n,a,{encoding:`utf-8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim()}catch{return null}}function checkBinary(n,a,S,C,N,F,I){let H=tryExecFile(S,C);return H===null?{id:n,name:a,found:!1,severity:N,requiredBy:I}:{id:n,name:a,found:!0,version:F?F(H):H.split(`
744
744
  `)[0]??H,severity:N,requiredBy:I}}function checkPkgConfig(n,a,S,C,N){let F=tryExecFile(`pkg-config`,[`--modversion`,S]);return F===null?{id:n,name:a,found:!1,severity:C,requiredBy:N}:{id:n,name:a,found:!0,version:F.split(`
745
- `)[0],severity:C,requiredBy:N}}function checkNpmPackage(n,a,S,C,N,F){try{return createRequire(pathToFileURL(jo(C,`_check_.js`)).href).resolve(S),{id:n,name:a,found:!0,severity:N,requiredBy:F}}catch{}try{return createRequire(import.meta.url).resolve(S),{id:n,name:a,found:!0,severity:N,requiredBy:F}}catch{return{id:n,name:a,found:!1,severity:N,requiredBy:F}}}function detectPackageManager$2(){for(let n of[`apt`,`dnf`,`pacman`,`zypper`,`apk`])if(tryExecFile(`which`,[n])!==null)return n;return`unknown`}__name$1(detectPackageManager$2,`detectPackageManager`);const cE={manette:{id:`manette`,name:`libmanette`,pkgName:`manette-0.2`},gstreamer:{id:`gstreamer`,name:`GStreamer`,pkgName:`gstreamer-1.0`},"gst-app":{id:`gst-app`,name:`GStreamer App`,pkgName:`gstreamer-app-1.0`},"gdk-pixbuf":{id:`gdk-pixbuf`,name:`GdkPixbuf`,pkgName:`gdk-pixbuf-2.0`},pango:{id:`pango`,name:`Pango`,pkgName:`pango`},pangocairo:{id:`pangocairo`,name:`PangoCairo`,pkgName:`pangocairo`},webkitgtk:{id:`webkitgtk`,name:`WebKitGTK`,pkgName:`webkitgtk-6.0`},cairo:{id:`cairo`,name:`Cairo`,pkgName:`cairo`},gnutls:{id:`gnutls`,name:`GnuTLS`,pkgName:`gnutls`},nghttp2:{id:`nghttp2`,name:`libnghttp2`,pkgName:`libnghttp2`}},lE={"@gjsify/gamepad":[`manette`],"@gjsify/webaudio":[`gstreamer`,`gst-app`],"@gjsify/iframe":[`webkitgtk`],"@gjsify/canvas2d":[`gdk-pixbuf`,`pango`,`pangocairo`,`cairo`],"@gjsify/canvas2d-core":[`gdk-pixbuf`,`pango`,`pangocairo`,`cairo`],"@gjsify/dom-elements":[`gdk-pixbuf`],"@gjsify/webgl":[`gwebgl`],"@gjsify/tls-native":[`gnutls`],"@gjsify/http2-native":[`nghttp2`]};function findProjectRoot(n){let a=Oo(n);for(;;){if(existsSync(jo(a,`package.json`)))return a;let n=Oo(a,`..`);if(n===a)return null;a=n}}function discoverGjsifyPackages(n){let a=findProjectRoot(n);if(!a)return null;let S=jo(a,`node_modules`,`@gjsify`);if(!existsSync(S))return new Set;let C=jo(a,`package.json`),N={};try{N=JSON.parse(readFileSync(C,`utf-8`))}catch{}let F={...N.dependencies,...N.devDependencies},I=new Set;try{for(let n of readdirSync(S,{withFileTypes:!0}))(n.isDirectory()||n.isSymbolicLink())&&I.add(`@gjsify/${n.name}`)}catch{}for(let n of Object.keys(F))n.startsWith(`@gjsify/`)&&I.add(n);return I}function computeNeededOptionalDeps(n){let a=discoverGjsifyPackages(n);if(a===null)return null;let S=new Set;for(let n of a){let a=lE[n];if(a)for(let n of a)S.add(n)}return S}function runAllChecks(n){let a=computeNeededOptionalDeps(n);return[...runMinimalChecks(),...runRequiredChecks(n),...runOptionalChecks(a,n)]}function runMinimalChecks(){let n=[];return n.push({id:`nodejs`,name:`Node.js`,found:!0,version:process.version,severity:`required`}),n.push(checkBinary(`gjs`,`GJS`,`gjs`,[`--version`],`required`,n=>n.replace(/^GJS\s+/i,``).split(`
746
- `)[0]??n)),n}function checkGwebgl(n){return checkNpmPackage(`gwebgl`,`gwebgl (@gjsify/webgl)`,`@gjsify/webgl`,n,`optional`,[`@gjsify/webgl`])}function runRequiredChecks(n){let a=[];return a.push(checkBinary(`blueprint-compiler`,`Blueprint Compiler`,`blueprint-compiler`,[`--version`],`required`)),a.push(checkBinary(`pkg-config`,`pkg-config`,`pkg-config`,[`--version`],`required`)),a.push(checkBinary(`meson`,`Meson`,`meson`,[`--version`],`required`)),a.push(checkPkgConfig(`gtk4`,`GTK4`,`gtk4`,`required`)),a.push(checkPkgConfig(`libadwaita`,`libadwaita`,`libadwaita-1`,`required`)),a.push(checkPkgConfig(`libsoup3`,`libsoup3`,`libsoup-3.0`,`required`)),a.push(checkPkgConfig(`gobject-introspection`,`GObject Introspection`,`gobject-introspection-1.0`,`required`)),a}function runOptionalChecks(n,a){let S=[];for(let[a,C]of Object.entries(cE)){if(n!==null&&!n.has(a))continue;let N=Object.entries(lE).filter(([,n])=>n.includes(a)).map(([n])=>n);S.push(checkPkgConfig(C.id,C.name,C.pkgName,`optional`,N))}return(n===null||n.has(`gwebgl`))&&S.push(checkGwebgl(a)),S}const uE={apt:{gjs:`gjs`,"blueprint-compiler":`blueprint-compiler`,"pkg-config":`pkg-config`,meson:`meson`,gtk4:`libgtk-4-dev`,libadwaita:`libadwaita-1-dev`,libsoup3:`libsoup-3.0-dev`,webkitgtk:`libwebkit2gtk-6.0-dev`,"gobject-introspection":`gobject-introspection libgirepository1.0-dev`,manette:`libmanette-0.2-0 gir1.2-manette-0.2`,gstreamer:`libgstreamer1.0-dev`,"gst-app":`libgstreamer-plugins-base1.0-dev gir1.2-gst-plugins-base-1.0`,"gdk-pixbuf":`libgdk-pixbuf-2.0-dev`,pango:`libpango1.0-dev`,pangocairo:`libpango1.0-dev`,cairo:`libcairo2-dev`,gnutls:`libgnutls28-dev`,nghttp2:`libnghttp2-dev`},dnf:{gjs:`gjs`,"blueprint-compiler":`blueprint-compiler`,"pkg-config":`pkgconf-pkg-config`,meson:`meson`,gtk4:`gtk4-devel`,libadwaita:`libadwaita-devel`,libsoup3:`libsoup3-devel`,webkitgtk:`webkitgtk6.0-devel`,"gobject-introspection":`gobject-introspection-devel`,manette:`libmanette-devel`,gstreamer:`gstreamer1-devel`,"gst-app":`gstreamer1-plugins-base-devel`,"gdk-pixbuf":`gdk-pixbuf2-devel`,pango:`pango-devel`,pangocairo:`pango-devel`,cairo:`cairo-devel`,gnutls:`gnutls-devel`,nghttp2:`libnghttp2-devel`},pacman:{gjs:`gjs`,"blueprint-compiler":`blueprint-compiler`,"pkg-config":`pkgconf`,meson:`meson`,gtk4:`gtk4`,libadwaita:`libadwaita`,libsoup3:`libsoup3`,webkitgtk:`webkitgtk-6.0`,"gobject-introspection":`gobject-introspection`,manette:`libmanette`,gstreamer:`gstreamer`,"gst-app":`gst-plugins-base`,"gdk-pixbuf":`gdk-pixbuf2`,pango:`pango`,pangocairo:`pango`,cairo:`cairo`,gnutls:`gnutls`,nghttp2:`libnghttp2`},zypper:{gjs:`gjs`,"blueprint-compiler":`blueprint-compiler`,"pkg-config":`pkg-config`,meson:`meson`,gtk4:`gtk4-devel`,libadwaita:`libadwaita-devel`,libsoup3:`libsoup-3_0-devel`,webkitgtk:`webkitgtk6_0-devel`,"gobject-introspection":`gobject-introspection-devel`,manette:`libmanette-0_2-0-devel`,gstreamer:`gstreamer-devel`,"gst-app":`gstreamer-plugins-base-devel`,"gdk-pixbuf":`gdk-pixbuf-devel`,pango:`pango-devel`,pangocairo:`pango-devel`,cairo:`cairo-devel`,gnutls:`libgnutls-devel`,nghttp2:`libnghttp2-devel`},apk:{gjs:`gjs`,"blueprint-compiler":`blueprint-compiler`,"pkg-config":`pkgconf`,meson:`meson`,gtk4:`gtk4.0-dev`,libadwaita:`libadwaita-dev`,libsoup3:`libsoup3-dev`,webkitgtk:`webkit2gtk-6.0-dev`,"gobject-introspection":`gobject-introspection-dev`,manette:`libmanette-dev`,gstreamer:`gstreamer-dev`,"gst-app":`gst-plugins-base-dev`,"gdk-pixbuf":`gdk-pixbuf-dev`,pango:`pango-dev`,pangocairo:`pango-dev`,cairo:`cairo-dev`,gnutls:`gnutls-dev`,nghttp2:`nghttp2-dev`},unknown:{}},dE={apt:`sudo apt install`,dnf:`sudo dnf install`,pacman:`sudo pacman -S`,zypper:`sudo zypper install`,apk:`sudo apk add`,unknown:``};function buildInstallCommand(n,a){if(n===`unknown`)return null;let S=uE[n],C=[],N=[];for(let n of a){if(n.id===`gwebgl`){N.push(`@gjsify/webgl`);continue}if(n.id===`nodejs`)continue;let a=S[n.id];a&&C.push(a)}let F=[];return C.length>0&&F.push(`${dE[n]} ${C.join(` `)}`),N.length>0&&F.push(`npm install ${N.join(` `)}`),F.length>0?F.join(`
747
- `):null}Ie();const fE={command:`system-check`,description:"Check that required system dependencies (GJS, GTK4, libsoup3, …) are installed. Optional dependencies are detected only when their @gjsify/* package is in your project. (Previously called `gjsify check`; the bare name now runs TypeScript checks across the workspace — see `gjsify check --help`.)",builder:n=>n.option(`json`,{description:`Output results as JSON`,type:`boolean`,default:!1}),handler:async n=>{let a=runAllChecks(process.cwd()),S=detectPackageManager$2(),C=a.filter(n=>!n.found&&n.severity===`required`),N=a.filter(n=>!n.found&&n.severity===`optional`),F=[...C,...N];if(n.json){Fe.log(JSON.stringify({packageManager:S,deps:a},null,2)),process.exit(+(C.length>0));return}Fe.log(`System dependency check
745
+ `)[0],severity:C,requiredBy:N}}function checkNpmPackage(n,a,S,C,N,F){try{return createRequire(pathToFileURL(jo(C,`_check_.js`)).href).resolve(S),{id:n,name:a,found:!0,severity:N,requiredBy:F}}catch{}try{return createRequire(import.meta.url).resolve(S),{id:n,name:a,found:!0,severity:N,requiredBy:F}}catch{return{id:n,name:a,found:!1,severity:N,requiredBy:F}}}function detectPackageManager$2(){for(let n of[`apt`,`dnf`,`pacman`,`zypper`,`apk`])if(tryExecFile(`which`,[n])!==null)return n;return`unknown`}__name$1(detectPackageManager$2,`detectPackageManager`);const uE={manette:{id:`manette`,name:`libmanette`,pkgName:`manette-0.2`},gstreamer:{id:`gstreamer`,name:`GStreamer`,pkgName:`gstreamer-1.0`},"gst-app":{id:`gst-app`,name:`GStreamer App`,pkgName:`gstreamer-app-1.0`},"gdk-pixbuf":{id:`gdk-pixbuf`,name:`GdkPixbuf`,pkgName:`gdk-pixbuf-2.0`},pango:{id:`pango`,name:`Pango`,pkgName:`pango`},pangocairo:{id:`pangocairo`,name:`PangoCairo`,pkgName:`pangocairo`},webkitgtk:{id:`webkitgtk`,name:`WebKitGTK`,pkgName:`webkitgtk-6.0`},cairo:{id:`cairo`,name:`Cairo`,pkgName:`cairo`},gnutls:{id:`gnutls`,name:`GnuTLS`,pkgName:`gnutls`},nghttp2:{id:`nghttp2`,name:`libnghttp2`,pkgName:`libnghttp2`}},dE={"@gjsify/gamepad":[`manette`],"@gjsify/webaudio":[`gstreamer`,`gst-app`],"@gjsify/iframe":[`webkitgtk`],"@gjsify/canvas2d":[`gdk-pixbuf`,`pango`,`pangocairo`,`cairo`],"@gjsify/canvas2d-core":[`gdk-pixbuf`,`pango`,`pangocairo`,`cairo`],"@gjsify/dom-elements":[`gdk-pixbuf`],"@gjsify/webgl":[`gwebgl`],"@gjsify/tls-native":[`gnutls`],"@gjsify/http2-native":[`nghttp2`]};function findProjectRoot(n){let a=Oo(n);for(;;){if(existsSync(jo(a,`package.json`)))return a;let n=Oo(a,`..`);if(n===a)return null;a=n}}function discoverGjsifyPackages(n){let a=findProjectRoot(n);if(!a)return null;let S=jo(a,`node_modules`,`@gjsify`);if(!existsSync(S))return new Set;let C=jo(a,`package.json`),N={};try{N=JSON.parse(readFileSync(C,`utf-8`))}catch{}let F={...N.dependencies,...N.devDependencies},I=new Set;try{for(let n of readdirSync(S,{withFileTypes:!0}))(n.isDirectory()||n.isSymbolicLink())&&I.add(`@gjsify/${n.name}`)}catch{}for(let n of Object.keys(F))n.startsWith(`@gjsify/`)&&I.add(n);return I}function computeNeededOptionalDeps(n){let a=discoverGjsifyPackages(n);if(a===null)return null;let S=new Set;for(let n of a){let a=dE[n];if(a)for(let n of a)S.add(n)}return S}function runAllChecks(n){let a=computeNeededOptionalDeps(n);return[...runMinimalChecks(),...runRequiredChecks(n),...runOptionalChecks(a,n)]}function runMinimalChecks(){let n=[];return n.push({id:`nodejs`,name:`Node.js`,found:!0,version:process.version,severity:`required`}),n.push(checkBinary(`gjs`,`GJS`,`gjs`,[`--version`],`required`,n=>n.replace(/^GJS\s+/i,``).split(`
746
+ `)[0]??n)),n}function checkGwebgl(n){return checkNpmPackage(`gwebgl`,`gwebgl (@gjsify/webgl)`,`@gjsify/webgl`,n,`optional`,[`@gjsify/webgl`])}function runRequiredChecks(n){let a=[];return a.push(checkBinary(`blueprint-compiler`,`Blueprint Compiler`,`blueprint-compiler`,[`--version`],`required`)),a.push(checkBinary(`pkg-config`,`pkg-config`,`pkg-config`,[`--version`],`required`)),a.push(checkBinary(`meson`,`Meson`,`meson`,[`--version`],`required`)),a.push(checkPkgConfig(`gtk4`,`GTK4`,`gtk4`,`required`)),a.push(checkPkgConfig(`libadwaita`,`libadwaita`,`libadwaita-1`,`required`)),a.push(checkPkgConfig(`libsoup3`,`libsoup3`,`libsoup-3.0`,`required`)),a.push(checkPkgConfig(`gobject-introspection`,`GObject Introspection`,`gobject-introspection-1.0`,`required`)),a}function runOptionalChecks(n,a){let S=[];for(let[a,C]of Object.entries(uE)){if(n!==null&&!n.has(a))continue;let N=Object.entries(dE).filter(([,n])=>n.includes(a)).map(([n])=>n);S.push(checkPkgConfig(C.id,C.name,C.pkgName,`optional`,N))}return(n===null||n.has(`gwebgl`))&&S.push(checkGwebgl(a)),S}const fE={apt:{gjs:`gjs`,"blueprint-compiler":`blueprint-compiler`,"pkg-config":`pkg-config`,meson:`meson`,gtk4:`libgtk-4-dev`,libadwaita:`libadwaita-1-dev`,libsoup3:`libsoup-3.0-dev`,webkitgtk:`libwebkit2gtk-6.0-dev`,"gobject-introspection":`gobject-introspection libgirepository1.0-dev`,manette:`libmanette-0.2-0 gir1.2-manette-0.2`,gstreamer:`libgstreamer1.0-dev`,"gst-app":`libgstreamer-plugins-base1.0-dev gir1.2-gst-plugins-base-1.0`,"gdk-pixbuf":`libgdk-pixbuf-2.0-dev`,pango:`libpango1.0-dev`,pangocairo:`libpango1.0-dev`,cairo:`libcairo2-dev`,gnutls:`libgnutls28-dev`,nghttp2:`libnghttp2-dev`},dnf:{gjs:`gjs`,"blueprint-compiler":`blueprint-compiler`,"pkg-config":`pkgconf-pkg-config`,meson:`meson`,gtk4:`gtk4-devel`,libadwaita:`libadwaita-devel`,libsoup3:`libsoup3-devel`,webkitgtk:`webkitgtk6.0-devel`,"gobject-introspection":`gobject-introspection-devel`,manette:`libmanette-devel`,gstreamer:`gstreamer1-devel`,"gst-app":`gstreamer1-plugins-base-devel`,"gdk-pixbuf":`gdk-pixbuf2-devel`,pango:`pango-devel`,pangocairo:`pango-devel`,cairo:`cairo-devel`,gnutls:`gnutls-devel`,nghttp2:`libnghttp2-devel`},pacman:{gjs:`gjs`,"blueprint-compiler":`blueprint-compiler`,"pkg-config":`pkgconf`,meson:`meson`,gtk4:`gtk4`,libadwaita:`libadwaita`,libsoup3:`libsoup3`,webkitgtk:`webkitgtk-6.0`,"gobject-introspection":`gobject-introspection`,manette:`libmanette`,gstreamer:`gstreamer`,"gst-app":`gst-plugins-base`,"gdk-pixbuf":`gdk-pixbuf2`,pango:`pango`,pangocairo:`pango`,cairo:`cairo`,gnutls:`gnutls`,nghttp2:`libnghttp2`},zypper:{gjs:`gjs`,"blueprint-compiler":`blueprint-compiler`,"pkg-config":`pkg-config`,meson:`meson`,gtk4:`gtk4-devel`,libadwaita:`libadwaita-devel`,libsoup3:`libsoup-3_0-devel`,webkitgtk:`webkitgtk6_0-devel`,"gobject-introspection":`gobject-introspection-devel`,manette:`libmanette-0_2-0-devel`,gstreamer:`gstreamer-devel`,"gst-app":`gstreamer-plugins-base-devel`,"gdk-pixbuf":`gdk-pixbuf-devel`,pango:`pango-devel`,pangocairo:`pango-devel`,cairo:`cairo-devel`,gnutls:`libgnutls-devel`,nghttp2:`libnghttp2-devel`},apk:{gjs:`gjs`,"blueprint-compiler":`blueprint-compiler`,"pkg-config":`pkgconf`,meson:`meson`,gtk4:`gtk4.0-dev`,libadwaita:`libadwaita-dev`,libsoup3:`libsoup3-dev`,webkitgtk:`webkit2gtk-6.0-dev`,"gobject-introspection":`gobject-introspection-dev`,manette:`libmanette-dev`,gstreamer:`gstreamer-dev`,"gst-app":`gst-plugins-base-dev`,"gdk-pixbuf":`gdk-pixbuf-dev`,pango:`pango-dev`,pangocairo:`pango-dev`,cairo:`cairo-dev`,gnutls:`gnutls-dev`,nghttp2:`nghttp2-dev`},unknown:{}},pE={apt:`sudo apt install`,dnf:`sudo dnf install`,pacman:`sudo pacman -S`,zypper:`sudo zypper install`,apk:`sudo apk add`,unknown:``};function buildInstallCommand(n,a){if(n===`unknown`)return null;let S=fE[n],C=[],N=[];for(let n of a){if(n.id===`gwebgl`){N.push(`@gjsify/webgl`);continue}if(n.id===`nodejs`)continue;let a=S[n.id];a&&C.push(a)}let F=[];return C.length>0&&F.push(`${pE[n]} ${C.join(` `)}`),N.length>0&&F.push(`npm install ${N.join(` `)}`),F.length>0?F.join(`
747
+ `):null}Ie();const mE={command:`system-check`,description:"Check that required system dependencies (GJS, GTK4, libsoup3, …) are installed. Optional dependencies are detected only when their @gjsify/* package is in your project. (Previously called `gjsify check`; the bare name now runs TypeScript checks across the workspace — see `gjsify check --help`.)",builder:n=>n.option(`json`,{description:`Output results as JSON`,type:`boolean`,default:!1}),handler:async n=>{let a=runAllChecks(process.cwd()),S=detectPackageManager$2(),C=a.filter(n=>!n.found&&n.severity===`required`),N=a.filter(n=>!n.found&&n.severity===`optional`),F=[...C,...N];if(n.json){Fe.log(JSON.stringify({packageManager:S,deps:a},null,2)),process.exit(+(C.length>0));return}Fe.log(`System dependency check
748
748
  `);let I=a.filter(n=>n.severity===`required`),H=a.filter(n=>n.severity===`optional`);if(I.length>0){Fe.log(`Required:`);for(let n of I){let a=n.found?`✓`:`✗`,S=n.version?` (${n.version})`:``;Fe.log(` ${a} ${n.name}${S}`)}}if(H.length>0){Fe.log(`
749
749
  Optional:`);for(let n of H){let a=n.found?`✓`:`⚠`,S=n.version?` (${n.version})`:``,C=n.requiredBy&&n.requiredBy.length>0?` — needed by ${n.requiredBy.join(`, `)}`:``;Fe.log(` ${a} ${n.name}${S}${C}`)}}if(Fe.log(`\nPackage manager: ${S}`),F.length===0){Fe.log(`
750
750
  All dependencies found.`);return}C.length>0&&Fe.log(`\nMissing required: ${C.map(n=>n.name).join(`, `)}`),N.length>0&&Fe.log(`Missing optional: ${N.map(n=>n.name).join(`, `)}`);let W=buildInstallCommand(S,F);W?Fe.log(`\nTo install:\n ${W}`):Fe.log(`
751
751
  No install command available for your package manager. Install manually.`),process.exit(+(C.length>0))}};Ie(),Hx(),As(),Ho(),kp();function readPackageJson$1(n){let a=jo(n,`package.json`);if(!existsSync(a))return null;try{return JSON.parse(readFileSync(a,`utf-8`))}catch{return null}}__name$1(readPackageJson$1,`readPackageJson`);function runCheck(n,a){return new Promise(S=>{let C=spawn(`npm`,[`run`,`check`,`--if-present`],{cwd:n.location,stdio:a===null?`inherit`:[`ignore`,`pipe`,`pipe`]});if(a!==null&&C.stdout&&C.stderr){let n=`[${a}] `,forward=(a,S)=>{a.on(`data`,a=>{let C=a.toString(`utf-8`);for(let a of C.split(`
752
- `))a.length>0&&S.write(`${n}${a}\n`)})};forward(C.stdout,process.stdout),forward(C.stderr,process.stderr)}C.on(`close`,n=>S(n??1)),C.on(`error`,()=>S(1))})}const pE={command:`check`,description:"Run `npm run check` (TypeScript type-check) across the current workspace. In a workspace root: walks every package with a `check` script (excludes @girs/*; honours --include/--exclude). In a single package: runs the local `check` script directly. Symmetric peer of `gjsify format` / `lint` / `fix`. (Legacy system-dep `gjsify check` is now `gjsify system-check` — see #254.)",builder:n=>n.option(`include`,{description:`Only run in workspaces matching these glob patterns (repeatable).`,type:`string`,array:!0}).option(`exclude`,{description:`Skip workspaces matching these glob patterns (repeatable). Always excludes @girs/*.`,type:`string`,array:!0}).option(`parallel`,{description:`Run workspace checks in parallel (default). Use --no-parallel to run them sequentially with full per-workspace output.`,type:`boolean`,alias:`p`,default:!0}).option(`jobs`,{description:`Max parallel workers (when --parallel). Default: os.cpus().length.`,type:`number`,alias:`j`}).option(`verbose`,{description:`Log the per-workspace command before spawning.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=findWorkspaceRoot(a);if(S&&a!==S&&readPackageJson$1(a)?.scripts?.check){n.verbose&&Fe.log(`[check] cwd=${a} → npm run check`);let S=spawnSync(`npm`,[`run`,`check`],{cwd:a,stdio:`inherit`});process.exit(S.status??1)}S||(Fe.error("gjsify check: no workspace root found from cwd. Run inside a workspace (or a package within one) with `npm run check` defined."),process.exit(1));let C=discoverWorkspaces(S),N=[`@girs/*`,...n.exclude??[]],F=filterWorkspaces(C,{include:n.include,exclude:N}).filter(n=>n.manifest.scripts?.check!==void 0);if(F.length===0&&(Fe.error("gjsify check: no workspaces with a `check` script found."),process.exit(1)),n.verbose&&Fe.log(`[check] root=${S} workspaces=${F.length} parallel=${n.parallel?`yes`:`no`}`),!n.parallel){let a=0;for(let S of F){n.verbose&&Fe.log(`[check] → ${S.name}`);let C=await runCheck(S,null);C!==0&&a===0&&(a=C)}a!==0&&Fe.error(`gjsify check: failures in ${F.filter(async n=>await runCheck(n,null)!==0).length}+ workspaces`),process.exit(a)}let I=n.jobs??Math.max(1,cpus().length),H=[],W=0,K=[];for(let n=0;n<I;n++)K.push((async()=>{for(;;){let n=W++;if(n>=F.length)return;let a=F[n],S=await runCheck(a,a.name);S!==0&&H.push({name:a.name,code:S})}})());if(await Promise.all(K),H.length>0){Fe.error(`\ngjsify check: ${H.length} of ${F.length} workspace(s) failed:`);for(let n of H)Fe.error(` ✗ ${n.name} (exit ${n.code})`);process.exit(1)}n.verbose&&Fe.log(`\ngjsify check: ${F.length} workspace(s) green.`),process.exit(0)}};As(),Ho(),rn();function manifestPath(){return jo(Po(fileURLToPath(import.meta.url)),`..`,`..`,`showcases.json`)}function discoverShowcases(){let n=manifestPath();if(!existsSync(n))return[];let a;try{a=JSON.parse(readFileSync(n,`utf-8`))}catch{return[]}if(!Array.isArray(a.showcases))return[];let S=a.showcases.map(n=>({name:n.name,packageName:n.package,category:n.category,description:n.description??``,needsWebgl:!!n.needsWebgl}));return S.sort((n,a)=>n.category.localeCompare(a.category)||n.name.localeCompare(a.name)),S}function findShowcase(n){return discoverShowcases().find(a=>a.name===n)}Ie(),Hx(),rn(),As();function readCliVersion(){try{let n=new URL(`../../package.json`,import.meta.url),a=JSON.parse(readFileSync(n,`utf8`));return typeof a.version==`string`?a.version:void 0}catch{return}}const mE={command:`showcase [name]`,description:`List or run curated gjsify showcase applications.`,builder:n=>n.positional(`name`,{description:`Showcase name to run (omit to list all)`,type:`string`}).option(`json`,{description:`Output as JSON`,type:`boolean`,default:!1}).option(`list`,{description:`List available showcases`,type:`boolean`,default:!1}),handler:async n=>{if(!n.name||n.list){let a=discoverShowcases();if(n.json){Fe.log(JSON.stringify(a,null,2));return}if(a.length===0){Fe.log("No showcases found. The CLI ships a curated list in `showcases.json`; if it is missing the CLI install is incomplete.");return}let S=new Map;for(let n of a){let a=S.get(n.category)??[];a.push(n),S.set(n.category,a)}Fe.log(`Available gjsify showcases:
752
+ `))a.length>0&&S.write(`${n}${a}\n`)})};forward(C.stdout,process.stdout),forward(C.stderr,process.stderr)}C.on(`close`,n=>S(n??1)),C.on(`error`,()=>S(1))})}const hE={command:`check`,description:"Run `npm run check` (TypeScript type-check) across the current workspace. In a workspace root: walks every package with a `check` script (excludes @girs/*; honours --include/--exclude). In a single package: runs the local `check` script directly. Symmetric peer of `gjsify format` / `lint` / `fix`. (Legacy system-dep `gjsify check` is now `gjsify system-check` — see #254.)",builder:n=>n.option(`include`,{description:`Only run in workspaces matching these glob patterns (repeatable).`,type:`string`,array:!0}).option(`exclude`,{description:`Skip workspaces matching these glob patterns (repeatable). Always excludes @girs/*.`,type:`string`,array:!0}).option(`parallel`,{description:`Run workspace checks in parallel (default). Use --no-parallel to run them sequentially with full per-workspace output.`,type:`boolean`,alias:`p`,default:!0}).option(`jobs`,{description:`Max parallel workers (when --parallel). Default: os.cpus().length.`,type:`number`,alias:`j`}).option(`verbose`,{description:`Log the per-workspace command before spawning.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=findWorkspaceRoot(a);if(S&&a!==S&&readPackageJson$1(a)?.scripts?.check){n.verbose&&Fe.log(`[check] cwd=${a} → npm run check`);let S=spawnSync(`npm`,[`run`,`check`],{cwd:a,stdio:`inherit`});process.exit(S.status??1)}S||(Fe.error("gjsify check: no workspace root found from cwd. Run inside a workspace (or a package within one) with `npm run check` defined."),process.exit(1));let C=discoverWorkspaces(S),N=[`@girs/*`,...n.exclude??[]],F=filterWorkspaces(C,{include:n.include,exclude:N}).filter(n=>n.manifest.scripts?.check!==void 0);if(F.length===0&&(Fe.error("gjsify check: no workspaces with a `check` script found."),process.exit(1)),n.verbose&&Fe.log(`[check] root=${S} workspaces=${F.length} parallel=${n.parallel?`yes`:`no`}`),!n.parallel){let a=0;for(let S of F){n.verbose&&Fe.log(`[check] → ${S.name}`);let C=await runCheck(S,null);C!==0&&a===0&&(a=C)}a!==0&&Fe.error(`gjsify check: failures in ${F.filter(async n=>await runCheck(n,null)!==0).length}+ workspaces`),process.exit(a)}let I=n.jobs??Math.max(1,cpus().length),H=[],W=0,K=[];for(let n=0;n<I;n++)K.push((async()=>{for(;;){let n=W++;if(n>=F.length)return;let a=F[n],S=await runCheck(a,a.name);S!==0&&H.push({name:a.name,code:S})}})());if(await Promise.all(K),H.length>0){Fe.error(`\ngjsify check: ${H.length} of ${F.length} workspace(s) failed:`);for(let n of H)Fe.error(` ✗ ${n.name} (exit ${n.code})`);process.exit(1)}n.verbose&&Fe.log(`\ngjsify check: ${F.length} workspace(s) green.`),process.exit(0)}};As(),Ho(),rn();function manifestPath(){return jo(Po(fileURLToPath(import.meta.url)),`..`,`..`,`showcases.json`)}function discoverShowcases(){let n=manifestPath();if(!existsSync(n))return[];let a;try{a=JSON.parse(readFileSync(n,`utf-8`))}catch{return[]}if(!Array.isArray(a.showcases))return[];let S=a.showcases.map(n=>({name:n.name,packageName:n.package,category:n.category,description:n.description??``,needsWebgl:!!n.needsWebgl}));return S.sort((n,a)=>n.category.localeCompare(a.category)||n.name.localeCompare(a.name)),S}function findShowcase(n){return discoverShowcases().find(a=>a.name===n)}Ie(),Hx(),rn(),As();function readCliVersion(){try{let n=new URL(`../../package.json`,import.meta.url),a=JSON.parse(readFileSync(n,`utf8`));return typeof a.version==`string`?a.version:void 0}catch{return}}const gE={command:`showcase [name]`,description:`List or run curated gjsify showcase applications.`,builder:n=>n.positional(`name`,{description:`Showcase name to run (omit to list all)`,type:`string`}).option(`json`,{description:`Output as JSON`,type:`boolean`,default:!1}).option(`list`,{description:`List available showcases`,type:`boolean`,default:!1}),handler:async n=>{if(!n.name||n.list){let a=discoverShowcases();if(n.json){Fe.log(JSON.stringify(a,null,2));return}if(a.length===0){Fe.log("No showcases found. The CLI ships a curated list in `showcases.json`; if it is missing the CLI install is incomplete.");return}let S=new Map;for(let n of a){let a=S.get(n.category)??[];a.push(n),S.set(n.category,a)}Fe.log(`Available gjsify showcases:
753
753
  `);for(let[n,a]of S){Fe.log(` ${n.toUpperCase()}:`);let S=Math.max(...a.map(n=>n.name.length));for(let n of a){let a=` `.repeat(S-n.name.length+2),C=n.description?`${a}${n.description}`:``;Fe.log(` ${n.name}${C}`)}Fe.log(``)}Fe.log(`Run a showcase: gjsify showcase <name>`);return}let a=findShowcase(n.name);a||(Fe.error(`Unknown showcase: "${n.name}"`),Fe.error(`Run "gjsify showcase" to list available showcases.`),process.exit(1));let S=runMinimalChecks().filter(n=>!n.found&&n.severity===`required`);if(S.length>0){Fe.error(`Missing system dependencies:
754
- `);for(let n of S)Fe.error(` ✗ ${n.name}`);let n=buildInstallCommand(detectPackageManager$2(),S);n&&Fe.error(`\nInstall with:\n ${n}`),process.exit(1)}let C=readCliVersion(),N=C?`${a.packageName}@${C}`:a.packageName;Fe.log(`Running showcase: ${a.name} (via gjsify dlx ${N})\n`);let F=fileURLToPath(new URL(`../index.js`,import.meta.url)),I=spawn(process.execPath,[F,`dlx`,N],{stdio:`inherit`});await new Promise((n,a)=>{I.on(`close`,S=>{S===0?n():a(Error(`gjsify dlx exited with code ${S}`))}),I.on(`error`,a)}).catch(n=>{Fe.error(n.message),process.exit(1)})}};As(),Ho(),rn();const hE={"gtk-minimal":`Minimal GTK4 app — Gtk.Window + Gtk.Label (no Adwaita, no Blueprint).`,cli:`Command-line tool using yargs (Node.js + GJS).`,"adw-canvas2d":`Adwaita app with HTML Canvas 2D rendering (Blueprint UI).`,"adw-webgl":`Adwaita app with WebGL + three.js (Blueprint UI).`,"adw-game":`Adwaita game shell using Excalibur.js, WebGL → Canvas2D fallback.`,"web-server-hono":`HTTP server using Hono (Web-standard fetch-style API).`,"web-server-express":`HTTP server using Express (familiar Node.js stack).`};function discoverTemplates(){let n=jo(jo(Po(fileURLToPath(import.meta.url)),`..`),`dist-templates`);if(!existsSync(n))return[];let a=[];for(let S of readdirSync(n)){let C=jo(n,S),N=jo(C,`package.json`);if(!statSync(C).isDirectory()||!existsSync(N))continue;let F=hE[S]??``;try{let n=JSON.parse(readFileSync(N,`utf-8`));typeof n.description==`string`&&n.description.trim()&&(F=n.description)}catch{}a.push({name:S,description:F,path:C})}return a.sort((n,a)=>n.name.localeCompare(a.name)),a}function findTemplate(n){return discoverTemplates().find(a=>a.name===n)}Ie(),Hx(),As(),Ho();const gE=`new-gjsify-app`,_E=new Set([`.json`,`.md`,`.ts`,`.tsx`,`.js`,`.mjs`,`.cjs`,`.blp`,`.html`,`.css`,`.scss`,`.xml`,`.ui`,`.txt`]);function sanitizeProjectName(n){let a=n.trim();if(!a)throw Error(`Project name cannot be empty.`);let S=a.toLowerCase().replace(/[^a-z0-9._-]+/g,`-`).replace(/^[._-]+/,``).replace(/[._-]+$/,``);if(!S)throw Error(`"${n}" is not a valid npm package name.`);return S}function isDirEmpty(n){return existsSync(n)?readdirSync(n).length===0:!0}async function createProject(n){let a=sanitizeProjectName(n.projectName),{template:S,force:C=!1,install:N=!1}=n,F=findTemplate(S);if(!F){let n=discoverTemplates().map(n=>n.name).join(`, `);throw Error(`Unknown template "${S}". Available templates: ${n||`(none — run "yarn build" first)`}`)}let I=Oo(process.cwd(),a);existsSync(I)&&!isDirEmpty(I)&&!C&&(Fe.error(`Error: Directory "${a}" exists and is not empty. Use --force to scaffold into it anyway.`),process.exit(1)),Fe.log(`Creating new Gjsify project in ${I} (template: ${F.name})...`),mkdirSync(I,{recursive:!0}),cpSync(F.path,I,{recursive:!0}),substituteProjectName(I,a),N&&(Fe.log(`Running npm install...`),spawnSync(`npm`,[`install`,`--no-audit`,`--no-fund`],{cwd:I,stdio:`inherit`}).status!==0&&Fe.warn(`npm install failed; re-run it manually in the project directory.`)),printNextSteps(a,F,N)}function substituteProjectName(n,a){let S=new Set([`node_modules`,`dist`,`lib`]),C=[n];for(;C.length>0;){let n=C.pop();for(let N of readdirSync(n,{withFileTypes:!0})){let F=jo(n,N.name);if(N.isDirectory()){S.has(N.name)||C.push(F);continue}if(!N.isFile())continue;let I=N.name.lastIndexOf(`.`),H=I>=0?N.name.slice(I):``;if(!_E.has(H))continue;let W=readFileSync(F,`utf-8`);W.includes(gE)&&writeFileSync(F,W.replaceAll(gE,a))}}}function printNextSteps(n,a,S){Fe.log(``),Fe.log(`Project created from template "${a.name}".`),Fe.log(``),Fe.log(`Next steps:`),Fe.log(` cd ${n}`),S||Fe.log(` npm install`),Fe.log(` npm run dev`),Fe.log(``)}vs();const vE={reset:`\x1B[0m`,bold:`\x1B[1m`,dim:`\x1B[2m`,cyan:`\x1B[36m`,green:`\x1B[32m`};function render(n,a,S){S||Yt.write(`\x1b[${n.length}A`);for(let S=0;S<n.length;S++){let C=n[S],N=S===a?`${vE.cyan}❯${vE.reset}`:` `,F=S===a?`${vE.bold}${vE.green}${C.name}${vE.reset}`:C.name;Yt.write(`\x1b[2K\r ${N} ${F} ${vE.dim}${C.description}${vE.reset}\n`)}}function promptTemplate(n){return n.length===0?Promise.reject(Error(`No templates available.`)):new Promise((a,S)=>{let C=0;Yt.write(`${vE.bold}Select a template${vE.reset} ${vE.dim}(↑/↓ to navigate, Enter to confirm, Ctrl+C to cancel)${vE.reset}\n`),render(n,C,!0),emitKeypressEvents(Xt),Xt.isTTY&&Xt.setRawMode(!0),Xt.resume();let cleanup=()=>{Xt.removeListener(`keypress`,onKeypress),Xt.isTTY&&Xt.setRawMode(!1),Xt.pause()},onKeypress=(N,F)=>{if(F){if(F.ctrl&&F.name===`c`){cleanup(),Yt.write(`
755
- `),S(Error(`Cancelled by user`));return}F.name===`up`||F.name===`k`?(C=(C-1+n.length)%n.length,render(n,C,!1)):F.name===`down`||F.name===`j`?(C=(C+1)%n.length,render(n,C,!1)):(F.name===`return`||F.name===`enter`)&&(cleanup(),a(n[C]))}};Xt.on(`keypress`,onKeypress)})}Ie();const yE={command:`create [project-name]`,description:`Scaffold a new Gjsify project in a new directory.`,builder:n=>{let a=discoverTemplates().map(n=>n.name);return n.positional(`project-name`,{describe:`Name of the project directory to create`,type:`string`,default:`my-gjs-app`}).option(`template`,{alias:`t`,describe:`Template to scaffold from`,type:`string`,choices:a.length>0?a:void 0}).option(`force`,{alias:`f`,describe:`Scaffold into a non-empty directory`,type:`boolean`,default:!1}).option(`install`,{describe:`Run npm install after scaffolding`,type:`boolean`,default:!1})},handler:async n=>{let a=n.template;if(!a){let n=discoverTemplates();if(!process.stdin.isTTY){let a=n.map(n=>n.name).join(`, `);Fe.error(`Error: --template is required in non-interactive mode. Available templates: ${a||`(none)`}`),process.exit(1)}a=(await promptTemplate(n)).name}await createProject({projectName:n[`project-name`],template:a,force:n.force,install:n.install})}};Ie(),Hx(),ss(),Ho(),qc();const bE=promisify(execFile);function defaultTargetFor(n){let a=Fo(n,Io(n));return Oo(Po(n),a)}const xE={command:`gresource <xml>`,description:"Compile a GResource XML descriptor into a binary .gresource bundle (wraps `glib-compile-resources`).",builder:n=>n.positional(`xml`,{description:`Path to the .gresource.xml descriptor`,type:`string`,normalize:!0,demandOption:!0}).option(`sourcedir`,{description:`Directory containing the resource files referenced by <xml>`,type:`string`,normalize:!0}).option(`target`,{alias:`t`,description:`Output .gresource file (default: <xml-without-.xml> next to <xml>)`,type:`string`,normalize:!0}).option(`verbose`,{description:`Print the underlying glib-compile-resources invocation`,type:`boolean`,default:!1}),handler:async n=>{let a=Oo(n.xml),S=n.target?Oo(n.target):defaultTargetFor(a),C=[`--sourcedir=${n.sourcedir?Oo(n.sourcedir):Po(a)}`,`--target=${S}`,a];n.verbose&&Fe.log(`[gjsify gresource] glib-compile-resources ${C.join(` `)}`),await mkdir$1(Po(S),{recursive:!0});try{let{stdout:a,stderr:N}=await bE(`glib-compile-resources`,C);a&&process.stdout.write(a),N&&process.stderr.write(N),n.verbose&&Fe.log(`[gjsify gresource] wrote ${S}`)}catch(n){n?.code===`ENOENT`?Fe.error(`[gjsify gresource] glib-compile-resources not found. Install it via your distro (package: glib2-devel / libglib2.0-dev).`):(n?.stderr&&process.stderr.write(n.stderr),Fe.error(`[gjsify gresource] glib-compile-resources failed${n?.code===void 0?``:` (exit ${n.code})`}`)),process.exitCode=typeof n?.code==`number`?n.code:1}}};Ie(),Hx(),ss(),Ho(),qc();const SE=promisify(execFile);async function listLanguages(n){return(await readdir$1(n)).filter(n=>n.endsWith(`.po`)&&!n.startsWith(`.`)).map(n=>n.slice(0,-3)).sort()}function stripXmlComments(n){return n.replace(/<!--[\s\S]*?-->/g,``)}async function ensureDir(n){await mkdir$1(n,{recursive:!0})}async function fileExists(n){try{return await stat$1(n),!0}catch{return!1}}async function compileBulkXml(n){let a=jo(n.outDir,n.filename);await ensureDir(n.outDir);let S=[`--output-file=${a}`,`--xml`,`--template=${n.template}`,`-d`,n.poDir];n.verbose&&Fe.log(`[gjsify gettext] msgfmt ${S.join(` `)}`),await SE(`msgfmt`,S),n.removeXmlComments&&await writeFile$1(a,stripXmlComments(await readFile$1(a,`utf-8`))),n.verbose&&Fe.log(`[gjsify gettext] wrote ${a}`)}async function compilePerLanguage(n){let a=await listLanguages(n.poDir);if(a.length===0){Fe.warn(`[gjsify gettext] no .po files found in ${n.poDir}`);return}for(let S of a){let a=jo(n.poDir,`${S}.po`),C=n.format===`mo`?jo(n.outDir,S,`LC_MESSAGES`):jo(n.outDir,S);await ensureDir(C);let N=[`--output-file=${jo(C,n.filename)}`];n.format!==`mo`&&N.push(`--${n.format}`),N.push(a),n.verbose&&Fe.log(`[gjsify gettext] msgfmt ${N.join(` `)}`),await SE(`msgfmt`,N)}n.verbose&&Fe.log(`[gjsify gettext] compiled ${a.length} language(s) into ${n.outDir}`)}function defaultFilename(n,a,S){switch(a){case`mo`:return`${n}.mo`;case`json`:return`${n}.json`;case`desktop`:return`${n}.desktop`;case`xml`:if(S){let n=S.replace(/\.in$/,``),a=n.lastIndexOf(`/`);return a>=0?n.slice(a+1):n}return`${n}.xml`}}const CE={command:`gettext <poDir> <outDir>`,description:`Compile gettext .po files to .mo (per-language locale tree) or substitute a metainfo template via msgfmt --xml.`,builder:n=>n.positional(`poDir`,{description:`Directory containing <lang>.po files`,type:`string`,normalize:!0,demandOption:!0}).positional(`outDir`,{description:`Output directory (locale tree for --format=mo, plain dir for xml/desktop/json)`,type:`string`,normalize:!0,demandOption:!0}).option(`domain`,{description:"Text domain / application ID (e.g. `org.pixelrpg.maker`)",type:`string`,normalize:!0,demandOption:!0}).option(`format`,{description:`Output format`,type:`string`,choices:[`mo`,`xml`,`desktop`,`json`],default:`mo`}).option(`metainfo`,{description:"For --format=xml: path to the template (`.metainfo.xml.in`) used as msgfmt --template",type:`string`,normalize:!0}).option(`filename`,{description:`Override the output filename (defaults to <domain>.<ext>)`,type:`string`,normalize:!0}).option(`remove-xml-comments`,{description:`For --format=xml: strip XML comments from the compiled output`,type:`boolean`,default:!0}).option(`verbose`,{description:`Print each msgfmt invocation`,type:`boolean`,default:!1}),handler:async n=>{let a=Oo(n.poDir),S=Oo(n.outDir),C=n.domain,N=n.format??`mo`,F=n.metainfo?Oo(n.metainfo):void 0,I=n.filename??defaultFilename(C,N,F),H=!!n.verbose,W=!!n[`remove-xml-comments`];if(!await fileExists(a)){Fe.error(`[gjsify gettext] PO directory does not exist: ${a}`),process.exitCode=1;return}try{N===`xml`&&F?await compileBulkXml({poDir:a,outDir:S,domain:C,template:F,filename:I,removeXmlComments:W,verbose:H}):(N===`xml`&&Fe.warn(`[gjsify gettext] --format=xml without --metainfo: falling back to per-language XML files`),await compilePerLanguage({poDir:a,outDir:S,domain:C,format:N,filename:I,verbose:H}))}catch(n){n?.code===`ENOENT`?Fe.error(`[gjsify gettext] msgfmt not found. Install it via your distro (package: gettext).`):(n?.stderr&&process.stderr.write(n.stderr),Fe.error(`[gjsify gettext] msgfmt failed${n?.code===void 0?``:` (exit ${n.code})`}`)),process.exitCode=typeof n?.code==`number`?n.code:1}}};Ie(),Hx(),ss(),Ho(),qc();const wE=promisify(execFile),TE={command:`gsettings <schemadir>`,description:"Compile GSettings schema XML files into a binary gschemas.compiled (wraps `glib-compile-schemas`).",builder:n=>n.positional(`schemadir`,{description:`Directory containing *.gschema.xml descriptors`,type:`string`,normalize:!0,demandOption:!0}).option(`targetdir`,{alias:`t`,description:`Directory to write gschemas.compiled (default: <schemadir>)`,type:`string`,normalize:!0}).option(`strict`,{description:`Abort on any schema warning (passes --strict to glib-compile-schemas)`,type:`boolean`,default:!0}).option(`verbose`,{description:`Print the underlying glib-compile-schemas invocation`,type:`boolean`,default:!1}),handler:async n=>{let a=Oo(n.schemadir),S=n.targetdir?Oo(n.targetdir):a,C=[];n.strict&&C.push(`--strict`),C.push(`--targetdir=${S}`),C.push(a),n.verbose&&Fe.log(`[gjsify gsettings] glib-compile-schemas ${C.join(` `)}`),await mkdir$1(S,{recursive:!0});try{let{stdout:a,stderr:N}=await wE(`glib-compile-schemas`,C);a&&process.stdout.write(a),N&&process.stderr.write(N),n.verbose&&Fe.log(`[gjsify gsettings] wrote ${S}/gschemas.compiled`)}catch(n){n?.code===`ENOENT`?Fe.error(`[gjsify gsettings] glib-compile-schemas not found. Install it via your distro (package: glib2-devel / libglib2.0-dev).`):(n?.stderr&&process.stderr.write(n.stderr),Fe.error(`[gjsify gsettings] glib-compile-schemas failed${n?.code===void 0?``:` (exit ${n.code})`}`)),process.exitCode=typeof n?.code==`number`?n.code:1}}};As(),Ho();const EE=[`--device=dri`,`--share=ipc`,`--socket=fallback-x11`,`--socket=wayland`],DE=[];function readPackageJson(n){let a=Oo(n,`package.json`),S;try{S=readFileSync(a,`utf-8`)}catch{throw Error(`gjsify flatpak: no package.json found at ${a}`)}try{return JSON.parse(S)}catch(n){throw Error(`gjsify flatpak: package.json at ${a} is not valid JSON: ${n.message}`)}}function looksLikeAppId(n){return typeof n==`string`&&/^[A-Za-z][A-Za-z0-9_-]*(\.[A-Za-z][A-Za-z0-9_-]*){2,}$/.test(n)}function resolveRuntime(n,a){let S=a.runtime??n?.runtime??`gnome`;if(S!==`gnome`&&S!==`freedesktop`)throw Error(`gjsify flatpak: unknown runtime "${S}" (expected "gnome" or "freedesktop")`);let C=a.runtimeVersion??n?.runtimeVersion??(S===`gnome`?`50`:`24.08`);return S===`gnome`?{runtime:S,runtimeId:`org.gnome.Platform`,sdk:`org.gnome.Sdk`,runtimeVersion:C}:{runtime:S,runtimeId:`org.freedesktop.Platform`,sdk:`org.freedesktop.Sdk`,runtimeVersion:C}}function defaultCiContainer(n,a){return`ghcr.io/flathub-infra/flatpak-github-actions:${`${n}-${a}`}`}As();function loadDesktopTemplate(){return readFileSync(new URL(`../../templates/flatpak/desktop.tmpl`,import.meta.url),`utf-8`)}function loadFlathubAppTemplate(){return readFileSync(new URL(`../../templates/flatpak/flathub-app.json.tmpl`,import.meta.url),`utf-8`)}function loadFlathubCliTemplate(){return readFileSync(new URL(`../../templates/flatpak/flathub-cli.json.tmpl`,import.meta.url),`utf-8`)}function validateScaffoldInputs(n){let a=n.flatpak,S=[];return(!a.developer?.id||!a.developer?.name)&&S.push({field:`gjsify.flatpak.developer`,hint:'Set `gjsify.flatpak.developer = { "id": "io.github.you", "name": "Your Name" }` in package.json. The id is reverse-DNS.'}),a.summary||S.push({field:`gjsify.flatpak.summary`,hint:`One-line app summary, ≤80 chars, no trailing period. Example: "Learn 6502 assembly language".`}),a.description||S.push({field:`gjsify.flatpak.description`,hint:`Plain text (split on blank lines) or DescriptionBlock[] for rich content with bullet lists + translator hints.`}),a.license?.project||S.push({field:`gjsify.flatpak.license.project`,hint:`SPDX identifier of the project license, e.g. "MIT", "GPL-3.0-or-later".`}),a.homepageUrl||S.push({field:`gjsify.flatpak.homepageUrl`,hint:`Required by Flathub. Example: "https://github.com/you/your-repo".`}),S}function renderMetainfoApp(n){return renderMetainfo(n,`desktop-application`)}function renderMetainfoCli(n){return renderMetainfo(n,`console-application`)}function renderDesktop(n){let a=n.flatpak,S=(a.categories??[`Utility`]).join(`;`)+`;`,C=a.keywords?.length?`Keywords=${a.keywords.join(`;`)};\n`:``;return substitute(loadDesktopTemplate(),{NAME:n.name,SUMMARY:a.summary??n.name,COMMAND:n.command,APP_ID:n.appId,CATEGORIES_LINE:S,KEYWORDS_LINE:C})}function renderFlathubJson(n){return n===`cli`?loadFlathubCliTemplate():loadFlathubAppTemplate()}function renderMetainfo(n,a){let S=n.flatpak,C=new Date().getFullYear(),N=S.developer?.name??``,F=[];F.push(`<?xml version="1.0" encoding="UTF-8"?>`),F.push(`<!-- Copyright ${C} ${escapeXml(N)} -->`),F.push(`<component type="${a}">`),F.push(` <id>${escapeXml(n.appId)}</id>`),F.push(` <metadata_license>${escapeXml(S.license?.metadata??`CC0-1.0`)}</metadata_license>`),F.push(` <project_license>${escapeXml(S.license?.project??``)}</project_license>`),F.push(` <name>${escapeXml(n.name)}</name>`),pushTranslatorHint(F,S.summaryTranslatorHint,` `),F.push(` <summary>${escapeXml(S.summary??n.name)}</summary>`),S.iconRemote&&F.push(` <icon type="remote">${escapeXml(S.iconRemote)}</icon>`),F.push(` <description>`);for(let n of renderDescriptionBlocks(S.description??``,` `))F.push(n);if(F.push(` </description>`),S.developer?.id&&S.developer?.name){F.push(` <developer id="${escapeXml(S.developer.id)}">`);let n=S.developer.nameTranslatable===!0?``:` translate="no"`;F.push(` <name${n}>${escapeXml(S.developer.name)}</name>`),S.developer.email&&F.push(` <email>${escapeXml(S.developer.email)}</email>`),F.push(` </developer>`)}a===`desktop-application`&&F.push(` <launchable type="desktop-id">${escapeXml(n.appId)}.desktop</launchable>`),S.screenshots?.length&&(F.push(` <screenshots>`),S.screenshots.forEach((n,a)=>{let S=n.type??(a===0?`default`:void 0),C=S?` type="${escapeXml(S)}"`:``,N=n.environment?` environment="${escapeXml(n.environment)}"`:``;F.push(` <screenshot${C}${N}>`),F.push(` <image>${escapeXml(n.url)}</image>`),n.caption&&(pushTranslatorHint(F,n.captionTranslatorHint,` `),F.push(` <caption>${escapeXml(n.caption)}</caption>`)),F.push(` </screenshot>`)}),F.push(` </screenshots>`)),S.homepageUrl&&F.push(` <url type="homepage">${escapeXml(S.homepageUrl)}</url>`),S.bugtrackerUrl&&F.push(` <url type="bugtracker">${escapeXml(S.bugtrackerUrl)}</url>`),S.vcsBrowserUrl&&F.push(` <url type="vcs-browser">${escapeXml(S.vcsBrowserUrl)}</url>`),S.donationUrl&&F.push(` <url type="donation">${escapeXml(S.donationUrl)}</url>`),S.translateUrl&&F.push(` <url type="translate">${escapeXml(S.translateUrl)}</url>`);let I=normaliseContentRating(S.contentRating);if(I.attributes&&Object.keys(I.attributes).length>0){F.push(` <content_rating type="${escapeXml(I.type)}">`);for(let[n,a]of Object.entries(I.attributes))F.push(` <content_attribute id="${escapeXml(n)}">${escapeXml(a)}</content_attribute>`);F.push(` </content_rating>`)}else F.push(` <content_rating type="${escapeXml(I.type)}" />`);if(S.releases?.length){F.push(` <releases>`);for(let n of S.releases)if(n.description===void 0)F.push(` <release version="${escapeXml(n.version)}" date="${escapeXml(n.date)}" />`);else{F.push(` <release version="${escapeXml(n.version)}" date="${escapeXml(n.date)}">`),F.push(` <description>`);for(let a of renderDescriptionBlocks(n.description,` `))F.push(a);F.push(` </description>`),F.push(` </release>`)}F.push(` </releases>`)}if(S.categories?.length){F.push(` <categories>`);for(let n of S.categories)F.push(` <category>${escapeXml(n)}</category>`);F.push(` </categories>`)}if(S.keywords?.length){F.push(` <keywords>`);for(let n of S.keywords)F.push(` <keyword>${escapeXml(n)}</keyword>`);F.push(` </keywords>`)}if(a===`desktop-application`&&S.branding&&(F.push(` <branding>`),F.push(` <color type="primary" scheme_preference="light">${escapeXml(S.branding.accentLight)}</color>`),F.push(` <color type="primary" scheme_preference="dark">${escapeXml(S.branding.accentDark)}</color>`),F.push(` </branding>`)),S.kudos?.length){F.push(` <kudos>`);for(let n of S.kudos)F.push(` <kudo>${escapeXml(n)}</kudo>`);F.push(` </kudos>`)}let H=S.provides?.binaries??[n.command],W=S.provides?.mimetypes??[],K=S.provides?.dbus??[];if(H.length||W.length||K.length){F.push(` <provides>`);for(let n of H)F.push(` <binary>${escapeXml(n)}</binary>`);for(let n of W)F.push(` <mediatype>${escapeXml(n)}</mediatype>`);for(let n of K)F.push(` <dbus type="${escapeXml(n.type)}">${escapeXml(n.id)}</dbus>`);F.push(` </provides>`)}if(S.supports?.controls?.length||S.supports?.internet){F.push(` <supports>`);for(let n of S.supports.controls??[])F.push(` <control>${escapeXml(n)}</control>`);S.supports.internet&&F.push(` <internet>${escapeXml(S.supports.internet)}</internet>`),F.push(` </supports>`)}if(S.requires?.displayLengthMin||S.requires?.controls?.length||S.requires?.internet){F.push(` <requires>`),S.requires.displayLengthMin&&F.push(` <display_length compare="ge">${S.requires.displayLengthMin}</display_length>`);for(let n of S.requires.controls??[])F.push(` <control>${escapeXml(n)}</control>`);S.requires.internet&&F.push(` <internet>${escapeXml(S.requires.internet)}</internet>`),F.push(` </requires>`)}if(S.recommends?.displayLengthMin||S.recommends?.controls?.length){F.push(` <recommends>`),S.recommends.displayLengthMin&&F.push(` <display_length compare="ge">${S.recommends.displayLengthMin}</display_length>`);for(let n of S.recommends.controls??[])F.push(` <control>${escapeXml(n)}</control>`);F.push(` </recommends>`)}return F.push(`</component>`),F.join(`
754
+ `);for(let n of S)Fe.error(` ✗ ${n.name}`);let n=buildInstallCommand(detectPackageManager$2(),S);n&&Fe.error(`\nInstall with:\n ${n}`),process.exit(1)}let C=readCliVersion(),N=C?`${a.packageName}@${C}`:a.packageName;Fe.log(`Running showcase: ${a.name} (via gjsify dlx ${N})\n`);let F=fileURLToPath(new URL(`../index.js`,import.meta.url)),I=spawn(process.execPath,[F,`dlx`,N],{stdio:`inherit`});await new Promise((n,a)=>{I.on(`close`,S=>{S===0?n():a(Error(`gjsify dlx exited with code ${S}`))}),I.on(`error`,a)}).catch(n=>{Fe.error(n.message),process.exit(1)})}};As(),Ho(),rn();const _E={"gtk-minimal":`Minimal GTK4 app — Gtk.Window + Gtk.Label (no Adwaita, no Blueprint).`,cli:`Command-line tool using yargs (Node.js + GJS).`,"adw-canvas2d":`Adwaita app with HTML Canvas 2D rendering (Blueprint UI).`,"adw-webgl":`Adwaita app with WebGL + three.js (Blueprint UI).`,"adw-game":`Adwaita game shell using Excalibur.js, WebGL → Canvas2D fallback.`,"web-server-hono":`HTTP server using Hono (Web-standard fetch-style API).`,"web-server-express":`HTTP server using Express (familiar Node.js stack).`};function discoverTemplates(){let n=jo(jo(Po(fileURLToPath(import.meta.url)),`..`),`dist-templates`);if(!existsSync(n))return[];let a=[];for(let S of readdirSync(n)){let C=jo(n,S),N=jo(C,`package.json`);if(!statSync(C).isDirectory()||!existsSync(N))continue;let F=_E[S]??``;try{let n=JSON.parse(readFileSync(N,`utf-8`));typeof n.description==`string`&&n.description.trim()&&(F=n.description)}catch{}a.push({name:S,description:F,path:C})}return a.sort((n,a)=>n.name.localeCompare(a.name)),a}function findTemplate(n){return discoverTemplates().find(a=>a.name===n)}Ie(),Hx(),As(),Ho();const vE=`new-gjsify-app`,yE=new Set([`.json`,`.md`,`.ts`,`.tsx`,`.js`,`.mjs`,`.cjs`,`.blp`,`.html`,`.css`,`.scss`,`.xml`,`.ui`,`.txt`]);function sanitizeProjectName(n){let a=n.trim();if(!a)throw Error(`Project name cannot be empty.`);let S=a.toLowerCase().replace(/[^a-z0-9._-]+/g,`-`).replace(/^[._-]+/,``).replace(/[._-]+$/,``);if(!S)throw Error(`"${n}" is not a valid npm package name.`);return S}function isDirEmpty(n){return existsSync(n)?readdirSync(n).length===0:!0}async function createProject(n){let a=sanitizeProjectName(n.projectName),{template:S,force:C=!1,install:N=!1}=n,F=findTemplate(S);if(!F){let n=discoverTemplates().map(n=>n.name).join(`, `);throw Error(`Unknown template "${S}". Available templates: ${n||`(none — run "yarn build" first)`}`)}let I=Oo(process.cwd(),a);existsSync(I)&&!isDirEmpty(I)&&!C&&(Fe.error(`Error: Directory "${a}" exists and is not empty. Use --force to scaffold into it anyway.`),process.exit(1)),Fe.log(`Creating new Gjsify project in ${I} (template: ${F.name})...`),mkdirSync(I,{recursive:!0}),cpSync(F.path,I,{recursive:!0}),substituteProjectName(I,a),N&&(Fe.log(`Running npm install...`),spawnSync(`npm`,[`install`,`--no-audit`,`--no-fund`],{cwd:I,stdio:`inherit`}).status!==0&&Fe.warn(`npm install failed; re-run it manually in the project directory.`)),printNextSteps(a,F,N)}function substituteProjectName(n,a){let S=new Set([`node_modules`,`dist`,`lib`]),C=[n];for(;C.length>0;){let n=C.pop();for(let N of readdirSync(n,{withFileTypes:!0})){let F=jo(n,N.name);if(N.isDirectory()){S.has(N.name)||C.push(F);continue}if(!N.isFile())continue;let I=N.name.lastIndexOf(`.`),H=I>=0?N.name.slice(I):``;if(!yE.has(H))continue;let W=readFileSync(F,`utf-8`);W.includes(vE)&&writeFileSync(F,W.replaceAll(vE,a))}}}function printNextSteps(n,a,S){Fe.log(``),Fe.log(`Project created from template "${a.name}".`),Fe.log(``),Fe.log(`Next steps:`),Fe.log(` cd ${n}`),S||Fe.log(` npm install`),Fe.log(` npm run dev`),Fe.log(``)}vs();const bE={reset:`\x1B[0m`,bold:`\x1B[1m`,dim:`\x1B[2m`,cyan:`\x1B[36m`,green:`\x1B[32m`};function render(n,a,S){S||Yt.write(`\x1b[${n.length}A`);for(let S=0;S<n.length;S++){let C=n[S],N=S===a?`${bE.cyan}❯${bE.reset}`:` `,F=S===a?`${bE.bold}${bE.green}${C.name}${bE.reset}`:C.name;Yt.write(`\x1b[2K\r ${N} ${F} ${bE.dim}${C.description}${bE.reset}\n`)}}function promptTemplate(n){return n.length===0?Promise.reject(Error(`No templates available.`)):new Promise((a,S)=>{let C=0;Yt.write(`${bE.bold}Select a template${bE.reset} ${bE.dim}(↑/↓ to navigate, Enter to confirm, Ctrl+C to cancel)${bE.reset}\n`),render(n,C,!0),emitKeypressEvents(Xt),Xt.isTTY&&Xt.setRawMode(!0),Xt.resume();let cleanup=()=>{Xt.removeListener(`keypress`,onKeypress),Xt.isTTY&&Xt.setRawMode(!1),Xt.pause()},onKeypress=(N,F)=>{if(F){if(F.ctrl&&F.name===`c`){cleanup(),Yt.write(`
755
+ `),S(Error(`Cancelled by user`));return}F.name===`up`||F.name===`k`?(C=(C-1+n.length)%n.length,render(n,C,!1)):F.name===`down`||F.name===`j`?(C=(C+1)%n.length,render(n,C,!1)):(F.name===`return`||F.name===`enter`)&&(cleanup(),a(n[C]))}};Xt.on(`keypress`,onKeypress)})}Ie();const xE={command:`create [project-name]`,description:`Scaffold a new Gjsify project in a new directory.`,builder:n=>{let a=discoverTemplates().map(n=>n.name);return n.positional(`project-name`,{describe:`Name of the project directory to create`,type:`string`,default:`my-gjs-app`}).option(`template`,{alias:`t`,describe:`Template to scaffold from`,type:`string`,choices:a.length>0?a:void 0}).option(`force`,{alias:`f`,describe:`Scaffold into a non-empty directory`,type:`boolean`,default:!1}).option(`install`,{describe:`Run npm install after scaffolding`,type:`boolean`,default:!1})},handler:async n=>{let a=n.template;if(!a){let n=discoverTemplates();if(!process.stdin.isTTY){let a=n.map(n=>n.name).join(`, `);Fe.error(`Error: --template is required in non-interactive mode. Available templates: ${a||`(none)`}`),process.exit(1)}a=(await promptTemplate(n)).name}await createProject({projectName:n[`project-name`],template:a,force:n.force,install:n.install})}};Ie(),Hx(),ss(),Ho(),qc();const SE=promisify(execFile);function defaultTargetFor(n){let a=Fo(n,Io(n));return Oo(Po(n),a)}const CE={command:`gresource <xml>`,description:"Compile a GResource XML descriptor into a binary .gresource bundle (wraps `glib-compile-resources`).",builder:n=>n.positional(`xml`,{description:`Path to the .gresource.xml descriptor`,type:`string`,normalize:!0,demandOption:!0}).option(`sourcedir`,{description:`Directory containing the resource files referenced by <xml>`,type:`string`,normalize:!0}).option(`target`,{alias:`t`,description:`Output .gresource file (default: <xml-without-.xml> next to <xml>)`,type:`string`,normalize:!0}).option(`verbose`,{description:`Print the underlying glib-compile-resources invocation`,type:`boolean`,default:!1}),handler:async n=>{let a=Oo(n.xml),S=n.target?Oo(n.target):defaultTargetFor(a),C=[`--sourcedir=${n.sourcedir?Oo(n.sourcedir):Po(a)}`,`--target=${S}`,a];n.verbose&&Fe.log(`[gjsify gresource] glib-compile-resources ${C.join(` `)}`),await mkdir$1(Po(S),{recursive:!0});try{let{stdout:a,stderr:N}=await SE(`glib-compile-resources`,C);a&&process.stdout.write(a),N&&process.stderr.write(N),n.verbose&&Fe.log(`[gjsify gresource] wrote ${S}`)}catch(n){n?.code===`ENOENT`?Fe.error(`[gjsify gresource] glib-compile-resources not found. Install it via your distro (package: glib2-devel / libglib2.0-dev).`):(n?.stderr&&process.stderr.write(n.stderr),Fe.error(`[gjsify gresource] glib-compile-resources failed${n?.code===void 0?``:` (exit ${n.code})`}`)),process.exitCode=typeof n?.code==`number`?n.code:1}}};Ie(),Hx(),ss(),Ho(),qc();const wE=promisify(execFile);async function listLanguages(n){return(await readdir$1(n)).filter(n=>n.endsWith(`.po`)&&!n.startsWith(`.`)).map(n=>n.slice(0,-3)).sort()}function stripXmlComments(n){return n.replace(/<!--[\s\S]*?-->/g,``)}async function ensureDir(n){await mkdir$1(n,{recursive:!0})}async function fileExists(n){try{return await stat$1(n),!0}catch{return!1}}async function compileBulkXml(n){let a=jo(n.outDir,n.filename);await ensureDir(n.outDir);let S=[`--output-file=${a}`,`--xml`,`--template=${n.template}`,`-d`,n.poDir];n.verbose&&Fe.log(`[gjsify gettext] msgfmt ${S.join(` `)}`),await wE(`msgfmt`,S),n.removeXmlComments&&await writeFile$1(a,stripXmlComments(await readFile$1(a,`utf-8`))),n.verbose&&Fe.log(`[gjsify gettext] wrote ${a}`)}async function compilePerLanguage(n){let a=await listLanguages(n.poDir);if(a.length===0){Fe.warn(`[gjsify gettext] no .po files found in ${n.poDir}`);return}for(let S of a){let a=jo(n.poDir,`${S}.po`),C=n.format===`mo`?jo(n.outDir,S,`LC_MESSAGES`):jo(n.outDir,S);await ensureDir(C);let N=[`--output-file=${jo(C,n.filename)}`];n.format!==`mo`&&N.push(`--${n.format}`),N.push(a),n.verbose&&Fe.log(`[gjsify gettext] msgfmt ${N.join(` `)}`),await wE(`msgfmt`,N)}n.verbose&&Fe.log(`[gjsify gettext] compiled ${a.length} language(s) into ${n.outDir}`)}function defaultFilename(n,a,S){switch(a){case`mo`:return`${n}.mo`;case`json`:return`${n}.json`;case`desktop`:return`${n}.desktop`;case`xml`:if(S){let n=S.replace(/\.in$/,``),a=n.lastIndexOf(`/`);return a>=0?n.slice(a+1):n}return`${n}.xml`}}const TE={command:`gettext <poDir> <outDir>`,description:`Compile gettext .po files to .mo (per-language locale tree) or substitute a metainfo template via msgfmt --xml.`,builder:n=>n.positional(`poDir`,{description:`Directory containing <lang>.po files`,type:`string`,normalize:!0,demandOption:!0}).positional(`outDir`,{description:`Output directory (locale tree for --format=mo, plain dir for xml/desktop/json)`,type:`string`,normalize:!0,demandOption:!0}).option(`domain`,{description:"Text domain / application ID (e.g. `org.pixelrpg.maker`)",type:`string`,normalize:!0,demandOption:!0}).option(`format`,{description:`Output format`,type:`string`,choices:[`mo`,`xml`,`desktop`,`json`],default:`mo`}).option(`metainfo`,{description:"For --format=xml: path to the template (`.metainfo.xml.in`) used as msgfmt --template",type:`string`,normalize:!0}).option(`filename`,{description:`Override the output filename (defaults to <domain>.<ext>)`,type:`string`,normalize:!0}).option(`remove-xml-comments`,{description:`For --format=xml: strip XML comments from the compiled output`,type:`boolean`,default:!0}).option(`verbose`,{description:`Print each msgfmt invocation`,type:`boolean`,default:!1}),handler:async n=>{let a=Oo(n.poDir),S=Oo(n.outDir),C=n.domain,N=n.format??`mo`,F=n.metainfo?Oo(n.metainfo):void 0,I=n.filename??defaultFilename(C,N,F),H=!!n.verbose,W=!!n[`remove-xml-comments`];if(!await fileExists(a)){Fe.error(`[gjsify gettext] PO directory does not exist: ${a}`),process.exitCode=1;return}try{N===`xml`&&F?await compileBulkXml({poDir:a,outDir:S,domain:C,template:F,filename:I,removeXmlComments:W,verbose:H}):(N===`xml`&&Fe.warn(`[gjsify gettext] --format=xml without --metainfo: falling back to per-language XML files`),await compilePerLanguage({poDir:a,outDir:S,domain:C,format:N,filename:I,verbose:H}))}catch(n){n?.code===`ENOENT`?Fe.error(`[gjsify gettext] msgfmt not found. Install it via your distro (package: gettext).`):(n?.stderr&&process.stderr.write(n.stderr),Fe.error(`[gjsify gettext] msgfmt failed${n?.code===void 0?``:` (exit ${n.code})`}`)),process.exitCode=typeof n?.code==`number`?n.code:1}}};Ie(),Hx(),ss(),Ho(),qc();const EE=promisify(execFile),DE={command:`gsettings <schemadir>`,description:"Compile GSettings schema XML files into a binary gschemas.compiled (wraps `glib-compile-schemas`).",builder:n=>n.positional(`schemadir`,{description:`Directory containing *.gschema.xml descriptors`,type:`string`,normalize:!0,demandOption:!0}).option(`targetdir`,{alias:`t`,description:`Directory to write gschemas.compiled (default: <schemadir>)`,type:`string`,normalize:!0}).option(`strict`,{description:`Abort on any schema warning (passes --strict to glib-compile-schemas)`,type:`boolean`,default:!0}).option(`verbose`,{description:`Print the underlying glib-compile-schemas invocation`,type:`boolean`,default:!1}),handler:async n=>{let a=Oo(n.schemadir),S=n.targetdir?Oo(n.targetdir):a,C=[];n.strict&&C.push(`--strict`),C.push(`--targetdir=${S}`),C.push(a),n.verbose&&Fe.log(`[gjsify gsettings] glib-compile-schemas ${C.join(` `)}`),await mkdir$1(S,{recursive:!0});try{let{stdout:a,stderr:N}=await EE(`glib-compile-schemas`,C);a&&process.stdout.write(a),N&&process.stderr.write(N),n.verbose&&Fe.log(`[gjsify gsettings] wrote ${S}/gschemas.compiled`)}catch(n){n?.code===`ENOENT`?Fe.error(`[gjsify gsettings] glib-compile-schemas not found. Install it via your distro (package: glib2-devel / libglib2.0-dev).`):(n?.stderr&&process.stderr.write(n.stderr),Fe.error(`[gjsify gsettings] glib-compile-schemas failed${n?.code===void 0?``:` (exit ${n.code})`}`)),process.exitCode=typeof n?.code==`number`?n.code:1}}};As(),Ho();const OE=[`--device=dri`,`--share=ipc`,`--socket=fallback-x11`,`--socket=wayland`],kE=[];function readPackageJson(n){let a=Oo(n,`package.json`),S;try{S=readFileSync(a,`utf-8`)}catch{throw Error(`gjsify flatpak: no package.json found at ${a}`)}try{return JSON.parse(S)}catch(n){throw Error(`gjsify flatpak: package.json at ${a} is not valid JSON: ${n.message}`)}}function looksLikeAppId(n){return typeof n==`string`&&/^[A-Za-z][A-Za-z0-9_-]*(\.[A-Za-z][A-Za-z0-9_-]*){2,}$/.test(n)}function resolveRuntime(n,a){let S=a.runtime??n?.runtime??`gnome`;if(S!==`gnome`&&S!==`freedesktop`)throw Error(`gjsify flatpak: unknown runtime "${S}" (expected "gnome" or "freedesktop")`);let C=a.runtimeVersion??n?.runtimeVersion??(S===`gnome`?`50`:`24.08`);return S===`gnome`?{runtime:S,runtimeId:`org.gnome.Platform`,sdk:`org.gnome.Sdk`,runtimeVersion:C}:{runtime:S,runtimeId:`org.freedesktop.Platform`,sdk:`org.freedesktop.Sdk`,runtimeVersion:C}}function defaultCiContainer(n,a){return`ghcr.io/flathub-infra/flatpak-github-actions:${`${n}-${a}`}`}As();function loadDesktopTemplate(){return readFileSync(new URL(`../../templates/flatpak/desktop.tmpl`,import.meta.url),`utf-8`)}function loadFlathubAppTemplate(){return readFileSync(new URL(`../../templates/flatpak/flathub-app.json.tmpl`,import.meta.url),`utf-8`)}function loadFlathubCliTemplate(){return readFileSync(new URL(`../../templates/flatpak/flathub-cli.json.tmpl`,import.meta.url),`utf-8`)}function validateScaffoldInputs(n){let a=n.flatpak,S=[];return(!a.developer?.id||!a.developer?.name)&&S.push({field:`gjsify.flatpak.developer`,hint:'Set `gjsify.flatpak.developer = { "id": "io.github.you", "name": "Your Name" }` in package.json. The id is reverse-DNS.'}),a.summary||S.push({field:`gjsify.flatpak.summary`,hint:`One-line app summary, ≤80 chars, no trailing period. Example: "Learn 6502 assembly language".`}),a.description||S.push({field:`gjsify.flatpak.description`,hint:`Plain text (split on blank lines) or DescriptionBlock[] for rich content with bullet lists + translator hints.`}),a.license?.project||S.push({field:`gjsify.flatpak.license.project`,hint:`SPDX identifier of the project license, e.g. "MIT", "GPL-3.0-or-later".`}),a.homepageUrl||S.push({field:`gjsify.flatpak.homepageUrl`,hint:`Required by Flathub. Example: "https://github.com/you/your-repo".`}),S}function renderMetainfoApp(n){return renderMetainfo(n,`desktop-application`)}function renderMetainfoCli(n){return renderMetainfo(n,`console-application`)}function renderDesktop(n){let a=n.flatpak,S=(a.categories??[`Utility`]).join(`;`)+`;`,C=a.keywords?.length?`Keywords=${a.keywords.join(`;`)};\n`:``;return substitute(loadDesktopTemplate(),{NAME:n.name,SUMMARY:a.summary??n.name,COMMAND:n.command,APP_ID:n.appId,CATEGORIES_LINE:S,KEYWORDS_LINE:C})}function renderFlathubJson(n){return n===`cli`?loadFlathubCliTemplate():loadFlathubAppTemplate()}function renderMetainfo(n,a){let S=n.flatpak,C=new Date().getFullYear(),N=S.developer?.name??``,F=[];F.push(`<?xml version="1.0" encoding="UTF-8"?>`),F.push(`<!-- Copyright ${C} ${escapeXml(N)} -->`),F.push(`<component type="${a}">`),F.push(` <id>${escapeXml(n.appId)}</id>`),F.push(` <metadata_license>${escapeXml(S.license?.metadata??`CC0-1.0`)}</metadata_license>`),F.push(` <project_license>${escapeXml(S.license?.project??``)}</project_license>`),F.push(` <name>${escapeXml(n.name)}</name>`),pushTranslatorHint(F,S.summaryTranslatorHint,` `),F.push(` <summary>${escapeXml(S.summary??n.name)}</summary>`),S.iconRemote&&F.push(` <icon type="remote">${escapeXml(S.iconRemote)}</icon>`),F.push(` <description>`);for(let n of renderDescriptionBlocks(S.description??``,` `))F.push(n);if(F.push(` </description>`),S.developer?.id&&S.developer?.name){F.push(` <developer id="${escapeXml(S.developer.id)}">`);let n=S.developer.nameTranslatable===!0?``:` translate="no"`;F.push(` <name${n}>${escapeXml(S.developer.name)}</name>`),S.developer.email&&F.push(` <email>${escapeXml(S.developer.email)}</email>`),F.push(` </developer>`)}a===`desktop-application`&&F.push(` <launchable type="desktop-id">${escapeXml(n.appId)}.desktop</launchable>`),S.screenshots?.length&&(F.push(` <screenshots>`),S.screenshots.forEach((n,a)=>{let S=n.type??(a===0?`default`:void 0),C=S?` type="${escapeXml(S)}"`:``,N=n.environment?` environment="${escapeXml(n.environment)}"`:``;F.push(` <screenshot${C}${N}>`),F.push(` <image>${escapeXml(n.url)}</image>`),n.caption&&(pushTranslatorHint(F,n.captionTranslatorHint,` `),F.push(` <caption>${escapeXml(n.caption)}</caption>`)),F.push(` </screenshot>`)}),F.push(` </screenshots>`)),S.homepageUrl&&F.push(` <url type="homepage">${escapeXml(S.homepageUrl)}</url>`),S.bugtrackerUrl&&F.push(` <url type="bugtracker">${escapeXml(S.bugtrackerUrl)}</url>`),S.vcsBrowserUrl&&F.push(` <url type="vcs-browser">${escapeXml(S.vcsBrowserUrl)}</url>`),S.donationUrl&&F.push(` <url type="donation">${escapeXml(S.donationUrl)}</url>`),S.translateUrl&&F.push(` <url type="translate">${escapeXml(S.translateUrl)}</url>`);let I=normaliseContentRating(S.contentRating);if(I.attributes&&Object.keys(I.attributes).length>0){F.push(` <content_rating type="${escapeXml(I.type)}">`);for(let[n,a]of Object.entries(I.attributes))F.push(` <content_attribute id="${escapeXml(n)}">${escapeXml(a)}</content_attribute>`);F.push(` </content_rating>`)}else F.push(` <content_rating type="${escapeXml(I.type)}" />`);if(S.releases?.length){F.push(` <releases>`);for(let n of S.releases)if(n.description===void 0)F.push(` <release version="${escapeXml(n.version)}" date="${escapeXml(n.date)}" />`);else{F.push(` <release version="${escapeXml(n.version)}" date="${escapeXml(n.date)}">`),F.push(` <description>`);for(let a of renderDescriptionBlocks(n.description,` `))F.push(a);F.push(` </description>`),F.push(` </release>`)}F.push(` </releases>`)}if(S.categories?.length){F.push(` <categories>`);for(let n of S.categories)F.push(` <category>${escapeXml(n)}</category>`);F.push(` </categories>`)}if(S.keywords?.length){F.push(` <keywords>`);for(let n of S.keywords)F.push(` <keyword>${escapeXml(n)}</keyword>`);F.push(` </keywords>`)}if(a===`desktop-application`&&S.branding&&(F.push(` <branding>`),F.push(` <color type="primary" scheme_preference="light">${escapeXml(S.branding.accentLight)}</color>`),F.push(` <color type="primary" scheme_preference="dark">${escapeXml(S.branding.accentDark)}</color>`),F.push(` </branding>`)),S.kudos?.length){F.push(` <kudos>`);for(let n of S.kudos)F.push(` <kudo>${escapeXml(n)}</kudo>`);F.push(` </kudos>`)}let H=S.provides?.binaries??[n.command],W=S.provides?.mimetypes??[],K=S.provides?.dbus??[];if(H.length||W.length||K.length){F.push(` <provides>`);for(let n of H)F.push(` <binary>${escapeXml(n)}</binary>`);for(let n of W)F.push(` <mediatype>${escapeXml(n)}</mediatype>`);for(let n of K)F.push(` <dbus type="${escapeXml(n.type)}">${escapeXml(n.id)}</dbus>`);F.push(` </provides>`)}if(S.supports?.controls?.length||S.supports?.internet){F.push(` <supports>`);for(let n of S.supports.controls??[])F.push(` <control>${escapeXml(n)}</control>`);S.supports.internet&&F.push(` <internet>${escapeXml(S.supports.internet)}</internet>`),F.push(` </supports>`)}if(S.requires?.displayLengthMin||S.requires?.controls?.length||S.requires?.internet){F.push(` <requires>`),S.requires.displayLengthMin&&F.push(` <display_length compare="ge">${S.requires.displayLengthMin}</display_length>`);for(let n of S.requires.controls??[])F.push(` <control>${escapeXml(n)}</control>`);S.requires.internet&&F.push(` <internet>${escapeXml(S.requires.internet)}</internet>`),F.push(` </requires>`)}if(S.recommends?.displayLengthMin||S.recommends?.controls?.length){F.push(` <recommends>`),S.recommends.displayLengthMin&&F.push(` <display_length compare="ge">${S.recommends.displayLengthMin}</display_length>`);for(let n of S.recommends.controls??[])F.push(` <control>${escapeXml(n)}</control>`);F.push(` </recommends>`)}return F.push(`</component>`),F.join(`
756
756
  `)+`
757
- `}function renderDescriptionBlocks(n,a){let S=typeof n==`string`?stringToBlocks(n):n,C=[];for(let n of S)if(`p`in n)pushTranslatorHint(C,n.translatorHint,a),C.push(`${a}<p>${escapeXml(n.p.trim().replace(/\s+/g,` `))}</p>`);else{pushTranslatorHint(C,n.translatorHint,a),C.push(`${a}<ul>`);for(let S of n.ul)typeof S==`string`?C.push(`${a} <li>${escapeXml(S)}</li>`):(pushTranslatorHint(C,S.translatorHint,`${a} `),C.push(`${a} <li>${escapeXml(S.item)}</li>`));C.push(`${a}</ul>`)}return C}function stringToBlocks(n){return n.trim().split(/\n\n+/).map(n=>({p:n.trim().replace(/\s+/g,` `)}))}function pushTranslatorHint(n,a,S){a&&n.push(`${S}<!-- TRANSLATORS: ${a} -->`)}function normaliseContentRating(n){return n===void 0?{type:`oars-1.1`}:typeof n==`string`?{type:n}:{type:n.type??`oars-1.1`,attributes:n.attributes}}function substitute(n,a){let S=n;for(let[n,C]of Object.entries(a))S=S.split(`{{${n}}}`).join(C);return S}function escapeXml(n){return n.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}Ie(),As(),Ho(),Hx();function biomePackageSuffix(){let n=process.platform,a=process.arch,S;if(n===`linux`)S=`linux`;else if(n===`darwin`)S=`darwin`;else if(n===`win32`)S=`win32`;else throw Error(`[gjsify biome] Unsupported platform: ${n}`);let C;if(a===`x64`)C=`x64`;else if(a===`arm64`)C=`arm64`;else throw Error(`[gjsify biome] Unsupported arch on ${S}: ${a}`);if(S===`linux`)try{let{readdirSync:n}=(As(),__toCommonJS(Ds));if(n(`/lib`).some(n=>n.startsWith(`ld-musl-`)))return`${S}-${C}-musl`}catch{}return`${S}-${C}`}function biomeBinFilename(){return process.platform===`win32`?`biome.exe`:`biome`}function probeNodeModules(n,a,S){let C=jo(n,`node_modules`,a,S);return existsSync(C)?C:null}function findBiomeBin(n=process.cwd()){let a=`@biomejs/cli-${biomePackageSuffix()}`,S=biomeBinFilename(),C=probeNodeModules(n,a,S);if(C)return C;let N=findWorkspaceRoot(n);if(N&&N!==n){let n=probeNodeModules(N,a,S);if(n)return n}let F=Oo(n,`..`);for(let n=0;n<6;n++){let n=probeNodeModules(F,a,S);if(n)return n;let C=Oo(F,`..`);if(C===F)break;F=C}throw new BiomeNotFoundError(a,n)}var BiomeNotFoundError=class extends Error{pkg;cwd;constructor(n,a){super(`[gjsify biome] biome native binary not found.\n Expected: ${n}/biome in node_modules of ${a} or any workspace root above it.\n Install it via: gjsify install -D @biomejs/biome\n (this adds @biomejs/biome to devDependencies; the matching @biomejs/cli-<platform>-<arch> package lands automatically as an optionalDependency.)`),this.pkg=n,this.cwd=a,this.name=`BiomeNotFoundError`}};function findBiomeConfig(n=process.cwd()){let a=[`biome.json`,`biome.jsonc`],S=n;for(let n=0;n<12;n++){for(let n of a){let a=jo(S,n);if(existsSync(a))return a}let n=Oo(S,`..`);if(n===S)break;S=n}return null}function runBiome(n,a={}){let S=a.cwd??process.cwd(),C=findBiomeBin(S);return a.verbose&&Fe.log(`[gjsify biome] ${C} ${n.join(` `)}`),new Promise((a,N)=>{let F=spawn(C,n,{stdio:`inherit`,cwd:S});F.on(`error`,n=>{n.code===`ENOENT`?N(new BiomeNotFoundError(`<resolved bin>`,S)):N(n)}),F.on(`exit`,(n,S)=>{if(S){Fe.error(`[gjsify biome] terminated by signal ${S}`),a(1);return}a(n??0)})})}function loadBiomeTemplate(){return readFileSync(new URL(`../templates/biome.json.tmpl`,import.meta.url),`utf-8`)}function printBiomeNotFound(n){Fe.error(n.message)}function hasBiomeDevDep(n=process.cwd()){let a=jo(n,`package.json`);if(!existsSync(a))return!1;try{let n=JSON.parse(readFileSync(a,`utf-8`));return!!(n?.devDependencies?.[`@biomejs/biome`]||n?.dependencies?.[`@biomejs/biome`])}catch{return!1}}Ie(),As(),Ho();const OE={command:`init`,description:"Generate Flatpak manifest + MetaInfo XML + .desktop + flathub.json from `gjsify.flatpak` config.",builder:n=>n.option(`app-id`,{description:"Reverse-DNS app id (default: `gjsify.flatpak.appId` or package.json#name)",type:`string`}).option(`runtime`,{description:`Runtime family`,choices:[`gnome`,`freedesktop`]}).option(`runtime-version`,{description:`Runtime version (default: gnome -> 50, freedesktop -> 24.08)`,type:`string`}).option(`kind`,{description:`App kind: "app" (default, desktop) or "cli" (console-application MetaInfo, no .desktop)`,choices:[`app`,`cli`]}).option(`cli-only`,{description:"(Deprecated) Alias for `--kind cli`. Use --kind instead.",type:`boolean`,default:!1}).option(`manifest`,{description:"Output path for the manifest. Default: `<app-id>.json` in cwd.",type:`string`,normalize:!0}).option(`metainfo`,{description:"Output path for the MetaInfo XML. Default: `data/<app-id>.metainfo.xml.in` in cwd.",type:`string`,normalize:!0}).option(`desktop`,{description:"Output path for the .desktop entry (app kind only). Default: `data/<app-id>.desktop.in`.",type:`string`,normalize:!0}).option(`flathub-json`,{description:"Output path for the flathub.json policy stub. Default: `flathub.json` in cwd.",type:`string`,normalize:!0}).option(`command`,{description:`Binary name in /app/bin (default: app id)`,type:`string`}).option(`sdk-extension`,{description:`Extra SDK extension (repeatable)`,type:`string`,array:!0}).option(`finish-arg`,{description:`Extra finish-arg (repeatable). Override defaults entirely with multiple --finish-arg.`,type:`string`,array:!0}).option(`force`,{description:`Overwrite existing output files (manifest, metainfo, desktop, flathub.json)`,type:`boolean`,default:!1}).option(`verbose`,{description:`Print the resolved manifest fields before writing`,type:`boolean`,default:!1}).option(`format`,{description:"Run `gjsify format --write` on the generated files when `@biomejs/biome` is detected in the project. Default: true. Pass --no-format to skip.",type:`boolean`,default:!0}),handler:async n=>{let a=(await new Config().forBuild({}).catch(()=>({}))).flatpak??{},S=process.cwd(),C=readPackageJson(S),N=n.appId??a.appId??(looksLikeAppId(C.name)?C.name:void 0);if(!N)throw Error(`gjsify flatpak init: no app id available. Pass --app-id, set gjsify.flatpak.appId in package.json, or rename the package to a reverse-DNS id like org.example.MyApp.`);let F=n.kind??a.kind??(n.cliOnly?`cli`:`app`),{runtime:I,runtimeId:H,sdk:W,runtimeVersion:K}=resolveRuntime(a,{runtime:n.runtime,runtimeVersion:n.runtimeVersion}),q=mergeArrays(a.sdkExtensions,n.sdkExtension),Y=a.appendPath??(q?.length?deriveAppendPath(q):void 0),X=n.command??a.command??N,te=n.finishArg,ne=te===void 0?a.finishArgs??(F===`cli`?DE:EE):te,re={id:N,runtime:H,"runtime-version":K,sdk:W};q?.length&&(re[`sdk-extensions`]=q),Y?.length&&(re[`build-options`]={"append-path":Y.join(`:`)}),re.command=X,re[`finish-args`]=ne;let ie=a.cleanup;ie?.length&&(re.cleanup=ie);let ae=[];a.modules?.length?ae.push(...a.modules):(a.extraModules?.length&&ae.push(...a.extraModules),ae.push({name:deriveModuleName(N),buildsystem:`meson`,sources:[{type:`dir`,path:`.`}]})),re.modules=ae;let oe=[],trackWrite=n=>{n&&oe.push(n)};trackWrite(writeIfFresh(Oo(S,n.manifest??`${N}.json`),JSON.stringify(re,null,2)+`
757
+ `}function renderDescriptionBlocks(n,a){let S=typeof n==`string`?stringToBlocks(n):n,C=[];for(let n of S)if(`p`in n)pushTranslatorHint(C,n.translatorHint,a),C.push(`${a}<p>${escapeXml(n.p.trim().replace(/\s+/g,` `))}</p>`);else{pushTranslatorHint(C,n.translatorHint,a),C.push(`${a}<ul>`);for(let S of n.ul)typeof S==`string`?C.push(`${a} <li>${escapeXml(S)}</li>`):(pushTranslatorHint(C,S.translatorHint,`${a} `),C.push(`${a} <li>${escapeXml(S.item)}</li>`));C.push(`${a}</ul>`)}return C}function stringToBlocks(n){return n.trim().split(/\n\n+/).map(n=>({p:n.trim().replace(/\s+/g,` `)}))}function pushTranslatorHint(n,a,S){a&&n.push(`${S}<!-- TRANSLATORS: ${a} -->`)}function normaliseContentRating(n){return n===void 0?{type:`oars-1.1`}:typeof n==`string`?{type:n}:{type:n.type??`oars-1.1`,attributes:n.attributes}}function substitute(n,a){let S=n;for(let[n,C]of Object.entries(a))S=S.split(`{{${n}}}`).join(C);return S}function escapeXml(n){return n.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}Ie(),As(),Ho(),Hx();function oxcBindingSuffix(){let n=process.platform,a=process.arch,S;if(n===`linux`)S=`linux`;else if(n===`darwin`)S=`darwin`;else if(n===`win32`)S=`win32`;else throw Error(`[gjsify oxc] Unsupported platform: ${n}`);let C;if(a===`x64`)C=`x64`;else if(a===`arm64`)C=`arm64`;else throw Error(`[gjsify oxc] Unsupported arch on ${S}: ${a}`);if(S===`linux`){let n=`gnu`;try{let{readdirSync:a}=(As(),__toCommonJS(Ds));a(`/lib`).some(n=>n.startsWith(`ld-musl-`))&&(n=`musl`)}catch{}return`${S}-${C}-${n}`}return S===`win32`?`${S}-${C}-msvc`:`${S}-${C}`}function bindingPackageName(n){return`${n===`oxlint`?`@oxlint`:`@oxfmt`}/binding-${oxcBindingSuffix()}`}function probeNodeModules(n,a,S){let C=jo(n,`node_modules`,a,S);return existsSync(C)?C:null}function findOxcLauncher(n,a=process.cwd()){let S=jo(`bin`,n),C=probeNodeModules(a,n,S);if(C)return C;let N=findWorkspaceRoot(a);if(N&&N!==a){let a=probeNodeModules(N,n,S);if(a)return a}let F=Oo(a,`..`);for(let a=0;a<6;a++){let a=probeNodeModules(F,n,S);if(a)return a;let C=Oo(F,`..`);if(C===F)break;F=C}throw new OxcNotFoundError(n,a)}var OxcNotFoundError=class extends Error{tool;cwd;constructor(n,a){let S=(()=>{try{return bindingPackageName(n)}catch{return`@${n===`oxlint`?`oxlint`:`oxfmt`}/binding-<platform>`}})();super(`[gjsify oxc] ${n} not found.\n Expected: ${n}/bin/${n} in node_modules of ${a} or any workspace root above it.\n Install it via: gjsify install -D ${n}\n (this adds ${n} to devDependencies; the matching ${S} napi binding lands automatically as an optionalDependency.)`),this.tool=n,this.cwd=a,this.name=`OxcNotFoundError`}};function findOxlintConfig(n=process.cwd()){return findConfigFile(n,[`.oxlintrc.json`])}function findOxfmtConfig(n=process.cwd()){return findConfigFile(n,[`.oxfmtrc`,`.oxfmtrc.json`])}function findConfigFile(n,a){let S=n;for(let n=0;n<12;n++){for(let n of a){let a=jo(S,n);if(existsSync(a))return a}let n=Oo(S,`..`);if(n===S)break;S=n}return null}function runOxc(n,a,S={}){let C=S.cwd??process.cwd(),N=findOxcLauncher(n,C),F=process.execPath||`node`;return S.verbose&&Fe.log(`[gjsify oxc] ${F} ${N} ${a.join(` `)}`),new Promise((S,I)=>{let H={stdio:`inherit`,cwd:C},W=spawn(F,[N,...a],H);W.on(`error`,a=>{a.code===`ENOENT`?I(new OxcNotFoundError(n,C)):I(a)}),W.on(`exit`,(a,C)=>{if(C){Fe.error(`[gjsify oxc] ${n} terminated by signal ${C}`),S(1);return}S(a??0)})})}function runOxlint(n,a={}){return runOxc(`oxlint`,n,a)}function runOxfmt(n,a={}){return runOxc(`oxfmt`,n,a)}function loadOxlintTemplate(){return readFileSync(new URL(`../templates/oxlintrc.json.tmpl`,import.meta.url),`utf-8`)}function loadOxfmtTemplate(){return readFileSync(new URL(`../templates/oxfmtrc.tmpl`,import.meta.url),`utf-8`)}function printOxcNotFound(n){Fe.error(n.message)}function hasOxcDevDep(n=process.cwd(),a=`oxfmt`){let S=jo(n,`package.json`);if(!existsSync(S))return!1;try{let n=JSON.parse(readFileSync(S,`utf-8`));return!!(n?.devDependencies?.[a]||n?.dependencies?.[a])}catch{return!1}}Ie(),As(),Ho();const AE={command:`init`,description:"Generate Flatpak manifest + MetaInfo XML + .desktop + flathub.json from `gjsify.flatpak` config.",builder:n=>n.option(`app-id`,{description:"Reverse-DNS app id (default: `gjsify.flatpak.appId` or package.json#name)",type:`string`}).option(`runtime`,{description:`Runtime family`,choices:[`gnome`,`freedesktop`]}).option(`runtime-version`,{description:`Runtime version (default: gnome -> 50, freedesktop -> 24.08)`,type:`string`}).option(`kind`,{description:`App kind: "app" (default, desktop) or "cli" (console-application MetaInfo, no .desktop)`,choices:[`app`,`cli`]}).option(`cli-only`,{description:"(Deprecated) Alias for `--kind cli`. Use --kind instead.",type:`boolean`,default:!1}).option(`manifest`,{description:"Output path for the manifest. Default: `<app-id>.json` in cwd.",type:`string`,normalize:!0}).option(`metainfo`,{description:"Output path for the MetaInfo XML. Default: `data/<app-id>.metainfo.xml.in` in cwd.",type:`string`,normalize:!0}).option(`desktop`,{description:"Output path for the .desktop entry (app kind only). Default: `data/<app-id>.desktop.in`.",type:`string`,normalize:!0}).option(`flathub-json`,{description:"Output path for the flathub.json policy stub. Default: `flathub.json` in cwd.",type:`string`,normalize:!0}).option(`command`,{description:`Binary name in /app/bin (default: app id)`,type:`string`}).option(`sdk-extension`,{description:`Extra SDK extension (repeatable)`,type:`string`,array:!0}).option(`finish-arg`,{description:`Extra finish-arg (repeatable). Override defaults entirely with multiple --finish-arg.`,type:`string`,array:!0}).option(`force`,{description:`Overwrite existing output files (manifest, metainfo, desktop, flathub.json)`,type:`boolean`,default:!1}).option(`verbose`,{description:`Print the resolved manifest fields before writing`,type:`boolean`,default:!1}).option(`format`,{description:"Run `oxfmt --write` on the generated JS/TS files when `oxfmt` is detected in the project. Default: true. Pass --no-format to skip. Note: oxfmt formats JS/TS only — the JSON/XML/.desktop manifests generated here are not reformatted (CSS/JSON formatting was dropped in the oxc migration).",type:`boolean`,default:!0}),handler:async n=>{let a=(await new Config().forBuild({}).catch(()=>({}))).flatpak??{},S=process.cwd(),C=readPackageJson(S),N=n.appId??a.appId??(looksLikeAppId(C.name)?C.name:void 0);if(!N)throw Error(`gjsify flatpak init: no app id available. Pass --app-id, set gjsify.flatpak.appId in package.json, or rename the package to a reverse-DNS id like org.example.MyApp.`);let F=n.kind??a.kind??(n.cliOnly?`cli`:`app`),{runtime:I,runtimeId:H,sdk:W,runtimeVersion:K}=resolveRuntime(a,{runtime:n.runtime,runtimeVersion:n.runtimeVersion}),q=mergeArrays(a.sdkExtensions,n.sdkExtension),Y=a.appendPath??(q?.length?deriveAppendPath(q):void 0),X=n.command??a.command??N,te=n.finishArg,ne=te===void 0?a.finishArgs??(F===`cli`?kE:OE):te,re={id:N,runtime:H,"runtime-version":K,sdk:W};q?.length&&(re[`sdk-extensions`]=q),Y?.length&&(re[`build-options`]={"append-path":Y.join(`:`)}),re.command=X,re[`finish-args`]=ne;let ie=a.cleanup;ie?.length&&(re.cleanup=ie);let ae=[];a.modules?.length?ae.push(...a.modules):(a.extraModules?.length&&ae.push(...a.extraModules),ae.push({name:deriveModuleName(N),buildsystem:`meson`,sources:[{type:`dir`,path:`.`}]})),re.modules=ae;let oe=[],trackWrite=n=>{n&&oe.push(n)};trackWrite(writeIfFresh(Oo(S,n.manifest??`${N}.json`),JSON.stringify(re,null,2)+`
758
758
  `,n.force??!1,`manifest`));let Z=C.name??N,se={appId:N,name:a.name??friendlyName(Z,N),command:X,kind:F,flatpak:a},ce=validateScaffoldInputs(se);if(ce.length>0){Fe.warn(`[gjsify flatpak init] Manifest written, but MetaInfo / .desktop are skipped — config gaps:`);for(let n of ce)Fe.warn(` - ${n.field}: ${n.hint}`);Fe.warn(`
759
- Fill these fields in package.json#gjsify.flatpak (or .gjsifyrc.*) and re-run with --force.`)}else{let C=F===`cli`?renderMetainfoCli(se):renderMetainfoApp(se);trackWrite(writeIfFresh(Oo(S,n.metainfo??`data/${N}.metainfo.xml.in`),C,n.force??!1,`metainfo`)),F===`app`&&(trackWrite(writeIfFresh(Oo(S,n.desktop??`data/${N}.desktop.in`),renderDesktop(se),n.force??!1,`desktop`)),a.icon||Fe.warn(`[gjsify flatpak init] No gjsify.flatpak.icon set. Flathub requires a scalable SVG at\n data/icons/hicolor/scalable/apps/${N}.svg`)),trackWrite(writeIfFresh(Oo(S,n.flathubJson??`flathub.json`),renderFlathubJson(F),n.force??!1,`flathub.json`))}if(oe.length>0&&n.format!==!1&&hasBiomeDevDep(S))try{await runBiome([`format`,`--write`,...oe],{cwd:S})}catch(n){if(n instanceof BiomeNotFoundError)Fe.warn("[gjsify flatpak init] post-format skipped: @biomejs/biome declared but binary not installed. Run `gjsify install` then re-run with --force, or pass --no-format.");else throw n}n.verbose&&(Fe.log(`[gjsify flatpak init] kind=${F} runtime=${H} ${K} sdk=${W}`),Fe.log(`[gjsify flatpak init] command=${X} finish-args=${JSON.stringify(ne)}`))}};function writeIfFresh(n,a,S,C){return existsSync(n)&&!S?(Fe.log(`[gjsify flatpak init] skipped ${C}: ${n} (exists; --force to overwrite)`),null):(mkdirSync(Po(n),{recursive:!0}),writeFileSync(n,a,`utf-8`),Fe.log(`[gjsify flatpak init] wrote ${C}: ${n}`),n)}function friendlyName(n,a){if(n.startsWith(`@`))return n.slice(n.indexOf(`/`)+1);if(n===a){let n=a.split(`.`);return n[n.length-1]??a}return n}function mergeArrays(n,a){if(!(!n?.length&&!a?.length))return[...n??[],...a??[]]}function deriveAppendPath(n){let a=[];for(let S of n){let n=/^org\.freedesktop\.Sdk\.Extension\.([A-Za-z0-9-]+)$/.exec(S);n&&a.push(`/usr/lib/sdk/${n[1]}/bin`)}return a.push(`/app/bin`),a}function deriveModuleName(n){let a=n.split(`.`);return a[a.length-1]||n}Ie(),Hx(),As(),Ho();const kE={command:`build [manifest]`,description:"Build the Flatpak via `flatpak-builder`. Wraps a typical install + export + bundle + tarball pipeline.",builder:n=>n.positional(`manifest`,{description:`Path to the Flatpak manifest (default: first *.json that looks like a manifest in cwd)`,type:`string`,normalize:!0}).option(`build-dir`,{description:`flatpak-builder working directory`,type:`string`,default:`flatpak-build`,normalize:!0}).option(`install`,{description:"After build, run `flatpak-builder --user --install` to install locally",type:`boolean`,default:!1}).option(`repo`,{description:"Export the build into the given OSTree repo (passes `--repo=<dir>` to flatpak-builder)",type:`string`,normalize:!0}).option(`bundle`,{description:"After --repo export, build a single-file bundle (`flatpak build-bundle`) at this path",type:`string`,normalize:!0}).option(`tarball`,{description:`Create a tarball of the build dir (parity with the legacy build-flatpak.sh tarball step)`,type:`string`,normalize:!0}).option(`force-clean`,{description:`Pass --force-clean to flatpak-builder (default true)`,type:`boolean`,default:!0}).option(`sandbox`,{description:`Pass --sandbox to flatpak-builder (default true)`,type:`boolean`,default:!0}).option(`delete-build-dirs`,{description:`Pass --delete-build-dirs to flatpak-builder (default true)`,type:`boolean`,default:!0}).option(`install-deps-from`,{description:"Pass --install-deps-from to flatpak-builder (e.g. `flathub`)",type:`string`}).option(`verbose`,{description:`Print the underlying flatpak-builder invocations`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=Oo(a,n.manifest??findDefaultManifest(a));if(!existsSync(S))throw Error(`gjsify flatpak build: manifest ${S} not found`);let C=Oo(a,n.buildDir??`flatpak-build`),N=[];if(n.forceClean!==!1&&N.push(`--force-clean`),n.sandbox!==!1&&N.push(`--sandbox`),n.deleteBuildDirs!==!1&&N.push(`--delete-build-dirs`),n.installDepsFrom&&N.push(`--install-deps-from=${n.installDepsFrom}`),existsSync(C)&&rmSync(C,{recursive:!0,force:!0}),await runFlatpakBuilder([...N,C,S],{verbose:n.verbose}),n.install&&await runFlatpakBuilder([`--user`,`--install`,`--force-clean`,C,S],{verbose:n.verbose}),n.repo){let N=Oo(a,n.repo);mkdirSync(Po(N),{recursive:!0}),await runFlatpakBuilder([`--repo=${N}`,`--force-clean`,C,S],{verbose:n.verbose})}if(n.bundle){if(!n.repo)throw Error(`gjsify flatpak build: --bundle requires --repo (the bundle is built from the OSTree repo).`);let C=Oo(a,n.bundle);mkdirSync(Po(C),{recursive:!0}),await runFlatpak([`build-bundle`,Oo(a,n.repo),C,readManifestAppId(S)],{verbose:n.verbose})}if(n.tarball){let S=Oo(a,n.tarball);mkdirSync(Po(S),{recursive:!0}),await runTar([`-czf`,S,`-C`,C,`.`],{verbose:n.verbose})}Fe.log(`[gjsify flatpak build] done (${C})`)}};function findDefaultManifest(n){return scanForManifest(n)??`flatpak.json`}function scanForManifest(n){let a=[];try{a=readdirSync(n)}catch{return}for(let S of a)if(S.endsWith(`.json`)&&!(S===`package.json`||S===`tsconfig.json`||S.startsWith(`.`)))try{let a=JSON.parse(readFileSync(Oo(n,S),`utf-8`));if(typeof a.id==`string`&&typeof a.runtime==`string`&&Array.isArray(a.modules))return S}catch{}}function readManifestAppId(n){let a=readFileSync(n,`utf-8`),S=JSON.parse(a);if(typeof S.id!=`string`)throw Error(`gjsify flatpak build: ${n} has no string "id" field`);return S.id}async function runFlatpakBuilder(n,a){return runProc(`flatpak-builder`,n,a,{notFoundHint:"flatpak-builder not found. Install via your distro (Fedora: `sudo dnf install flatpak-builder`)."})}async function runFlatpak(n,a){return runProc(`flatpak`,n,a,{notFoundHint:`flatpak not found. Install via your distro and add Flathub: see https://flathub.org/setup.`})}async function runTar(n,a){return runProc(`tar`,n,a,{notFoundHint:`tar not found.`})}function runProc(n,a,S,C){return S.verbose&&Fe.log(`[gjsify flatpak] ${n} ${a.join(` `)}`),new Promise((S,N)=>{let F=spawn(n,a,{stdio:`inherit`});F.on(`error`,n=>{n.code===`ENOENT`?N(Error(`gjsify flatpak: ${C.notFoundHint}`)):N(n)}),F.on(`exit`,a=>{a===0?S():N(Error(`gjsify flatpak: ${n} exited with status ${a}`))})})}Ie(),Hx(),As(),Ho();const AE={command:`deps`,description:"Generate Flatpak offline-cache sources from a yarn.lock / package-lock.json (wraps `flatpak-node-generator`).",builder:n=>n.option(`lockfile`,{description:`Path to lockfile (default: yarn.lock or package-lock.json in cwd)`,type:`string`,normalize:!0}).option(`type`,{description:`Lockfile type. Default: detected from filename.`,choices:[`yarn`,`npm`]}).option(`out`,{description:`Output JSON sources file`,type:`string`,default:`flatpak-node-sources.json`,normalize:!0}).option(`xdg-layout`,{description:`Pass --xdg-layout (recommended for Yarn Berry / PnP setups)`,type:`boolean`,default:!0}).option(`electron-node-headers`,{description:`Pass --electron-node-headers`,type:`boolean`,default:!1}).option(`verbose`,{description:`Print the underlying flatpak-node-generator invocation`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=Oo(a,n.lockfile??detectLockfile(a));if(!existsSync(S))throw Error(`gjsify flatpak deps: lockfile ${S} not found (use --lockfile to override)`);let C=n.type??(S.endsWith(`package-lock.json`)?`npm`:`yarn`),N=Oo(a,n.out??`flatpak-node-sources.json`);mkdirSync(Po(N),{recursive:!0});let F=[C,S,`-o`,N];n.xdgLayout!==!1&&F.push(`--xdg-layout`),n.electronNodeHeaders&&F.push(`--electron-node-headers`),n.verbose&&Fe.log(`[gjsify flatpak deps] flatpak-node-generator ${F.join(` `)}`),await new Promise((n,a)=>{let S=spawn(`flatpak-node-generator`,F,{stdio:`inherit`});S.on(`error`,n=>{n.code===`ENOENT`?a(Error("gjsify flatpak deps: flatpak-node-generator not found. Install via `pipx install flatpak-node-generator` (see https://github.com/flatpak/flatpak-builder-tools/tree/master/node).")):a(n)}),S.on(`exit`,S=>{S===0?n():a(Error(`gjsify flatpak deps: flatpak-node-generator exited with status ${S}`))})}),Fe.log(`[gjsify flatpak deps] wrote ${N}`)}};function detectLockfile(n){return existsSync(Oo(n,`yarn.lock`))?`yarn.lock`:existsSync(Oo(n,`package-lock.json`))?`package-lock.json`:`yarn.lock`}Ie(),As(),Ho();const jE={command:`ci`,description:`Scaffold .github/workflows/flatpak.yml using the flathub-infra container + flatpak-builder@v6 action.`,builder:n=>n.option(`manifest`,{description:`Manifest path the workflow points at (default: <app-id>.json)`,type:`string`,normalize:!0}).option(`bundle`,{description:`Bundle filename produced by the action (default: <app-id>.flatpak)`,type:`string`,normalize:!0}).option(`runtime-image`,{description:"Container image override. Default derived from gjsify.flatpak.runtime + runtimeVersion (e.g. `ghcr.io/flathub-infra/flatpak-github-actions:gnome-50`).",type:`string`}).option(`branches`,{description:`Branches the workflow runs on push for (default: main)`,type:`string`,array:!0}).option(`out`,{description:`Output path`,type:`string`,default:`.github/workflows/flatpak.yml`,normalize:!0}).option(`cache-key`,{description:"Override the action `cache-key` (default: `flatpak-builder-${{ github.sha }}`)",type:`string`}).option(`force`,{description:`Overwrite an existing workflow file`,type:`boolean`,default:!1}).option(`verbose`,{description:`Print resolved fields`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=(await new Config().forBuild({}).catch(()=>({}))).flatpak??{},C=readPackageJson(a),N=S.appId??(looksLikeAppId(C.name)?C.name:void 0);if(!N)throw Error(`gjsify flatpak ci: no app id available. Set gjsify.flatpak.appId in package.json or rename the package to a reverse-DNS id.`);let F=n.manifest??`${N}.json`,I=n.bundle??`${N}.flatpak`,{runtime:H,runtimeVersion:W}=resolveRuntime(S,{}),K=n.runtimeImage??S.ciContainer??defaultCiContainer(H,W),q=n.branches??S.ciBranches??[`main`],Y=n.cacheKey??"flatpak-builder-${{ github.sha }}",X=Oo(a,n.out??`.github/workflows/flatpak.yml`);if(existsSync(X)&&!n.force){if(readFileSync(X,`utf-8`)===renderWorkflow({manifest:F,bundle:I,runtimeImage:K,branches:q,cacheKey:Y})){Fe.log(`[gjsify flatpak ci] ${X} already up to date`);return}throw Error(`gjsify flatpak ci: ${X} exists with different content. Pass --force to overwrite.`)}let te=renderWorkflow({manifest:F,bundle:I,runtimeImage:K,branches:q,cacheKey:Y});mkdirSync(Po(X),{recursive:!0}),writeFileSync(X,te,`utf-8`),n.verbose&&Fe.log(`[gjsify flatpak ci] runtime-image=${K} manifest=${F} bundle=${I}`),Fe.log(`[gjsify flatpak ci] wrote ${X}`)}};function renderWorkflow(n){let a=`[${n.branches.map(n=>JSON.stringify(n)).join(`, `)}]`;return`name: Flatpak
759
+ Fill these fields in package.json#gjsify.flatpak (or .gjsifyrc.*) and re-run with --force.`)}else{let C=F===`cli`?renderMetainfoCli(se):renderMetainfoApp(se);trackWrite(writeIfFresh(Oo(S,n.metainfo??`data/${N}.metainfo.xml.in`),C,n.force??!1,`metainfo`)),F===`app`&&(trackWrite(writeIfFresh(Oo(S,n.desktop??`data/${N}.desktop.in`),renderDesktop(se),n.force??!1,`desktop`)),a.icon||Fe.warn(`[gjsify flatpak init] No gjsify.flatpak.icon set. Flathub requires a scalable SVG at\n data/icons/hicolor/scalable/apps/${N}.svg`)),trackWrite(writeIfFresh(Oo(S,n.flathubJson??`flathub.json`),renderFlathubJson(F),n.force??!1,`flathub.json`))}let le=oe.filter(n=>/\.(ts|tsx|mts|cts|js|jsx|mjs|cjs)$/.test(n));if(le.length>0&&n.format!==!1&&hasOxcDevDep(S))try{await runOxfmt([`--write`,...le],{cwd:S})}catch(n){if(n instanceof OxcNotFoundError)Fe.warn("[gjsify flatpak init] post-format skipped: oxfmt declared but binding not installed. Run `gjsify install` then re-run with --force, or pass --no-format.");else throw n}n.verbose&&(Fe.log(`[gjsify flatpak init] kind=${F} runtime=${H} ${K} sdk=${W}`),Fe.log(`[gjsify flatpak init] command=${X} finish-args=${JSON.stringify(ne)}`))}};function writeIfFresh(n,a,S,C){return existsSync(n)&&!S?(Fe.log(`[gjsify flatpak init] skipped ${C}: ${n} (exists; --force to overwrite)`),null):(mkdirSync(Po(n),{recursive:!0}),writeFileSync(n,a,`utf-8`),Fe.log(`[gjsify flatpak init] wrote ${C}: ${n}`),n)}function friendlyName(n,a){if(n.startsWith(`@`))return n.slice(n.indexOf(`/`)+1);if(n===a){let n=a.split(`.`);return n[n.length-1]??a}return n}function mergeArrays(n,a){if(!(!n?.length&&!a?.length))return[...n??[],...a??[]]}function deriveAppendPath(n){let a=[];for(let S of n){let n=/^org\.freedesktop\.Sdk\.Extension\.([A-Za-z0-9-]+)$/.exec(S);n&&a.push(`/usr/lib/sdk/${n[1]}/bin`)}return a.push(`/app/bin`),a}function deriveModuleName(n){let a=n.split(`.`);return a[a.length-1]||n}Ie(),Hx(),As(),Ho();const jE={command:`build [manifest]`,description:"Build the Flatpak via `flatpak-builder`. Wraps a typical install + export + bundle + tarball pipeline.",builder:n=>n.positional(`manifest`,{description:`Path to the Flatpak manifest (default: first *.json that looks like a manifest in cwd)`,type:`string`,normalize:!0}).option(`build-dir`,{description:`flatpak-builder working directory`,type:`string`,default:`flatpak-build`,normalize:!0}).option(`install`,{description:"After build, run `flatpak-builder --user --install` to install locally",type:`boolean`,default:!1}).option(`repo`,{description:"Export the build into the given OSTree repo (passes `--repo=<dir>` to flatpak-builder)",type:`string`,normalize:!0}).option(`bundle`,{description:"After --repo export, build a single-file bundle (`flatpak build-bundle`) at this path",type:`string`,normalize:!0}).option(`tarball`,{description:`Create a tarball of the build dir (parity with the legacy build-flatpak.sh tarball step)`,type:`string`,normalize:!0}).option(`force-clean`,{description:`Pass --force-clean to flatpak-builder (default true)`,type:`boolean`,default:!0}).option(`sandbox`,{description:`Pass --sandbox to flatpak-builder (default true)`,type:`boolean`,default:!0}).option(`delete-build-dirs`,{description:`Pass --delete-build-dirs to flatpak-builder (default true)`,type:`boolean`,default:!0}).option(`install-deps-from`,{description:"Pass --install-deps-from to flatpak-builder (e.g. `flathub`)",type:`string`}).option(`verbose`,{description:`Print the underlying flatpak-builder invocations`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=Oo(a,n.manifest??findDefaultManifest(a));if(!existsSync(S))throw Error(`gjsify flatpak build: manifest ${S} not found`);let C=Oo(a,n.buildDir??`flatpak-build`),N=[];if(n.forceClean!==!1&&N.push(`--force-clean`),n.sandbox!==!1&&N.push(`--sandbox`),n.deleteBuildDirs!==!1&&N.push(`--delete-build-dirs`),n.installDepsFrom&&N.push(`--install-deps-from=${n.installDepsFrom}`),existsSync(C)&&rmSync(C,{recursive:!0,force:!0}),await runFlatpakBuilder([...N,C,S],{verbose:n.verbose}),n.install&&await runFlatpakBuilder([`--user`,`--install`,`--force-clean`,C,S],{verbose:n.verbose}),n.repo){let N=Oo(a,n.repo);mkdirSync(Po(N),{recursive:!0}),await runFlatpakBuilder([`--repo=${N}`,`--force-clean`,C,S],{verbose:n.verbose})}if(n.bundle){if(!n.repo)throw Error(`gjsify flatpak build: --bundle requires --repo (the bundle is built from the OSTree repo).`);let C=Oo(a,n.bundle);mkdirSync(Po(C),{recursive:!0}),await runFlatpak([`build-bundle`,Oo(a,n.repo),C,readManifestAppId(S)],{verbose:n.verbose})}if(n.tarball){let S=Oo(a,n.tarball);mkdirSync(Po(S),{recursive:!0}),await runTar([`-czf`,S,`-C`,C,`.`],{verbose:n.verbose})}Fe.log(`[gjsify flatpak build] done (${C})`)}};function findDefaultManifest(n){return scanForManifest(n)??`flatpak.json`}function scanForManifest(n){let a=[];try{a=readdirSync(n)}catch{return}for(let S of a)if(S.endsWith(`.json`)&&!(S===`package.json`||S===`tsconfig.json`||S.startsWith(`.`)))try{let a=JSON.parse(readFileSync(Oo(n,S),`utf-8`));if(typeof a.id==`string`&&typeof a.runtime==`string`&&Array.isArray(a.modules))return S}catch{}}function readManifestAppId(n){let a=readFileSync(n,`utf-8`),S=JSON.parse(a);if(typeof S.id!=`string`)throw Error(`gjsify flatpak build: ${n} has no string "id" field`);return S.id}async function runFlatpakBuilder(n,a){return runProc(`flatpak-builder`,n,a,{notFoundHint:"flatpak-builder not found. Install via your distro (Fedora: `sudo dnf install flatpak-builder`)."})}async function runFlatpak(n,a){return runProc(`flatpak`,n,a,{notFoundHint:`flatpak not found. Install via your distro and add Flathub: see https://flathub.org/setup.`})}async function runTar(n,a){return runProc(`tar`,n,a,{notFoundHint:`tar not found.`})}function runProc(n,a,S,C){return S.verbose&&Fe.log(`[gjsify flatpak] ${n} ${a.join(` `)}`),new Promise((S,N)=>{let F=spawn(n,a,{stdio:`inherit`});F.on(`error`,n=>{n.code===`ENOENT`?N(Error(`gjsify flatpak: ${C.notFoundHint}`)):N(n)}),F.on(`exit`,a=>{a===0?S():N(Error(`gjsify flatpak: ${n} exited with status ${a}`))})})}Ie(),Hx(),As(),Ho();const ME={command:`deps`,description:"Generate Flatpak offline-cache sources from a yarn.lock / package-lock.json (wraps `flatpak-node-generator`).",builder:n=>n.option(`lockfile`,{description:`Path to lockfile (default: yarn.lock or package-lock.json in cwd)`,type:`string`,normalize:!0}).option(`type`,{description:`Lockfile type. Default: detected from filename.`,choices:[`yarn`,`npm`]}).option(`out`,{description:`Output JSON sources file`,type:`string`,default:`flatpak-node-sources.json`,normalize:!0}).option(`xdg-layout`,{description:`Pass --xdg-layout (recommended for Yarn Berry / PnP setups)`,type:`boolean`,default:!0}).option(`electron-node-headers`,{description:`Pass --electron-node-headers`,type:`boolean`,default:!1}).option(`verbose`,{description:`Print the underlying flatpak-node-generator invocation`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=Oo(a,n.lockfile??detectLockfile(a));if(!existsSync(S))throw Error(`gjsify flatpak deps: lockfile ${S} not found (use --lockfile to override)`);let C=n.type??(S.endsWith(`package-lock.json`)?`npm`:`yarn`),N=Oo(a,n.out??`flatpak-node-sources.json`);mkdirSync(Po(N),{recursive:!0});let F=[C,S,`-o`,N];n.xdgLayout!==!1&&F.push(`--xdg-layout`),n.electronNodeHeaders&&F.push(`--electron-node-headers`),n.verbose&&Fe.log(`[gjsify flatpak deps] flatpak-node-generator ${F.join(` `)}`),await new Promise((n,a)=>{let S=spawn(`flatpak-node-generator`,F,{stdio:`inherit`});S.on(`error`,n=>{n.code===`ENOENT`?a(Error("gjsify flatpak deps: flatpak-node-generator not found. Install via `pipx install flatpak-node-generator` (see https://github.com/flatpak/flatpak-builder-tools/tree/master/node).")):a(n)}),S.on(`exit`,S=>{S===0?n():a(Error(`gjsify flatpak deps: flatpak-node-generator exited with status ${S}`))})}),Fe.log(`[gjsify flatpak deps] wrote ${N}`)}};function detectLockfile(n){return existsSync(Oo(n,`yarn.lock`))?`yarn.lock`:existsSync(Oo(n,`package-lock.json`))?`package-lock.json`:`yarn.lock`}Ie(),As(),Ho();const NE={command:`ci`,description:`Scaffold .github/workflows/flatpak.yml using the flathub-infra container + flatpak-builder@v6 action.`,builder:n=>n.option(`manifest`,{description:`Manifest path the workflow points at (default: <app-id>.json)`,type:`string`,normalize:!0}).option(`bundle`,{description:`Bundle filename produced by the action (default: <app-id>.flatpak)`,type:`string`,normalize:!0}).option(`runtime-image`,{description:"Container image override. Default derived from gjsify.flatpak.runtime + runtimeVersion (e.g. `ghcr.io/flathub-infra/flatpak-github-actions:gnome-50`).",type:`string`}).option(`branches`,{description:`Branches the workflow runs on push for (default: main)`,type:`string`,array:!0}).option(`out`,{description:`Output path`,type:`string`,default:`.github/workflows/flatpak.yml`,normalize:!0}).option(`cache-key`,{description:"Override the action `cache-key` (default: `flatpak-builder-${{ github.sha }}`)",type:`string`}).option(`force`,{description:`Overwrite an existing workflow file`,type:`boolean`,default:!1}).option(`verbose`,{description:`Print resolved fields`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=(await new Config().forBuild({}).catch(()=>({}))).flatpak??{},C=readPackageJson(a),N=S.appId??(looksLikeAppId(C.name)?C.name:void 0);if(!N)throw Error(`gjsify flatpak ci: no app id available. Set gjsify.flatpak.appId in package.json or rename the package to a reverse-DNS id.`);let F=n.manifest??`${N}.json`,I=n.bundle??`${N}.flatpak`,{runtime:H,runtimeVersion:W}=resolveRuntime(S,{}),K=n.runtimeImage??S.ciContainer??defaultCiContainer(H,W),q=n.branches??S.ciBranches??[`main`],Y=n.cacheKey??"flatpak-builder-${{ github.sha }}",X=Oo(a,n.out??`.github/workflows/flatpak.yml`);if(existsSync(X)&&!n.force){if(readFileSync(X,`utf-8`)===renderWorkflow({manifest:F,bundle:I,runtimeImage:K,branches:q,cacheKey:Y})){Fe.log(`[gjsify flatpak ci] ${X} already up to date`);return}throw Error(`gjsify flatpak ci: ${X} exists with different content. Pass --force to overwrite.`)}let te=renderWorkflow({manifest:F,bundle:I,runtimeImage:K,branches:q,cacheKey:Y});mkdirSync(Po(X),{recursive:!0}),writeFileSync(X,te,`utf-8`),n.verbose&&Fe.log(`[gjsify flatpak ci] runtime-image=${K} manifest=${F} bundle=${I}`),Fe.log(`[gjsify flatpak ci] wrote ${X}`)}};function renderWorkflow(n){let a=`[${n.branches.map(n=>JSON.stringify(n)).join(`, `)}]`;return`name: Flatpak
760
760
 
761
761
  on:
762
762
  push:
@@ -784,27 +784,27 @@ jobs:
784
784
  manifest-path: ${n.manifest}
785
785
  bundle: ${n.bundle}
786
786
  cache-key: ${n.cacheKey}
787
- `}Ie(),As(),Ho(),Hx();const ME={command:`check [manifest]`,description:`Run Flathub pre-submission linters: appstreamcli validate + flatpak-builder-lint.`,builder:n=>n.positional(`manifest`,{description:"Path to the Flatpak manifest. Auto-detects `<app-id>.json` if omitted.",type:`string`,normalize:!0}).option(`repo`,{description:"Built ostree-repo path. If given, also runs `flatpak-builder-lint repo`.",type:`string`,normalize:!0}).option(`metainfo`,{description:"MetaInfo XML path. Default: `data/<app-id>.metainfo.xml.in`.",type:`string`,normalize:!0}).option(`appstream`,{description:"Run `appstreamcli validate --strict` (default: true).",type:`boolean`,default:!0}).option(`builder-lint`,{description:"Run `flatpak-builder-lint manifest` (default: true).",type:`boolean`,default:!0}).option(`verbose`,{description:`Stream linter stdout/stderr verbatim.`,type:`boolean`,default:!1}),handler:async n=>{let a=(await new Config().forBuild({}).catch(()=>({}))).flatpak??{},S=process.cwd(),C=resolveAppId(n.manifest,a,S),N=resolveManifestPath(n.manifest,C,S),F=Oo(S,n.metainfo??`data/${C??`unknown`}.metainfo.xml.in`),I=0;if(n.appstream!==!1&&(existsSync(F)?await runLinter(`appstreamcli`,[`validate`,`--strict`,F],n.verbose??!1)||I++:Fe.warn(`[gjsify flatpak check] skipping appstreamcli — ${F} not found`)),n.builderLint!==!1){if(!existsSync(N)){Fe.error(`[gjsify flatpak check] manifest not found: ${N}`),process.exit(1);return}await runLinter(`flatpak-builder-lint`,[`manifest`,N],n.verbose??!1)||I++,n.repo&&(await runLinter(`flatpak-builder-lint`,[`repo`,Oo(S,n.repo)],n.verbose??!1)||I++)}I>0&&(Fe.error(`\n[gjsify flatpak check] ${I} check(s) failed.`),process.exit(1)),Fe.log(`[gjsify flatpak check] all checks passed.`)}};function resolveAppId(n,a,S){if(a.appId)return a.appId;try{let n=readPackageJson(S);if(looksLikeAppId(n.name))return n.name}catch{}if(n)return n.replace(/\.json$/,``)}function resolveManifestPath(n,a,S){if(n)return Oo(S,n);if(a)return Oo(S,`${a}.json`);let C=readdirSync(S).filter(n=>n.endsWith(`.json`)&&!n.startsWith(`package`));if(C.length===1)return Oo(S,C[0]);throw Error(`gjsify flatpak check: no manifest path given and could not auto-detect. Pass the manifest as a positional argument.`)}function runLinter(n,a,S){return new Promise(C=>{let N=spawn(n,a,{stdio:S?`inherit`:[`ignore`,`pipe`,`pipe`]}),F=``,I=``;S||(N.stdout?.setEncoding(`utf-8`),N.stderr?.setEncoding(`utf-8`),N.stdout?.on(`data`,n=>{F+=n}),N.stderr?.on(`data`,n=>{I+=n})),N.on(`error`,a=>{let S=a;S.code===`ENOENT`?Fe.error(`[gjsify flatpak check] ${n} not found in PATH.\nInstall via:\n flatpak install -y flathub org.flatpak.Builder\n alias ${n}="flatpak run --command=${n} org.flatpak.Builder"`):Fe.error(`[gjsify flatpak check] ${n} failed to spawn: ${S.message}`),C(!1)}),N.on(`exit`,N=>{let H=N===0,W=H?`OK`:`FAIL`;Fe.log(`[gjsify flatpak check] ${W}: ${n} ${a.join(` `)}`),!H&&!S&&(F.trim()&&Fe.log(F.trimEnd()),I.trim()&&Fe.error(I.trimEnd())),C(H)})})}Ie(),As(),Ho(),kp(),Hx(),qc();const NE=promisify(execFile),PE={command:`sync-flathub`,description:`Update the per-app Flathub tracking-repo manifest to a new git tag + commit. Clones, edits, commits, optionally opens a PR.`,builder:n=>n.version(!1).option(`version`,{description:"Git tag to sync to. Default: `git describe --tags --abbrev=0` in cwd.",type:`string`}).option(`app-id`,{description:"Reverse-DNS app id. Default: `gjsify.flatpak.appId`.",type:`string`}).option(`flathub-repo`,{description:"Flathub tracking-repo (owner/name). Default: `flathub/<appId>`.",type:`string`}).option(`commit`,{description:"Commit SHA to pin. Default: resolved via `git rev-list -n 1 <version>` in cwd.",type:`string`}).option(`branch`,{description:"Branch name in the flathub-repo. Default: `update-to-<version>`.",type:`string`}).option(`source-index`,{description:"Index into modules[0].sources[] to update (when manifest has multiple sources). Default: first `type: git` source.",type:`number`}).option(`pr`,{description:"After commit + push, open a PR via `gh pr create`. Pass `--no-pr` to skip and stop after push.",type:`boolean`,default:!0}).option(`dry-run`,{description:`Show what would be edited; touch no files, run no git commands.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Echo every git / gh invocation before running.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=(await new Config().forBuild({}).catch(()=>({}))).flatpak??{},C=n.appId??S.appId??readPackageJson(a).name;if(!C)throw Error(`[gjsify flatpak sync-flathub] no app id available — pass --app-id or set gjsify.flatpak.appId.`);let N=n.flathubRepo??S.flathubRepo??`flathub/${C}`,F=n.version??await resolveLatestTag$1(a,n.verbose);if(!F)throw Error(`[gjsify flatpak sync-flathub] no version resolved — pass --version vX.Y.Z or create a git tag locally.`);let I=n.commit??await resolveCommitForTag(a,F,n.verbose),H=n.branch??`update-to-${normaliseBranchSegment(F)}`;if(Fe.log(`[gjsify flatpak sync-flathub] appId=${C}`),Fe.log(`[gjsify flatpak sync-flathub] flathubRepo=${N}`),Fe.log(`[gjsify flatpak sync-flathub] version=${F}`),Fe.log(`[gjsify flatpak sync-flathub] commit=${I}`),Fe.log(`[gjsify flatpak sync-flathub] branch=${H}`),n.dryRun){Fe.log(`[gjsify flatpak sync-flathub] --dry-run set; not cloning / writing / pushing.`);return}let W=flathubCacheRoot(),K=jo(W,N.replace(`/`,`__`));mkdirSync(W,{recursive:!0}),await ensureClone(K,N,n.verbose);let q=jo(K,`${C}.json`);if(!existsSync(q))throw Error(`[gjsify flatpak sync-flathub] Flathub manifest not found at ${q} — wrong appId / wrong flathub-repo?`);let Y=readFileSync(q,`utf-8`),X=editManifest(Y,{tag:F,commit:I,sourceIndex:n.sourceIndex});if(X===Y){Fe.log(`[gjsify flatpak sync-flathub] manifest already at ${F} — nothing to do.`);return}if(writeFileSync(q,X,`utf-8`),Fe.log(`[gjsify flatpak sync-flathub] manifest patched at ${q}`),await gitInRepo(K,[`checkout`,`-B`,H],n.verbose),await gitInRepo(K,[`add`,`.`],n.verbose),await gitInRepo(K,[`commit`,`-m`,`Update to ${F}`],n.verbose),n.pr===!1){Fe.log(`[gjsify flatpak sync-flathub] --no-pr set; branch ${H} committed locally in ${K}.`);return}await gitInRepo(K,[`push`,`-u`,`origin`,H,`--force-with-lease`],n.verbose),await ghCreate(K,N,H,F,`Auto-generated by \`gjsify flatpak sync-flathub\`.\n\n- Version: \`${F}\`\n- Commit: \`${I}\`\n`,n.verbose)}};async function resolveLatestTag$1(n,a){try{let{stdout:S}=await NE(`git`,[`describe`,`--tags`,`--abbrev=0`],{cwd:n});return a&&Fe.log(`[gjsify flatpak sync-flathub] resolved latest tag → ${S.trim()}`),S.trim()||null}catch{return null}}__name$1(resolveLatestTag$1,`resolveLatestTag`);async function resolveCommitForTag(n,a,S){try{let{stdout:C}=await NE(`git`,[`rev-list`,`-n`,`1`,a],{cwd:n}),N=C.trim();if(!N)throw Error(`empty rev-list output`);return S&&Fe.log(`[gjsify flatpak sync-flathub] resolved ${a} → ${N}`),N}catch(n){throw Error(`[gjsify flatpak sync-flathub] tag ${a} not found locally. Run \`git fetch --tags\` or pass --commit <sha>.\n underlying error: ${n?.message??n}`)}}function normaliseBranchSegment(n){return n.replace(/^v/,``).replace(/[^A-Za-z0-9._-]/g,`-`)}function flathubCacheRoot(){return jo(process.env.XDG_CACHE_HOME||jo(homedir(),`.cache`),`gjsify`,`flathub-sync`)}async function ensureClone(n,a,S){if(existsSync(jo(n,`.git`))){S&&Fe.log(`[gjsify flatpak sync-flathub] reusing clone at ${n}`),await gitInRepo(n,[`fetch`,`origin`],S);let a=await detectDefaultBranch(n,S);await gitInRepo(n,[`checkout`,a],S),await gitInRepo(n,[`reset`,`--hard`,`origin/${a}`],S);return}mkdirSync(Oo(n,`..`),{recursive:!0});let C=`https://github.com/${a}.git`;S&&Fe.log(`[gjsify flatpak sync-flathub] git clone ${C} ${n}`);try{await NE(`git`,[`clone`,C,n])}catch(n){throw n?.code===`ENOENT`?Error("[gjsify flatpak sync-flathub] `git` not found. Install git from your distro (Fedora: `dnf install git`, Debian: `apt install git`)."):n}}async function detectDefaultBranch(n,a){try{let{stdout:S}=await NE(`git`,[`remote`,`show`,`origin`],{cwd:n}),C=S.match(/HEAD branch: (\S+)/);if(C&&C[1]&&C[1]!==`(unknown)`)return a&&Fe.log(`[gjsify flatpak sync-flathub] default branch → ${C[1]}`),C[1]}catch{}return`master`}function gitInRepo(n,a,S){return S&&Fe.log(`[gjsify flatpak sync-flathub] git ${a.join(` `)} (in ${n})`),new Promise((S,C)=>{let N=spawn(`git`,a,{cwd:n,stdio:`inherit`});N.on(`error`,n=>{n.code===`ENOENT`?C(Error("[gjsify flatpak sync-flathub] `git` not found. Install it from your distro.")):C(n)}),N.on(`exit`,n=>{n===0?S():C(Error(`git ${a[0]} exited ${n}`))})})}function ghCreate(n,a,S,C,N,F){let I=[`pr`,`create`,`--repo`,a,`--head`,S,`--title`,`Update to ${C}`,`--body`,N];return F&&Fe.log(`[gjsify flatpak sync-flathub] gh ${I.join(` `)} (in ${n})`),new Promise((a,S)=>{let C=spawn(`gh`,I,{cwd:n,stdio:`inherit`});C.on(`error`,n=>{n.code===`ENOENT`?S(Error("[gjsify flatpak sync-flathub] `gh` (GitHub CLI) not found. Install via `dnf install gh` (Fedora), `apt install gh` (Debian/Ubuntu), or `flatpak install -y flathub com.github.cli`.")):S(n)}),C.on(`exit`,n=>{n===0?a():S(Error(`gh pr create exited ${n}`))})})}function editManifest(n,a){let S=JSON.parse(n),C=S.modules??[];if(C.length===0)throw Error(`[gjsify flatpak sync-flathub] manifest has no modules`);let N=C[0].sources??[];if(N.length===0)throw Error(`[gjsify flatpak sync-flathub] modules[0] has no sources`);let F=a.sourceIndex??N.findIndex(n=>n.type===`git`);if(F<0||F>=N.length)throw Error(`[gjsify flatpak sync-flathub] no git source found in modules[0].sources (use --source-index <n>)`);let I=N[F];if(I.type!==`git`)throw Error(`[gjsify flatpak sync-flathub] modules[0].sources[${F}].type is "${I.type}", expected "git"`);I.tag=a.tag,I.commit=a.commit,I[`x-checker-data`]||={type:`git`,"tag-pattern":`^v(\\d+\\.\\d+\\.\\d+)$`,"version-scheme":`semantic`};let H=detectIndent$1(n);return JSON.stringify(S,null,H)+(n.endsWith(`
787
+ `}Ie(),As(),Ho(),Hx();const PE={command:`check [manifest]`,description:`Run Flathub pre-submission linters: appstreamcli validate + flatpak-builder-lint.`,builder:n=>n.positional(`manifest`,{description:"Path to the Flatpak manifest. Auto-detects `<app-id>.json` if omitted.",type:`string`,normalize:!0}).option(`repo`,{description:"Built ostree-repo path. If given, also runs `flatpak-builder-lint repo`.",type:`string`,normalize:!0}).option(`metainfo`,{description:"MetaInfo XML path. Default: `data/<app-id>.metainfo.xml.in`.",type:`string`,normalize:!0}).option(`appstream`,{description:"Run `appstreamcli validate --strict` (default: true).",type:`boolean`,default:!0}).option(`builder-lint`,{description:"Run `flatpak-builder-lint manifest` (default: true).",type:`boolean`,default:!0}).option(`verbose`,{description:`Stream linter stdout/stderr verbatim.`,type:`boolean`,default:!1}),handler:async n=>{let a=(await new Config().forBuild({}).catch(()=>({}))).flatpak??{},S=process.cwd(),C=resolveAppId(n.manifest,a,S),N=resolveManifestPath(n.manifest,C,S),F=Oo(S,n.metainfo??`data/${C??`unknown`}.metainfo.xml.in`),I=0;if(n.appstream!==!1&&(existsSync(F)?await runLinter(`appstreamcli`,[`validate`,`--strict`,F],n.verbose??!1)||I++:Fe.warn(`[gjsify flatpak check] skipping appstreamcli — ${F} not found`)),n.builderLint!==!1){if(!existsSync(N)){Fe.error(`[gjsify flatpak check] manifest not found: ${N}`),process.exit(1);return}await runLinter(`flatpak-builder-lint`,[`manifest`,N],n.verbose??!1)||I++,n.repo&&(await runLinter(`flatpak-builder-lint`,[`repo`,Oo(S,n.repo)],n.verbose??!1)||I++)}I>0&&(Fe.error(`\n[gjsify flatpak check] ${I} check(s) failed.`),process.exit(1)),Fe.log(`[gjsify flatpak check] all checks passed.`)}};function resolveAppId(n,a,S){if(a.appId)return a.appId;try{let n=readPackageJson(S);if(looksLikeAppId(n.name))return n.name}catch{}if(n)return n.replace(/\.json$/,``)}function resolveManifestPath(n,a,S){if(n)return Oo(S,n);if(a)return Oo(S,`${a}.json`);let C=readdirSync(S).filter(n=>n.endsWith(`.json`)&&!n.startsWith(`package`));if(C.length===1)return Oo(S,C[0]);throw Error(`gjsify flatpak check: no manifest path given and could not auto-detect. Pass the manifest as a positional argument.`)}function runLinter(n,a,S){return new Promise(C=>{let N=spawn(n,a,{stdio:S?`inherit`:[`ignore`,`pipe`,`pipe`]}),F=``,I=``;S||(N.stdout?.setEncoding(`utf-8`),N.stderr?.setEncoding(`utf-8`),N.stdout?.on(`data`,n=>{F+=n}),N.stderr?.on(`data`,n=>{I+=n})),N.on(`error`,a=>{let S=a;S.code===`ENOENT`?Fe.error(`[gjsify flatpak check] ${n} not found in PATH.\nInstall via:\n flatpak install -y flathub org.flatpak.Builder\n alias ${n}="flatpak run --command=${n} org.flatpak.Builder"`):Fe.error(`[gjsify flatpak check] ${n} failed to spawn: ${S.message}`),C(!1)}),N.on(`exit`,N=>{let H=N===0,W=H?`OK`:`FAIL`;Fe.log(`[gjsify flatpak check] ${W}: ${n} ${a.join(` `)}`),!H&&!S&&(F.trim()&&Fe.log(F.trimEnd()),I.trim()&&Fe.error(I.trimEnd())),C(H)})})}Ie(),As(),Ho(),kp(),Hx(),qc();const FE=promisify(execFile),IE={command:`sync-flathub`,description:`Update the per-app Flathub tracking-repo manifest to a new git tag + commit. Clones, edits, commits, optionally opens a PR.`,builder:n=>n.version(!1).option(`version`,{description:"Git tag to sync to. Default: `git describe --tags --abbrev=0` in cwd.",type:`string`}).option(`app-id`,{description:"Reverse-DNS app id. Default: `gjsify.flatpak.appId`.",type:`string`}).option(`flathub-repo`,{description:"Flathub tracking-repo (owner/name). Default: `flathub/<appId>`.",type:`string`}).option(`commit`,{description:"Commit SHA to pin. Default: resolved via `git rev-list -n 1 <version>` in cwd.",type:`string`}).option(`branch`,{description:"Branch name in the flathub-repo. Default: `update-to-<version>`.",type:`string`}).option(`source-index`,{description:"Index into modules[0].sources[] to update (when manifest has multiple sources). Default: first `type: git` source.",type:`number`}).option(`pr`,{description:"After commit + push, open a PR via `gh pr create`. Pass `--no-pr` to skip and stop after push.",type:`boolean`,default:!0}).option(`dry-run`,{description:`Show what would be edited; touch no files, run no git commands.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Echo every git / gh invocation before running.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=(await new Config().forBuild({}).catch(()=>({}))).flatpak??{},C=n.appId??S.appId??readPackageJson(a).name;if(!C)throw Error(`[gjsify flatpak sync-flathub] no app id available — pass --app-id or set gjsify.flatpak.appId.`);let N=n.flathubRepo??S.flathubRepo??`flathub/${C}`,F=n.version??await resolveLatestTag$1(a,n.verbose);if(!F)throw Error(`[gjsify flatpak sync-flathub] no version resolved — pass --version vX.Y.Z or create a git tag locally.`);let I=n.commit??await resolveCommitForTag(a,F,n.verbose),H=n.branch??`update-to-${normaliseBranchSegment(F)}`;if(Fe.log(`[gjsify flatpak sync-flathub] appId=${C}`),Fe.log(`[gjsify flatpak sync-flathub] flathubRepo=${N}`),Fe.log(`[gjsify flatpak sync-flathub] version=${F}`),Fe.log(`[gjsify flatpak sync-flathub] commit=${I}`),Fe.log(`[gjsify flatpak sync-flathub] branch=${H}`),n.dryRun){Fe.log(`[gjsify flatpak sync-flathub] --dry-run set; not cloning / writing / pushing.`);return}let W=flathubCacheRoot(),K=jo(W,N.replace(`/`,`__`));mkdirSync(W,{recursive:!0}),await ensureClone(K,N,n.verbose);let q=jo(K,`${C}.json`);if(!existsSync(q))throw Error(`[gjsify flatpak sync-flathub] Flathub manifest not found at ${q} — wrong appId / wrong flathub-repo?`);let Y=readFileSync(q,`utf-8`),X=editManifest(Y,{tag:F,commit:I,sourceIndex:n.sourceIndex});if(X===Y){Fe.log(`[gjsify flatpak sync-flathub] manifest already at ${F} — nothing to do.`);return}if(writeFileSync(q,X,`utf-8`),Fe.log(`[gjsify flatpak sync-flathub] manifest patched at ${q}`),await gitInRepo(K,[`checkout`,`-B`,H],n.verbose),await gitInRepo(K,[`add`,`.`],n.verbose),await gitInRepo(K,[`commit`,`-m`,`Update to ${F}`],n.verbose),n.pr===!1){Fe.log(`[gjsify flatpak sync-flathub] --no-pr set; branch ${H} committed locally in ${K}.`);return}await gitInRepo(K,[`push`,`-u`,`origin`,H,`--force-with-lease`],n.verbose),await ghCreate(K,N,H,F,`Auto-generated by \`gjsify flatpak sync-flathub\`.\n\n- Version: \`${F}\`\n- Commit: \`${I}\`\n`,n.verbose)}};async function resolveLatestTag$1(n,a){try{let{stdout:S}=await FE(`git`,[`describe`,`--tags`,`--abbrev=0`],{cwd:n});return a&&Fe.log(`[gjsify flatpak sync-flathub] resolved latest tag → ${S.trim()}`),S.trim()||null}catch{return null}}__name$1(resolveLatestTag$1,`resolveLatestTag`);async function resolveCommitForTag(n,a,S){try{let{stdout:C}=await FE(`git`,[`rev-list`,`-n`,`1`,a],{cwd:n}),N=C.trim();if(!N)throw Error(`empty rev-list output`);return S&&Fe.log(`[gjsify flatpak sync-flathub] resolved ${a} → ${N}`),N}catch(n){throw Error(`[gjsify flatpak sync-flathub] tag ${a} not found locally. Run \`git fetch --tags\` or pass --commit <sha>.\n underlying error: ${n?.message??n}`)}}function normaliseBranchSegment(n){return n.replace(/^v/,``).replace(/[^A-Za-z0-9._-]/g,`-`)}function flathubCacheRoot(){return jo(process.env.XDG_CACHE_HOME||jo(homedir(),`.cache`),`gjsify`,`flathub-sync`)}async function ensureClone(n,a,S){if(existsSync(jo(n,`.git`))){S&&Fe.log(`[gjsify flatpak sync-flathub] reusing clone at ${n}`),await gitInRepo(n,[`fetch`,`origin`],S);let a=await detectDefaultBranch(n,S);await gitInRepo(n,[`checkout`,a],S),await gitInRepo(n,[`reset`,`--hard`,`origin/${a}`],S);return}mkdirSync(Oo(n,`..`),{recursive:!0});let C=`https://github.com/${a}.git`;S&&Fe.log(`[gjsify flatpak sync-flathub] git clone ${C} ${n}`);try{await FE(`git`,[`clone`,C,n])}catch(n){throw n?.code===`ENOENT`?Error("[gjsify flatpak sync-flathub] `git` not found. Install git from your distro (Fedora: `dnf install git`, Debian: `apt install git`)."):n}}async function detectDefaultBranch(n,a){try{let{stdout:S}=await FE(`git`,[`remote`,`show`,`origin`],{cwd:n}),C=S.match(/HEAD branch: (\S+)/);if(C&&C[1]&&C[1]!==`(unknown)`)return a&&Fe.log(`[gjsify flatpak sync-flathub] default branch → ${C[1]}`),C[1]}catch{}return`master`}function gitInRepo(n,a,S){return S&&Fe.log(`[gjsify flatpak sync-flathub] git ${a.join(` `)} (in ${n})`),new Promise((S,C)=>{let N=spawn(`git`,a,{cwd:n,stdio:`inherit`});N.on(`error`,n=>{n.code===`ENOENT`?C(Error("[gjsify flatpak sync-flathub] `git` not found. Install it from your distro.")):C(n)}),N.on(`exit`,n=>{n===0?S():C(Error(`git ${a[0]} exited ${n}`))})})}function ghCreate(n,a,S,C,N,F){let I=[`pr`,`create`,`--repo`,a,`--head`,S,`--title`,`Update to ${C}`,`--body`,N];return F&&Fe.log(`[gjsify flatpak sync-flathub] gh ${I.join(` `)} (in ${n})`),new Promise((a,S)=>{let C=spawn(`gh`,I,{cwd:n,stdio:`inherit`});C.on(`error`,n=>{n.code===`ENOENT`?S(Error("[gjsify flatpak sync-flathub] `gh` (GitHub CLI) not found. Install via `dnf install gh` (Fedora), `apt install gh` (Debian/Ubuntu), or `flatpak install -y flathub com.github.cli`.")):S(n)}),C.on(`exit`,n=>{n===0?a():S(Error(`gh pr create exited ${n}`))})})}function editManifest(n,a){let S=JSON.parse(n),C=S.modules??[];if(C.length===0)throw Error(`[gjsify flatpak sync-flathub] manifest has no modules`);let N=C[0].sources??[];if(N.length===0)throw Error(`[gjsify flatpak sync-flathub] modules[0] has no sources`);let F=a.sourceIndex??N.findIndex(n=>n.type===`git`);if(F<0||F>=N.length)throw Error(`[gjsify flatpak sync-flathub] no git source found in modules[0].sources (use --source-index <n>)`);let I=N[F];if(I.type!==`git`)throw Error(`[gjsify flatpak sync-flathub] modules[0].sources[${F}].type is "${I.type}", expected "git"`);I.tag=a.tag,I.commit=a.commit,I[`x-checker-data`]||={type:`git`,"tag-pattern":`^v(\\d+\\.\\d+\\.\\d+)$`,"version-scheme":`semantic`};let H=detectIndent$1(n);return JSON.stringify(S,null,H)+(n.endsWith(`
788
788
  `)?`
789
- `:``)}function detectIndent$1(n){let a=n.match(/^\{\n( +)/);return a?a[1].length:2}__name$1(detectIndent$1,`detectIndent`),Ie(),As(),Hx(),qc();const FE=promisify(execFile),IE={command:`diff`,description:`Compare the per-app Flathub tracking-repo manifest against the local git state and report version / commit drift.`,builder:n=>n.version(!1).option(`version`,{description:"Local version to compare against. Default: `git describe --tags --abbrev=0` in cwd.",type:`string`}).option(`app-id`,{description:"Reverse-DNS app id. Default: `gjsify.flatpak.appId`.",type:`string`}).option(`flathub-repo`,{description:"Flathub tracking-repo (owner/name). Default: `gjsify.flatpak.flathubRepo` or `flathub/<appId>`.",type:`string`}).option(`against`,{description:`Read the Flathub manifest from a local file instead of fetching it. Useful in CI or offline.`,type:`string`}).option(`detail`,{description:`Also print the full Flathub manifest source entry alongside the resolved local version.`,type:`boolean`,default:!1}).option(`source-index`,{description:`Index into modules[0].sources[] to inspect (when the manifest has multiple sources).`,type:`number`}).option(`verbose`,{description:`Echo fetch URL + resolved values.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=(await new Config().forBuild({}).catch(()=>({}))).flatpak??{},C=n.appId??S.appId??readPackageJson(a).name;if(!C)throw Error(`[gjsify flatpak diff] no app id available — pass --app-id or set gjsify.flatpak.appId.`);let N=n.flathubRepo??S.flathubRepo??`flathub/${C}`,F=n.version??await resolveLatestTag(a,n.verbose),I=await loadFlathubSource({appId:C,flathubRepo:N,against:n.against,verbose:n.verbose},n.sourceIndex),H=I?.tag,W=I?.commit;if(Fe.log(`[gjsify flatpak diff] appId=${C}`),Fe.log(`[gjsify flatpak diff] flathubRepo=${N}`),Fe.log(`[gjsify flatpak diff] flathub: tag=${H??`(missing)`} commit=${W??`(missing)`}`),Fe.log(`[gjsify flatpak diff] local: tag=${F??`(none)`}`),n.detail&&I&&(Fe.log(`[gjsify flatpak diff] flathub manifest source:`),Fe.log(JSON.stringify(I,null,2))),!F){Fe.warn("[gjsify flatpak diff] no local git tag found — cut a release (`git tag vX.Y.Z`) or pass --version vX.Y.Z to compare against an explicit value.");return}if(H||(Fe.warn("[gjsify flatpak diff] flathub manifest has no `tag` field on the inspected source."),process.exit(1)),H===F){Fe.log(`✅ in sync (${F})`);return}Fe.log(`❌ drift detected — flathub=${H} vs local=${F}`),Fe.log(` run \`gjsify flatpak sync-flathub --version ${F}\` to update the Flathub manifest.`),process.exit(1)}};async function loadFlathubSource(n,a){let S;if(n.against){if(!existsSync(n.against))throw Error(`[gjsify flatpak diff] --against path ${n.against} does not exist`);S=readFileSync(n.against,`utf-8`)}else S=await fetchFlathubManifest(n.flathubRepo,n.appId,n.verbose);let C;try{C=JSON.parse(S)}catch(n){throw Error(`[gjsify flatpak diff] failed to parse Flathub manifest as JSON: ${n.message}`)}let N=(C.modules??[])[0]?.sources??[];if(N.length===0)return null;let F=a??N.findIndex(n=>n?.type===`git`);return F<0||F>=N.length?null:N[F]??null}async function fetchFlathubManifest(n,a,S){for(let C of[`master`,`main`]){let N=`https://raw.githubusercontent.com/${n}/${C}/${a}.json`;S&&Fe.log(`[gjsify flatpak diff] fetch ${N}`);try{let n=await fetch(N);if(n.ok)return await n.text();S&&Fe.log(`[gjsify flatpak diff] ${C} → HTTP ${n.status}`)}catch(n){S&&Fe.log(`[gjsify flatpak diff] ${C} fetch error: ${n.message}`)}}throw Error(`[gjsify flatpak diff] could not fetch flathub manifest from ${n} on master or main`)}async function resolveLatestTag(n,a){try{let{stdout:S}=await FE(`git`,[`describe`,`--tags`,`--abbrev=0`],{cwd:n}),C=S.trim();return a&&Fe.log(`[gjsify flatpak diff] local latest tag → ${C}`),C||null}catch{return null}}Ie(),Hx(),qc(),rn(),Ho();const LE=promisify(execFile),RE={command:`release <version>`,description:"Cut a release end-to-end: regenerate Flathub assets, run linters, create + push the git tag, then open the Flathub PR. Each step delegates to the equivalent `gjsify flatpak <sub>` command.",builder:n=>n.version(!1).positional(`version`,{description:"Release tag, e.g. `v0.6.6`.",type:`string`,demandOption:!0}).option(`skip-init`,{description:"Skip the `flatpak init --force` regen step.",type:`boolean`,default:!1}).option(`skip-check`,{description:"Skip the `flatpak check` linter step.",type:`boolean`,default:!1}).option(`skip-tag`,{description:"Skip the `git tag` + `git push --tags` step (use when the tag was already created out-of-band).",type:`boolean`,default:!1}).option(`push-tag`,{description:`Push the created tag after creating it. Default: true.`,type:`boolean`,default:!0}).option(`flathub-repo`,{description:`Flathub tracking-repo override forwarded to sync-flathub.`,type:`string`}).option(`dry-run`,{description:`Print each step that would run without executing any of them.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Echo every sub-command invocation.`,type:`boolean`,default:!1}),handler:async n=>{let a=typeof n.version==`string`?n.version.trim():``;if(!a)throw Error(`[gjsify flatpak release] missing <version> positional`);let S=resolveCliEntry(),C=process.cwd(),N=[];n.skipInit||N.push({name:`init`,args:[S,`flatpak`,`init`,`--force`]}),n.skipCheck||N.push({name:`check`,args:[S,`flatpak`,`check`]});let F=[S,`flatpak`,`sync-flathub`,`--version`,a];if(n.flathubRepo&&F.push(`--flathub-repo`,n.flathubRepo),n.verbose&&F.push(`--verbose`),Fe.log(`[gjsify flatpak release] starting release of ${a}`),n.dryRun){Fe.log(`[gjsify flatpak release] --dry-run set; printing plan only:`);for(let n of N)Fe.log(` · ${n.name}: node ${n.args.join(` `)}`);n.skipTag||Fe.log(` · tag: git tag ${a}${n.pushTag===!1?``:` && git push origin `+a}`),Fe.log(` · sync: node ${F.join(` `)}`);return}for(let a of N)n.verbose&&Fe.log(`[gjsify flatpak release] step ${a.name}: node ${a.args.join(` `)}`),await runNode(a.args,C),Fe.log(`[gjsify flatpak release] ${a.name} ✔`);if(!n.skipTag){n.verbose&&Fe.log(`[gjsify flatpak release] git tag ${a}`);try{await LE(`git`,[`tag`,a],{cwd:C}),Fe.log(`[gjsify flatpak release] tag ${a} created`)}catch(n){throw Error(`[gjsify flatpak release] git tag failed (${n.message}). If the tag already exists, re-run with --skip-tag.`)}n.pushTag!==!1&&(n.verbose&&Fe.log(`[gjsify flatpak release] git push origin ${a}`),await LE(`git`,[`push`,`origin`,a],{cwd:C}),Fe.log(`[gjsify flatpak release] tag pushed`))}n.verbose&&Fe.log(`[gjsify flatpak release] sync: node ${F.join(` `)}`),await runNode(F,C),Fe.log(`[gjsify flatpak release] ✅ release ${a} complete`)}};function resolveCliEntry(){return Oo(Oo(Po(fileURLToPath(import.meta.url)),`..`,`..`),`index.js`)}async function runNode(n,a){await new Promise((S,C)=>{let N=spawn(`node`,n,{cwd:a,stdio:`inherit`});N.on(`error`,C),N.on(`exit`,a=>{a===0?S():C(Error(`sub-command exited with code ${a}: node ${n.join(` `)}`))})})}const zE={command:`flatpak <subcommand>`,description:`Flatpak toolchain: init/build/deps/ci/check/sync-flathub/diff/release subcommands for shipping GJS apps and CLIs as Flatpaks.`,builder:n=>n.command(OE.command,OE.description,OE.builder,OE.handler).command(kE.command,kE.description,kE.builder,kE.handler).command(AE.command,AE.description,AE.builder,AE.handler).command(jE.command,jE.description,jE.builder,jE.handler).command(ME.command,ME.description,ME.builder,ME.handler).command(PE.command,PE.description,PE.builder,PE.handler).command(IE.command,IE.description,IE.builder,IE.handler).command(RE.command,RE.description,RE.builder,RE.handler).demandCommand(1).strict()};As(),Ho();const BE=/^(?:@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;function parseSpec$1(n){if(!n)throw Error(`dlx: empty package spec`);if(n.startsWith(`./`)||n.startsWith(`../`)||Ao(n)||existsSync(n))return{kind:`local`,path:Oo(n)};let a=n,S,C=n.lastIndexOf(`@`);if(C>0&&(a=n.slice(0,C),S=n.slice(C+1)),!BE.test(a))throw Error(`dlx: invalid package name "${a}"`);return{kind:`registry`,name:a,version:S,spec:n}}__name$1(parseSpec$1,`parseSpec`),As(),Ho();function resolveGjsEntry(n,a){let S=jo(n,`package.json`);if(!existsSync(S))throw Error(`dlx: no package.json found at ${n}`);let C=JSON.parse(readFileSync(S,`utf-8`)),N=C.gjsify?.bin,F=C.gjsify?.main,I=C.main,H,W=null,K=!1;if(a!==null){if(!N||!N[a]){let S=N?Object.keys(N).join(`, `):`(none)`;throw Error(`dlx: package "${C.name??n}" has no GJS bin named "${a}" — known: ${S}`)}H=N[a],W=a}else if(N&&Object.keys(N).length===1){let n=Object.keys(N)[0];H=N[n],W=n}else F?H=F:I&&(H=I,K=!0);if(N&&Object.keys(N).length>1&&a===null){let a=Object.keys(N).join(`, `);throw Error(`dlx: package "${C.name??n}" defines multiple GJS bins — pass one of: ${a}`)}if(!H)throw Error(`dlx: package "${C.name??n}" has no GJS entry — set \`gjsify.main\` (or \`gjsify.bin\`) in its package.json`);let q=Oo(n,H);if(!existsSync(q))throw Error(`dlx: GJS entry not found: ${q}`);return{bundlePath:q,binName:W,fromFallback:K}}Ga(),As(),kp(),Ho();function lexCompare(n,a){return n<a?-1:+(n>a)}function createCacheKey(n){let a=[...n.packages].sort(lexCompare),S=Object.entries(n.registries??{}).sort(([n],[a])=>lexCompare(n,a)),C=JSON.stringify([a,S]);return createHash(`sha256`).update(C).digest(`hex`)}function dlxCacheRoot(){let n=process.env.XDG_CACHE_HOME,a=jo(n&&n.length>0?n:jo(homedir(),`.cache`),`gjsify`,`dlx`);return mkdirSync(a,{recursive:!0}),a}function cacheDirFor(n){let a=jo(dlxCacheRoot(),n);return mkdirSync(a,{recursive:!0}),a}function makePrepareDir(n){let a=jo(n,`${Date.now().toString(16)}-${process.pid.toString(16)}`);return mkdirSync(a,{recursive:!0}),a}function getValidCachedPkg(n,a=10080){let S=jo(n,`pkg`),C;try{C=lstatSync(S)}catch(n){if(n.code===`ENOENT`)return;throw n}if(!C.isSymbolicLink())return;let N;try{N=realpathSync(S)}catch{return}return Date.now()-C.mtime.getTime()<=a*6e4?N:void 0}function symlinkSwap(n,a){let S=jo(n,`pkg`),C=jo(n,`pkg.tmp-${Date.now().toString(16)}-${process.pid.toString(16)}`);try{symlinkSync(a,C,`dir`)}catch(n){throw n}try{renameSync(C,S)}catch(n){let a=n.code;if(a===`EBUSY`||a===`EPERM`||a===`EEXIST`){try{rmSync(C)}catch{}return realpathSync(S)}throw n}return realpathSync(S)}function resolveInstalledPkgDir(n,a){return Oo(n,`node_modules`,a)}function parse(n){try{return new SemVer(n)}catch{return null}}function satisfies(n,a){let S=a instanceof UE?a:new UE(a),C=n instanceof SemVer?n:parse(String(n));return C?S.test(C):!1}function maxSatisfying(n,a){let S=a instanceof UE?a:new UE(a),C=null;for(let a of n){let n=parse(a);!n||!S.test(n)||(C===null||n.compare(C)>0)&&(C=n)}return C?C.version:null}function testComparator(n,a){if(n.semver===null)return!0;let S=a.compare(n.semver);switch(n.operator){case``:case`=`:return S===0;case`<`:return S<0;case`<=`:return S<=0;case`>`:return S>0;case`>=`:return S>=0}}function formatComparator(n){return n.semver===null?`*`:`${n.operator}${n.semver.version}`}function parseRangePart(n){let a=n.trim();if(a===``||a===`*`||a.toLowerCase()===`latest`)return[{operator:`>=`,semver:new SemVer(`0.0.0`)}];let S=a.match(/^\s*(\S+)\s+-\s+(\S+)\s*$/);if(S)return hyphenRange(S[1],S[2]);let C=a.replace(/(<=|>=|<|>|=)\s+(?=\S)/g,`$1`).split(/\s+/),N=[];for(let n of C)N.push(...parseSimple(n));return N}function parseSimple(n){if(n===`*`||n===``||n.toLowerCase()===`latest`)return[{operator:`>=`,semver:new SemVer(`0.0.0`)}];if(n.startsWith(`^`))return caretRange(n.slice(1));if(n.startsWith(`~`))return tildeRange(n.slice(1).replace(/^>/,``));let a=n.match(/^(<=|>=|<|>|=)\s*(.+)$/);if(a){let n=a[1];return primitiveRange(n,a[2])}return partialRange(n)}function parsePartial(n){let a=n.trim().replace(/^v/,``);if(a===``||a===`*`)return{major:null,minor:null,patch:null,pre:``,build:``};let S=``,C=``,N=a,F=N.indexOf(`+`);F>=0&&(C=N.slice(F+1),N=N.slice(0,F));let I=N.indexOf(`-`);I>=0&&(S=N.slice(I+1),N=N.slice(0,I));let H=N.split(`.`),xr=a=>{if(a===void 0||a===``||a===`x`||a===`X`||a===`*`)return null;if(!/^\d+$/.test(a))throw TypeError(`Invalid partial version: ${n}`);return Number(a)};return{major:xr(H[0]),minor:xr(H[1]),patch:xr(H[2]),pre:S,build:C}}function partialToVersion(n){return`${n.major??0}.${n.minor??0}.${n.patch??0}${n.pre?`-${n.pre}`:``}${n.build?`+${n.build}`:``}`}function partialRange(n){let a=parsePartial(n);return a.major===null?[{operator:`>=`,semver:new SemVer(`0.0.0`)}]:a.minor===null?[{operator:`>=`,semver:new SemVer(`${a.major}.0.0`)},{operator:`<`,semver:new SemVer(`${a.major+1}.0.0`)}]:a.patch===null?[{operator:`>=`,semver:new SemVer(`${a.major}.${a.minor}.0`)},{operator:`<`,semver:new SemVer(`${a.major}.${a.minor+1}.0`)}]:[{operator:`=`,semver:new SemVer(partialToVersion(a))}]}function caretRange(n){let a=parsePartial(n);if(a.major===null)return[{operator:`>=`,semver:new SemVer(`0.0.0`)}];let S=`${a.major}.${a.minor??0}.${a.patch??0}${a.pre?`-${a.pre}`:``}`,C;return C=a.major>0||a.minor===null?`${a.major+1}.0.0`:a.minor>0||a.patch===null?`0.${a.minor+1}.0`:`0.0.${a.patch+1}`,[{operator:`>=`,semver:new SemVer(S)},{operator:`<`,semver:new SemVer(C)}]}function tildeRange(n){let a=parsePartial(n);if(a.major===null)return[{operator:`>=`,semver:new SemVer(`0.0.0`)}];let S=`${a.major}.${a.minor??0}.${a.patch??0}${a.pre?`-${a.pre}`:``}`,C=a.minor===null?`${a.major+1}.0.0`:`${a.major}.${a.minor+1}.0`;return[{operator:`>=`,semver:new SemVer(S)},{operator:`<`,semver:new SemVer(C)}]}function primitiveRange(n,a){let S=parsePartial(a);return S.major===null?[{operator:`>=`,semver:new SemVer(`0.0.0`)}]:n===`=`||n===``?partialRange(a):n===`>`?S.minor===null?[{operator:`>=`,semver:new SemVer(`${S.major+1}.0.0`)}]:S.patch===null?[{operator:`>=`,semver:new SemVer(`${S.major}.${S.minor+1}.0`)}]:[{operator:`>`,semver:new SemVer(partialToVersion(S))}]:n===`<`?S.minor===null?[{operator:`<`,semver:new SemVer(`${S.major}.0.0`)}]:S.patch===null?[{operator:`<`,semver:new SemVer(`${S.major}.${S.minor}.0`)}]:[{operator:`<`,semver:new SemVer(partialToVersion(S))}]:n===`>=`?[{operator:`>=`,semver:new SemVer(partialToVersion(S))}]:S.minor===null?[{operator:`<`,semver:new SemVer(`${S.major+1}.0.0`)}]:S.patch===null?[{operator:`<`,semver:new SemVer(`${S.major}.${S.minor+1}.0`)}]:[{operator:`<=`,semver:new SemVer(partialToVersion(S))}]}function hyphenRange(n,a){let S=parsePartial(n),C=parsePartial(a),N=S.major===null?{operator:`>=`,semver:new SemVer(`0.0.0`)}:{operator:`>=`,semver:new SemVer(`${S.major}.${S.minor??0}.${S.patch??0}${S.pre?`-${S.pre}`:``}`)},F;return F=C.major===null?{operator:`>=`,semver:new SemVer(`0.0.0`)}:C.minor===null?{operator:`<`,semver:new SemVer(`${C.major+1}.0.0`)}:C.patch===null?{operator:`<`,semver:new SemVer(`${C.major}.${C.minor+1}.0`)}:{operator:`<=`,semver:new SemVer(`${C.major}.${C.minor}.${C.patch}${C.pre?`-${C.pre}`:``}`)},[N,F]}var VE,HE,SemVer,UE,WE=__esmMin(()=>{VE=/^(0|[1-9]\d*)$/,HE=/^(\d+)\.(\d+)\.(\d+)(?:-((?:[0-9A-Za-z-]+)(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/,SemVer=class{major;minor;patch;prerelease;build;version;constructor(n){let a=String(n).trim().replace(/^v/,``),S=HE.exec(a);if(!S)throw TypeError(`Invalid Version: ${n}`);this.major=Number(S[1]),this.minor=Number(S[2]),this.patch=Number(S[3]),this.prerelease=S[4]?S[4].split(`.`).map(n=>VE.test(n)?Number(n):n):[],this.build=S[5]?S[5].split(`.`):[],this.version=`${this.major}.${this.minor}.${this.patch}`+(this.prerelease.length?`-${this.prerelease.join(`.`)}`:``)+(this.build.length?`+${this.build.join(`.`)}`:``)}compare(n){return this.major===n.major?this.minor===n.minor?this.patch===n.patch?this.comparePre(n):this.patch<n.patch?-1:1:this.minor<n.minor?-1:1:this.major<n.major?-1:1}comparePre(n){let a=this.prerelease,S=n.prerelease;if(a.length===0&&S.length===0)return 0;if(a.length===0)return 1;if(S.length===0)return-1;for(let n=0;;n++){let C=a[n],N=S[n];if(C===void 0&&N===void 0)return 0;if(N===void 0)return 1;if(C===void 0)return-1;if(C===N)continue;let F=typeof C==`number`,I=typeof N==`number`;return F&&!I?-1:!F&&I?1:C<N?-1:1}}toString(){return this.version}},UE=class Range{raw;set;constructor(n){if(n instanceof Range){this.raw=n.raw,this.set=n.set;return}this.raw=String(n).trim();let a=this.raw.split(/\s*\|\|\s*/),S=[];for(let n of a){let a=parseRangePart(n);if(a.length===0)throw TypeError(`Invalid range: ${this.raw}`);S.push(a)}if(S.length===0)throw TypeError(`Invalid range: ${this.raw}`);this.set=S}test(n){let a=n instanceof SemVer?n:parse(String(n));if(!a)return!1;for(let n of this.set)if(n.every(n=>testComparator(n,a))){if(a.prerelease.length>0&&!n.some(n=>n.semver!==null&&n.semver.prerelease.length>0&&n.semver.major===a.major&&n.semver.minor===a.minor&&n.semver.patch===a.patch))continue;return!0}return!1}format(){return this.set.map(n=>n.map(formatComparator).join(` `)).join(` || `)}toString(){return this.format()}}});function assertPackument(n,a){if(!a||typeof a!=`object`)throw TypeError(`registry: ${n} packument is not an object`);let S=a;if(typeof S.name!=`string`)throw TypeError(`registry: ${n} packument missing string name`);if(!S.versions||typeof S.versions!=`object`)throw TypeError(`registry: ${n} packument missing versions map`)}function registryFor(n,a){if(a&&n.startsWith(`@`)){let S=n.slice(0,n.indexOf(`/`)),C=a.scopes[S];if(C)return ensureTrailingSlash$1(C)}return a?.registry?ensureTrailingSlash$1(a.registry):GE}function packumentUrl(n,a){let S=ensureTrailingSlash$1(a);if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a<0)throw TypeError(`Invalid scoped package name: ${n}`);let C=n.slice(0,a),N=n.slice(a+1);return`${S}${encodeURIComponent(C)}/${encodeURIComponent(N)}`}return`${S}${encodeURIComponent(n)}`}async function fetchPackument(n,a={}){let S=packumentUrl(n,a.registry??registryFor(n,a.npmrc)),C=buildHeaders(S,a);C.accept??=`application/vnd.npm.install-v1+json`;let N=await fetchWithRetry(S,{headers:C,signal:a.signal},a);if(!N.ok)throw N.status===404||N.status===406?new PackageNotFoundError(n,S):Error(`registry GET ${S} -> ${N.status} ${N.statusText}`);let F=await N.json();return assertPackument(n,F),F}async function fetchTarball(n,a={}){let S=buildHeaders(n,a);S.accept??=`application/octet-stream`;let C=await fetchWithRetry(n,{headers:S,signal:a.signal},a);if(!C.ok)throw Error(`tarball GET ${n} -> ${C.status} ${C.statusText}`);let N=new Uint8Array(await C.arrayBuffer());if(a.integrity&&!await verifyIntegrity(N,a.integrity))throw new IntegrityError(n,a.integrity);return N}async function fetchWithRetry(n,a,S){let C=S.fetch??globalThis.fetch;if(!C)throw Error(`@gjsify/npm-registry: globalThis.fetch is missing`);let N=Math.max(0,S.retries??3),F=Math.max(0,S.retryDelayMs??250),I=0,H;for(;;){if(a.signal?.aborted)throw signalAbortError(a.signal);try{let S=await C(n,a);if(S.ok||!isRetryableStatus(S.status)||I>=N)return S;try{await S.arrayBuffer()}catch{}H=Error(`HTTP ${S.status} ${S.statusText}`)}catch(n){if(!isRetryableError(n)||I>=N)throw n;H=n}let W=Math.min(F*2**I,8e3);S.onRetry?.({attempt:I+1,error:H,delayMs:W}),await delay(W,a.signal),I++}}function isRetryableStatus(n){return n===408||n===425||n===429||n===500||n===502||n===503||n===504||n===521||n===522||n===524||n===525}function isRetryableError(n){if(n&&typeof n==`object`&&`name`in n&&n.name===`AbortError`)return!1;if(n instanceof TypeError)return!0;if(n&&typeof n==`object`&&`name`in n){let a=n.name;if(a===`FetchError`)return!0;if(a===`AbortError`)return!1}let a=n?.cause;if(a&&typeof a==`object`&&`code`in a){let n=a.code;if(typeof n==`string`)return n===`ECONNRESET`||n===`ECONNREFUSED`||n===`ENETUNREACH`||n===`ENOTFOUND`||n===`ETIMEDOUT`||n===`EAI_AGAIN`||n===`UND_ERR_SOCKET`||n===`UND_ERR_CONNECT_TIMEOUT`}return!1}function delay(n,a){return n<=0?Promise.resolve():new Promise((S,C)=>{let N=setTimeout(()=>{a?.removeEventListener?.(`abort`,onAbort),S()},n),onAbort=()=>{clearTimeout(N),C(signalAbortError(a))};if(a?.aborted){clearTimeout(N),C(signalAbortError(a));return}a?.addEventListener?.(`abort`,onAbort,{once:!0})})}function signalAbortError(n){let a=n&&`reason`in n?n.reason:void 0;if(a instanceof Error)return a;let S=Error(`Aborted`);return S.name=`AbortError`,S}async function verifyIntegrity(n,a){let S=a.trim().split(/\s+/);for(let a of S){let S=a.indexOf(`-`);if(S<0)continue;let C=a.slice(0,S).toLowerCase(),N=a.slice(S+1),F=globalThis.crypto?.subtle;if(!F)throw Error(`@gjsify/npm-registry: globalThis.crypto.subtle is missing`);let I=subriToWebCryptoAlgo(C);if(!I)continue;let H=await F.digest(I,dataAsArrayBuffer(n));if(bytesToBase64(new Uint8Array(H))===N)return!0}return!1}function subriToWebCryptoAlgo(n){switch(n){case`sha1`:return`SHA-1`;case`sha256`:return`SHA-256`;case`sha384`:return`SHA-384`;case`sha512`:return`SHA-512`;default:return null}}function dataAsArrayBuffer(n){if(n.byteOffset===0&&n.byteLength===n.buffer.byteLength)return n.buffer;let a=new Uint8Array(n.byteLength);return a.set(n),a.buffer}function bytesToBase64(n){let a=``;for(let S=0;S<n.length;S++)a+=String.fromCharCode(n[S]);return btoa(a)}function parseNpmrc(n){let a={registry:GE,scopes:{},authTokens:{},basicAuth:{}},S=n.split(/\r?\n/),C={};for(let n of S){let S=n.replace(/^\s+|\s+$/g,``);if(!S||S.startsWith(`#`)||S.startsWith(`;`))continue;let N=S.indexOf(`=`);if(N<0)continue;let F=S.slice(0,N).trim(),I=expandEnv(stripQuotes(S.slice(N+1).trim()));if(F===`registry`){a.registry=ensureTrailingSlash$1(I);continue}let H=F.match(/^(@[^:]+):registry$/);if(H){a.scopes[H[1]]=ensureTrailingSlash$1(I);continue}let W=F.match(/^\/\/(.+):_authToken$/);if(W){a.authTokens[normalizeAuthHost(W[1])]=I;continue}let K=F.match(/^\/\/(.+):username$/);if(K){(C[normalizeAuthHost(K[1])]??={}).user=I;continue}let q=F.match(/^\/\/(.+):_password$/);if(q){let n=base64Decode(I);(C[normalizeAuthHost(q[1])]??={}).pass=n;continue}}for(let[n,S]of Object.entries(C))S.user&&S.pass!==void 0&&(a.basicAuth[n]={username:S.user,password:S.pass});return a}function buildHeaders(n,a){let S={"user-agent":`gjsify-install/0.3.7`,"accept-encoding":`identity`};if(a.npmrc){let C=resolveAuthForUrl(n,a.npmrc);C&&(S.authorization=C)}if(a.headers)for(let[n,C]of Object.entries(a.headers))S[n.toLowerCase()]=C;return S}function resolveAuthForUrl(n,a){let S=pathPrefixes(new URL(n));for(let n of S){let S=a.authTokens[n];if(S)return`Bearer ${S}`;let C=a.basicAuth[n];if(C)return`Basic ${btoa(`${C.username}:${C.password}`)}`}return null}function pathPrefixes(n){let a=n.pathname.split(`/`).filter(Boolean),S=[];for(let C=a.length;C>=0;C--){let N=a.slice(0,C).join(`/`);S.push(N?`//${n.host}/${N}`:`//${n.host}`)}return S}function normalizeAuthHost(n){return`//${n.replace(/\/+$/,``)}`}function ensureTrailingSlash$1(n){return n.endsWith(`/`)?n:n+`/`}function stripQuotes(n){return n.startsWith(`"`)&&n.endsWith(`"`)||n.startsWith(`'`)&&n.endsWith(`'`)?n.slice(1,-1):n}function expandEnv(n){return n.replace(/\$\{([A-Z0-9_]+)\}/gi,(n,a)=>globalThis.process?.env?.[a]??``)}function base64Decode(n){return atob(n)}var GE,PackageNotFoundError,IntegrityError,KE=__esmMin(()=>{GE=`https://registry.npmjs.org/`,__name$1(ensureTrailingSlash$1,`ensureTrailingSlash`),PackageNotFoundError=class extends Error{name;url;constructor(n,a){super(`Package not found in registry: ${n} (${a})`),this.name=n,this.url=a,this.name=`PackageNotFoundError`}},IntegrityError=class extends Error{url;integrity;constructor(n,a){super(`Tarball integrity mismatch for ${n} (expected ${a})`),this.url=n,this.integrity=a,this.name=`IntegrityError`}}});function parseTar(n){let a=[],S=null,C=null,N=null,F=0;for(;F+512<=n.length;){let I=n.subarray(F,F+512);if(allZeros(I)){let a=n.subarray(F+512,F+2*512);if(a.length===512&&allZeros(a))break;F+=512;continue}if(!validateChecksum(I))throw new TarParseError(`Bad header checksum at offset ${F} — file is not a valid tar archive`);let H=readString(I,0,100),W=parseOctal(I,100,8),K=parseOctal(I,124,12),q=parseOctal(I,136,12),Y=String.fromCharCode(I[156]||0),X=readString(I,157,100),te=readString(I,257,6),ne=readString(I,345,155),re=readString(I,265,32),ie=readString(I,297,32);F+=512;let ae=n.subarray(F,F+K);if(F+=alignToBlock(K),Y===`x`){S=parsePaxRecords(ae);continue}if(Y===`g`)continue;if(Y===`L`){C=bytesToString(ae).replace(/\0+$/,``);continue}if(Y===`K`){N=bytesToString(ae).replace(/\0+$/,``);continue}let oe=H;te===`ustar`&&ne!==``&&(oe=`${ne}/${H}`),C!==null&&(oe=C,C=null);let Z=X;if(N!==null&&(Z=N,N=null),S!==null){let C=S.get(`path`);C!==void 0&&(oe=C);let N=S.get(`linkpath`);N!==void 0&&(Z=N);let I=S.get(`size`);if(I!==void 0){let C=Number(I);if(Number.isFinite(C)){let N=F-alignToBlock(K),I=n.subarray(N,N+C);F=N+alignToBlock(C),S=null,a.push(buildEntry(oe,Z,Y,W,q,re,ie,I));continue}}S=null}a.push(buildEntry(oe,Z,Y,W,q,re,ie,ae))}return a}function buildEntry(n,a,S,C,N,F,I,H){return{name:n,linkname:a,type:typeflagToType(S,n),mode:C,mtime:N,body:H,uname:F,gname:I}}function typeflagToType(n,a){switch(n){case`0`:case`\0`:case``:return a.endsWith(`/`)?`directory`:`file`;case`1`:return`hardlink`;case`2`:return`symlink`;case`5`:return`directory`;case`x`:return`pax-header`;case`g`:return`pax-global`;case`L`:return`gnu-longname`;case`K`:return`gnu-longlink`;default:return`unknown`}}function parsePaxRecords(n){let a=new Map,S=0;for(;S<n.length;){let C=S;for(;C<n.length&&n[C]!==32;)C++;if(C>=n.length)break;let N=bytesToString(n.subarray(S,C)),F=Number(N);if(!Number.isFinite(F)||F<=0)break;let I=S+F;if(I>n.length)break;let H=bytesToString(n.subarray(C+1,I-1)),W=H.indexOf(`=`);if(W>0){let n=H.slice(0,W),S=H.slice(W+1);a.set(n,S)}S=I}return a}function readString(n,a,S){let C=a,N=a+S;for(;C<N&&n[C]!==0;)C++;return bytesToString(n.subarray(a,C))}function bytesToString(n){return new TextDecoder(`utf-8`,{fatal:!1}).decode(n)}function parseOctal(n,a,S){if(S>0&&n[a]&128){let C=n[a]&127;for(let N=1;N<S;N++)C=C*256+n[a+N];return C}let C=``;for(let N=0;N<S;N++){let S=n[a+N];S===0||S===32||(C+=String.fromCharCode(S))}return C===``?0:parseInt(C,8)}function alignToBlock(n){return Math.ceil(n/512)*512}function allZeros(n){for(let a=0;a<n.length;a++)if(n[a]!==0)return!1;return!0}function validateChecksum(n){let a=parseOctal(n,148,8),S=0,C=0;for(let a=0;a<512;a++){let N=a>=148&&a<156?32:n[a];S+=N,C+=N>127?N-256:N}return a===S||a===C}var TarParseError,qE=__esmMin(()=>{TarParseError=class extends Error{constructor(n){super(n),this.name=`TarParseError`}}});function createTarball(n){let a=[];for(let S of n){if(`directory`in S&&S.directory===!0){a.push(buildHeader(ensureTrailingSlash(S.name),0,`5`,S.mode??493,S.mtime??0));continue}let n=S,C=typeof n.body==`string`?new TextEncoder().encode(n.body):n.body,N=n.mode??defaultFileMode(C);a.push(buildHeader(n.name,C.byteLength,`0`,N,n.mtime??0)),a.push(C);let F=padTo512(C.byteLength);F>0&&a.push(new Uint8Array(F))}return a.push(new Uint8Array(512*2)),concatChunks(a)}function buildHeader(n,a,S,C,N){let{prefix:F,basename:I}=splitPathForUstar(n),H=new Uint8Array(512);writeAscii(H,I,0,100),writeOctal(H,C&4095,100,7),H[107]=0,writeOctal(H,0,108,7),H[115]=0,writeOctal(H,0,116,7),H[123]=0,writeOctal(H,a,124,11),H[135]=0,writeOctal(H,N,136,11),H[147]=0;for(let n=148;n<156;n++)H[n]=32;H[156]=S.charCodeAt(0),writeAscii(H,`ustar\0`,257,6),writeAscii(H,`00`,263,2),F&&writeAscii(H,F,345,155);let W=0;for(let n=0;n<512;n++)W+=H[n];return writeAscii(H,W.toString(8).padStart(6,`0`),148,6),H[154]=0,H[155]=32,H}function splitPathForUstar(n){if(n.length<=100)return{prefix:``,basename:n};if(n.length>255)throw Error(`createTarball: path too long (${n.length} > 255 chars): ${n}`);for(let a=Math.min(n.length-1,155);a>0;a--)if(n[a]===`/`&&n.length-a-1<=100)return{prefix:n.slice(0,a),basename:n.slice(a+1)};throw Error(`createTarball: cannot split path into ustar prefix+basename (basename slot is 100 chars): ${n}`)}function writeAscii(n,a,S,C){let N=new TextEncoder().encode(a);if(N.length>C)throw Error(`createTarball: field too long (${N.length} > ${C}): "${a}"`);n.set(N,S)}function writeOctal(n,a,S,C){writeAscii(n,a.toString(8).padStart(C,`0`),S,C)}function padTo512(n){let a=n%512;return a===0?0:512-a}function ensureTrailingSlash(n){return n.endsWith(`/`)?n:`${n}/`}function defaultFileMode(n){return n.length>=2&&n[0]===35&&n[1]===33?493:420}function concatChunks(n){let a=0;for(let S of n)a+=S.byteLength;let S=new Uint8Array(a),C=0;for(let a of n)S.set(a,C),C+=a.byteLength;return S}var JE=__esmMin(()=>{});async function extractTarball(n,a,S={}){let C=n instanceof Uint8Array?n:new Uint8Array(n),N=parseTar(S.gzip??(C.length>=2&&C[0]===31&&C[1]===139)?await gunzip(C):C);mkdirSync(a,{recursive:!0});let F=S.strip??1,I=S.preventEscape??!0,H={files:[],directories:[],symlinks:[],skipped:0};for(let n of N){let C=stripComponents(n.name,F);if(C===null||C===``){H.skipped++;continue}let N=Oo(a,C);if(I&&!isInside(N,a))throw Error(`tar: refusing to extract ${n.name} outside ${a} (resolved=${N})`);if(S.filter&&!S.filter(n,N)){H.skipped++;continue}if(n.type===`directory`){mkdirSync(N,{recursive:!0}),H.directories.push(N);continue}if(n.type===`file`){mkdirSync(Po(N),{recursive:!0}),writeFileSync(N,n.body);let a=S.chmod?.(n,N)??n.mode&511;if(a>0)try{chmodSync(N,a)}catch{}H.files.push(N);continue}if(n.type===`symlink`){mkdirSync(Po(N),{recursive:!0});try{symlinkSync(n.linkname,N),H.symlinks.push(N)}catch{writeFileSync(N,n.linkname),H.files.push(N)}continue}H.skipped++}return H}async function gunzip(n){let a=globalThis.DecompressionStream;if(typeof a!=`function`)throw Error(`@gjsify/tar: globalThis.DecompressionStream is not available — import '@gjsify/compression-streams/register' on GJS to register it`);return drainStream(new Blob([new Uint8Array(n)]).stream().pipeThrough(new a(`gzip`)))}async function gzip(n){let a=globalThis.CompressionStream;if(typeof a!=`function`)throw Error(`@gjsify/tar: globalThis.CompressionStream is not available — import '@gjsify/compression-streams/register' on GJS to register it`);return drainStream(new Blob([new Uint8Array(n)]).stream().pipeThrough(new a(`gzip`)))}async function drainStream(n){let a=[],S=0,C=n.getReader();for(;;){let{value:n,done:N}=await C.read();if(N)break;let F=n instanceof Uint8Array?n:new Uint8Array(n);a.push(F),S+=F.length}let N=new Uint8Array(S),F=0;for(let n of a)N.set(n,F),F+=n.length;return N}function stripComponents(n,a){if(a<=0)return n;let S=n.split(`/`).filter(n=>n!==``);return S.length<=a?null:S.slice(a).join(`/`)}function isInside(n,a){let S=Mo(a,n);return S!==``&&!S.startsWith(`..`)&&!Ao(S)}var YE=__esmMin(()=>{qE(),As(),Ho()}),XE=__exportAll$3({BLOCK_SIZE:()=>512,TarParseError:()=>TarParseError,createTarball:()=>createTarball,extractTarball:()=>extractTarball,gunzip:()=>gunzip,gzip:()=>gzip,parseTar:()=>parseTar}),ZE=__esmMin(()=>{qE(),JE(),YE()}),QE=__exportAll$3({installPackagesNative:()=>installPackagesNative,parseSpec:()=>parseSpec,pickVersion:()=>pickVersion});async function installPackagesNative(n){if(n.specs.length===0)throw Error(`installPackagesNative: empty specs list`);mkdirSync(n.prefix,{recursive:!0});let a=await loadNpmrc$1(n),S=makeLogger(n.verbose??!1),C=jo(n.prefix,eD),N=readLockfile(C),F;if(n.frozen){if(!N)throw Error(`install: --immutable requires ${eD} at ${n.prefix} — none found. Run \`gjsify install\` (without --immutable) to generate one and commit it.`);let a=describeLockfileDrift(N,n.specs);if(a)throw Error(`install: --immutable but ${C} is stale.\n${a}\nRe-run \`gjsify install\` (without --immutable) to refresh the lockfile.`);S(`install: --immutable, using lockfile (%d package(s))`,Object.keys(N.packages).length),F=lockfileToNodes(N)}else N&&lockfileMatchesRequest(N,n.specs)?(S(`install: using lockfile (%d package(s))`,Object.keys(N.packages).length),F=lockfileToNodes(N)):(S(`install: resolving %d top-level spec(s) → %s`,n.specs.length,n.prefix),F=await resolveDeps(n.specs,a,S,n.overrides,n.skipDeps),n.lockfile&&(writeLockfile(C,n.specs,F),S(`install: wrote %s (%d entries)`,eD,F.length)));return S(`install: downloading %d tarball(s)`,F.length),await downloadAndExtractAll(F,n.prefix,a,S),await linkBins(F,n.prefix,S),S(`install: done`),topLevelResolutions(n.specs,F)}function errMsg(n){return n instanceof Error?n.message:String(n)}function topLevelResolutions(n,a){let S=new Map;for(let n of a)n.installPath===`node_modules/${n.name}`&&S.set(n.name,n);let C=[];for(let a of n){let n=parseSpecName(a),N=S.get(n);N&&C.push({name:N.name,version:N.version})}return C}function parseSpecName(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a===-1)return n;let S=n.indexOf(`@`,a+1);return S===-1?n:n.slice(0,S)}let a=n.indexOf(`@`);return a===-1?n:n.slice(0,a)}async function resolveDeps(n,a,S,C,N){let applyOverride=(n,a)=>{if(!C)return a;let N=C[n];return typeof N!=`string`||N.length===0||N===a?a:(S(`install: override %s %s → %s`,n,a,N),N)},F=new Map,fetchPkg=n=>{let C=F.get(n);if(C)return C;let N=fetchPackument(n,{npmrc:a,onRetry:({attempt:a,error:C,delayMs:N})=>{S(`packument %s: retry %d after %dms (%s)`,n,a,N,errMsg(C))}});return F.set(n,N),N},I=new Map,H=new Map,W=n.map(parseSpec).map(n=>({from:null,name:n.name,range:applyOverride(n.name,n.range),required:!0}));for(;W.length>0;){let n=W.shift(),a=findVisible(n.from,n.name,I);if(a&&satisfiesRange(a.version,n.range))continue;let C=null;try{let a=await fetchPkg(n.name);if(C=pickVersion(a,n.range),!C){if(!n.required)continue;throw Error(`No version of ${n.name} satisfies ${n.range}`)}let F=a.versions[C];if(!F)throw Error(`Packument for ${n.name} promised ${C} but no entry exists`);let K=decidePlacement(n.from,n.name,C,H),q={name:n.name,version:C,tarballUrl:F.dist.tarball,integrity:F.dist.integrity,installPath:K,dependencies:F.dependencies??{},optionalDependencies:F.optionalDependencies??{},bin:F.bin};if(I.set(K,q),K===`node_modules/${n.name}`&&H.set(n.name,q),S(`resolve: %s@%s ← %s (at %s)`,n.name,C,n.range,K),!N){for(let[n,a]of Object.entries(q.dependencies))W.push({from:K,name:n,range:applyOverride(n,a),required:!0});for(let[n,a]of Object.entries(q.optionalDependencies))W.push({from:K,name:n,range:applyOverride(n,a),required:!1})}}catch(a){if(!n.required){S(`resolve: optional dep %s@%s skipped (%s)`,n.name,n.range,a.message);continue}throw a}}return Array.from(I.values())}function findVisible(n,a,S){let C=[];if(n!==null){C.push(`${n}/node_modules/${a}`);let S=n;for(;;){let n=S.lastIndexOf(`/node_modules/`);if(n<0||(S=S.slice(0,n),C.push(`${S}/node_modules/${a}`),S===``))break}}C.push(`node_modules/${a}`);for(let n of C){let a=S.get(n);if(a)return a}return null}function decidePlacement(n,a,S,C){let N=C.get(a);return!N||N.version===S||n===null?`node_modules/${a}`:`${n}/node_modules/${a}`}function satisfiesRange(n,a){try{return satisfies(n,new UE(a))}catch{return!1}}function readLockfile(n){if(!existsSync(n))return null;try{let a=JSON.parse(readFileSync(n,`utf-8`));return a.lockfileVersion!==tD||!a.packages||typeof a.packages!=`object`?null:a}catch{return null}}function writeLockfile(n,a,S){let C={},N=[...S].sort((n,a)=>n.installPath<a.installPath?-1:+(n.installPath>a.installPath));for(let n of N)C[n.installPath]={version:n.version,resolved:n.tarballUrl,integrity:n.integrity,dependencies:Object.keys(n.dependencies).length>0?n.dependencies:void 0,bin:n.bin};let F={lockfileVersion:tD,requested:[...a],packages:C};writeFileSync(n,JSON.stringify(F,null,2)+`
789
+ `:``)}function detectIndent$1(n){let a=n.match(/^\{\n( +)/);return a?a[1].length:2}__name$1(detectIndent$1,`detectIndent`),Ie(),As(),Hx(),qc();const LE=promisify(execFile),RE={command:`diff`,description:`Compare the per-app Flathub tracking-repo manifest against the local git state and report version / commit drift.`,builder:n=>n.version(!1).option(`version`,{description:"Local version to compare against. Default: `git describe --tags --abbrev=0` in cwd.",type:`string`}).option(`app-id`,{description:"Reverse-DNS app id. Default: `gjsify.flatpak.appId`.",type:`string`}).option(`flathub-repo`,{description:"Flathub tracking-repo (owner/name). Default: `gjsify.flatpak.flathubRepo` or `flathub/<appId>`.",type:`string`}).option(`against`,{description:`Read the Flathub manifest from a local file instead of fetching it. Useful in CI or offline.`,type:`string`}).option(`detail`,{description:`Also print the full Flathub manifest source entry alongside the resolved local version.`,type:`boolean`,default:!1}).option(`source-index`,{description:`Index into modules[0].sources[] to inspect (when the manifest has multiple sources).`,type:`number`}).option(`verbose`,{description:`Echo fetch URL + resolved values.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=(await new Config().forBuild({}).catch(()=>({}))).flatpak??{},C=n.appId??S.appId??readPackageJson(a).name;if(!C)throw Error(`[gjsify flatpak diff] no app id available — pass --app-id or set gjsify.flatpak.appId.`);let N=n.flathubRepo??S.flathubRepo??`flathub/${C}`,F=n.version??await resolveLatestTag(a,n.verbose),I=await loadFlathubSource({appId:C,flathubRepo:N,against:n.against,verbose:n.verbose},n.sourceIndex),H=I?.tag,W=I?.commit;if(Fe.log(`[gjsify flatpak diff] appId=${C}`),Fe.log(`[gjsify flatpak diff] flathubRepo=${N}`),Fe.log(`[gjsify flatpak diff] flathub: tag=${H??`(missing)`} commit=${W??`(missing)`}`),Fe.log(`[gjsify flatpak diff] local: tag=${F??`(none)`}`),n.detail&&I&&(Fe.log(`[gjsify flatpak diff] flathub manifest source:`),Fe.log(JSON.stringify(I,null,2))),!F){Fe.warn("[gjsify flatpak diff] no local git tag found — cut a release (`git tag vX.Y.Z`) or pass --version vX.Y.Z to compare against an explicit value.");return}if(H||(Fe.warn("[gjsify flatpak diff] flathub manifest has no `tag` field on the inspected source."),process.exit(1)),H===F){Fe.log(`✅ in sync (${F})`);return}Fe.log(`❌ drift detected — flathub=${H} vs local=${F}`),Fe.log(` run \`gjsify flatpak sync-flathub --version ${F}\` to update the Flathub manifest.`),process.exit(1)}};async function loadFlathubSource(n,a){let S;if(n.against){if(!existsSync(n.against))throw Error(`[gjsify flatpak diff] --against path ${n.against} does not exist`);S=readFileSync(n.against,`utf-8`)}else S=await fetchFlathubManifest(n.flathubRepo,n.appId,n.verbose);let C;try{C=JSON.parse(S)}catch(n){throw Error(`[gjsify flatpak diff] failed to parse Flathub manifest as JSON: ${n.message}`)}let N=(C.modules??[])[0]?.sources??[];if(N.length===0)return null;let F=a??N.findIndex(n=>n?.type===`git`);return F<0||F>=N.length?null:N[F]??null}async function fetchFlathubManifest(n,a,S){for(let C of[`master`,`main`]){let N=`https://raw.githubusercontent.com/${n}/${C}/${a}.json`;S&&Fe.log(`[gjsify flatpak diff] fetch ${N}`);try{let n=await fetch(N);if(n.ok)return await n.text();S&&Fe.log(`[gjsify flatpak diff] ${C} → HTTP ${n.status}`)}catch(n){S&&Fe.log(`[gjsify flatpak diff] ${C} fetch error: ${n.message}`)}}throw Error(`[gjsify flatpak diff] could not fetch flathub manifest from ${n} on master or main`)}async function resolveLatestTag(n,a){try{let{stdout:S}=await LE(`git`,[`describe`,`--tags`,`--abbrev=0`],{cwd:n}),C=S.trim();return a&&Fe.log(`[gjsify flatpak diff] local latest tag → ${C}`),C||null}catch{return null}}Ie(),Hx(),qc(),rn(),Ho();const zE=promisify(execFile),BE={command:`release <version>`,description:"Cut a release end-to-end: regenerate Flathub assets, run linters, create + push the git tag, then open the Flathub PR. Each step delegates to the equivalent `gjsify flatpak <sub>` command.",builder:n=>n.version(!1).positional(`version`,{description:"Release tag, e.g. `v0.6.6`.",type:`string`,demandOption:!0}).option(`skip-init`,{description:"Skip the `flatpak init --force` regen step.",type:`boolean`,default:!1}).option(`skip-check`,{description:"Skip the `flatpak check` linter step.",type:`boolean`,default:!1}).option(`skip-tag`,{description:"Skip the `git tag` + `git push --tags` step (use when the tag was already created out-of-band).",type:`boolean`,default:!1}).option(`push-tag`,{description:`Push the created tag after creating it. Default: true.`,type:`boolean`,default:!0}).option(`flathub-repo`,{description:`Flathub tracking-repo override forwarded to sync-flathub.`,type:`string`}).option(`dry-run`,{description:`Print each step that would run without executing any of them.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Echo every sub-command invocation.`,type:`boolean`,default:!1}),handler:async n=>{let a=typeof n.version==`string`?n.version.trim():``;if(!a)throw Error(`[gjsify flatpak release] missing <version> positional`);let S=resolveCliEntry(),C=process.cwd(),N=[];n.skipInit||N.push({name:`init`,args:[S,`flatpak`,`init`,`--force`]}),n.skipCheck||N.push({name:`check`,args:[S,`flatpak`,`check`]});let F=[S,`flatpak`,`sync-flathub`,`--version`,a];if(n.flathubRepo&&F.push(`--flathub-repo`,n.flathubRepo),n.verbose&&F.push(`--verbose`),Fe.log(`[gjsify flatpak release] starting release of ${a}`),n.dryRun){Fe.log(`[gjsify flatpak release] --dry-run set; printing plan only:`);for(let n of N)Fe.log(` · ${n.name}: node ${n.args.join(` `)}`);n.skipTag||Fe.log(` · tag: git tag ${a}${n.pushTag===!1?``:` && git push origin `+a}`),Fe.log(` · sync: node ${F.join(` `)}`);return}for(let a of N)n.verbose&&Fe.log(`[gjsify flatpak release] step ${a.name}: node ${a.args.join(` `)}`),await runNode(a.args,C),Fe.log(`[gjsify flatpak release] ${a.name} ✔`);if(!n.skipTag){n.verbose&&Fe.log(`[gjsify flatpak release] git tag ${a}`);try{await zE(`git`,[`tag`,a],{cwd:C}),Fe.log(`[gjsify flatpak release] tag ${a} created`)}catch(n){throw Error(`[gjsify flatpak release] git tag failed (${n.message}). If the tag already exists, re-run with --skip-tag.`)}n.pushTag!==!1&&(n.verbose&&Fe.log(`[gjsify flatpak release] git push origin ${a}`),await zE(`git`,[`push`,`origin`,a],{cwd:C}),Fe.log(`[gjsify flatpak release] tag pushed`))}n.verbose&&Fe.log(`[gjsify flatpak release] sync: node ${F.join(` `)}`),await runNode(F,C),Fe.log(`[gjsify flatpak release] ✅ release ${a} complete`)}};function resolveCliEntry(){return Oo(Oo(Po(fileURLToPath(import.meta.url)),`..`,`..`),`index.js`)}async function runNode(n,a){await new Promise((S,C)=>{let N=spawn(`node`,n,{cwd:a,stdio:`inherit`});N.on(`error`,C),N.on(`exit`,a=>{a===0?S():C(Error(`sub-command exited with code ${a}: node ${n.join(` `)}`))})})}const VE={command:`flatpak <subcommand>`,description:`Flatpak toolchain: init/build/deps/ci/check/sync-flathub/diff/release subcommands for shipping GJS apps and CLIs as Flatpaks.`,builder:n=>n.command(AE.command,AE.description,AE.builder,AE.handler).command(jE.command,jE.description,jE.builder,jE.handler).command(ME.command,ME.description,ME.builder,ME.handler).command(NE.command,NE.description,NE.builder,NE.handler).command(PE.command,PE.description,PE.builder,PE.handler).command(IE.command,IE.description,IE.builder,IE.handler).command(RE.command,RE.description,RE.builder,RE.handler).command(BE.command,BE.description,BE.builder,BE.handler).demandCommand(1).strict()};As(),Ho();const HE=/^(?:@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;function parseSpec$1(n){if(!n)throw Error(`dlx: empty package spec`);if(n.startsWith(`./`)||n.startsWith(`../`)||Ao(n)||existsSync(n))return{kind:`local`,path:Oo(n)};let a=n,S,C=n.lastIndexOf(`@`);if(C>0&&(a=n.slice(0,C),S=n.slice(C+1)),!HE.test(a))throw Error(`dlx: invalid package name "${a}"`);return{kind:`registry`,name:a,version:S,spec:n}}__name$1(parseSpec$1,`parseSpec`),As(),Ho();function resolveGjsEntry(n,a){let S=jo(n,`package.json`);if(!existsSync(S))throw Error(`dlx: no package.json found at ${n}`);let C=JSON.parse(readFileSync(S,`utf-8`)),N=C.gjsify?.bin,F=C.gjsify?.main,I=C.main,H,W=null,K=!1;if(a!==null){if(!N||!N[a]){let S=N?Object.keys(N).join(`, `):`(none)`;throw Error(`dlx: package "${C.name??n}" has no GJS bin named "${a}" — known: ${S}`)}H=N[a],W=a}else if(N&&Object.keys(N).length===1){let n=Object.keys(N)[0];H=N[n],W=n}else F?H=F:I&&(H=I,K=!0);if(N&&Object.keys(N).length>1&&a===null){let a=Object.keys(N).join(`, `);throw Error(`dlx: package "${C.name??n}" defines multiple GJS bins — pass one of: ${a}`)}if(!H)throw Error(`dlx: package "${C.name??n}" has no GJS entry — set \`gjsify.main\` (or \`gjsify.bin\`) in its package.json`);let q=Oo(n,H);if(!existsSync(q))throw Error(`dlx: GJS entry not found: ${q}`);return{bundlePath:q,binName:W,fromFallback:K}}Ga(),As(),kp(),Ho();function lexCompare(n,a){return n<a?-1:+(n>a)}function createCacheKey(n){let a=[...n.packages].sort(lexCompare),S=Object.entries(n.registries??{}).sort(([n],[a])=>lexCompare(n,a)),C=JSON.stringify([a,S]);return createHash(`sha256`).update(C).digest(`hex`)}function dlxCacheRoot(){let n=process.env.XDG_CACHE_HOME,a=jo(n&&n.length>0?n:jo(homedir(),`.cache`),`gjsify`,`dlx`);return mkdirSync(a,{recursive:!0}),a}function cacheDirFor(n){let a=jo(dlxCacheRoot(),n);return mkdirSync(a,{recursive:!0}),a}function makePrepareDir(n){let a=jo(n,`${Date.now().toString(16)}-${process.pid.toString(16)}`);return mkdirSync(a,{recursive:!0}),a}function getValidCachedPkg(n,a=10080){let S=jo(n,`pkg`),C;try{C=lstatSync(S)}catch(n){if(n.code===`ENOENT`)return;throw n}if(!C.isSymbolicLink())return;let N;try{N=realpathSync(S)}catch{return}return Date.now()-C.mtime.getTime()<=a*6e4?N:void 0}function symlinkSwap(n,a){let S=jo(n,`pkg`),C=jo(n,`pkg.tmp-${Date.now().toString(16)}-${process.pid.toString(16)}`);symlinkSync(a,C,`dir`);try{renameSync(C,S)}catch(n){let a=n.code;if(a===`EBUSY`||a===`EPERM`||a===`EEXIST`){try{rmSync(C)}catch{}return realpathSync(S)}throw n}return realpathSync(S)}function resolveInstalledPkgDir(n,a){return Oo(n,`node_modules`,a)}function parse(n){try{return new SemVer(n)}catch{return null}}function satisfies(n,a){let S=a instanceof GE?a:new GE(a),C=n instanceof SemVer?n:parse(String(n));return C?S.test(C):!1}function maxSatisfying(n,a){let S=a instanceof GE?a:new GE(a),C=null;for(let a of n){let n=parse(a);!n||!S.test(n)||(C===null||n.compare(C)>0)&&(C=n)}return C?C.version:null}function testComparator(n,a){if(n.semver===null)return!0;let S=a.compare(n.semver);switch(n.operator){case``:case`=`:return S===0;case`<`:return S<0;case`<=`:return S<=0;case`>`:return S>0;case`>=`:return S>=0}}function formatComparator(n){return n.semver===null?`*`:`${n.operator}${n.semver.version}`}function parseRangePart(n){let a=n.trim();if(a===``||a===`*`||a.toLowerCase()===`latest`)return[{operator:`>=`,semver:new SemVer(`0.0.0`)}];let S=a.match(/^\s*(\S+)\s+-\s+(\S+)\s*$/);if(S)return hyphenRange(S[1],S[2]);let C=a.replace(/(<=|>=|<|>|=)\s+(?=\S)/g,`$1`).split(/\s+/),N=[];for(let n of C)N.push(...parseSimple(n));return N}function parseSimple(n){if(n===`*`||n===``||n.toLowerCase()===`latest`)return[{operator:`>=`,semver:new SemVer(`0.0.0`)}];if(n.startsWith(`^`))return caretRange(n.slice(1));if(n.startsWith(`~`))return tildeRange(n.slice(1).replace(/^>/,``));let a=n.match(/^(<=|>=|<|>|=)\s*(.+)$/);if(a){let n=a[1];return primitiveRange(n,a[2])}return partialRange(n)}function parsePartial(n){let a=n.trim().replace(/^v/,``);if(a===``||a===`*`)return{major:null,minor:null,patch:null,pre:``,build:``};let S=``,C=``,N=a,F=N.indexOf(`+`);F>=0&&(C=N.slice(F+1),N=N.slice(0,F));let I=N.indexOf(`-`);I>=0&&(S=N.slice(I+1),N=N.slice(0,I));let H=N.split(`.`),xr=a=>{if(a===void 0||a===``||a===`x`||a===`X`||a===`*`)return null;if(!/^\d+$/.test(a))throw TypeError(`Invalid partial version: ${n}`);return Number(a)};return{major:xr(H[0]),minor:xr(H[1]),patch:xr(H[2]),pre:S,build:C}}function partialToVersion(n){return`${n.major??0}.${n.minor??0}.${n.patch??0}${n.pre?`-${n.pre}`:``}${n.build?`+${n.build}`:``}`}function partialRange(n){let a=parsePartial(n);return a.major===null?[{operator:`>=`,semver:new SemVer(`0.0.0`)}]:a.minor===null?[{operator:`>=`,semver:new SemVer(`${a.major}.0.0`)},{operator:`<`,semver:new SemVer(`${a.major+1}.0.0`)}]:a.patch===null?[{operator:`>=`,semver:new SemVer(`${a.major}.${a.minor}.0`)},{operator:`<`,semver:new SemVer(`${a.major}.${a.minor+1}.0`)}]:[{operator:`=`,semver:new SemVer(partialToVersion(a))}]}function caretRange(n){let a=parsePartial(n);if(a.major===null)return[{operator:`>=`,semver:new SemVer(`0.0.0`)}];let S=`${a.major}.${a.minor??0}.${a.patch??0}${a.pre?`-${a.pre}`:``}`,C;return C=a.major>0||a.minor===null?`${a.major+1}.0.0`:a.minor>0||a.patch===null?`0.${a.minor+1}.0`:`0.0.${a.patch+1}`,[{operator:`>=`,semver:new SemVer(S)},{operator:`<`,semver:new SemVer(C)}]}function tildeRange(n){let a=parsePartial(n);if(a.major===null)return[{operator:`>=`,semver:new SemVer(`0.0.0`)}];let S=`${a.major}.${a.minor??0}.${a.patch??0}${a.pre?`-${a.pre}`:``}`,C=a.minor===null?`${a.major+1}.0.0`:`${a.major}.${a.minor+1}.0`;return[{operator:`>=`,semver:new SemVer(S)},{operator:`<`,semver:new SemVer(C)}]}function primitiveRange(n,a){let S=parsePartial(a);return S.major===null?[{operator:`>=`,semver:new SemVer(`0.0.0`)}]:n===`=`||n===``?partialRange(a):n===`>`?S.minor===null?[{operator:`>=`,semver:new SemVer(`${S.major+1}.0.0`)}]:S.patch===null?[{operator:`>=`,semver:new SemVer(`${S.major}.${S.minor+1}.0`)}]:[{operator:`>`,semver:new SemVer(partialToVersion(S))}]:n===`<`?S.minor===null?[{operator:`<`,semver:new SemVer(`${S.major}.0.0`)}]:S.patch===null?[{operator:`<`,semver:new SemVer(`${S.major}.${S.minor}.0`)}]:[{operator:`<`,semver:new SemVer(partialToVersion(S))}]:n===`>=`?[{operator:`>=`,semver:new SemVer(partialToVersion(S))}]:S.minor===null?[{operator:`<`,semver:new SemVer(`${S.major+1}.0.0`)}]:S.patch===null?[{operator:`<`,semver:new SemVer(`${S.major}.${S.minor+1}.0`)}]:[{operator:`<=`,semver:new SemVer(partialToVersion(S))}]}function hyphenRange(n,a){let S=parsePartial(n),C=parsePartial(a),N=S.major===null?{operator:`>=`,semver:new SemVer(`0.0.0`)}:{operator:`>=`,semver:new SemVer(`${S.major}.${S.minor??0}.${S.patch??0}${S.pre?`-${S.pre}`:``}`)},F;return F=C.major===null?{operator:`>=`,semver:new SemVer(`0.0.0`)}:C.minor===null?{operator:`<`,semver:new SemVer(`${C.major+1}.0.0`)}:C.patch===null?{operator:`<`,semver:new SemVer(`${C.major}.${C.minor+1}.0`)}:{operator:`<=`,semver:new SemVer(`${C.major}.${C.minor}.${C.patch}${C.pre?`-${C.pre}`:``}`)},[N,F]}var UE,WE,SemVer,GE,KE=__esmMin(()=>{UE=/^(0|[1-9]\d*)$/,WE=/^(\d+)\.(\d+)\.(\d+)(?:-((?:[0-9A-Za-z-]+)(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/,SemVer=class{major;minor;patch;prerelease;build;version;constructor(n){let a=String(n).trim().replace(/^v/,``),S=WE.exec(a);if(!S)throw TypeError(`Invalid Version: ${n}`);this.major=Number(S[1]),this.minor=Number(S[2]),this.patch=Number(S[3]),this.prerelease=S[4]?S[4].split(`.`).map(n=>UE.test(n)?Number(n):n):[],this.build=S[5]?S[5].split(`.`):[],this.version=`${this.major}.${this.minor}.${this.patch}`+(this.prerelease.length?`-${this.prerelease.join(`.`)}`:``)+(this.build.length?`+${this.build.join(`.`)}`:``)}compare(n){return this.major===n.major?this.minor===n.minor?this.patch===n.patch?this.comparePre(n):this.patch<n.patch?-1:1:this.minor<n.minor?-1:1:this.major<n.major?-1:1}comparePre(n){let a=this.prerelease,S=n.prerelease;if(a.length===0&&S.length===0)return 0;if(a.length===0)return 1;if(S.length===0)return-1;for(let n=0;;n++){let C=a[n],N=S[n];if(C===void 0&&N===void 0)return 0;if(N===void 0)return 1;if(C===void 0)return-1;if(C===N)continue;let F=typeof C==`number`,I=typeof N==`number`;return F&&!I?-1:!F&&I?1:C<N?-1:1}}toString(){return this.version}},GE=class Range{raw;set;constructor(n){if(n instanceof Range){this.raw=n.raw,this.set=n.set;return}this.raw=String(n).trim();let a=this.raw.split(/\s*\|\|\s*/),S=[];for(let n of a){let a=parseRangePart(n);if(a.length===0)throw TypeError(`Invalid range: ${this.raw}`);S.push(a)}if(S.length===0)throw TypeError(`Invalid range: ${this.raw}`);this.set=S}test(n){let a=n instanceof SemVer?n:parse(String(n));if(!a)return!1;for(let n of this.set)if(n.every(n=>testComparator(n,a))){if(a.prerelease.length>0&&!n.some(n=>n.semver!==null&&n.semver.prerelease.length>0&&n.semver.major===a.major&&n.semver.minor===a.minor&&n.semver.patch===a.patch))continue;return!0}return!1}format(){return this.set.map(n=>n.map(formatComparator).join(` `)).join(` || `)}toString(){return this.format()}}});function assertPackument(n,a){if(!a||typeof a!=`object`)throw TypeError(`registry: ${n} packument is not an object`);let S=a;if(typeof S.name!=`string`)throw TypeError(`registry: ${n} packument missing string name`);if(!S.versions||typeof S.versions!=`object`)throw TypeError(`registry: ${n} packument missing versions map`)}function registryFor(n,a){if(a&&n.startsWith(`@`)){let S=n.slice(0,n.indexOf(`/`)),C=a.scopes[S];if(C)return ensureTrailingSlash$1(C)}return a?.registry?ensureTrailingSlash$1(a.registry):qE}function packumentUrl(n,a){let S=ensureTrailingSlash$1(a);if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a<0)throw TypeError(`Invalid scoped package name: ${n}`);let C=n.slice(0,a),N=n.slice(a+1);return`${S}${encodeURIComponent(C)}/${encodeURIComponent(N)}`}return`${S}${encodeURIComponent(n)}`}async function fetchPackument(n,a={}){let S=packumentUrl(n,a.registry??registryFor(n,a.npmrc)),C=buildHeaders(S,a);C.accept??=`application/vnd.npm.install-v1+json`;let N=await fetchWithRetry(S,{headers:C,signal:a.signal},a);if(!N.ok)throw N.status===404||N.status===406?new PackageNotFoundError(n,S):Error(`registry GET ${S} -> ${N.status} ${N.statusText}`);let F=await N.json();return assertPackument(n,F),F}async function fetchTarball(n,a={}){let S=buildHeaders(n,a);S.accept??=`application/octet-stream`;let C=await fetchWithRetry(n,{headers:S,signal:a.signal},a);if(!C.ok)throw Error(`tarball GET ${n} -> ${C.status} ${C.statusText}`);let N=new Uint8Array(await C.arrayBuffer());if(a.integrity&&!await verifyIntegrity(N,a.integrity))throw new IntegrityError(n,a.integrity);return N}async function fetchWithRetry(n,a,S){let C=S.fetch??globalThis.fetch;if(!C)throw Error(`@gjsify/npm-registry: globalThis.fetch is missing`);let N=Math.max(0,S.retries??3),F=Math.max(0,S.retryDelayMs??250),I=0,H;for(;;){if(a.signal?.aborted)throw signalAbortError(a.signal);try{let S=await C(n,a);if(S.ok||!isRetryableStatus(S.status)||I>=N)return S;try{await S.arrayBuffer()}catch{}H=Error(`HTTP ${S.status} ${S.statusText}`)}catch(n){if(!isRetryableError(n)||I>=N)throw n;H=n}let W=Math.min(F*2**I,8e3);S.onRetry?.({attempt:I+1,error:H,delayMs:W}),await delay(W,a.signal),I++}}function isRetryableStatus(n){return n===408||n===425||n===429||n===500||n===502||n===503||n===504||n===521||n===522||n===524||n===525}function isRetryableError(n){if(n&&typeof n==`object`&&`name`in n&&n.name===`AbortError`)return!1;if(n instanceof TypeError)return!0;if(n&&typeof n==`object`&&`name`in n){let a=n.name;if(a===`FetchError`)return!0;if(a===`AbortError`)return!1}let a=n?.cause;if(a&&typeof a==`object`&&`code`in a){let n=a.code;if(typeof n==`string`)return n===`ECONNRESET`||n===`ECONNREFUSED`||n===`ENETUNREACH`||n===`ENOTFOUND`||n===`ETIMEDOUT`||n===`EAI_AGAIN`||n===`UND_ERR_SOCKET`||n===`UND_ERR_CONNECT_TIMEOUT`}return!1}function delay(n,a){return n<=0?Promise.resolve():new Promise((S,C)=>{let N=setTimeout(()=>{a?.removeEventListener?.(`abort`,onAbort),S()},n),onAbort=()=>{clearTimeout(N),C(signalAbortError(a))};if(a?.aborted){clearTimeout(N),C(signalAbortError(a));return}a?.addEventListener?.(`abort`,onAbort,{once:!0})})}function signalAbortError(n){let a=n&&`reason`in n?n.reason:void 0;if(a instanceof Error)return a;let S=Error(`Aborted`);return S.name=`AbortError`,S}async function verifyIntegrity(n,a){let S=a.trim().split(/\s+/);for(let a of S){let S=a.indexOf(`-`);if(S<0)continue;let C=a.slice(0,S).toLowerCase(),N=a.slice(S+1),F=globalThis.crypto?.subtle;if(!F)throw Error(`@gjsify/npm-registry: globalThis.crypto.subtle is missing`);let I=subriToWebCryptoAlgo(C);if(!I)continue;let H=await F.digest(I,dataAsArrayBuffer(n));if(bytesToBase64(new Uint8Array(H))===N)return!0}return!1}function subriToWebCryptoAlgo(n){switch(n){case`sha1`:return`SHA-1`;case`sha256`:return`SHA-256`;case`sha384`:return`SHA-384`;case`sha512`:return`SHA-512`;default:return null}}function dataAsArrayBuffer(n){if(n.byteOffset===0&&n.byteLength===n.buffer.byteLength)return n.buffer;let a=new Uint8Array(n.byteLength);return a.set(n),a.buffer}function bytesToBase64(n){let a=``;for(let S=0;S<n.length;S++)a+=String.fromCharCode(n[S]);return btoa(a)}function parseNpmrc(n){let a={registry:qE,scopes:{},authTokens:{},basicAuth:{}},S=n.split(/\r?\n/),C={};for(let n of S){let S=n.replace(/^\s+|\s+$/g,``);if(!S||S.startsWith(`#`)||S.startsWith(`;`))continue;let N=S.indexOf(`=`);if(N<0)continue;let F=S.slice(0,N).trim(),I=expandEnv(stripQuotes(S.slice(N+1).trim()));if(F===`registry`){a.registry=ensureTrailingSlash$1(I);continue}let H=F.match(/^(@[^:]+):registry$/);if(H){a.scopes[H[1]]=ensureTrailingSlash$1(I);continue}let W=F.match(/^\/\/(.+):_authToken$/);if(W){a.authTokens[normalizeAuthHost(W[1])]=I;continue}let K=F.match(/^\/\/(.+):username$/);if(K){(C[normalizeAuthHost(K[1])]??={}).user=I;continue}let q=F.match(/^\/\/(.+):_password$/);if(q){let n=base64Decode(I);(C[normalizeAuthHost(q[1])]??={}).pass=n;continue}}for(let[n,S]of Object.entries(C))S.user&&S.pass!==void 0&&(a.basicAuth[n]={username:S.user,password:S.pass});return a}function buildHeaders(n,a){let S={"user-agent":`gjsify-install/0.3.7`,"accept-encoding":`identity`};if(a.npmrc){let C=resolveAuthForUrl(n,a.npmrc);C&&(S.authorization=C)}if(a.headers)for(let[n,C]of Object.entries(a.headers))S[n.toLowerCase()]=C;return S}function resolveAuthForUrl(n,a){let S=pathPrefixes(new URL(n));for(let n of S){let S=a.authTokens[n];if(S)return`Bearer ${S}`;let C=a.basicAuth[n];if(C)return`Basic ${btoa(`${C.username}:${C.password}`)}`}return null}function pathPrefixes(n){let a=n.pathname.split(`/`).filter(Boolean),S=[];for(let C=a.length;C>=0;C--){let N=a.slice(0,C).join(`/`);S.push(N?`//${n.host}/${N}`:`//${n.host}`)}return S}function normalizeAuthHost(n){return`//${n.replace(/\/+$/,``)}`}function ensureTrailingSlash$1(n){return n.endsWith(`/`)?n:n+`/`}function stripQuotes(n){return n.startsWith(`"`)&&n.endsWith(`"`)||n.startsWith(`'`)&&n.endsWith(`'`)?n.slice(1,-1):n}function expandEnv(n){return n.replace(/\$\{([A-Z0-9_]+)\}/gi,(n,a)=>globalThis.process?.env?.[a]??``)}function base64Decode(n){return atob(n)}var qE,PackageNotFoundError,IntegrityError,JE=__esmMin(()=>{qE=`https://registry.npmjs.org/`,__name$1(ensureTrailingSlash$1,`ensureTrailingSlash`),PackageNotFoundError=class extends Error{name;url;constructor(n,a){super(`Package not found in registry: ${n} (${a})`),this.name=n,this.url=a,this.name=`PackageNotFoundError`}},IntegrityError=class extends Error{url;integrity;constructor(n,a){super(`Tarball integrity mismatch for ${n} (expected ${a})`),this.url=n,this.integrity=a,this.name=`IntegrityError`}}});function parseTar(n){let a=[],S=null,C=null,N=null,F=0;for(;F+512<=n.length;){let I=n.subarray(F,F+512);if(allZeros(I)){let a=n.subarray(F+512,F+2*512);if(a.length===512&&allZeros(a))break;F+=512;continue}if(!validateChecksum(I))throw new TarParseError(`Bad header checksum at offset ${F} — file is not a valid tar archive`);let H=readString(I,0,100),W=parseOctal(I,100,8),K=parseOctal(I,124,12),q=parseOctal(I,136,12),Y=String.fromCharCode(I[156]||0),X=readString(I,157,100),te=readString(I,257,6),ne=readString(I,345,155),re=readString(I,265,32),ie=readString(I,297,32);F+=512;let ae=n.subarray(F,F+K);if(F+=alignToBlock(K),Y===`x`){S=parsePaxRecords(ae);continue}if(Y===`g`)continue;if(Y===`L`){C=bytesToString(ae).replace(/\0+$/,``);continue}if(Y===`K`){N=bytesToString(ae).replace(/\0+$/,``);continue}let oe=H;te===`ustar`&&ne!==``&&(oe=`${ne}/${H}`),C!==null&&(oe=C,C=null);let Z=X;if(N!==null&&(Z=N,N=null),S!==null){let C=S.get(`path`);C!==void 0&&(oe=C);let N=S.get(`linkpath`);N!==void 0&&(Z=N);let I=S.get(`size`);if(I!==void 0){let C=Number(I);if(Number.isFinite(C)){let N=F-alignToBlock(K),I=n.subarray(N,N+C);F=N+alignToBlock(C),S=null,a.push(buildEntry(oe,Z,Y,W,q,re,ie,I));continue}}S=null}a.push(buildEntry(oe,Z,Y,W,q,re,ie,ae))}return a}function buildEntry(n,a,S,C,N,F,I,H){return{name:n,linkname:a,type:typeflagToType(S,n),mode:C,mtime:N,body:H,uname:F,gname:I}}function typeflagToType(n,a){switch(n){case`0`:case`\0`:case``:return a.endsWith(`/`)?`directory`:`file`;case`1`:return`hardlink`;case`2`:return`symlink`;case`5`:return`directory`;case`x`:return`pax-header`;case`g`:return`pax-global`;case`L`:return`gnu-longname`;case`K`:return`gnu-longlink`;default:return`unknown`}}function parsePaxRecords(n){let a=new Map,S=0;for(;S<n.length;){let C=S;for(;C<n.length&&n[C]!==32;)C++;if(C>=n.length)break;let N=bytesToString(n.subarray(S,C)),F=Number(N);if(!Number.isFinite(F)||F<=0)break;let I=S+F;if(I>n.length)break;let H=bytesToString(n.subarray(C+1,I-1)),W=H.indexOf(`=`);if(W>0){let n=H.slice(0,W),S=H.slice(W+1);a.set(n,S)}S=I}return a}function readString(n,a,S){let C=a,N=a+S;for(;C<N&&n[C]!==0;)C++;return bytesToString(n.subarray(a,C))}function bytesToString(n){return new TextDecoder(`utf-8`,{fatal:!1}).decode(n)}function parseOctal(n,a,S){if(S>0&&n[a]&128){let C=n[a]&127;for(let N=1;N<S;N++)C=C*256+n[a+N];return C}let C=``;for(let N=0;N<S;N++){let S=n[a+N];S===0||S===32||(C+=String.fromCharCode(S))}return C===``?0:parseInt(C,8)}function alignToBlock(n){return Math.ceil(n/512)*512}function allZeros(n){for(let a=0;a<n.length;a++)if(n[a]!==0)return!1;return!0}function validateChecksum(n){let a=parseOctal(n,148,8),S=0,C=0;for(let a=0;a<512;a++){let N=a>=148&&a<156?32:n[a];S+=N,C+=N>127?N-256:N}return a===S||a===C}var TarParseError,YE=__esmMin(()=>{TarParseError=class extends Error{constructor(n){super(n),this.name=`TarParseError`}}});function createTarball(n){let a=[];for(let S of n){if(`directory`in S&&S.directory===!0){a.push(buildHeader(ensureTrailingSlash(S.name),0,`5`,S.mode??493,S.mtime??0));continue}let n=S,C=typeof n.body==`string`?new TextEncoder().encode(n.body):n.body,N=n.mode??defaultFileMode(C);a.push(buildHeader(n.name,C.byteLength,`0`,N,n.mtime??0)),a.push(C);let F=padTo512(C.byteLength);F>0&&a.push(new Uint8Array(F))}return a.push(new Uint8Array(512*2)),concatChunks(a)}function buildHeader(n,a,S,C,N){let{prefix:F,basename:I}=splitPathForUstar(n),H=new Uint8Array(512);writeAscii(H,I,0,100),writeOctal(H,C&4095,100,7),H[107]=0,writeOctal(H,0,108,7),H[115]=0,writeOctal(H,0,116,7),H[123]=0,writeOctal(H,a,124,11),H[135]=0,writeOctal(H,N,136,11),H[147]=0;for(let n=148;n<156;n++)H[n]=32;H[156]=S.charCodeAt(0),writeAscii(H,`ustar\0`,257,6),writeAscii(H,`00`,263,2),F&&writeAscii(H,F,345,155);let W=0;for(let n=0;n<512;n++)W+=H[n];return writeAscii(H,W.toString(8).padStart(6,`0`),148,6),H[154]=0,H[155]=32,H}function splitPathForUstar(n){if(n.length<=100)return{prefix:``,basename:n};if(n.length>255)throw Error(`createTarball: path too long (${n.length} > 255 chars): ${n}`);for(let a=Math.min(n.length-1,155);a>0;a--)if(n[a]===`/`&&n.length-a-1<=100)return{prefix:n.slice(0,a),basename:n.slice(a+1)};throw Error(`createTarball: cannot split path into ustar prefix+basename (basename slot is 100 chars): ${n}`)}function writeAscii(n,a,S,C){let N=new TextEncoder().encode(a);if(N.length>C)throw Error(`createTarball: field too long (${N.length} > ${C}): "${a}"`);n.set(N,S)}function writeOctal(n,a,S,C){writeAscii(n,a.toString(8).padStart(C,`0`),S,C)}function padTo512(n){let a=n%512;return a===0?0:512-a}function ensureTrailingSlash(n){return n.endsWith(`/`)?n:`${n}/`}function defaultFileMode(n){return n.length>=2&&n[0]===35&&n[1]===33?493:420}function concatChunks(n){let a=0;for(let S of n)a+=S.byteLength;let S=new Uint8Array(a),C=0;for(let a of n)S.set(a,C),C+=a.byteLength;return S}var XE=__esmMin(()=>{});async function extractTarball(n,a,S={}){let C=n instanceof Uint8Array?n:new Uint8Array(n),N=parseTar(S.gzip??(C.length>=2&&C[0]===31&&C[1]===139)?await gunzip(C):C);mkdirSync(a,{recursive:!0});let F=S.strip??1,I=S.preventEscape??!0,H={files:[],directories:[],symlinks:[],skipped:0};for(let n of N){let C=stripComponents(n.name,F);if(C===null||C===``){H.skipped++;continue}let N=Oo(a,C);if(I&&!isInside(N,a))throw Error(`tar: refusing to extract ${n.name} outside ${a} (resolved=${N})`);if(S.filter&&!S.filter(n,N)){H.skipped++;continue}if(n.type===`directory`){mkdirSync(N,{recursive:!0}),H.directories.push(N);continue}if(n.type===`file`){mkdirSync(Po(N),{recursive:!0}),writeFileSync(N,n.body);let a=S.chmod?.(n,N)??n.mode&511;if(a>0)try{chmodSync(N,a)}catch{}H.files.push(N);continue}if(n.type===`symlink`){mkdirSync(Po(N),{recursive:!0});try{symlinkSync(n.linkname,N),H.symlinks.push(N)}catch{writeFileSync(N,n.linkname),H.files.push(N)}continue}H.skipped++}return H}async function gunzip(n){let a=globalThis.DecompressionStream;if(typeof a!=`function`)throw Error(`@gjsify/tar: globalThis.DecompressionStream is not available — import '@gjsify/compression-streams/register' on GJS to register it`);return drainStream(new Blob([new Uint8Array(n)]).stream().pipeThrough(new a(`gzip`)))}async function gzip(n){let a=globalThis.CompressionStream;if(typeof a!=`function`)throw Error(`@gjsify/tar: globalThis.CompressionStream is not available — import '@gjsify/compression-streams/register' on GJS to register it`);return drainStream(new Blob([new Uint8Array(n)]).stream().pipeThrough(new a(`gzip`)))}async function drainStream(n){let a=[],S=0,C=n.getReader();for(;;){let{value:n,done:N}=await C.read();if(N)break;let F=n instanceof Uint8Array?n:new Uint8Array(n);a.push(F),S+=F.length}let N=new Uint8Array(S),F=0;for(let n of a)N.set(n,F),F+=n.length;return N}function stripComponents(n,a){if(a<=0)return n;let S=n.split(`/`).filter(n=>n!==``);return S.length<=a?null:S.slice(a).join(`/`)}function isInside(n,a){let S=Mo(a,n);return S!==``&&!S.startsWith(`..`)&&!Ao(S)}var ZE=__esmMin(()=>{YE(),As(),Ho()}),QE=__exportAll$3({BLOCK_SIZE:()=>512,TarParseError:()=>TarParseError,createTarball:()=>createTarball,extractTarball:()=>extractTarball,gunzip:()=>gunzip,gzip:()=>gzip,parseTar:()=>parseTar}),$E=__esmMin(()=>{YE(),XE(),ZE()}),eD=__exportAll$3({installPackagesNative:()=>installPackagesNative,parseSpec:()=>parseSpec,pickVersion:()=>pickVersion});async function installPackagesNative(n){if(n.specs.length===0)throw Error(`installPackagesNative: empty specs list`);mkdirSync(n.prefix,{recursive:!0});let a=await loadNpmrc$1(n),S=makeLogger(n.verbose??!1),C=jo(n.prefix,nD),N=readLockfile(C),F;if(n.frozen){if(!N)throw Error(`install: --immutable requires ${nD} at ${n.prefix} — none found. Run \`gjsify install\` (without --immutable) to generate one and commit it.`);let a=describeLockfileDrift(N,n.specs);if(a)throw Error(`install: --immutable but ${C} is stale.\n${a}\nRe-run \`gjsify install\` (without --immutable) to refresh the lockfile.`);S(`install: --immutable, using lockfile (%d package(s))`,Object.keys(N.packages).length),F=lockfileToNodes(N)}else N&&lockfileMatchesRequest(N,n.specs)?(S(`install: using lockfile (%d package(s))`,Object.keys(N.packages).length),F=lockfileToNodes(N)):(S(`install: resolving %d top-level spec(s) → %s`,n.specs.length,n.prefix),F=await resolveDeps(n.specs,a,S,n.overrides,n.skipDeps),n.lockfile&&(writeLockfile(C,n.specs,F),S(`install: wrote %s (%d entries)`,nD,F.length)));return S(`install: downloading %d tarball(s)`,F.length),await downloadAndExtractAll(F,n.prefix,a,S),await linkBins(F,n.prefix,S),S(`install: done`),topLevelResolutions(n.specs,F)}function errMsg(n){return n instanceof Error?n.message:String(n)}function topLevelResolutions(n,a){let S=new Map;for(let n of a)n.installPath===`node_modules/${n.name}`&&S.set(n.name,n);let C=[];for(let a of n){let n=parseSpecName(a),N=S.get(n);N&&C.push({name:N.name,version:N.version})}return C}function parseSpecName(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a===-1)return n;let S=n.indexOf(`@`,a+1);return S===-1?n:n.slice(0,S)}let a=n.indexOf(`@`);return a===-1?n:n.slice(0,a)}async function resolveDeps(n,a,S,C,N){let applyOverride=(n,a)=>{if(!C)return a;let N=C[n];return typeof N!=`string`||N.length===0||N===a?a:(S(`install: override %s %s → %s`,n,a,N),N)},F=new Map,fetchPkg=n=>{let C=F.get(n);if(C)return C;let N=fetchPackument(n,{npmrc:a,onRetry:({attempt:a,error:C,delayMs:N})=>{S(`packument %s: retry %d after %dms (%s)`,n,a,N,errMsg(C))}});return F.set(n,N),N},I=new Map,H=new Map,W=n.map(parseSpec).map(n=>({from:null,name:n.name,range:applyOverride(n.name,n.range),required:!0}));for(;W.length>0;){let n=W.shift(),a=findVisible(n.from,n.name,I);if(a&&satisfiesRange(a.version,n.range))continue;let C=null;try{let a=await fetchPkg(n.name);if(C=pickVersion(a,n.range),!C){if(!n.required)continue;throw Error(`No version of ${n.name} satisfies ${n.range}`)}let F=a.versions[C];if(!F)throw Error(`Packument for ${n.name} promised ${C} but no entry exists`);let K=decidePlacement(n.from,n.name,C,H),q={name:n.name,version:C,tarballUrl:F.dist.tarball,integrity:F.dist.integrity,installPath:K,dependencies:F.dependencies??{},optionalDependencies:F.optionalDependencies??{},bin:F.bin};if(I.set(K,q),K===`node_modules/${n.name}`&&H.set(n.name,q),S(`resolve: %s@%s ← %s (at %s)`,n.name,C,n.range,K),!N){for(let[n,a]of Object.entries(q.dependencies))W.push({from:K,name:n,range:applyOverride(n,a),required:!0});for(let[n,a]of Object.entries(q.optionalDependencies))W.push({from:K,name:n,range:applyOverride(n,a),required:!1})}}catch(a){if(!n.required){S(`resolve: optional dep %s@%s skipped (%s)`,n.name,n.range,a.message);continue}throw a}}return Array.from(I.values())}function findVisible(n,a,S){let C=[];if(n!==null){C.push(`${n}/node_modules/${a}`);let S=n;for(;;){let n=S.lastIndexOf(`/node_modules/`);if(n<0||(S=S.slice(0,n),C.push(`${S}/node_modules/${a}`),S===``))break}}C.push(`node_modules/${a}`);for(let n of C){let a=S.get(n);if(a)return a}return null}function decidePlacement(n,a,S,C){let N=C.get(a);return!N||N.version===S||n===null?`node_modules/${a}`:`${n}/node_modules/${a}`}function satisfiesRange(n,a){try{return satisfies(n,new GE(a))}catch{return!1}}function readLockfile(n){if(!existsSync(n))return null;try{let a=JSON.parse(readFileSync(n,`utf-8`));return a.lockfileVersion!==rD||!a.packages||typeof a.packages!=`object`?null:a}catch{return null}}function writeLockfile(n,a,S){let C={},N=[...S].sort((n,a)=>n.installPath<a.installPath?-1:+(n.installPath>a.installPath));for(let n of N)C[n.installPath]={version:n.version,resolved:n.tarballUrl,integrity:n.integrity,dependencies:Object.keys(n.dependencies).length>0?n.dependencies:void 0,bin:n.bin};let F={lockfileVersion:rD,requested:[...a],packages:C};writeFileSync(n,JSON.stringify(F,null,2)+`
790
790
  `)}function lockfileToNodes(n){return Object.entries(n.packages).map(([n,a])=>({name:nameFromInstallPath(n),version:a.version,tarballUrl:a.resolved,integrity:a.integrity,installPath:n,dependencies:a.dependencies??{},optionalDependencies:{},bin:a.bin}))}function nameFromInstallPath(n){let a=n.lastIndexOf(`/node_modules/`);return a<0?n.replace(/^node_modules\//,``):n.slice(a+14)}function lockfileMatchesRequest(n,a){if(n.requested.length!==a.length)return!1;let S=[...n.requested].sort(),C=[...a].sort();return S.every((n,a)=>n===C[a])}function describeLockfileDrift(n,a){let S=new Set(n.requested),C=new Set(a),N=[],F=[];for(let n of C)S.has(n)||N.push(n);for(let n of S)C.has(n)||F.push(n);if(N.length===0&&F.length===0)return null;let I=[];return N.length>0&&I.push(` + ${N.sort().join(`
791
791
  + `)}`),F.length>0&&I.push(` - ${F.sort().join(`
792
792
  - `)}`),I.join(`
793
- `)}function parseSpec(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a<0)throw Error(`Invalid spec (scoped name without slash): ${n}`);let S=n.indexOf(`@`,a);return S<0?{name:n,range:`latest`}:{name:n.slice(0,S),range:n.slice(S+1)||`latest`}}let a=n.indexOf(`@`);return a<0?{name:n,range:`latest`}:{name:n.slice(0,a),range:n.slice(a+1)||`latest`}}function pickVersion(n,a){if(n[`dist-tags`][a])return n[`dist-tags`][a];let S;try{S=new UE(a)}catch{throw Error(`Invalid version range for ${n.name}: ${a}`)}return maxSatisfying(Object.keys(n.versions).filter(n=>{try{return new SemVer(n),!0}catch{return!1}}),S)}async function downloadAndExtractAll(n,a,S,C){let N=[...n].sort((n,a)=>depth(n.installPath)-depth(a.installPath)||(n.installPath<a.installPath?-1:1)),F=[],I=Math.max(1,Math.min($E,N.length)),H=0,W=N.findIndex(n=>depth(n.installPath)>1),K=W<0?N.length:W;for(;H<K;){let n=N[H++];if(!n)break;await extractOne(n,a,S,C)}for(let n=0;n<I;n++)F.push((async()=>{for(;;){let n=H++;if(n>=N.length)return;let F=N[n];if(!F)return;await extractOne(F,a,S,C)}})());await Promise.all(F)}async function extractOne(n,a,S,C){let N=jo(a,n.installPath);C(`fetch: %s@%s ← %s (→ %s)`,n.name,n.version,n.tarballUrl,n.installPath);let F=await fetchTarball(n.tarballUrl,{npmrc:S,integrity:n.integrity,onRetry:({attempt:a,error:S,delayMs:N})=>{C(`tarball %s@%s: retry %d after %dms (%s)`,n.name,n.version,a,N,errMsg(S))}});rmSync(N,{recursive:!0,force:!0}),mkdirSync(N,{recursive:!0}),await extractTarball(F,N)}function depth(n){return n.split(`/node_modules/`).length}async function linkBins(n,a,S){let C=jo(a,`node_modules`,`.bin`),N=0;for(let S of n){if(!S.bin||depth(S.installPath)!==1)continue;let n=normalizeBin$1(S.name,S.bin);if(n.size!==0){mkdirSync(C,{recursive:!0});for(let[F,I]of n){let n=jo(a,S.installPath,I);if(!existsSync(n))continue;try{chmodSync(n,493)}catch{}let H=jo(C,F);rmSync(H,{force:!0});let W=Mo(C,n);try{symlinkSync(W,H),N++}catch{copyFileSync(n,H),chmodSync(H,493),N++}}}}N>0&&S(`bin: linked %d entry(ies) under .bin/`,N)}function normalizeBin$1(n,a){let S=new Map;if(typeof a==`string`){let C=n.startsWith(`@`)?n.slice(n.indexOf(`/`)+1):n;return S.set(C,a),S}for(let[n,C]of Object.entries(a))S.set(n,C);return S}async function loadNpmrc$1(n){let a=homedir(),S={registry:n.registry??GE,scopes:{},authTokens:{},basicAuth:{}};for(let C of[jo(a,`.npmrc`),jo(n.prefix,`.npmrc`)])if(existsSync(C))try{let n=parseNpmrc(readFileSync(C,`utf-8`));S={...S,...n,scopes:{...S.scopes,...n.scopes}}}catch(n){Fe.warn(`gjsify install: ignoring malformed ${C}: ${n.message}`)}let C=process.env.npm_config_registry;return C&&(S.registry=C),n.registry&&(S.registry=n.registry),S}function makeLogger(n){return n?(n,...a)=>{let S=n.replace(/%s|%d/g,()=>String(a.shift()));process.stderr.write(`gjsify install: ${S}\n`)}:()=>{}}var $E,eD,tD,nD=__esmMin(()=>{Ie(),As(),Ho(),kp(),WE(),KE(),ZE(),$E=Number(process.env.GJSIFY_INSTALL_CONCURRENCY??`8`)||8,eD=`gjsify-lock.json`,tD=2,__name$1(normalizeBin$1,`normalizeBin`),__name$1(loadNpmrc$1,`loadNpmrc`)});Hx(),As(),Ho();const rD=process.env.GJSIFY_INSTALL_BACKEND??`native`;async function installPackages(n){if(rD===`npm`)return await installViaNpm(n),{installed:[]};let{installPackagesNative:a}=await Promise.resolve().then(()=>(nD(),QE));return{installed:await a(n)}}async function installViaNpm({prefix:n,specs:a,verbose:S,registry:C}){if(a.length===0)throw Error(`installPackages: empty specs list`);writeFileSync(jo(n,`package.json`),JSON.stringify({name:`gjsify-dlx-cache`,version:`0.0.0`,private:!0},null,2)),C&&writeFileSync(jo(n,`.npmrc`),`registry=${C}\n`);let N=[`install`,`--no-package-lock`,`--no-audit`,`--no-fund`,`--prefix`,n,...S?[`--loglevel`,`verbose`]:[`--loglevel`,`warn`],...a];await new Promise((n,a)=>{let S=spawn(`npm`,N,{stdio:`inherit`});S.on(`close`,S=>{S===0?n():a(Error(`npm install exited with code ${S}`))}),S.on(`error`,n=>{let S=n.code===`ENOENT`?`npm not found on PATH — install Node.js or set GJSIFY_INSTALL_BACKEND=native (not yet supported)`:`npm install failed: ${n.message}`;a(Error(S))})})}Ie(),As(),Ho();const iD={command:`dlx <spec> [binOrArg] [extraArgs..]`,description:`Run the GJS bundle of an npm-published package without installing it locally.`,builder:n=>n.parserConfiguration({"populate--":!0}).positional(`spec`,{description:"Package spec (`name`, `name@version`, `@scope/name@spec`, or local path).",type:`string`,demandOption:!0}).positional(`binOrArg`,{description:"Optional bin name when the package defines `gjsify.bin` with multiple entries; otherwise treated as the first argument forwarded to the bundle. To pass a flag here (e.g. `--help`) use the `--` separator: `gjsify dlx <pkg> -- --help`.",type:`string`}).positional(`extraArgs`,{description:"Extra args forwarded to `gjs -m <bundle>`. Use `--` before flags to bypass gjsify-level parsing (`gjsify dlx <pkg> -- --help --verbose`).",type:`string`,array:!0}).option(`cache-max-age`,{description:`Cache TTL in minutes. Defaults to 7 days. Use 0 to bypass cache.`,type:`number`,default:1440*7}).option(`reinstall`,{description:`Bypass the cache for this run (alias for --cache-max-age=0).`,type:`boolean`,default:!1}).option(`frozen`,{description:`Use the project-local gjsify-lock.json verbatim — fail if missing or stale (no resolver pass).`,type:`boolean`,default:!1}).option(`verbose`,{description:`Verbose logging (passes --loglevel verbose to npm).`,type:`boolean`,default:!1}).option(`registry`,{description:`Registry URL override.`,type:`string`}),handler:async n=>{let a=parseSpec$1(n.spec),S=n.reinstall?0:n[`cache-max-age`],{pkgDir:C,cachedPkgName:N}=await ensurePkgDir(a,{verbose:n.verbose,registry:n.registry,cacheMaxAge:S,frozen:n.frozen}),F=(n[`--`]??[]).map(n=>String(n)),I=[...n.extraArgs??[],...F],{binName:H,extraArgs:W}=splitBinAndArgs(C,n.binOrArg,I),K=resolveGjsEntry(C,H);K.fromFallback&&Fe.warn(`[gjsify dlx] package "${N??a.kind}" has no \`gjsify\` field — falling back to package.json#main. Add \`gjsify.main\` to silence.`),await runGjsBundle(K.bundlePath,W)}};async function ensurePkgDir(n,a){if(n.kind===`local`)return{pkgDir:n.path,cachedPkgName:null};let S=cacheDirFor(createCacheKey({packages:[n.spec]})),C=a.cacheMaxAge>0?getValidCachedPkg(S,a.cacheMaxAge):void 0;if(C)return{pkgDir:resolveInstalledPkgDir(C,n.name),cachedPkgName:n.name};let N=makePrepareDir(S);return await installPackages({prefix:N,specs:[n.spec],verbose:a.verbose,registry:a.registry,lockfile:!0,frozen:a.frozen}),{pkgDir:resolveInstalledPkgDir(symlinkSwap(S,N),n.name),cachedPkgName:n.name}}function splitBinAndArgs(n,a,S){if(!a)return{binName:null,extraArgs:S};let C=jo(n,`package.json`);if(existsSync(C))try{let n=JSON.parse(readFileSync(C,`utf-8`)).gjsify?.bin;if(n&&Object.prototype.hasOwnProperty.call(n,a))return{binName:a,extraArgs:S}}catch{}return{binName:null,extraArgs:[a,...S]}}As(),kp(),Ho();function defaultGlobalLayout(){let n=process.env.GJSIFY_GLOBAL_PREFIX,a=process.env.GJSIFY_GLOBAL_BIN_DIR,S=homedir(),C=process.env.XDG_DATA_HOME??jo(S,`.local`,`share`);return{prefix:n??jo(C,`gjsify`,`global`),binDir:a??jo(S,`.local`,`bin`)}}function linkGlobalBins(n,a){mkdirSync(a.binDir,{recursive:!0});let S=[],C=buildLauncherEnvPreamble(detectNativePackages(a.prefix).map(n=>n.prebuildsDir));for(let N of n){let n=jo(a.prefix,`node_modules`,N),F=jo(n,`package.json`);if(!existsSync(F))continue;let I=pickBinMap(N,readJson(F));if(!(!I||I.size===0))for(let[N,F]of I){let I=jo(n,F);if(!existsSync(I))continue;try{chmodSync(I,493)}catch{}let H=jo(a.binDir,N);rmSync(H,{force:!0}),writeFileSync(H,I.endsWith(`.gjs.mjs`)||I.endsWith(`.mjs`)?`#!/bin/sh\n${C}exec gjs -m ${shQuote(I)} "$@"\n`:`#!/bin/sh\nexec ${shQuote(I)} "$@"\n`),chmodSync(H,493),S.push({name:N,target:I,link:H})}}return S}function shQuote(n){return`'${n.replace(/'/g,`'\\''`)}'`}function buildLauncherEnvPreamble(n){if(n.length===0)return``;let a=shQuote(n.join(`:`));return`GI_TYPELIB_PATH=${a}\${GI_TYPELIB_PATH:+":$GI_TYPELIB_PATH"}\nLD_LIBRARY_PATH=${a}\${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}\nexport GI_TYPELIB_PATH LD_LIBRARY_PATH\n`}function pickBinMap(n,a){let S=a.gjsify;if(S?.bin!==void 0)return normalizeBin(n,S.bin);let C=a.bin;return C===void 0?null:normalizeBin(n,C)}function normalizeBin(n,a){let S=new Map;if(typeof a==`string`){let C=n.startsWith(`@`)?n.slice(n.indexOf(`/`)+1):n;return S.set(C,a),S}for(let[n,C]of Object.entries(a))S.set(n,C);return S}function readJson(n){return JSON.parse(readFileSync(n,`utf-8`))}function binDirOnPath(n){let a=process.env.PATH??``,S=process.platform===`win32`?`;`:`:`,C=Oo(n);return a.split(S).some(n=>n&&Oo(n)===C)}function specToPackageName(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a<0)return n;let S=n.indexOf(`@`,a);return S<0?n:n.slice(0,S)}let a=n.indexOf(`@`);return a<0?n:n.slice(0,a)}Ie(),As(),Ho(),Hx();const aD={command:`install [packages..]`,description:`Install npm dependencies in the current project (or globally with -g), then run gjsify-aware post-checks.`,builder:n=>n.positional(`packages`,{description:`Optional package specs. With none, runs a full project install.`,type:`string`,array:!0}).option(`global`,{description:`Install into the user-global XDG location and symlink bins into ~/.local/bin.`,type:`boolean`,alias:`g`,default:!1}).option(`save-dev`,{type:`boolean`,alias:`D`}).option(`save-peer`,{type:`boolean`}).option(`save-optional`,{type:`boolean`,alias:`O`}).option(`immutable`,{description:`CI mode: install strictly from gjsify-lock.json, fail if the lockfile is missing or stale. Equivalent to yarn --immutable / npm ci --frozen-lockfile.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Verbose install logging.`,type:`boolean`,default:!1}).option(`backend`,{description:"Install backend. `native` (default) routes through `@gjsify/{semver,npm-registry,tar}` — no Node/npm at runtime. `npm` shells out to `npm install` as an escape hatch for cases the native backend does not yet model (Yarn PnP repos, lifecycle scripts). Overrides `GJSIFY_INSTALL_BACKEND` if both are set.",type:`string`,choices:[`native`,`npm`]}),handler:async n=>{if(n.immutable&&(n.packages&&n.packages.length>0&&(Fe.error(`gjsify install --immutable does not accept package arguments. Remove the package names or drop --immutable.`),process.exit(1)),n.global&&(Fe.error(`gjsify install --immutable is incompatible with --global.`),process.exit(1))),n.global){(!n.packages||n.packages.length===0)&&(Fe.error(`gjsify install --global requires at least one <pkg> argument.`),process.exit(1));for(let a of[`save-dev`,`save-peer`,`save-optional`])n[a]&&Fe.warn(`gjsify install --global ignores --${a}: global installs do not modify a project package.json.`);await installGlobalAndLink(n.packages,{verbose:n.verbose});return}if((n.backend??process.env.GJSIFY_INSTALL_BACKEND??`native`)===`npm`){await projectInstallViaNpm(n),await runPostInstallChecks();return}await projectInstallNative(n),await runPostInstallChecks()}};function isWorkspaceRoot(n){let a=readPackageJson$3(jo(n,`package.json`));return a?a.workspaces!==void 0:!1}function depKindFromArgs(n){return n[`save-dev`]?`devDependencies`:n[`save-peer`]?`peerDependencies`:n[`save-optional`]?`optionalDependencies`:`dependencies`}async function projectInstallNative(n){let a=process.cwd(),S=jo(a,`package.json`),C=[`.pnp.cjs`,`.pnp.loader.mjs`].filter(n=>existsSync(jo(a,n)));if(C.length>0)throw Error(`gjsify install uses the node_modules linker and cannot run in a Yarn PnP project (found ${C.join(`, `)} in ${a}).\n\n• If this project uses \`gjsify install\` to manage dependencies, these PnP files are stale residue from an earlier \`yarn install\` — remove them and re-run:\n rm -f .pnp.cjs .pnp.loader.mjs && rm -rf .yarn/cache .yarn/unplugged\n gjsify install\n\n• If instead you want Yarn to manage dependencies, set \`nodeLinker: node-modules\` in .yarnrc.yml and run \`yarn install\` (not \`gjsify install\`).`);if((!n.packages||n.packages.length===0)&&isWorkspaceRoot(a)){await workspaceInstall(a,n);return}let N,F=readPackageJson$3(S),I=F?projectSpecsFromPackageJson(F):[];if(n.packages&&n.packages.length>0){let a=new Set(n.packages.map(n=>parseSpec$2(n).name));N=[...I.filter(n=>!a.has(parseSpec$2(n).name)),...n.packages]}else{if(!F)throw Error(`gjsify install: no package.json in ${a}`);if(N=I,N.length===0){Fe.log(`gjsify install: no dependencies declared in package.json — nothing to do.`);return}}mkdirSync(a,{recursive:!0});let H=await installPackages({prefix:a,specs:N,verbose:n.verbose,lockfile:!n.immutable,frozen:n.immutable});if(n.packages&&n.packages.length>0&&F){let C=depKindFromArgs(n);for(let a of n.packages){let{name:n,range:S}=parseSpec$2(a),N=H.installed.find(a=>a.name===n);addDependencyEntry(F,n,S??(N?defaultRangeFromVersion(N.version):`latest`),C)}writePackageJson$1(S,F),n.immutable||syncLockfileRequested(a,projectSpecsFromPackageJson(F))}}function syncLockfileRequested(n,a){let S=jo(n,`gjsify-lock.json`);if(existsSync(S))try{let n=JSON.parse(readFileSync(S,`utf-8`)),C=[...a].sort(),N=[...n.requested??[]].sort();if(C.length===N.length&&C.every((n,a)=>n===N[a]))return;n.requested=a,writeFileSync(S,JSON.stringify(n,null,2)+`
793
+ `)}function parseSpec(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a<0)throw Error(`Invalid spec (scoped name without slash): ${n}`);let S=n.indexOf(`@`,a);return S<0?{name:n,range:`latest`}:{name:n.slice(0,S),range:n.slice(S+1)||`latest`}}let a=n.indexOf(`@`);return a<0?{name:n,range:`latest`}:{name:n.slice(0,a),range:n.slice(a+1)||`latest`}}function pickVersion(n,a){if(n[`dist-tags`][a])return n[`dist-tags`][a];let S;try{S=new GE(a)}catch{throw Error(`Invalid version range for ${n.name}: ${a}`)}return maxSatisfying(Object.keys(n.versions).filter(n=>{try{return new SemVer(n),!0}catch{return!1}}),S)}async function downloadAndExtractAll(n,a,S,C){let N=[...n].sort((n,a)=>depth(n.installPath)-depth(a.installPath)||(n.installPath<a.installPath?-1:1)),F=[],I=Math.max(1,Math.min(tD,N.length)),H=0,W=N.findIndex(n=>depth(n.installPath)>1),K=W<0?N.length:W;for(;H<K;){let n=N[H++];if(!n)break;await extractOne(n,a,S,C)}for(let n=0;n<I;n++)F.push((async()=>{for(;;){let n=H++;if(n>=N.length)return;let F=N[n];if(!F)return;await extractOne(F,a,S,C)}})());await Promise.all(F)}async function extractOne(n,a,S,C){let N=jo(a,n.installPath);C(`fetch: %s@%s ← %s (→ %s)`,n.name,n.version,n.tarballUrl,n.installPath);let F=await fetchTarball(n.tarballUrl,{npmrc:S,integrity:n.integrity,onRetry:({attempt:a,error:S,delayMs:N})=>{C(`tarball %s@%s: retry %d after %dms (%s)`,n.name,n.version,a,N,errMsg(S))}});rmSync(N,{recursive:!0,force:!0}),mkdirSync(N,{recursive:!0}),await extractTarball(F,N)}function depth(n){return n.split(`/node_modules/`).length}async function linkBins(n,a,S){let C=jo(a,`node_modules`,`.bin`),N=0;for(let S of n){if(!S.bin||depth(S.installPath)!==1)continue;let n=normalizeBin$1(S.name,S.bin);if(n.size!==0){mkdirSync(C,{recursive:!0});for(let[F,I]of n){let n=jo(a,S.installPath,I);if(!existsSync(n))continue;try{chmodSync(n,493)}catch{}let H=jo(C,F);rmSync(H,{force:!0});let W=Mo(C,n);try{symlinkSync(W,H),N++}catch{copyFileSync(n,H),chmodSync(H,493),N++}}}}N>0&&S(`bin: linked %d entry(ies) under .bin/`,N)}function normalizeBin$1(n,a){let S=new Map;if(typeof a==`string`){let C=n.startsWith(`@`)?n.slice(n.indexOf(`/`)+1):n;return S.set(C,a),S}for(let[n,C]of Object.entries(a))S.set(n,C);return S}async function loadNpmrc$1(n){let a=homedir(),S={registry:n.registry??qE,scopes:{},authTokens:{},basicAuth:{}};for(let C of[jo(a,`.npmrc`),jo(n.prefix,`.npmrc`)])if(existsSync(C))try{let n=parseNpmrc(readFileSync(C,`utf-8`));S={...S,...n,scopes:{...S.scopes,...n.scopes}}}catch(n){Fe.warn(`gjsify install: ignoring malformed ${C}: ${n.message}`)}let C=process.env.npm_config_registry;return C&&(S.registry=C),n.registry&&(S.registry=n.registry),S}function makeLogger(n){return n?(n,...a)=>{let S=n.replace(/%s|%d/g,()=>String(a.shift()));process.stderr.write(`gjsify install: ${S}\n`)}:()=>{}}var tD,nD,rD,iD=__esmMin(()=>{Ie(),As(),Ho(),kp(),KE(),JE(),$E(),tD=Number(process.env.GJSIFY_INSTALL_CONCURRENCY??`8`)||8,nD=`gjsify-lock.json`,rD=2,__name$1(normalizeBin$1,`normalizeBin`),__name$1(loadNpmrc$1,`loadNpmrc`)});Hx(),As(),Ho();const aD=process.env.GJSIFY_INSTALL_BACKEND??`native`;async function installPackages(n){if(aD===`npm`)return await installViaNpm(n),{installed:[]};let{installPackagesNative:a}=await Promise.resolve().then(()=>(iD(),eD));return{installed:await a(n)}}async function installViaNpm({prefix:n,specs:a,verbose:S,registry:C}){if(a.length===0)throw Error(`installPackages: empty specs list`);writeFileSync(jo(n,`package.json`),JSON.stringify({name:`gjsify-dlx-cache`,version:`0.0.0`,private:!0},null,2)),C&&writeFileSync(jo(n,`.npmrc`),`registry=${C}\n`);let N=[`install`,`--no-package-lock`,`--no-audit`,`--no-fund`,`--prefix`,n,...S?[`--loglevel`,`verbose`]:[`--loglevel`,`warn`],...a];await new Promise((n,a)=>{let S=spawn(`npm`,N,{stdio:`inherit`});S.on(`close`,S=>{S===0?n():a(Error(`npm install exited with code ${S}`))}),S.on(`error`,n=>{let S=n.code===`ENOENT`?`npm not found on PATH — install Node.js or set GJSIFY_INSTALL_BACKEND=native (not yet supported)`:`npm install failed: ${n.message}`;a(Error(S))})})}Ie(),As(),Ho();const oD={command:`dlx <spec> [binOrArg] [extraArgs..]`,description:`Run the GJS bundle of an npm-published package without installing it locally.`,builder:n=>n.parserConfiguration({"populate--":!0}).positional(`spec`,{description:"Package spec (`name`, `name@version`, `@scope/name@spec`, or local path).",type:`string`,demandOption:!0}).positional(`binOrArg`,{description:"Optional bin name when the package defines `gjsify.bin` with multiple entries; otherwise treated as the first argument forwarded to the bundle. To pass a flag here (e.g. `--help`) use the `--` separator: `gjsify dlx <pkg> -- --help`.",type:`string`}).positional(`extraArgs`,{description:"Extra args forwarded to `gjs -m <bundle>`. Use `--` before flags to bypass gjsify-level parsing (`gjsify dlx <pkg> -- --help --verbose`).",type:`string`,array:!0}).option(`cache-max-age`,{description:`Cache TTL in minutes. Defaults to 7 days. Use 0 to bypass cache.`,type:`number`,default:1440*7}).option(`reinstall`,{description:`Bypass the cache for this run (alias for --cache-max-age=0).`,type:`boolean`,default:!1}).option(`frozen`,{description:`Use the project-local gjsify-lock.json verbatim — fail if missing or stale (no resolver pass).`,type:`boolean`,default:!1}).option(`verbose`,{description:`Verbose logging (passes --loglevel verbose to npm).`,type:`boolean`,default:!1}).option(`registry`,{description:`Registry URL override.`,type:`string`}),handler:async n=>{let a=parseSpec$1(n.spec),S=n.reinstall?0:n[`cache-max-age`],{pkgDir:C,cachedPkgName:N}=await ensurePkgDir(a,{verbose:n.verbose,registry:n.registry,cacheMaxAge:S,frozen:n.frozen}),F=(n[`--`]??[]).map(n=>String(n)),I=[...n.extraArgs??[],...F],{binName:H,extraArgs:W}=splitBinAndArgs(C,n.binOrArg,I),K=resolveGjsEntry(C,H);K.fromFallback&&Fe.warn(`[gjsify dlx] package "${N??a.kind}" has no \`gjsify\` field — falling back to package.json#main. Add \`gjsify.main\` to silence.`),await runGjsBundle(K.bundlePath,W)}};async function ensurePkgDir(n,a){if(n.kind===`local`)return{pkgDir:n.path,cachedPkgName:null};let S=cacheDirFor(createCacheKey({packages:[n.spec]})),C=a.cacheMaxAge>0?getValidCachedPkg(S,a.cacheMaxAge):void 0;if(C)return{pkgDir:resolveInstalledPkgDir(C,n.name),cachedPkgName:n.name};let N=makePrepareDir(S);return await installPackages({prefix:N,specs:[n.spec],verbose:a.verbose,registry:a.registry,lockfile:!0,frozen:a.frozen}),{pkgDir:resolveInstalledPkgDir(symlinkSwap(S,N),n.name),cachedPkgName:n.name}}function splitBinAndArgs(n,a,S){if(!a)return{binName:null,extraArgs:S};let C=jo(n,`package.json`);if(existsSync(C))try{let n=JSON.parse(readFileSync(C,`utf-8`)).gjsify?.bin;if(n&&Object.prototype.hasOwnProperty.call(n,a))return{binName:a,extraArgs:S}}catch{}return{binName:null,extraArgs:[a,...S]}}As(),kp(),Ho();function defaultGlobalLayout(){let n=process.env.GJSIFY_GLOBAL_PREFIX,a=process.env.GJSIFY_GLOBAL_BIN_DIR,S=homedir(),C=process.env.XDG_DATA_HOME??jo(S,`.local`,`share`);return{prefix:n??jo(C,`gjsify`,`global`),binDir:a??jo(S,`.local`,`bin`)}}function linkGlobalBins(n,a){mkdirSync(a.binDir,{recursive:!0});let S=[],C=buildLauncherEnvPreamble(detectNativePackages(a.prefix).map(n=>n.prebuildsDir));for(let N of n){let n=jo(a.prefix,`node_modules`,N),F=jo(n,`package.json`);if(!existsSync(F))continue;let I=pickBinMap(N,readJson(F));if(!(!I||I.size===0))for(let[N,F]of I){let I=jo(n,F);if(!existsSync(I))continue;try{chmodSync(I,493)}catch{}let H=jo(a.binDir,N);rmSync(H,{force:!0}),writeFileSync(H,I.endsWith(`.gjs.mjs`)||I.endsWith(`.mjs`)?`#!/bin/sh\n${C}exec gjs -m ${shQuote(I)} "$@"\n`:`#!/bin/sh\nexec ${shQuote(I)} "$@"\n`),chmodSync(H,493),S.push({name:N,target:I,link:H})}}return S}function shQuote(n){return`'${n.replace(/'/g,`'\\''`)}'`}function buildLauncherEnvPreamble(n){if(n.length===0)return``;let a=shQuote(n.join(`:`));return`GI_TYPELIB_PATH=${a}\${GI_TYPELIB_PATH:+":$GI_TYPELIB_PATH"}\nLD_LIBRARY_PATH=${a}\${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}\nexport GI_TYPELIB_PATH LD_LIBRARY_PATH\n`}function pickBinMap(n,a){let S=a.gjsify;if(S?.bin!==void 0)return normalizeBin(n,S.bin);let C=a.bin;return C===void 0?null:normalizeBin(n,C)}function normalizeBin(n,a){let S=new Map;if(typeof a==`string`){let C=n.startsWith(`@`)?n.slice(n.indexOf(`/`)+1):n;return S.set(C,a),S}for(let[n,C]of Object.entries(a))S.set(n,C);return S}function readJson(n){return JSON.parse(readFileSync(n,`utf-8`))}function binDirOnPath(n){let a=process.env.PATH??``,S=process.platform===`win32`?`;`:`:`,C=Oo(n);return a.split(S).some(n=>n&&Oo(n)===C)}function specToPackageName(n){if(n.startsWith(`@`)){let a=n.indexOf(`/`);if(a<0)return n;let S=n.indexOf(`@`,a);return S<0?n:n.slice(0,S)}let a=n.indexOf(`@`);return a<0?n:n.slice(0,a)}Ie(),As(),Ho(),Hx();const sD={command:`install [packages..]`,description:`Install npm dependencies in the current project (or globally with -g), then run gjsify-aware post-checks.`,builder:n=>n.positional(`packages`,{description:`Optional package specs. With none, runs a full project install.`,type:`string`,array:!0}).option(`global`,{description:`Install into the user-global XDG location and symlink bins into ~/.local/bin.`,type:`boolean`,alias:`g`,default:!1}).option(`save-dev`,{type:`boolean`,alias:`D`}).option(`save-peer`,{type:`boolean`}).option(`save-optional`,{type:`boolean`,alias:`O`}).option(`immutable`,{description:`CI mode: install strictly from gjsify-lock.json, fail if the lockfile is missing or stale. Equivalent to yarn --immutable / npm ci --frozen-lockfile.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Verbose install logging.`,type:`boolean`,default:!1}).option(`backend`,{description:"Install backend. `native` (default) routes through `@gjsify/{semver,npm-registry,tar}` — no Node/npm at runtime. `npm` shells out to `npm install` as an escape hatch for cases the native backend does not yet model (Yarn PnP repos, lifecycle scripts). Overrides `GJSIFY_INSTALL_BACKEND` if both are set.",type:`string`,choices:[`native`,`npm`]}),handler:async n=>{if(n.immutable&&(n.packages&&n.packages.length>0&&(Fe.error(`gjsify install --immutable does not accept package arguments. Remove the package names or drop --immutable.`),process.exit(1)),n.global&&(Fe.error(`gjsify install --immutable is incompatible with --global.`),process.exit(1))),n.global){(!n.packages||n.packages.length===0)&&(Fe.error(`gjsify install --global requires at least one <pkg> argument.`),process.exit(1));for(let a of[`save-dev`,`save-peer`,`save-optional`])n[a]&&Fe.warn(`gjsify install --global ignores --${a}: global installs do not modify a project package.json.`);await installGlobalAndLink(n.packages,{verbose:n.verbose});return}if((n.backend??process.env.GJSIFY_INSTALL_BACKEND??`native`)===`npm`){await projectInstallViaNpm(n),await runPostInstallChecks();return}await projectInstallNative(n),await runPostInstallChecks()}};function isWorkspaceRoot(n){let a=readPackageJson$3(jo(n,`package.json`));return a?a.workspaces!==void 0:!1}function depKindFromArgs(n){return n[`save-dev`]?`devDependencies`:n[`save-peer`]?`peerDependencies`:n[`save-optional`]?`optionalDependencies`:`dependencies`}async function projectInstallNative(n){let a=process.cwd(),S=jo(a,`package.json`),C=[`.pnp.cjs`,`.pnp.loader.mjs`].filter(n=>existsSync(jo(a,n)));if(C.length>0)throw Error(`gjsify install uses the node_modules linker and cannot run in a Yarn PnP project (found ${C.join(`, `)} in ${a}).\n\n• If this project uses \`gjsify install\` to manage dependencies, these PnP files are stale residue from an earlier \`yarn install\` — remove them and re-run:\n rm -f .pnp.cjs .pnp.loader.mjs && rm -rf .yarn/cache .yarn/unplugged\n gjsify install\n\n• If instead you want Yarn to manage dependencies, set \`nodeLinker: node-modules\` in .yarnrc.yml and run \`yarn install\` (not \`gjsify install\`).`);if((!n.packages||n.packages.length===0)&&isWorkspaceRoot(a)){await workspaceInstall(a,n);return}let N,F=readPackageJson$3(S),I=F?projectSpecsFromPackageJson(F):[];if(n.packages&&n.packages.length>0){let a=new Set(n.packages.map(n=>parseSpec$2(n).name));N=[...I.filter(n=>!a.has(parseSpec$2(n).name)),...n.packages]}else{if(!F)throw Error(`gjsify install: no package.json in ${a}`);if(N=I,N.length===0){Fe.log(`gjsify install: no dependencies declared in package.json — nothing to do.`);return}}mkdirSync(a,{recursive:!0});let H=await installPackages({prefix:a,specs:N,verbose:n.verbose,lockfile:!n.immutable,frozen:n.immutable});if(n.packages&&n.packages.length>0&&F){let C=depKindFromArgs(n);for(let a of n.packages){let{name:n,range:S}=parseSpec$2(a),N=H.installed.find(a=>a.name===n);addDependencyEntry(F,n,S??(N?defaultRangeFromVersion(N.version):`latest`),C)}writePackageJson$1(S,F),n.immutable||syncLockfileRequested(a,projectSpecsFromPackageJson(F))}}function syncLockfileRequested(n,a){let S=jo(n,`gjsify-lock.json`);if(existsSync(S))try{let n=JSON.parse(readFileSync(S,`utf-8`)),C=[...a].sort(),N=[...n.requested??[]].sort();if(C.length===N.length&&C.every((n,a)=>n===N[a]))return;n.requested=a,writeFileSync(S,JSON.stringify(n,null,2)+`
794
794
  `)}catch{}}async function workspaceInstall(n,a){let S=discoverWorkspaces(n,{includeRoot:!0});if(S.length===0)throw Error(`gjsify install: ${n} has a "workspaces" field but no workspaces were discovered`);let C=new Map(S.map(n=>[n.name,n])),N=new Set,F=[];for(let n of S){let a=n.manifest;for(let S of[`dependencies`,`devDependencies`,`optionalDependencies`]){let I=a[S];if(I){for(let[a,S]of Object.entries(I))if(typeof S==`string`){if(S.startsWith(`workspace:`)){let N=C.get(a);if(!N)throw Error(`gjsify install: ${n.name} declares "${a}: ${S}" but no workspace with that name exists`);F.push({fromWorkspaceName:n.name,depName:a,targetLocation:N.location});continue}/^(link|file|portal|git\+|https?):/.test(S)||N.add(`${a}@${S}`)}}}}Fe.log(`gjsify install: ${S.length} workspace(s), ${N.size} external dep spec(s), ${F.length} workspace symlink(s)`);let I=S.find(a=>a.location===n)?.manifest,H=extractOverrides(I);N.size>0?await installPackages({prefix:n,specs:[...N],verbose:a.verbose,lockfile:!a.immutable,frozen:a.immutable,overrides:H}):a.verbose&&Fe.log(`gjsify install: no external deps to fetch`);for(let n of F){let a=C.get(n.fromWorkspaceName);if(!a)continue;let S=jo(a.location,`node_modules`,n.depName);mkdirSync(Po(S),{recursive:!0});try{rmSync(S,{recursive:!0,force:!0})}catch{}symlinkSync(Mo(Po(S),n.targetLocation),S)}F.length>0&&Fe.log(`gjsify install: wired ${F.length} workspace symlink(s)`);let W=jo(n,`node_modules`),K=0;for(let a of S){if(a.location===n||!a.name)continue;let S=jo(W,a.name),C=!1;try{lstatSync(S),C=!0}catch{}C||(mkdirSync(Po(S),{recursive:!0}),symlinkSync(Mo(Po(S),a.location),S),K++)}K>0&&Fe.log(`gjsify install: hoisted ${K} workspace(s) to root node_modules/`);let q=jo(n,`node_modules`,`.bin`),Y=detectNativePackages(n).map(n=>n.prebuildsDir),X=0;for(let n of S){let a=n.manifest,S=a.gjsify?.bin,C=a.bin,N=mergeWorkspaceBins(n.name,S,C);if(N.size!==0){mkdirSync(q,{recursive:!0});for(let[a,{nodeTarget:S,gjsTarget:C}]of N){let N=jo(q,a);try{rmSync(N,{force:!0})}catch{}writeFileSync(N,buildBinShim(n.location,S,C,Y),{mode:493}),chmodSync(N,493),X++}}}X>0&&Fe.log(`gjsify install: linked ${X} workspace bin(s) into node_modules/.bin/`)}function extractOverrides(n){if(!n)return;let a={},merge=(n,S)=>{if(n)for(let[C,N]of Object.entries(n)){if(C.startsWith(`_`))continue;if(typeof N!=`string`){Fe.warn(`gjsify install: ${S}["${C}"] is not a string — nested override shape isn't supported yet, skipping`);continue}let n=C,F=C.startsWith(`@`)?C.indexOf(`@`,1):C.indexOf(`@`);F>0&&(n=C.slice(0,F)),a[n]=N}};return merge(n.overrides,`overrides`),merge(n.resolutions,`resolutions`),Object.keys(a).length>0?a:void 0}function buildBinShim(n,a,S,C=[]){let N=a?jo(n,a):null,F=S?jo(n,S):null,I=C.length===0?``:(()=>{let n=`'${C.join(`:`).replace(/'/g,`'\\''`)}'`;return`GI_TYPELIB_PATH=${n}\${GI_TYPELIB_PATH:+":$GI_TYPELIB_PATH"}\nLD_LIBRARY_PATH=${n}\${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}\nexport GI_TYPELIB_PATH LD_LIBRARY_PATH\n`})();if(N&&F)return`#!/bin/sh\nif [ -f "${N}" ]; then\n exec node "${N}" "$@"\nfi\n${I}exec gjs -m "${F}" "$@"\n`;if(N)return`#!/bin/sh\nexec node "${N}" "$@"\n`;if(F)return`#!/bin/sh\n${I}exec gjs -m "${F}" "$@"\n`;throw Error(`buildBinShim: either nodeTarget or gjsTarget must be provided`)}function mergeWorkspaceBins(n,a,S){let C=new Map,N=n.startsWith(`@`)?n.slice(n.indexOf(`/`)+1):n,get=n=>{let a=C.get(n);return a||(a={},C.set(n,a)),a};if(typeof S==`string`)get(N).nodeTarget=S;else if(S&&typeof S==`object`)for(let[n,a]of Object.entries(S))typeof a==`string`&&a.length>0&&(get(n).nodeTarget=a);if(typeof a==`string`)get(N).gjsTarget=a;else if(a&&typeof a==`object`)for(let[n,S]of Object.entries(a))typeof S==`string`&&S.length>0&&(get(n).gjsTarget=S);return C}async function projectInstallViaNpm(n){let a=[`install`];n[`save-dev`]&&a.push(`--save-dev`),n[`save-peer`]&&a.push(`--save-peer`),n[`save-optional`]&&a.push(`--save-optional`),n.verbose&&a.push(`--loglevel`,`verbose`),n.packages&&n.packages.length>0&&a.push(...n.packages),await spawnNpm(a)}async function spawnNpm(n){return new Promise((a,S)=>{let C=spawn(`npm`,n,{stdio:`inherit`});C.on(`close`,n=>{n===0?a():S(Error(`npm install exited with code ${n}`))}),C.on(`error`,n=>{let a=n.code===`ENOENT`?`npm not found on PATH — install Node.js first.`:`npm install failed: ${n.message}`;S(Error(a))})}).catch(n=>{Fe.error(n.message),process.exit(1)})}async function installGlobalAndLink(n,a){let S=defaultGlobalLayout();mkdirSync(S.prefix,{recursive:!0}),Fe.log(`gjsify install --global → ${S.prefix}`),Fe.log(` bins → ${S.binDir}`),await installPackages({prefix:S.prefix,specs:n,verbose:a.verbose});let C=linkGlobalBins(n.map(specToPackageName),S);if(C.length===0)Fe.warn("\nNo bins declared (neither `gjsify.bin` nor `bin` in package.json) — nothing was symlinked.");else{Fe.log(`\nLinked ${C.length} bin(s):`);for(let n of C)Fe.log(` • ${n.link} → ${n.target}`)}C.length>0&&!binDirOnPath(S.binDir)&&Fe.warn(`\nNote: ${S.binDir} is not on your PATH.\nAdd it to your shell rc file:\n export PATH="${S.binDir}:$PATH"`)}async function runPostInstallChecks(){Fe.log(`
795
795
  --- gjsify post-install checks ---`);let n=runMinimalChecks().filter(n=>!n.found&&n.severity===`required`);if(n.length>0){Fe.warn(`Missing required system dependencies:
796
- `);for(let a of n)Fe.warn(` ✗ ${a.name}`);let a=buildInstallCommand(detectPackageManager$2(),n);a&&Fe.warn(`\nInstall with:\n ${a}`)}else Fe.log(`System dependencies OK.`);let a=detectNativePackages(process.cwd());if(a.length>0){Fe.log(`\nDetected ${a.length} @gjsify/* package(s) with native prebuilds:`);for(let n of a)Fe.log(` • ${n.name}`);Fe.log("\nUse `gjsify run <bundle>` to launch with LD_LIBRARY_PATH/GI_TYPELIB_PATH set.")}}Ie(),Hx(),kp();const oD={command:`foreach [script] [args..]`,description:"Run a workspace script across all (or filtered) workspaces. Drop-in for `yarn workspaces foreach`: -A/--all, -p/--parallel, -t/--topological, --include, --exclude, --no-private. Pass --exec to run an arbitrary command instead of a script.",builder:n=>n.positional(`script`,{description:"Script name to run in each workspace (`run <name>`-equivalent). With --exec, the command to run instead.",type:`string`}).positional(`args`,{description:`Extra arguments forwarded to each child invocation.`,type:`string`,array:!0}).option(`all`,{description:"Include workspaces declared as `private: true`.",type:`boolean`,alias:`A`,default:!1}).option(`parallel`,{description:`Run workspaces in parallel (capped by --jobs).`,type:`boolean`,alias:`p`,default:!1}).option(`topological`,{description:`Wait for each workspace's deps to finish before starting it (production deps only).`,type:`boolean`,alias:`t`,default:!1}).option(`topological-dev`,{description:`Like --topological but also respects devDependencies (often cyclic — use sparingly).`,type:`boolean`,default:!1}).option(`include`,{description:`Glob pattern to include workspaces by name (repeatable).`,type:`string`,array:!0}).option(`exclude`,{description:`Glob pattern to exclude workspaces by name (repeatable).`,type:`string`,array:!0}).option(`private`,{description:`Include private workspaces (default true). Pass --no-private to skip them.`,type:`boolean`,default:!0}).option(`verbose`,{description:`Echo every spawned command before running it.`,type:`boolean`,alias:`v`,default:!1}).option(`jobs`,{description:`Maximum concurrent workspaces in --parallel mode (default: cpu count).`,type:`number`,alias:`j`}).option(`exec`,{description:"Treat <script> [args..] as an arbitrary command (yarn `workspaces foreach exec`-equivalent) instead of a package.json script lookup. Workspace filtering by script presence is skipped. Use `-- <cmd> <args...>` to pass flags to the command without yargs intercepting them.",type:`boolean`,default:!1}).parserConfiguration({"populate--":!0}),handler:async n=>{let a=discoverWorkspaces(findWorkspaceRoot(process.cwd())??process.cwd()),S=n.exec===!0,C=n.script,N=n.args??[];if(S){let a=(n[`--`]??[]).filter(n=>typeof n==`string`);a.length>0&&(C?N=[...N,...a]:(C=a[0],N=[...N,...a.slice(1)])),C||(Fe.error("gjsify foreach --exec: missing command. Pass it after `--`, e.g. `gjsify foreach --exec -- npm publish --tag latest`."),process.exit(1))}let F=filterWorkspaces(a,{include:n.include,exclude:n.exclude,noPrivate:n.private===!1});if(!S){C||(Fe.error(`gjsify foreach: missing <script> positional. Pass --exec to run an arbitrary command instead.`),process.exit(1));let n=C;F=F.filter(a=>typeof(a.manifest.scripts??{})[n]==`string`)}if(F.length===0){Fe.log(`gjsify foreach: no workspaces match (${S?`exec`:`script`}="${C}", include=${JSON.stringify(n.include??[])}, exclude=${JSON.stringify(n.exclude??[])})`);return}(n.topological||n[`topological-dev`])&&(F=topologicalSort(buildDependencyGraph(F,{includeDev:n[`topological-dev`]===!0})));let I=n.verbose===!0,H=C;try{if(n.parallel&&!n.topological&&!n[`topological-dev`]){let a=n.jobs&&n.jobs>0?n.jobs:cpus().length;await runParallel(F,H,N,a,I,S)}else if(n.parallel){let a=n.jobs&&n.jobs>0?n.jobs:cpus().length;await runTopologicalParallel(F,H,N,a,I,n[`topological-dev`]===!0,S)}else await runSequential(F,H,N,I,S)}catch(n){Fe.error(n.message),process.exit(1)}process.exit(0)}};async function runSequential(n,a,S,C,N){for(let F of n)await runOne(F,a,S,!1,C,N)}async function runParallel(n,a,S,C,N,F){let I=0,H=[];for(let W=0;W<C;W++)H.push((async()=>{for(;I<n.length;)await runOne(n[I++],a,S,!0,N,F)})());await Promise.all(H)}async function runTopologicalParallel(n,a,S,C,N,F,I){let H=new Set(n.map(n=>n.name)),W=new Map;for(let a of n){let n=new Set,S=a.manifest;for(let a of[S.dependencies,F?S.devDependencies:void 0,S.optionalDependencies])if(a)for(let[S,C]of Object.entries(a))typeof C==`string`&&C.startsWith(`workspace:`)&&H.has(S)&&n.add(S);W.set(a.name,n)}let K=new Map(n.map(n=>[n.name,n])),q=new Set,Y=0;return new Promise((n,F)=>{let H=null,pump=()=>{if(!H){for(;Y<C;){let C=[...W.entries()].filter(([,n])=>[...n].every(n=>q.has(n))).map(([n])=>n);if(C.length===0)break;let X=C.sort()[0];W.delete(X),Y++,runOne(K.get(X),a,S,!0,N,I).then(()=>{if(Y--,q.add(X),W.size===0&&Y===0){n();return}pump()}).catch(n=>{H=n instanceof Error?n:Error(String(n)),Y===0&&F(H)})}W.size>0&&Y===0&&!H&&F(Error(`gjsify foreach --topological: stuck — workspaces ${[...W.keys()].join(`, `)} have unsatisfied deps in the selected set`))}};pump()})}async function runOne(n,a,S,C,N,F){if(F){N&&Fe.error(`[${n.name}] $ ${a} ${S.join(` `)}`),await spawnPrefixed(a,S,n.location,C?`[${n.name}] `:null);return}let I=detectPackageManager$1(),H=I===`gjsify`?[`run`,a,...S]:[`run`,a,...S.length>0?[`--`,...S]:[]];N&&Fe.error(`[${n.name}] $ ${I} ${H.join(` `)}`),await spawnPrefixed(I,H,n.location,C?`[${n.name}] `:null)}function detectPackageManager$1(){let n=process.env.npm_config_user_agent??``;return n.startsWith(`yarn/`)?`yarn`:n.startsWith(`gjsify/`)?`gjsify`:`npm`}__name$1(detectPackageManager$1,`detectPackageManager`);function spawnPrefixed(n,a,S,C){let N=process.env.FORCE_COLOR!==void 0||process.env.NO_COLOR!==void 0?{}:{FORCE_COLOR:`1`};return new Promise((F,I)=>{let H=spawn(n,a,{cwd:S,stdio:C?[`ignore`,`pipe`,`pipe`]:`inherit`,env:{...process.env,...N}});C&&H.stdout&&H.stderr&&(prefixLines(H.stdout,process.stdout,C),prefixLines(H.stderr,process.stderr,C)),H.on(`close`,S=>{S===0?F():I(Error(`${n} ${a.join(` `)} exited with code ${S}`))}),H.on(`error`,n=>I(n))})}function prefixLines(n,a,S){let C=``;n.setEncoding(`utf-8`),n.on(`data`,n=>{C+=n;let N;for(;(N=C.indexOf(`
796
+ `);for(let a of n)Fe.warn(` ✗ ${a.name}`);let a=buildInstallCommand(detectPackageManager$2(),n);a&&Fe.warn(`\nInstall with:\n ${a}`)}else Fe.log(`System dependencies OK.`);let a=detectNativePackages(process.cwd());if(a.length>0){Fe.log(`\nDetected ${a.length} @gjsify/* package(s) with native prebuilds:`);for(let n of a)Fe.log(` • ${n.name}`);Fe.log("\nUse `gjsify run <bundle>` to launch with LD_LIBRARY_PATH/GI_TYPELIB_PATH set.")}}Ie(),Hx(),kp();const cD={command:`foreach [script] [args..]`,description:"Run a workspace script across all (or filtered) workspaces. Drop-in for `yarn workspaces foreach`: -A/--all, -p/--parallel, -t/--topological, --include, --exclude, --no-private. Pass --exec to run an arbitrary command instead of a script.",builder:n=>n.positional(`script`,{description:"Script name to run in each workspace (`run <name>`-equivalent). With --exec, the command to run instead.",type:`string`}).positional(`args`,{description:`Extra arguments forwarded to each child invocation.`,type:`string`,array:!0}).option(`all`,{description:"Include workspaces declared as `private: true`.",type:`boolean`,alias:`A`,default:!1}).option(`parallel`,{description:`Run workspaces in parallel (capped by --jobs).`,type:`boolean`,alias:`p`,default:!1}).option(`topological`,{description:`Wait for each workspace's deps to finish before starting it (production deps only).`,type:`boolean`,alias:`t`,default:!1}).option(`topological-dev`,{description:`Like --topological but also respects devDependencies (often cyclic — use sparingly).`,type:`boolean`,default:!1}).option(`include`,{description:`Glob pattern to include workspaces by name (repeatable).`,type:`string`,array:!0}).option(`exclude`,{description:`Glob pattern to exclude workspaces by name (repeatable).`,type:`string`,array:!0}).option(`private`,{description:`Include private workspaces (default true). Pass --no-private to skip them.`,type:`boolean`,default:!0}).option(`verbose`,{description:`Echo every spawned command before running it.`,type:`boolean`,alias:`v`,default:!1}).option(`jobs`,{description:`Maximum concurrent workspaces in --parallel mode (default: cpu count).`,type:`number`,alias:`j`}).option(`exec`,{description:"Treat <script> [args..] as an arbitrary command (yarn `workspaces foreach exec`-equivalent) instead of a package.json script lookup. Workspace filtering by script presence is skipped. Use `-- <cmd> <args...>` to pass flags to the command without yargs intercepting them.",type:`boolean`,default:!1}).parserConfiguration({"populate--":!0}),handler:async n=>{let a=discoverWorkspaces(findWorkspaceRoot(process.cwd())??process.cwd()),S=n.exec===!0,C=n.script,N=n.args??[];if(S){let a=(n[`--`]??[]).filter(n=>typeof n==`string`);a.length>0&&(C?N=[...N,...a]:(C=a[0],N=[...N,...a.slice(1)])),C||(Fe.error("gjsify foreach --exec: missing command. Pass it after `--`, e.g. `gjsify foreach --exec -- npm publish --tag latest`."),process.exit(1))}let F=filterWorkspaces(a,{include:n.include,exclude:n.exclude,noPrivate:n.private===!1});if(!S){C||(Fe.error(`gjsify foreach: missing <script> positional. Pass --exec to run an arbitrary command instead.`),process.exit(1));let n=C;F=F.filter(a=>typeof(a.manifest.scripts??{})[n]==`string`)}if(F.length===0){Fe.log(`gjsify foreach: no workspaces match (${S?`exec`:`script`}="${C}", include=${JSON.stringify(n.include??[])}, exclude=${JSON.stringify(n.exclude??[])})`);return}(n.topological||n[`topological-dev`])&&(F=topologicalSort(buildDependencyGraph(F,{includeDev:n[`topological-dev`]===!0})));let I=n.verbose===!0,H=C;try{if(n.parallel&&!n.topological&&!n[`topological-dev`]){let a=n.jobs&&n.jobs>0?n.jobs:cpus().length;await runParallel(F,H,N,a,I,S)}else if(n.parallel){let a=n.jobs&&n.jobs>0?n.jobs:cpus().length;await runTopologicalParallel(F,H,N,a,I,n[`topological-dev`]===!0,S)}else await runSequential(F,H,N,I,S)}catch(n){Fe.error(n.message),process.exit(1)}process.exit(0)}};async function runSequential(n,a,S,C,N){for(let F of n)await runOne(F,a,S,!1,C,N)}async function runParallel(n,a,S,C,N,F){let I=0,H=[];for(let W=0;W<C;W++)H.push((async()=>{for(;I<n.length;)await runOne(n[I++],a,S,!0,N,F)})());await Promise.all(H)}async function runTopologicalParallel(n,a,S,C,N,F,I){let H=new Set(n.map(n=>n.name)),W=new Map;for(let a of n){let n=new Set,S=a.manifest;for(let a of[S.dependencies,F?S.devDependencies:void 0,S.optionalDependencies])if(a)for(let[S,C]of Object.entries(a))typeof C==`string`&&C.startsWith(`workspace:`)&&H.has(S)&&n.add(S);W.set(a.name,n)}let K=new Map(n.map(n=>[n.name,n])),q=new Set,Y=0;return new Promise((n,F)=>{let H=null,pump=()=>{if(!H){for(;Y<C;){let C=[...W.entries()].filter(([,n])=>[...n].every(n=>q.has(n))).map(([n])=>n);if(C.length===0)break;let X=C.sort()[0];W.delete(X),Y++,runOne(K.get(X),a,S,!0,N,I).then(()=>{if(Y--,q.add(X),W.size===0&&Y===0){n();return}pump()}).catch(n=>{H=n instanceof Error?n:Error(String(n)),Y===0&&F(H)})}W.size>0&&Y===0&&!H&&F(Error(`gjsify foreach --topological: stuck — workspaces ${[...W.keys()].join(`, `)} have unsatisfied deps in the selected set`))}};pump()})}async function runOne(n,a,S,C,N,F){if(F){N&&Fe.error(`[${n.name}] $ ${a} ${S.join(` `)}`),await spawnPrefixed(a,S,n.location,C?`[${n.name}] `:null);return}let I=detectPackageManager$1(),H=I===`gjsify`?[`run`,a,...S]:[`run`,a,...S.length>0?[`--`,...S]:[]];N&&Fe.error(`[${n.name}] $ ${I} ${H.join(` `)}`),await spawnPrefixed(I,H,n.location,C?`[${n.name}] `:null)}function detectPackageManager$1(){let n=process.env.npm_config_user_agent??``;return n.startsWith(`yarn/`)?`yarn`:n.startsWith(`gjsify/`)?`gjsify`:`npm`}__name$1(detectPackageManager$1,`detectPackageManager`);function spawnPrefixed(n,a,S,C){let N=process.env.FORCE_COLOR!==void 0||process.env.NO_COLOR!==void 0?{}:{FORCE_COLOR:`1`};return new Promise((F,I)=>{let H=spawn(n,a,{cwd:S,stdio:C?[`ignore`,`pipe`,`pipe`]:`inherit`,env:{...process.env,...N}});C&&H.stdout&&H.stderr&&(prefixLines(H.stdout,process.stdout,C),prefixLines(H.stderr,process.stderr,C)),H.on(`close`,S=>{S===0?F():I(Error(`${n} ${a.join(` `)} exited with code ${S}`))}),H.on(`error`,n=>I(n))})}function prefixLines(n,a,S){let C=``;n.setEncoding(`utf-8`),n.on(`data`,n=>{C+=n;let N;for(;(N=C.indexOf(`
797
797
  `))!==-1;)a.write(S+C.slice(0,N+1)),C=C.slice(N+1)}),n.on(`end`,()=>{C.length>0&&a.write(S+C+`
798
- `)})}Ie(),Hx();const sD={command:`workspace <name> <script> [args..]`,description:"Run a workspace script (`yarn workspace <name> run <script>` equivalent).",builder:n=>n.positional(`name`,{description:"Workspace name (matches package.json `name` field).",type:`string`,demandOption:!0}).positional(`script`,{description:`Script name to run inside that workspace.`,type:`string`,demandOption:!0}).positional(`args`,{description:`Extra arguments forwarded to the script.`,type:`string`,array:!0}),handler:async n=>{let a=discoverWorkspaces(findWorkspaceRoot(process.cwd())??process.cwd()),S=a.find(a=>a.name===n.name);S||(Fe.error(`gjsify workspace: no workspace named "${n.name}" — discovered ${a.length} workspace(s)`),process.exit(1)),typeof(S.manifest.scripts??{})[n.script]!=`string`&&(Fe.error(`gjsify workspace: workspace "${n.name}" has no script "${n.script}"`),process.exit(1));let C=detectPackageManager(),N=C===`gjsify`?[`run`,n.script,...n.args??[]]:[`run`,n.script,...n.args&&n.args.length>0?[`--`,...n.args]:[]],F=process.env.FORCE_COLOR!==void 0||process.env.NO_COLOR!==void 0?{}:{FORCE_COLOR:`1`};await new Promise((n,a)=>{let I=spawn(C,N,{cwd:S.location,stdio:`inherit`,env:{...process.env,...F}});I.on(`close`,S=>{S===0?n():a(Error(`${C} ${N.join(` `)} exited with code ${S}`))}),I.on(`error`,a)}).catch(n=>{Fe.error(n.message),process.exit(1)}),process.exit(0)}};function detectPackageManager(){let n=process.env.npm_config_user_agent??``;return n.startsWith(`yarn/`)?`yarn`:n.startsWith(`gjsify/`)?`gjsify`:`npm`}Hx(),Ho();async function runLifecycleScript(n,a,S,C={}){let N=(a.scripts??{})[S];if(typeof N!=`string`){if(C.optional!==!1)return!1;throw Error(`gjsify lifecycle-script: no "${S}" in ${n}/package.json`)}let F=findWorkspaceRoot(n),I=[jo(n,`node_modules`,`.bin`)];F&&F!==n&&I.push(jo(F,`node_modules`,`.bin`));let H=process.env.FORCE_COLOR!==void 0||process.env.NO_COLOR!==void 0?{}:{FORCE_COLOR:`1`},W={...process.env,...H,PATH:[...I,process.env.PATH??``].filter(Boolean).join(Bo),npm_lifecycle_event:S,npm_package_name:a.name??``,npm_package_version:a.version??``,...C.env??{}},K=C.stdio===`inherit-stderr`?[`inherit`,2,2]:C.stdio??`inherit`;return await new Promise((a,C)=>{let F=spawn(N,[],{cwd:n,env:W,stdio:K,shell:!0});F.on(`close`,N=>{N===0?a():C(Error(`gjsify lifecycle-script: "${S}" in ${n} exited with code ${N}`))}),F.on(`error`,C)}),!0}Ie(),As(),Ga(),Ho(),ZE();const cD={command:`pack [path]`,description:`Produce an npm-compatible .tgz tarball for the workspace at <path> (default: cwd). Rewrites workspace:^/~/* deps to resolved versions.`,builder:n=>n.positional(`path`,{description:`Workspace path (default: cwd).`,type:`string`}).option(`pack-destination`,{description:`Directory to write the tarball into. Default: workspace cwd.`,type:`string`}).option(`json`,{description:"Emit pack metadata as JSON on stdout (mirrors `npm pack --json`).",type:`boolean`,default:!1}).option(`dry-run`,{description:`Compute everything but do not write the .tgz.`,type:`boolean`,default:!1}).option(`ignore-scripts`,{description:"Skip the `prepack` lifecycle script before packing. Mirrors `npm pack --ignore-scripts`. Use when scripts are already run by the outer workflow.",type:`boolean`,default:!1}),handler:async n=>{let a=await packWorkspace(Oo(n.path??process.cwd()),{destination:n[`pack-destination`],dryRun:n[`dry-run`]===!0,lifecycleScripts:n[`ignore-scripts`]?[]:[`prepack`],lifecycleStdio:n.json?`inherit-stderr`:`inherit`});n.json?process.stdout.write(`${JSON.stringify([a],null,2)}\n`):process.stdout.write(`${a.filename}\n`)}};async function packWorkspace(n,a={}){let S=jo(n,`package.json`);if(!existsSync(S))throw Error(`gjsify pack: no package.json at ${n}`);let C=readFileSync(S,`utf-8`),N=JSON.parse(C),F=typeof N.name==`string`?N.name:``,I=typeof N.version==`string`?N.version:`0.0.0`;if(!F)throw Error(`gjsify pack: package.json at ${n} has no "name"`);let H=a.lifecycleScripts??[`prepack`];for(let S of H)await runLifecycleScript(n,N,S,{optional:!0,stdio:a.lifecycleStdio});let W=readFileSync(S,`utf-8`),K=W===C?N:JSON.parse(W),q=a.skipWorkspaceRewrite?K:rewriteWorkspaceDeps(K,n),Y=JSON.stringify(q,null,indentOf(W))+`
799
- `,X=collectFiles(n,K),te=[{name:`package/`,directory:!0,mode:493}],ne=[],re=0;for(let a of X){let S;S=a===`package.json`?new TextEncoder().encode(Y):new Uint8Array(readFileSync(jo(n,a)));let C=statSync(jo(n,a)).mode&511;te.push({name:`package/${a}`,body:S,mode:C,mtime:0}),ne.push({path:a,size:S.byteLength,mode:C}),re+=S.byteLength}let ie=await gzip(createTarball(te)),ae=`${F.startsWith(`@`)?F.slice(1).replace(`/`,`-`):F}-${I}.tgz`,oe=createHash(`sha1`).update(ie).digest(`hex`),Z=`sha512-${createHash(`sha512`).update(ie).digest(`base64`)}`,se=a.destination?Oo(a.destination):n,ce=jo(se,ae);return a.dryRun||(mkdirSync(se,{recursive:!0}),writeFileSync(ce,ie)),{filename:ae,name:F,version:I,size:ie.byteLength,unpackedSize:re,shasum:oe,integrity:Z,entryCount:ne.length,files:ne,absolutePath:a.dryRun?null:ce}}function collectFiles(n,a){let S=forceIncluded(a),C=Array.isArray(a.files)?a.files.filter(n=>typeof n==`string`):null,N;N=C?expandFilesPatterns(n,C):walkAll(n);let F=loadIgnore(n),I=new Set;for(let n of N)F(n)||I.add(n);for(let a of S)existsSync(jo(n,a))&&I.add(a);return[...I].sort()}const lD=new Set([`.git`,`.svn`,`.hg`,`.gitignore`,`.gitattributes`,`.npmrc`,`CVS`,`.DS_Store`,`node_modules`,`.npmignore`,`package-lock.json`,`gjsify-lock.json`,`yarn.lock`,`yarn-error.log`,`.yarn`,`.pnp.cjs`,`.pnp.loader.mjs`,`tsconfig.tsbuildinfo`]);function forceIncluded(n){let a=new Set;a.add(`package.json`);for(let n of[`README`,`README.md`,`LICENSE`,`LICENSE.md`,`NOTICE`,`NOTICE.md`])a.add(n);let S=typeof n.main==`string`?n.main:null;S&&a.add(S.replace(/^\.\//,``));let C=n.bin;if(typeof C==`string`)a.add(C.replace(/^\.\//,``));else if(C&&typeof C==`object`)for(let n of Object.values(C))typeof n==`string`&&a.add(n.replace(/^\.\//,``));return[...a]}function walkAll(n,a=``){let S=[],C=a?jo(n,a):n,N;try{N=readdirSync(C,{withFileTypes:!0})}catch{return S}for(let C of N){if(lD.has(C.name)||C.name.startsWith(`.tsbuildinfo`))continue;let N=a?`${a}/${C.name}`:C.name;C.isDirectory()?S.push(...walkAll(n,N)):C.isFile()&&S.push(N)}return S}function expandFilesPatterns(n,a){let S=new Set;for(let C of a){let a=C.replace(/^\.\//,``).replace(/\/$/,``),N=jo(n,a);if(!existsSync(N))continue;let F=statSync(N);if(F.isDirectory())for(let C of walkAll(n,a))S.add(C);else F.isFile()&&S.add(a);!existsSync(N)&&/[*?[]/.test(C)&&Fe.warn(`gjsify pack: files entry "${C}" looks like a glob but glob expansion isn't implemented — pass literal files/dirs`)}return[...S]}function loadIgnore(n){let a=jo(n,`.npmignore`),S=jo(n,`.gitignore`),C=[],N=existsSync(a)?a:existsSync(S)?S:null;if(N){let n=readFileSync(N,`utf-8`).split(`
800
- `);for(let a of n){let n=a.trim();!n||n.startsWith(`#`)||n.startsWith(`!`)||C.push(globToRegex(n))}}return n=>{for(let a of C)if(a.test(n))return!0;return!1}}function globToRegex(n){let a=n.replace(/^\//,``);return a=a.replace(/[.+^${}()|[\]\\]/g,`\\$&`),a=a.replace(/\*\*/g,`__DOUBLESTAR__`).replace(/\*/g,`[^/]*`).replace(/__DOUBLESTAR__/g,`.*`),a=a.replace(/\?/g,`[^/]`),RegExp(`^${a}($|/)`)}function rewriteWorkspaceDeps(n,a){let S=findWorkspaceRoot(a);if(!S)return n;let C=new Map;for(let n of discoverWorkspaces(S))n.name&&n.version&&C.set(n.name,n.version);let N=JSON.parse(JSON.stringify(n));for(let n of[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`]){let a=N[n];if(a)for(let[n,F]of Object.entries(a)){if(typeof F!=`string`||!F.startsWith(`workspace:`))continue;let I=C.get(n);if(!I)throw Error(`gjsify pack: ${N.name} declares workspace:^ on ${n} but no sibling workspace with that name exists in the monorepo at ${S}`);let H=F.slice(10);H===`*`||H===``?a[n]=I:H===`^`||H===`~`?a[n]=`${H}${I}`:a[n]=H}}return N}function indentOf(n){let a=n.match(/\n([ \t]+)"/);return a?a[1]:` `}var OidcUnavailableError=class extends Error{reason;constructor(n,a){super(n),this.reason=a,this.name=`OidcUnavailableError`}},OidcExchangeError=class extends Error{status;body;packageName;constructor(n,a,S,C){super(n),this.status=a,this.body=S,this.packageName=C,this.name=`OidcExchangeError`}};function hasGithubOidcEnv(){return!!(process.env.ACTIONS_ID_TOKEN_REQUEST_URL&&process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN)}async function fetchGithubOidcToken(n,a){let S=process.env.ACTIONS_ID_TOKEN_REQUEST_URL,C=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!S||!C)throw new OidcUnavailableError("GitHub Actions OIDC env vars (ACTIONS_ID_TOKEN_REQUEST_{URL,TOKEN}) not set. The calling workflow needs `permissions: id-token: write`.",`no-env`);let N=new URL(S);N.searchParams.set(`audience`,n),a?.(`gjsify oidc: GET ${N.href.replace(C,`<bearer>`)}`);let F=await fetch(N.href,{method:`GET`,headers:{Accept:`application/json`,Authorization:`Bearer ${C}`}});if(!F.ok){let n=await F.text().catch(()=>`<no body>`);throw new OidcUnavailableError(`Failed to fetch GitHub OIDC id_token: ${F.status} ${F.statusText} — ${n.slice(0,200)}`,`fetch-id-token`)}let I=await F.json().catch(()=>({}));if(!I.value)throw new OidcUnavailableError("GitHub OIDC response missing `value` field",`no-id-token`);return I.value}async function exchangeOidcForNpmToken(n){let{packageName:a,registry:S,idToken:C,log:N}=n,F=`${S.endsWith(`/`)?S.slice(0,-1):S}/-/npm/v1/oidc/token/exchange/package/${a.startsWith(`@`)?(()=>{let n=a.indexOf(`/`),S=a.slice(1,n),C=a.slice(n+1);return`@${encodeURIComponent(S)}%2f${encodeURIComponent(C)}`})():encodeURIComponent(a)}`;N?.(`gjsify oidc: POST ${F}`);let I=await fetch(F,{method:`POST`,headers:{Authorization:`Bearer ${C}`,"Content-Type":`application/json`,Accept:`application/json`},body:`{}`}),H=await I.text().catch(()=>``);if(!I.ok)throw new OidcExchangeError(`npm OIDC token exchange failed for ${a}: ${I.status} ${I.statusText} — ${H.slice(0,300)}`,I.status,H,a);let W;try{W=JSON.parse(H)}catch{throw new OidcExchangeError(`npm OIDC token exchange returned non-JSON body for ${a}: ${H.slice(0,200)}`,I.status,H,a)}if(!W.token)throw new OidcExchangeError(`npm OIDC token exchange returned no \`token\` field for ${a}`,I.status,H,a);return W.token}async function getNpmTrustedToken(n){let a=`npm:${new URL(n.registry).hostname}`,S=await fetchGithubOidcToken(a,n.log);return{token:await exchangeOidcForNpmToken({...n,idToken:S}),audience:a}}Ie(),As(),kp(),Ho(),KE();const uD={command:`publish [path]`,description:"Pack + upload the workspace at <path> (default: cwd) to its npm registry. Drop-in for `npm publish` with workspace:^ rewrite handled automatically.",builder:n=>n.positional(`path`,{description:`Workspace path (default: cwd).`,type:`string`}).option(`tag`,{description:`Dist-tag to publish under. Default: latest.`,type:`string`,default:`latest`}).option(`access`,{description:"Package access — `public` or `restricted` (required for first publish of scoped packages on the public registry).",type:`string`}).option(`otp`,{description:"npm 2FA one-time code; sent as the `npm-otp` header. Required for manual publishes from a 2FA-enabled account.",type:`string`}).option(`tolerate-republish`,{description:'Treat "version already published" as success — covers both classic 409 Conflict and the npm OIDC-path 403 Forbidden + `"previously published"` body shape. Matches yarn `--tolerate-republish`.',type:`boolean`,default:!1}).option(`tolerate-untrusted-new`,{description:'Skip (exit 0) when OIDC token exchange returns `package not found` AND no fallback token is configured — i.e. a never-before-published `@scope/<name>` whose Trusted Publisher entry hasn\'t been set up on npmjs.com yet. Without this flag, one un-bootstrapped new package breaks the entire serialized `gjsify foreach publish` loop. Pair with `--tolerate-republish` in CI release workflows so a fresh-merged package gracefully skips its first CI publish, leaving the manual-bootstrap step to a maintainer (see AGENTS.md "New @gjsify/* package: first-publish + Trusted Publisher bootstrap").',type:`boolean`,default:!1}).option(`provenance`,{description:`Pass-through flag — recorded in the payload but no signing happens (gjsify doesn't ship a sigstore signer yet).`,type:`boolean`,default:!1}).option(`dry-run`,{description:`Pack only, do not PUT.`,type:`boolean`,default:!1}).option(`json`,{description:`Emit publish metadata as JSON on stdout.`,type:`boolean`,default:!1}).option(`trusted`,{description:"Authenticate via npm Trusted Publishing (OIDC): exchange the GitHub Actions id-token for a short-lived npm token. Pass `--trusted` to force this mode (errors if env vars missing). Omit to auto-detect: OIDC is used iff `ACTIONS_ID_TOKEN_REQUEST_URL`+`_TOKEN` are set AND no `_authToken` is present in the resolved npmrc; otherwise the long-lived token path is used. Requires the calling workflow to declare `permissions: id-token: write` AND the target package to have a Trusted Publisher configured on npmjs.com.",type:`boolean`,default:void 0}).option(`check-trusted`,{description:"Diagnostic mode: perform the OIDC id-token request + npm token exchange, report success/failure, then exit WITHOUT publishing. Useful as a bulk-verifier (e.g. via `gjsify foreach publish --check-trusted`) to confirm Trusted Publisher config across many packages.",type:`boolean`,default:!1}),handler:async n=>{let a=Oo(n.path??process.cwd()),S=n.tag??`latest`,C=n.access,N=n.otp,F=n[`tolerate-republish`]===!0,I=n[`tolerate-untrusted-new`]===!0,H=n.provenance===!0,W=n[`dry-run`]===!0,K=n[`check-trusted`]===!0,q=n.trusted,Y=!!process.env.GJSIFY_PUBLISH_DEBUG;if(H&&Fe.warn(`gjsify publish: --provenance recorded but not signed (no sigstore integration yet).`),K){let S=jo(a,`package.json`),C=JSON.parse(readFileSync(S,`utf-8`));if(typeof C.name!=`string`&&(process.stderr.write(`gjsify publish --check-trusted: ${S} has no \`name\` field\n`),process.exit(2)),C.private===!0){let a={ok:!0,action:`check-trusted`,name:C.name,skipped:`private`};n.json?process.stdout.write(`${JSON.stringify(a)}\n`):process.stdout.write(`- ${C.name}: skipped (private package)\n`);return}let N=await loadNpmrc(a),F=process.env.npm_config_registry??registryFor(C.name,N)??GE;try{await getNpmTrustedToken({packageName:C.name,registry:F,log:Y?n=>Fe.error(n):void 0});let a={ok:!0,action:`check-trusted`,name:C.name,registry:F};n.json?process.stdout.write(`${JSON.stringify(a)}\n`):process.stdout.write(`✓ ${C.name}: trusted publisher OK\n`);return}catch(a){handleOidcFailure(a,C.name,n.json===!0);return}}let X=await packWorkspace(a,{dryRun:!0,lifecycleScripts:[`prepublishOnly`,`prepack`],lifecycleStdio:n.json?`inherit-stderr`:`inherit`}),te=await packWorkspaceToBytes(a),ne=readFileSync(jo(a,`package.json`),`utf-8`),re=await loadRewrittenManifest(a,JSON.parse(ne));if(W){let a={ok:!0,action:`dry-run`,name:X.name,version:X.version,filename:X.filename,size:X.size,shasum:X.shasum,integrity:X.integrity};n.json?process.stdout.write(`${JSON.stringify(a,null,2)}\n`):process.stdout.write(`+ ${X.name}@${X.version} (dry-run, ${X.size} bytes, ${X.entryCount} files)\n`);return}let ie=await loadNpmrc(a),ae=process.env.npm_config_registry??registryFor(X.name,ie)??GE,oe=ae.endsWith(`/`)?ae.slice(0,-1):ae,Z=`${oe}/${X.name.startsWith(`@`)?(()=>{let n=X.name.indexOf(`/`),a=X.name.slice(1,n),S=X.name.slice(n+1);return`@${encodeURIComponent(a)}%2f${encodeURIComponent(S)}`})():encodeURIComponent(X.name)}`,se=`${X.name.includes(`/`)?X.name.slice(X.name.indexOf(`/`)+1):X.name}-${X.version}.tgz`,ce=buildPublishPayload({pkg:re,tag:S,access:C,tarballBytes:te,tarballUrl:`${oe}/${X.name}/-/${se}`,packed:{...X,wireFilename:se},provenance:H}),le=buildHeaders(Z,{npmrc:ie});le[`content-type`]=`application/json`,le.accept=`*/*`,N&&(le[`npm-otp`]=N);let ue=q===!0||q===void 0&&hasGithubOidcEnv()&&!process.env.NODE_AUTH_TOKEN,de=`token`;if(ue)try{let{token:n,audience:a}=await getNpmTrustedToken({packageName:X.name,registry:ae,log:Y?n=>Fe.error(n):void 0});le.authorization=`Bearer ${n}`,de=`oidc`,Y&&Fe.error(`gjsify publish: OIDC token obtained (audience=${a})`)}catch(a){if(a instanceof OidcExchangeError&&a.status===404&&/package not found/i.test(a.body)&&I){let a=`${X.name}@${X.version} (skipped — no Trusted Publisher on npm, see AGENTS.md "New @gjsify/* package: first-publish + Trusted Publisher bootstrap")`;n.json?process.stdout.write(`${JSON.stringify({ok:!0,action:`skipped-untrusted-new`,name:X.name,version:X.version,reason:`no-trusted-publisher`},null,2)}\n`):process.stdout.write(`~ ${a}\n`);return}if(q===!0&&(handleOidcFailure(a,X.name,n.json===!0),process.exit(1)),Y){let n=a instanceof Error?a.message:String(a);Fe.error(`gjsify publish: OIDC auto-detect failed (${n}) — falling back to token auth`)}}Y&&(Fe.error(`gjsify publish: PUT ${Z} (${X.name}@${X.version})`),Fe.error(` auth-mode: ${de}`),Fe.error(` authorization: ${le.authorization?`(set)`:`(none)`}`),Fe.error(` otp: ${le[`npm-otp`]?`(set)`:`(none)`}`),Fe.error(` payload size: ${JSON.stringify(ce).length} bytes`));let fe=JSON.stringify(ce);async function doPut(n){return fetch(Z,{method:`PUT`,headers:n,body:fe})}let pe=await doPut(le);if(!N&&pe.status===401){let n=pe.headers.get(`www-authenticate`)??``,a=await pe.text().catch(()=>``);if(n.toLowerCase().split(/,\s*/).includes(`otp`)||/one-time pass/i.test(a))if(process.stdin.isTTY&&process.stdout.isTTY){process.stdout.write(`This operation requires a one-time password.
801
- Enter OTP: `);let n=await readLineFromStdin();n?pe=await doPut({...le,"npm-otp":n}):(Fe.error("gjsify publish: no OTP entered — re-run with `--otp <code>`"),process.exit(1))}else Fe.error("gjsify publish: npm requires a 2FA one-time code — re-run with `--otp <code>`"),process.exit(1)}if(pe.ok){let a={ok:!0,name:X.name,version:X.version,filename:X.filename,size:X.size,integrity:X.integrity,tag:S,registry:oe};n.json?process.stdout.write(`${JSON.stringify(a,null,2)}\n`):process.stdout.write(`+ ${X.name}@${X.version}\n`);return}let me=await pe.text().catch(()=>`<no body>`);if((pe.status===409||pe.status===403&&/previously published/i.test(me))&&F){let a={ok:!0,action:`republish-tolerated`,name:X.name,version:X.version,status:pe.status};n.json?process.stdout.write(`${JSON.stringify(a,null,2)}\n`):process.stdout.write(`= ${X.name}@${X.version} (already published, tolerated)\n`);return}Fe.error(`gjsify publish: ${X.name}@${X.version} — ${pe.status} ${pe.statusText}`),Fe.error(me),process.exit(1)}};async function packWorkspaceToBytes(n){let a=`/tmp/gjsify-publish-${process.pid}-${Date.now()}`,S=await packWorkspace(n,{destination:a,dryRun:!1,lifecycleScripts:[]});if(!S.absolutePath)throw Error(`gjsify publish: pack did not produce a file`);let C=new Uint8Array(readFileSync(S.absolutePath));try{(await Promise.resolve().then(()=>(As(),Ds))).rmSync(S.absolutePath)}catch{}try{(await Promise.resolve().then(()=>(As(),Ds))).rmdirSync(a)}catch{}return C}async function loadRewrittenManifest(n,a){let S=`/tmp/gjsify-publish-manifest-${process.pid}-${Date.now()}.tgz`,C=await packWorkspace(n,{destination:S.substring(0,S.lastIndexOf(`/`)),dryRun:!1}),{rmSync:N}=await Promise.resolve().then(()=>(As(),Ds));if(!C.absolutePath)throw Error(`gjsify publish: pack did not produce a file`);let{gunzip:F,parseTar:I}=await Promise.resolve().then(()=>(ZE(),XE)),H=new Uint8Array(readFileSync(C.absolutePath));N(C.absolutePath);let W=await F(H);for(let n of I(W))if(n.name===`package/package.json`&&n.body)return JSON.parse(new TextDecoder().decode(n.body));return a}async function loadNpmrc(n){let a=[],S=jo(n,`.npmrc`);existsSync(S)&&a.push(readFileSync(S,`utf-8`));let C=process.env.NPM_CONFIG_USERCONFIG;if(C&&existsSync(C))a.push(readFileSync(C,`utf-8`));else{let n=jo(homedir(),`.npmrc`);existsSync(n)&&a.push(readFileSync(n,`utf-8`))}return parseNpmrc(a.join(`
798
+ `)})}Ie(),Hx();const lD={command:`workspace <name> <script> [args..]`,description:"Run a workspace script (`yarn workspace <name> run <script>` equivalent).",builder:n=>n.positional(`name`,{description:"Workspace name (matches package.json `name` field).",type:`string`,demandOption:!0}).positional(`script`,{description:`Script name to run inside that workspace.`,type:`string`,demandOption:!0}).positional(`args`,{description:`Extra arguments forwarded to the script.`,type:`string`,array:!0}),handler:async n=>{let a=discoverWorkspaces(findWorkspaceRoot(process.cwd())??process.cwd()),S=a.find(a=>a.name===n.name);S||(Fe.error(`gjsify workspace: no workspace named "${n.name}" — discovered ${a.length} workspace(s)`),process.exit(1)),typeof(S.manifest.scripts??{})[n.script]!=`string`&&(Fe.error(`gjsify workspace: workspace "${n.name}" has no script "${n.script}"`),process.exit(1));let C=detectPackageManager(),N=C===`gjsify`?[`run`,n.script,...n.args??[]]:[`run`,n.script,...n.args&&n.args.length>0?[`--`,...n.args]:[]],F=process.env.FORCE_COLOR!==void 0||process.env.NO_COLOR!==void 0?{}:{FORCE_COLOR:`1`};await new Promise((n,a)=>{let I=spawn(C,N,{cwd:S.location,stdio:`inherit`,env:{...process.env,...F}});I.on(`close`,S=>{S===0?n():a(Error(`${C} ${N.join(` `)} exited with code ${S}`))}),I.on(`error`,a)}).catch(n=>{Fe.error(n.message),process.exit(1)}),process.exit(0)}};function detectPackageManager(){let n=process.env.npm_config_user_agent??``;return n.startsWith(`yarn/`)?`yarn`:n.startsWith(`gjsify/`)?`gjsify`:`npm`}Hx(),Ho();async function runLifecycleScript(n,a,S,C={}){let N=(a.scripts??{})[S];if(typeof N!=`string`){if(C.optional!==!1)return!1;throw Error(`gjsify lifecycle-script: no "${S}" in ${n}/package.json`)}let F=findWorkspaceRoot(n),I=[jo(n,`node_modules`,`.bin`)];F&&F!==n&&I.push(jo(F,`node_modules`,`.bin`));let H=process.env.FORCE_COLOR!==void 0||process.env.NO_COLOR!==void 0?{}:{FORCE_COLOR:`1`},W={...process.env,...H,PATH:[...I,process.env.PATH??``].filter(Boolean).join(Bo),npm_lifecycle_event:S,npm_package_name:a.name??``,npm_package_version:a.version??``,...C.env},K=C.stdio===`inherit-stderr`?[`inherit`,2,2]:C.stdio??`inherit`;return await new Promise((a,C)=>{let F=spawn(N,[],{cwd:n,env:W,stdio:K,shell:!0});F.on(`close`,N=>{N===0?a():C(Error(`gjsify lifecycle-script: "${S}" in ${n} exited with code ${N}`))}),F.on(`error`,C)}),!0}Ie(),As(),Ga(),Ho(),$E();const uD={command:`pack [path]`,description:`Produce an npm-compatible .tgz tarball for the workspace at <path> (default: cwd). Rewrites workspace:^/~/* deps to resolved versions.`,builder:n=>n.positional(`path`,{description:`Workspace path (default: cwd).`,type:`string`}).option(`pack-destination`,{description:`Directory to write the tarball into. Default: workspace cwd.`,type:`string`}).option(`json`,{description:"Emit pack metadata as JSON on stdout (mirrors `npm pack --json`).",type:`boolean`,default:!1}).option(`dry-run`,{description:`Compute everything but do not write the .tgz.`,type:`boolean`,default:!1}).option(`ignore-scripts`,{description:"Skip the `prepack` lifecycle script before packing. Mirrors `npm pack --ignore-scripts`. Use when scripts are already run by the outer workflow.",type:`boolean`,default:!1}),handler:async n=>{let a=await packWorkspace(Oo(n.path??process.cwd()),{destination:n[`pack-destination`],dryRun:n[`dry-run`]===!0,lifecycleScripts:n[`ignore-scripts`]?[]:[`prepack`],lifecycleStdio:n.json?`inherit-stderr`:`inherit`});n.json?process.stdout.write(`${JSON.stringify([a],null,2)}\n`):process.stdout.write(`${a.filename}\n`)}};async function packWorkspace(n,a={}){let S=jo(n,`package.json`);if(!existsSync(S))throw Error(`gjsify pack: no package.json at ${n}`);let C=readFileSync(S,`utf-8`),N=JSON.parse(C),F=typeof N.name==`string`?N.name:``,I=typeof N.version==`string`?N.version:`0.0.0`;if(!F)throw Error(`gjsify pack: package.json at ${n} has no "name"`);let H=a.lifecycleScripts??[`prepack`];for(let S of H)await runLifecycleScript(n,N,S,{optional:!0,stdio:a.lifecycleStdio});let W=readFileSync(S,`utf-8`),K=W===C?N:JSON.parse(W),q=a.skipWorkspaceRewrite?K:rewriteWorkspaceDeps(K,n),Y=JSON.stringify(q,null,indentOf(W))+`
799
+ `,X=collectFiles(n,K),te=[{name:`package/`,directory:!0,mode:493}],ne=[],re=0;for(let a of X){let S;S=a===`package.json`?new TextEncoder().encode(Y):new Uint8Array(readFileSync(jo(n,a)));let C=statSync(jo(n,a)).mode&511;te.push({name:`package/${a}`,body:S,mode:C,mtime:0}),ne.push({path:a,size:S.byteLength,mode:C}),re+=S.byteLength}let ie=await gzip(createTarball(te)),ae=`${F.startsWith(`@`)?F.slice(1).replace(`/`,`-`):F}-${I}.tgz`,oe=createHash(`sha1`).update(ie).digest(`hex`),Z=`sha512-${createHash(`sha512`).update(ie).digest(`base64`)}`,se=a.destination?Oo(a.destination):n,ce=jo(se,ae);return a.dryRun||(mkdirSync(se,{recursive:!0}),writeFileSync(ce,ie)),{filename:ae,name:F,version:I,size:ie.byteLength,unpackedSize:re,shasum:oe,integrity:Z,entryCount:ne.length,files:ne,absolutePath:a.dryRun?null:ce}}function collectFiles(n,a){let S=forceIncluded(a),C=Array.isArray(a.files)?a.files.filter(n=>typeof n==`string`):null,N;N=C?expandFilesPatterns(n,C):walkAll(n);let F=loadIgnore(n),I=new Set;for(let n of N)F(n)||I.add(n);for(let a of S)existsSync(jo(n,a))&&I.add(a);return[...I].sort()}const dD=new Set([`.git`,`.svn`,`.hg`,`.gitignore`,`.gitattributes`,`.npmrc`,`CVS`,`.DS_Store`,`node_modules`,`.npmignore`,`package-lock.json`,`gjsify-lock.json`,`yarn.lock`,`yarn-error.log`,`.yarn`,`.pnp.cjs`,`.pnp.loader.mjs`,`tsconfig.tsbuildinfo`]);function forceIncluded(n){let a=new Set;a.add(`package.json`);for(let n of[`README`,`README.md`,`LICENSE`,`LICENSE.md`,`NOTICE`,`NOTICE.md`])a.add(n);let S=typeof n.main==`string`?n.main:null;S&&a.add(S.replace(/^\.\//,``));let C=n.bin;if(typeof C==`string`)a.add(C.replace(/^\.\//,``));else if(C&&typeof C==`object`)for(let n of Object.values(C))typeof n==`string`&&a.add(n.replace(/^\.\//,``));return[...a]}function walkAll(n,a=``){let S=[],C=a?jo(n,a):n,N;try{N=readdirSync(C,{withFileTypes:!0})}catch{return S}for(let C of N){if(dD.has(C.name)||C.name.startsWith(`.tsbuildinfo`))continue;let N=a?`${a}/${C.name}`:C.name;C.isDirectory()?S.push(...walkAll(n,N)):C.isFile()&&S.push(N)}return S}function expandFilesPatterns(n,a){let S=new Set;for(let C of a){let a=C.replace(/^\.\//,``).replace(/\/$/,``),N=jo(n,a);if(!existsSync(N))continue;let F=statSync(N);if(F.isDirectory())for(let C of walkAll(n,a))S.add(C);else F.isFile()&&S.add(a);!existsSync(N)&&/[*?[]/.test(C)&&Fe.warn(`gjsify pack: files entry "${C}" looks like a glob but glob expansion isn't implemented — pass literal files/dirs`)}return[...S]}function loadIgnore(n){let a=jo(n,`.npmignore`),S=jo(n,`.gitignore`),C=[],N=existsSync(a)?a:existsSync(S)?S:null;if(N){let n=readFileSync(N,`utf-8`).split(`
800
+ `);for(let a of n){let n=a.trim();!n||n.startsWith(`#`)||n.startsWith(`!`)||C.push(globToRegex(n))}}return n=>{for(let a of C)if(a.test(n))return!0;return!1}}function globToRegex(n){let a=n.replace(/^\//,``);return a=a.replace(/[.+^${}()|[\]\\]/g,`\\$&`),a=a.replace(/\*\*/g,`__DOUBLESTAR__`).replace(/\*/g,`[^/]*`).replace(/__DOUBLESTAR__/g,`.*`),a=a.replace(/\?/g,`[^/]`),RegExp(`^${a}($|/)`)}function rewriteWorkspaceDeps(n,a){let S=findWorkspaceRoot(a);if(!S)return n;let C=new Map;for(let n of discoverWorkspaces(S))n.name&&n.version&&C.set(n.name,n.version);let N=JSON.parse(JSON.stringify(n));for(let n of[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`]){let a=N[n];if(a)for(let[n,F]of Object.entries(a)){if(typeof F!=`string`||!F.startsWith(`workspace:`))continue;let I=C.get(n);if(!I)throw Error(`gjsify pack: ${N.name} declares workspace:^ on ${n} but no sibling workspace with that name exists in the monorepo at ${S}`);let H=F.slice(10);H===`*`||H===``?a[n]=I:H===`^`||H===`~`?a[n]=`${H}${I}`:a[n]=H}}return N}function indentOf(n){let a=n.match(/\n([ \t]+)"/);return a?a[1]:` `}var OidcUnavailableError=class extends Error{reason;constructor(n,a){super(n),this.reason=a,this.name=`OidcUnavailableError`}},OidcExchangeError=class extends Error{status;body;packageName;constructor(n,a,S,C){super(n),this.status=a,this.body=S,this.packageName=C,this.name=`OidcExchangeError`}};function hasGithubOidcEnv(){return!!(process.env.ACTIONS_ID_TOKEN_REQUEST_URL&&process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN)}async function fetchGithubOidcToken(n,a){let S=process.env.ACTIONS_ID_TOKEN_REQUEST_URL,C=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!S||!C)throw new OidcUnavailableError("GitHub Actions OIDC env vars (ACTIONS_ID_TOKEN_REQUEST_{URL,TOKEN}) not set. The calling workflow needs `permissions: id-token: write`.",`no-env`);let N=new URL(S);N.searchParams.set(`audience`,n),a?.(`gjsify oidc: GET ${N.href.replace(C,`<bearer>`)}`);let F=await fetch(N.href,{method:`GET`,headers:{Accept:`application/json`,Authorization:`Bearer ${C}`}});if(!F.ok){let n=await F.text().catch(()=>`<no body>`);throw new OidcUnavailableError(`Failed to fetch GitHub OIDC id_token: ${F.status} ${F.statusText} — ${n.slice(0,200)}`,`fetch-id-token`)}let I=await F.json().catch(()=>({}));if(!I.value)throw new OidcUnavailableError("GitHub OIDC response missing `value` field",`no-id-token`);return I.value}async function exchangeOidcForNpmToken(n){let{packageName:a,registry:S,idToken:C,log:N}=n,F=`${S.endsWith(`/`)?S.slice(0,-1):S}/-/npm/v1/oidc/token/exchange/package/${a.startsWith(`@`)?(()=>{let n=a.indexOf(`/`),S=a.slice(1,n),C=a.slice(n+1);return`@${encodeURIComponent(S)}%2f${encodeURIComponent(C)}`})():encodeURIComponent(a)}`;N?.(`gjsify oidc: POST ${F}`);let I=await fetch(F,{method:`POST`,headers:{Authorization:`Bearer ${C}`,"Content-Type":`application/json`,Accept:`application/json`},body:`{}`}),H=await I.text().catch(()=>``);if(!I.ok)throw new OidcExchangeError(`npm OIDC token exchange failed for ${a}: ${I.status} ${I.statusText} — ${H.slice(0,300)}`,I.status,H,a);let W;try{W=JSON.parse(H)}catch{throw new OidcExchangeError(`npm OIDC token exchange returned non-JSON body for ${a}: ${H.slice(0,200)}`,I.status,H,a)}if(!W.token)throw new OidcExchangeError(`npm OIDC token exchange returned no \`token\` field for ${a}`,I.status,H,a);return W.token}async function getNpmTrustedToken(n){let a=`npm:${new URL(n.registry).hostname}`,S=await fetchGithubOidcToken(a,n.log);return{token:await exchangeOidcForNpmToken({...n,idToken:S}),audience:a}}Ie(),As(),kp(),Ho(),JE();const fD={command:`publish [path]`,description:"Pack + upload the workspace at <path> (default: cwd) to its npm registry. Drop-in for `npm publish` with workspace:^ rewrite handled automatically.",builder:n=>n.positional(`path`,{description:`Workspace path (default: cwd).`,type:`string`}).option(`tag`,{description:`Dist-tag to publish under. Default: latest.`,type:`string`,default:`latest`}).option(`access`,{description:"Package access — `public` or `restricted` (required for first publish of scoped packages on the public registry).",type:`string`}).option(`otp`,{description:"npm 2FA one-time code; sent as the `npm-otp` header. Required for manual publishes from a 2FA-enabled account.",type:`string`}).option(`tolerate-republish`,{description:'Treat "version already published" as success — covers both classic 409 Conflict and the npm OIDC-path 403 Forbidden + `"previously published"` body shape. Matches yarn `--tolerate-republish`.',type:`boolean`,default:!1}).option(`tolerate-untrusted-new`,{description:'Skip (exit 0) when OIDC token exchange returns `package not found` AND no fallback token is configured — i.e. a never-before-published `@scope/<name>` whose Trusted Publisher entry hasn\'t been set up on npmjs.com yet. Without this flag, one un-bootstrapped new package breaks the entire serialized `gjsify foreach publish` loop. Pair with `--tolerate-republish` in CI release workflows so a fresh-merged package gracefully skips its first CI publish, leaving the manual-bootstrap step to a maintainer (see AGENTS.md "New @gjsify/* package: first-publish + Trusted Publisher bootstrap").',type:`boolean`,default:!1}).option(`provenance`,{description:`Pass-through flag — recorded in the payload but no signing happens (gjsify doesn't ship a sigstore signer yet).`,type:`boolean`,default:!1}).option(`dry-run`,{description:`Pack only, do not PUT.`,type:`boolean`,default:!1}).option(`json`,{description:`Emit publish metadata as JSON on stdout.`,type:`boolean`,default:!1}).option(`trusted`,{description:"Authenticate via npm Trusted Publishing (OIDC): exchange the GitHub Actions id-token for a short-lived npm token. Pass `--trusted` to force this mode (errors if env vars missing). Omit to auto-detect: OIDC is used iff `ACTIONS_ID_TOKEN_REQUEST_URL`+`_TOKEN` are set AND no `_authToken` is present in the resolved npmrc; otherwise the long-lived token path is used. Requires the calling workflow to declare `permissions: id-token: write` AND the target package to have a Trusted Publisher configured on npmjs.com.",type:`boolean`,default:void 0}).option(`check-trusted`,{description:"Diagnostic mode: perform the OIDC id-token request + npm token exchange, report success/failure, then exit WITHOUT publishing. Useful as a bulk-verifier (e.g. via `gjsify foreach publish --check-trusted`) to confirm Trusted Publisher config across many packages.",type:`boolean`,default:!1}),handler:async n=>{let a=Oo(n.path??process.cwd()),S=n.tag??`latest`,C=n.access,N=n.otp,F=n[`tolerate-republish`]===!0,I=n[`tolerate-untrusted-new`]===!0,H=n.provenance===!0,W=n[`dry-run`]===!0,K=n[`check-trusted`]===!0,q=n.trusted,Y=!!process.env.GJSIFY_PUBLISH_DEBUG;if(H&&Fe.warn(`gjsify publish: --provenance recorded but not signed (no sigstore integration yet).`),K){let S=jo(a,`package.json`),C=JSON.parse(readFileSync(S,`utf-8`));if(typeof C.name!=`string`&&(process.stderr.write(`gjsify publish --check-trusted: ${S} has no \`name\` field\n`),process.exit(2)),C.private===!0){let a={ok:!0,action:`check-trusted`,name:C.name,skipped:`private`};n.json?process.stdout.write(`${JSON.stringify(a)}\n`):process.stdout.write(`- ${C.name}: skipped (private package)\n`);return}let N=await loadNpmrc(a),F=process.env.npm_config_registry??registryFor(C.name,N)??qE;try{await getNpmTrustedToken({packageName:C.name,registry:F,log:Y?n=>Fe.error(n):void 0});let a={ok:!0,action:`check-trusted`,name:C.name,registry:F};n.json?process.stdout.write(`${JSON.stringify(a)}\n`):process.stdout.write(`✓ ${C.name}: trusted publisher OK\n`);return}catch(a){handleOidcFailure(a,C.name,n.json===!0);return}}let X=await packWorkspace(a,{dryRun:!0,lifecycleScripts:[`prepublishOnly`,`prepack`],lifecycleStdio:n.json?`inherit-stderr`:`inherit`}),te=await packWorkspaceToBytes(a),ne=readFileSync(jo(a,`package.json`),`utf-8`),re=await loadRewrittenManifest(a,JSON.parse(ne));if(W){let a={ok:!0,action:`dry-run`,name:X.name,version:X.version,filename:X.filename,size:X.size,shasum:X.shasum,integrity:X.integrity};n.json?process.stdout.write(`${JSON.stringify(a,null,2)}\n`):process.stdout.write(`+ ${X.name}@${X.version} (dry-run, ${X.size} bytes, ${X.entryCount} files)\n`);return}let ie=await loadNpmrc(a),ae=process.env.npm_config_registry??registryFor(X.name,ie)??qE,oe=ae.endsWith(`/`)?ae.slice(0,-1):ae,Z=`${oe}/${X.name.startsWith(`@`)?(()=>{let n=X.name.indexOf(`/`),a=X.name.slice(1,n),S=X.name.slice(n+1);return`@${encodeURIComponent(a)}%2f${encodeURIComponent(S)}`})():encodeURIComponent(X.name)}`,se=`${X.name.includes(`/`)?X.name.slice(X.name.indexOf(`/`)+1):X.name}-${X.version}.tgz`,ce=buildPublishPayload({pkg:re,tag:S,access:C,tarballBytes:te,tarballUrl:`${oe}/${X.name}/-/${se}`,packed:{...X,wireFilename:se},provenance:H}),le=buildHeaders(Z,{npmrc:ie});le[`content-type`]=`application/json`,le.accept=`*/*`,N&&(le[`npm-otp`]=N);let ue=q===!0||q===void 0&&hasGithubOidcEnv()&&!process.env.NODE_AUTH_TOKEN,de=`token`;if(ue)try{let{token:n,audience:a}=await getNpmTrustedToken({packageName:X.name,registry:ae,log:Y?n=>Fe.error(n):void 0});le.authorization=`Bearer ${n}`,de=`oidc`,Y&&Fe.error(`gjsify publish: OIDC token obtained (audience=${a})`)}catch(a){if(a instanceof OidcExchangeError&&a.status===404&&/package not found/i.test(a.body)&&I){let a=`${X.name}@${X.version} (skipped — no Trusted Publisher on npm, see AGENTS.md "New @gjsify/* package: first-publish + Trusted Publisher bootstrap")`;n.json?process.stdout.write(`${JSON.stringify({ok:!0,action:`skipped-untrusted-new`,name:X.name,version:X.version,reason:`no-trusted-publisher`},null,2)}\n`):process.stdout.write(`~ ${a}\n`);return}if(q===!0&&(handleOidcFailure(a,X.name,n.json===!0),process.exit(1)),Y){let n=a instanceof Error?a.message:String(a);Fe.error(`gjsify publish: OIDC auto-detect failed (${n}) — falling back to token auth`)}}Y&&(Fe.error(`gjsify publish: PUT ${Z} (${X.name}@${X.version})`),Fe.error(` auth-mode: ${de}`),Fe.error(` authorization: ${le.authorization?`(set)`:`(none)`}`),Fe.error(` otp: ${le[`npm-otp`]?`(set)`:`(none)`}`),Fe.error(` payload size: ${JSON.stringify(ce).length} bytes`));let fe=JSON.stringify(ce);async function doPut(n){return fetch(Z,{method:`PUT`,headers:n,body:fe})}let pe=await doPut(le);if(!N&&pe.status===401){let n=pe.headers.get(`www-authenticate`)??``,a=await pe.text().catch(()=>``);if(n.toLowerCase().split(/,\s*/).includes(`otp`)||/one-time pass/i.test(a))if(process.stdin.isTTY&&process.stdout.isTTY){process.stdout.write(`This operation requires a one-time password.
801
+ Enter OTP: `);let n=await readLineFromStdin();n?pe=await doPut({...le,"npm-otp":n}):(Fe.error("gjsify publish: no OTP entered — re-run with `--otp <code>`"),process.exit(1))}else Fe.error("gjsify publish: npm requires a 2FA one-time code — re-run with `--otp <code>`"),process.exit(1)}if(pe.ok){let a={ok:!0,name:X.name,version:X.version,filename:X.filename,size:X.size,integrity:X.integrity,tag:S,registry:oe};n.json?process.stdout.write(`${JSON.stringify(a,null,2)}\n`):process.stdout.write(`+ ${X.name}@${X.version}\n`);return}let me=await pe.text().catch(()=>`<no body>`);if((pe.status===409||pe.status===403&&/previously published/i.test(me))&&F){let a={ok:!0,action:`republish-tolerated`,name:X.name,version:X.version,status:pe.status};n.json?process.stdout.write(`${JSON.stringify(a,null,2)}\n`):process.stdout.write(`= ${X.name}@${X.version} (already published, tolerated)\n`);return}Fe.error(`gjsify publish: ${X.name}@${X.version} — ${pe.status} ${pe.statusText}`),Fe.error(me),process.exit(1)}};async function packWorkspaceToBytes(n){let a=`/tmp/gjsify-publish-${process.pid}-${Date.now()}`,S=await packWorkspace(n,{destination:a,dryRun:!1,lifecycleScripts:[]});if(!S.absolutePath)throw Error(`gjsify publish: pack did not produce a file`);let C=new Uint8Array(readFileSync(S.absolutePath));try{(await Promise.resolve().then(()=>(As(),Ds))).rmSync(S.absolutePath)}catch{}try{(await Promise.resolve().then(()=>(As(),Ds))).rmdirSync(a)}catch{}return C}async function loadRewrittenManifest(n,a){let S=`/tmp/gjsify-publish-manifest-${process.pid}-${Date.now()}.tgz`,C=await packWorkspace(n,{destination:S.substring(0,S.lastIndexOf(`/`)),dryRun:!1}),{rmSync:N}=await Promise.resolve().then(()=>(As(),Ds));if(!C.absolutePath)throw Error(`gjsify publish: pack did not produce a file`);let{gunzip:F,parseTar:I}=await Promise.resolve().then(()=>($E(),QE)),H=new Uint8Array(readFileSync(C.absolutePath));N(C.absolutePath);let W=await F(H);for(let n of I(W))if(n.name===`package/package.json`&&n.body)return JSON.parse(new TextDecoder().decode(n.body));return a}async function loadNpmrc(n){let a=[],S=jo(n,`.npmrc`);existsSync(S)&&a.push(readFileSync(S,`utf-8`));let C=process.env.NPM_CONFIG_USERCONFIG;if(C&&existsSync(C))a.push(readFileSync(C,`utf-8`));else{let n=jo(homedir(),`.npmrc`);existsSync(n)&&a.push(readFileSync(n,`utf-8`))}return parseNpmrc(a.join(`
802
802
  `).replace(/\$\{([A-Z_][A-Z0-9_]*)\}/gi,(n,a)=>process.env[a]??``))}function buildPublishPayload(n){let{pkg:a,tag:S,access:C,tarballBytes:N,tarballUrl:F,packed:I,provenance:H}=n,W={...a,_id:`${I.name}@${I.version}`,dist:{integrity:I.integrity,shasum:I.shasum,tarball:F}};H&&(W._hasShrinkwrap=!1);let K={_id:I.name,name:I.name,description:typeof a.description==`string`?a.description:``,"dist-tags":{[S]:I.version},versions:{[I.version]:W},readme:``,_attachments:{[I.wireFilename]:{content_type:`application/octet-stream`,data:base64Encode(N),length:N.byteLength}}};return C&&(K.access=C),K}function base64Encode(n){let a=``,S=32768;for(let C=0;C<n.length;C+=S)a+=String.fromCharCode(...n.subarray(C,C+S));return btoa(a)}async function readLineFromStdin(){return new Promise(n=>{let a=``,onData=S=>{a+=typeof S==`string`?S:S.toString(`utf-8`);let C=a.indexOf(`
803
- `);C>=0&&(cleanup(),n(a.slice(0,C).trim()))},onEnd=()=>{cleanup(),n(a.trim())},onError=()=>{cleanup(),n(``)},cleanup=()=>{process.stdin.removeListener(`data`,onData),process.stdin.removeListener(`end`,onEnd),process.stdin.removeListener(`error`,onError),typeof process.stdin.unref==`function`&&process.stdin.unref?.()};process.stdin.setEncoding(`utf-8`),process.stdin.isPaused()&&process.stdin.resume(),process.stdin.once(`data`,onData),process.stdin.once(`end`,onEnd),process.stdin.once(`error`,onError)})}function handleOidcFailure(n,a,S){if(n instanceof OidcUnavailableError){let C=`gjsify publish: OIDC not available — ${n.message}`;S?process.stdout.write(`${JSON.stringify({ok:!1,name:a,error:`oidc-unavailable`,reason:n.reason,message:n.message})}\n`):process.stderr.write(`${C}\n`);return}if(n instanceof OidcExchangeError){let C=n.status===401||n.status===403?`npm rejected the OIDC exchange (${n.status}) — check that ${a} has a Trusted Publisher configured at https://www.npmjs.com/package/${encodeURIComponent(a)}/access pointing at this workflow.`:n.message;S?process.stdout.write(`${JSON.stringify({ok:!1,name:a,error:`oidc-exchange`,status:n.status,body:n.body,message:n.message})}\n`):process.stderr.write(`✗ ${a}: ${C}\n`);return}let C=n instanceof Error?n.message:String(n);S?process.stdout.write(`${JSON.stringify({ok:!1,name:a,error:`unknown`,message:C})}\n`):process.stderr.write(`✗ ${a}: ${C}\n`)}Ie(),As(),Ho(),rn(),KE();const dD=`@gjsify/cli`,fD={command:`self-update`,description:`Update the installed ${dD} to the latest release (or pinned --tag).`,builder:n=>n.option(`check`,{description:`Only check whether a newer version is available; do not install.`,type:`boolean`,default:!1}).option(`force`,{description:`Reinstall even when the current version already matches the target tag.`,type:`boolean`,default:!1}).option(`tag`,{description:"npm dist-tag or pinned version to install (e.g. `latest`, `next`, `0.5.0`).",type:`string`,default:`latest`}),handler:async n=>{let a=defaultGlobalLayout(),S=jo(jo(a.prefix,`node_modules`,dD),`package.json`),C=readCurrentVersion(),N=existsSync(S);Fe.log(`Current ${dD}: v${C??`(unknown)`}`),N||Fe.warn(`\nWarning: no @gjsify/cli install found under ${a.prefix}.\nself-update only manages installs created by install.mjs or \`gjsify install -g\`.\nIf you installed via \`npm install -g\`, remove that and use:\n curl -fsSL https://github.com/gjsify/gjsify/releases/latest/download/install.mjs -o /tmp/g.mjs && gjs -m /tmp/g.mjs && rm /tmp/g.mjs`),Fe.log(`Fetching dist-tags for ${dD}@${n.tag} ...`);let F;try{F=await fetchPackument(dD)}catch(n){let a=n instanceof Error?n.message:String(n);Fe.error(`Failed to fetch packument: ${a}`),process.exit(1);return}let I=resolveTag(F,n.tag);if(!I){Fe.error(`Unknown dist-tag '${n.tag}' on ${dD}. Known tags: ${Object.keys(F[`dist-tags`]??{}).join(`, `)||`(none)`}`),process.exit(1);return}if(Fe.log(`Latest matching --tag ${n.tag}: v${I}`),C===I&&!n.force){Fe.log(`Already up to date (v${I}).`),n.check||Fe.log(`Run with --force to reinstall anyway.`);return}if(n.check){Fe.log(C?`Update available: v${C} → v${I}`:`Install required: → v${I}`),process.exit(1);return}Fe.log(`Installing ${dD}@${I} ...`);try{await installPackages({prefix:a.prefix,specs:[`${dD}@${I}`],verbose:!1,skipDeps:!0})}catch(n){let a=n instanceof Error?n.message:String(n);Fe.error(`self-update: install failed — ${a}`),Fe.error("Re-run `gjsify self-update` to retry."),process.exit(1);return}let H=linkGlobalBins([dD],a);if(H.length===0)Fe.warn("self-update: install completed but no bins were linked — package.json may be missing a `bin` field.");else for(let n of H)Fe.log(` • ${n.link} → ${n.target}`);Fe.log(`\nUpdated ${dD} to v${I}.`)}};function readCurrentVersion(){try{let n=process.env.GJSIFY_CLI_PACKAGE_JSON;if(n){let a=JSON.parse(readFileSync(n,`utf-8`));return a.name===dD&&typeof a.version==`string`?a.version:null}let a=Po(Oo(fileURLToPath(import.meta.url)));for(let n=0;n<8&&a!==Po(a);n++){let n=jo(a,`package.json`);if(existsSync(n)){let a=JSON.parse(readFileSync(n,`utf-8`));if(a.name===dD&&typeof a.version==`string`)return a.version}a=Po(a)}}catch{}return null}function resolveTag(n,a){let S=n[`dist-tags`]??{};return S[a]?S[a]:n.versions&&typeof n.versions==`object`&&n.versions[a]?a:null}Ie(),As(),Ho();function loadInstallerTemplate(){return readFileSync(new URL(`../templates/install.mjs.tmpl`,import.meta.url),`utf-8`)}const pD={command:`generate-installer [target]`,description:`Scaffold an install.mjs in the current directory for a GJS-runnable npm package.`,builder:n=>n.positional(`target`,{description:`Npm package name to install (default: current package.json name).`,type:`string`}).option(`bin-name`,{description:"Bin name produced by the installer (default: first key of `gjsify.bin` or `bin`).",type:`string`}).option(`bootstrap-url`,{description:`Override the cli.gjs.mjs bootstrap bundle URL (default: gjsify GitHub releases/latest).`,type:`string`}).option(`output`,{description:`Where to write the generated installer.`,type:`string`,default:`install.mjs`}).option(`force`,{description:`Overwrite an existing output file.`,type:`boolean`,default:!1}),handler:n=>{let a=Oo(process.cwd(),n.output);if(existsSync(a)&&!n.force){Fe.error(`${n.output} already exists. Re-run with --force to overwrite.`),process.exit(1);return}let S=Oo(process.cwd(),`package.json`),C=null;if(existsSync(S))try{C=JSON.parse(readFileSync(S,`utf-8`))}catch{}let N=n.target??C?.name;if(!N){Fe.error("No target package: pass `gjsify generate-installer <pkg>` or run inside a directory with a package.json."),process.exit(1);return}let F=n[`bin-name`]??pickDefaultBinName(C,N),I=n[`bootstrap-url`]??`https://github.com/gjsify/gjsify/releases/latest/download/cli.gjs.mjs`;writeFileSync(a,loadInstallerTemplate().replace(/const DEFAULT_TARGET = '[^']+';/,`const DEFAULT_TARGET = ${JSON.stringify(N)};`).replace(/const DEFAULT_BIN_NAME = '[^']+';/,`const DEFAULT_BIN_NAME = ${JSON.stringify(F)};`).replace(/const DEFAULT_BOOTSTRAP_URL =\s*'[^']+';/,`const DEFAULT_BOOTSTRAP_URL = ${JSON.stringify(I)};`),{mode:493}),Fe.log(`Wrote ${n.output} (target=${N}, bin=${F}).`),Fe.log(``),Fe.log(`Install one-liner for your README:`),Fe.log(` curl -fsSL https://github.com/<you>/<repo>/raw/main/${n.output} -o /tmp/i.mjs \\`),Fe.log(` && gjs -m /tmp/i.mjs && rm /tmp/i.mjs`)}};function pickDefaultBinName(n,a){let S=n?.gjsify?.bin;if(S&&typeof S==`object`){let n=Object.keys(S)[0];if(n)return n}let C=n?.bin;if(C&&typeof C==`object`){let n=Object.keys(C)[0];if(n)return n}return a.startsWith(`@`)?a.slice(a.indexOf(`/`)+1):a}Ie(),As(),Ho();const mD={command:`uninstall <packages..>`,description:"Uninstall a previously installed package. Currently only `--global` mode is supported.",builder:n=>n.positional(`packages`,{description:`Package(s) to uninstall (npm names, optionally with version).`,type:`string`,array:!0,demandOption:!0}).option(`global`,{description:`Uninstall from the user-global XDG location (the install -g target).`,type:`boolean`,alias:`g`,default:!1}).option(`dry-run`,{description:`Show what would be removed without touching the filesystem.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Verbose logging.`,type:`boolean`,default:!1}),handler:n=>{if(!n.global){Fe.error("gjsify uninstall currently only supports --global. For project-local removal, edit package.json + re-run `gjsify install`."),process.exit(1);return}let a=defaultGlobalLayout(),S=n[`dry-run`]??!1,C=n.verbose??!1,N=`gjsify uninstall${S?` (dry-run)`:``} --global`;Fe.log(`${N} ← ${a.prefix}`),Fe.log(`${` `.repeat(N.length)} bins ← ${a.binDir}`);let F=!1;for(let N of n.packages){let n=specToPackageName(N),I=jo(a.prefix,`node_modules`,n);if(!existsSync(I)){Fe.warn(` ✗ ${n} — not installed at ${I}`);continue}let H=findBinShimsForPackage(a.binDir,I,C);if(S){Fe.log(` • would remove ${I}`);for(let n of H)Fe.log(` • would remove ${n}`)}else{rmSync(I,{recursive:!0,force:!0}),Fe.log(` • removed ${I}`);for(let n of H)unlinkSync(n),Fe.log(` • removed ${n}`)}F=!0}F||(Fe.error(`
803
+ `);C>=0&&(cleanup(),n(a.slice(0,C).trim()))},onEnd=()=>{cleanup(),n(a.trim())},onError=()=>{cleanup(),n(``)},cleanup=()=>{process.stdin.removeListener(`data`,onData),process.stdin.removeListener(`end`,onEnd),process.stdin.removeListener(`error`,onError),typeof process.stdin.unref==`function`&&process.stdin.unref?.()};process.stdin.setEncoding(`utf-8`),process.stdin.isPaused()&&process.stdin.resume(),process.stdin.once(`data`,onData),process.stdin.once(`end`,onEnd),process.stdin.once(`error`,onError)})}function handleOidcFailure(n,a,S){if(n instanceof OidcUnavailableError){let C=`gjsify publish: OIDC not available — ${n.message}`;S?process.stdout.write(`${JSON.stringify({ok:!1,name:a,error:`oidc-unavailable`,reason:n.reason,message:n.message})}\n`):process.stderr.write(`${C}\n`);return}if(n instanceof OidcExchangeError){let C=n.status===401||n.status===403?`npm rejected the OIDC exchange (${n.status}) — check that ${a} has a Trusted Publisher configured at https://www.npmjs.com/package/${encodeURIComponent(a)}/access pointing at this workflow.`:n.message;S?process.stdout.write(`${JSON.stringify({ok:!1,name:a,error:`oidc-exchange`,status:n.status,body:n.body,message:n.message})}\n`):process.stderr.write(`✗ ${a}: ${C}\n`);return}let C=n instanceof Error?n.message:String(n);S?process.stdout.write(`${JSON.stringify({ok:!1,name:a,error:`unknown`,message:C})}\n`):process.stderr.write(`✗ ${a}: ${C}\n`)}Ie(),As(),Ho(),rn(),JE();const pD=`@gjsify/cli`,mD={command:`self-update`,description:`Update the installed ${pD} to the latest release (or pinned --tag).`,builder:n=>n.option(`check`,{description:`Only check whether a newer version is available; do not install.`,type:`boolean`,default:!1}).option(`force`,{description:`Reinstall even when the current version already matches the target tag.`,type:`boolean`,default:!1}).option(`tag`,{description:"npm dist-tag or pinned version to install (e.g. `latest`, `next`, `0.5.0`).",type:`string`,default:`latest`}),handler:async n=>{let a=defaultGlobalLayout(),S=jo(jo(a.prefix,`node_modules`,pD),`package.json`),C=readCurrentVersion(),N=existsSync(S);Fe.log(`Current ${pD}: v${C??`(unknown)`}`),N||Fe.warn(`\nWarning: no @gjsify/cli install found under ${a.prefix}.\nself-update only manages installs created by install.mjs or \`gjsify install -g\`.\nIf you installed via \`npm install -g\`, remove that and use:\n curl -fsSL https://github.com/gjsify/gjsify/releases/latest/download/install.mjs -o /tmp/g.mjs && gjs -m /tmp/g.mjs && rm /tmp/g.mjs`),Fe.log(`Fetching dist-tags for ${pD}@${n.tag} ...`);let F;try{F=await fetchPackument(pD)}catch(n){let a=n instanceof Error?n.message:String(n);Fe.error(`Failed to fetch packument: ${a}`),process.exit(1);return}let I=resolveTag(F,n.tag);if(!I){Fe.error(`Unknown dist-tag '${n.tag}' on ${pD}. Known tags: ${Object.keys(F[`dist-tags`]??{}).join(`, `)||`(none)`}`),process.exit(1);return}if(Fe.log(`Latest matching --tag ${n.tag}: v${I}`),C===I&&!n.force){Fe.log(`Already up to date (v${I}).`),n.check||Fe.log(`Run with --force to reinstall anyway.`);return}if(n.check){Fe.log(C?`Update available: v${C} → v${I}`:`Install required: → v${I}`),process.exit(1);return}Fe.log(`Installing ${pD}@${I} ...`);try{await installPackages({prefix:a.prefix,specs:[`${pD}@${I}`],verbose:!1,skipDeps:!0})}catch(n){let a=n instanceof Error?n.message:String(n);Fe.error(`self-update: install failed — ${a}`),Fe.error("Re-run `gjsify self-update` to retry."),process.exit(1);return}let H=linkGlobalBins([pD],a);if(H.length===0)Fe.warn("self-update: install completed but no bins were linked — package.json may be missing a `bin` field.");else for(let n of H)Fe.log(` • ${n.link} → ${n.target}`);Fe.log(`\nUpdated ${pD} to v${I}.`)}};function readCurrentVersion(){try{let n=process.env.GJSIFY_CLI_PACKAGE_JSON;if(n){let a=JSON.parse(readFileSync(n,`utf-8`));return a.name===pD&&typeof a.version==`string`?a.version:null}let a=Po(Oo(fileURLToPath(import.meta.url)));for(let n=0;n<8&&a!==Po(a);n++){let n=jo(a,`package.json`);if(existsSync(n)){let a=JSON.parse(readFileSync(n,`utf-8`));if(a.name===pD&&typeof a.version==`string`)return a.version}a=Po(a)}}catch{}return null}function resolveTag(n,a){let S=n[`dist-tags`]??{};return S[a]?S[a]:n.versions&&typeof n.versions==`object`&&n.versions[a]?a:null}Ie(),As(),Ho();function loadInstallerTemplate(){return readFileSync(new URL(`../templates/install.mjs.tmpl`,import.meta.url),`utf-8`)}const hD={command:`generate-installer [target]`,description:`Scaffold an install.mjs in the current directory for a GJS-runnable npm package.`,builder:n=>n.positional(`target`,{description:`Npm package name to install (default: current package.json name).`,type:`string`}).option(`bin-name`,{description:"Bin name produced by the installer (default: first key of `gjsify.bin` or `bin`).",type:`string`}).option(`bootstrap-url`,{description:`Override the cli.gjs.mjs bootstrap bundle URL (default: gjsify GitHub releases/latest).`,type:`string`}).option(`output`,{description:`Where to write the generated installer.`,type:`string`,default:`install.mjs`}).option(`force`,{description:`Overwrite an existing output file.`,type:`boolean`,default:!1}),handler:n=>{let a=Oo(process.cwd(),n.output);if(existsSync(a)&&!n.force){Fe.error(`${n.output} already exists. Re-run with --force to overwrite.`),process.exit(1);return}let S=Oo(process.cwd(),`package.json`),C=null;if(existsSync(S))try{C=JSON.parse(readFileSync(S,`utf-8`))}catch{}let N=n.target??C?.name;if(!N){Fe.error("No target package: pass `gjsify generate-installer <pkg>` or run inside a directory with a package.json."),process.exit(1);return}let F=n[`bin-name`]??pickDefaultBinName(C,N),I=n[`bootstrap-url`]??`https://github.com/gjsify/gjsify/releases/latest/download/cli.gjs.mjs`;writeFileSync(a,loadInstallerTemplate().replace(/const DEFAULT_TARGET = '[^']+';/,`const DEFAULT_TARGET = ${JSON.stringify(N)};`).replace(/const DEFAULT_BIN_NAME = '[^']+';/,`const DEFAULT_BIN_NAME = ${JSON.stringify(F)};`).replace(/const DEFAULT_BOOTSTRAP_URL =\s*'[^']+';/,`const DEFAULT_BOOTSTRAP_URL = ${JSON.stringify(I)};`),{mode:493}),Fe.log(`Wrote ${n.output} (target=${N}, bin=${F}).`),Fe.log(``),Fe.log(`Install one-liner for your README:`),Fe.log(` curl -fsSL https://github.com/<you>/<repo>/raw/main/${n.output} -o /tmp/i.mjs \\`),Fe.log(` && gjs -m /tmp/i.mjs && rm /tmp/i.mjs`)}};function pickDefaultBinName(n,a){let S=n?.gjsify?.bin;if(S&&typeof S==`object`){let n=Object.keys(S)[0];if(n)return n}let C=n?.bin;if(C&&typeof C==`object`){let n=Object.keys(C)[0];if(n)return n}return a.startsWith(`@`)?a.slice(a.indexOf(`/`)+1):a}Ie(),As(),Ho();const gD={command:`uninstall <packages..>`,description:"Uninstall a previously installed package. Currently only `--global` mode is supported.",builder:n=>n.positional(`packages`,{description:`Package(s) to uninstall (npm names, optionally with version).`,type:`string`,array:!0,demandOption:!0}).option(`global`,{description:`Uninstall from the user-global XDG location (the install -g target).`,type:`boolean`,alias:`g`,default:!1}).option(`dry-run`,{description:`Show what would be removed without touching the filesystem.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Verbose logging.`,type:`boolean`,default:!1}),handler:n=>{if(!n.global){Fe.error("gjsify uninstall currently only supports --global. For project-local removal, edit package.json + re-run `gjsify install`."),process.exit(1);return}let a=defaultGlobalLayout(),S=n[`dry-run`]??!1,C=n.verbose??!1,N=`gjsify uninstall${S?` (dry-run)`:``} --global`;Fe.log(`${N} ← ${a.prefix}`),Fe.log(`${` `.repeat(N.length)} bins ← ${a.binDir}`);let F=!1;for(let N of n.packages){let n=specToPackageName(N),I=jo(a.prefix,`node_modules`,n);if(!existsSync(I)){Fe.warn(` ✗ ${n} — not installed at ${I}`);continue}let H=findBinShimsForPackage(a.binDir,I,C);if(S){Fe.log(` • would remove ${I}`);for(let n of H)Fe.log(` • would remove ${n}`)}else{rmSync(I,{recursive:!0,force:!0}),Fe.log(` • removed ${I}`);for(let n of H)unlinkSync(n),Fe.log(` • removed ${n}`)}F=!0}F||(Fe.error(`
804
804
  No packages removed.`),process.exit(1))}};function findBinShimsForPackage(n,a,S){if(!existsSync(n))return[];let C=[],N;try{N=readdirSync(n)}catch{return[]}for(let F of N){let N=jo(n,F);try{if(!statSync(N).isFile())continue;let n=readFileSync(N,`utf-8`);if(!n.startsWith(`#!/bin/sh`))continue;let S=n.split(`
805
- `).find(n=>/^exec (?:gjs -m )?'/.test(n));if(!S)continue;let F=S.match(/'([^']+)'/);if(!F)continue;let I=F[1];(I.startsWith(a+`/`)||I===a)&&C.push(N)}catch(n){S&&Fe.warn(` ? could not inspect ${N}: ${n.message}`)}}return C}Ie(),As(),Ho();const hD={command:`format [paths..]`,description:`Format source files via Biome (native binary spawn — no Node launcher).`,builder:n=>n.positional(`paths`,{description:"Files or directories to format. Default: `.`",type:`string`,array:!0}).option(`write`,{description:`Modify files in place (default: stdout / report).`,type:`boolean`,default:!1}).option(`check`,{description:`Report formatting drift without modifying files; exit non-zero if any file is unformatted. Useful for CI.`,type:`boolean`,default:!1}).option(`config-path`,{description:`Path to a biome.json. Default: walks up from cwd to find one.`,type:`string`,normalize:!0}).option(`init`,{description:`Write a recommended biome.json into cwd (skips if one exists; --force to overwrite).`,type:`boolean`,default:!1}).option(`force`,{description:`Overwrite an existing biome.json with --init.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Echo the resolved biome binary + args before spawning.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd();if(n.init){await handleInit({cwd:a,force:n.force??!1});return}let S=n.paths?.length?n.paths:[`.`],C=[`format`];n.write&&!n.check&&C.push(`--write`);let N=n.configPath??findBiomeConfig(a)??void 0;N&&C.push(`--config-path=${Oo(N,`..`)}`),C.push(...S);try{let S=await runBiome(C,{cwd:a,verbose:n.verbose});process.exitCode=S}catch(n){if(n instanceof BiomeNotFoundError){printBiomeNotFound(n),process.exitCode=1;return}throw n}}};async function handleInit({cwd:n,force:a}){let S=Oo(n,`biome.json`);if(existsSync(S)&&!a){Fe.log(`[gjsify format] biome.json exists at ${S} — pass --force to overwrite.`),process.exitCode=0;return}writeFileSync(S,loadBiomeTemplate(),`utf-8`),Fe.log(`[gjsify format] wrote ${S}`),Fe.log("[gjsify format] Run `gjsify format --write .` to apply the formatter to the project.")}Ho();const gD={command:`lint [paths..]`,description:`Run Biome lint diagnostics (native binary spawn — no Node launcher).`,builder:n=>n.positional(`paths`,{description:"Files or directories to lint. Default: `.`",type:`string`,array:!0}).option(`write`,{description:`Apply safe lint fixes in place.`,type:`boolean`,default:!1}).option(`config-path`,{description:`Path to a biome.json. Default: walks up from cwd to find one.`,type:`string`,normalize:!0}).option(`verbose`,{description:`Echo the resolved biome binary + args before spawning.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=n.paths?.length?n.paths:[`.`],C=[`lint`];n.write&&C.push(`--write`);let N=n.configPath??findBiomeConfig(a)??void 0;N&&C.push(`--config-path=${Oo(N,`..`)}`),C.push(...S);try{let S=await runBiome(C,{cwd:a,verbose:n.verbose});process.exitCode=S}catch(n){if(n instanceof BiomeNotFoundError){printBiomeNotFound(n),process.exitCode=1;return}throw n}}};Ho();const _D={command:`fix [paths..]`,description:`Run Biome check --write — format + safe-lint-fix + organize-imports in one pass.`,builder:n=>n.positional(`paths`,{description:"Files or directories to fix. Default: `.`",type:`string`,array:!0}).option(`write`,{description:`Apply fixes in place (default: true). Pass --no-write to report only.`,type:`boolean`,default:!0}).option(`config-path`,{description:`Path to a biome.json. Default: walks up from cwd to find one.`,type:`string`,normalize:!0}).option(`verbose`,{description:`Echo the resolved biome binary + args before spawning.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=n.paths?.length?n.paths:[`.`],C=[`check`];n.write!==!1&&C.push(`--write`);let N=n.configPath??findBiomeConfig(a)??void 0;N&&C.push(`--config-path=${Oo(N,`..`)}`),C.push(...S);try{let S=await runBiome(C,{cwd:a,verbose:n.verbose});process.exitCode=S}catch(n){if(n instanceof BiomeNotFoundError){printBiomeNotFound(n),process.exitCode=1;return}throw n}}};vs();var Interface=class extends Interface$1{question(n,a){return new Promise(a=>{super.question(n,a)})}};function createInterface(n,a){return typeof n==`object`&&n&&!(`read`in n&&typeof n.read==`function`)?new Interface(n):new Interface({input:n,output:a})}Ie(),As(),Ho(),kp(),WE(),KE();const vD={command:`upgrade`,description:"Check the npm registry for newer versions of declared dependencies and update package.json. Interactive by default; `--latest` / `--minor` / `--patch` switch to non-interactive bulk-update mode.",builder:n=>n.option(`latest`,{description:`Non-interactive: bump every dependency to its latest version (allows major).`,type:`boolean`,default:!1}).option(`minor`,{description:`Non-interactive: bump every dependency to the latest within the same major (semver-minor + semver-patch).`,type:`boolean`,default:!1}).option(`patch`,{description:`Non-interactive: bump every dependency to the latest within the same minor (semver-patch only).`,type:`boolean`,default:!1}).option(`filter`,{description:`Only consider packages whose name matches this substring (case-insensitive). Repeatable; comma-separated values are split.`,type:`string`}).option(`dry-run`,{description:`Print the upgrade plan without writing package.json.`,type:`boolean`,default:!1}).option(`cwd`,{description:`Project directory. Default: process.cwd().`,type:`string`}).option(`yes`,{alias:`y`,description:`Interactive mode: select all without prompting.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Print extra resolution details.`,type:`boolean`,default:!1}),handler:async n=>{let a=Oo(n.cwd??process.cwd()),S=jo(a,`package.json`);if(!existsSync(S))throw Error(`[gjsify upgrade] no package.json at ${S}`);let C=readFileSync(S,`utf-8`),N=JSON.parse(C),F=collectExternalDeps(N,n.filter?n.filter.split(`,`).map(n=>n.trim().toLowerCase()).filter(Boolean):[]);if(F.length===0){Fe.log(`[gjsify upgrade] no external npm dependencies to check.`);return}let I=await loadNpmrcLight(a),H=n.latest?`latest`:n.minor?`minor`:n.patch?`patch`:`interactive`;Fe.log(`[gjsify upgrade] checking ${F.length} dependencies against ${I.registry}…`);let W=await resolveCandidates(F,I,n.verbose??!1,H);if(W.length===0){Fe.log(`✅ all dependencies are up to date`);return}printTable(W);let K;if(H===`interactive`&&!n.yes?K=await promptSelection(W):(n.yes&&H===`interactive`&&Fe.log(`[gjsify upgrade] -y / --yes: selecting all`),K=W),K.length===0){Fe.log(`[gjsify upgrade] nothing selected; package.json unchanged.`);return}if(n.dryRun){Fe.log(`[gjsify upgrade] --dry-run: would update ${K.length} dependencies (no write).`);return}writePackageJson(S,C,N,K),Fe.log(`✏️ updated ${K.length} dependencies in ${S}. Run \`gjsify install\` to apply.`)}},yD=[`dependencies`,`devDependencies`,`optionalDependencies`,`peerDependencies`];function collectExternalDeps(n,a){let S=[];for(let C of yD){let N=n[C];if(!(!N||typeof N!=`object`))for(let[n,F]of Object.entries(N)){if(typeof F!=`string`||a.length&&!a.some(a=>n.toLowerCase().includes(a))||F.startsWith(`workspace:`)||F.startsWith(`file:`)||F.startsWith(`link:`)||F.startsWith(`git+`)||F.startsWith(`git:`)||F.startsWith(`http`)||F.startsWith(`npm:`)||F===`*`||F===`latest`)continue;let{prefix:N,version:I}=splitRange(F);S.push({name:n,field:C,currentRange:F,currentVersion:I,prefix:N})}}return S}function splitRange(n){let a=n.match(/^(\^|~|>=|<=|>|<|=)?\s*([0-9].*)$/);if(!a)return{prefix:``,version:null};let S=a[1]??``,C=a[2]?.split(/\s|[|&,]/)[0]??null;return{prefix:S,version:(C?parse(C):null)?.version??null}}async function resolveCandidates(n,a,S,C){let N=[],F=0;async function worker(){for(;;){let I=F++;if(I>=n.length)return;let H=n[I];try{let n=(await fetchPackument(H.name,{npmrc:a}))[`dist-tags`]?.latest;if(!n){S&&Fe.warn(` ${H.name}: no dist-tags.latest, skipping`);continue}if(!H.currentVersion){S&&Fe.warn(` ${H.name}: unable to parse current range "${H.currentRange}"`);continue}let F=classifyDiff(H.currentVersion,n);if(F===`none`||C===`minor`&&F===`major`||C===`patch`&&(F===`major`||F===`minor`))continue;N.push({...H,latestVersion:n,diff:F})}catch(n){S&&Fe.warn(` ${H.name}: fetch failed (${n.message})`)}}}return await Promise.all(Array.from({length:8},()=>worker())),N.sort((n,a)=>n.name.localeCompare(a.name)),N}function classifyDiff(n,a){let S=parse(n),C=parse(a);return!S||!C?`none`:S.major===C.major?S.minor===C.minor?S.patch===C.patch?(S.prerelease??[]).join(`.`)===(C.prerelease??[]).join(`.`)?`none`:`prerelease`:C.patch>S.patch?`patch`:`none`:C.minor>S.minor?`minor`:`none`:C.major>S.major?`major`:`none`}const bD={reset:`\x1B[0m`,bold:`\x1B[1m`,dim:`\x1B[2m`,red:`\x1B[31m`,yellow:`\x1B[33m`,green:`\x1B[32m`,cyan:`\x1B[36m`};function colorForDiff(n){switch(n){case`major`:return bD.red;case`minor`:return bD.yellow;case`patch`:return bD.green;case`prerelease`:return bD.cyan;default:return``}}function printTable(n){let a=Math.max(...n.map(n=>n.name.length),4),S=Math.max(...n.map(n=>n.currentRange.length),7),C=Math.max(...n.map(n=>n.latestVersion.length),6),N=String(n.length).length+2,F=` `.repeat(N)+bD.bold+`name`.padEnd(a)+` `+`current`.padEnd(S)+` `+`latest`.padEnd(C)+` kind`+bD.reset;Fe.log(F),Fe.log(` `.repeat(N)+bD.dim+`─`.repeat(a+S+C+12)+bD.reset);for(let F=0;F<n.length;F++){let I=n[F],H=`${F+1}.`.padEnd(N),W=colorForDiff(I.diff);Fe.log(H+I.name.padEnd(a)+` `+bD.dim+I.currentRange.padEnd(S)+bD.reset+` `+W+I.latestVersion.padEnd(C)+bD.reset+` `+W+I.diff+bD.reset)}}async function promptSelection(n){if(!process.stdin.isTTY)return Fe.log(`[gjsify upgrade] non-TTY stdin: pass --latest / --minor / --patch (or --yes for interactive-all) to upgrade non-interactively.`),[];let a=createInterface({input:process.stdin,output:process.stdout});try{Fe.log(`
806
- Select upgrades: comma- or space-separated indices, `+bD.bold+`a`+bD.reset+` for all, ranges like `+bD.bold+`1-3`+bD.reset+`, or `+bD.bold+`ENTER`+bD.reset+` to skip:`);let S=(await a.question(`> `)).trim();if(!S)return[];if(S.toLowerCase()===`a`||S.toLowerCase()===`all`)return n;let C=new Set;for(let n of S.split(/[\s,]+/).filter(Boolean)){let a=n.match(/^(\d+)-(\d+)$/);if(a){let n=Number(a[1]),S=Number(a[2]);for(let a=Math.min(n,S);a<=Math.max(n,S);a++)C.add(a-1)}else /^\d+$/.test(n)&&C.add(Number(n)-1)}return[...C].filter(a=>a>=0&&a<n.length).map(a=>n[a])}finally{a.close()}}function writePackageJson(n,a,S,C){for(let n of C){let a=S[n.field];a&&(a[n.name]=n.prefix+n.latestVersion)}let N=detectIndent(a);writeFileSync(n,JSON.stringify(S,null,N)+(a.endsWith(`
805
+ `).find(n=>/^exec (?:gjs -m )?'/.test(n));if(!S)continue;let F=S.match(/'([^']+)'/);if(!F)continue;let I=F[1];(I.startsWith(a+`/`)||I===a)&&C.push(N)}catch(n){S&&Fe.warn(` ? could not inspect ${N}: ${n.message}`)}}return C}Ie(),As(),Ho();const _D={command:`format [paths..]`,description:`Format JS/TS source files via oxfmt (CSS/JSON formatting is not supported).`,builder:n=>n.positional(`paths`,{description:"Files or directories to format. Default: `.`",type:`string`,array:!0}).option(`write`,{description:`Modify files in place (default: report drift without writing).`,type:`boolean`,default:!1}).option(`check`,{description:`Report formatting drift without modifying files; exit non-zero if any file is unformatted. Useful for CI.`,type:`boolean`,default:!1}).option(`config-path`,{description:`Path to an .oxfmtrc.json. Default: walks up from cwd to find one.`,type:`string`,normalize:!0}).option(`init`,{description:`Write recommended .oxlintrc.json + .oxfmtrc.json into cwd (skips existing files unless --force).`,type:`boolean`,default:!1}).option(`force`,{description:`Overwrite existing .oxlintrc.json / .oxfmtrc.json with --init.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Echo the resolved oxfmt launcher + args before spawning.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd();if(n.init){handleInit({cwd:a,force:n.force??!1});return}let S=n.paths?.length?n.paths:[`.`],C=[];n.check?C.push(`--check`):n.write?C.push(`--write`):C.push(`--list-different`);let N=n.configPath??findOxfmtConfig(a)??void 0;N&&C.push(`--config`,Oo(N)),C.push(...S);try{let S=await runOxfmt(C,{cwd:a,verbose:n.verbose});process.exitCode=S}catch(n){if(n instanceof OxcNotFoundError){printOxcNotFound(n),process.exitCode=1;return}throw n}}};function handleInit({cwd:n,force:a}){let writeOne=(S,C)=>{let N=Oo(n,S);if(existsSync(N)&&!a){Fe.log(`[gjsify format] ${S} exists at ${N} — pass --force to overwrite.`);return}writeFileSync(N,C,`utf-8`),Fe.log(`[gjsify format] wrote ${N}`)};writeOne(`.oxlintrc.json`,loadOxlintTemplate()),writeOne(`.oxfmtrc.json`,loadOxfmtTemplate()),Fe.log("[gjsify format] Run `gjsify format --write .` to apply the formatter to the project.")}Ho();const vD={command:`lint [paths..]`,description:`Run oxlint diagnostics (spawned via its Node launcher to support JS plugins).`,builder:n=>n.positional(`paths`,{description:"Files or directories to lint. Default: `.`",type:`string`,array:!0}).option(`fix`,{description:`Apply safe lint fixes in place.`,type:`boolean`,default:!1}).option(`config-path`,{description:`Path to an .oxlintrc.json. Default: walks up from cwd to find one.`,type:`string`,normalize:!0}).option(`verbose`,{description:`Echo the resolved oxlint launcher + args before spawning.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=n.paths?.length?n.paths:[`.`],C=[];n.fix&&C.push(`--fix`);let N=n.configPath??findOxlintConfig(a)??void 0;N&&C.push(`--config`,Oo(N)),C.push(...S);try{let S=await runOxlint(C,{cwd:a,verbose:n.verbose});process.exitCode=S}catch(n){if(n instanceof OxcNotFoundError){printOxcNotFound(n),process.exitCode=1;return}throw n}}};Ho();const yD={command:`fix [paths..]`,description:`Run oxfmt --write then oxlint --fix — format + safe lint fixes in one pass.`,builder:n=>n.positional(`paths`,{description:"Files or directories to fix. Default: `.`",type:`string`,array:!0}).option(`write`,{description:`Apply fixes in place (default: true). Pass --no-write to report only.`,type:`boolean`,default:!0}).option(`config-path`,{description:`Path to an .oxlintrc.json. Default: walks up from cwd to find one.`,type:`string`,normalize:!0}).option(`verbose`,{description:`Echo the resolved oxc launchers + args before spawning.`,type:`boolean`,default:!1}),handler:async n=>{let a=process.cwd(),S=n.paths?.length?n.paths:[`.`],C=n.verbose??!1,N=n.write!==!1;try{let F=[N?`--write`:`--list-different`],I=n.configPath??findOxfmtConfig(a)??void 0;I&&F.push(`--config`,Oo(I)),F.push(...S);let H=await runOxfmt(F,{cwd:a,verbose:C}),W=[];N&&W.push(`--fix`);let K=n.configPath??findOxlintConfig(a)??void 0;K&&W.push(`--config`,Oo(K)),W.push(...S);let q=await runOxlint(W,{cwd:a,verbose:C});process.exitCode=H||q}catch(n){if(n instanceof OxcNotFoundError){printOxcNotFound(n),process.exitCode=1;return}throw n}}};vs();var Interface=class extends Interface$1{question(n,a){return new Promise(a=>{super.question(n,a)})}};function createInterface(n,a){return typeof n==`object`&&n&&!(`read`in n&&typeof n.read==`function`)?new Interface(n):new Interface({input:n,output:a})}Ie(),As(),Ho(),kp(),KE(),JE();const bD={command:`upgrade`,description:"Check the npm registry for newer versions of declared dependencies and update package.json. Interactive by default; `--latest` / `--minor` / `--patch` switch to non-interactive bulk-update mode.",builder:n=>n.option(`latest`,{description:`Non-interactive: bump every dependency to its latest version (allows major).`,type:`boolean`,default:!1}).option(`minor`,{description:`Non-interactive: bump every dependency to the latest within the same major (semver-minor + semver-patch).`,type:`boolean`,default:!1}).option(`patch`,{description:`Non-interactive: bump every dependency to the latest within the same minor (semver-patch only).`,type:`boolean`,default:!1}).option(`filter`,{description:`Only consider packages whose name matches this substring (case-insensitive). Repeatable; comma-separated values are split.`,type:`string`}).option(`dry-run`,{description:`Print the upgrade plan without writing package.json.`,type:`boolean`,default:!1}).option(`cwd`,{description:`Project directory. Default: process.cwd().`,type:`string`}).option(`yes`,{alias:`y`,description:`Interactive mode: select all without prompting.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Print extra resolution details.`,type:`boolean`,default:!1}),handler:async n=>{let a=Oo(n.cwd??process.cwd()),S=jo(a,`package.json`);if(!existsSync(S))throw Error(`[gjsify upgrade] no package.json at ${S}`);let C=readFileSync(S,`utf-8`),N=JSON.parse(C),F=collectExternalDeps(N,n.filter?n.filter.split(`,`).map(n=>n.trim().toLowerCase()).filter(Boolean):[]);if(F.length===0){Fe.log(`[gjsify upgrade] no external npm dependencies to check.`);return}let I=await loadNpmrcLight(a),H=n.latest?`latest`:n.minor?`minor`:n.patch?`patch`:`interactive`;Fe.log(`[gjsify upgrade] checking ${F.length} dependencies against ${I.registry}…`);let W=await resolveCandidates(F,I,n.verbose??!1,H);if(W.length===0){Fe.log(`✅ all dependencies are up to date`);return}printTable(W);let K;if(H===`interactive`&&!n.yes?K=await promptSelection(W):(n.yes&&H===`interactive`&&Fe.log(`[gjsify upgrade] -y / --yes: selecting all`),K=W),K.length===0){Fe.log(`[gjsify upgrade] nothing selected; package.json unchanged.`);return}if(n.dryRun){Fe.log(`[gjsify upgrade] --dry-run: would update ${K.length} dependencies (no write).`);return}writePackageJson(S,C,N,K),Fe.log(`✏️ updated ${K.length} dependencies in ${S}. Run \`gjsify install\` to apply.`)}},xD=[`dependencies`,`devDependencies`,`optionalDependencies`,`peerDependencies`];function collectExternalDeps(n,a){let S=[];for(let C of xD){let N=n[C];if(!(!N||typeof N!=`object`))for(let[n,F]of Object.entries(N)){if(typeof F!=`string`||a.length&&!a.some(a=>n.toLowerCase().includes(a))||F.startsWith(`workspace:`)||F.startsWith(`file:`)||F.startsWith(`link:`)||F.startsWith(`git+`)||F.startsWith(`git:`)||F.startsWith(`http`)||F.startsWith(`npm:`)||F===`*`||F===`latest`)continue;let{prefix:N,version:I}=splitRange(F);S.push({name:n,field:C,currentRange:F,currentVersion:I,prefix:N})}}return S}function splitRange(n){let a=n.match(/^(\^|~|>=|<=|>|<|=)?\s*([0-9].*)$/);if(!a)return{prefix:``,version:null};let S=a[1]??``,C=a[2]?.split(/\s|[|&,]/)[0]??null;return{prefix:S,version:(C?parse(C):null)?.version??null}}async function resolveCandidates(n,a,S,C){let N=[],F=0;async function worker(){for(;;){let I=F++;if(I>=n.length)return;let H=n[I];try{let n=(await fetchPackument(H.name,{npmrc:a}))[`dist-tags`]?.latest;if(!n){S&&Fe.warn(` ${H.name}: no dist-tags.latest, skipping`);continue}if(!H.currentVersion){S&&Fe.warn(` ${H.name}: unable to parse current range "${H.currentRange}"`);continue}let F=classifyDiff(H.currentVersion,n);if(F===`none`||C===`minor`&&F===`major`||C===`patch`&&(F===`major`||F===`minor`))continue;N.push({...H,latestVersion:n,diff:F})}catch(n){S&&Fe.warn(` ${H.name}: fetch failed (${n.message})`)}}}return await Promise.all(Array.from({length:8},()=>worker())),N.sort((n,a)=>n.name.localeCompare(a.name)),N}function classifyDiff(n,a){let S=parse(n),C=parse(a);return!S||!C?`none`:S.major===C.major?S.minor===C.minor?S.patch===C.patch?(S.prerelease??[]).join(`.`)===(C.prerelease??[]).join(`.`)?`none`:`prerelease`:C.patch>S.patch?`patch`:`none`:C.minor>S.minor?`minor`:`none`:C.major>S.major?`major`:`none`}const SD={reset:`\x1B[0m`,bold:`\x1B[1m`,dim:`\x1B[2m`,red:`\x1B[31m`,yellow:`\x1B[33m`,green:`\x1B[32m`,cyan:`\x1B[36m`};function colorForDiff(n){switch(n){case`major`:return SD.red;case`minor`:return SD.yellow;case`patch`:return SD.green;case`prerelease`:return SD.cyan;default:return``}}function printTable(n){let a=Math.max(...n.map(n=>n.name.length),4),S=Math.max(...n.map(n=>n.currentRange.length),7),C=Math.max(...n.map(n=>n.latestVersion.length),6),N=String(n.length).length+2,F=` `.repeat(N)+SD.bold+`name`.padEnd(a)+` `+`current`.padEnd(S)+` `+`latest`.padEnd(C)+` kind`+SD.reset;Fe.log(F),Fe.log(` `.repeat(N)+SD.dim+`─`.repeat(a+S+C+12)+SD.reset);for(let F=0;F<n.length;F++){let I=n[F],H=`${F+1}.`.padEnd(N),W=colorForDiff(I.diff);Fe.log(H+I.name.padEnd(a)+` `+SD.dim+I.currentRange.padEnd(S)+SD.reset+` `+W+I.latestVersion.padEnd(C)+SD.reset+` `+W+I.diff+SD.reset)}}async function promptSelection(n){if(!process.stdin.isTTY)return Fe.log(`[gjsify upgrade] non-TTY stdin: pass --latest / --minor / --patch (or --yes for interactive-all) to upgrade non-interactively.`),[];let a=createInterface({input:process.stdin,output:process.stdout});try{Fe.log(`
806
+ Select upgrades: comma- or space-separated indices, `+SD.bold+`a`+SD.reset+` for all, ranges like `+SD.bold+`1-3`+SD.reset+`, or `+SD.bold+`ENTER`+SD.reset+` to skip:`);let S=(await a.question(`> `)).trim();if(!S)return[];if(S.toLowerCase()===`a`||S.toLowerCase()===`all`)return n;let C=new Set;for(let n of S.split(/[\s,]+/).filter(Boolean)){let a=n.match(/^(\d+)-(\d+)$/);if(a){let n=Number(a[1]),S=Number(a[2]);for(let a=Math.min(n,S);a<=Math.max(n,S);a++)C.add(a-1)}else /^\d+$/.test(n)&&C.add(Number(n)-1)}return[...C].filter(a=>a>=0&&a<n.length).map(a=>n[a])}finally{a.close()}}function writePackageJson(n,a,S,C){for(let n of C){let a=S[n.field];a&&(a[n.name]=n.prefix+n.latestVersion)}let N=detectIndent(a);writeFileSync(n,JSON.stringify(S,null,N)+(a.endsWith(`
807
807
  `)?`
808
- `:``),`utf-8`)}function detectIndent(n){let a=n.match(/^\{\n( +)/);return a?a[1].length:2}async function loadNpmrcLight(n){let a={registry:GE,scopes:{},authTokens:{},basicAuth:{}};for(let S of[jo(homedir(),`.npmrc`),jo(n,`.npmrc`)])if(existsSync(S))try{let n=parseNpmrc(readFileSync(S,`utf-8`));a={...a,...n,scopes:{...a.scopes,...n.scopes}}}catch{}return process.env.npm_config_registry&&(a.registry=process.env.npm_config_registry),a}Ie(),ss(),Ho();const xD=[`\\.test\\.`,`\\.spec\\.`,`\\.test-data\\.`],SD=/\.(ts|tsx|mts|cts)$/;async function generateBarrels(n){let a=n.singleQuotes?`'`:`"`,S=n.noSemicolon?``:`;`,C=n.extension===`none`?``:`.${n.extension}`,N=0;for(let F of n.paths){let I=Oo(n.baseDir,F),H=Fo(I)===`types`,W;try{W=(await readdir$1(I,{withFileTypes:!0})).filter(n=>n.isFile()).filter(n=>SD.test(n.name)).filter(n=>n.name!==`index.ts`).filter(a=>!n.exclude.some(n=>n.test(a.name))).sort((n,a)=>n.name.localeCompare(a.name))}catch(a){n.verbose&&Fe.error(`[gjsify barrels] skip ${I}: ${a.message}`);continue}let K=W.map(n=>{let N=Fo(n.name,Io(n.name));return`${H?`export type *`:`export *`} from ${a}./${N}${C}${a}${S}`}),q=K.length?`${K.join(`
808
+ `:``),`utf-8`)}function detectIndent(n){let a=n.match(/^\{\n( +)/);return a?a[1].length:2}async function loadNpmrcLight(n){let a={registry:qE,scopes:{},authTokens:{},basicAuth:{}};for(let S of[jo(homedir(),`.npmrc`),jo(n,`.npmrc`)])if(existsSync(S))try{let n=parseNpmrc(readFileSync(S,`utf-8`));a={...a,...n,scopes:{...a.scopes,...n.scopes}}}catch{}return process.env.npm_config_registry&&(a.registry=process.env.npm_config_registry),a}Ie(),ss(),Ho();const CD=[`\\.test\\.`,`\\.spec\\.`,`\\.test-data\\.`],wD=/\.(ts|tsx|mts|cts)$/;async function generateBarrels(n){let a=n.singleQuotes?`'`:`"`,S=n.noSemicolon?``:`;`,C=n.extension===`none`?``:`.${n.extension}`,N=0;for(let F of n.paths){let I=Oo(n.baseDir,F),H=Fo(I)===`types`,W;try{W=(await readdir$1(I,{withFileTypes:!0})).filter(n=>n.isFile()).filter(n=>wD.test(n.name)).filter(n=>n.name!==`index.ts`).filter(a=>!n.exclude.some(n=>n.test(a.name))).sort((n,a)=>n.name.localeCompare(a.name))}catch(a){n.verbose&&Fe.error(`[gjsify barrels] skip ${I}: ${a.message}`);continue}let K=W.map(n=>{let N=Fo(n.name,Io(n.name));return`${H?`export type *`:`export *`} from ${a}./${N}${C}${a}${S}`}),q=K.length?`${K.join(`
809
809
  `)}\n`:`export {};
810
- `,Y=`${n.header}\n\n${q}`,X=jo(I,`index.ts`);if(await readFile$1(X,`utf-8`).catch(()=>``)===Y){n.verbose&&Fe.log(`[gjsify barrels] up-to-date: ${X}`);continue}n.check?(Fe.error(`[gjsify barrels] drift: ${X}`),N++):(await writeFile$1(X,Y,`utf-8`),n.verbose&&Fe.log(`[gjsify barrels] wrote: ${X}`))}return N}Ie();const CD={command:`barrels [paths..]`,description:"Regenerate `index.ts` barrel files for the given directories. Drop-in replacement for `barrelsby`.",builder:n=>n.positional(`paths`,{description:"Directories whose `index.ts` to (re)generate. May also be passed via `--paths`.",type:`string`,array:!0}).option(`paths`,{alias:`p`,description:`Alternative to positional — repeatable list of directories.`,type:`string`,array:!0}).option(`ext`,{description:"Import-specifier extension. Default: `none` (bundler-mode resolution).",type:`string`,choices:[`js`,`ts`,`none`],default:`none`}).option(`base-dir`,{alias:`b`,description:"Resolve `paths` against this directory. Default: cwd.",type:`string`}).option(`exclude`,{description:"Regex(es) of file names to skip. Repeatable. Defaults: `\\.test\\.`, `\\.spec\\.`, `\\.test-data\\.`.",type:`string`,array:!0}).option(`header`,{description:`Header comment prepended to every generated file.`,type:`string`}).option(`semicolon`,{description:"Emit trailing `;` on each export line. Negate with `--no-semicolon`. Default: omitted.",type:`boolean`,default:!1}).option(`single-quotes`,{description:"Use `'` for import specifiers. Default: true. Pass `--no-single-quotes` for `\"`.",type:`boolean`,default:!0}).option(`check`,{description:`Report drift without modifying files; exit non-zero if any barrel is stale.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Log each file scanned + written.`,type:`boolean`,default:!1}),handler:async n=>{let a=Array.from(new Set((n.paths??[]).filter(Boolean)));if(a.length===0){Fe.error(`[gjsify barrels] no paths provided. Pass directories as positional arguments or via --paths.`),process.exitCode=1;return}let S=n.exclude?.length?n.exclude:[...xD],C=await generateBarrels({paths:a,extension:n.ext??`none`,baseDir:n.baseDir??process.cwd(),exclude:S.map(n=>new RegExp(n)),header:n.header??"// Auto-generated by `gjsify barrels` — do not edit by hand.",noSemicolon:n.semicolon===!1||n.semicolon===void 0,singleQuotes:n.singleQuotes!==!1,check:n.check??!1,verbose:n.verbose??!1});n.check&&C>0&&(Fe.error(`[gjsify barrels] ${C} barrel file(s) drifted. Run without --check to fix.`),process.exitCode=1)}};As(),Ho(),rn();function runtimeLabel(){try{let n=globalThis.imports?.system;if(n?.version!==void 0){let a=Number(n.version);return`GJS ${Math.floor(a/1e4)}.${Math.floor(a%1e4/100)}.${a%100} (SpiderMonkey)`}}catch{}return typeof process<`u`&&typeof process.versions?.node==`string`?`Node.js ${process.version}`:`unknown runtime`}function readBundleVersion(){try{let n=Po(fileURLToPath(import.meta.url)),a=JSON.parse(readFileSync(jo(n,`..`,`package.json`),`utf8`));return typeof a.version==`string`?a.version:`unknown`}catch{return`unknown`}}const wD=Nu(hideBin(process.argv));await wD.scriptName(Pu).version(readBundleVersion()).strict().wrap(wD.terminalWidth()).command(yE.command,yE.description,yE.builder,yE.handler).command(aD.command,aD.description,aD.builder,aD.handler).command(iE.command,iE.description,iE.builder,iE.handler).command(aE.command,aE.description,aE.builder,aE.handler).command(oE.command,oE.description,oE.builder,oE.handler).command(iD.command,iD.description,iD.builder,iD.handler).command(sE.command,sE.description,sE.builder,sE.handler).command(fE.command,fE.description,fE.builder,fE.handler).command(pE.command,pE.description,pE.builder,pE.handler).command(mE.command,mE.description,mE.builder,mE.handler).command(xE.command,xE.description,xE.builder,xE.handler).command(CE.command,CE.description,CE.builder,CE.handler).command(TE.command,TE.description,TE.builder,TE.handler).command(zE.command,zE.description,zE.builder,zE.handler).command(oD.command,oD.description,oD.builder,oD.handler).command(sD.command,sD.description,sD.builder,sD.handler).command(cD.command,cD.description,cD.builder,cD.handler).command(uD.command,uD.description,uD.builder,uD.handler).command(fD.command,fD.description,fD.builder,fD.handler).command(pD.command,pD.description,pD.builder,pD.handler).command(mD.command,mD.description,mD.builder,mD.handler).command(vD.command,vD.description,vD.builder,vD.handler).command(hD.command,hD.description,hD.builder,hD.handler).command(gD.command,gD.description,gD.builder,gD.handler).command(_D.command,_D.description,_D.builder,_D.handler).command(CD.command,CD.description,CD.builder,CD.handler).demandCommand(1).epilogue(`Running on ${runtimeLabel()}`).help().parseAsync();
810
+ `,Y=`${n.header}\n\n${q}`,X=jo(I,`index.ts`);if(await readFile$1(X,`utf-8`).catch(()=>``)===Y){n.verbose&&Fe.log(`[gjsify barrels] up-to-date: ${X}`);continue}n.check?(Fe.error(`[gjsify barrels] drift: ${X}`),N++):(await writeFile$1(X,Y,`utf-8`),n.verbose&&Fe.log(`[gjsify barrels] wrote: ${X}`))}return N}Ie();const TD={command:`barrels [paths..]`,description:"Regenerate `index.ts` barrel files for the given directories. Drop-in replacement for `barrelsby`.",builder:n=>n.positional(`paths`,{description:"Directories whose `index.ts` to (re)generate. May also be passed via `--paths`.",type:`string`,array:!0}).option(`paths`,{alias:`p`,description:`Alternative to positional — repeatable list of directories.`,type:`string`,array:!0}).option(`ext`,{description:"Import-specifier extension. Default: `none` (bundler-mode resolution).",type:`string`,choices:[`js`,`ts`,`none`],default:`none`}).option(`base-dir`,{alias:`b`,description:"Resolve `paths` against this directory. Default: cwd.",type:`string`}).option(`exclude`,{description:"Regex(es) of file names to skip. Repeatable. Defaults: `\\.test\\.`, `\\.spec\\.`, `\\.test-data\\.`.",type:`string`,array:!0}).option(`header`,{description:`Header comment prepended to every generated file.`,type:`string`}).option(`semicolon`,{description:"Emit trailing `;` on each export line. Negate with `--no-semicolon`. Default: omitted.",type:`boolean`,default:!1}).option(`single-quotes`,{description:"Use `'` for import specifiers. Default: true. Pass `--no-single-quotes` for `\"`.",type:`boolean`,default:!0}).option(`check`,{description:`Report drift without modifying files; exit non-zero if any barrel is stale.`,type:`boolean`,default:!1}).option(`verbose`,{description:`Log each file scanned + written.`,type:`boolean`,default:!1}),handler:async n=>{let a=Array.from(new Set((n.paths??[]).filter(Boolean)));if(a.length===0){Fe.error(`[gjsify barrels] no paths provided. Pass directories as positional arguments or via --paths.`),process.exitCode=1;return}let S=n.exclude?.length?n.exclude:[...CD],C=await generateBarrels({paths:a,extension:n.ext??`none`,baseDir:n.baseDir??process.cwd(),exclude:S.map(n=>new RegExp(n)),header:n.header??"// Auto-generated by `gjsify barrels` — do not edit by hand.",noSemicolon:n.semicolon===!1||n.semicolon===void 0,singleQuotes:n.singleQuotes!==!1,check:n.check??!1,verbose:n.verbose??!1});n.check&&C>0&&(Fe.error(`[gjsify barrels] ${C} barrel file(s) drifted. Run without --check to fix.`),process.exitCode=1)}};As(),Ho(),rn();function runtimeLabel(){try{let n=globalThis.imports?.system;if(n?.version!==void 0){let a=Number(n.version);return`GJS ${Math.floor(a/1e4)}.${Math.floor(a%1e4/100)}.${a%100} (SpiderMonkey)`}}catch{}return typeof process<`u`&&typeof process.versions?.node==`string`?`Node.js ${process.version}`:`unknown runtime`}function readBundleVersion(){try{let n=Po(fileURLToPath(import.meta.url)),a=JSON.parse(readFileSync(jo(n,`..`,`package.json`),`utf8`));return typeof a.version==`string`?a.version:`unknown`}catch{return`unknown`}}const ED=Nu(hideBin(process.argv));await ED.scriptName(Pu).version(readBundleVersion()).strict().wrap(ED.terminalWidth()).command(xE.command,xE.description,xE.builder,xE.handler).command(sD.command,sD.description,sD.builder,sD.handler).command(oE.command,oE.description,oE.builder,oE.handler).command(sE.command,sE.description,sE.builder,sE.handler).command(cE.command,cE.description,cE.builder,cE.handler).command(oD.command,oD.description,oD.builder,oD.handler).command(lE.command,lE.description,lE.builder,lE.handler).command(mE.command,mE.description,mE.builder,mE.handler).command(hE.command,hE.description,hE.builder,hE.handler).command(gE.command,gE.description,gE.builder,gE.handler).command(CE.command,CE.description,CE.builder,CE.handler).command(TE.command,TE.description,TE.builder,TE.handler).command(DE.command,DE.description,DE.builder,DE.handler).command(VE.command,VE.description,VE.builder,VE.handler).command(cD.command,cD.description,cD.builder,cD.handler).command(lD.command,lD.description,lD.builder,lD.handler).command(uD.command,uD.description,uD.builder,uD.handler).command(fD.command,fD.description,fD.builder,fD.handler).command(mD.command,mD.description,mD.builder,mD.handler).command(hD.command,hD.description,hD.builder,hD.handler).command(gD.command,gD.description,gD.builder,gD.handler).command(bD.command,bD.description,bD.builder,bD.handler).command(_D.command,_D.description,_D.builder,_D.handler).command(vD.command,vD.description,vD.builder,vD.handler).command(yD.command,yD.description,yD.builder,yD.handler).command(TD.command,TD.description,TD.builder,TD.handler).demandCommand(1).epilogue(`Running on ${runtimeLabel()}`).help().parseAsync();