@gjsify/example-dom-webrtc-loopback 0.4.21 → 0.4.22

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 (2) hide show
  1. package/dist/gjs.js +4 -4
  2. package/package.json +8 -8
package/dist/gjs.js CHANGED
@@ -1,10 +1,10 @@
1
- if(globalThis.process===void 0){let e=imports.system,t=imports.gi.GLib,_h=e=>[0,0];_h.bigint=()=>0n,globalThis.process={platform:`linux`,arch:`x64`,version:`v20.0.0`,env:new Proxy({},{get(e,n){return typeof n==`string`?t.getenv(n)??void 0:void 0},set(e,n,r){return typeof n==`string`&&t.setenv(n,String(r),!0),!0},has(e,n){return typeof n==`string`&&t.getenv(n)!==null},deleteProperty(e,n){return typeof n==`string`&&t.unsetenv(n),!0},ownKeys(){return t.listenv()??[]},getOwnPropertyDescriptor(e,n){let r=t.getenv(n);return r===null?void 0:{value:r,writable:!0,enumerable:!0,configurable:!0}}}),argv:e?.programArgs?[`gjs`,e.programInvocationName||``,...e.programArgs]:[`gjs`],versions:{},config:{},cwd(){return t.get_current_dir()||`/`},exit(t){e.exit(t??0)},stderr:{write(e){printerr(e)}},stdout:{write(e){print(e)}},stdin:null,exitCode:void 0,nextTick(e,...t){Promise.resolve().then(()=>e(...t))},hrtime:_h}}import e from"gi://GLib?version=2.0";import t from"gi://Gio?version=2.0";import"gi://GioUnix?version=2.0";import n from"gi://Gst?version=1.0";import r from"gi://GstWebRTC?version=1.0";import i from"gi://GstSdp?version=1.0";import a from"gi://GjsifyWebrtc?version=0.1";import o from"gi://GObject?version=2.0";var s=Object.defineProperty,__name=(e,t)=>s(e,`name`,{value:t,configurable:!0}),__esmMin=(e,t)=>()=>(e&&(t=e(e=0)),t),__exportAll=(e,t)=>{let n={};for(var r in e)s(n,r,{get:e[r],enumerable:!0});return t||s(n,Symbol.toStringTag,{value:`Module`}),n};const c=new TextEncoder;var l=class BlobPolyfill{_parts;size;type;constructor(e,t){this._parts=e||[],this.type=t?.type||``,this.size=this._parts.reduce((e,t)=>typeof t==`string`?e+c.encode(t).byteLength:t instanceof ArrayBuffer||ArrayBuffer.isView(t)?e+t.byteLength:t&&typeof t.size==`number`?e+t.size:e,0)}async bytes(){let e=await this.arrayBuffer();return new Uint8Array(e)}async text(){return new TextDecoder().decode(await this.arrayBuffer())}async arrayBuffer(){let e=[];for(let t of this._parts)if(typeof t==`string`)e.push(c.encode(t));else if(t instanceof ArrayBuffer)e.push(new Uint8Array(t));else if(ArrayBuffer.isView(t))e.push(new Uint8Array(t.buffer,t.byteOffset,t.byteLength));else if(t&&typeof t.arrayBuffer==`function`){let n=await t.arrayBuffer();e.push(new Uint8Array(n))}let t=e.reduce((e,t)=>e+t.byteLength,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;return n.buffer}slice(e,t,n){return new BlobPolyfill([],{type:n})}stream(){let e=this;return new ReadableStream({async pull(t){let n=await e.arrayBuffer();t.enqueue(new Uint8Array(n)),t.close()}})}},FilePolyfill=class extends l{name;lastModified;webkitRelativePath=``;constructor(e,t,n){super(e,n),this.name=t,this.lastModified=n?.lastModified??Date.now()}};const u=globalThis.Blob??l,d=globalThis.File??FilePolyfill,f=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,p=new Uint8Array(256);for(let e=0;e<64;e++)p[f.charCodeAt(e)]=e;function btoaPolyfill(e){if(typeof globalThis.btoa==`function`)return globalThis.btoa(e);let t=``,n=0;for(;n+2<e.length;n+=3){let r=e.charCodeAt(n)<<16|e.charCodeAt(n+1)<<8|e.charCodeAt(n+2);t+=f[r>>18&63]+f[r>>12&63]+f[r>>6&63]+f[r&63]}if(n+1===e.length){let r=e.charCodeAt(n)<<16;t+=f[r>>18&63]+f[r>>12&63]+`==`}else if(n+2===e.length){let r=e.charCodeAt(n)<<16|e.charCodeAt(n+1)<<8;t+=f[r>>18&63]+f[r>>12&63]+f[r>>6&63]+`=`}return t}function base64Decode(e){let t=e.replace(/[=\s]/g,``),n=new Uint8Array(t.length*3>>2),r=0,i=0,a=0;for(let e=0;e<t.length;e++)r=r<<6|p[t.charCodeAt(e)],i+=6,i>=8&&(i-=8,n[a++]=r>>i&255);return n.subarray(0,a)}function makeCallable(e){return new Proxy(e,{apply(e,t,n){if(t==null||t===globalThis)return Reflect.construct(e,n,e);let r=Reflect.construct(e,n,e);for(let e of Reflect.ownKeys(r)){let n=Object.getOwnPropertyDescriptor(r,e);n&&Object.defineProperty(t,e,n)}return t}})}var m=e;imports.byteArray;const ee=[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`];function normalizeEncoding(e){if(!e||e===`utf8`||e===`utf-8`)return`utf8`;switch((``+e).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(e){let t=(``+e).toLowerCase().replace(/-/g,``);if(!ee.includes(t))throw TypeError(`Unknown encoding: ${e}`)}const initErrorV8Methods=e=>{Error.captureStackTrace||(Error.captureStackTrace=function(e,t){let n=Error();Object.defineProperty(t||e,`stack`,{configurable:!0,get:function getStack(){var e=n.stack;return Object.defineProperty(this,`stack`,{value:e}),e}})})};imports.byteArray;var te=t;imports.byteArray;function registerGlobal(e,t){globalThis[e]===void 0&&(globalThis[e]=t)}const ne=typeof print==`function`&&typeof printerr==`function`;function _formatArgs(...e){let t=e[0],n=e.slice(1);if(typeof t!=`string`||!/%(s|d|i|f|o|O|c)/.test(t))return e.map(e=>typeof e==`string`?e:JSON.stringify(e)).join(` `);let r=0,i=t.replace(/%([sdifOoc])/g,(e,t)=>{if(r>=n.length)return e;let i=n[r++];switch(t){case`s`:return String(i);case`d`:case`i`:return String(parseInt(String(i),10));case`f`:return String(parseFloat(String(i)));case`o`:case`O`:return JSON.stringify(i);case`c`:return``;default:return e}}),a=n.slice(r);return a.length===0?i:i+` `+a.map(e=>typeof e==`string`?e:JSON.stringify(e)).join(` `)}var Console=class{_stdout;_stderr;_groupDepth=0;_groupIndentation;_timers=new Map;_counters=new Map;constructor(e,t){if(e&&typeof e.write==`function`)this._stdout=e,this._stderr=t||this._stdout;else if(e&&typeof e==`object`){let t=e;this._stdout=t.stdout,this._stderr=t.stderr||t.stdout}this._groupIndentation=2}_write(e,...t){let n=e===`stderr`&&this._stderr||this._stdout;if(n){let e=` `.repeat(this._groupDepth*this._groupIndentation),r=_formatArgs(...t);n.write(e+r+`
2
- `)}else if(ne){let n=` `.repeat(this._groupDepth*this._groupIndentation)+_formatArgs(...t);e===`stderr`?printerr(n):print(n)}else{let n=globalThis.console;e===`stderr`?n.error(...t):n.log(...t)}}log(...e){this._write(`stdout`,...e)}info(...e){this._write(`stdout`,...e)}debug(...e){this._write(`stdout`,...e)}warn(...e){this._write(`stderr`,...e)}error(...e){this._write(`stderr`,...e)}dir(e,t){this._write(`stdout`,e)}dirxml(...e){this.log(...e)}assert(e,...t){e||this.error(`Assertion failed:`,...t)}clear(){this._stdout?this._stdout.write(`\x1Bc`):ne?print(`\x1Bc`):globalThis.console.clear()}count(e=`default`){let t=(this._counters.get(e)||0)+1;this._counters.set(e,t),this.log(`${e}: ${t}`)}countReset(e=`default`){this._counters.delete(e)}group(...e){e.length>0&&this.log(...e),this._groupDepth++}groupCollapsed(...e){this.group(...e)}groupEnd(){this._groupDepth>0&&this._groupDepth--}table(e,t){this._stdout?this._write(`stdout`,e):ne?print(JSON.stringify(e,null,2)):globalThis.console.table(e,t)}time(e=`default`){this._timers.set(e,Date.now())}timeEnd(e=`default`){let t=this._timers.get(e);t===void 0?this.warn(`Warning: No such label '${e}' for console.timeEnd()`):(this.log(`${e}: ${Date.now()-t}ms`),this._timers.delete(e))}timeLog(e=`default`,...t){let n=this._timers.get(e);n===void 0?this.warn(`Warning: No such label '${e}' for console.timeLog()`):this.log(`${e}: ${Date.now()-n}ms`,...t)}trace(...e){let t=Error().stack?.split(`
1
+ if(globalThis.process===void 0){let e=imports.system,t=imports.gi.GLib,_h=e=>[0,0];_h.bigint=()=>0n,globalThis.process={platform:`linux`,arch:`x64`,version:`v20.0.0`,env:new Proxy({},{get(e,n){return typeof n==`string`?t.getenv(n)??void 0:void 0},set(e,n,r){return typeof n==`string`&&t.setenv(n,String(r),!0),!0},has(e,n){return typeof n==`string`&&t.getenv(n)!==null},deleteProperty(e,n){return typeof n==`string`&&t.unsetenv(n),!0},ownKeys(){return t.listenv()??[]},getOwnPropertyDescriptor(e,n){let r=t.getenv(n);return r===null?void 0:{value:r,writable:!0,enumerable:!0,configurable:!0}}}),argv:e?.programArgs?[`gjs`,e.programInvocationName||``,...e.programArgs]:[`gjs`],versions:{},config:{},cwd(){return t.get_current_dir()||`/`},exit(t){e.exit(t??0)},stderr:{write(e){printerr(e)}},stdout:{write(e){print(e)}},stdin:null,exitCode:void 0,nextTick(e,...t){Promise.resolve().then(()=>e(...t))},hrtime:_h}}import e from"gi://GLib?version=2.0";import t from"gi://Gio?version=2.0";import"gi://GioUnix?version=2.0";import n from"gi://Gst?version=1.0";import r from"gi://GstWebRTC?version=1.0";import i from"gi://GstSdp?version=1.0";import a from"gi://GjsifyWebrtc?version=0.1";import o from"gi://GObject?version=2.0";var s=Object.defineProperty,__name=(e,t)=>s(e,`name`,{value:t,configurable:!0}),__esmMin=(e,t)=>()=>(e&&(t=e(e=0)),t),__exportAll=(e,t)=>{let n={};for(var r in e)s(n,r,{get:e[r],enumerable:!0});return t||s(n,Symbol.toStringTag,{value:`Module`}),n};const c=new TextEncoder;var l=class BlobPolyfill{_parts;size;type;constructor(e,t){this._parts=e||[],this.type=t?.type||``,this.size=this._parts.reduce((e,t)=>typeof t==`string`?e+c.encode(t).byteLength:t instanceof ArrayBuffer||ArrayBuffer.isView(t)?e+t.byteLength:t&&typeof t.size==`number`?e+t.size:e,0)}async bytes(){let e=await this.arrayBuffer();return new Uint8Array(e)}async text(){return new TextDecoder().decode(await this.arrayBuffer())}async arrayBuffer(){let e=[];for(let t of this._parts)if(typeof t==`string`)e.push(c.encode(t));else if(t instanceof ArrayBuffer)e.push(new Uint8Array(t));else if(ArrayBuffer.isView(t))e.push(new Uint8Array(t.buffer,t.byteOffset,t.byteLength));else if(t&&typeof t.arrayBuffer==`function`){let n=await t.arrayBuffer();e.push(new Uint8Array(n))}let t=e.reduce((e,t)=>e+t.byteLength,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;return n.buffer}slice(e,t,n){return new BlobPolyfill([],{type:n})}stream(){let e=this;return new ReadableStream({async pull(t){let n=await e.arrayBuffer();t.enqueue(new Uint8Array(n)),t.close()}})}},FilePolyfill=class extends l{name;lastModified;webkitRelativePath=``;constructor(e,t,n){super(e,n),this.name=t,this.lastModified=n?.lastModified??Date.now()}};const u=globalThis.Blob??l,d=globalThis.File??FilePolyfill;function makeCallable(e){return new Proxy(e,{apply(e,t,n){if(t==null||t===globalThis)return Reflect.construct(e,n,e);let r=Reflect.construct(e,n,e);for(let e of Reflect.ownKeys(r)){let n=Object.getOwnPropertyDescriptor(r,e);n&&Object.defineProperty(t,e,n)}return t}})}var f=e;imports.byteArray;const initErrorV8Methods=e=>{let t=Error;t.captureStackTrace||=function(e,t){let n=Error();Object.defineProperty(t||e,"stack",{configurable:!0,get:function getStack(){var e=n.stack;return Object.defineProperty(this,"stack",{value:e}),e}})}};imports.byteArray;var p=t;imports.byteArray;function registerGlobal(e,t){let n=globalThis;n[e]===void 0&&(n[e]=t)}const m=typeof print==`function`&&typeof printerr==`function`;function _formatArgs(...e){let t=e[0],n=e.slice(1);if(typeof t!=`string`||!/%(s|d|i|f|o|O|c)/.test(t))return e.map(e=>typeof e==`string`?e:JSON.stringify(e)).join(` `);let r=0,i=t.replace(/%([sdifOoc])/g,(e,t)=>{if(r>=n.length)return e;let i=n[r++];switch(t){case`s`:return String(i);case`d`:case`i`:return String(parseInt(String(i),10));case`f`:return String(parseFloat(String(i)));case`o`:case`O`:return JSON.stringify(i);case`c`:return``;default:return e}}),a=n.slice(r);return a.length===0?i:i+` `+a.map(e=>typeof e==`string`?e:JSON.stringify(e)).join(` `)}var Console=class{_stdout;_stderr;_groupDepth=0;_groupIndentation;_timers=new Map;_counters=new Map;constructor(e,t){if(e&&typeof e.write==`function`)this._stdout=e,this._stderr=t||this._stdout;else if(e&&typeof e==`object`){let t=e;this._stdout=t.stdout,this._stderr=t.stderr||t.stdout}this._groupIndentation=2}_write(e,...t){let n=e===`stderr`&&this._stderr||this._stdout;if(n){let e=` `.repeat(this._groupDepth*this._groupIndentation),r=_formatArgs(...t);n.write(e+r+`
2
+ `)}else if(m){let n=` `.repeat(this._groupDepth*this._groupIndentation)+_formatArgs(...t);e===`stderr`?printerr(n):print(n)}else{let n=globalThis.console;e===`stderr`?n.error(...t):n.log(...t)}}log(...e){this._write(`stdout`,...e)}info(...e){this._write(`stdout`,...e)}debug(...e){this._write(`stdout`,...e)}warn(...e){this._write(`stderr`,...e)}error(...e){this._write(`stderr`,...e)}dir(e,t){this._write(`stdout`,e)}dirxml(...e){this.log(...e)}assert(e,...t){e||this.error(`Assertion failed:`,...t)}clear(){this._stdout?this._stdout.write(`\x1Bc`):m?print(`\x1Bc`):globalThis.console.clear()}count(e=`default`){let t=(this._counters.get(e)||0)+1;this._counters.set(e,t),this.log(`${e}: ${t}`)}countReset(e=`default`){this._counters.delete(e)}group(...e){e.length>0&&this.log(...e),this._groupDepth++}groupCollapsed(...e){this.group(...e)}groupEnd(){this._groupDepth>0&&this._groupDepth--}table(e,t){this._stdout?this._write(`stdout`,e):m?print(JSON.stringify(e,null,2)):globalThis.console.table(e,t)}time(e=`default`){this._timers.set(e,Date.now())}timeEnd(e=`default`){let t=this._timers.get(e);t===void 0?this.warn(`Warning: No such label '${e}' for console.timeEnd()`):(this.log(`${e}: ${Date.now()-t}ms`),this._timers.delete(e))}timeLog(e=`default`,...t){let n=this._timers.get(e);n===void 0?this.warn(`Warning: No such label '${e}' for console.timeLog()`):this.log(`${e}: ${Date.now()-n}ms`,...t)}trace(...e){let t=Error().stack?.split(`
3
3
  `).slice(1).join(`
4
4
  `)||``;this._write(`stderr`,`Trace:`,...e,`
5
- `+t)}profile(e){}profileEnd(e){}timeStamp(e){}};const h=new Console,re=__name((...e)=>h.log(...e),`log`),info=(...e)=>h.info(...e),debug=(...e)=>h.debug(...e),warn=(...e)=>h.warn(...e),error=(...e)=>h.error(...e),dir=(e,t)=>h.dir(e,t),dirxml=(...e)=>h.dirxml(...e),table=(e,t)=>h.table(e,t),clear=()=>h.clear(),assert=(e,...t)=>h.assert(e,...t),trace=(...e)=>h.trace(...e),time=e=>h.time(e),timeEnd=e=>h.timeEnd(e),timeLog=(e,...t)=>h.timeLog(e,...t),count=e=>h.count(e),countReset=e=>h.countReset(e),group=(...e)=>h.group(...e),groupCollapsed=(...e)=>h.groupCollapsed(...e),groupEnd=()=>h.groupEnd(),profile=e=>{},profileEnd=e=>{},timeStamp=e=>{},g={log:re,info,debug,warn,error,dir,dirxml,table,time,timeEnd,timeLog,trace,assert,clear,count,countReset,group,groupCollapsed,groupEnd,profile,profileEnd,timeStamp},_=__name(e=>{Promise.resolve().then(e)},`queueMicrotask`),{File:ie}=te,{toString:ae}=Object.prototype;function classOf(e){return ae.call(e).slice(8,-1)}function throwDataCloneError(e){let t=globalThis.DOMException;if(typeof t==`function`)throw new t(e,`DataCloneError`);let n=Error(e);throw n.name=`DataCloneError`,n}const oe={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError},se=new Set([`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function internalClone(e,t,n){if(e==null)return e;let r=typeof e;if(r===`boolean`||r===`number`||r===`string`||r===`bigint`)return e;r===`symbol`&&throwDataCloneError(`Symbol cannot be cloned`),r===`function`&&throwDataCloneError(`Function cannot be cloned`);let i=e;if(t.has(i))return t.get(i);let a=classOf(i);if(a===`Date`)return new Date(i.getTime());if(a===`RegExp`)return new RegExp(i.source,i.flags);if(a===`Boolean`||a===`Number`||a===`String`)return Object(i.valueOf());if(a===`BigInt`)return Object(BigInt.prototype.valueOf.call(i));if(i instanceof Error){let e=i,r=e.constructor?.name,a=new(r&&oe[r]||oe[e.name]||Error)(e.message);return a.name=e.name,`cause`in e&&Object.defineProperty(a,`cause`,{value:internalClone(e.cause,t,n),writable:!0,enumerable:!1,configurable:!0}),a}if(a===`DOMException`){let e=globalThis.DOMException;if(typeof e==`function`){let t=i;return new e(t.message,t.name)}}if(a===`ArrayBuffer`){let e=i;if(n&&n.transferred.has(e)){let r=n.transferred.get(e);return t.set(i,r),r}(e.detached===!0||e.byteLength===0&&e.detached)&&throwDataCloneError(`ArrayBuffer is detached and cannot be cloned`);let r=e.slice(0);return t.set(i,r),r}if(a===`SharedArrayBuffer`||i&&typeof i==`object`&&i.constructor?.name===`SharedBuffer`)return i;if(a===`DataView`){let e=i,r=n?.viewSnapshots.get(i),a=internalClone(e.buffer,t,n),o=r?r.byteOffset:e.byteOffset,s=r?r.byteLength:e.byteLength,c=new DataView(a,o,s);return t.set(i,c),c}if(se.has(a)){let e=i,r=n?.viewSnapshots.get(i),a=internalClone(e.buffer,t,n),o=e.constructor,s=new o(a,r?r.byteOffset:e.byteOffset,r?r.length:e.length);return t.set(i,s),s}if(a===`Map`){let e=new Map;t.set(i,e);for(let[r,a]of i)e.set(internalClone(r,t,n),internalClone(a,t,n));return e}if(a===`Set`){let e=new Set;t.set(i,e);for(let r of i)e.add(internalClone(r,t,n));return e}{let e=globalThis,t=e.Blob,n=e.File;if(typeof n==`function`&&i instanceof n){let e=i;return new n([i],e.name,{type:e.type,lastModified:e.lastModified})}if(typeof t==`function`&&i instanceof t)return new t([i],{type:i.type})}if(i instanceof WeakMap&&throwDataCloneError(`WeakMap cannot be cloned`),i instanceof WeakSet&&throwDataCloneError(`WeakSet cannot be cloned`),i instanceof WeakRef&&throwDataCloneError(`WeakRef cannot be cloned`),typeof globalThis.Promise==`function`&&i instanceof Promise&&throwDataCloneError(`Promise cannot be cloned`),a===`Array`){let e=i,r=[];t.set(i,r);for(let i=0;i<e.length;i++)i in e&&(r[i]=internalClone(e[i],t,n));return r}if(a===`Object`||typeof i==`object`){let e={};t.set(i,e);for(let r of Object.keys(i))e[r]=internalClone(i[r],t,n);return e}throwDataCloneError(`${a} cannot be cloned`)}function structuredClone$1(e,t){let n=t?.transfer;if(!n||n.length===0)return internalClone(e,new Map);let r=new Set;for(let e of n)if(classOf(e)===`ArrayBuffer`){let t=e;t.detached===!0&&throwDataCloneError(`ArrayBuffer in transfer list is detached`),r.add(t)}let i=new Map;r.size>0&&snapshotViewsBackedByTransferredBuffers(e,r,i,new Set);let a=new Map;for(let e of r){let t=e;typeof t.transfer!=`function`&&throwDataCloneError(`ArrayBuffer.prototype.transfer() not available — runtime is not SM140+`),a.set(e,t.transfer())}return internalClone(e,new Map,{transferred:a,viewSnapshots:i})}__name(structuredClone$1,`structuredClone`);function snapshotViewsBackedByTransferredBuffers(e,t,n,r){if(typeof e!=`object`||!e)return;let i=e;if(r.has(i))return;r.add(i);let a=classOf(i);if(a===`DataView`){let e=i;t.has(e.buffer)&&n.set(i,{byteOffset:e.byteOffset,length:0,byteLength:e.byteLength});return}if(se.has(a)){let e=i;t.has(e.buffer)&&n.set(i,{byteOffset:e.byteOffset,length:e.length,byteLength:e.byteLength});return}if(Array.isArray(i)){for(let e=0;e<i.length;e++)e in i&&snapshotViewsBackedByTransferredBuffers(i[e],t,n,r);return}if(a===`Map`){for(let[e,a]of i)snapshotViewsBackedByTransferredBuffers(e,t,n,r),snapshotViewsBackedByTransferredBuffers(a,t,n,r);return}if(a===`Set`){for(let e of i)snapshotViewsBackedByTransferredBuffers(e,t,n,r);return}if(a===`Object`)for(let e of Object.keys(i))snapshotViewsBackedByTransferredBuffers(i[e],t,n,r)}let ce=!1,v=null;function ensureMainLoop(){let e=globalThis.imports;if(!e)return;if(ce)return v;let t=e.gi.GLib;if(v=new t.MainLoop(null,!1),ce=!0,t.main_depth()===0)try{v.runAsync()}catch{}return v}function quitMainLoop(){v&&=(v.quit(),ce=!1,null)}registerGlobal(`Blob`,u),registerGlobal(`File`,d);const y=new TextEncoder,le=new TextDecoder,ue=typeof SharedArrayBuffer<`u`;function encodeString(e,t){switch(t){case`utf8`:return y.encode(e);case`ascii`:{let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&127;return t}case`latin1`:{let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}case`base64`:return base64Decode(e.replace(/-/g,`+`).replace(/_/g,`/`));case`base64url`:return encodeString(e.replace(/-/g,`+`).replace(/_/g,`/`),`base64`);case`hex`:{let t=e.length>>>1,n=new Uint8Array(t);for(let r=0;r<t;r++){let t=parseInt(e[r*2],16),i=parseInt(e[r*2+1],16);if(Number.isNaN(t)||Number.isNaN(i))break;n[r]=t<<4|i}return n}case`utf16le`:{let t=new Uint8Array(e.length*2);for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t[n*2]=r&255,t[n*2+1]=r>>8&255}return t}default:return y.encode(e)}}function decodeString(e,t,n,r){let i=n!==void 0||r!==void 0?e.subarray(n??0,r??e.length):e;switch(t){case`utf8`:return le.decode(i);case`ascii`:{let e=``;for(let t=0;t<i.length;t++)e+=String.fromCharCode(i[t]&127);return e}case`latin1`:{let e=``;for(let t=0;t<i.length;t++)e+=String.fromCharCode(i[t]);return e}case`base64`:{let e=``;for(let t=0;t<i.length;t++)e+=String.fromCharCode(i[t]);return btoaPolyfill(e)}case`base64url`:return decodeString(i,`base64`).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``);case`hex`:{let e=``;for(let t=0;t<i.length;t++)e+=i[t].toString(16).padStart(2,`0`);return e}case`utf16le`:{let e=``;for(let t=0;t+1<i.length;t+=2)e+=String.fromCharCode(i[t]|i[t+1]<<8);return e}default:return le.decode(i)}}function checkOffset(e,t,n){if(e+t>n)throw RangeError(`Attempt to access memory outside buffer bounds`)}var de=class Buffer extends Uint8Array{static _isBuffer=!0;static alloc(e,t,n){if(typeof e!=`number`)throw TypeError(`The "size" argument must be of type number. Received type ${typeof e}`);if(e<0)throw RangeError(`The value "${e}" is invalid for option "size"`);let r=new Buffer(e);return t!==void 0&&t!==0&&r.fill(t,0,e,n),r}static allocUnsafe(e){if(typeof e!=`number`)throw TypeError(`The "size" argument must be of type number. Received type ${typeof e}`);return new Buffer(e)}static allocUnsafeSlow(e){return Buffer.allocUnsafe(e)}static from(e,t,n){if(typeof e==`string`){let n=normalizeEncoding(t);if(t&&typeof t==`string`){let e=(``+t).toLowerCase().replace(/-/g,``);[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`,``].includes(e)||checkEncoding(t)}let r=encodeString(e,n);return new Buffer(r.buffer,r.byteOffset,r.byteLength)}if(ArrayBuffer.isView(e)){let t=new Buffer(e.buffer,e.byteOffset,e.byteLength),n=new Buffer(t.length);return n.set(t),n}if(e instanceof ArrayBuffer){let r=t||0;return new Buffer(e,r,n===void 0?e.byteLength-r:n)}if(ue&&e instanceof SharedArrayBuffer){let r=t||0,i=n===void 0?e.byteLength-r:n;return new Buffer(new Uint8Array(e,r,i))}if(typeof e==`object`&&e&&typeof e.viewBytes==`function`&&typeof e.byteLength==`number`&&e.constructor?.name===`SharedBuffer`){let r=e,i=t||0,a=n===void 0?r.byteLength-i:n,o=r.viewBytes(i,a);return new Buffer(o.buffer,o.byteOffset,o.byteLength)}if(Array.isArray(e)){let t=new Buffer(e.length);for(let n=0;n<e.length;n++)t[n]=e[n]&255;return t}throw TypeError(`The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array`)}static isBuffer(e){return e instanceof Buffer}static isEncoding(e){if(typeof e!=`string`)return!1;let t=e.toLowerCase().replace(/-/g,``);return[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`].includes(t)}static byteLength(e,t){if(typeof e!=`string`){if(ArrayBuffer.isView(e)||e instanceof ArrayBuffer||ue&&e instanceof SharedArrayBuffer)return e.byteLength;throw TypeError(`The "string" argument must be one of type string, Buffer, or ArrayBuffer`)}switch(normalizeEncoding(t)){case`utf8`:return y.encode(e).byteLength;case`ascii`:case`latin1`:return e.length;case`base64`:case`base64url`:{let t=e.length;for(;t>0&&(e[t-1]===`=`||e[t-1]===` `);)t--;return t*3>>>2}case`hex`:return e.length>>>1;case`utf16le`:return e.length*2;default:return y.encode(e).byteLength}}static compare(e,t){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array))throw TypeError(`Arguments must be Buffers or Uint8Arrays`);let n=Math.min(e.length,t.length);for(let r=0;r<n;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.length<t.length?-1:+(e.length>t.length)}static concat(e,t){if(e.length===0)return Buffer.alloc(0);if(t===void 0){t=0;for(let n=0;n<e.length;n++)t+=e[n].length}let n=Buffer.alloc(t),r=0;for(let i=0;i<e.length;i++){let a=e[i],o=Math.min(a.length,t-r);o<=0||(n.set(a.subarray(0,o),r),r+=o)}return n}static poolSize=8192;toString(e,t,n){let r=normalizeEncoding(e);return decodeString(this,r,t,n)}toJSON(){return{type:`Buffer`,data:Array.from(this)}}equals(e){if(!(e instanceof Uint8Array))throw TypeError(`Argument must be a Buffer or Uint8Array`);if(this.length!==e.length)return!1;for(let t=0;t<this.length;t++)if(this[t]!==e[t])return!1;return!0}compare(e,t,n,r,i){if(!(e instanceof Uint8Array))throw TypeError(`Argument must be a Buffer or Uint8Array`);let a=r!==void 0||i!==void 0?this.subarray(r??0,i??this.length):this,o=t!==void 0||n!==void 0?e.subarray(t??0,n??e.length):e;return Buffer.compare(a,o)}copy(e,t=0,n=0,r){let i=r??this.length,a=Math.min(i-n,e.length-t);return a<=0?0:(e.set(this.subarray(n,n+a),t),a)}slice(e,t){let n=e??0,r=t??this.length,i=super.subarray(n,r);return new Buffer(i.buffer,i.byteOffset,i.byteLength)}subarray(e,t){let n=super.subarray(e,t);return new Buffer(n.buffer,n.byteOffset,n.byteLength)}write(e,t,n,r){t??=0;let i=encodeString(e,normalizeEncoding(r||(typeof n==`string`?n:void 0))),a=n!==void 0&&typeof n==`number`?Math.min(n,this.length-t):this.length-t,o=Math.min(i.length,a);return this.set(i.subarray(0,o),t),o}fill(e,t,n,r){let i=t??0,a=n??this.length;if(typeof e==`number`)super.fill(e&255,i,a);else if(typeof e==`string`){let t=encodeString(e,normalizeEncoding(r));if(t.length===0)super.fill(0,i,a);else if(t.length===1)super.fill(t[0],i,a);else for(let e=i;e<a;e++)this[e]=t[(e-i)%t.length]}else if(e instanceof Uint8Array)if(e.length===0)super.fill(0,i,a);else for(let t=i;t<a;t++)this[t]=e[(t-i)%e.length];return this}indexOf(e,t,n){if(typeof e==`number`)return super.indexOf(e&255,t);let r=typeof e==`string`?encodeString(e,normalizeEncoding(n)):e,i=t??0;outer:for(let e=i;e<=this.length-r.length;e++){for(let t=0;t<r.length;t++)if(this[e+t]!==r[t])continue outer;return e}return-1}lastIndexOf(e,t,n){if(typeof e==`number`)return t===void 0?super.lastIndexOf(e&255):super.lastIndexOf(e&255,t);let r=typeof e==`string`?encodeString(e,normalizeEncoding(n)):e,i=t===void 0?this.length-r.length:Math.min(t,this.length-r.length);outer:for(let e=i;e>=0;e--){for(let t=0;t<r.length;t++)if(this[e+t]!==r[t])continue outer;return e}return-1}includes(e,t,n){return this.indexOf(e,t,n)!==-1}readUInt8(e=0){return checkOffset(e,1,this.length),this[e]}readUInt16BE(e=0){return checkOffset(e,2,this.length),this[e]<<8|this[e+1]}readUInt16LE(e=0){return checkOffset(e,2,this.length),this[e]|this[e+1]<<8}readUInt32BE(e=0){return checkOffset(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])}readUInt32LE(e=0){return checkOffset(e,4,this.length),this[e+3]*16777216+(this[e+2]<<16|this[e+1]<<8|this[e])>>>0}readInt8(e=0){return checkOffset(e,1,this.length),this[e]|(this[e]&128?4294967040:0)}readInt16BE(e=0){checkOffset(e,2,this.length);let t=this[e]<<8|this[e+1];return t&32768?t|4294901760:t}readInt16LE(e=0){checkOffset(e,2,this.length);let t=this[e]|this[e+1]<<8;return t&32768?t|4294901760:t}readInt32BE(e=0){return checkOffset(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]}readInt32LE(e=0){return checkOffset(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24}readFloatBE(e=0){return checkOffset(e,4,this.length),new DataView(this.buffer,this.byteOffset+e,4).getFloat32(0,!1)}readFloatLE(e=0){return checkOffset(e,4,this.length),new DataView(this.buffer,this.byteOffset+e,4).getFloat32(0,!0)}readDoubleBE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getFloat64(0,!1)}readDoubleLE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getFloat64(0,!0)}readBigInt64BE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getBigInt64(0,!1)}readBigInt64LE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getBigInt64(0,!0)}readBigUInt64BE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getBigUint64(0,!1)}readBigUInt64LE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getBigUint64(0,!0)}readUIntBE(e,t){checkOffset(e,t,this.length);let n=0;for(let r=0;r<t;r++)n=n*256+this[e+r];return n}readUIntLE(e,t){checkOffset(e,t,this.length);let n=0,r=1;for(let i=0;i<t;i++)n+=this[e+i]*r,r*=256;return n}readIntBE(e,t){checkOffset(e,t,this.length);let n=0;for(let r=0;r<t;r++)n=n*256+this[e+r];return n>=2**(8*t-1)&&(n-=2**(8*t)),n}readIntLE(e,t){checkOffset(e,t,this.length);let n=0,r=1;for(let i=0;i<t;i++)n+=this[e+i]*r,r*=256;return n>=2**(8*t-1)&&(n-=2**(8*t)),n}writeUInt8(e,t=0){return checkOffset(t,1,this.length),this[t]=e&255,t+1}writeUInt16BE(e,t=0){return checkOffset(t,2,this.length),this[t]=e>>>8&255,this[t+1]=e&255,t+2}writeUInt16LE(e,t=0){return checkOffset(t,2,this.length),this[t]=e&255,this[t+1]=e>>>8&255,t+2}writeUInt32BE(e,t=0){return checkOffset(t,4,this.length),this[t]=e>>>24&255,this[t+1]=e>>>16&255,this[t+2]=e>>>8&255,this[t+3]=e&255,t+4}writeUInt32LE(e,t=0){return checkOffset(t,4,this.length),this[t]=e&255,this[t+1]=e>>>8&255,this[t+2]=e>>>16&255,this[t+3]=e>>>24&255,t+4}writeInt8(e,t=0){return checkOffset(t,1,this.length),e<0&&(e=255+e+1),this[t]=e&255,t+1}writeInt16BE(e,t=0){return checkOffset(t,2,this.length),this[t]=e>>>8&255,this[t+1]=e&255,t+2}writeInt16LE(e,t=0){return checkOffset(t,2,this.length),this[t]=e&255,this[t+1]=e>>>8&255,t+2}writeInt32BE(e,t=0){return checkOffset(t,4,this.length),this[t]=e>>>24&255,this[t+1]=e>>>16&255,this[t+2]=e>>>8&255,this[t+3]=e&255,t+4}writeInt32LE(e,t=0){return checkOffset(t,4,this.length),this[t]=e&255,this[t+1]=e>>>8&255,this[t+2]=e>>>16&255,this[t+3]=e>>>24&255,t+4}writeFloatBE(e,t=0){return checkOffset(t,4,this.length),new DataView(this.buffer,this.byteOffset+t,4).setFloat32(0,e,!1),t+4}writeFloatLE(e,t=0){return checkOffset(t,4,this.length),new DataView(this.buffer,this.byteOffset+t,4).setFloat32(0,e,!0),t+4}writeDoubleBE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setFloat64(0,e,!1),t+8}writeDoubleLE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setFloat64(0,e,!0),t+8}writeBigInt64BE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setBigInt64(0,e,!1),t+8}writeBigInt64LE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setBigInt64(0,e,!0),t+8}writeBigUInt64BE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setBigUint64(0,e,!1),t+8}writeBigUInt64LE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setBigUint64(0,e,!0),t+8}swap16(){let e=this.length;if(e%2!=0)throw RangeError(`Buffer size must be a multiple of 16-bits`);for(let t=0;t<e;t+=2){let e=this[t];this[t]=this[t+1],this[t+1]=e}return this}swap32(){let e=this.length;if(e%4!=0)throw RangeError(`Buffer size must be a multiple of 32-bits`);for(let t=0;t<e;t+=4){let e=this[t],n=this[t+1];this[t]=this[t+3],this[t+1]=this[t+2],this[t+2]=n,this[t+3]=e}return this}swap64(){let e=this.length;if(e%8!=0)throw RangeError(`Buffer size must be a multiple of 64-bits`);for(let t=0;t<e;t+=8){let e=this[t],n=this[t+1],r=this[t+2],i=this[t+3];this[t]=this[t+7],this[t+1]=this[t+6],this[t+2]=this[t+5],this[t+3]=this[t+4],this[t+4]=i,this[t+5]=r,this[t+6]=n,this[t+7]=e}return this}};`Buffer`in globalThis||Object.defineProperty(globalThis,`Buffer`,{value:de,enumerable:!1,writable:!0,configurable:!0}),typeof globalThis.btoa!=`function`&&Object.defineProperty(globalThis,`btoa`,{value:function btoa(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return m.base64_encode(t)},enumerable:!0,writable:!0,configurable:!0}),typeof globalThis.atob!=`function`&&Object.defineProperty(globalThis,`atob`,{value:function atob(e){let t=m.base64_decode(e),n=``;for(let e=0;e<t.length;e++)n+=String.fromCharCode(t[e]);return n},enumerable:!0,writable:!0,configurable:!0}),typeof queueMicrotask!=`function`&&Object.defineProperty(globalThis,`queueMicrotask`,{value:_,enumerable:!0,writable:!0,configurable:!0});const b=Symbol(`kCapture`),fe=Symbol.for(`nodejs.rejection`);function onceWrapper(){let{target:e,type:t,listener:n}=this;return this.wrapperFn&&e.removeListener(t,this.wrapperFn),n.apply(e,arguments)}function _onceWrap(e,t,n){let r={target:e,type:t,listener:n,wrapperFn:void 0},i=onceWrapper.bind(r);return r.wrapperFn=i,i.listener=n,i}function arrayClone(e){switch(e.length){case 0:return[];case 1:return[e[0]];case 2:return[e[0],e[1]];case 3:return[e[0],e[1],e[2]];default:return e.slice()}}function checkListener(e){if(typeof e!=`function`)throw TypeError(`The "listener" argument must be of type Function. Received type `+typeof e)}function validateNumber(e,t){if(typeof e!=`number`||e!==e)throw TypeError(`The "${t}" argument must be of type number. Received type ${typeof e}`)}function spliceOne(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}var x=class EventEmitter{static defaultMaxListeners=10;static errorMonitor=Symbol(`events.errorMonitor`);static captureRejectionSymbol=fe;static _captureRejections=!1;static get captureRejections(){return EventEmitter._captureRejections}static set captureRejections(e){if(typeof e!=`boolean`)throw TypeError(`The "captureRejections" argument must be of type boolean.`);EventEmitter._captureRejections=e}_events;_eventsCount;_maxListeners;[b];constructor(e){this._events=Object.create(null),this._eventsCount=0,this._maxListeners=void 0,this[b]=e?.captureRejections??EventEmitter._captureRejections}setMaxListeners(e){if(validateNumber(e,`n`),e<0)throw RangeError(`The value of "n" is out of range. It must be a non-negative number. Received `+e);return this._maxListeners=e,this}getMaxListeners(){return this._maxListeners??EventEmitter.defaultMaxListeners}emit(e,...t){let n=this._events,r=e===`error`;if(n!==void 0)r&&n[EventEmitter.errorMonitor]!==void 0&&this.emit(EventEmitter.errorMonitor,...t),r&&=n.error===void 0;else if(!r)return!1;if(r){let e;if(e=t.length>0?t[0]:Error(`Unhandled error.`),e instanceof Error)throw e;let n=Error(`Unhandled error. (`+e+`)`);throw n.context=e,n}let i=n[e];if(i===void 0)return!1;if(typeof i==`function`){let n=i.apply(this,t);n!=null&&this[b]&&this._addCatch(n,e,t)}else{let n=arrayClone(i),r=n.length;for(let i=0;i<r;++i){let r=n[i].apply(this,t);r!=null&&this[b]&&this._addCatch(r,e,t)}}return!0}_addCatch(e,t,n){typeof e?.then==`function`&&e.then(void 0,e=>{let r=this[fe];if(typeof r==`function`)r.call(this,e,t,...n);else{let t=this[b];try{this[b]=!1,this.emit(`error`,e)}finally{this[b]=t}}})}addListener(e,t){return this._addListener(e,t,!1)}on(e,t){return this._addListener(e,t,!1)}prependListener(e,t){return this._addListener(e,t,!0)}_addListener(e,t,n){checkListener(t);let r=this._events;r===void 0?(r=this._events=Object.create(null),this._eventsCount=0):r.newListener!==void 0&&(this.emit(`newListener`,e,t.listener??t),r=this._events);let i=r[e];i===void 0?(r[e]=t,++this._eventsCount):typeof i==`function`?r[e]=n?[t,i]:[i,t]:n?i.unshift(t):i.push(t);let a=this.getMaxListeners();if(a>0){let t=typeof r[e]==`function`?1:r[e].length;if(t>a&&!r[e].warned){typeof r[e]!=`function`&&(r[e].warned=!0);let n=Error(`Possible EventEmitter memory leak detected. ${t} ${String(e)} listeners added to [${this.constructor.name}]. Use emitter.setMaxListeners() to increase limit`);n.name=`MaxListenersExceededWarning`,g.warn(n.message)}}return this}once(e,t){return checkListener(t),this.on(e,_onceWrap(this,e,t)),this}prependOnceListener(e,t){return checkListener(t),this.prependListener(e,_onceWrap(this,e,t)),this}removeListener(e,t){checkListener(t);let n=this._events;if(n===void 0)return this;let r=n[e];if(r===void 0)return this;if(r===t||r.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit(`removeListener`,e,r.listener??t));else if(typeof r!=`function`){let i=-1;for(let e=r.length-1;e>=0;e--)if(r[e]===t||r[e].listener===t){i=e;break}if(i<0)return this;i===0?r.shift():spliceOne(r,i),r.length===1&&(n[e]=r[0]),n.removeListener!==void 0&&this.emit(`removeListener`,e,t.listener??t)}return this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){let t=this._events;if(t===void 0)return this;if(t.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):t[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete t[e]),this;if(arguments.length===0){let e=Object.keys(t);for(let t=0;t<e.length;++t){let n=e[t];n!==`removeListener`&&this.removeAllListeners(n)}return this.removeAllListeners(`removeListener`),this._events=Object.create(null),this._eventsCount=0,this}let n=t[e];if(typeof n==`function`)this.removeListener(e,n);else if(n!==void 0)for(let t=n.length-1;t>=0;t--)this.removeListener(e,n[t]);return this}listeners(e){let t=this._events;if(t===void 0)return[];let n=t[e];return n===void 0?[]:typeof n==`function`?[n.listener??n]:unwrapListeners(n)}rawListeners(e){let t=this._events;if(t===void 0)return[];let n=t[e];return n===void 0?[]:typeof n==`function`?[n]:arrayClone(n)}listenerCount(e){let t=this._events;if(t===void 0)return 0;let n=t[e];return n===void 0?0:typeof n==`function`?1:n.length}eventNames(){return(this._eventsCount??0)>0?Reflect.ownKeys(this._events):[]}static once(e,t,n){return new Promise((r,i)=>{let a=n?.signal;if(a?.aborted){i(createAbortError$1(a));return}if(typeof e.addEventListener==`function`){let n=e,handler=(...e)=>{a&&a.removeEventListener(`abort`,abortHandler),r(e)},errorHandler=e=>{a&&a.removeEventListener(`abort`,abortHandler),n.removeEventListener(`error`,errorHandler),i(e)},abortHandler=()=>{n.removeEventListener(t,handler),n.removeEventListener(`error`,errorHandler),i(createAbortError$1(a))};n.addEventListener(t,handler,{once:!0}),t!==`error`&&n.addEventListener(`error`,errorHandler,{once:!0}),a&&a.addEventListener(`abort`,abortHandler,{once:!0});return}let o=e,eventHandler=(...e)=>{a&&a.removeEventListener(`abort`,abortHandler),errorHandler!==void 0&&o.removeListener(`error`,errorHandler),r(e)},errorHandler;t!==`error`&&(errorHandler=e=>{o.removeListener(t,eventHandler),a&&a.removeEventListener(`abort`,abortHandler),i(e)},o.once(`error`,errorHandler)),o.once(t,eventHandler);let abortHandler=()=>{o.removeListener(t,eventHandler),errorHandler&&o.removeListener(`error`,errorHandler),i(createAbortError$1(a))};a&&a.addEventListener(`abort`,abortHandler,{once:!0})})}static on(e,t,n){let r=n?.signal;if(r?.aborted)throw createAbortError$1(r);let i=n?.highWaterMark??2**53-1,a=n?.lowWaterMark??1;validateNumber(i,`highWaterMark`),validateNumber(a,`lowWaterMark`);let o=[],s=[],c=null,l=!1,u=!1,eventHandler=(...t)=>{if(s.length>0){let{resolve:e}=s.shift();e({value:t,done:!1})}else o.push(t),o.length>=i&&!u&&(u=!0,typeof e.pause==`function`&&e.pause())},errorHandler=e=>{if(c=e,s.length>0){let{reject:t}=s.shift();t(e)}d.return()},abortHandler=()=>{errorHandler(createAbortError$1(r))};e.on(t,eventHandler),t!==`error`&&e.on(`error`,errorHandler),r&&r.addEventListener(`abort`,abortHandler,{once:!0});let cleanup=()=>{e.removeListener(t,eventHandler),e.removeListener(`error`,errorHandler),r&&r.removeEventListener(`abort`,abortHandler),l=!0;for(let{resolve:e}of s)e({value:void 0,done:!0});s.length=0,o.length=0},d={next(){if(o.length>0){let t=o.shift();return u&&o.length<a&&(u=!1,typeof e.resume==`function`&&e.resume()),Promise.resolve({value:t,done:!1})}if(c){let e=Promise.reject(c);return c=null,e}return l?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{s.push({resolve:e,reject:t})})},return(){return cleanup(),Promise.resolve({value:void 0,done:!0})},throw(e){return l||(c=e,cleanup()),Promise.reject(e)},[Symbol.asyncIterator](){return this}};return d}static listenerCount(e,t){return e.listenerCount(t)}static getEventListeners(e,t){return typeof e.listeners==`function`?e.listeners(t):[]}static setMaxListeners(e,...t){if(validateNumber(e,`n`),e<0)throw RangeError(`The value of "n" is out of range.`);if(t.length===0)EventEmitter.defaultMaxListeners=e;else for(let n of t)typeof n.setMaxListeners==`function`&&n.setMaxListeners(e)}static getMaxListeners(e){return typeof e.getMaxListeners==`function`?e.getMaxListeners():EventEmitter.defaultMaxListeners}static addAbortListener(e,t){e.aborted&&Promise.resolve().then(()=>t());let handler=()=>t();return e.addEventListener(`abort`,handler,{once:!0}),{[Symbol.dispose](){e.removeEventListener(`abort`,handler)}}}};x.EventEmitter=x;for(let e of[`setMaxListeners`,`getMaxListeners`,`emit`,`addListener`,`on`,`prependListener`,`once`,`prependOnceListener`,`removeListener`,`off`,`removeAllListeners`,`listeners`,`rawListeners`,`listenerCount`,`eventNames`]){let t=x.prototype[e];typeof t==`function`&&Object.defineProperty(x.prototype,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}Object.defineProperty(x.prototype,`_events`,{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(x.prototype,`_eventsCount`,{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(x.prototype,`_maxListeners`,{enumerable:!0,configurable:!0,writable:!0,value:void 0});function unwrapListeners(e){let t=Array(e.length);for(let n=0;n<t.length;++n)t[n]=e[n].listener??e[n];return t}function createAbortError$1(e){let t=Error(`The operation was aborted`);return t.name=`AbortError`,t.code=`ABORT_ERR`,e?.reason&&(t.cause=e.reason),t}__name(createAbortError$1,`createAbortError`);const S=makeCallable(x);S.EventEmitter=S,S.captureRejectionSymbol,S.errorMonitor,S.defaultMaxListeners,S.setMaxListeners,S.getMaxListeners,S.once,S.on,S.getEventListeners,S.listenerCount,S.addAbortListener;let pe=null;const me=globalThis.imports?.gi;if(me)try{pe=me.GjsifyTerminal}catch{}const C=pe,he=new TextEncoder;function getGjsGlobal(){return globalThis}function detectGjsVersion(){try{let e=getGjsGlobal().imports?.system;if(e?.version!==void 0){let t=Number(e.version);return`${Math.floor(t/1e4)}.${Math.floor(t%1e4/100)}.${t%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 e=detectGjsVersion(),t={node:`20.0.0`};return e&&(t.gjs=e),{version:`v20.0.0`,versions:t,title:`gjs`}}function detectPpid(){if(typeof globalThis.process?.ppid==`number`)return globalThis.process.ppid;try{let e=getGjsGlobal().imports?.gi?.GLib;if(e){let[,t]=e.file_get_contents(`/proc/self/status`);if(t){let e=new TextDecoder().decode(t).match(/PPid:\s+(\d+)/);if(e)return parseInt(e[1],10)}}}catch{}return 0}function detectPlatform(){try{let e=getGjsGlobal().imports?.gi?.GLib;if(e&&e.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 getCwd(){try{let e=getGjsGlobal().imports?.gi?.GLib;if(e?.get_current_dir)return e.get_current_dir()}catch{}return`/`}function getEnvProxy(){if(typeof globalThis.process?.env==`object`)return globalThis.process.env;try{let e=getGjsGlobal().imports?.gi?.GLib;if(e)return new Proxy({},{get(t,n){if(typeof n==`string`)return e.getenv(n)??void 0},set(t,n,r){return typeof n==`string`?(e.setenv(n,String(r),!0),!0):!1},deleteProperty(t,n){return typeof n==`string`?(e.unsetenv(n),!0):!1},has(t,n){return typeof n==`string`?e.getenv(n)!==null:!1},ownKeys(t){return e.listenv()},getOwnPropertyDescriptor(t,n){if(typeof n!=`string`)return;let r=e.getenv(n);if(r!==null)return{configurable:!0,enumerable:!0,writable:!0,value:r}}})}catch{}return{}}function getArgv(){if(globalThis.process?.argv!==void 0)return globalThis.process.argv;try{let e=getGjsGlobal().imports?.system;if(e?.programArgs)return[`gjs`,e.programInvocationName||``,...e.programArgs]}catch{}return[`gjs`]}function getExecPath(){if(typeof globalThis.process?.execPath==`string`)return globalThis.process.execPath;try{let e=getGjsGlobal().imports?.system;if(e?.programInvocationName)return e.programInvocationName}catch{}return`/usr/bin/gjs`}function getPid(){if(typeof globalThis.process?.pid==`number`)return globalThis.process.pid;try{let e=getGjsGlobal().imports?.gi?.GLib;if(e){let[,t]=e.file_get_contents(`/proc/self/stat`);if(t){let e=new TextDecoder().decode(t),n=parseInt(e,10);if(!isNaN(n))return n}}}catch{}return 0}const ge=Date.now();function getGioNamespace(){let e=globalThis.imports?.gi;if(!e)return null;let t=null;try{t=e.GioUnix}catch{}if(!t)try{t=e.Gio}catch{}return t}var ProcessWriteStream=class extends S{fd;writable=!0;_outGio=null;constructor(e){super(),this.fd=e;let t=getGioNamespace();if(t){let e=t.UnixOutputStream??t.OutputStream;if(e)try{this._outGio=e.new(this.fd,!1)}catch{}}}write(e){if(this._outGio)try{let t=typeof e==`string`?he.encode(e):e;return this._outGio.write_all(t,null),!0}catch{}return this.fd===2?g.error(e):g.log(e),!0}get isTTY(){if(C)return C.Terminal.is_tty(this.fd);try{let e=getGjsGlobal().imports?.gi?.GLib;if(e)return!!e.log_writer_supports_color(this.fd)}catch{}return!1}get columns(){if(C){let[e,,t]=C.Terminal.get_size(this.fd);if(e&&t>0)return t}try{let e=getGjsGlobal().imports?.gi?.GLib;if(e){let t=parseInt(e.getenv(`COLUMNS`)??`0`,10);if(t>0)return t}}catch{}return 80}end(){}destroy(){}get rows(){if(C){let[e,t]=C.Terminal.get_size(this.fd);if(e&&t>0)return t}try{let e=getGjsGlobal().imports?.gi?.GLib;if(e){let t=parseInt(e.getenv(`LINES`)??`0`,10);if(t>0)return t}}catch{}return 24}},ProcessReadStream=class extends S{fd;isRaw=!1;_gio=null;_stdinGio=null;_reading=!1;_flowing=!1;_sttyCleanupRegistered=!1;_mainLoopHeld=!1;_pendingRead=!1;constructor(e){super(),this.fd=e,this._gio=getGioNamespace()}get isTTY(){return C?C.Terminal.is_tty(this.fd):!1}setRawMode(e){return C&&C.Terminal.set_raw_mode(this.fd,e)?(this.isRaw=e,this):(this._setRawModeViaStty(e),this.isRaw=e,this)}_setRawModeViaStty(e){try{let t=globalThis.imports?.gi,n=t?.Gio??t?.Gio;if(!n)return;let r=n.SubprocessFlags?.STDIN_INHERIT??2,i=e?[`stty`,`-icanon`,`-echo`,`-icrnl`,`min`,`1`,`time`,`0`]:[`stty`,`icanon`,`echo`,`icrnl`];if(new n.SubprocessLauncher({flags:r}).spawnv(i).wait(null),e&&!this._sttyCleanupRegistered){this._sttyCleanupRegistered=!0;let e=globalThis.process;e?.once&&typeof e.once==`function`&&e.once(`exit`,()=>this._setRawModeViaStty(!1))}}catch{}}setEncoding(e){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 e=globalThis.imports?.gi,t=e?.GLib??e?.GLib;t?.idle_add?t.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 e=this._gio.UnixInputStream??this._gio.InputStream;if(!e){this._reading=!1;return}try{this._stdinGio=e.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,(e,t)=>{this._pendingRead=!1;try{let n=e.read_bytes_finish(t)?.get_data?.()??null;if(n&&n.byteLength>0)this.emit(`data`,Buffer.from(n));else if(n!==null&&n.byteLength===0){this._reading=!1,this.emit(`end`);return}}catch{this._reading=!1;return}this._reading&&loop()})};loop()}};function getMonotonicTime(){try{let e=getGjsGlobal().imports?.gi?.GLib;if(e?.get_monotonic_time)return BigInt(e.get_monotonic_time())*1000n}catch{}return typeof performance?.now==`function`?BigInt(Math.round(performance.now()*1e6)):BigInt(Date.now())*1000000n}const _e=getMonotonicTime();var Process=class extends S{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(),this.ppid=detectPpid();let e=detectVersionInfo();this.version=e.version,this.versions=e.versions,this.title=e.title}cwd(){return getCwd()}chdir(e){try{let t=getGjsGlobal().imports?.gi?.GLib;if(t?.chdir){if(!t.file_test(e,16)){let t=Error(`ENOENT: no such file or directory, chdir '${e}'`);throw t.code=`ENOENT`,t.syscall=`chdir`,t.path=e,t}t.chdir(e);return}}catch(e){if(e&&typeof e==`object`&&e.code===`ENOENT`)throw e}let t=globalThis.process;if(t&&t!==this&&typeof t.chdir==`function`){t.chdir(e);return}throw Error(`process.chdir() is not supported in this environment`)}kill(e,t){let n=globalThis.process;if(n&&n!==this&&typeof n.kill==`function`)return n.kill(e,t);try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let r=typeof t==`number`?String(t):t||`SIGTERM`,i=r.startsWith(`SIG`)?`-${r.slice(3)}`:`-${r}`;return n.spawn_command_line_sync(`kill ${i} ${e}`),!0}}catch{}throw Error(`process.kill() is not supported in this environment`)}exit(e){this.exitCode=e??this.exitCode??0,this.emit(`exit`,this.exitCode);let t=getGjsGlobal().imports,n=t?.gi?.GLib,r=t?.system,i=n?.idle_add,a=n?.SOURCE_REMOVE,o=n?.PRIORITY_DEFAULT;if(r?.exit&&i&&typeof o==`number`&&typeof a==`boolean`){let e=this.exitCode;return ensureMainLoop(),i(o,()=>(quitMainLoop(),r.exit(e),a)),new Promise(()=>{})}try{r?.exit&&r.exit(this.exitCode)}catch{}let s=globalThis.process;throw s&&s!==this&&typeof s.exit==`function`&&s.exit(this.exitCode),Error(`process.exit(${this.exitCode})`)}nextTick(e,...t){typeof queueMicrotask==`function`?queueMicrotask(()=>e(...t)):Promise.resolve().then(()=>e(...t))}hrtime(e){let t=getMonotonicTime()-_e,n=Number(t/1000000000n),r=Number(t%1000000000n);if(e){let t=n-e[0],i=r-e[1];return i<0&&(t--,i+=1e9),[t,i]}return[n,r]}uptime(){return(Date.now()-ge)/1e3}memoryUsage(){try{let e=getGjsGlobal().imports?.gi?.GLib;if(e){let[,t]=e.file_get_contents(`/proc/self/status`);if(t){let e=new TextDecoder().decode(t).match(/VmRSS:\s+(\d+)/),n=e?parseInt(e[1],10)*1024:0;return{rss:n,heapTotal:n,heapUsed:n,external:0,arrayBuffers:0}}}}catch{}let e=globalThis.process;return e&&e!==this&&typeof e.memoryUsage==`function`?e.memoryUsage():{rss:0,heapTotal:0,heapUsed:0,external:0,arrayBuffers:0}}cpuUsage(e){let t=globalThis.process;return t&&t!==this&&typeof t.cpuUsage==`function`?t.cpuUsage(e):{user:0,system:0}}stdout=new ProcessWriteStream(1);stderr=new ProcessWriteStream(2);stdin=new ProcessReadStream(0);abort(){this.exit(1)}umask(e){return 18}emitWarning(e,t){g.warn(typeof e==`string`?`(${t||`Warning`}): ${e}`:e.message)}};Process.prototype.hrtime.bigint=function(){return getMonotonicTime()-_e};const w=new Process;if(C)try{let e=new C.ResizeWatcher;e.connect(`resized`,(e,t,n)=>{w.stdout.emit(`resize`),w.stderr.emit(`resize`)}),e.start()}catch{}w.platform,w.arch,w.env,w.argv,w.argv0,w.execPath,w.pid,w.ppid,w.version,w.versions,w.cwd.bind(w),w.chdir.bind(w),w.exit.bind(w),w.nextTick.bind(w),Object.assign(w.hrtime.bind(w),{bigint:w.hrtime.bigint.bind(w)}),w.uptime.bind(w),w.memoryUsage.bind(w),w.cpuUsage.bind(w),w.kill.bind(w),w.abort.bind(w),w.umask.bind(w),w.emitWarning.bind(w),w.execArgv,w.config,w.stdout,w.stderr,w.stdin,typeof Promise.withResolvers!=`function`&&(Promise.withResolvers=function(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}),initErrorV8Methods(Error),`global`in globalThis||Object.defineProperty(globalThis,`global`,{value:globalThis,writable:!1,enumerable:!1,configurable:!0}),Object.defineProperty(globalThis,`process`,{value:w,enumerable:!1,writable:!0,configurable:!0}),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 ve=getGLib()!==void 0;var GjsifyTimeout=class{_id=null;_refed=!0;_callback;_delay;_args;_repeat;constructor(e,t,n,r){this._callback=e,this._delay=t,this._args=n,this._repeat=r,this._schedule()}_schedule(){let e=getGLib();if(!e)return;let t=e.timeout_add.bind(e);this._id=t(e.PRIORITY_DEFAULT,this._delay,()=>{try{this._callback.apply(globalThis,this._args)}catch(e){setTimeout(()=>{throw e},0)}return this._repeat?e.SOURCE_CONTINUE:(this._id=null,e.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(e){if(e instanceof GjsifyTimeout)e._cancel();else if(typeof e==`number`)try{getGLib()?.Source.remove(e)}catch{}}if(ve){let setT=(e,t=0,...n)=>new GjsifyTimeout(e,Math.max(0,t|0),n,!1),setI=(e,t=0,...n)=>new GjsifyTimeout(e,Math.max(0,t|0),n,!0),e=globalThis;e.setTimeout=setT,e.clearTimeout=removeById,e.setInterval=setI,e.clearInterval=removeById}function setImmediate(e,...t){return setTimeout(e,0,...t)}function clearImmediate(e){clearTimeout(e)}`setImmediate`in globalThis||Object.defineProperty(globalThis,`setImmediate`,{value:setImmediate,enumerable:!0,writable:!0,configurable:!0}),`clearImmediate`in globalThis||Object.defineProperty(globalThis,`clearImmediate`,{value:clearImmediate,enumerable:!0,writable:!0,configurable:!0});let ye;if(globalThis.performance)ye=globalThis.performance;else{let e,_now;try{let t=globalThis.imports.gi.GLib;e=t.get_monotonic_time(),_now=()=>(t.get_monotonic_time()-e)/1e3}catch{let t=Date.now();e=0,_now=()=>Date.now()-t}let t=[],n=Date.now()-_now();ye={timeOrigin:n,now:_now,mark(e){let n={name:e,entryType:`mark`,startTime:_now(),duration:0};return t.push(n),n},measure(e,n,r){let i=0,a=_now();if(n){let e=t.find(e=>e.entryType===`mark`&&e.name===n);e&&(i=e.startTime)}if(r){let e=t.find(e=>e.entryType===`mark`&&e.name===r);e&&(a=e.startTime)}let o={name:e,entryType:`measure`,startTime:i,duration:a-i};return t.push(o),o},getEntries(){return[...t]},getEntriesByName(e){return t.filter(t=>t.name===e)},getEntriesByType(e){return t.filter(t=>t.entryType===e)},clearMarks(e){for(let n=t.length-1;n>=0;n--)t[n].entryType===`mark`&&(!e||t[n].name===e)&&t.splice(n,1)},clearMeasures(e){for(let n=t.length-1;n>=0;n--)t[n].entryType===`measure`&&(!e||t[n].name===e)&&t.splice(n,1)},clearResourceTimings(){},setResourceTimingBufferSize(){},toJSON(){return{timeOrigin:n}}}}var PerformanceObserverStub=class{_callback;constructor(e){this._callback=e}observe(e){}disconnect(){}takeRecords(){return[]}};const be=globalThis.PerformanceObserver||PerformanceObserverStub;globalThis.PerformanceEntry,globalThis.PerformanceObserverEntryList,globalThis.PerformanceMark,globalThis.PerformanceMeasure,globalThis.performance===void 0&&(globalThis.performance=ye),typeof globalThis.PerformanceObserver!=`function`&&(globalThis.PerformanceObserver=be);const xe={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(e,t){super(e),this.name=t||`Error`,this.code=Object.hasOwn(xe,this.name)?xe[this.name]:0}};const T=globalThis.DOMException===void 0?_DOMExceptionPolyfill:globalThis.DOMException;let Se=!1;function ensureGstInit(){Se||=(n.init(null),!0)}function ensureWebrtcbinAvailable(){ensureGstInit(),n.ElementFactory.find(`webrtcbin`)||throwNotSupported(`GStreamer element "webrtcbin" not available. Install gst-plugins-bad:
5
+ `+t)}profile(e){}profileEnd(e){}timeStamp(e){}};const h=new Console,ee=__name((...e)=>h.log(...e),`log`),info=(...e)=>h.info(...e),debug=(...e)=>h.debug(...e),warn=(...e)=>h.warn(...e),error=(...e)=>h.error(...e),dir=(e,t)=>h.dir(e,t),dirxml=(...e)=>h.dirxml(...e),table=(e,t)=>h.table(e,t),clear=()=>h.clear(),assert=(e,...t)=>h.assert(e,...t),trace=(...e)=>h.trace(...e),time=e=>h.time(e),timeEnd=e=>h.timeEnd(e),timeLog=(e,...t)=>h.timeLog(e,...t),count=e=>h.count(e),countReset=e=>h.countReset(e),group=(...e)=>h.group(...e),groupCollapsed=(...e)=>h.groupCollapsed(...e),groupEnd=()=>h.groupEnd(),profile=e=>{},profileEnd=e=>{},timeStamp=e=>{},g={log:ee,info,debug,warn,error,dir,dirxml,table,time,timeEnd,timeLog,trace,assert,clear,count,countReset,group,groupCollapsed,groupEnd,profile,profileEnd,timeStamp},_=__name(e=>{Promise.resolve().then(e)},`queueMicrotask`),{File:te}=p,{toString:ne}=Object.prototype;function classOf(e){return ne.call(e).slice(8,-1)}function throwDataCloneError(e){let t=globalThis.DOMException;if(typeof t==`function`)throw new t(e,`DataCloneError`);let n=Error(e);throw n.name=`DataCloneError`,n}const re={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError},ie=new Set([`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function internalClone(e,t,n){if(e==null)return e;let r=typeof e;if(r===`boolean`||r===`number`||r===`string`||r===`bigint`)return e;r===`symbol`&&throwDataCloneError(`Symbol cannot be cloned`),r===`function`&&throwDataCloneError(`Function cannot be cloned`);let i=e;if(t.has(i))return t.get(i);let a=classOf(i);if(a===`Date`)return new Date(i.getTime());if(a===`RegExp`)return new RegExp(i.source,i.flags);if(a===`Boolean`||a===`Number`||a===`String`)return Object(i.valueOf());if(a===`BigInt`)return Object(BigInt.prototype.valueOf.call(i));if(i instanceof Error){let e=i,r=e.constructor?.name,a=new(r&&re[r]||re[e.name]||Error)(e.message);return a.name=e.name,`cause`in e&&Object.defineProperty(a,"cause",{value:internalClone(e.cause,t,n),writable:!0,enumerable:!1,configurable:!0}),a}if(a===`DOMException`){let e=globalThis.DOMException;if(typeof e==`function`){let t=i;return new e(t.message,t.name)}}if(a===`ArrayBuffer`){let e=i;if(n&&n.transferred.has(e)){let r=n.transferred.get(e);return t.set(i,r),r}(e.detached===!0||e.byteLength===0&&e.detached)&&throwDataCloneError(`ArrayBuffer is detached and cannot be cloned`);let r=e.slice(0);return t.set(i,r),r}if(a===`SharedArrayBuffer`||i&&typeof i==`object`&&i.constructor?.name===`SharedBuffer`)return i;if(a===`DataView`){let e=i,r=n?.viewSnapshots.get(i),a=internalClone(e.buffer,t,n),o=r?r.byteOffset:e.byteOffset,s=r?r.byteLength:e.byteLength,c=new DataView(a,o,s);return t.set(i,c),c}if(ie.has(a)){let e=i,r=n?.viewSnapshots.get(i),a=internalClone(e.buffer,t,n),o=e.constructor,s=new o(a,r?r.byteOffset:e.byteOffset,r?r.length:e.length);return t.set(i,s),s}if(a===`Map`){let e=new Map;t.set(i,e);for(let[r,a]of i)e.set(internalClone(r,t,n),internalClone(a,t,n));return e}if(a===`Set`){let e=new Set;t.set(i,e);for(let r of i)e.add(internalClone(r,t,n));return e}{let e=globalThis,t=e.Blob,n=e.File;if(typeof n==`function`&&i instanceof n){let e=i;return new n([i],e.name,{type:e.type,lastModified:e.lastModified})}if(typeof t==`function`&&i instanceof t)return new t([i],{type:i.type})}if(i instanceof WeakMap&&throwDataCloneError(`WeakMap cannot be cloned`),i instanceof WeakSet&&throwDataCloneError(`WeakSet cannot be cloned`),i instanceof WeakRef&&throwDataCloneError(`WeakRef cannot be cloned`),typeof globalThis.Promise==`function`&&i instanceof Promise&&throwDataCloneError(`Promise cannot be cloned`),a===`Array`){let e=i,r=[];t.set(i,r);for(let i=0;i<e.length;i++)i in e&&(r[i]=internalClone(e[i],t,n));return r}if(a===`Object`||typeof i==`object`){let e={};t.set(i,e);for(let r of Object.keys(i))e[r]=internalClone(i[r],t,n);return e}throwDataCloneError(`${a} cannot be cloned`)}function structuredClone$1(e,t){let n=t?.transfer;if(!n||n.length===0)return internalClone(e,new Map);let r=new Set;for(let e of n)if(classOf(e)===`ArrayBuffer`){let t=e;t.detached===!0&&throwDataCloneError(`ArrayBuffer in transfer list is detached`),r.add(t)}let i=new Map;r.size>0&&snapshotViewsBackedByTransferredBuffers(e,r,i,new Set);let a=new Map;for(let e of r){let t=e;typeof t.transfer!=`function`&&throwDataCloneError(`ArrayBuffer.prototype.transfer() not available — runtime is not SM140+`),a.set(e,t.transfer())}return internalClone(e,new Map,{transferred:a,viewSnapshots:i})}__name(structuredClone$1,`structuredClone`);function snapshotViewsBackedByTransferredBuffers(e,t,n,r){if(typeof e!=`object`||!e)return;let i=e;if(r.has(i))return;r.add(i);let a=classOf(i);if(a===`DataView`){let e=i;t.has(e.buffer)&&n.set(i,{byteOffset:e.byteOffset,length:0,byteLength:e.byteLength});return}if(ie.has(a)){let e=i;t.has(e.buffer)&&n.set(i,{byteOffset:e.byteOffset,length:e.length,byteLength:e.byteLength});return}if(Array.isArray(i)){for(let e=0;e<i.length;e++)e in i&&snapshotViewsBackedByTransferredBuffers(i[e],t,n,r);return}if(a===`Map`){for(let[e,a]of i)snapshotViewsBackedByTransferredBuffers(e,t,n,r),snapshotViewsBackedByTransferredBuffers(a,t,n,r);return}if(a===`Set`){for(let e of i)snapshotViewsBackedByTransferredBuffers(e,t,n,r);return}if(a===`Object`)for(let e of Object.keys(i))snapshotViewsBackedByTransferredBuffers(i[e],t,n,r)}let ae=!1,v=null;function ensureMainLoop(){let e=globalThis.imports;if(!e)return;if(ae)return v;let t=e.gi?.GLib;if(t){if(v=new t.MainLoop(null,!1),ae=!0,t.main_depth()===0)try{v.runAsync()}catch{}return v}}function quitMainLoop(){v&&=(v.quit(),ae=!1,null)}registerGlobal(`Blob`,u),registerGlobal(`File`,d);const y=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,oe=new Uint8Array(256);for(let e=0;e<64;e++)oe[y.charCodeAt(e)]=e;function btoaPolyfill(e){if(typeof globalThis.btoa==`function`)return globalThis.btoa(e);let t=``,n=0;for(;n+2<e.length;n+=3){let r=e.charCodeAt(n)<<16|e.charCodeAt(n+1)<<8|e.charCodeAt(n+2);t+=y[r>>18&63]+y[r>>12&63]+y[r>>6&63]+y[r&63]}if(n+1===e.length){let r=e.charCodeAt(n)<<16;t+=y[r>>18&63]+y[r>>12&63]+`==`}else if(n+2===e.length){let r=e.charCodeAt(n)<<16|e.charCodeAt(n+1)<<8;t+=y[r>>18&63]+y[r>>12&63]+y[r>>6&63]+`=`}return t}function base64Decode(e){let t=e.replace(/[=\s]/g,``),n=new Uint8Array(t.length*3>>2),r=0,i=0,a=0;for(let e=0;e<t.length;e++)r=r<<6|oe[t.charCodeAt(e)],i+=6,i>=8&&(i-=8,n[a++]=r>>i&255);return n.subarray(0,a)}const se=[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`];function normalizeEncoding(e){if(!e||e===`utf8`||e===`utf-8`)return`utf8`;switch((``+e).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(e){let t=(``+e).toLowerCase().replace(/-/g,``);if(!se.includes(t))throw TypeError(`Unknown encoding: ${e}`)}const ce=new TextEncoder,le=new TextDecoder;function encodeString(e,t){switch(t){case`utf8`:return ce.encode(e);case`ascii`:{let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&127;return t}case`latin1`:{let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}case`base64`:return base64Decode(e.replace(/-/g,`+`).replace(/_/g,`/`));case`base64url`:return encodeString(e.replace(/-/g,`+`).replace(/_/g,`/`),`base64`);case`hex`:{let t=e.length>>>1,n=new Uint8Array(t);for(let r=0;r<t;r++){let t=parseInt(e[r*2],16),i=parseInt(e[r*2+1],16);if(Number.isNaN(t)||Number.isNaN(i))break;n[r]=t<<4|i}return n}case`utf16le`:{let t=new Uint8Array(e.length*2);for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t[n*2]=r&255,t[n*2+1]=r>>8&255}return t}default:return ce.encode(e)}}function decodeString(e,t,n,r){let i=n!==void 0||r!==void 0?e.subarray(n??0,r??e.length):e;switch(t){case`utf8`:return le.decode(i);case`ascii`:{let e=``;for(let t=0;t<i.length;t++)e+=String.fromCharCode(i[t]&127);return e}case`latin1`:{let e=``;for(let t=0;t<i.length;t++)e+=String.fromCharCode(i[t]);return e}case`base64`:{let e=``;for(let t=0;t<i.length;t++)e+=String.fromCharCode(i[t]);return btoaPolyfill(e)}case`base64url`:return decodeString(i,`base64`).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``);case`hex`:{let e=``;for(let t=0;t<i.length;t++)e+=i[t].toString(16).padStart(2,`0`);return e}case`utf16le`:{let e=``;for(let t=0;t+1<i.length;t+=2)e+=String.fromCharCode(i[t]|i[t+1]<<8);return e}default:return le.decode(i)}}function checkOffset(e,t,n){if(e+t>n)throw RangeError(`Attempt to access memory outside buffer bounds`)}const ue=typeof SharedArrayBuffer<`u`;var de=class Buffer extends Uint8Array{static _isBuffer=!0;static alloc(e,t,n){if(typeof e!=`number`)throw TypeError(`The "size" argument must be of type number. Received type ${typeof e}`);if(e<0)throw RangeError(`The value "${e}" is invalid for option "size"`);let r=new Buffer(e);return t!==void 0&&t!==0&&r.fill(t,0,e,n),r}static allocUnsafe(e){if(typeof e!=`number`)throw TypeError(`The "size" argument must be of type number. Received type ${typeof e}`);return new Buffer(e)}static allocUnsafeSlow(e){return Buffer.allocUnsafe(e)}static from(e,t,n){if(typeof e==`string`){let n=normalizeEncoding(t);if(t&&typeof t==`string`){let e=(``+t).toLowerCase().replace(/-/g,``);[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`,``].includes(e)||checkEncoding(t)}let r=encodeString(e,n);return new Buffer(r.buffer,r.byteOffset,r.byteLength)}if(ArrayBuffer.isView(e)){let t=new Buffer(e.buffer,e.byteOffset,e.byteLength),n=new Buffer(t.length);return n.set(t),n}if(e instanceof ArrayBuffer){let r=t||0;return new Buffer(e,r,n===void 0?e.byteLength-r:n)}if(ue&&e instanceof SharedArrayBuffer){let r=t||0,i=n===void 0?e.byteLength-r:n;return new Buffer(new Uint8Array(e,r,i))}if(typeof e==`object`&&e&&typeof e.viewBytes==`function`&&typeof e.byteLength==`number`&&e.constructor?.name===`SharedBuffer`){let r=e,i=t||0,a=n===void 0?r.byteLength-i:n,o=r.viewBytes(i,a);return new Buffer(o.buffer,o.byteOffset,o.byteLength)}if(Array.isArray(e)){let t=new Buffer(e.length);for(let n=0;n<e.length;n++)t[n]=e[n]&255;return t}throw TypeError(`The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array`)}static isBuffer(e){return e instanceof Buffer}static isEncoding(e){if(typeof e!=`string`)return!1;let t=e.toLowerCase().replace(/-/g,``);return[`utf8`,`ascii`,`latin1`,`binary`,`base64`,`base64url`,`hex`,`ucs2`,`utf16le`].includes(t)}static byteLength(e,t){if(typeof e!=`string`){if(ArrayBuffer.isView(e)||e instanceof ArrayBuffer||ue&&e instanceof SharedArrayBuffer)return e.byteLength;throw TypeError(`The "string" argument must be one of type string, Buffer, or ArrayBuffer`)}switch(normalizeEncoding(t)){case`utf8`:return new TextEncoder().encode(e).byteLength;case`ascii`:case`latin1`:return e.length;case`base64`:case`base64url`:{let t=e.length;for(;t>0&&(e[t-1]===`=`||e[t-1]===` `);)t--;return t*3>>>2}case`hex`:return e.length>>>1;case`utf16le`:return e.length*2;default:return new TextEncoder().encode(e).byteLength}}static compare(e,t){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array))throw TypeError(`Arguments must be Buffers or Uint8Arrays`);let n=Math.min(e.length,t.length);for(let r=0;r<n;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.length<t.length?-1:+(e.length>t.length)}static concat(e,t){if(e.length===0)return Buffer.alloc(0);if(t===void 0){t=0;for(let n=0;n<e.length;n++)t+=e[n].length}let n=Buffer.alloc(t),r=0;for(let i=0;i<e.length;i++){let a=e[i],o=Math.min(a.length,t-r);o<=0||(n.set(a.subarray(0,o),r),r+=o)}return n}static poolSize=8192;toString(e,t,n){let r=normalizeEncoding(e);return decodeString(this,r,t,n)}toJSON(){return{type:`Buffer`,data:Array.from(this)}}equals(e){if(!(e instanceof Uint8Array))throw TypeError(`Argument must be a Buffer or Uint8Array`);if(this.length!==e.length)return!1;for(let t=0;t<this.length;t++)if(this[t]!==e[t])return!1;return!0}compare(e,t,n,r,i){if(!(e instanceof Uint8Array))throw TypeError(`Argument must be a Buffer or Uint8Array`);let a=r!==void 0||i!==void 0?this.subarray(r??0,i??this.length):this,o=t!==void 0||n!==void 0?e.subarray(t??0,n??e.length):e;return Buffer.compare(a,o)}copy(e,t=0,n=0,r){let i=r??this.length,a=Math.min(i-n,e.length-t);return a<=0?0:(e.set(this.subarray(n,n+a),t),a)}slice(e,t){let n=e??0,r=t??this.length,i=super.subarray(n,r);return new Buffer(i.buffer,i.byteOffset,i.byteLength)}subarray(e,t){let n=super.subarray(e,t);return new Buffer(n.buffer,n.byteOffset,n.byteLength)}write(e,t,n,r){t??=0;let i=encodeString(e,normalizeEncoding(r||(typeof n==`string`?n:void 0))),a=n!==void 0&&typeof n==`number`?Math.min(n,this.length-t):this.length-t,o=Math.min(i.length,a);return this.set(i.subarray(0,o),t),o}fill(e,t,n,r){let i=t??0,a=n??this.length;if(typeof e==`number`)super.fill(e&255,i,a);else if(typeof e==`string`){let t=encodeString(e,normalizeEncoding(r));if(t.length===0)super.fill(0,i,a);else if(t.length===1)super.fill(t[0],i,a);else for(let e=i;e<a;e++)this[e]=t[(e-i)%t.length]}else if(e instanceof Uint8Array)if(e.length===0)super.fill(0,i,a);else for(let t=i;t<a;t++)this[t]=e[(t-i)%e.length];return this}indexOf(e,t,n){if(typeof e==`number`)return super.indexOf(e&255,t);let r=typeof e==`string`?encodeString(e,normalizeEncoding(n)):e,i=t??0;outer:for(let e=i;e<=this.length-r.length;e++){for(let t=0;t<r.length;t++)if(this[e+t]!==r[t])continue outer;return e}return-1}lastIndexOf(e,t,n){if(typeof e==`number`)return t===void 0?super.lastIndexOf(e&255):super.lastIndexOf(e&255,t);let r=typeof e==`string`?encodeString(e,normalizeEncoding(n)):e,i=t===void 0?this.length-r.length:Math.min(t,this.length-r.length);outer:for(let e=i;e>=0;e--){for(let t=0;t<r.length;t++)if(this[e+t]!==r[t])continue outer;return e}return-1}includes(e,t,n){return this.indexOf(e,t,n)!==-1}readUInt8(e=0){return checkOffset(e,1,this.length),this[e]}readUInt16BE(e=0){return checkOffset(e,2,this.length),this[e]<<8|this[e+1]}readUInt16LE(e=0){return checkOffset(e,2,this.length),this[e]|this[e+1]<<8}readUInt32BE(e=0){return checkOffset(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])}readUInt32LE(e=0){return checkOffset(e,4,this.length),this[e+3]*16777216+(this[e+2]<<16|this[e+1]<<8|this[e])>>>0}readInt8(e=0){return checkOffset(e,1,this.length),this[e]|(this[e]&128?4294967040:0)}readInt16BE(e=0){checkOffset(e,2,this.length);let t=this[e]<<8|this[e+1];return t&32768?t|4294901760:t}readInt16LE(e=0){checkOffset(e,2,this.length);let t=this[e]|this[e+1]<<8;return t&32768?t|4294901760:t}readInt32BE(e=0){return checkOffset(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]}readInt32LE(e=0){return checkOffset(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24}readFloatBE(e=0){return checkOffset(e,4,this.length),new DataView(this.buffer,this.byteOffset+e,4).getFloat32(0,!1)}readFloatLE(e=0){return checkOffset(e,4,this.length),new DataView(this.buffer,this.byteOffset+e,4).getFloat32(0,!0)}readDoubleBE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getFloat64(0,!1)}readDoubleLE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getFloat64(0,!0)}readBigInt64BE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getBigInt64(0,!1)}readBigInt64LE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getBigInt64(0,!0)}readBigUInt64BE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getBigUint64(0,!1)}readBigUInt64LE(e=0){return checkOffset(e,8,this.length),new DataView(this.buffer,this.byteOffset+e,8).getBigUint64(0,!0)}readUIntBE(e,t){checkOffset(e,t,this.length);let n=0;for(let r=0;r<t;r++)n=n*256+this[e+r];return n}readUIntLE(e,t){checkOffset(e,t,this.length);let n=0,r=1;for(let i=0;i<t;i++)n+=this[e+i]*r,r*=256;return n}readIntBE(e,t){checkOffset(e,t,this.length);let n=0;for(let r=0;r<t;r++)n=n*256+this[e+r];return n>=2**(8*t-1)&&(n-=2**(8*t)),n}readIntLE(e,t){checkOffset(e,t,this.length);let n=0,r=1;for(let i=0;i<t;i++)n+=this[e+i]*r,r*=256;return n>=2**(8*t-1)&&(n-=2**(8*t)),n}writeUInt8(e,t=0){return checkOffset(t,1,this.length),this[t]=e&255,t+1}writeUInt16BE(e,t=0){return checkOffset(t,2,this.length),this[t]=e>>>8&255,this[t+1]=e&255,t+2}writeUInt16LE(e,t=0){return checkOffset(t,2,this.length),this[t]=e&255,this[t+1]=e>>>8&255,t+2}writeUInt32BE(e,t=0){return checkOffset(t,4,this.length),this[t]=e>>>24&255,this[t+1]=e>>>16&255,this[t+2]=e>>>8&255,this[t+3]=e&255,t+4}writeUInt32LE(e,t=0){return checkOffset(t,4,this.length),this[t]=e&255,this[t+1]=e>>>8&255,this[t+2]=e>>>16&255,this[t+3]=e>>>24&255,t+4}writeInt8(e,t=0){return checkOffset(t,1,this.length),e<0&&(e=255+e+1),this[t]=e&255,t+1}writeInt16BE(e,t=0){return checkOffset(t,2,this.length),this[t]=e>>>8&255,this[t+1]=e&255,t+2}writeInt16LE(e,t=0){return checkOffset(t,2,this.length),this[t]=e&255,this[t+1]=e>>>8&255,t+2}writeInt32BE(e,t=0){return checkOffset(t,4,this.length),this[t]=e>>>24&255,this[t+1]=e>>>16&255,this[t+2]=e>>>8&255,this[t+3]=e&255,t+4}writeInt32LE(e,t=0){return checkOffset(t,4,this.length),this[t]=e&255,this[t+1]=e>>>8&255,this[t+2]=e>>>16&255,this[t+3]=e>>>24&255,t+4}writeFloatBE(e,t=0){return checkOffset(t,4,this.length),new DataView(this.buffer,this.byteOffset+t,4).setFloat32(0,e,!1),t+4}writeFloatLE(e,t=0){return checkOffset(t,4,this.length),new DataView(this.buffer,this.byteOffset+t,4).setFloat32(0,e,!0),t+4}writeDoubleBE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setFloat64(0,e,!1),t+8}writeDoubleLE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setFloat64(0,e,!0),t+8}writeBigInt64BE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setBigInt64(0,e,!1),t+8}writeBigInt64LE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setBigInt64(0,e,!0),t+8}writeBigUInt64BE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setBigUint64(0,e,!1),t+8}writeBigUInt64LE(e,t=0){return checkOffset(t,8,this.length),new DataView(this.buffer,this.byteOffset+t,8).setBigUint64(0,e,!0),t+8}swap16(){let e=this.length;if(e%2!=0)throw RangeError(`Buffer size must be a multiple of 16-bits`);for(let t=0;t<e;t+=2){let e=this[t];this[t]=this[t+1],this[t+1]=e}return this}swap32(){let e=this.length;if(e%4!=0)throw RangeError(`Buffer size must be a multiple of 32-bits`);for(let t=0;t<e;t+=4){let e=this[t],n=this[t+1];this[t]=this[t+3],this[t+1]=this[t+2],this[t+2]=n,this[t+3]=e}return this}swap64(){let e=this.length;if(e%8!=0)throw RangeError(`Buffer size must be a multiple of 64-bits`);for(let t=0;t<e;t+=8){let e=this[t],n=this[t+1],r=this[t+2],i=this[t+3];this[t]=this[t+7],this[t+1]=this[t+6],this[t+2]=this[t+5],this[t+3]=this[t+4],this[t+4]=i,this[t+5]=r,this[t+6]=n,this[t+7]=e}return this}};`Buffer`in globalThis||Object.defineProperty(globalThis,"Buffer",{value:de,enumerable:!1,writable:!0,configurable:!0}),typeof globalThis.btoa!=`function`&&Object.defineProperty(globalThis,"btoa",{value:function btoa(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return f.base64_encode(t)},enumerable:!0,writable:!0,configurable:!0}),typeof globalThis.atob!=`function`&&Object.defineProperty(globalThis,"atob",{value:function atob(e){let t=f.base64_decode(e),n=``;for(let e=0;e<t.length;e++)n+=String.fromCharCode(t[e]);return n},enumerable:!0,writable:!0,configurable:!0}),typeof queueMicrotask!=`function`&&Object.defineProperty(globalThis,"queueMicrotask",{value:_,enumerable:!0,writable:!0,configurable:!0});function getGjsGlobal(){return globalThis}function getGioNamespace(){let e=globalThis.imports?.gi;if(!e)return null;let t=null;try{t=e.GioUnix}catch{}if(!t)try{t=e.Gio}catch{}return t}function getMonotonicTime(){try{let e=getGjsGlobal().imports?.gi?.GLib;if(e?.get_monotonic_time)return BigInt(e.get_monotonic_time())*1000n}catch{}return typeof performance?.now==`function`?BigInt(Math.round(performance.now()*1e6)):BigInt(Date.now())*1000000n}const fe=getMonotonicTime();function hrtime(e){let t=getMonotonicTime()-fe,n=Number(t/1000000000n),r=Number(t%1000000000n);if(e){let t=n-e[0],i=r-e[1];return i<0&&(t--,i+=1e9),[t,i]}return[n,r]}function hrtimeBigint(){return getMonotonicTime()-fe}function detectGjsVersion(){try{let e=getGjsGlobal().imports?.system;if(e?.version!==void 0){let t=Number(e.version);return`${Math.floor(t/1e4)}.${Math.floor(t%1e4/100)}.${t%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 e=detectGjsVersion(),t={node:`20.0.0`};return e&&(t.gjs=e),{version:`v20.0.0`,versions:t,title:`gjs`}}function detectPpid(){if(typeof globalThis.process?.ppid==`number`)return globalThis.process.ppid;try{let e=getGjsGlobal().imports?.gi?.GLib;if(e){let[,t]=e.file_get_contents(`/proc/self/status`);if(t){let e=new TextDecoder().decode(t).match(/PPid:\s+(\d+)/);if(e)return parseInt(e[1],10)}}}catch{}return 0}function detectPlatform(){try{let e=getGjsGlobal().imports?.gi?.GLib;if(e&&e.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(){if(typeof globalThis.process?.pid==`number`)return globalThis.process.pid;try{let e=getGjsGlobal().imports?.gi?.GLib;if(e){let[,t]=e.file_get_contents(`/proc/self/stat`);if(t){let e=new TextDecoder().decode(t),n=parseInt(e,10);if(!isNaN(n))return n}}}catch{}return 0}function getEnvProxy(){if(typeof globalThis.process?.env==`object`)return globalThis.process.env;try{let e=getGjsGlobal().imports?.gi?.GLib;if(e)return new Proxy({},{get(t,n){if(typeof n==`string`)return e.getenv(n)??void 0},set(t,n,r){return typeof n==`string`?(e.setenv(n,String(r),!0),!0):!1},deleteProperty(t,n){return typeof n==`string`?(e.unsetenv(n),!0):!1},has(t,n){return typeof n==`string`?e.getenv(n)!==null:!1},ownKeys(t){return e.listenv()},getOwnPropertyDescriptor(t,n){if(typeof n!=`string`)return;let r=e.getenv(n);if(r!==null)return{configurable:!0,enumerable:!0,writable:!0,value:r}}})}catch{}return{}}function getArgv(){if(globalThis.process?.argv!==void 0)return globalThis.process.argv;try{let e=getGjsGlobal().imports?.system;if(e?.programArgs)return[`gjs`,e.programInvocationName||``,...e.programArgs]}catch{}return[`gjs`]}function getExecPath(){if(typeof globalThis.process?.execPath==`string`)return globalThis.process.execPath;try{let e=getGjsGlobal().imports?.system;if(e?.programInvocationName)return e.programInvocationName}catch{}return`/usr/bin/gjs`}function getCwd(){try{let e=getGjsGlobal().imports?.gi?.GLib;if(e?.get_current_dir)return e.get_current_dir()}catch{}return`/`}function chdir(e){let t=getGjsGlobal().imports?.gi?.GLib;try{if(t?.chdir){if(!t.file_test(e,16)){let t=Error(`ENOENT: no such file or directory, chdir '${e}'`);throw t.code=`ENOENT`,t.syscall=`chdir`,t.path=e,t}t.chdir(e);return}}catch(e){if(e&&typeof e==`object`&&e.code===`ENOENT`)throw e}if(!t){let t=globalThis.process;if(t&&typeof t.chdir==`function`){t.chdir(e);return}}throw Error(`process.chdir() is not supported in this environment`)}function exitProcess(e){let t=getGjsGlobal().imports,n=t?.gi?.GLib,r=t?.system,i=n?.idle_add,a=n?.SOURCE_REMOVE,o=n?.PRIORITY_DEFAULT;if(r?.exit&&i&&typeof o==`number`&&typeof a==`boolean`)return ensureMainLoop(),i(o,()=>(quitMainLoop(),r.exit(e),a)),new Promise(()=>{});try{r?.exit&&r.exit(e)}catch{}let s=globalThis.process;throw s&&typeof s.exit==`function`&&s.exit(e),Error(`process.exit(${e})`)}function isGjs(){return getGjsGlobal().imports?.gi?.GLib!==void 0}function killPid(e,t){try{let n=getGjsGlobal().imports?.gi?.GLib;if(n){let r=typeof t==`number`?String(t):t||`SIGTERM`,i=r.startsWith(`SIG`)?`-${r.slice(3)}`:`-${r}`;return n.spawn_command_line_sync(`kill ${i} ${e}`),!0}}catch{}if(!isGjs()){let n=globalThis.process;if(n&&typeof n.kill==`function`)return n.kill(e,t)}throw Error(`process.kill() is not supported in this environment`)}function memoryUsage(){try{let e=getGjsGlobal().imports?.gi?.GLib;if(e){let[,t]=e.file_get_contents(`/proc/self/status`);if(t){let e=new TextDecoder().decode(t).match(/VmRSS:\s+(\d+)/),n=e?parseInt(e[1],10)*1024:0;return{rss:n,heapTotal:n,heapUsed:n,external:0,arrayBuffers:0}}}}catch{}if(!isGjs()){let e=globalThis.process;if(e&&typeof e.memoryUsage==`function`)return e.memoryUsage()}return{rss:0,heapTotal:0,heapUsed:0,external:0,arrayBuffers:0}}function cpuUsage(e){if(!isGjs()){let t=globalThis.process;if(t&&typeof t.cpuUsage==`function`)return t.cpuUsage(e)}return{user:0,system:0}}let pe=null;const me=globalThis.imports?.gi;if(me)try{pe=me.GjsifyTerminal}catch{}const b=pe,x=Symbol(`kCapture`),he=Symbol.for(`nodejs.rejection`);function onceWrapper(){let{target:e,type:t,listener:n}=this;return this.wrapperFn&&e.removeListener(t,this.wrapperFn),n.apply(e,arguments)}function _onceWrap(e,t,n){let r={target:e,type:t,listener:n,wrapperFn:void 0},i=onceWrapper.bind(r);return r.wrapperFn=i,i.listener=n,i}function arrayClone(e){switch(e.length){case 0:return[];case 1:return[e[0]];case 2:return[e[0],e[1]];case 3:return[e[0],e[1],e[2]];default:return e.slice()}}function checkListener(e){if(typeof e!=`function`)throw TypeError(`The "listener" argument must be of type Function. Received type `+typeof e)}function validateNumber(e,t){if(typeof e!=`number`||e!==e)throw TypeError(`The "${t}" argument must be of type number. Received type ${typeof e}`)}function spliceOne(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}var S=class EventEmitter{static defaultMaxListeners=10;static errorMonitor=Symbol(`events.errorMonitor`);static captureRejectionSymbol=he;static _captureRejections=!1;static get captureRejections(){return EventEmitter._captureRejections}static set captureRejections(e){if(typeof e!=`boolean`)throw TypeError(`The "captureRejections" argument must be of type boolean.`);EventEmitter._captureRejections=e}_events;_eventsCount;_maxListeners;[x];constructor(e){this._events=Object.create(null),this._eventsCount=0,this._maxListeners=void 0,this[x]=e?.captureRejections??EventEmitter._captureRejections}setMaxListeners(e){if(validateNumber(e,`n`),e<0)throw RangeError(`The value of "n" is out of range. It must be a non-negative number. Received `+e);return this._maxListeners=e,this}getMaxListeners(){return this._maxListeners??EventEmitter.defaultMaxListeners}emit(e,...t){let n=this._events,r=e===`error`;if(n!==void 0)r&&n[EventEmitter.errorMonitor]!==void 0&&this.emit(EventEmitter.errorMonitor,...t),r&&=n.error===void 0;else if(!r)return!1;if(r){let e;if(e=t.length>0?t[0]:Error(`Unhandled error.`),e instanceof Error)throw e;let n=Error(`Unhandled error. (`+e+`)`);throw n.context=e,n}let i=n[e];if(i===void 0)return!1;if(typeof i==`function`){let n=i.apply(this,t);n!=null&&this[x]&&this._addCatch(n,e,t)}else{let n=arrayClone(i),r=n.length;for(let i=0;i<r;++i){let r=n[i].apply(this,t);r!=null&&this[x]&&this._addCatch(r,e,t)}}return!0}_addCatch(e,t,n){typeof e?.then==`function`&&e.then(void 0,e=>{let r=this[he];if(typeof r==`function`)r.call(this,e,t,...n);else{let t=this[x];try{this[x]=!1,this.emit(`error`,e)}finally{this[x]=t}}})}addListener(e,t){return this._addListener(e,t,!1)}on(e,t){return this._addListener(e,t,!1)}prependListener(e,t){return this._addListener(e,t,!0)}_addListener(e,t,n){checkListener(t);let r=this._events;r===void 0?(r=this._events=Object.create(null),this._eventsCount=0):r.newListener!==void 0&&(this.emit(`newListener`,e,t.listener??t),r=this._events);let i=r[e];i===void 0?(r[e]=t,++this._eventsCount):typeof i==`function`?r[e]=n?[t,i]:[i,t]:n?i.unshift(t):i.push(t);let a=this.getMaxListeners();if(a>0){let t=typeof r[e]==`function`?1:r[e].length;if(t>a&&!r[e].warned){typeof r[e]!=`function`&&(r[e].warned=!0);let n=Error(`Possible EventEmitter memory leak detected. ${t} ${String(e)} listeners added to [${this.constructor.name}]. Use emitter.setMaxListeners() to increase limit`);n.name=`MaxListenersExceededWarning`,g.warn(n.message)}}return this}once(e,t){return checkListener(t),this.on(e,_onceWrap(this,e,t)),this}prependOnceListener(e,t){return checkListener(t),this.prependListener(e,_onceWrap(this,e,t)),this}removeListener(e,t){checkListener(t);let n=this._events;if(n===void 0)return this;let r=n[e];if(r===void 0)return this;if(r===t||r.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit(`removeListener`,e,r.listener??t));else if(typeof r!=`function`){let i=-1;for(let e=r.length-1;e>=0;e--)if(r[e]===t||r[e].listener===t){i=e;break}if(i<0)return this;i===0?r.shift():spliceOne(r,i),r.length===1&&(n[e]=r[0]),n.removeListener!==void 0&&this.emit(`removeListener`,e,t.listener??t)}return this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){let t=this._events;if(t===void 0)return this;if(t.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):t[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete t[e]),this;if(arguments.length===0){let e=Object.keys(t);for(let t=0;t<e.length;++t){let n=e[t];n!==`removeListener`&&this.removeAllListeners(n)}return this.removeAllListeners(`removeListener`),this._events=Object.create(null),this._eventsCount=0,this}let n=t[e];if(typeof n==`function`)this.removeListener(e,n);else if(n!==void 0)for(let t=n.length-1;t>=0;t--)this.removeListener(e,n[t]);return this}listeners(e){let t=this._events;if(t===void 0)return[];let n=t[e];return n===void 0?[]:typeof n==`function`?[n.listener??n]:unwrapListeners(n)}rawListeners(e){let t=this._events;if(t===void 0)return[];let n=t[e];return n===void 0?[]:typeof n==`function`?[n]:arrayClone(n)}listenerCount(e){let t=this._events;if(t===void 0)return 0;let n=t[e];return n===void 0?0:typeof n==`function`?1:n.length}eventNames(){return(this._eventsCount??0)>0?Reflect.ownKeys(this._events):[]}static once(e,t,n){return new Promise((r,i)=>{let a=n?.signal;if(a?.aborted){i(createAbortError$1(a));return}if(typeof e.addEventListener==`function`){let n=e,handler=(...e)=>{a&&a.removeEventListener(`abort`,abortHandler),r(e)},errorHandler=e=>{a&&a.removeEventListener(`abort`,abortHandler),n.removeEventListener(`error`,errorHandler),i(e)},abortHandler=()=>{n.removeEventListener(t,handler),n.removeEventListener(`error`,errorHandler),i(createAbortError$1(a))};n.addEventListener(t,handler,{once:!0}),t!==`error`&&n.addEventListener(`error`,errorHandler,{once:!0}),a&&a.addEventListener(`abort`,abortHandler,{once:!0});return}let o=e,eventHandler=(...e)=>{a&&a.removeEventListener(`abort`,abortHandler),errorHandler!==void 0&&o.removeListener(`error`,errorHandler),r(e)},errorHandler;t!==`error`&&(errorHandler=e=>{o.removeListener(t,eventHandler),a&&a.removeEventListener(`abort`,abortHandler),i(e)},o.once(`error`,errorHandler)),o.once(t,eventHandler);let abortHandler=()=>{o.removeListener(t,eventHandler),errorHandler&&o.removeListener(`error`,errorHandler),i(createAbortError$1(a))};a&&a.addEventListener(`abort`,abortHandler,{once:!0})})}static on(e,t,n){let r=n?.signal;if(r?.aborted)throw createAbortError$1(r);let i=n?.highWaterMark??2**53-1,a=n?.lowWaterMark??1;validateNumber(i,`highWaterMark`),validateNumber(a,`lowWaterMark`);let o=[],s=[],c=null,l=!1,u=!1,eventHandler=(...t)=>{if(s.length>0){let{resolve:e}=s.shift();e({value:t,done:!1})}else o.push(t),o.length>=i&&!u&&(u=!0,typeof e.pause==`function`&&e.pause())},errorHandler=e=>{if(c=e,s.length>0){let{reject:t}=s.shift();t(e)}d.return()},abortHandler=()=>{errorHandler(createAbortError$1(r))};e.on(t,eventHandler),t!==`error`&&e.on(`error`,errorHandler),r&&r.addEventListener(`abort`,abortHandler,{once:!0});let cleanup=()=>{e.removeListener(t,eventHandler),e.removeListener(`error`,errorHandler),r&&r.removeEventListener(`abort`,abortHandler),l=!0;for(let{resolve:e}of s)e({value:void 0,done:!0});s.length=0,o.length=0},d={next(){if(o.length>0){let t=o.shift();return u&&o.length<a&&(u=!1,typeof e.resume==`function`&&e.resume()),Promise.resolve({value:t,done:!1})}if(c){let e=Promise.reject(c);return c=null,e}return l?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{s.push({resolve:e,reject:t})})},return(){return cleanup(),Promise.resolve({value:void 0,done:!0})},throw(e){return l||(c=e,cleanup()),Promise.reject(e)},[Symbol.asyncIterator](){return this}};return d}static listenerCount(e,t){return e.listenerCount(t)}static getEventListeners(e,t){return typeof e.listeners==`function`?e.listeners(t):[]}static setMaxListeners(e,...t){if(validateNumber(e,`n`),e<0)throw RangeError(`The value of "n" is out of range.`);if(t.length===0)EventEmitter.defaultMaxListeners=e;else for(let n of t)typeof n.setMaxListeners==`function`&&n.setMaxListeners(e)}static getMaxListeners(e){return typeof e.getMaxListeners==`function`?e.getMaxListeners():EventEmitter.defaultMaxListeners}static addAbortListener(e,t){e.aborted&&Promise.resolve().then(()=>t());let handler=()=>t();return e.addEventListener(`abort`,handler,{once:!0}),{[Symbol.dispose](){e.removeEventListener(`abort`,handler)}}}};S.EventEmitter=S;for(let e of[`setMaxListeners`,`getMaxListeners`,`emit`,`addListener`,`on`,`prependListener`,`once`,`prependOnceListener`,`removeListener`,`off`,`removeAllListeners`,`listeners`,`rawListeners`,`listenerCount`,`eventNames`]){let t=S.prototype[e];typeof t==`function`&&Object.defineProperty(S.prototype,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}Object.defineProperty(S.prototype,"_events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(S.prototype,"_eventsCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(S.prototype,"_maxListeners",{enumerable:!0,configurable:!0,writable:!0,value:void 0});function unwrapListeners(e){let t=Array(e.length);for(let n=0;n<t.length;++n)t[n]=e[n].listener??e[n];return t}function createAbortError$1(e){let t=Error(`The operation was aborted`);return t.name=`AbortError`,t.code=`ABORT_ERR`,e?.reason&&(t.cause=e.reason),t}__name(createAbortError$1,`createAbortError`);const C=makeCallable(S);C.EventEmitter=C,C.captureRejectionSymbol,C.errorMonitor,C.defaultMaxListeners,C.setMaxListeners,C.getMaxListeners,C.once,C.on,C.getEventListeners,C.listenerCount,C.addAbortListener;const ge=new TextEncoder;var ProcessWriteStream=class extends C{fd;writable=!0;_outGio=null;constructor(e){super(),this.fd=e;let t=getGioNamespace();if(t){let e=t.UnixOutputStream??t.OutputStream;if(e)try{this._outGio=e.new(this.fd,!1)}catch{}}}write(e){if(this._outGio)try{let t=typeof e==`string`?ge.encode(e):e;return this._outGio.write_all(t,null),!0}catch{}return this.fd===2?g.error(e):g.log(e),!0}get isTTY(){if(b)return b.Terminal.is_tty(this.fd);try{let e=getGjsGlobal().imports?.gi?.GLib;if(e)return!!e.log_writer_supports_color(this.fd)}catch{}return!1}get columns(){if(b){let[e,,t]=b.Terminal.get_size(this.fd);if(e&&t>0)return t}try{let e=getGjsGlobal().imports?.gi?.GLib;if(e){let t=parseInt(e.getenv(`COLUMNS`)??`0`,10);if(t>0)return t}}catch{}return 80}end(){}destroy(){}get rows(){if(b){let[e,t]=b.Terminal.get_size(this.fd);if(e&&t>0)return t}try{let e=getGjsGlobal().imports?.gi?.GLib;if(e){let t=parseInt(e.getenv(`LINES`)??`0`,10);if(t>0)return t}}catch{}return 24}},ProcessReadStream=class extends C{fd;isRaw=!1;_gio=null;_stdinGio=null;_reading=!1;_flowing=!1;_sttyCleanupRegistered=!1;_mainLoopHeld=!1;_pendingRead=!1;constructor(e){super(),this.fd=e,this._gio=getGioNamespace()}get isTTY(){return b?b.Terminal.is_tty(this.fd):!1}setRawMode(e){return b&&b.Terminal.set_raw_mode(this.fd,e)?(this.isRaw=e,this):(this._setRawModeViaStty(e),this.isRaw=e,this)}_setRawModeViaStty(e){try{let t=globalThis.imports?.gi,n=t?.Gio??t?.Gio;if(!n)return;let r=n.SubprocessFlags?.STDIN_INHERIT??2,i=e?[`stty`,`-icanon`,`-echo`,`-icrnl`,`min`,`1`,`time`,`0`]:[`stty`,`icanon`,`echo`,`icrnl`];if(new n.SubprocessLauncher({flags:r}).spawnv(i).wait(null),e&&!this._sttyCleanupRegistered){this._sttyCleanupRegistered=!0;let e=globalThis.process;e?.once&&typeof e.once==`function`&&e.once(`exit`,()=>this._setRawModeViaStty(!1))}}catch{}}setEncoding(e){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 e=globalThis.imports?.gi,t=e?.GLib??e?.GLib;t?.idle_add?t.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 e=this._gio.UnixInputStream??this._gio.InputStream;if(!e){this._reading=!1;return}try{this._stdinGio=e.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,(e,t)=>{this._pendingRead=!1;try{let n=e.read_bytes_finish(t)?.get_data?.()??null;if(n&&n.byteLength>0)this.emit(`data`,Buffer.from(n));else if(n!==null&&n.byteLength===0){this._reading=!1,this.emit(`end`);return}}catch{this._reading=!1;return}this._reading&&loop()})};loop()}};const _e=Date.now();var Process=class extends C{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(),this.ppid=detectPpid();let e=detectVersionInfo();this.version=e.version,this.versions=e.versions,this.title=e.title}cwd(){return getCwd()}chdir(e){chdir(e)}kill(e,t){return killPid(e,t)}exit(e){return this.exitCode=e??this.exitCode??0,this.emit(`exit`,this.exitCode),exitProcess(this.exitCode)}nextTick(e,...t){typeof queueMicrotask==`function`?queueMicrotask(()=>e(...t)):Promise.resolve().then(()=>e(...t))}hrtime(e){return hrtime(e)}uptime(){return(Date.now()-_e)/1e3}memoryUsage(){return memoryUsage()}cpuUsage(e){return cpuUsage(e)}stdout=new ProcessWriteStream(1);stderr=new ProcessWriteStream(2);stdin=new ProcessReadStream(0);abort(){this.exit(1)}umask(e){return 18}emitWarning(e,t){g.warn(typeof e==`string`?`(${t||`Warning`}): ${e}`:e.message)}};Process.prototype.hrtime.bigint=function(){return hrtimeBigint()};const w=new Process;if(b)try{let e=new b.ResizeWatcher;e.connect(`resized`,(e,t,n)=>{w.stdout.emit(`resize`),w.stderr.emit(`resize`)}),e.start()}catch{}w.platform,w.arch,w.env,w.argv,w.argv0,w.execPath,w.pid,w.ppid,w.version,w.versions,w.cwd.bind(w),w.chdir.bind(w),w.exit.bind(w),w.nextTick.bind(w),Object.assign(w.hrtime.bind(w),{bigint:hrtimeBigint}),w.uptime.bind(w),w.memoryUsage.bind(w),w.cpuUsage.bind(w),w.kill.bind(w),w.abort.bind(w),w.umask.bind(w),w.emitWarning.bind(w),w.execArgv,w.config,w.stdout,w.stderr,w.stdin,typeof Promise.withResolvers!=`function`&&(Promise.withResolvers=function(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}),initErrorV8Methods(Error),`global`in globalThis||Object.defineProperty(globalThis,"global",{value:globalThis,writable:!1,enumerable:!1,configurable:!0}),Object.defineProperty(globalThis,"process",{value:w,enumerable:!1,writable:!0,configurable:!0}),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 ve=getGLib()!==void 0;var GjsifyTimeout=class{_id=null;_refed=!0;_callback;_delay;_args;_repeat;constructor(e,t,n,r){this._callback=e,this._delay=t,this._args=n,this._repeat=r,this._schedule()}_schedule(){let e=getGLib();if(!e)return;let t=e.timeout_add.bind(e);this._id=t(e.PRIORITY_DEFAULT,this._delay,()=>{try{this._callback.apply(globalThis,this._args)}catch(e){setTimeout(()=>{throw e},0)}return this._repeat?e.SOURCE_CONTINUE:(this._id=null,e.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(e){if(e instanceof GjsifyTimeout)e._cancel();else if(typeof e==`number`)try{getGLib()?.Source.remove(e)}catch{}}if(ve){let setT=(e,t=0,...n)=>new GjsifyTimeout(e,Math.max(0,t|0),n,!1),setI=(e,t=0,...n)=>new GjsifyTimeout(e,Math.max(0,t|0),n,!0),e=globalThis;e.setTimeout=setT,e.clearTimeout=removeById,e.setInterval=setI,e.clearInterval=removeById}function setImmediate(e,...t){return setTimeout(e,0,...t)}function clearImmediate(e){clearTimeout(e)}`setImmediate`in globalThis||Object.defineProperty(globalThis,"setImmediate",{value:setImmediate,enumerable:!0,writable:!0,configurable:!0}),`clearImmediate`in globalThis||Object.defineProperty(globalThis,"clearImmediate",{value:clearImmediate,enumerable:!0,writable:!0,configurable:!0});let ye;if(globalThis.performance)ye=globalThis.performance;else{let e,_now;try{let t=globalThis.imports?.gi?.GLib;if(!t)throw Error(`GJS imports.gi.GLib not available`);e=t.get_monotonic_time(),_now=()=>(t.get_monotonic_time()-e)/1e3}catch{let t=Date.now();e=0,_now=()=>Date.now()-t}let t=[],n=Date.now()-_now();ye={timeOrigin:n,now:_now,mark(e){let n={name:e,entryType:`mark`,startTime:_now(),duration:0};return t.push(n),n},measure(e,n,r){let i=0,a=_now();if(n){let e=t.find(e=>e.entryType===`mark`&&e.name===n);e&&(i=e.startTime)}if(r){let e=t.find(e=>e.entryType===`mark`&&e.name===r);e&&(a=e.startTime)}let o={name:e,entryType:`measure`,startTime:i,duration:a-i};return t.push(o),o},getEntries(){return[...t]},getEntriesByName(e){return t.filter(t=>t.name===e)},getEntriesByType(e){return t.filter(t=>t.entryType===e)},clearMarks(e){for(let n=t.length-1;n>=0;n--)t[n].entryType===`mark`&&(!e||t[n].name===e)&&t.splice(n,1)},clearMeasures(e){for(let n=t.length-1;n>=0;n--)t[n].entryType===`measure`&&(!e||t[n].name===e)&&t.splice(n,1)},clearResourceTimings(){},setResourceTimingBufferSize(){},toJSON(){return{timeOrigin:n}}}}var PerformanceObserverStub=class{_callback;constructor(e){this._callback=e}observe(e){}disconnect(){}takeRecords(){return[]}};const T=globalThis,be=T.PerformanceObserver||PerformanceObserverStub;T.PerformanceEntry,T.PerformanceObserverEntryList,T.PerformanceMark,T.PerformanceMeasure;const xe=globalThis;globalThis.performance===void 0&&(xe.performance=ye),typeof xe.PerformanceObserver!=`function`&&(xe.PerformanceObserver=be);const Se={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(e,t){super(e),this.name=t||`Error`,this.code=Object.hasOwn(Se,this.name)?Se[this.name]:0}};const E=globalThis.DOMException===void 0?_DOMExceptionPolyfill:globalThis.DOMException;let Ce=!1;function ensureGstInit(){Ce||=(n.init(null),!0)}function ensureWebrtcbinAvailable(){ensureGstInit(),n.ElementFactory.find(`webrtcbin`)||throwNotSupported(`GStreamer element "webrtcbin" not available. Install gst-plugins-bad:
6
6
  Fedora: dnf install gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-extras
7
7
  Ubuntu/Debian: apt install gstreamer1.0-plugins-bad`),n.ElementFactory.find(`nicesrc`)||throwNotSupported(`GStreamer "nice" plugin (libnice-gstreamer) not available — required by webrtcbin.
8
8
  Fedora: dnf install libnice-gstreamer1
9
9
  Ubuntu/Debian: apt install gstreamer1.0-nice
10
- Verify with: gst-inspect-1.0 nicesrc`)}function throwNotSupported(e){throw new T(e,`NotSupportedError`)}const Ce=Symbol(`type`),we=Symbol(`bubbles`),E=Symbol(`cancelable`),Te=Symbol(`composed`),D=Symbol(`target`),O=Symbol(`currentTarget`),k=Symbol(`eventPhase`),A=Symbol(`defaultPrevented`),Ee=Symbol(`isTrusted`),De=Symbol(`timeStamp`),j=Symbol(`stop`),Oe=Symbol(`immediateStop`),M=Symbol(`dispatching`),N=Symbol(`inPassiveListener`);var Event$1=class{static{__name(this,`Event`)}[Ce];[we];[E];[Te];[D]=null;[O]=null;[k]=0;[A]=!1;[Ee]=!1;[De];[j]=!1;[Oe]=!1;[M]=!1;[N]=!1;get type(){return this[Ce]}get bubbles(){return this[we]}get cancelable(){return this[E]}get composed(){return this[Te]}get target(){return this[D]}get currentTarget(){return this[O]}get eventPhase(){return this[k]}get defaultPrevented(){return this[A]}get timeStamp(){return this[De]}get cancelBubble(){return this[j]}set cancelBubble(e){e&&this.stopPropagation()}get returnValue(){return!this[A]}set returnValue(e){e||this.preventDefault()}get srcElement(){return this[D]}static NONE=0;static CAPTURING_PHASE=1;static AT_TARGET=2;static BUBBLING_PHASE=3;get[Symbol.toStringTag](){return`Event`}constructor(e,t){this[Ce]=e,this[we]=t?.bubbles??!1,this[E]=t?.cancelable??!1,this[Te]=t?.composed??!1,this[De]=Date.now(),Object.defineProperty(this,`isTrusted`,{get:()=>this[Ee],enumerable:!0,configurable:!1})}composedPath(){return this[O]?[this[O]]:[]}preventDefault(){this[E]&&!this[N]&&(this[A]=!0)}stopPropagation(){this[j]=!0}stopImmediatePropagation(){this[j]=!0,this[Oe]=!0}},CustomEvent=class extends Event$1{detail;constructor(e,t){super(e,t),this.detail=t?.detail}},MessageEvent$1=class extends Event$1{static{__name(this,`MessageEvent`)}data;origin;lastEventId;source;ports;constructor(e,t){super(e,t),this.data=t?.data??null,this.origin=t?.origin??``,this.lastEventId=t?.lastEventId??``,this.source=t?.source??null,this.ports=t?.ports??[]}get[Symbol.toStringTag](){return`MessageEvent`}},ErrorEvent=class extends Event$1{message;filename;lineno;colno;error;constructor(e,t){super(e,t),this.message=t?.message??``,this.filename=t?.filename??``,this.lineno=t?.lineno??0,this.colno=t?.colno??0,this.error=t?.error??null}get[Symbol.toStringTag](){return`ErrorEvent`}},CloseEvent=class extends Event$1{code;reason;wasClean;constructor(e,t){super(e,t),this.code=t?.code??0,this.reason=t?.reason??``,this.wasClean=t?.wasClean??!1}get[Symbol.toStringTag](){return`CloseEvent`}},ProgressEvent=class extends Event$1{lengthComputable;loaded;total;constructor(e,t){super(e,t),this.lengthComputable=t?.lengthComputable??!1,this.loaded=t?.loaded??0,this.total=t?.total??0}get[Symbol.toStringTag](){return`ProgressEvent`}},EventTarget$1=class{static{__name(this,`EventTarget`)}_listeners=new Map;get[Symbol.toStringTag](){return`EventTarget`}addEventListener(e,t,n){if(t===null)return;let r=typeof n==`boolean`?n:n?.capture??!1,i=typeof n==`object`?n?.once??!1:!1,a=typeof n==`object`?n?.passive??!1:!1,o=this._listeners.get(e);o||(o=[],this._listeners.set(e,o));for(let e of o)if(e.listener===t&&e.capture===r)return;let s={listener:t,capture:r,once:i,passive:a,removed:!1};o.push(s),typeof n==`object`&&n?.signal&&n.signal.addEventListener(`abort`,()=>{this.removeEventListener(e,t,{capture:r})},{once:!0})}removeEventListener(e,t,n){if(t===null)return;let r=typeof n==`boolean`?n:n?.capture??!1,i=this._listeners.get(e);if(!i)return;let a=i.findIndex(e=>e.listener===t&&e.capture===r);a!==-1&&(i[a].removed=!0,i.splice(a,1),i.length===0&&this._listeners.delete(e))}dispatchEvent(e){if(e[M])throw new T(`The event is already being dispatched.`,`InvalidStateError`);e[M]=!0,e[D]=this,e[O]=this,e[k]=Event$1.AT_TARGET;let t=this._listeners.get(e.type);if(t){let n=[...t];for(let t of n)if(!t.removed){if(e[Oe]||e[j])break;t.once&&this.removeEventListener(e.type,t.listener,{capture:t.capture});try{t.passive&&(e[N]=!0),typeof t.listener==`function`?t.listener.call(this,e):typeof t.listener.handleEvent==`function`&&t.listener.handleEvent.call(t.listener,e)}catch(e){g.error(e)}finally{e[N]=!1}}}return e[k]=Event$1.NONE,e[O]=null,e[M]=!1,!e.defaultPrevented}};for(let[e,t]of[[`NONE`,0],[`CAPTURING_PHASE`,1],[`AT_TARGET`,2],[`BUBBLING_PHASE`,3]])Object.defineProperty(Event$1.prototype,e,{value:t,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(Event$1,e,{value:t,writable:!1,enumerable:!0,configurable:!1});globalThis.Event===void 0&&Object.defineProperty(globalThis,`Event`,{value:Event$1,writable:!0,configurable:!0}),globalThis.EventTarget===void 0&&Object.defineProperty(globalThis,`EventTarget`,{value:EventTarget$1,writable:!0,configurable:!0});var P=class MediaStreamTrack extends EventTarget{id;kind;label;_enabled=!0;_muted;_ended=!1;_contentHint=``;_onended=null;_onmute=null;_onunmute=null;_gstSource=null;_gstPipeline=null;_gstTee=null;_teeMultiplexer=null;_enableCallback=null;constructor(t){super(),this.id=t.id??e.uuid_string_random(),this.kind=t.kind,this.label=t.label??``,this._muted=t.muted??!1,t._gst&&(this._gstSource=t._gst.source,this._gstPipeline=t._gst.pipeline)}get enabled(){return this._enabled}set enabled(e){let t=!!e;this._enabled!==t&&(this._enabled=t,this._enableCallback?.(t))}get muted(){return this._muted}get readyState(){return this._ended?`ended`:`live`}get contentHint(){return this._contentHint}set contentHint(e){if(this.kind===`audio`){if(e!==``&&e!==`speech`&&e!==`speech-recognition`&&e!==`music`)return}else if(e!==``&&e!==`motion`&&e!==`detail`&&e!==`text`)return;this._contentHint=e}get onended(){return this._onended}set onended(e){this._onended=e}get onmute(){return this._onmute}set onmute(e){this._onmute=e}get onunmute(){return this._onunmute}set onunmute(e){this._onunmute=e}clone(){let e=new MediaStreamTrack({kind:this.kind,label:this.label,muted:this._muted});return e._enabled=this._enabled,e}stop(){if(this._ended)return;if(this._ended=!0,this._gstSource||this._gstPipeline){try{this._gstPipeline?.set_state(n.State.NULL)}catch{}try{this._gstSource?.set_state(n.State.NULL)}catch{}this._gstSource=null,this._gstPipeline=null}let e=new Event(`ended`);this._onended?.call(this,e),this.dispatchEvent(e)}getCapabilities(){return{}}getConstraints(){return{}}getSettings(){return{}}applyConstraints(e){return Promise.reject(new DOMException(`applyConstraints is not supported`,`NotSupportedError`))}_setMuted(e){if(this._muted===e)return;this._muted=e;let t=new Event(e?`mute`:`unmute`);e?this._onmute?.call(this,t):this._onunmute?.call(this,t),this.dispatchEvent(t)}_setEnableCallback(e){this._enableCallback=e}},ke=class MediaStream extends EventTarget{id;_tracks=new Map;_onaddtrack=null;_onremovetrack=null;constructor(t){if(super(),this.id=e.uuid_string_random(),t instanceof MediaStream)for(let e of t.getTracks())this._tracks.set(e.id,e.clone());else if(Array.isArray(t))for(let e of t)this._tracks.set(e.id,e)}get active(){for(let e of this._tracks.values())if(e.readyState===`live`)return!0;return!1}get onaddtrack(){return this._onaddtrack}set onaddtrack(e){this._onaddtrack=e}get onremovetrack(){return this._onremovetrack}set onremovetrack(e){this._onremovetrack=e}getTracks(){return[...this._tracks.values()]}getAudioTracks(){return this.getTracks().filter(e=>e.kind===`audio`)}getVideoTracks(){return this.getTracks().filter(e=>e.kind===`video`)}getTrackById(e){return this._tracks.get(e)??null}addTrack(e){if(this._tracks.has(e.id))return;this._tracks.set(e.id,e);let t=new MediaStreamTrackEvent(`addtrack`,{track:e});this._onaddtrack?.call(this,t),this.dispatchEvent(t)}removeTrack(e){if(!this._tracks.delete(e.id))return;let t=new MediaStreamTrackEvent(`removetrack`,{track:e});this._onremovetrack?.call(this,t),this.dispatchEvent(t)}clone(){return new MediaStream(this)}},MediaStreamTrackEvent=class extends Event{track;constructor(e,t){super(e,t),this.track=t.track}},RTCTrackEvent=class extends Event{receiver;track;streams;transceiver;constructor(e,t){if(super(e,t),!t||typeof t!=`object`)throw TypeError(`RTCTrackEventInit is required`);if(!(`receiver`in t))throw TypeError(`Failed to construct 'RTCTrackEvent': required member receiver is not provided.`);if(!(`track`in t))throw TypeError(`Failed to construct 'RTCTrackEvent': required member track is not provided.`);if(!(`transceiver`in t))throw TypeError(`Failed to construct 'RTCTrackEvent': required member transceiver is not provided.`);this.receiver=t.receiver,this.track=t.track,this.streams=Object.freeze(t.streams?[...t.streams]:[]),this.transceiver=t.transceiver}};globalThis.MediaStream===void 0&&(globalThis.MediaStream=ke),globalThis.MediaStreamTrack===void 0&&(globalThis.MediaStreamTrack=P),globalThis.RTCTrackEvent===void 0&&(globalThis.RTCTrackEvent=RTCTrackEvent);function sdpTypeToGst(e){switch(e){case`offer`:return r.WebRTCSDPType.OFFER;case`pranswer`:return r.WebRTCSDPType.PRANSWER;case`answer`:return r.WebRTCSDPType.ANSWER;case`rollback`:return r.WebRTCSDPType.ROLLBACK}}function sdpTypeFromGst(e){switch(e){case r.WebRTCSDPType.OFFER:return`offer`;case r.WebRTCSDPType.PRANSWER:return`pranswer`;case r.WebRTCSDPType.ANSWER:return`answer`;case r.WebRTCSDPType.ROLLBACK:return`rollback`;default:return`offer`}}var F=class RTCSessionDescription{type;sdp;constructor(e){this.type=e?.type??`offer`,this.sdp=e?.sdp??``}toJSON(){return{type:this.type,sdp:this.sdp}}toGstDesc(){let[e,t]=i.SDPMessage.new_from_text(this.sdp);if(e!==i.SDPResult.OK)throw Error(`Failed to parse SDP text (GstSDPResult=${e})`);return r.WebRTCSessionDescription.new(sdpTypeToGst(this.type),t)}static fromGstDesc(e){let t=e.sdp?.as_text?.()??``;return new RTCSessionDescription({type:sdpTypeFromGst(e.type),sdp:t})}};function parseCandidate(e){let t=e.trim();t.startsWith(`a=`)&&(t=t.slice(2)),t.startsWith(`candidate:`)&&(t=t.slice(10));let n=t.split(/\s+/);if(n.length<8)return{};let r=n[2]?.toLowerCase(),i=n.indexOf(`typ`),a=i>=0?n[i+1]:void 0,o=n.indexOf(`raddr`),s=n.indexOf(`rport`),c=n.indexOf(`tcptype`),l=Number(n[1]);return{foundation:n[0],component:l===1?`rtp`:l===2?`rtcp`:null,priority:Number(n[3])||null,protocol:r===`udp`||r===`tcp`?r:null,address:n[4]??null,port:Number(n[5])||null,type:a===`host`||a===`srflx`||a===`prflx`||a===`relay`?a:null,relatedAddress:o>=0?n[o+1]??null:null,relatedPort:s>=0&&Number(n[s+1])||null,tcpType:c>=0?n[c+1]:null}}var RTCIceCandidate=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;foundation;component;priority;protocol;address;port;type;tcpType;relatedAddress;relatedPort;constructor(e={}){if(e.sdpMid==null&&e.sdpMLineIndex==null)throw TypeError(`RTCIceCandidate requires either sdpMid or sdpMLineIndex`);this.candidate=e.candidate??``,this.sdpMid=e.sdpMid??null,this.sdpMLineIndex=e.sdpMLineIndex??null,this.usernameFragment=e.usernameFragment??null;let t=parseCandidate(this.candidate);this.foundation=t.foundation??null,this.component=t.component??null,this.priority=t.priority??null,this.protocol=t.protocol??null,this.address=t.address??null,this.port=t.port??null,this.type=t.type??null,this.tcpType=t.tcpType??null,this.relatedAddress=t.relatedAddress??null,this.relatedPort=t.relatedPort??null}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},RTCPeerConnectionIceEvent=class extends Event{candidate;url;constructor(e,t={}){super(e,t),this.candidate=t.candidate??null,this.url=t.url??null}},RTCDataChannelEvent=class extends Event{channel;constructor(e,t){if(super(e,t),!t||!t.channel)throw TypeError("RTCDataChannelEvent requires a `channel` member");this.channel=t.channel}},RTCErrorEvent=class extends Event{error;constructor(e,t){if(super(e,t),!t||!t.error)throw TypeError("RTCErrorEvent requires an `error` member");this.error=t.error}};const Ae={[r.WebRTCSignalingState.STABLE]:`stable`,[r.WebRTCSignalingState.CLOSED]:`closed`,[r.WebRTCSignalingState.HAVE_LOCAL_OFFER]:`have-local-offer`,[r.WebRTCSignalingState.HAVE_REMOTE_OFFER]:`have-remote-offer`,[r.WebRTCSignalingState.HAVE_LOCAL_PRANSWER]:`have-local-pranswer`,[r.WebRTCSignalingState.HAVE_REMOTE_PRANSWER]:`have-remote-pranswer`};function gstToSignalingState(e){return Ae[e]??`stable`}const je={[r.WebRTCPeerConnectionState.NEW]:`new`,[r.WebRTCPeerConnectionState.CONNECTING]:`connecting`,[r.WebRTCPeerConnectionState.CONNECTED]:`connected`,[r.WebRTCPeerConnectionState.DISCONNECTED]:`disconnected`,[r.WebRTCPeerConnectionState.FAILED]:`failed`,[r.WebRTCPeerConnectionState.CLOSED]:`closed`};function gstToConnectionState(e){return je[e]??`new`}const Me={[r.WebRTCICEConnectionState.NEW]:`new`,[r.WebRTCICEConnectionState.CHECKING]:`checking`,[r.WebRTCICEConnectionState.CONNECTED]:`connected`,[r.WebRTCICEConnectionState.COMPLETED]:`completed`,[r.WebRTCICEConnectionState.FAILED]:`failed`,[r.WebRTCICEConnectionState.DISCONNECTED]:`disconnected`,[r.WebRTCICEConnectionState.CLOSED]:`closed`};function gstToIceConnectionState(e){return Me[e]??`new`}const Ne={[r.WebRTCICEGatheringState.NEW]:`new`,[r.WebRTCICEGatheringState.GATHERING]:`gathering`,[r.WebRTCICEGatheringState.COMPLETE]:`complete`};function gstToIceGatheringState(e){return Ne[e]??`new`}const Pe={[r.WebRTCRTPTransceiverDirection.SENDRECV]:`sendrecv`,[r.WebRTCRTPTransceiverDirection.SENDONLY]:`sendonly`,[r.WebRTCRTPTransceiverDirection.RECVONLY]:`recvonly`},Fe={sendrecv:r.WebRTCRTPTransceiverDirection.SENDRECV,sendonly:r.WebRTCRTPTransceiverDirection.SENDONLY,recvonly:r.WebRTCRTPTransceiverDirection.RECVONLY,inactive:r.WebRTCRTPTransceiverDirection.NONE};function gstDirectionToW3C(e){return Pe[e]??`inactive`}function w3cDirectionToGst(e){return Fe[e]??r.WebRTCRTPTransceiverDirection.NONE}const Ie={[r.WebRTCStatsType.CODEC]:`codec`,[r.WebRTCStatsType.INBOUND_RTP]:`inbound-rtp`,[r.WebRTCStatsType.OUTBOUND_RTP]:`outbound-rtp`,[r.WebRTCStatsType.REMOTE_INBOUND_RTP]:`remote-inbound-rtp`,[r.WebRTCStatsType.REMOTE_OUTBOUND_RTP]:`remote-outbound-rtp`,[r.WebRTCStatsType.CSRC]:`csrc`,[r.WebRTCStatsType.PEER_CONNECTION]:`peer-connection`,[r.WebRTCStatsType.DATA_CHANNEL]:`data-channel`,[r.WebRTCStatsType.STREAM]:`stream`,[r.WebRTCStatsType.TRANSPORT]:`transport`,[r.WebRTCStatsType.CANDIDATE_PAIR]:`candidate-pair`,[r.WebRTCStatsType.LOCAL_CANDIDATE]:`local-candidate`,[r.WebRTCStatsType.REMOTE_CANDIDATE]:`remote-candidate`,[r.WebRTCStatsType.CERTIFICATE]:`certificate`};function gstToStatsType(e){return Ie[e]}var Le=__exportAll({RTCStatsReport:()=>RTCStatsReport}),RTCStatsReport,I=__esmMin(()=>{RTCStatsReport=class{_map;constructor(e){this._map=new Map(e)}get size(){return this._map.size}get(e){return this._map.get(e)}has(e){return this._map.has(e)}forEach(e,t){this._map.forEach((n,r)=>{e.call(t,n,r,this)})}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.values()}[Symbol.iterator](){return this._map.entries()}}});I();function snakeToCamel(e){return e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function extractFields(e){let t={},n=e.n_fields();for(let r=0;r<n;r++){let n=e.nth_field_name(r);try{t[n]=e.get_value(n)}catch{}}return t}function parseStatsEntry(e){let t=extractFields(e),n=t.type;if(n==null)return null;let r=gstToStatsType(Number(n));if(!r)return null;let i=String(t.id??e.get_name()??``),a=t.timestamp,o={type:r,id:i,timestamp:a==null?performance.now():Number(a)/1e6};for(let[e,n]of Object.entries(t)){if(e===`type`||e===`id`||e===`timestamp`)continue;let t=snakeToCamel(e);o[t]=n}return o}function parseGstStats(e){if(!e)return new RTCStatsReport;let t=[],n=e.n_fields();for(let r=0;r<n;r++){let n=e.nth_field_name(r);try{let r=e.get_value(n);if(r&&typeof r.n_fields==`function`){let e=parseStatsEntry(r);e&&t.push([e.id,e])}}catch{}}return new RTCStatsReport(t)}function filterStatsByTrackId(e,t){let n=[],r=new Set;for(let[i,a]of e)if(a.trackIdentifier===t){n.push([i,a]),r.add(i);for(let t of Object.values(a))typeof t==`string`&&e.has(t)&&r.add(t)}for(let[t,i]of e)r.has(t)&&!n.some(([e])=>e===t)&&n.push([t,i]);return new RTCStatsReport(n)}const Re=a.PromiseBridge,ze=a.WebrtcbinBridge,Be=a.DataChannelBridge,Ve=a.ReceiverBridge;function withGstPromise(e){return new Promise((t,n)=>{let r=new Re;r.connect(`replied`,(e,n)=>{t(n)}),r.connect(`rejected`,(e,t)=>{n(Error(t))}),e(r.promise)})}const asWebRtcBin=e=>e,asWebRtcSrcPad=e=>e,asValveElement=e=>e,asRtpPayloaderElement=e=>e,asCapsFilterElement=e=>e,asVp8EncElement=e=>e;globalThis.DOMException===void 0&&(globalThis.DOMException=T);var RTCError=class extends DOMException{errorDetail;sdpLineNumber;sctpCauseCode;receivedAlert;sentAlert;httpRequestStatusCode;constructor(e,t){if(super(t??e.errorDetail,`OperationError`),!e||!e.errorDetail)throw TypeError(`RTCError: errorDetail is required`);this.errorDetail=e.errorDetail,this.sdpLineNumber=e.sdpLineNumber??null,this.sctpCauseCode=e.sctpCauseCode??null,this.receivedAlert=e.receivedAlert??null,this.sentAlert=e.sentAlert??null,this.httpRequestStatusCode=e.httpRequestStatusCode??null}};const He={1:`connecting`,2:`open`,3:`closing`,4:`closed`};function toGBytes(t){let n;return n=ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),new e.Bytes(n)}function bytesToArrayBuffer(e){let t=e.toArray?.();if(t instanceof Uint8Array)return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);let n=e.get_data?.();return n instanceof Uint8Array?n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength):new ArrayBuffer(0)}var RTCDataChannel=class extends EventTarget{_native;_bridge;_binaryType=`arraybuffer`;_bufferedAmount=0;_closed=!1;_onopen=null;_onclose=null;_onerror=null;_onmessage=null;_onbufferedamountlow=null;_onclosing=null;constructor(e){super(),e.channel!==void 0&&e.dispose_bridge?(this._bridge=e,this._native=this._bridge.channel):(this._native=e,this._bridge=new Be({channel:this._native})),this._bridge.connect(`opened`,()=>this._handleOpen()),this._bridge.connect(`closed`,()=>this._handleClose()),this._bridge.connect(`error-occurred`,(e,t)=>this._handleError(t)),this._bridge.connect(`message-string`,(e,t)=>this._handleString(t)),this._bridge.connect(`message-data`,(e,t)=>this._handleData(t)),this._bridge.connect(`buffered-amount-low`,()=>this._handleBufferedAmountLow()),this._bridge.connect(`ready-state-changed`,()=>this._handleReadyStateChange())}get label(){return this._native.label}get ordered(){return this._native.ordered}get protocol(){return this._native.protocol}get negotiated(){return this._native.negotiated}get id(){return this._native.id>=0?this._native.id:null}get maxPacketLifeTime(){let e=this._native.max_packet_lifetime;return e>=0?e:null}get maxRetransmits(){let e=this._native.max_retransmits;return e>=0?e:null}get readyState(){return this._closed?`closed`:He[this._native.ready_state]??`connecting`}get bufferedAmount(){try{return Number(this._native.buffered_amount)||this._bufferedAmount}catch{return this._bufferedAmount}}get bufferedAmountLowThreshold(){return Number(this._native.buffered_amount_low_threshold)||0}set bufferedAmountLowThreshold(e){this._native.buffered_amount_low_threshold=e}get binaryType(){return this._binaryType}set binaryType(e){e!==`arraybuffer`&&e!==`blob`||(this._binaryType=e)}get onopen(){return this._onopen}set onopen(e){this._onopen=e}get onclose(){return this._onclose}set onclose(e){this._onclose=e}get onclosing(){return this._onclosing}set onclosing(e){this._onclosing=e}get onerror(){return this._onerror}set onerror(e){this._onerror=e}get onmessage(){return this._onmessage}set onmessage(e){this._onmessage=e}get onbufferedamountlow(){return this._onbufferedamountlow}set onbufferedamountlow(e){this._onbufferedamountlow=e}send(e){let t=this.readyState;if(t!==`open`)throw new T(`RTCDataChannel.send: readyState is '${t}', expected 'open'`,`InvalidStateError`);if(typeof e==`string`){this._native.send_string(e),this._bufferedAmount+=new TextEncoder().encode(e).byteLength;return}if(e instanceof u){e.arrayBuffer().then(e=>{try{this._native.send_data(toGBytes(e)),this._bufferedAmount+=e.byteLength}catch{}});return}if(ArrayBuffer.isView(e)){let t=toGBytes(e);this._native.send_data(t),this._bufferedAmount+=e.byteLength;return}if(e instanceof ArrayBuffer){let t=toGBytes(e);this._native.send_data(t),this._bufferedAmount+=e.byteLength;return}throw TypeError(`RTCDataChannel.send: unsupported data type`)}close(){if(!this._closed){try{this._native.close()}catch{}this._disconnectSignals(),this._closed=!0}}_disconnectSignals(){try{this._bridge.dispose_bridge()}catch{}}_handleOpen(){let e=new Event(`open`);this._onopen?.call(this,e),this.dispatchEvent(e)}_handleClose(){this._closed=!0;let e=new Event(`close`);this._onclose?.call(this,e),this.dispatchEvent(e)}_handleError(e){let t=new RTCErrorEvent(`error`,{error:new RTCError({errorDetail:`data-channel-failure`},e||`RTCDataChannel error`)});this._onerror?.call(this,t),this.dispatchEvent(t)}_handleString(e){let t=new MessageEvent(`message`,{data:e});this._onmessage?.call(this,t),this.dispatchEvent(t)}_handleData(e){if(!e)return;let t=bytesToArrayBuffer(e),n=this._binaryType===`blob`?new u([t]):t,r=new MessageEvent(`message`,{data:n});this._onmessage?.call(this,r),this.dispatchEvent(r)}_handleBufferedAmountLow(){this._bufferedAmount=Number(this._native.buffered_amount)||0;let e=new Event(`bufferedamountlow`);this._onbufferedamountlow?.call(this,e),this.dispatchEvent(e)}_handleReadyStateChange(){if(this.readyState===`closing`){let e=new Event(`closing`);this._onclosing?.call(this,e),this.dispatchEvent(e)}}};const Ue={codecs:[{mimeType:`audio/opus`,clockRate:48e3,channels:2,sdpFmtpLine:`minptime=10;useinbandfec=1`},{mimeType:`audio/G722`,clockRate:8e3,channels:1},{mimeType:`audio/PCMU`,clockRate:8e3,channels:1},{mimeType:`audio/PCMA`,clockRate:8e3,channels:1},{mimeType:`audio/telephone-event`,clockRate:8e3,channels:1},{mimeType:`audio/red`,clockRate:48e3,channels:2}],headerExtensions:[{uri:`urn:ietf:params:rtp-hdrext:ssrc-audio-level`},{uri:`http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time`},{uri:`urn:ietf:params:rtp-hdrext:sdes:mid`}]},We={codecs:[{mimeType:`video/VP8`,clockRate:9e4},{mimeType:`video/rtx`,clockRate:9e4},{mimeType:`video/H264`,clockRate:9e4,sdpFmtpLine:`level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f`},{mimeType:`video/VP9`,clockRate:9e4},{mimeType:`video/red`,clockRate:9e4},{mimeType:`video/ulpfec`,clockRate:9e4}],headerExtensions:[{uri:`urn:ietf:params:rtp-hdrext:toffset`},{uri:`http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time`},{uri:`urn:3gpp:video-orientation`},{uri:`urn:ietf:params:rtp-hdrext:sdes:mid`},{uri:`urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id`},{uri:`urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id`}]};function getRtpCapabilities(e){return e===`audio`?Ue:e===`video`?We:null}const Ge=new Set(`0123456789ABCDabcd#*,`);var RTCDTMFToneChangeEvent=class extends Event{tone;constructor(e,t={}){super(e,t),this.tone=t.tone??``}},RTCDTMFSender=class extends EventTarget{_toneBuffer=``;_duration=100;_interToneGap=70;_timerId=null;_canInsert=!0;_ontonechange=null;_isStopped=()=>!1;_getCurrentDirection=()=>null;get toneBuffer(){return this._toneBuffer}get canInsertDTMF(){return this._canInsert}get ontonechange(){return this._ontonechange}set ontonechange(e){this._ontonechange=e}insertDTMF(e,t,n){if(this._isStopped())throw new DOMException(`Failed to execute 'insertDTMF': The associated transceiver is stopped`,`InvalidStateError`);let r=this._getCurrentDirection();if(r===`recvonly`||r===`inactive`)throw new DOMException(`Failed to execute 'insertDTMF': The associated transceiver direction does not allow sending`,`InvalidStateError`);for(let t of e)if(!Ge.has(t))throw new DOMException(`Failed to execute 'insertDTMF': Invalid DTMF character '${t}'`,`InvalidCharacterError`);e=e.replace(/[a-d]/g,e=>e.toUpperCase());let i=t??100;this._duration=Math.max(40,Math.min(6e3,i));let a=n??70;this._interToneGap=Math.max(30,a),this._toneBuffer=e,this._timerId!==null&&(clearTimeout(this._timerId),this._timerId=null),e.length>0&&this._scheduleNextTone(0)}_scheduleNextTone(e){this._timerId=setTimeout(()=>{this._timerId=null,this._playNextTone()},e)}_playNextTone(){if(this._toneBuffer.length===0){this._fireToneChange(``);return}let e=this._toneBuffer[0];this._toneBuffer=this._toneBuffer.slice(1),this._fireToneChange(e);let t=e===`,`?2e3:this._duration+this._interToneGap;this._scheduleNextTone(t)}_fireToneChange(e){let t=new RTCDTMFToneChangeEvent(`tonechange`,{tone:e});this._ontonechange?.call(this,t),this.dispatchEvent(t)}_stop(){this._timerId!==null&&(clearTimeout(this._timerId),this._timerId=null),this._toneBuffer=``,this._canInsert=!1}},TeeMultiplexer=class{_tee;_pipeline;_branchCount=0;constructor(e,t){this._pipeline=e,this._tee=n.ElementFactory.make(`tee`,null),this._tee.allow_not_linked=!0,e.add(this._tee),this._tee.sync_state_with_parent(),t.link(this._tee)}requestSrcPad(){let e=`src_%u`,t=this._tee.request_pad_simple?this._tee.request_pad_simple(e):this._tee.get_request_pad(e);return t&&this._branchCount++,t}releaseSrcPad(e){if(e){try{e.add_probe(n.PadProbeType.BLOCK_DOWNSTREAM,()=>n.PadProbeReturn.DROP)}catch{}try{let t=e.get_peer();t&&e.unlink(t)}catch{}try{this._tee.release_request_pad(e)}catch{}this._branchCount--}}get branchCount(){return this._branchCount}get element(){return this._tee}};let Ke=0;var RTCRtpSender=class{_gstSender;_track=null;_lastParams=null;_pipeline=null;_webrtcbin=null;_mlineIndex=-1;_elements=[];_valve=null;_linked=!1;_teeSrcPad=null;_getStatsForTrack=null;_transport=null;_dtmf=null;_kind=null;_transceiver=null;_onPipelineChanged=null;constructor(e,t,n){this._gstSender=e,this._pipeline=t??null,this._webrtcbin=n??null}get track(){return this._track}get dtmf(){if((this._track?.kind??this._kind)!==`audio`)return null;if(!this._dtmf){let e=new RTCDTMFSender;e._isStopped=()=>this._transceiver?.stopped??!1,e._getCurrentDirection=()=>this._transceiver?.currentDirection??null,this._dtmf=e}return this._dtmf}get transport(){return this._transport}_setTrack(e){e===null&&this._linked&&this._teardownPipeline(),this._track=e}_setMlineIndex(e){this._mlineIndex=e}_wirePipeline(e){if(this._linked||!this._pipeline||!this._webrtcbin)return;let t=e._gstSource;if(!t)return;let r=e,i;if(r._gstTee&&r._gstPipeline&&r._gstPipeline!==this._pipeline){let e=r._gstPipeline,t=r._gstTee;this._webrtcbin.get_parent()===this._pipeline&&(this._pipeline.set_state(n.State.NULL),this._pipeline.remove(this._webrtcbin)),e.add(this._webrtcbin),this._webrtcbin.sync_state_with_parent(),this._pipeline=e,this._onPipelineChanged?.(e);let a=t.request_pad_simple?t.request_pad_simple(`src_%u`):t.get_request_pad(`src_%u`);this._teeSrcPad=a,i=null}else if(r._teeMultiplexer){let e=r._teeMultiplexer.requestSrcPad();this._teeSrcPad=e,i=null}else if(r._gstPipeline&&r._gstPipeline!==this._pipeline){let e=r._gstPipeline,a=t.get_static_pad(`src`),o=a?.get_peer?.();o&&a.unlink(o),t.set_state(n.State.NULL),e.remove(t),this._pipeline.add(t),r._gstPipeline=this._pipeline;let s=new TeeMultiplexer(this._pipeline,t);if(r._teeMultiplexer=s,o){let e=s.requestSrcPad();e&&e.link(o)}let c=s.requestSrcPad();this._teeSrcPad=c,i=null}else{let e=r._gstPipeline;e&&e!==this._pipeline&&(t.set_state(n.State.NULL),e.remove(t),r._gstPipeline=this._pipeline),t.get_parent()!==this._pipeline&&this._pipeline.add(t),i=t}let a=asValveElement(n.ElementFactory.make(`valve`,null));a.drop=!e.enabled,this._valve=a,this._pipeline.add(a);let o=[a],s;if(e.kind===`audio`){let e=n.ElementFactory.make(`audioconvert`,null),t=n.ElementFactory.make(`audioresample`,null),r=n.ElementFactory.make(`opusenc`,null),c=asRtpPayloaderElement(n.ElementFactory.make(`rtpopuspay`,null));c.pt=111;let l=asCapsFilterElement(n.ElementFactory.make(`capsfilter`,null));l.caps=n.Caps.from_string(`application/x-rtp,media=audio,encoding-name=OPUS,clock-rate=48000,payload=111`),o.push(e,t,r,c,l);for(let e of o)this._pipeline.add(e);if(this._teeSrcPad){let e=a.get_static_pad(`sink`);this._teeSrcPad.link(e)}else i&&i.link(a);a.link(e),e.link(t),t.link(r),r.link(c),c.link(l),s=l}else{let e=n.ElementFactory.make(`videoconvert`,null),t=n.ElementFactory.make(`videoscale`,null),r=asVp8EncElement(n.ElementFactory.make(`vp8enc`,null));r.deadline=1,r.keyframe_max_dist=60;let c=asRtpPayloaderElement(n.ElementFactory.make(`rtpvp8pay`,null));c.pt=96;let l=asCapsFilterElement(n.ElementFactory.make(`capsfilter`,null));l.caps=n.Caps.from_string(`application/x-rtp,media=video,encoding-name=VP8,clock-rate=90000,payload=96`),o.push(e,t,r,c,l);for(let e of o)this._pipeline.add(e);if(this._teeSrcPad){let e=a.get_static_pad(`sink`);this._teeSrcPad.link(e)}else i&&i.link(a);a.link(e),e.link(t),t.link(r),r.link(c),c.link(l),s=l}let c=this._mlineIndex>=0?`sink_${this._mlineIndex}`:`sink_%u`,l=this._webrtcbin.request_pad_simple?this._webrtcbin.request_pad_simple(c):this._webrtcbin.get_request_pad(c);l&&s.get_static_pad(`src`).link(l);let u=this._teeSrcPad?o:[t,...o];for(let e of u)e.sync_state_with_parent();this._elements=u,this._linked=!0,e._setEnableCallback(e=>{this._valve&&(this._valve.drop=!e)})}_teardownPipeline(){if(this._linked){if(this._track&&this._track._setEnableCallback(null),this._teeSrcPad&&this._track?._teeMultiplexer){try{this._track._teeMultiplexer.releaseSrcPad(this._teeSrcPad)}catch{}this._teeSrcPad=null}for(let e of[...this._elements].reverse())try{e.set_state(n.State.NULL),this._pipeline?.remove(e)}catch{}this._elements=[],this._valve=null,this._linked=!1}}getParameters(){return this._lastParams||={transactionId:String(++Ke),encodings:[],codecs:[],headerExtensions:[],rtcp:{}},{...this._lastParams,encodings:[...this._lastParams.encodings]}}async setParameters(e){if(!this._lastParams)throw new DOMException(`getParameters must be called before setParameters`,`InvalidStateError`);if(e.transactionId!==this._lastParams.transactionId)throw new DOMException(`transactionId mismatch`,`InvalidModificationError`);this._lastParams=null}async replaceTrack(e){if(e===null){this._teardownPipeline(),this._track=null;return}if(this._track!==null&&e.kind!==this._track.kind)throw TypeError(`Cannot replace track with different kind`);let t=e;if(this._linked&&t._gstSource){let e=this._elements[0],r=t._gstSource,i=t._gstPipeline;i&&i!==this._pipeline&&(r.set_state(n.State.NULL),i.remove(r),t._gstPipeline=this._pipeline),e.set_state(n.State.NULL),this._valve&&e.unlink(this._valve),this._pipeline?.remove(e),this._pipeline?.add(r),this._valve&&r.link(this._valve),r.sync_state_with_parent(),this._elements[0]=r}else t._gstSource&&this._wirePipeline(e);this._track&&this._track._setEnableCallback(null),this._track=e,this._linked&&e._setEnableCallback(e=>{this._valve&&(this._valve.drop=!e)})}async getStats(){if(this._getStatsForTrack&&this._track)return this._getStatsForTrack(this._track);let{RTCStatsReport:e}=await Promise.resolve().then(()=>(I(),Le));return new e}setStreams(...e){}static getCapabilities(e){return getRtpCapabilities(e)}};const qe=4e3;var RTCRtpReceiver=class{_gstReceiver;_track;_jitterBufferTarget=null;_pipeline=null;_receiverBridge=null;_getStatsForTrack=null;constructor(e,t,n){this._gstReceiver=t,this._pipeline=n??null,this._track=new P({kind:e,muted:!0})}_connectToPad(e){!this._pipeline||this._receiverBridge||(this._receiverBridge=new Ve({pipeline:this._pipeline,kind:this._track.kind}),this._receiverBridge.connect_to_pad(e),this._receiverBridge.connect(`media-flowing`,()=>{this._track._setMuted(!1)}))}_dispose(){try{this._receiverBridge?.dispose_bridge()}catch{}this._receiverBridge=null}_transport=null;get track(){return this._track}get transport(){return this._transport}get jitterBufferTarget(){return this._jitterBufferTarget}set jitterBufferTarget(e){if(e===null){this._jitterBufferTarget=null;return}let t=Number(e);if(!Number.isFinite(t)||t<0)throw RangeError(`Failed to set jitterBufferTarget: ${e} is negative or not finite`);if(t>qe)throw RangeError(`Failed to set jitterBufferTarget: ${e} exceeds maximum of ${qe}`);this._jitterBufferTarget=t}getParameters(){return{codecs:[],headerExtensions:[],rtcp:{}}}getContributingSources(){return[]}getSynchronizationSources(){return[]}async getStats(){if(this._getStatsForTrack&&this._track)return this._getStatsForTrack(this._track);let{RTCStatsReport:e}=await Promise.resolve().then(()=>(I(),Le));return new e}static getCapabilities(e){return getRtpCapabilities(e)}},RTCRtpTransceiver=class{_gstTrans;sender;receiver;_stopped=!1;_codecPreferences=[];constructor(e,t,n){this._gstTrans=e,this.sender=t,this.receiver=n}get mid(){if(this._stopped)return null;let e=this._gstTrans.mid;return e===``||e==null?null:String(e)}get direction(){return this._stopped?`stopped`:gstDirectionToW3C(this._gstTrans.direction)}set direction(e){if(this._stopped)throw new DOMException(`Cannot set direction on a stopped transceiver`,`InvalidStateError`);if(e===`stopped`)throw TypeError(`The provided value 'stopped' is not a valid enum value of type RTCRtpTransceiverDirection.`);if(![`sendrecv`,`sendonly`,`recvonly`,`inactive`].includes(e))throw TypeError(`The provided value '${e}' is not a valid enum value of type RTCRtpTransceiverDirection.`);this._gstTrans.direction=w3cDirectionToGst(e)}get currentDirection(){if(this._stopped)return null;let e=this._gstTrans.current_direction??this._gstTrans.currentDirection;if(e==null)return null;let t=gstDirectionToW3C(e);return t===`inactive`?null:t}get stopped(){return this._stopped}stop(){this._stopped||=!0}setCodecPreferences(e){if(!Array.isArray(e))throw TypeError(`codecs must be an array`);if(e.length===0){this._codecPreferences=[];return}let t=this.receiver.track.kind,n=RTCRtpReceiver.getCapabilities(t),r=RTCRtpSender.getCapabilities(t);if(!n||!r)throw new DOMException(`No capabilities available`,`InvalidModificationError`);let i=[...n.codecs,...r.codecs];for(let t of e){if(!t||typeof t!=`object`)throw TypeError(`Each codec must be an object`);if(typeof t.mimeType!=`string`||typeof t.clockRate!=`number`)throw TypeError(`codec must have mimeType (string) and clockRate (number)`);if(!/\/(rtx|red|ulpfec)$/i.test(t.mimeType)&&!i.find(e=>e.mimeType.toLowerCase()===t.mimeType.toLowerCase()&&e.clockRate===t.clockRate&&(t.channels===void 0||e.channels===t.channels)&&(t.sdpFmtpLine===void 0||e.sdpFmtpLine===t.sdpFmtpLine)))throw new DOMException(`Codec ${t.mimeType} ${t.clockRate} is not in capabilities`,`InvalidModificationError`)}this._codecPreferences=[...e]}get _nativeTransceiver(){return this._gstTrans}},RTCIceTransport=class extends EventTarget{_state=`new`;_gatheringState=`new`;_role=`unknown`;_component=`rtp`;_localCandidates=[];_remoteCandidates=[];_localParams=null;_remoteParams=null;_onstatechange=null;_ongatheringstatechange=null;_onselectedcandidatepairchange=null;get state(){return this._state}get gatheringState(){return this._gatheringState}get role(){return this._role}get component(){return this._component}get onstatechange(){return this._onstatechange}set onstatechange(e){this._onstatechange=e}get ongatheringstatechange(){return this._ongatheringstatechange}set ongatheringstatechange(e){this._ongatheringstatechange=e}get onselectedcandidatepairchange(){return this._onselectedcandidatepairchange}set onselectedcandidatepairchange(e){this._onselectedcandidatepairchange=e}getLocalCandidates(){return[...this._localCandidates]}getRemoteCandidates(){return[...this._remoteCandidates]}getSelectedCandidatePair(){return null}getLocalParameters(){return this._localParams}getRemoteParameters(){return this._remoteParams}_setState(e){if(this._state===e)return;this._state=e;let t=new Event(`statechange`);this._onstatechange?.call(this,t),this.dispatchEvent(t)}_setGatheringState(e){if(this._gatheringState===e)return;this._gatheringState=e;let t=new Event(`gatheringstatechange`);this._ongatheringstatechange?.call(this,t),this.dispatchEvent(t)}_addLocalCandidate(e){this._localCandidates.push(new RTCIceCandidate(e))}_addRemoteCandidate(e){this._remoteCandidates.push(new RTCIceCandidate(e))}_setLocalParameters(e){this._localParams=e}_setRemoteParameters(e){this._remoteParams=e}},RTCDtlsTransport=class extends EventTarget{iceTransport;_state=`new`;_onstatechange=null;_onerror=null;constructor(e){super(),this.iceTransport=e}get state(){return this._state}get onstatechange(){return this._onstatechange}set onstatechange(e){this._onstatechange=e}get onerror(){return this._onerror}set onerror(e){this._onerror=e}getRemoteCertificates(){return[]}_setState(e){if(this._state===e)return;this._state=e;let t=new Event(`statechange`);this._onstatechange?.call(this,t),this.dispatchEvent(t)}},RTCSctpTransport=class extends EventTarget{transport;_state=`connecting`;_maxMessageSize=262144;_maxChannels=65535;_onstatechange=null;constructor(e){super(),this.transport=e}get state(){return this._state}get maxMessageSize(){return this._maxMessageSize}get maxChannels(){return this._maxChannels}get onstatechange(){return this._onstatechange}set onstatechange(e){this._onstatechange=e}_setState(e){if(this._state===e)return;this._state=e;let t=new Event(`statechange`);this._onstatechange?.call(this,t),this.dispatchEvent(t)}},RTCCertificate=class{expires;_fingerprints;_algorithm;constructor(e,t,n){this._algorithm=e,this.expires=t,this._fingerprints=n}getFingerprints(){return[...this._fingerprints]}get _algorithmName(){return this._algorithm}};async function generateCertificate(t){let n;if(typeof t==`string`)n=t.toLowerCase();else if(t&&typeof t==`object`&&typeof t.name==`string`)n=t.name.toLowerCase();else throw new DOMException(`generateCertificate: algorithm must have a name property`,`NotSupportedError`);if(n===`ecdsa`){let e=t.namedCurve;if(e&&e!==`P-256`)throw new DOMException(`generateCertificate: unsupported ECDSA curve '${e}'`,`NotSupportedError`)}else if(n===`rsassa-pkcs1-v1_5`){let e=t.hash,n=typeof e==`string`?e:e?.name;if(n&&n.toUpperCase()===`SHA-1`)throw new DOMException(`generateCertificate: SHA-1 is not supported for RSA certificates`,`NotSupportedError`)}else throw new DOMException(`generateCertificate: unsupported algorithm '${n}'`,`NotSupportedError`);let r=e.uuid_string_random(),i=e.Checksum.new(e.ChecksumType.SHA256);i.update(new TextEncoder().encode(r+Date.now()));let a=i.get_string().slice(0,64).match(/.{2}/g).join(`:`).toUpperCase(),o=Date.now()+2592e6;return new RTCCertificate(n,o,[{algorithm:`sha-256`,value:a}])}function coerceUnsignedShort(e,t){let n=Number(t);if(!Number.isFinite(n))throw TypeError(`createDataChannel: ${e} must be a finite number, got ${String(t)}`);let r=Math.trunc(n);if(r<0||r>65535)throw TypeError(`createDataChannel: ${e}=${r} is outside the [0, 65535] range`);return r}let Je=0;var RTCPeerConnection$1=class extends EventTarget{static{__name(this,`RTCPeerConnection`)}_pipeline;_webrtcbin;_bridge;_conf;_closed=!1;_iceRestartNeeded=!1;_hasNegotiated=!1;_dataChannels=new Map;_transceivers=new Map;_senders=[];_receivers=[];_iceTransport=null;_dtlsTransport=null;_sctpTransport=null;canTrickleIceCandidates=!0;constructor(e){super(),ensureWebrtcbinAvailable();let[t,r]=n.version();if(t<1||t===1&&r<20)throw new T(`@gjsify/webrtc requires GStreamer >= 1.20 (you have ${t}.${r}). webrtcbin is only stable from 1.20 onward.`,`NotSupportedError`);let i=++Je;this._pipeline=new n.Pipeline({name:`gjsify-webrtc-pipeline-${i}`});let a=n.ElementFactory.make(`webrtcbin`,`gjsify-webrtcbin-${i}`);if(!a)throw Error(`Failed to create webrtcbin element`);if(this._webrtcbin=a,this._conf={...e},e?.certificates){for(let t of e.certificates)if(t instanceof RTCCertificate&&t.expires<=Date.now())throw new T(`RTCPeerConnection: one of the provided certificates has expired`,`InvalidAccessError`)}this._applyIceServers(e?.iceServers??[]),this._applyIceTransportPolicy(e?.iceTransportPolicy),this._applyBundlePolicy(e?.bundlePolicy),this._pipeline.add(this._webrtcbin),this._bridge=new ze({bin:this._webrtcbin}),this._bridge.connect(`negotiation-needed`,()=>this._handleNegotiationNeeded()),this._bridge.connect(`icecandidate`,(e,t,n)=>this._handleIceCandidate(t,n)),this._bridge.connect(`datachannel`,(e,t)=>this._handleDataChannel(t)),this._bridge.connect(`new-transceiver`,(e,t)=>this._handleNewTransceiver(t)),this._bridge.connect(`pad-added`,(e,t)=>this._handlePadAdded(t)),this._bridge.connect(`connection-state-changed`,()=>this._dispatchStateChange(`connectionstatechange`)),this._bridge.connect(`ice-connection-state-changed`,()=>this._dispatchStateChange(`iceconnectionstatechange`)),this._bridge.connect(`ice-gathering-state-changed`,()=>this._dispatchStateChange(`icegatheringstatechange`)),this._bridge.connect(`signaling-state-changed`,()=>this._dispatchStateChange(`signalingstatechange`)),this._pipeline.set_state(n.State.PLAYING)}_applyIceServers(e){let t=!1;for(let n of e){let e=Array.isArray(n.urls)?n.urls:[n.urls];if(e.length===0)throw SyntaxError(`RTCIceServer.urls must not be empty`);for(let r of e){if(typeof r!=`string`||r.length===0)throw TypeError(`RTCIceServer.urls entries must be non-empty strings`);let e=r.indexOf(`:`);if(e<0)throw TypeError(`Invalid ICE server URL "${r}"`);let i=r.slice(0,e+1),a=r.slice(e+1);if(i===`stun:`||i===`stuns:`){if(t)continue;asWebRtcBin(this._webrtcbin).stun_server=`${i}//${a}`,t=!0}else if(i===`turn:`||i===`turns:`){if(typeof n.username!=`string`||typeof n.credential!=`string`)throw TypeError(`TURN server credential for ${r} missing`);let e=`${i}//${encodeURIComponent(n.username)}:${encodeURIComponent(n.credential)}@${a}`;try{this._webrtcbin.emit(`add-turn-server`,e)}catch{asWebRtcBin(this._webrtcbin).turn_server=e}}else throw TypeError(`Unsupported ICE server protocol "${i}"`)}}}_applyIceTransportPolicy(e){if(!e)return;let t=e===`relay`?r.WebRTCICETransportPolicy.RELAY:r.WebRTCICETransportPolicy.ALL;try{asWebRtcBin(this._webrtcbin).ice_transport_policy=t}catch{}}_applyBundlePolicy(e){if(!e)return;let t;switch(e){case`balanced`:t=r.WebRTCBundlePolicy.BALANCED;break;case`max-compat`:t=r.WebRTCBundlePolicy.MAX_COMPAT;break;case`max-bundle`:t=r.WebRTCBundlePolicy.MAX_BUNDLE;break;default:return}try{asWebRtcBin(this._webrtcbin).bundle_policy=t}catch{}}get signalingState(){if(this._closed)return`closed`;try{return gstToSignalingState(asWebRtcBin(this._webrtcbin).signaling_state)}catch{return`stable`}}get connectionState(){if(this._closed)return`closed`;try{return gstToConnectionState(asWebRtcBin(this._webrtcbin).connection_state)}catch{return`new`}}get iceConnectionState(){if(this._closed)return`closed`;try{return gstToIceConnectionState(asWebRtcBin(this._webrtcbin).ice_connection_state)}catch{return`new`}}get iceGatheringState(){try{return gstToIceGatheringState(asWebRtcBin(this._webrtcbin).ice_gathering_state)}catch{return`new`}}_descProp(e){try{let t=asWebRtcBin(this._webrtcbin)[e];return t?F.fromGstDesc(t):null}catch{return null}}get localDescription(){return this._descProp(`local_description`)}get remoteDescription(){return this._descProp(`remote_description`)}get currentLocalDescription(){return this._descProp(`current_local_description`)}get currentRemoteDescription(){return this._descProp(`current_remote_description`)}get pendingLocalDescription(){return this._descProp(`pending_local_description`)}get pendingRemoteDescription(){return this._descProp(`pending_remote_description`)}get sctp(){return this._sctpTransport}get peerIdentity(){return Promise.reject(TypeError(`peerIdentity assertions are not implemented`))}get idpErrorInfo(){return null}get idpLoginUrl(){return null}_rejectIfClosed(e){if(this._closed)throw new T(`RTCPeerConnection.${e}: connection is closed`,`InvalidStateError`)}async createOffer(e){this._rejectIfClosed(`createOffer`);let t=n.Structure.new_empty(`offer-options`);this._iceRestartNeeded&&=(this._setStructureField(t,`ice-restart`,`boolean`,!0),!1);let r=(await withGstPromise(e=>{this._webrtcbin.emit(`create-offer`,t,e)})).get_value(`offer`);return F.fromGstDesc(r).toJSON()}async createAnswer(e){this._rejectIfClosed(`createAnswer`);let t=n.Structure.new_empty(`answer-options`),r=(await withGstPromise(e=>{this._webrtcbin.emit(`create-answer`,t,e)})).get_value(`answer`);return F.fromGstDesc(r).toJSON()}async setLocalDescription(e){if(this._rejectIfClosed(`setLocalDescription`),!e||!e.type||!e.sdp){let t=this.signalingState;if(t===`stable`||t===`have-local-offer`)e=await this.createOffer();else if(t===`have-remote-offer`||t===`have-remote-pranswer`)e=await this.createAnswer();else throw new T(`setLocalDescription: cannot auto-create SDP in signalingState '${t}'`,`InvalidStateError`)}this._pipeline.set_state(n.State.PLAYING);let t=new F(e).toGstDesc();await withGstPromise(e=>{this._webrtcbin.emit(`set-local-description`,t,e)})}async setRemoteDescription(e){if(this._rejectIfClosed(`setRemoteDescription`),!e||!e.sdp||!e.type)throw TypeError(`setRemoteDescription requires an RTCSessionDescriptionInit with sdp and type`);this._pipeline.set_state(n.State.PLAYING);let t=new F(e).toGstDesc();await withGstPromise(e=>{this._webrtcbin.emit(`set-remote-description`,t,e)}),this.signalingState===`stable`&&(this._hasNegotiated=!0)}async addIceCandidate(e){if(this._rejectIfClosed(`addIceCandidate`),!e)return;let{candidate:t,sdpMLineIndex:n}=e;typeof t!=`string`||typeof n!=`number`||this._webrtcbin.emit(`add-ice-candidate`,n,t)}createDataChannel(e,t={}){if(this._closed)throw new T(`Cannot create a data channel on a closed RTCPeerConnection`,`InvalidStateError`);if(typeof e!=`string`)throw TypeError(`createDataChannel: label must be a string`);if(new TextEncoder().encode(e).byteLength>65535)throw TypeError(`createDataChannel: label too long (> 65535 bytes)`);let r=t.maxPacketLifeTime==null?void 0:coerceUnsignedShort(`maxPacketLifeTime`,t.maxPacketLifeTime),i=t.maxRetransmits==null?void 0:coerceUnsignedShort(`maxRetransmits`,t.maxRetransmits),a=t.id==null?void 0:coerceUnsignedShort(`id`,t.id);if(r!==void 0&&i!==void 0)throw TypeError(`createDataChannel: maxPacketLifeTime and maxRetransmits are mutually exclusive`);if(t.negotiated===!0&&a===void 0)throw TypeError(`createDataChannel: negotiated=true requires an id`);if(a===65535)throw TypeError(`createDataChannel: id 65535 is reserved`);let o=n.Structure.new_empty(`data-channel-opts`);this._setStructureField(o,`ordered`,`boolean`,t.ordered),this._setStructureField(o,`max-packet-lifetime`,`int`,r),this._setStructureField(o,`max-retransmits`,`int`,i),this._setStructureField(o,`protocol`,`string`,t.protocol),this._setStructureField(o,`negotiated`,`boolean`,t.negotiated),this._setStructureField(o,`id`,`int`,a);let s=null;try{s=this._webrtcbin.emit(`create-data-channel`,e,o)}catch(e){throw Error(`create-data-channel failed: ${e?.message??e}`)}if(!s)throw Error(`webrtcbin returned null data channel (check id/label/options)`);this._ensureSctpTransport();let c=new RTCDataChannel(s);return this._dataChannels.set(s,c),c.addEventListener(`close`,()=>{this._dataChannels.delete(s)}),c}_setStructureField(e,t,n,r){if(r==null)return;let i=new o.Value;n===`boolean`?(i.init(o.TYPE_BOOLEAN),i.set_boolean(!!r)):n===`int`?(i.init(o.TYPE_INT),i.set_int(Number(r))):n===`string`&&(i.init(o.TYPE_STRING),i.set_string(String(r))),e.set_value(t,i),i.unset()}getConfiguration(){return{...this._conf}}close(){this._closed||(this._closed=!0,e.idle_add(e.PRIORITY_DEFAULT,()=>{try{this._pipeline.set_state(n.State.NULL)}catch{}for(let e of this._dataChannels.values())try{e._disconnectSignals()}catch{}this._dataChannels.clear();for(let e of this._senders)try{e._teardownPipeline()}catch{}for(let e of this._receivers)try{e._dispose()}catch{}this._transceivers.clear(),this._senders.length=0,this._receivers.length=0,this._dtlsTransport&&this._dtlsTransport._setState(`closed`),this._iceTransport&&this._iceTransport._setState(`closed`),this._sctpTransport&&this._sctpTransport._setState(`closed`);try{this._bridge.dispose_bridge()}catch{}return e.SOURCE_REMOVE}))}addTransceiver(e,t){this._rejectIfClosed(`addTransceiver`);let r;if(typeof e==`string`){if(e!==`audio`&&e!==`video`)throw TypeError(`Failed to execute 'addTransceiver' on 'RTCPeerConnection': The provided value '${e}' is not a valid enum value of type MediaStreamTrackKind.`);r=e}else if(e instanceof P)r=e.kind;else throw TypeError(`Failed to execute 'addTransceiver' on 'RTCPeerConnection': parameter 1 is not of type 'MediaStreamTrack' or a valid MediaStreamTrackKind.`);if(t?.sendEncodings){let e=new Set;for(let n of t.sendEncodings){if(n.rid!==void 0){if(typeof n.rid!=`string`||n.rid.length===0||n.rid.length>16||!/^[a-zA-Z0-9]+$/.test(n.rid))throw TypeError(`Invalid RID value: ${n.rid}`);if(e.has(n.rid))throw TypeError(`Duplicate RID: ${n.rid}`);e.add(n.rid)}if(n.scaleResolutionDownBy!==void 0&&n.scaleResolutionDownBy<1)throw RangeError(`scaleResolutionDownBy must be >= 1.0`)}}let i=t?.direction??`sendrecv`;if(![`sendrecv`,`sendonly`,`recvonly`,`inactive`].includes(i))throw TypeError(`Failed to execute 'addTransceiver' on 'RTCPeerConnection': The provided value '${i}' is not a valid enum value of type RTCRtpTransceiverDirection.`);let a=e instanceof P&&e._gstSource,o=i===`sendrecv`||i===`sendonly`,s,c;if(a&&o){let t=e,n=new RTCRtpSender(null,this._pipeline,this._webrtcbin);n._kind=r,n._onPipelineChanged=e=>{this._pipeline=e},n._setTrack(t),n._wirePipeline(t);let a=this._findNewGstTransceiver();if(!a)throw Error(`webrtcbin did not create a transceiver for the send pad`);s=a;let o=s.receiver??null,l=new RTCRtpReceiver(r,o,this._pipeline),statsDelegate=e=>this.getStats(e);n._getStatsForTrack=statsDelegate,l._getStatsForTrack=statsDelegate;let u=this._ensureTransports();n._transport=u,l._transport=u,c=new RTCRtpTransceiver(s,n,l),n._transceiver=c,this._transceivers.set(s,c),this._senders.push(n),this._receivers.push(l),s.direction=w3cDirectionToGst(i)}else{let t=n.Caps.from_string(`application/x-rtp,media=${r}`),a=w3cDirectionToGst(i===`inactive`?`sendrecv`:i),o=this._webrtcbin.emit(`add-transceiver`,a,t);if(!o)throw Error(`webrtcbin did not create a transceiver`);s=o,c=this._transceivers.get(s),c||=this._createTransceiverWrapper(s),s.direction=w3cDirectionToGst(i),e instanceof P&&c.sender._setTrack(e)}return c}addTrack(e,...t){if(this._rejectIfClosed(`addTrack`),!(e instanceof P))throw TypeError(`Failed to execute 'addTrack' on 'RTCPeerConnection': parameter 1 is not a MediaStreamTrack`);if(this._senders.find(t=>t.track===e))throw new T(`Track already exists in a sender of this connection`,`InvalidAccessError`);let n;for(let t of this._transceivers.values())if(t.sender.track===null&&!t.stopped&&t.direction!==`stopped`&&t.receiver.track.kind===e.kind){let e=t.direction;if(e===`recvonly`||e===`inactive`){n=t;break}}if(n){let t=n.direction;return n.direction=t===`recvonly`?`sendrecv`:`sendonly`,n.sender._setTrack(e),n.sender}return this.addTransceiver(e,{direction:`sendrecv`}).sender}removeTrack(e){if(this._rejectIfClosed(`removeTrack`),!this._senders.includes(e))throw new T(`sender was not created by this connection`,`InvalidAccessError`);e._setTrack(null)}getSenders(){return[...this._senders]}getReceivers(){return[...this._receivers]}getTransceivers(){return[...this._transceivers.values()]}async getStats(e){if(this._rejectIfClosed(`getStats`),e!=null&&e instanceof P){let t=this._senders.some(t=>t.track===e),n=this._receivers.some(t=>t.track===e);if(!t&&!n)throw new T(`The selector track is not associated with a sender or receiver of this connection`,`InvalidAccessError`)}let t=parseGstStats(await withGstPromise(e=>{this._webrtcbin.emit(`get-stats`,null,e)}));return e!=null&&e instanceof P?filterStatsByTrackId(t,e.id):t}restartIce(){this._closed||(this._iceRestartNeeded=!0,this._hasNegotiated&&Promise.resolve().then(()=>{this._closed||this._handleNegotiationNeeded()}))}setConfiguration(e){if(this._rejectIfClosed(`setConfiguration`),e.bundlePolicy&&e.bundlePolicy!==(this._conf.bundlePolicy??`balanced`))throw new T(`setConfiguration: bundlePolicy cannot be changed`,`InvalidModificationError`);if(e.rtcpMuxPolicy&&e.rtcpMuxPolicy!==(this._conf.rtcpMuxPolicy??`require`))throw new T(`setConfiguration: rtcpMuxPolicy cannot be changed`,`InvalidModificationError`);e.iceServers&&this._applyIceServers(e.iceServers),e.iceTransportPolicy&&this._applyIceTransportPolicy(e.iceTransportPolicy),this._conf={...this._conf,...e}}getIdentityAssertion(){return Promise.reject(Error(`getIdentityAssertion is not implemented`))}_findNewGstTransceiver(){for(let e=0;;e++){let t=this._webrtcbin.emit(`get-transceiver`,e);if(!t)return null;if(!this._transceivers.has(t))return t}}_ensureTransports(){return this._dtlsTransport||=(this._iceTransport=new RTCIceTransport,new RTCDtlsTransport(this._iceTransport)),this._dtlsTransport}_ensureSctpTransport(){if(this._sctpTransport)return;let e=this._ensureTransports();this._sctpTransport=new RTCSctpTransport(e)}_createTransceiverWrapper(e){let t=`audio`;try{e.kind===r.WebRTCKind.VIDEO&&(t=`video`)}catch{}let n=e.receiver??null,i=e.sender??null,a=new RTCRtpReceiver(t,n,this._pipeline),o=new RTCRtpSender(i,this._pipeline,this._webrtcbin);o._kind=t,o._onPipelineChanged=e=>{this._pipeline=e};let statsDelegate=e=>this.getStats(e);o._getStatsForTrack=statsDelegate,a._getStatsForTrack=statsDelegate;let s=this._ensureTransports();o._transport=s,a._transport=s;try{let t=e.mlineindex;typeof t==`number`&&t>=0&&o._setMlineIndex(t)}catch{}let c=new RTCRtpTransceiver(e,o,a);return o._transceiver=c,this._transceivers.set(e,c),this._senders.push(o),this._receivers.push(a),c}_handleNegotiationNeeded(){let e=new Event(`negotiationneeded`);this._onnegotiationneeded?.call(this,e),this.dispatchEvent(e)}_handleIceCandidate(e,t){let n=new RTCPeerConnectionIceEvent(`icecandidate`,{candidate:new RTCIceCandidate({candidate:t,sdpMLineIndex:e})});this._onicecandidate?.call(this,n),this.dispatchEvent(n)}_handleNewTransceiver(e){this._closed||this._transceivers.has(e)||this._createTransceiverWrapper(e)}_handlePadAdded(e){if(this._closed||e.direction!==n.PadDirection.SRC)return;let t=asWebRtcSrcPad(e).transceiver;if(!t)return;let r=this._transceivers.get(t);r||=this._createTransceiverWrapper(t),r.receiver._connectToPad(e);let i=new ke([r.receiver.track]),a=new RTCTrackEvent(`track`,{receiver:r.receiver,track:r.receiver.track,streams:[i],transceiver:r});this._ontrack?.call(this,a),this.dispatchEvent(a)}_handleDataChannel(e){this._ensureSctpTransport();let t=e.channel,n=this._dataChannels.get(t);n||(n=new RTCDataChannel(e),this._dataChannels.set(t,n),n.addEventListener(`close`,()=>{this._dataChannels.delete(t)}));let r=new RTCDataChannelEvent(`datachannel`,{channel:n});this._ondatachannel?.call(this,r),this.dispatchEvent(r)}_dispatchStateChange(e){e===`connectionstatechange`?this._syncDtlsState():e===`iceconnectionstatechange`?this._syncIceState():e===`icegatheringstatechange`&&this._syncIceGatheringState();let t=new Event(e);switch(e){case`connectionstatechange`:this._onconnectionstatechange?.call(this,t);break;case`iceconnectionstatechange`:this._oniceconnectionstatechange?.call(this,t);break;case`icegatheringstatechange`:this._onicegatheringstatechange?.call(this,t);break;case`signalingstatechange`:this._onsignalingstatechange?.call(this,t);break}this.dispatchEvent(t)}_syncDtlsState(){if(!this._dtlsTransport)return;let e=this.connectionState;this._dtlsTransport._setState({new:`new`,connecting:`connecting`,connected:`connected`,disconnected:`connected`,failed:`failed`,closed:`closed`}[e]??`new`),e===`connected`&&this._sctpTransport&&this._sctpTransport._setState(`connected`)}_syncIceState(){if(!this._iceTransport)return;let e=this.iceConnectionState;this._iceTransport._setState(e)}_syncIceGatheringState(){if(!this._iceTransport)return;let e=this.iceGatheringState;this._iceTransport._setGatheringState(e)}_onconnectionstatechange=null;_ondatachannel=null;_onicecandidate=null;_oniceconnectionstatechange=null;_onicegatheringstatechange=null;_onnegotiationneeded=null;_onsignalingstatechange=null;get onconnectionstatechange(){return this._onconnectionstatechange}set onconnectionstatechange(e){this._onconnectionstatechange=e}get ondatachannel(){return this._ondatachannel}set ondatachannel(e){this._ondatachannel=e}get onicecandidate(){return this._onicecandidate}set onicecandidate(e){this._onicecandidate=e}get oniceconnectionstatechange(){return this._oniceconnectionstatechange}set oniceconnectionstatechange(e){this._oniceconnectionstatechange=e}get onicegatheringstatechange(){return this._onicegatheringstatechange}set onicegatheringstatechange(e){this._onicegatheringstatechange=e}get onnegotiationneeded(){return this._onnegotiationneeded}set onnegotiationneeded(e){this._onnegotiationneeded=e}get onsignalingstatechange(){return this._onsignalingstatechange}set onsignalingstatechange(e){this._onsignalingstatechange=e}_ontrack=null;get ontrack(){return this._ontrack}set ontrack(e){this._ontrack=e}get onicecandidateerror(){return null}set onicecandidateerror(e){}static generateCertificate(e){return generateCertificate(e)}};globalThis.RTCPeerConnection===void 0&&(globalThis.RTCPeerConnection=RTCPeerConnection$1),globalThis.RTCSessionDescription===void 0&&(globalThis.RTCSessionDescription=F),globalThis.RTCIceCandidate===void 0&&(globalThis.RTCIceCandidate=RTCIceCandidate),globalThis.RTCPeerConnectionIceEvent===void 0&&(globalThis.RTCPeerConnectionIceEvent=RTCPeerConnectionIceEvent);const L=Symbol(`abort`),R=Symbol(`internal`);var Ye=class AbortSignal extends EventTarget$1{#e=!1;reason=void 0;onabort=null;constructor(e){if(super(),e!==R)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}[L](e){if(this.#e)return;this.#e=!0,this.reason=e??new T(`The operation was aborted.`,`AbortError`);let t=new Event$1(`abort`);typeof this.onabort==`function`&&this.onabort.call(this,t),this.dispatchEvent(t)}static abort(e){let t=new AbortSignal(R);return t[L](e),t}static timeout(e){let t=new AbortSignal(R);return setTimeout(()=>{t[L](new T(`The operation timed out.`,`TimeoutError`))},e),t}static any(e){let t=new AbortSignal(R);for(let n of e)if(n.aborted)return t[L](n.reason),t;let onAbort=()=>{if(!t.aborted){let n=e.find(e=>e.aborted);t[L](n?.reason)}};for(let t of e)t.addEventListener(`abort`,onAbort,{once:!0});return t}},Xe=class AbortController{signal;constructor(){this.signal=new Ye(R)}abort(e){if(!(this instanceof AbortController))throw TypeError(`'abort' called on an object that is not a valid instance of AbortController.`);this.signal[L](e)}};globalThis.AbortController===void 0&&(globalThis.AbortController=Xe),globalThis.AbortSignal===void 0&&(globalThis.AbortSignal=Ye);const Ze={CustomEvent,MessageEvent:MessageEvent$1,ErrorEvent,CloseEvent,ProgressEvent};for(let[e,t]of Object.entries(Ze))globalThis[e]===void 0&&Object.defineProperty(globalThis,e,{value:t,writable:!0,configurable:!0});const z=Symbol(`kState`),B=Symbol(`kType`);function isBrandCheck(e){return t=>typeof t==`object`&&!!t&&t[z]!==void 0&&t[B]===e}function dequeueValue(e){let{value:t,size:n}=e[z].queue.shift();return e[z].queueTotalSize=Math.max(0,e[z].queueTotalSize-n),t}function resetQueue(e){e[z].queue=[],e[z].queueTotalSize=0}function peekQueueValue(e){return e[z].queue[0].value}function enqueueValueWithSize(e,t,n){if(n=+n,typeof n!=`number`||n<0||Number.isNaN(n)||n===1/0)throw RangeError(`Invalid size: ${n}`);e[z].queue.push({value:t,size:n}),e[z].queueTotalSize+=n}function extractHighWaterMark(e,t){if(e===void 0)return t;if(e=+e,typeof e!=`number`||Number.isNaN(e)||e<0)throw RangeError(`Invalid highWaterMark: ${e}`);return e}function extractSizeAlgorithm(e){if(e===void 0)return()=>1;if(typeof e!=`function`)throw TypeError(`strategy.size must be a function`);return e}function transferArrayBuffer(e){return typeof ArrayBuffer.prototype.transfer==`function`?e.transfer():e.slice(0)}function isDetachedBuffer(e){if(typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer||e.byteLength!==0)return!1;try{return e.slice(0,0),!1}catch{return!0}}function typedArrayConstructorByTag(e){switch(e){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(e){switch(e){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(e){e.then(()=>{},()=>{})}function createPromiseCallback(e,t,n){if(typeof t!=`function`)throw TypeError(`${e} must be a function`);return async(...e)=>t.call(n,...e)}async function nonOpFlush(){}function nonOpStart(){}async function nonOpPull(){}async function nonOpCancel(){}async function nonOpWrite(){}const Qe={__proto__:Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype),next:void 0,return:void 0};function createAsyncFromSyncIterator(e){let t={[Symbol.iterator]:()=>e.iterator},n=async function*(){return yield*t}();return{iterator:n,nextMethod:n.next,done:!1}}function getIterator(e,t=`sync`,n){if(n===void 0)if(t===`async`){if(n=e[Symbol.asyncIterator],n==null){let t=e[Symbol.iterator];if(t===void 0)throw TypeError(`Object is not iterable`);return createAsyncFromSyncIterator(getIterator(e,`sync`,t))}}else n=e[Symbol.iterator];if(n===void 0)throw TypeError(`Object is not iterable`);let r=n.call(e);if(typeof r!=`object`||!r)throw TypeError(`The iterator method must return an object`);return{iterator:r,nextMethod:r.next,done:!1}}function iteratorNext(e,t){let n;if(n=t===void 0?e.nextMethod.call(e.iterator):e.nextMethod.call(e.iterator,t),typeof n!=`object`||!n)throw TypeError(`The iterator.next() method must return an object`);return n}const $e=typeof globalThis.AbortController==`function`?globalThis.AbortController:class AbortControllerShim{signal={aborted:!1,reason:void 0,addEventListener(){},removeEventListener(){}};abort(e){this.signal.aborted=!0,this.signal.reason=e}},et=Symbol(`kAbort`),tt=Symbol(`kCloseSentinel`),nt=Symbol(`kError`),rt=Symbol(`kSkipThrow`);var WritableStream=class{[B]=`WritableStream`;[z];constructor(e={},t={}){if(e!=null&&typeof e!=`object`)throw TypeError(`sink must be an object`);if(t!=null&&typeof t!=`object`)throw TypeError(`strategy must be an object`);let n=e?.type;if(n!==void 0)throw RangeError(`Invalid type: ${n}`);this[z]=createWritableStreamState();let r=extractSizeAlgorithm(t?.size),i=extractHighWaterMark(t?.highWaterMark,1);setupWritableStreamDefaultControllerFromSink(this,e,i,r)}get locked(){if(!V(this))throw TypeError(`Invalid this`);return isWritableStreamLocked(this)}abort(e){return V(this)?isWritableStreamLocked(this)?Promise.reject(TypeError(`WritableStream is locked`)):writableStreamAbort(this,e):Promise.reject(TypeError(`Invalid this`))}close(){return V(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(!V(this))throw TypeError(`Invalid this`);return new WritableStreamDefaultWriter(this)}get[Symbol.toStringTag](){return`WritableStream`}},WritableStreamDefaultWriter=class{[B]=`WritableStreamDefaultWriter`;[z];constructor(e){if(!V(e))throw TypeError(`Expected a WritableStream`);this[z]={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,e)}get closed(){return H(this)?this[z].close.promise:Promise.reject(TypeError(`Invalid this`))}get desiredSize(){if(!H(this))throw TypeError(`Invalid this`);if(this[z].stream===void 0)throw TypeError(`Writer is not bound to a WritableStream`);return writableStreamDefaultWriterGetDesiredSize(this)}get ready(){return H(this)?this[z].ready.promise:Promise.reject(TypeError(`Invalid this`))}abort(e){return H(this)?this[z].stream===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamDefaultWriterAbort(this,e):Promise.reject(TypeError(`Invalid this`))}close(){if(!H(this))return Promise.reject(TypeError(`Invalid this`));let{stream:e}=this[z];return e===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamCloseQueuedOrInFlight(e)?Promise.reject(TypeError(`Failure to close WritableStream`)):writableStreamDefaultWriterClose(this)}releaseLock(){if(!H(this))throw TypeError(`Invalid this`);let{stream:e}=this[z];e!==void 0&&writableStreamDefaultWriterRelease(this)}write(e){return H(this)?this[z].stream===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamDefaultWriterWrite(this,e):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`WritableStreamDefaultWriter`}},WritableStreamDefaultController=class{[B]=`WritableStreamDefaultController`;[z];constructor(e){if(e!==rt)throw TypeError(`Illegal constructor`)}[et](e){let t=this[z].abortAlgorithm(e);return writableStreamDefaultControllerClearAlgorithms(this),t}[nt](){resetQueue(this)}get signal(){if(!it(this))throw TypeError(`Invalid this`);return this[z].abortController.signal}error(e){if(!it(this))throw TypeError(`Invalid this`);this[z].stream[z].state===`writable`&&writableStreamDefaultControllerError(this,e)}get[Symbol.toStringTag](){return`WritableStreamDefaultController`}};const V=isBrandCheck(`WritableStream`),H=isBrandCheck(`WritableStreamDefaultWriter`),it=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(e){return e[z].writer!==void 0}function setupWritableStreamDefaultWriter(e,t){if(isWritableStreamLocked(t))throw TypeError(`WritableStream is locked`);switch(e[z].stream=t,t[z].writer=e,t[z].state){case`writable`:!writableStreamCloseQueuedOrInFlight(t)&&t[z].backpressure?e[z].ready=Promise.withResolvers():e[z].ready={promise:Promise.resolve(),resolve:void 0,reject:void 0},e[z].close=Promise.withResolvers();break;case`erroring`:e[z].ready={promise:Promise.reject(t[z].storedError),resolve:void 0,reject:void 0},setPromiseHandled(e[z].ready.promise),e[z].close=Promise.withResolvers();break;case`closed`:e[z].ready={promise:Promise.resolve(),resolve:void 0,reject:void 0},e[z].close={promise:Promise.resolve(),resolve:void 0,reject:void 0};break;default:e[z].ready={promise:Promise.reject(t[z].storedError),resolve:void 0,reject:void 0},e[z].close={promise:Promise.reject(t[z].storedError),resolve:void 0,reject:void 0},setPromiseHandled(e[z].ready.promise),setPromiseHandled(e[z].close.promise)}}function writableStreamAbort(e,t){let{state:n,controller:r}=e[z];if(n===`closed`||n===`errored`)return Promise.resolve();if(r[z].abortController.abort(t),e[z].pendingAbortRequest.abort.promise!==void 0)return e[z].pendingAbortRequest.abort.promise;let i=!1;n===`erroring`&&(i=!0,t=void 0);let a=Promise.withResolvers();return e[z].pendingAbortRequest={abort:a,reason:t,wasAlreadyErroring:i},i||writableStreamStartErroring(e,t),a.promise}function writableStreamClose(e){let{state:t,writer:n,backpressure:r,controller:i}=e[z];if(t===`closed`||t===`errored`)return Promise.reject(TypeError(`WritableStream is closed`));e[z].closeRequest=Promise.withResolvers();let{promise:a}=e[z].closeRequest;return n!==void 0&&r&&t===`writable`&&n[z].ready.resolve?.(),writableStreamDefaultControllerClose(i),a}function writableStreamUpdateBackpressure(e,t){let{writer:n}=e[z];n!==void 0&&e[z].backpressure!==t&&(t?n[z].ready=Promise.withResolvers():n[z].ready.resolve?.()),e[z].backpressure=t}function writableStreamStartErroring(e,t){let{controller:n,writer:r}=e[z];e[z].state=`erroring`,e[z].storedError=t,r!==void 0&&writableStreamDefaultWriterEnsureReadyPromiseRejected(r,t),!writableStreamHasOperationMarkedInFlight(e)&&n[z].started&&writableStreamFinishErroring(e)}function writableStreamRejectCloseAndClosedPromiseIfNeeded(e){e[z].closeRequest.promise!==void 0&&(e[z].closeRequest.reject?.(e[z].storedError),e[z].closeRequest={promise:void 0,resolve:void 0,reject:void 0}),setPromiseHandled(e[z].close.promise),e[z].close.reject?.(e[z].storedError);let{writer:t}=e[z];t!==void 0&&(setPromiseHandled(t[z].close.promise),t[z].close.reject?.(e[z].storedError))}function writableStreamMarkFirstWriteRequestInFlight(e){let t=e[z].writeRequests.shift();e[z].inFlightWriteRequest=t}function writableStreamMarkCloseRequestInFlight(e){e[z].inFlightCloseRequest=e[z].closeRequest,e[z].closeRequest={promise:void 0,resolve:void 0,reject:void 0}}function writableStreamHasOperationMarkedInFlight(e){return e[z].inFlightWriteRequest.promise!==void 0||e[z].inFlightCloseRequest.promise!==void 0}function writableStreamFinishInFlightWriteWithError(e,t){e[z].inFlightWriteRequest.reject?.(t),e[z].inFlightWriteRequest={promise:void 0,resolve:void 0,reject:void 0},writableStreamDealWithRejection(e,t)}function writableStreamFinishInFlightWrite(e){e[z].inFlightWriteRequest.resolve?.(),e[z].inFlightWriteRequest={promise:void 0,resolve:void 0,reject:void 0}}function writableStreamFinishInFlightCloseWithError(e,t){e[z].inFlightCloseRequest.reject?.(t),e[z].inFlightCloseRequest={promise:void 0,resolve:void 0,reject:void 0},e[z].pendingAbortRequest.abort.promise!==void 0&&(e[z].pendingAbortRequest.abort.reject?.(t),e[z].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1}),writableStreamDealWithRejection(e,t)}function writableStreamFinishInFlightClose(e){e[z].inFlightCloseRequest.resolve?.(),e[z].inFlightCloseRequest={promise:void 0,resolve:void 0,reject:void 0},e[z].state===`erroring`&&(e[z].storedError=void 0,e[z].pendingAbortRequest.abort.promise!==void 0&&(e[z].pendingAbortRequest.abort.resolve?.(),e[z].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1})),e[z].state=`closed`,e[z].writer!==void 0&&e[z].writer[z].close.resolve?.(),e[z].close.resolve?.()}function writableStreamFinishErroring(e){e[z].state=`errored`,e[z].controller[nt]();let t=e[z].storedError;for(let n of e[z].writeRequests)n.reject?.(t);if(e[z].writeRequests=[],e[z].pendingAbortRequest.abort.promise===void 0){writableStreamRejectCloseAndClosedPromiseIfNeeded(e);return}let n=e[z].pendingAbortRequest;if(e[z].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1},n.wasAlreadyErroring){n.abort.reject?.(t),writableStreamRejectCloseAndClosedPromiseIfNeeded(e);return}e[z].controller[et](n.reason).then(()=>{n.abort.resolve?.(),writableStreamRejectCloseAndClosedPromiseIfNeeded(e)},t=>{n.abort.reject?.(t),writableStreamRejectCloseAndClosedPromiseIfNeeded(e)})}function writableStreamDealWithRejection(e,t){if(e[z].state===`writable`){writableStreamStartErroring(e,t);return}writableStreamFinishErroring(e)}function writableStreamCloseQueuedOrInFlight(e){return e[z].closeRequest.promise!==void 0||e[z].inFlightCloseRequest.promise!==void 0}function writableStreamAddWriteRequest(e){let{promise:t,resolve:n,reject:r}=Promise.withResolvers();return e[z].writeRequests.push({promise:t,resolve:n,reject:r}),t}function writableStreamDefaultWriterWrite(e,t){let{stream:n}=e[z],{controller:r}=n[z],i=writableStreamDefaultControllerGetChunkSize(r,t);if(n!==e[z].stream)return Promise.reject(TypeError(`Mismatched WritableStreams`));let{state:a}=n[z];if(a===`errored`)return Promise.reject(n[z].storedError);if(writableStreamCloseQueuedOrInFlight(n)||a===`closed`)return Promise.reject(TypeError(`WritableStream is closed`));if(a===`erroring`)return Promise.reject(n[z].storedError);let o=writableStreamAddWriteRequest(n);return writableStreamDefaultControllerWrite(r,t,i),o}function writableStreamDefaultWriterRelease(e){let{stream:t}=e[z],n=TypeError(`Writer has been released`);writableStreamDefaultWriterEnsureReadyPromiseRejected(e,n),writableStreamDefaultWriterEnsureClosedPromiseRejected(e,n),t[z].writer=void 0,e[z].stream=void 0}function writableStreamDefaultWriterGetDesiredSize(e){let{stream:t}=e[z];switch(t[z].state){case`errored`:case`erroring`:return null;case`closed`:return 0}return writableStreamDefaultControllerGetDesiredSize(t[z].controller)}function writableStreamDefaultWriterEnsureReadyPromiseRejected(e,t){e[z].ready.reject?(e[z].ready.reject(t),e[z].ready.resolve=void 0,e[z].ready.reject=void 0):e[z].ready={promise:Promise.reject(t),resolve:void 0,reject:void 0},setPromiseHandled(e[z].ready.promise)}function writableStreamDefaultWriterEnsureClosedPromiseRejected(e,t){e[z].close.reject?(e[z].close.reject(t),e[z].close.resolve=void 0,e[z].close.reject=void 0):e[z].close={promise:Promise.reject(t),resolve:void 0,reject:void 0},setPromiseHandled(e[z].close.promise)}function writableStreamDefaultWriterCloseWithErrorPropagation(e){let{stream:t}=e[z],{state:n}=t[z];return writableStreamCloseQueuedOrInFlight(t)||n===`closed`?Promise.resolve():n===`errored`?Promise.reject(t[z].storedError):writableStreamDefaultWriterClose(e)}function writableStreamDefaultWriterClose(e){return writableStreamClose(e[z].stream)}function writableStreamDefaultWriterAbort(e,t){return writableStreamAbort(e[z].stream,t)}function writableStreamDefaultControllerWrite(e,t,n){try{enqueueValueWithSize(e,t,n)}catch(t){writableStreamDefaultControllerErrorIfNeeded(e,t);return}let{stream:r}=e[z];!writableStreamCloseQueuedOrInFlight(r)&&r[z].state===`writable`&&writableStreamUpdateBackpressure(r,writableStreamDefaultControllerGetBackpressure(e)),writableStreamDefaultControllerAdvanceQueueIfNeeded(e)}function writableStreamDefaultControllerProcessWrite(e,t){let{stream:n,writeAlgorithm:r}=e[z];writableStreamMarkFirstWriteRequestInFlight(n),r(t,e).then(()=>{writableStreamFinishInFlightWrite(n);let{state:t}=n[z];dequeueValue(e),!writableStreamCloseQueuedOrInFlight(n)&&t===`writable`&&writableStreamUpdateBackpressure(n,writableStreamDefaultControllerGetBackpressure(e)),writableStreamDefaultControllerAdvanceQueueIfNeeded(e)},t=>{n[z].state===`writable`&&writableStreamDefaultControllerClearAlgorithms(e),writableStreamFinishInFlightWriteWithError(n,t)})}function writableStreamDefaultControllerProcessClose(e){let{closeAlgorithm:t,queue:n,stream:r}=e[z];writableStreamMarkCloseRequestInFlight(r),dequeueValue(e);let i=t();writableStreamDefaultControllerClearAlgorithms(e),i.then(()=>writableStreamFinishInFlightClose(r),e=>writableStreamFinishInFlightCloseWithError(r,e))}function writableStreamDefaultControllerGetDesiredSize(e){return e[z].highWaterMark-e[z].queueTotalSize}function writableStreamDefaultControllerGetChunkSize(e,t){let{stream:n,sizeAlgorithm:r}=e[z];if(r===void 0)return 1;try{return r(t)}catch(t){return writableStreamDefaultControllerErrorIfNeeded(e,t),1}}function writableStreamDefaultControllerErrorIfNeeded(e,t){e[z].stream[z].state===`writable`&&writableStreamDefaultControllerError(e,t)}function writableStreamDefaultControllerError(e,t){writableStreamDefaultControllerClearAlgorithms(e),writableStreamStartErroring(e[z].stream,t)}function writableStreamDefaultControllerClose(e){enqueueValueWithSize(e,tt,0),writableStreamDefaultControllerAdvanceQueueIfNeeded(e)}function writableStreamDefaultControllerClearAlgorithms(e){e[z].writeAlgorithm=void 0,e[z].closeAlgorithm=void 0,e[z].abortAlgorithm=void 0,e[z].sizeAlgorithm=void 0}function writableStreamDefaultControllerGetBackpressure(e){return writableStreamDefaultControllerGetDesiredSize(e)<=0}function writableStreamDefaultControllerAdvanceQueueIfNeeded(e){let{queue:t,started:n,stream:r}=e[z];if(!n||r[z].inFlightWriteRequest.promise!==void 0)return;if(r[z].state===`erroring`){writableStreamFinishErroring(r);return}if(!t.length)return;let i=peekQueueValue(e);i===tt?writableStreamDefaultControllerProcessClose(e):writableStreamDefaultControllerProcessWrite(e,i)}function setupWritableStreamDefaultControllerFromSink(e,t,n,r){let i=new WritableStreamDefaultController(rt),a=t?.start,o=t?.write,s=t?.close,c=t?.abort;setupWritableStreamDefaultController(e,i,a?a.bind(t,i):nonOpStart,o?createPromiseCallback(`sink.write`,o,t):nonOpWrite,s?createPromiseCallback(`sink.close`,s,t):nonOpCancel,c?createPromiseCallback(`sink.abort`,c,t):nonOpCancel,n,r)}function setupWritableStreamDefaultController(e,t,n,r,i,a,o,s){t[z]={abortAlgorithm:a,closeAlgorithm:i,highWaterMark:o,queue:[],queueTotalSize:0,abortController:new $e,sizeAlgorithm:s,started:!1,stream:e,writeAlgorithm:r},e[z].controller=t,writableStreamUpdateBackpressure(e,writableStreamDefaultControllerGetBackpressure(t));let c=n();new Promise(e=>e(c)).then(()=>{t[z].started=!0,writableStreamDefaultControllerAdvanceQueueIfNeeded(t)},n=>{t[z].started=!0,writableStreamDealWithRejection(e,n)})}function createWritableStream(e,t,n,r,i=1,a=()=>1){let o=Object.create(WritableStream.prototype);return o[B]=`WritableStream`,o[z]=createWritableStreamState(),setupWritableStreamDefaultController(o,new WritableStreamDefaultController(rt),e,t,n,r,i,a),o}const at=Symbol(`kCancel`),U=Symbol(`kClose`),W=Symbol(`kChunk`),G=Symbol(`kError`),ot=Symbol(`kPull`),st=Symbol(`kRelease`),K=Symbol(`kSkipThrow`);let ct,lt;function lazyReadableReleasedError(){return ct||(ct=TypeError(`Reader released`),ct)}function lazyReadableReleasingError(){return lt||(lt=TypeError(`Releasing reader`),lt)}function createAbortError(){if(typeof globalThis.DOMException==`function`)return new DOMException(`The operation was aborted`,`AbortError`);let e=Error(`The operation was aborted`);return e.name=`AbortError`,e}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(this,`ReadableStream`)}[B]=`ReadableStream`;[z];constructor(e={},t={}){if(e!=null&&typeof e!=`object`)throw TypeError(`source must be an object`);if(t!=null&&typeof t!=`object`)throw TypeError(`strategy must be an object`);this[z]=createReadableStreamState();let n=t?.size,r=t?.highWaterMark,i=e?.type;if(i!==void 0){if(`${i}`==`bytes`){if(n!==void 0)throw RangeError(`strategy.size must not be set for a byte stream`);setupReadableByteStreamControllerFromSource(this,e,extractHighWaterMark(r,0));return}throw RangeError(`Invalid type: ${i}`)}setupReadableStreamDefaultControllerFromSource(this,e,extractHighWaterMark(r,1),extractSizeAlgorithm(n))}get locked(){if(!q(this))throw TypeError(`Invalid this`);return isReadableStreamLocked(this)}static from(e){return readableStreamFromIterable(e)}cancel(e=void 0){return q(this)?isReadableStreamLocked(this)?Promise.reject(TypeError(`ReadableStream is locked`)):readableStreamCancel(this,e):Promise.reject(TypeError(`Invalid this`))}getReader(e={}){if(!q(this))throw TypeError(`Invalid this`);if(e!=null&&typeof e!=`object`)throw TypeError(`options must be an object`);let t=e?.mode;if(t===void 0)return new ReadableStreamDefaultReader(this);if(`${t}`==`byob`)return new ReadableStreamBYOBReader(this);throw RangeError(`Invalid mode: ${t}`)}pipeThrough(e,t={}){if(!q(this))throw TypeError(`Invalid this`);let n=e?.readable;if(!q(n))throw TypeError(`transform.readable must be a ReadableStream`);let r=e?.writable;if(!V(r))throw TypeError(`transform.writable must be a WritableStream`);if(t!=null&&typeof t!=`object`)throw TypeError(`options must be an object`);let i=t?.preventAbort,a=t?.preventCancel,o=t?.preventClose,s=t?.signal;if(s!==void 0&&!(s instanceof Object&&`aborted`in s))throw TypeError(`options.signal must be an AbortSignal`);if(isReadableStreamLocked(this))throw TypeError(`The ReadableStream is locked`);if(isWritableStreamLocked(r))throw TypeError(`The WritableStream is locked`);return setPromiseHandled(readableStreamPipeTo(this,r,!!o,!!i,!!a,s)),n}pipeTo(e,t={}){try{if(!q(this))throw TypeError(`Invalid this`);if(!V(e))throw TypeError(`destination must be a WritableStream`);if(t!=null&&typeof t!=`object`)throw TypeError(`options must be an object`);let n=t?.preventAbort,r=t?.preventCancel,i=t?.preventClose,a=t?.signal;if(a!==void 0&&!(a instanceof Object&&`aborted`in a))throw TypeError(`options.signal must be an AbortSignal`);if(isReadableStreamLocked(this))throw TypeError(`The ReadableStream is locked`);if(isWritableStreamLocked(e))throw TypeError(`The WritableStream is locked`);return readableStreamPipeTo(this,e,!!i,!!n,!!r,a)}catch(e){return Promise.reject(e)}}tee(){if(!q(this))throw TypeError(`Invalid this`);let e=this[z].controller;return Y(e)?readableByteStreamTee(this):readableStreamDefaultTee(this,!1)}values(e={}){if(!q(this))throw TypeError(`Invalid this`);if(e!=null&&typeof e!=`object`)throw TypeError(`options must be an object`);let t=!!e?.preventCancel,n=new ReadableStreamDefaultReader(this),r={done:!1,current:void 0},i=!1;function nextSteps(){if(r.done)return Promise.resolve({done:!0,value:void 0});if(n[z].stream===void 0)return Promise.reject(TypeError(`The reader is not bound to a ReadableStream`));let{promise:e,resolve:t,reject:i}=Promise.withResolvers();return readableStreamDefaultReaderRead(n,{[W](e){r.current=void 0,t({value:e,done:!1})},[U](){r.current=void 0,r.done=!0,readableStreamReaderGenericRelease(n),t({done:!0,value:void 0})},[G](e){r.current=void 0,r.done=!0,readableStreamReaderGenericRelease(n),i(e)}}),e}async function returnSteps(e){if(r.done)return{done:!0,value:e};if(r.done=!0,n[z].stream===void 0)throw TypeError(`The reader is not bound to a ReadableStream`);if(!t){let t=readableStreamReaderGenericCancel(n,e);return readableStreamReaderGenericRelease(n),await t,{done:!0,value:e}}return readableStreamReaderGenericRelease(n),{done:!0,value:e}}return Object.setPrototypeOf({next(){return i||=(r.current=Promise.resolve(),!0),r.current=r.current===void 0?nextSteps():r.current.then(nextSteps,nextSteps),r.current},return(e){return i=!0,r.current=r.current===void 0?returnSteps(e):r.current.then(()=>returnSteps(e),()=>returnSteps(e)),r.current},[Symbol.asyncIterator](){return this}},Qe)}[Symbol.asyncIterator](){return this.values()}get[Symbol.toStringTag](){return`ReadableStream`}},DefaultReadRequest=class{[z];constructor(){this[z]=Promise.withResolvers()}[W](e){this[z].resolve?.({value:e,done:!1})}[U](){this[z].resolve?.({value:void 0,done:!0})}[G](e){this[z].reject?.(e)}get promise(){return this[z].promise}},ReadableStreamDefaultReader=class{[B]=`ReadableStreamDefaultReader`;[z];constructor(e){if(!q(e))throw TypeError(`Expected a ReadableStream`);this[z]={readRequests:[],stream:void 0,close:{promise:void 0,resolve:void 0,reject:void 0}},setupReadableStreamDefaultReader(this,e)}read(){if(!J(this))return Promise.reject(TypeError(`Invalid this`));if(this[z].stream===void 0)return Promise.reject(TypeError(`The reader is not attached to a stream`));let e=this[z].stream,t=e[z].controller;if(e[z].state===`readable`&&ut(t)&&t[z].queue.length>0){e[z].disturbed=!0;let n=dequeueValue(t);return t[z].closeRequested&&!t[z].queue.length?(readableStreamDefaultControllerClearAlgorithms(t),readableStreamClose(e)):readableStreamDefaultControllerCallPullIfNeeded(t),Promise.resolve({value:n,done:!1})}let n=new DefaultReadRequest;return readableStreamDefaultReaderRead(this,n),n.promise}releaseLock(){if(!J(this))throw TypeError(`Invalid this`);this[z].stream!==void 0&&readableStreamDefaultReaderRelease(this)}get closed(){return J(this)?this[z].close.promise:Promise.reject(TypeError(`Invalid this`))}cancel(e=void 0){return J(this)?this[z].stream===void 0?Promise.reject(TypeError(`The reader is not attached to a stream`)):readableStreamReaderGenericCancel(this,e):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`ReadableStreamDefaultReader`}},ReadableStreamDefaultController=class{[B]=`ReadableStreamDefaultController`;[z]={};constructor(e){if(e!==K)throw TypeError(`Illegal constructor`)}get desiredSize(){return readableStreamDefaultControllerGetDesiredSize(this)}close(){if(!readableStreamDefaultControllerCanCloseOrEnqueue(this))throw TypeError(`Controller is already closed`);readableStreamDefaultControllerClose(this)}enqueue(e=void 0){if(!readableStreamDefaultControllerCanCloseOrEnqueue(this))throw TypeError(`Controller is already closed`);readableStreamDefaultControllerEnqueue(this,e)}error(e=void 0){readableStreamDefaultControllerError(this,e)}[at](e){return readableStreamDefaultControllerCancelSteps(this,e)}[ot](e){readableStreamDefaultControllerPullSteps(this,e)}[st](){}get[Symbol.toStringTag](){return`ReadableStreamDefaultController`}};const q=isBrandCheck(`ReadableStream`),ut=isBrandCheck(`ReadableStreamDefaultController`),J=isBrandCheck(`ReadableStreamDefaultReader`);function isReadableStreamLocked(e){return e[z].reader!==void 0}function readableStreamCancel(e,t){switch(e[z].disturbed=!0,e[z].state){case`closed`:return Promise.resolve();case`errored`:return Promise.reject(e[z].storedError)}readableStreamClose(e);let n=e[z].reader;if(n!==void 0&&readableStreamHasBYOBReader(e)){let e=n[z].readIntoRequests;n[z].readIntoRequests=[];for(let t=0;t<e.length;t++)e[t][U](void 0)}return e[z].controller[at](t).then(()=>{})}function readableStreamClose(e){e[z].state=`closed`,e[z].closedPromise.resolve();let{reader:t}=e[z];if(t!==void 0&&(t[z].close.resolve?.(),readableStreamHasDefaultReader(e))){for(let e=0;e<t[z].readRequests.length;e++)t[z].readRequests[e][U]();t[z].readRequests=[]}}function readableStreamError(e,t){e[z].state=`errored`,e[z].storedError=t,setPromiseHandled(e[z].closedPromise.promise),e[z].closedPromise.reject(t);let{reader:n}=e[z];if(n!==void 0){if(setPromiseHandled(n[z].close.promise),n[z].close.reject?.(t),readableStreamHasDefaultReader(e)){for(let e=0;e<n[z].readRequests.length;e++)n[z].readRequests[e][G](t);n[z].readRequests=[]}else if(readableStreamHasBYOBReader(e)){for(let e=0;e<n[z].readIntoRequests.length;e++)n[z].readIntoRequests[e][G](t);n[z].readIntoRequests=[]}}}function readableStreamHasDefaultReader(e){let{reader:t}=e[z];return t===void 0?!1:t[z]!==void 0&&t[B]===`ReadableStreamDefaultReader`}function readableStreamGetNumReadRequests(e){return e[z].reader[z].readRequests.length}function readableStreamFulfillReadRequest(e,t,n){let{reader:r}=e[z],i=r[z].readRequests.shift();n?i[U]():i[W](t)}function readableStreamAddReadRequest(e,t){e[z].reader[z].readRequests.push(t)}function readableStreamReaderGenericCancel(e,t){let{stream:n}=e[z];return readableStreamCancel(n,t)}function readableStreamReaderGenericInitialize(e,t){switch(e[z].stream=t,t[z].reader=e,t[z].state){case`readable`:e[z].close=Promise.withResolvers();break;case`closed`:e[z].close={promise:Promise.resolve(),resolve:void 0,reject:void 0};break;case`errored`:e[z].close={promise:Promise.reject(t[z].storedError),resolve:void 0,reject:void 0},setPromiseHandled(e[z].close.promise);break}}function readableStreamReaderGenericRelease(e){let{stream:t}=e[z],n=lazyReadableReleasedError();t[z].state===`readable`?e[z].close.reject?.(n):e[z].close={promise:Promise.reject(n),resolve:void 0,reject:void 0},setPromiseHandled(e[z].close.promise),t[z].controller[st](),t[z].reader=void 0,e[z].stream=void 0}function readableStreamDefaultReaderRelease(e){readableStreamReaderGenericRelease(e),readableStreamDefaultReaderErrorReadRequests(e,lazyReadableReleasingError())}function readableStreamDefaultReaderErrorReadRequests(e,t){for(let n=0;n<e[z].readRequests.length;++n)e[z].readRequests[n][G](t);e[z].readRequests=[]}function readableStreamDefaultReaderRead(e,t){let{stream:n}=e[z];switch(n[z].disturbed=!0,n[z].state){case`closed`:t[U]();break;case`errored`:t[G](n[z].storedError);break;case`readable`:n[z].controller[ot](t);break}}function setupReadableStreamDefaultReader(e,t){if(isReadableStreamLocked(t))throw TypeError(`ReadableStream is locked`);readableStreamReaderGenericInitialize(e,t),e[z].readRequests=[]}function readableStreamDefaultControllerClose(e){readableStreamDefaultControllerCanCloseOrEnqueue(e)&&(e[z].closeRequested=!0,e[z].queue.length||(readableStreamDefaultControllerClearAlgorithms(e),readableStreamClose(e[z].stream)))}function readableStreamDefaultControllerEnqueue(e,t){if(!readableStreamDefaultControllerCanCloseOrEnqueue(e))return;let{stream:n}=e[z];if(isReadableStreamLocked(n)&&readableStreamGetNumReadRequests(n))readableStreamFulfillReadRequest(n,t,!1);else try{enqueueValueWithSize(e,t,e[z].sizeAlgorithm(t))}catch(t){throw readableStreamDefaultControllerError(e,t),t}readableStreamDefaultControllerCallPullIfNeeded(e)}function readableStreamDefaultControllerCanCloseOrEnqueue(e){let{stream:t}=e[z];return!e[z].closeRequested&&t[z].state===`readable`}function readableStreamDefaultControllerGetDesiredSize(e){let{stream:t,highWaterMark:n,queueTotalSize:r}=e[z];switch(t[z].state){case`errored`:return null;case`closed`:return 0;default:return n-r}}function readableStreamDefaultControllerHasBackpressure(e){return!readableStreamDefaultControllerShouldCallPull(e)}function readableStreamDefaultControllerShouldCallPull(e){let{stream:t}=e[z];if(!readableStreamDefaultControllerCanCloseOrEnqueue(e)||!e[z].started)return!1;if(isReadableStreamLocked(t)&&readableStreamGetNumReadRequests(t))return!0;let n=readableStreamDefaultControllerGetDesiredSize(e);return n!==null&&n>0}function readableStreamDefaultControllerCallPullIfNeeded(e){if(readableStreamDefaultControllerShouldCallPull(e)){if(e[z].pulling){e[z].pullAgain=!0;return}e[z].pulling=!0,e[z].pullAlgorithm(e).then(()=>{e[z].pulling=!1,e[z].pullAgain&&(e[z].pullAgain=!1,readableStreamDefaultControllerCallPullIfNeeded(e))},t=>readableStreamDefaultControllerError(e,t))}}function readableStreamDefaultControllerClearAlgorithms(e){e[z].pullAlgorithm=void 0,e[z].cancelAlgorithm=void 0,e[z].sizeAlgorithm=void 0}function readableStreamDefaultControllerError(e,t){let{stream:n}=e[z];n[z].state===`readable`&&(resetQueue(e),readableStreamDefaultControllerClearAlgorithms(e),readableStreamError(n,t))}function readableStreamDefaultControllerCancelSteps(e,t){resetQueue(e);let n=e[z].cancelAlgorithm(t);return readableStreamDefaultControllerClearAlgorithms(e),n}function readableStreamDefaultControllerPullSteps(e,t){let{stream:n,queue:r}=e[z];if(r.length){let i=dequeueValue(e);e[z].closeRequested&&!r.length?(readableStreamDefaultControllerClearAlgorithms(e),readableStreamClose(n)):readableStreamDefaultControllerCallPullIfNeeded(e),t[W](i);return}readableStreamAddReadRequest(n,t),readableStreamDefaultControllerCallPullIfNeeded(e)}function setupReadableStreamDefaultController(e,t,n,r,i,a,o){t[z]={cancelAlgorithm:i,closeRequested:!1,highWaterMark:a,pullAgain:!1,pullAlgorithm:r,pulling:!1,queue:[],queueTotalSize:0,started:!1,sizeAlgorithm:o,stream:e},e[z].controller=t;let s=n();new Promise(e=>e(s)).then(()=>{t[z].started=!0,readableStreamDefaultControllerCallPullIfNeeded(t)},e=>readableStreamDefaultControllerError(t,e))}function setupReadableStreamDefaultControllerFromSource(e,t,n,r){let i=new ReadableStreamDefaultController(K),a=t?.start,o=t?.pull,s=t?.cancel;setupReadableStreamDefaultController(e,i,a?a.bind(t,i):nonOpStart,o?createPromiseCallback(`source.pull`,o,t):nonOpPull,s?createPromiseCallback(`source.cancel`,s,t):nonOpCancel,n,r)}function createReadableStream(e,t,n,r=1,i=()=>1){let a=Object.create(ReadableStream$1.prototype);return a[B]=`ReadableStream`,a[z]=createReadableStreamState(),setupReadableStreamDefaultController(a,new ReadableStreamDefaultController(K),e,t,n,r,i),a}function readableStreamFromIterable(e){let t,n=getIterator(e,`async`),r=nonOpStart;async function pullAlgorithm(){let e=iteratorNext(n);return Promise.resolve(e).then(e=>{if(typeof e!=`object`||!e)throw TypeError(`The promise returned by the iterator.next() method must fulfill with an object`);e.done?readableStreamDefaultControllerClose(t[z].controller):readableStreamDefaultControllerEnqueue(t[z].controller,e.value)})}async function cancelAlgorithm(e){let t=n.iterator,r=t.return;if(r===void 0)return Promise.resolve();let i=r.call(t,e);return Promise.resolve(i).then(e=>{if(typeof e!=`object`||!e)throw TypeError(`The promise returned by the iterator.return() method must fulfill with an object`)})}return t=createReadableStream(r,pullAlgorithm,cancelAlgorithm,0),t}function readableStreamPipeTo(e,t,n,r,i,a){let o,s;try{o=new ReadableStreamDefaultReader(e),s=new WritableStreamDefaultWriter(t)}catch(e){return Promise.reject(e)}e[z].disturbed=!0;let c=!1,{promise:l,resolve:u,reject:d}=Promise.withResolvers(),f={currentWrite:Promise.resolve()},p;function finalize(e,t){writableStreamDefaultWriterRelease(s),readableStreamReaderGenericRelease(o),a!==void 0&&p&&(a.removeEventListener(`abort`,p),p=void 0),e?d(t):u()}async function waitForCurrentWrite(){let e=f.currentWrite;await e,e!==f.currentWrite&&await waitForCurrentWrite()}function shutdownWithAnAction(e,n,r){if(c)return;if(c=!0,t[z].state===`writable`&&!writableStreamCloseQueuedOrInFlight(t)){waitForCurrentWrite().then(complete,e=>finalize(!0,e));return}complete();function complete(){e().then(()=>finalize(!!n,r),e=>finalize(!0,e))}}function shutdown(e,n){if(!c){if(c=!0,t[z].state===`writable`&&!writableStreamCloseQueuedOrInFlight(t)){waitForCurrentWrite().then(()=>finalize(!!e,n),e=>finalize(!0,e));return}finalize(!!e,n)}}function abortAlgorithm(){let n;n=a.reason&&a.reason.name===`AbortError`?createAbortError():a.reason;let o=[];r||o.push(()=>t[z].state===`writable`?writableStreamAbort(t,n):Promise.resolve()),i||o.push(()=>e[z].state===`readable`?readableStreamCancel(e,n):Promise.resolve()),shutdownWithAnAction(()=>Promise.all(o.map(e=>e())).then(()=>void 0),!0,n)}function watchErrored(e,t,n){e[z].state===`errored`?n(e[z].storedError):t.then(void 0,n)}function watchClosed(e,t,n){e[z].state===`closed`?n():t.then(n,()=>{})}class PipeToReadRequest{[W](e){_(()=>{f.currentWrite=writableStreamDefaultWriterWrite(s,e),setPromiseHandled(f.currentWrite),m.resolve(!1)})}[U](){m.resolve(!0)}[G](e){m.reject(e)}}let m={resolve:null,reject:null};async function step(){if(c||t[z].backpressure&&(await s[z].ready.promise,c))return!0;let n=e[z].controller;if(e[z].state===`readable`&&ut(n)&&n[z].queue.length>0){for(;n[z].queue.length>0;){if(c)return!0;let r=dequeueValue(n);if(n[z].closeRequested&&!n[z].queue.length&&(readableStreamDefaultControllerClearAlgorithms(n),readableStreamClose(e)),f.currentWrite=writableStreamDefaultWriterWrite(s,r),setPromiseHandled(f.currentWrite),t[z].backpressure||t[z].state!==`writable`||writableStreamCloseQueuedOrInFlight(t))break}return readableStreamDefaultControllerCallPullIfNeeded(n),e[z].state===`closed`}let{promise:r,resolve:i,reject:a}=Promise.withResolvers();return m={resolve:i,reject:a},readableStreamDefaultReaderRead(o,new PipeToReadRequest),r}async function run(){for(;!await step(););}if(a!==void 0){if(a.aborted)return abortAlgorithm(),l;p=abortAlgorithm,a.addEventListener(`abort`,p,{once:!0})}if(setPromiseHandled(run()),watchErrored(e,o[z].close.promise,e=>{if(!r)return shutdownWithAnAction(()=>writableStreamAbort(t,e),!0,e);shutdown(!0,e)}),watchErrored(t,s[z].close.promise,t=>{if(!i)return shutdownWithAnAction(()=>readableStreamCancel(e,t),!0,t);shutdown(!0,t)}),watchClosed(e,o[z].close.promise,()=>{if(!n)return shutdownWithAnAction(()=>writableStreamDefaultWriterCloseWithErrorPropagation(s));shutdown()}),writableStreamCloseQueuedOrInFlight(t)||t[z].state===`closed`){let t=TypeError(`Destination WritableStream is closed`);i?shutdown(!0,t):shutdownWithAnAction(()=>readableStreamCancel(e,t),!0,t)}return l}function readableStreamDefaultTee(e,t){let n=new ReadableStreamDefaultReader(e),r=!1,i=!1,a=!1,o,s,c,l,u=Promise.withResolvers();async function pullAlgorithm(){r||(r=!0,readableStreamDefaultReaderRead(n,{[W](e){_(()=>{r=!1;let n=e,o=e;if(!a&&t)try{o=structuredClone(o)}catch{}i||readableStreamDefaultControllerEnqueue(c[z].controller,n),a||readableStreamDefaultControllerEnqueue(l[z].controller,o)})},[U](){_(()=>{r=!1,i||readableStreamDefaultControllerClose(c[z].controller),a||readableStreamDefaultControllerClose(l[z].controller),(!i||!a)&&u.resolve(void 0)})},[G](){r=!1}}))}function cancel1Algorithm(t){if(i=!0,o=t,a){let t=[o,s];u.resolve(readableStreamCancel(e,t))}return u.promise}function cancel2Algorithm(t){if(a=!0,s=t,i){let t=[o,s];u.resolve(readableStreamCancel(e,t))}return u.promise}return c=createReadableStream(nonOpStart,pullAlgorithm,cancel1Algorithm),l=createReadableStream(nonOpStart,pullAlgorithm,cancel2Algorithm),n[z].close.promise.then(void 0,e=>{readableStreamDefaultControllerError(c[z].controller,e),readableStreamDefaultControllerError(l[z].controller,e),(!i||!a)&&u.resolve(void 0)}),[c,l]}var BYOBReadIntoRequest=class{[z];constructor(){this[z]=Promise.withResolvers()}[W](e){this[z].resolve?.({value:e,done:!1})}[U](e){this[z].resolve?.({value:e,done:!0})}[G](e){this[z].reject?.(e)}get promise(){return this[z].promise}},ReadableStreamBYOBReader=class{[B]=`ReadableStreamBYOBReader`;[z];constructor(e){if(!q(e))throw TypeError(`Expected a ReadableStream`);this[z]={readIntoRequests:[],stream:void 0,close:{promise:void 0,resolve:void 0,reject:void 0}},setupReadableStreamBYOBReader(this,e)}read(e,t={}){if(!X(this))return Promise.reject(TypeError(`Invalid this`));if(typeof e!=`object`||!e||!ArrayBuffer.isView(e))return Promise.reject(TypeError(`view must be an ArrayBufferView`));let n=e.buffer,r=e.byteLength;if(r===0)return Promise.reject(TypeError(`view must have non-zero byteLength`));if(n.byteLength===0)return isDetachedBuffer(n)?Promise.reject(TypeError(`view's buffer has been detached`)):Promise.reject(TypeError(`view's buffer must have non-zero byteLength`));let i=t?.min??1;if(typeof i!=`number`||i<1||!Number.isInteger(i)||Number.isNaN(i))return Promise.reject(TypeError(`options.min must be a positive integer`));let a=e[Symbol.toStringTag];if(a!==void 0&&a!==`DataView`){if(i>e.length)return Promise.reject(RangeError(`options.min must be smaller or equal to view size`))}else if(i>r)return Promise.reject(RangeError(`options.min must be smaller or equal to view size`));if(this[z].stream===void 0)return Promise.reject(TypeError(`Reader has no associated stream`));let o=new BYOBReadIntoRequest;return readableStreamBYOBReaderRead(this,e,i,o),o.promise}releaseLock(){if(!X(this))throw TypeError(`Invalid this`);this[z].stream!==void 0&&readableStreamBYOBReaderRelease(this)}get closed(){return X(this)?this[z].close.promise:Promise.reject(TypeError(`Invalid this`))}cancel(e=void 0){return X(this)?this[z].stream===void 0?Promise.reject(TypeError(`Reader has no associated stream`)):readableStreamReaderGenericCancel(this,e):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`ReadableStreamBYOBReader`}},ReadableStreamBYOBRequest=class{[B]=`ReadableStreamBYOBRequest`;[z]={};constructor(e){if(e!==K)throw TypeError(`Illegal constructor`)}get view(){if(!Z(this))throw TypeError(`Invalid this`);return this[z].view}respond(e){if(!Z(this))throw TypeError(`Invalid this`);if(this[z].controller===void 0)throw TypeError(`BYOB request has been invalidated`);if(e=+e,!Number.isInteger(e)||e<0||!Number.isFinite(e))throw RangeError(`bytesWritten must be a non-negative integer`);let t=this[z].view;if(isDetachedBuffer(t.buffer))throw TypeError(`The BYOB request's buffer has been detached`);readableByteStreamControllerRespond(this[z].controller,e)}respondWithNewView(e){if(!Z(this))throw TypeError(`Invalid this`);if(this[z].controller===void 0)throw TypeError(`BYOB request has been invalidated`);if(typeof e!=`object`||!e||!ArrayBuffer.isView(e))throw TypeError(`view must be an ArrayBufferView`);if(isDetachedBuffer(e.buffer))throw TypeError(`The given view's buffer has been detached`);readableByteStreamControllerRespondWithNewView(this[z].controller,e)}get[Symbol.toStringTag](){return`ReadableStreamBYOBRequest`}},ReadableByteStreamController=class{[B]=`ReadableByteStreamController`;[z]={};constructor(e){if(e!==K)throw TypeError(`Illegal constructor`)}get byobRequest(){if(!Y(this))throw TypeError(`Invalid this`);return readableByteStreamControllerGetBYOBRequest(this)}get desiredSize(){if(!Y(this))throw TypeError(`Invalid this`);return readableByteStreamControllerGetDesiredSize(this)}close(){if(!Y(this))throw TypeError(`Invalid this`);if(this[z].closeRequested)throw TypeError(`Close already requested`);if(this[z].stream[z].state!==`readable`)throw TypeError(`Stream is not in a readable state`);readableByteStreamControllerClose(this)}enqueue(e){if(!Y(this))throw TypeError(`Invalid this`);if(typeof e!=`object`||!e||!ArrayBuffer.isView(e))throw TypeError(`chunk must be an ArrayBufferView`);if(e.byteLength===0)throw TypeError(`chunk length must be non-zero`);if(e.buffer.byteLength===0)throw TypeError(`chunk's buffer length must be non-zero`);if(this[z].closeRequested)throw TypeError(`Cannot enqueue after close has been requested`);if(this[z].stream[z].state!==`readable`)throw TypeError(`Stream is not in a readable state`);readableByteStreamControllerEnqueue(this,e)}error(e=void 0){if(!Y(this))throw TypeError(`Invalid this`);readableByteStreamControllerError(this,e)}[at](e){return readableByteStreamControllerCancelSteps(this,e)}[ot](e){readableByteStreamControllerPullSteps(this,e)}[st](){if(this[z].pendingPullIntos.length>0){let e=this[z].pendingPullIntos[0];e.readerType=`none`,this[z].pendingPullIntos=[e]}}get[Symbol.toStringTag](){return`ReadableByteStreamController`}};const Y=isBrandCheck(`ReadableByteStreamController`),X=isBrandCheck(`ReadableStreamBYOBReader`),Z=isBrandCheck(`ReadableStreamBYOBRequest`);function readableStreamHasBYOBReader(e){let{reader:t}=e[z];return t===void 0?!1:t[z]!==void 0&&t[B]===`ReadableStreamBYOBReader`}function readableStreamGetNumReadIntoRequests(e){return e[z].reader[z].readIntoRequests.length}function readableStreamAddReadIntoRequest(e,t){e[z].reader[z].readIntoRequests.push(t)}function readableStreamFulfillReadIntoRequest(e,t,n){let{reader:r}=e[z],i=r[z].readIntoRequests.shift();n?i[U](t):i[W](t)}function setupReadableStreamBYOBReader(e,t){if(isReadableStreamLocked(t))throw TypeError(`ReadableStream is locked`);if(!Y(t[z].controller))throw TypeError(`Cannot use a BYOB reader with a non-byte stream`);readableStreamReaderGenericInitialize(e,t),e[z].readIntoRequests=[]}function readableStreamBYOBReaderRead(e,t,n,r){let{stream:i}=e[z];i[z].disturbed=!0,i[z].state===`errored`?r[G](i[z].storedError):readableByteStreamControllerPullInto(i[z].controller,t,n,r)}function readableStreamBYOBReaderRelease(e){readableStreamReaderGenericRelease(e);let t=TypeError(`Reader was released`);for(let n=0;n<e[z].readIntoRequests.length;n++)e[z].readIntoRequests[n][G](t);e[z].readIntoRequests=[]}function readableByteStreamControllerClearAlgorithms(e){e[z].pullAlgorithm=void 0,e[z].cancelAlgorithm=void 0}function readableByteStreamControllerClearPendingPullIntos(e){readableByteStreamControllerInvalidateBYOBRequest(e),e[z].pendingPullIntos=[]}function readableByteStreamControllerInvalidateBYOBRequest(e){let t=e[z].byobRequest;t!=null&&(t[z].controller=void 0,t[z].view=null,e[z].byobRequest=null)}function readableByteStreamControllerError(e,t){let{stream:n}=e[z];n[z].state===`readable`&&(readableByteStreamControllerClearPendingPullIntos(e),resetQueue(e),readableByteStreamControllerClearAlgorithms(e),readableStreamError(n,t))}function readableByteStreamControllerGetDesiredSize(e){let t=e[z].stream[z].state;return t===`errored`?null:t===`closed`?0:e[z].highWaterMark-e[z].queueTotalSize}function readableByteStreamControllerShouldCallPull(e){let{stream:t}=e[z];if(t[z].state!==`readable`||e[z].closeRequested||!e[z].started)return!1;if(readableStreamHasDefaultReader(t)&&readableStreamGetNumReadRequests(t)>0||readableStreamHasBYOBReader(t)&&readableStreamGetNumReadIntoRequests(t)>0)return!0;let n=readableByteStreamControllerGetDesiredSize(e);return n!==null&&n>0}function readableByteStreamControllerCallPullIfNeeded(e){if(readableByteStreamControllerShouldCallPull(e)){if(e[z].pulling){e[z].pullAgain=!0;return}e[z].pulling=!0,e[z].pullAlgorithm(e).then(()=>{e[z].pulling=!1,e[z].pullAgain&&(e[z].pullAgain=!1,readableByteStreamControllerCallPullIfNeeded(e))},t=>readableByteStreamControllerError(e,t))}}function readableByteStreamControllerHandleQueueDrain(e){e[z].queueTotalSize===0&&e[z].closeRequested?(readableByteStreamControllerClearAlgorithms(e),readableStreamClose(e[z].stream)):readableByteStreamControllerCallPullIfNeeded(e)}function readableByteStreamControllerEnqueueChunkToQueue(e,t,n,r){e[z].queue.push({buffer:t,byteOffset:n,byteLength:r}),e[z].queueTotalSize+=r}function readableByteStreamControllerEnqueueClonedChunkToQueue(e,t,n,r){let i;try{i=t.slice(n,n+r)}catch(t){readableByteStreamControllerError(e,t);return}readableByteStreamControllerEnqueueChunkToQueue(e,i,0,r)}function readableByteStreamControllerEnqueueDetachedPullIntoToQueue(e,t){t.bytesFilled>0&&readableByteStreamControllerEnqueueClonedChunkToQueue(e,t.buffer,t.byteOffset,t.bytesFilled),readableByteStreamControllerShiftPendingPullInto(e)}function readableByteStreamControllerShiftPendingPullInto(e){return e[z].pendingPullIntos.shift()}function readableByteStreamControllerFillHeadPullIntoDescriptor(e,t,n){n.bytesFilled+=t}function readableByteStreamControllerConvertPullIntoDescriptor(e){let t=e.bytesFilled,n=e.elementSize,r=transferArrayBuffer(e.buffer);return e.buffer=r,new e.viewConstructor(r,e.byteOffset,t/n)}function readableByteStreamControllerCommitPullIntoDescriptor(e,t){let n=!1;e[z].state===`closed`&&(n=!0);let r=readableByteStreamControllerConvertPullIntoDescriptor(t);t.readerType===`default`?readableStreamFulfillReadRequest(e,r,n):readableStreamFulfillReadIntoRequest(e,r,n)}function readableByteStreamControllerFillPullIntoDescriptorFromQueue(e,t){let n=Math.min(e[z].queueTotalSize,t.byteLength-t.bytesFilled),r=t.bytesFilled+n,i=n,a=!1,o=r-r%t.elementSize;o>=t.minimumFill&&(i=o-t.bytesFilled,a=!0);let s=e[z].queue;for(;i>0;){let n=s[0],r=Math.min(i,n.byteLength),a=t.byteOffset+t.bytesFilled,o=new Uint8Array(t.buffer,a,r),c=new Uint8Array(n.buffer,n.byteOffset,r);o.set(c),n.byteLength===r?s.shift():(n.byteOffset+=r,n.byteLength-=r),e[z].queueTotalSize-=r,readableByteStreamControllerFillHeadPullIntoDescriptor(e,r,t),i-=r}return a}function readableByteStreamControllerFillReadRequestFromQueue(e,t){let n=e[z].queue.shift();e[z].queueTotalSize-=n.byteLength,readableByteStreamControllerHandleQueueDrain(e);let r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);t[W](r)}function readableByteStreamControllerProcessReadRequestsUsingQueue(e){let t=e[z].stream[z].reader;for(;t[z].readRequests.length!==0;){if(e[z].queueTotalSize===0)return;readableByteStreamControllerFillReadRequestFromQueue(e,t[z].readRequests.shift())}}function readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e){for(;e[z].pendingPullIntos.length!==0;){if(e[z].queueTotalSize===0)return;let t=e[z].pendingPullIntos[0];readableByteStreamControllerFillPullIntoDescriptorFromQueue(e,t)&&(readableByteStreamControllerShiftPendingPullInto(e),readableByteStreamControllerCommitPullIntoDescriptor(e[z].stream,t))}}function readableByteStreamControllerGetBYOBRequest(e){if(e[z].byobRequest===null&&e[z].pendingPullIntos.length!==0){let t=e[z].pendingPullIntos[0],n=new Uint8Array(t.buffer,t.byteOffset+t.bytesFilled,t.byteLength-t.bytesFilled),r=new ReadableStreamBYOBRequest(K);r[z]={controller:e,view:n},e[z].byobRequest=r}return e[z].byobRequest}function readableByteStreamControllerEnqueue(e,t){let{stream:n}=e[z];if(e[z].closeRequested||n[z].state!==`readable`)return;let r=t.buffer,i=t.byteLength,a=t.byteOffset;if(isDetachedBuffer(r))throw TypeError(`chunk's buffer is detached`);let o=transferArrayBuffer(r);if(e[z].pendingPullIntos.length!==0){let t=e[z].pendingPullIntos[0];if(isDetachedBuffer(t.buffer))throw TypeError(`BYOB request's buffer has been detached`);readableByteStreamControllerInvalidateBYOBRequest(e),t.buffer=transferArrayBuffer(t.buffer),t.readerType===`none`&&readableByteStreamControllerEnqueueDetachedPullIntoToQueue(e,t)}readableStreamHasDefaultReader(n)?(readableByteStreamControllerProcessReadRequestsUsingQueue(e),readableStreamGetNumReadRequests(n)===0?readableByteStreamControllerEnqueueChunkToQueue(e,o,a,i):(e[z].pendingPullIntos.length!==0&&readableByteStreamControllerShiftPendingPullInto(e),readableStreamFulfillReadRequest(n,new Uint8Array(o,a,i),!1))):readableStreamHasBYOBReader(n)?(readableByteStreamControllerEnqueueChunkToQueue(e,o,a,i),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e)):readableByteStreamControllerEnqueueChunkToQueue(e,o,a,i),readableByteStreamControllerCallPullIfNeeded(e)}function readableByteStreamControllerClose(e){let{stream:t}=e[z];if(!(e[z].closeRequested||t[z].state!==`readable`)){if(e[z].queueTotalSize>0){e[z].closeRequested=!0;return}if(e[z].pendingPullIntos.length!==0){let t=e[z].pendingPullIntos[0];if(t.bytesFilled%t.elementSize!==0){let t=TypeError(`Insufficient bytes to fill elements in the given buffer`);throw readableByteStreamControllerError(e,t),t}}readableByteStreamControllerClearAlgorithms(e),readableStreamClose(t)}}function readableByteStreamControllerPullInto(e,t,n,r){let i=e[z].stream,a=t[Symbol.toStringTag],o,s;if(a===void 0||a===`DataView`)o=DataView,s=1;else{let e=typedArrayConstructorByTag(a);if(!e){r[G](TypeError(`Unsupported typed array: ${a}`));return}o=e,s=elementSizeByTag(a)}let c=t.buffer,l=t.byteLength,u=t.byteOffset,d=n*s,f;try{f=transferArrayBuffer(c)}catch(e){r[G](e);return}let p={buffer:f,bufferByteLength:f.byteLength,byteOffset:u,byteLength:l,bytesFilled:0,minimumFill:d,elementSize:s,viewConstructor:o,readerType:`byob`};if(e[z].pendingPullIntos.length!==0){e[z].pendingPullIntos.push(p),readableStreamAddReadIntoRequest(i,r);return}if(i[z].state===`closed`){let e=new o(p.buffer,p.byteOffset,0);r[U](e);return}if(e[z].queueTotalSize>0){if(readableByteStreamControllerFillPullIntoDescriptorFromQueue(e,p)){let t=readableByteStreamControllerConvertPullIntoDescriptor(p);readableByteStreamControllerHandleQueueDrain(e),r[W](t);return}if(e[z].closeRequested){let t=TypeError(`Insufficient bytes to fill elements in the given buffer`);readableByteStreamControllerError(e,t),r[G](t);return}}e[z].pendingPullIntos.push(p),readableStreamAddReadIntoRequest(i,r),readableByteStreamControllerCallPullIfNeeded(e)}function readableByteStreamControllerRespond(e,t){let n=e[z].pendingPullIntos[0];if(e[z].stream[z].state===`closed`){if(t!==0)throw TypeError(`bytesWritten must be 0 when calling respond() on a closed stream`)}else{if(t===0)throw TypeError(`bytesWritten must be greater than 0 when calling respond() on a readable stream`);if(n.bytesFilled+t>n.byteLength)throw RangeError(`bytesWritten out of range`)}n.buffer=transferArrayBuffer(n.buffer),readableByteStreamControllerRespondInternal(e,t)}function readableByteStreamControllerRespondWithNewView(e,t){let n=e[z].pendingPullIntos[0],r=e[z].stream[z].state,i=t.byteLength,a=t.byteOffset,o=t.buffer;if(r===`closed`){if(i!==0)throw TypeError(`view's length must be 0 when calling respondWithNewView() on a closed stream`)}else if(i===0)throw TypeError(`view's length must be greater than 0 when calling respondWithNewView() on a readable stream`);if(n.byteOffset+n.bytesFilled!==a)throw RangeError(`The region specified by view does not match byobRequest`);if(n.bufferByteLength!==o.byteLength)throw RangeError(`The buffer of view has different capacity than byobRequest`);if(n.bytesFilled+i>n.byteLength)throw RangeError(`The region specified by view is larger than byobRequest`);n.buffer=transferArrayBuffer(o),readableByteStreamControllerRespondInternal(e,i)}function readableByteStreamControllerRespondInternal(e,t){let n=e[z].pendingPullIntos[0];readableByteStreamControllerInvalidateBYOBRequest(e),e[z].stream[z].state===`closed`?readableByteStreamControllerRespondInClosedState(e,n):readableByteStreamControllerRespondInReadableState(e,t,n),readableByteStreamControllerCallPullIfNeeded(e)}function readableByteStreamControllerRespondInClosedState(e,t){t.readerType===`none`&&readableByteStreamControllerShiftPendingPullInto(e);let n=e[z].stream;if(readableStreamHasBYOBReader(n))for(;readableStreamGetNumReadIntoRequests(n)>0;)readableByteStreamControllerCommitPullIntoDescriptor(n,readableByteStreamControllerShiftPendingPullInto(e))}function readableByteStreamControllerRespondInReadableState(e,t,n){if(readableByteStreamControllerFillHeadPullIntoDescriptor(e,t,n),n.readerType===`none`){readableByteStreamControllerEnqueueDetachedPullIntoToQueue(e,n),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e);return}if(n.bytesFilled<n.minimumFill)return;readableByteStreamControllerShiftPendingPullInto(e);let r=n.bytesFilled%n.elementSize;if(r>0){let t=n.byteOffset+n.bytesFilled;readableByteStreamControllerEnqueueClonedChunkToQueue(e,n.buffer,t-r,r)}n.bytesFilled-=r,readableByteStreamControllerCommitPullIntoDescriptor(e[z].stream,n),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e)}function readableByteStreamControllerCancelSteps(e,t){readableByteStreamControllerClearPendingPullIntos(e),resetQueue(e);let n=e[z].cancelAlgorithm(t);return readableByteStreamControllerClearAlgorithms(e),n}function readableByteStreamControllerPullSteps(e,t){let n=e[z].stream;if(e[z].queueTotalSize>0){readableByteStreamControllerFillReadRequestFromQueue(e,t);return}let r=e[z].autoAllocateChunkSize;if(r!==void 0){let n;try{n=new ArrayBuffer(r)}catch(e){t[G](e);return}let i={buffer:n,bufferByteLength:r,byteOffset:0,byteLength:r,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:`default`};e[z].pendingPullIntos.push(i)}readableStreamAddReadRequest(n,t),readableByteStreamControllerCallPullIfNeeded(e)}function setupReadableByteStreamController(e,t,n,r,i,a,o){t[z]={cancelAlgorithm:i,closeRequested:!1,highWaterMark:a,pullAgain:!1,pullAlgorithm:r,pulling:!1,queue:[],queueTotalSize:0,started:!1,stream:e,byobRequest:null,pendingPullIntos:[],autoAllocateChunkSize:o},e[z].controller=t;let s=n();new Promise(e=>e(s)).then(()=>{t[z].started=!0,readableByteStreamControllerCallPullIfNeeded(t)},e=>readableByteStreamControllerError(t,e))}function setupReadableByteStreamControllerFromSource(e,t,n){let r=new ReadableByteStreamController(K),i=t?.start,a=t?.pull,o=t?.cancel,s=t?.autoAllocateChunkSize;if(s!==void 0&&(s===0||!Number.isInteger(s)||s<0))throw TypeError(`autoAllocateChunkSize must be a positive integer`);setupReadableByteStreamController(e,r,i?i.bind(t,r):nonOpStart,a?createPromiseCallback(`source.pull`,a,t):nonOpPull,o?createPromiseCallback(`source.cancel`,o,t):nonOpCancel,n,s)}function readableByteStreamTee(e){let t=new ReadableStreamDefaultReader(e),n=!1,r=!1,i=!1,a,o,s=Promise.withResolvers(),c,l,u,d;function pullAlgorithm(){return n?Promise.resolve():(n=!0,t.read().then(e=>{if(n=!1,e.done){r||u.close(),i||d.close();return}let t=e.value,a=new Uint8Array(t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength));r||u.enqueue(a),i||d.enqueue(new Uint8Array(a))},()=>{}),Promise.resolve())}return c=new ReadableStream$1({type:`bytes`,pull:pullAlgorithm,cancel(t){if(r=!0,a=t,i){let t=readableStreamCancel(e,[a,o]);return s.resolve(),t}return s.promise}}),l=new ReadableStream$1({type:`bytes`,pull:pullAlgorithm,cancel(t){if(i=!0,o=t,r){let t=readableStreamCancel(e,[a,o]);return s.resolve(),t}return s.promise}}),u=c[z].controller,d=l[z].controller,t.closed.catch(e=>{u.error(e),d.error(e),(!r||!i)&&s.resolve()}),[c,l]}const dt=Symbol(`kSkipThrow`);var TransformStream=class{[B]=`TransformStream`;[z];constructor(e={},t={},n={}){if(e!=null&&typeof e!=`object`)throw TypeError(`transformer must be an object`);if(t!=null&&typeof t!=`object`)throw TypeError(`writableStrategy must be an object`);if(n!=null&&typeof n!=`object`)throw TypeError(`readableStrategy must be an object`);let r=e?.readableType,i=e?.writableType,a=e?.start;if(r!==void 0)throw RangeError(`Invalid readableType: ${r}`);if(i!==void 0)throw RangeError(`Invalid writableType: ${i}`);let o=extractHighWaterMark(n?.highWaterMark,0),s=extractSizeAlgorithm(n?.size),c=extractHighWaterMark(t?.highWaterMark,1),l=extractSizeAlgorithm(t?.size),u=Promise.withResolvers();initializeTransformStream(this,u,c,l,o,s),setupTransformStreamDefaultControllerFromTransformer(this,e),a===void 0?u.resolve():u.resolve(a.call(e,this[z].controller))}get readable(){if(!ft(this))throw TypeError(`Invalid this`);return this[z].readable}get writable(){if(!ft(this))throw TypeError(`Invalid this`);return this[z].writable}get[Symbol.toStringTag](){return`TransformStream`}},TransformStreamDefaultController=class{[B]=`TransformStreamDefaultController`;[z];constructor(e){if(e!==dt)throw TypeError(`Illegal constructor`)}get desiredSize(){if(!Q(this))throw TypeError(`Invalid this`);let{stream:e}=this[z],{readable:t}=e[z],n=t[z].controller;return readableStreamDefaultControllerGetDesiredSize(n)}enqueue(e){if(!Q(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerEnqueue(this,e)}error(e){if(!Q(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerError(this,e)}terminate(){if(!Q(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerTerminate(this)}get[Symbol.toStringTag](){return`TransformStreamDefaultController`}};const ft=isBrandCheck(`TransformStream`),Q=isBrandCheck(`TransformStreamDefaultController`);async function defaultTransformAlgorithm(e,t){transformStreamDefaultControllerEnqueue(t,e)}function initializeTransformStream(e,t,n,r,i,a){let startAlgorithm=()=>t.promise,o=createWritableStream(startAlgorithm,t=>transformStreamDefaultSinkWriteAlgorithm(e,t),()=>transformStreamDefaultSinkCloseAlgorithm(e),t=>transformStreamDefaultSinkAbortAlgorithm(e,t),n,r);e[z]={readable:createReadableStream(startAlgorithm,()=>transformStreamDefaultSourcePullAlgorithm(e),t=>transformStreamDefaultSourceCancelAlgorithm(e,t),i,a),writable:o,controller:void 0,backpressure:void 0,backpressureChange:{promise:void 0,resolve:void 0,reject:void 0}},transformStreamSetBackpressure(e,!0)}function transformStreamError(e,t){let{readable:n}=e[z];readableStreamDefaultControllerError(n[z].controller,t),transformStreamErrorWritableAndUnblockWrite(e,t)}function transformStreamErrorWritableAndUnblockWrite(e,t){let{controller:n,writable:r}=e[z];transformStreamDefaultControllerClearAlgorithms(n),writableStreamDefaultControllerErrorIfNeeded(r[z].controller,t),transformStreamUnblockWrite(e)}function transformStreamUnblockWrite(e){e[z].backpressure&&transformStreamSetBackpressure(e,!1)}function transformStreamSetBackpressure(e,t){e[z].backpressureChange.promise!==void 0&&e[z].backpressureChange.resolve?.(),e[z].backpressureChange=Promise.withResolvers(),e[z].backpressure=t}function setupTransformStreamDefaultController(e,t,n,r,i){t[z]={stream:e,transformAlgorithm:n,flushAlgorithm:r,cancelAlgorithm:i,finishPromise:void 0},e[z].controller=t}function setupTransformStreamDefaultControllerFromTransformer(e,t){let n=new TransformStreamDefaultController(dt),r=t?.transform,i=t?.flush,a=t?.cancel;setupTransformStreamDefaultController(e,n,r?createPromiseCallback(`transformer.transform`,r,t):defaultTransformAlgorithm,i?createPromiseCallback(`transformer.flush`,i,t):nonOpFlush,a?createPromiseCallback(`transformer.cancel`,a,t):nonOpCancel)}function transformStreamDefaultControllerClearAlgorithms(e){e[z].transformAlgorithm=void 0,e[z].flushAlgorithm=void 0,e[z].cancelAlgorithm=void 0}function transformStreamDefaultControllerEnqueue(e,t){let{stream:n}=e[z],{readable:r}=n[z],i=r[z].controller;if(!readableStreamDefaultControllerCanCloseOrEnqueue(i))throw TypeError(`Unable to enqueue`);try{readableStreamDefaultControllerEnqueue(i,t)}catch(e){throw transformStreamErrorWritableAndUnblockWrite(n,e),r[z].storedError}readableStreamDefaultControllerHasBackpressure(i)!==n[z].backpressure&&transformStreamSetBackpressure(n,!0)}function transformStreamDefaultControllerError(e,t){transformStreamError(e[z].stream,t)}async function transformStreamDefaultControllerPerformTransform(e,t){try{let n=e[z].transformAlgorithm;return n===void 0?void 0:await n(t,e)}catch(t){throw transformStreamError(e[z].stream,t),t}}function transformStreamDefaultControllerTerminate(e){let{stream:t}=e[z],{readable:n}=t[z];readableStreamDefaultControllerClose(n[z].controller),transformStreamErrorWritableAndUnblockWrite(t,TypeError(`TransformStream has been terminated`))}function transformStreamDefaultSinkWriteAlgorithm(e,t){let{controller:n}=e[z];return e[z].backpressure?e[z].backpressureChange.promise.then(()=>{let{writable:r}=e[z];if(r[z].state===`erroring`)throw r[z].storedError;return transformStreamDefaultControllerPerformTransform(n,t)}):transformStreamDefaultControllerPerformTransform(n,t)}async function transformStreamDefaultSinkAbortAlgorithm(e,t){let{controller:n,readable:r}=e[z];if(n[z].finishPromise!==void 0)return n[z].finishPromise;let{promise:i,resolve:a,reject:o}=Promise.withResolvers();n[z].finishPromise=i;let s=n[z].cancelAlgorithm(t);return transformStreamDefaultControllerClearAlgorithms(n),s.then(()=>{r[z].state===`errored`?o(r[z].storedError):(readableStreamDefaultControllerError(r[z].controller,t),a())},e=>{readableStreamDefaultControllerError(r[z].controller,e),o(e)}),n[z].finishPromise}function transformStreamDefaultSinkCloseAlgorithm(e){let{readable:t,controller:n}=e[z];if(n[z].finishPromise!==void 0)return n[z].finishPromise;let{promise:r,resolve:i,reject:a}=Promise.withResolvers();n[z].finishPromise=r;let o=n[z].flushAlgorithm(n);return transformStreamDefaultControllerClearAlgorithms(n),o.then(()=>{t[z].state===`errored`?a(t[z].storedError):(readableStreamDefaultControllerClose(t[z].controller),i())},e=>{readableStreamDefaultControllerError(t[z].controller,e),a(e)}),n[z].finishPromise}function transformStreamDefaultSourcePullAlgorithm(e){return transformStreamSetBackpressure(e,!1),e[z].backpressureChange.promise}function transformStreamDefaultSourceCancelAlgorithm(e,t){let{controller:n,writable:r}=e[z];if(n[z].finishPromise!==void 0)return n[z].finishPromise;let{promise:i,resolve:a,reject:o}=Promise.withResolvers();n[z].finishPromise=i;let s=n[z].cancelAlgorithm(t);return transformStreamDefaultControllerClearAlgorithms(n),s.then(()=>{r[z].state===`errored`?o(r[z].storedError):(writableStreamDefaultControllerErrorIfNeeded(r[z].controller,t),transformStreamUnblockWrite(e),a())},t=>{writableStreamDefaultControllerErrorIfNeeded(r[z].controller,t),transformStreamUnblockWrite(e),o(t)}),n[z].finishPromise}const pt=Object.defineProperty(e=>e.byteLength,`name`,{value:`size`}),mt=Object.defineProperty(()=>1,`name`,{value:`size`});var ByteLengthQueuingStrategy=class{#e;constructor(e){if(typeof e!=`object`||!e)throw TypeError(`init must be an object`);if(e.highWaterMark===void 0)throw TypeError(`init.highWaterMark is required`);this.#e=+e.highWaterMark}get highWaterMark(){return this.#e}get size(){return pt}get[Symbol.toStringTag](){return`ByteLengthQueuingStrategy`}},CountQueuingStrategy=class{#e;constructor(e){if(typeof e!=`object`||!e)throw TypeError(`init must be an object`);if(e.highWaterMark===void 0)throw TypeError(`init.highWaterMark is required`);this.#e=+e.highWaterMark}get highWaterMark(){return this.#e}get size(){return mt}get[Symbol.toStringTag](){return`CountQueuingStrategy`}},TextEncoderStream=class{#e=null;#t=new TextEncoder;#n;constructor(){this.#n=new TransformStream({transform:(e,t)=>{if(e=String(e),e===``)return;this.#e!==null&&(e=this.#e+e);let n=e.charCodeAt(e.length-1);55296<=n&&n<=56319?(this.#e=e.slice(-1),e=e.slice(0,-1)):this.#e=null,e&&t.enqueue(this.#t.encode(e))},flush:e=>{this.#e!==null&&e.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 ht=hasStreamingSupport();function incompleteUtf8Tail(e){let t=e.length;if(t===0)return 0;for(let n=1;n<=Math.min(3,t);n++){let r=e[t-n];if(!(r&128))return 0;if((r&192)!=128){let e;if((r&224)==192)e=2;else if((r&240)==224)e=3;else if((r&248)==240)e=4;else return 0;return n<e?n:0}}return 0}var TextDecoderStream=class{#e;#t;constructor(e,t){if(this.#e=new TextDecoder(e,t),ht)this.#t=new TransformStream({transform:(e,t)=>{let n=toUint8Array(e),r=this.#e.decode(n,{stream:!0});r&&t.enqueue(r)},flush:e=>{let t=this.#e.decode();t&&e.enqueue(t)},cancel:()=>{this.#e.decode()}});else{let e=new Uint8Array;this.#t=new TransformStream({transform:(t,n)=>{let r=toUint8Array(t),i;e.length>0?(i=new Uint8Array(e.length+r.length),i.set(e,0),i.set(r,e.length)):i=r;let a=incompleteUtf8Tail(i),o;if(a>0?(o=i.slice(0,i.length-a),e=i.slice(i.length-a)):(o=i,e=new Uint8Array),o.length>0){let e=this.#e.decode(o);e&&n.enqueue(e)}},flush:t=>{if(e.length>0){let n=this.#e.decode(e);n&&t.enqueue(n),e=new Uint8Array}},cancel:()=>{e=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(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw TypeError(`chunk must be a BufferSource`)}function isNativeStreamUsable$3(e,t){try{return typeof e==`function`?typeof e.prototype[t]==`function`:!1}catch{return!1}}__name(isNativeStreamUsable$3,`isNativeStreamUsable`);const gt=isNativeStreamUsable$3(globalThis.ReadableStream,`getReader`)?globalThis.ReadableStream:ReadableStream$1,_t=isNativeStreamUsable$3(globalThis.WritableStream,`getWriter`)?globalThis.WritableStream:WritableStream,vt=isNativeStreamUsable$3(globalThis.TransformStream,`readable`)?globalThis.TransformStream:TransformStream,yt=typeof globalThis.ByteLengthQueuingStrategy==`function`?globalThis.ByteLengthQueuingStrategy:ByteLengthQueuingStrategy,bt=typeof globalThis.CountQueuingStrategy==`function`?globalThis.CountQueuingStrategy:CountQueuingStrategy,xt=typeof globalThis.TextEncoderStream==`function`?globalThis.TextEncoderStream:TextEncoderStream,St=typeof globalThis.TextDecoderStream==`function`?globalThis.TextDecoderStream:TextDecoderStream;globalThis.ByteLengthQueuingStrategy===void 0&&(globalThis.ByteLengthQueuingStrategy=yt),globalThis.CountQueuingStrategy===void 0&&(globalThis.CountQueuingStrategy=bt);function isNativeStreamUsable$2(e,t){try{return typeof e==`function`?typeof e.prototype[t]==`function`:!1}catch{return!1}}__name(isNativeStreamUsable$2,`isNativeStreamUsable`),isNativeStreamUsable$2(globalThis.ReadableStream,`getReader`)||(globalThis.ReadableStream=gt),globalThis.ReadableStreamBYOBReader===void 0&&(globalThis.ReadableStreamBYOBReader=ReadableStreamBYOBReader),globalThis.ReadableStreamBYOBRequest===void 0&&(globalThis.ReadableStreamBYOBRequest=ReadableStreamBYOBRequest),globalThis.ReadableByteStreamController===void 0&&(globalThis.ReadableByteStreamController=ReadableByteStreamController),globalThis.ReadableStreamDefaultController===void 0&&(globalThis.ReadableStreamDefaultController=ReadableStreamDefaultController),globalThis.ReadableStreamDefaultReader===void 0&&(globalThis.ReadableStreamDefaultReader=ReadableStreamDefaultReader),globalThis.TextEncoderStream===void 0&&(globalThis.TextEncoderStream=xt),globalThis.TextDecoderStream===void 0&&(globalThis.TextDecoderStream=St);function isNativeStreamUsable$1(e,t){try{return typeof e==`function`?typeof e.prototype[t]==`function`:!1}catch{return!1}}__name(isNativeStreamUsable$1,`isNativeStreamUsable`),isNativeStreamUsable$1(globalThis.TransformStream,`readable`)||(globalThis.TransformStream=vt);function isNativeStreamUsable(e,t){try{return typeof e==`function`?typeof e.prototype[t]==`function`:!1}catch{return!1}}isNativeStreamUsable(globalThis.WritableStream,`getWriter`)||(globalThis.WritableStream=_t);async function runLoopback(e){let t=new RTCPeerConnection({iceServers:[{urls:`stun:stun.l.google.com:19302`}]}),n=new RTCPeerConnection({iceServers:[{urls:`stun:stun.l.google.com:19302`}]});t.onsignalingstatechange=()=>e(`A`,`signalingState → ${t.signalingState}`),n.onsignalingstatechange=()=>e(`B`,`signalingState → ${n.signalingState}`),t.oniceconnectionstatechange=()=>e(`A`,`iceConnectionState → ${t.iceConnectionState}`),n.oniceconnectionstatechange=()=>e(`B`,`iceConnectionState → ${n.iceConnectionState}`),t.onconnectionstatechange=()=>e(`A`,`connectionState → ${t.connectionState}`),n.onconnectionstatechange=()=>e(`B`,`connectionState → ${n.connectionState}`),t.onicecandidate=t=>{t.candidate&&(e(`A→B`,`ICE ${t.candidate.type??`?`} ${t.candidate.address??``}:${t.candidate.port??``}`),n.addIceCandidate(t.candidate.toJSON()))},n.onicecandidate=n=>{n.candidate&&(e(`B→A`,`ICE ${n.candidate.type??`?`} ${n.candidate.address??``}:${n.candidate.port??``}`),t.addIceCandidate(n.candidate.toJSON()))};let r=t.createDataChannel(`chat`),i=new Promise(t=>{let i=0;r.onopen=()=>{e(`A`,`data-channel "chat" open — sending greeting`),r.send(`hello from peer A`),r.send(new Uint8Array([1,2,3,4]).buffer)},r.onmessage=n=>{if(typeof n.data==`string`)e(`A`,`received: ${n.data}`);else{let t=new Uint8Array(n.data);e(`A`,`received ArrayBuffer(${t.length}): [${Array.from(t).join(`, `)}]`)}i++,i>=2&&t()},n.ondatachannel=t=>{let n=t.channel;e(`B`,`ondatachannel "${n.label}"`),n.onmessage=t=>{if(typeof t.data==`string`)e(`B`,`received: ${t.data} — echoing back`),n.send(`echo: ${t.data}`);else{let r=new Uint8Array(t.data),i=new Uint8Array(r).reverse();e(`B`,`received ArrayBuffer(${r.length}) — echoing reversed`),n.send(i.buffer)}}}});e(`A`,`createOffer`);let a=await t.createOffer();await t.setLocalDescription(a),await n.setRemoteDescription(a),e(`B`,`createAnswer`);let o=await n.createAnswer();await n.setLocalDescription(o),await t.setRemoteDescription(o),await Promise.race([i,new Promise((e,t)=>setTimeout(()=>t(Error(`Timeout waiting for echo`)),15e3))]),e(`main`,`demo complete — closing peer connections`),t.close(),n.close()}function log(e,t){typeof print==`function`?print(`[${e}] ${t}`):g.log(`[${e}] ${t}`)}const $=e.MainLoop.new(null,!1);runLoopback(log).then(()=>{e.timeout_add(e.PRIORITY_DEFAULT,500,()=>($.quit(),e.SOURCE_REMOVE))}).catch(t=>{log(`ERROR`,t?.message??String(t)),e.timeout_add(e.PRIORITY_DEFAULT,500,()=>($.quit(),e.SOURCE_REMOVE))}),$.run();
10
+ Verify with: gst-inspect-1.0 nicesrc`)}function throwNotSupported(e){throw new E(e,`NotSupportedError`)}const we=Symbol(`type`),Te=Symbol(`bubbles`),D=Symbol(`cancelable`),Ee=Symbol(`composed`),O=Symbol(`target`),k=Symbol(`currentTarget`),A=Symbol(`eventPhase`),j=Symbol(`defaultPrevented`),De=Symbol(`isTrusted`),Oe=Symbol(`timeStamp`),M=Symbol(`stop`),ke=Symbol(`immediateStop`),N=Symbol(`dispatching`),P=Symbol(`inPassiveListener`);var Event$1=class{static{__name(this,`Event`)}[we];[Te];[D];[Ee];[O]=null;[k]=null;[A]=0;[j]=!1;[De]=!1;[Oe];[M]=!1;[ke]=!1;[N]=!1;[P]=!1;get type(){return this[we]}get bubbles(){return this[Te]}get cancelable(){return this[D]}get composed(){return this[Ee]}get target(){return this[O]}get currentTarget(){return this[k]}get eventPhase(){return this[A]}get defaultPrevented(){return this[j]}get timeStamp(){return this[Oe]}get cancelBubble(){return this[M]}set cancelBubble(e){e&&this.stopPropagation()}get returnValue(){return!this[j]}set returnValue(e){e||this.preventDefault()}get srcElement(){return this[O]}static NONE=0;static CAPTURING_PHASE=1;static AT_TARGET=2;static BUBBLING_PHASE=3;get[Symbol.toStringTag](){return`Event`}constructor(e,t){this[we]=e,this[Te]=t?.bubbles??!1,this[D]=t?.cancelable??!1,this[Ee]=t?.composed??!1,this[Oe]=Date.now(),Object.defineProperty(this,"isTrusted",{get:()=>this[De],enumerable:!0,configurable:!1})}composedPath(){return this[k]?[this[k]]:[]}preventDefault(){this[D]&&!this[P]&&(this[j]=!0)}stopPropagation(){this[M]=!0}stopImmediatePropagation(){this[M]=!0,this[ke]=!0}},CustomEvent=class extends Event$1{detail;constructor(e,t){super(e,t),this.detail=t?.detail}},MessageEvent$1=class extends Event$1{static{__name(this,`MessageEvent`)}data;origin;lastEventId;source;ports;constructor(e,t){super(e,t),this.data=t?.data??null,this.origin=t?.origin??``,this.lastEventId=t?.lastEventId??``,this.source=t?.source??null,this.ports=t?.ports??[]}get[Symbol.toStringTag](){return`MessageEvent`}},ErrorEvent=class extends Event$1{message;filename;lineno;colno;error;constructor(e,t){super(e,t),this.message=t?.message??``,this.filename=t?.filename??``,this.lineno=t?.lineno??0,this.colno=t?.colno??0,this.error=t?.error??null}get[Symbol.toStringTag](){return`ErrorEvent`}},CloseEvent=class extends Event$1{code;reason;wasClean;constructor(e,t){super(e,t),this.code=t?.code??0,this.reason=t?.reason??``,this.wasClean=t?.wasClean??!1}get[Symbol.toStringTag](){return`CloseEvent`}},ProgressEvent=class extends Event$1{lengthComputable;loaded;total;constructor(e,t){super(e,t),this.lengthComputable=t?.lengthComputable??!1,this.loaded=t?.loaded??0,this.total=t?.total??0}get[Symbol.toStringTag](){return`ProgressEvent`}},EventTarget$1=class{static{__name(this,`EventTarget`)}_listeners=new Map;get[Symbol.toStringTag](){return`EventTarget`}addEventListener(e,t,n){if(t===null)return;let r=typeof n==`boolean`?n:n?.capture??!1,i=typeof n==`object`?n?.once??!1:!1,a=typeof n==`object`?n?.passive??!1:!1,o=this._listeners.get(e);o||(o=[],this._listeners.set(e,o));for(let e of o)if(e.listener===t&&e.capture===r)return;let s={listener:t,capture:r,once:i,passive:a,removed:!1};o.push(s),typeof n==`object`&&n?.signal&&n.signal.addEventListener(`abort`,()=>{this.removeEventListener(e,t,{capture:r})},{once:!0})}removeEventListener(e,t,n){if(t===null)return;let r=typeof n==`boolean`?n:n?.capture??!1,i=this._listeners.get(e);if(!i)return;let a=i.findIndex(e=>e.listener===t&&e.capture===r);a!==-1&&(i[a].removed=!0,i.splice(a,1),i.length===0&&this._listeners.delete(e))}dispatchEvent(e){let t=e;if(t[N])throw new E(`The event is already being dispatched.`,`InvalidStateError`);t[N]=!0,t[O]=this,t[k]=this,t[A]=Event$1.AT_TARGET;let n=this._listeners.get(e.type);if(n){let r=[...n];for(let n of r)if(!n.removed){if(t[ke]||t[M])break;n.once&&this.removeEventListener(e.type,n.listener,{capture:n.capture});try{n.passive&&(t[P]=!0),typeof n.listener==`function`?n.listener.call(this,e):typeof n.listener.handleEvent==`function`&&n.listener.handleEvent.call(n.listener,e)}catch(e){g.error(e)}finally{t[P]=!1}}}return t[A]=Event$1.NONE,t[k]=null,t[N]=!1,!e.defaultPrevented}};for(let[e,t]of[[`NONE`,0],[`CAPTURING_PHASE`,1],[`AT_TARGET`,2],[`BUBBLING_PHASE`,3]])Object.defineProperty(Event$1.prototype,e,{value:t,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(Event$1,e,{value:t,writable:!1,enumerable:!0,configurable:!1});globalThis.Event===void 0&&Object.defineProperty(globalThis,"Event",{value:Event$1,writable:!0,configurable:!0}),globalThis.EventTarget===void 0&&Object.defineProperty(globalThis,"EventTarget",{value:EventTarget$1,writable:!0,configurable:!0});var F=class MediaStreamTrack extends EventTarget{id;kind;label;_enabled=!0;_muted;_ended=!1;_contentHint=``;_onended=null;_onmute=null;_onunmute=null;_gstSource=null;_gstPipeline=null;_gstTee=null;_teeMultiplexer=null;_enableCallback=null;constructor(t){super(),this.id=t.id??e.uuid_string_random(),this.kind=t.kind,this.label=t.label??``,this._muted=t.muted??!1,t._gst&&(this._gstSource=t._gst.source,this._gstPipeline=t._gst.pipeline)}get enabled(){return this._enabled}set enabled(e){let t=!!e;this._enabled!==t&&(this._enabled=t,this._enableCallback?.(t))}get muted(){return this._muted}get readyState(){return this._ended?`ended`:`live`}get contentHint(){return this._contentHint}set contentHint(e){if(this.kind===`audio`){if(e!==``&&e!==`speech`&&e!==`speech-recognition`&&e!==`music`)return}else if(e!==``&&e!==`motion`&&e!==`detail`&&e!==`text`)return;this._contentHint=e}get onended(){return this._onended}set onended(e){this._onended=e}get onmute(){return this._onmute}set onmute(e){this._onmute=e}get onunmute(){return this._onunmute}set onunmute(e){this._onunmute=e}clone(){let e=new MediaStreamTrack({kind:this.kind,label:this.label,muted:this._muted});return e._enabled=this._enabled,e}stop(){if(this._ended)return;if(this._ended=!0,this._gstSource||this._gstPipeline){try{this._gstPipeline?.set_state(n.State.NULL)}catch{}try{this._gstSource?.set_state(n.State.NULL)}catch{}this._gstSource=null,this._gstPipeline=null}let e=new Event(`ended`);this._onended?.call(this,e),this.dispatchEvent(e)}getCapabilities(){return{}}getConstraints(){return{}}getSettings(){return{}}applyConstraints(e){return Promise.reject(new DOMException(`applyConstraints is not supported`,`NotSupportedError`))}_setMuted(e){if(this._muted===e)return;this._muted=e;let t=new Event(e?`mute`:`unmute`);e?this._onmute?.call(this,t):this._onunmute?.call(this,t),this.dispatchEvent(t)}_setEnableCallback(e){this._enableCallback=e}},Ae=class MediaStream extends EventTarget{id;_tracks=new Map;_onaddtrack=null;_onremovetrack=null;constructor(t){if(super(),this.id=e.uuid_string_random(),t instanceof MediaStream)for(let e of t.getTracks())this._tracks.set(e.id,e.clone());else if(Array.isArray(t))for(let e of t)this._tracks.set(e.id,e)}get active(){for(let e of this._tracks.values())if(e.readyState===`live`)return!0;return!1}get onaddtrack(){return this._onaddtrack}set onaddtrack(e){this._onaddtrack=e}get onremovetrack(){return this._onremovetrack}set onremovetrack(e){this._onremovetrack=e}getTracks(){return[...this._tracks.values()]}getAudioTracks(){return this.getTracks().filter(e=>e.kind===`audio`)}getVideoTracks(){return this.getTracks().filter(e=>e.kind===`video`)}getTrackById(e){return this._tracks.get(e)??null}addTrack(e){if(this._tracks.has(e.id))return;this._tracks.set(e.id,e);let t=new MediaStreamTrackEvent(`addtrack`,{track:e});this._onaddtrack?.call(this,t),this.dispatchEvent(t)}removeTrack(e){if(!this._tracks.delete(e.id))return;let t=new MediaStreamTrackEvent(`removetrack`,{track:e});this._onremovetrack?.call(this,t),this.dispatchEvent(t)}clone(){return new MediaStream(this)}},MediaStreamTrackEvent=class extends Event{track;constructor(e,t){super(e,t),this.track=t.track}},RTCTrackEvent=class extends Event{receiver;track;streams;transceiver;constructor(e,t){if(super(e,t),!t||typeof t!=`object`)throw TypeError(`RTCTrackEventInit is required`);if(!(`receiver`in t))throw TypeError(`Failed to construct 'RTCTrackEvent': required member receiver is not provided.`);if(!(`track`in t))throw TypeError(`Failed to construct 'RTCTrackEvent': required member track is not provided.`);if(!(`transceiver`in t))throw TypeError(`Failed to construct 'RTCTrackEvent': required member transceiver is not provided.`);this.receiver=t.receiver,this.track=t.track,this.streams=Object.freeze(t.streams?[...t.streams]:[]),this.transceiver=t.transceiver}};const I=globalThis;I.MediaStream===void 0&&(I.MediaStream=Ae),I.MediaStreamTrack===void 0&&(I.MediaStreamTrack=F),I.RTCTrackEvent===void 0&&(I.RTCTrackEvent=RTCTrackEvent);function sdpTypeToGst(e){switch(e){case`offer`:return r.WebRTCSDPType.OFFER;case`pranswer`:return r.WebRTCSDPType.PRANSWER;case`answer`:return r.WebRTCSDPType.ANSWER;case`rollback`:return r.WebRTCSDPType.ROLLBACK}}function sdpTypeFromGst(e){switch(e){case r.WebRTCSDPType.OFFER:return`offer`;case r.WebRTCSDPType.PRANSWER:return`pranswer`;case r.WebRTCSDPType.ANSWER:return`answer`;case r.WebRTCSDPType.ROLLBACK:return`rollback`;default:return`offer`}}var L=class RTCSessionDescription{type;sdp;constructor(e){this.type=e?.type??`offer`,this.sdp=e?.sdp??``}toJSON(){return{type:this.type,sdp:this.sdp}}toGstDesc(){let[e,t]=i.SDPMessage.new_from_text(this.sdp);if(e!==i.SDPResult.OK)throw Error(`Failed to parse SDP text (GstSDPResult=${e})`);return r.WebRTCSessionDescription.new(sdpTypeToGst(this.type),t)}static fromGstDesc(e){let t=e.sdp?.as_text?.()??``;return new RTCSessionDescription({type:sdpTypeFromGst(e.type),sdp:t})}};function parseCandidate(e){let t=e.trim();t.startsWith(`a=`)&&(t=t.slice(2)),t.startsWith(`candidate:`)&&(t=t.slice(10));let n=t.split(/\s+/);if(n.length<8)return{};let r=n[2]?.toLowerCase(),i=n.indexOf(`typ`),a=i>=0?n[i+1]:void 0,o=n.indexOf(`raddr`),s=n.indexOf(`rport`),c=n.indexOf(`tcptype`),l=Number(n[1]);return{foundation:n[0],component:l===1?`rtp`:l===2?`rtcp`:null,priority:Number(n[3])||null,protocol:r===`udp`||r===`tcp`?r:null,address:n[4]??null,port:Number(n[5])||null,type:a===`host`||a===`srflx`||a===`prflx`||a===`relay`?a:null,relatedAddress:o>=0?n[o+1]??null:null,relatedPort:s>=0&&Number(n[s+1])||null,tcpType:c>=0?n[c+1]:null}}var RTCIceCandidate=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;foundation;component;priority;protocol;address;port;type;tcpType;relatedAddress;relatedPort;constructor(e={}){if(e.sdpMid==null&&e.sdpMLineIndex==null)throw TypeError(`RTCIceCandidate requires either sdpMid or sdpMLineIndex`);this.candidate=e.candidate??``,this.sdpMid=e.sdpMid??null,this.sdpMLineIndex=e.sdpMLineIndex??null,this.usernameFragment=e.usernameFragment??null;let t=parseCandidate(this.candidate);this.foundation=t.foundation??null,this.component=t.component??null,this.priority=t.priority??null,this.protocol=t.protocol??null,this.address=t.address??null,this.port=t.port??null,this.type=t.type??null,this.tcpType=t.tcpType??null,this.relatedAddress=t.relatedAddress??null,this.relatedPort=t.relatedPort??null}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},RTCPeerConnectionIceEvent=class extends Event{candidate;url;constructor(e,t={}){super(e,t),this.candidate=t.candidate??null,this.url=t.url??null}},RTCDataChannelEvent=class extends Event{channel;constructor(e,t){if(super(e,t),!t||!t.channel)throw TypeError("RTCDataChannelEvent requires a `channel` member");this.channel=t.channel}},RTCErrorEvent=class extends Event{error;constructor(e,t){if(super(e,t),!t||!t.error)throw TypeError("RTCErrorEvent requires an `error` member");this.error=t.error}};const je={[r.WebRTCSignalingState.STABLE]:`stable`,[r.WebRTCSignalingState.CLOSED]:`closed`,[r.WebRTCSignalingState.HAVE_LOCAL_OFFER]:`have-local-offer`,[r.WebRTCSignalingState.HAVE_REMOTE_OFFER]:`have-remote-offer`,[r.WebRTCSignalingState.HAVE_LOCAL_PRANSWER]:`have-local-pranswer`,[r.WebRTCSignalingState.HAVE_REMOTE_PRANSWER]:`have-remote-pranswer`};function gstToSignalingState(e){return je[e]??`stable`}const Me={[r.WebRTCPeerConnectionState.NEW]:`new`,[r.WebRTCPeerConnectionState.CONNECTING]:`connecting`,[r.WebRTCPeerConnectionState.CONNECTED]:`connected`,[r.WebRTCPeerConnectionState.DISCONNECTED]:`disconnected`,[r.WebRTCPeerConnectionState.FAILED]:`failed`,[r.WebRTCPeerConnectionState.CLOSED]:`closed`};function gstToConnectionState(e){return Me[e]??`new`}const Ne={[r.WebRTCICEConnectionState.NEW]:`new`,[r.WebRTCICEConnectionState.CHECKING]:`checking`,[r.WebRTCICEConnectionState.CONNECTED]:`connected`,[r.WebRTCICEConnectionState.COMPLETED]:`completed`,[r.WebRTCICEConnectionState.FAILED]:`failed`,[r.WebRTCICEConnectionState.DISCONNECTED]:`disconnected`,[r.WebRTCICEConnectionState.CLOSED]:`closed`};function gstToIceConnectionState(e){return Ne[e]??`new`}const Pe={[r.WebRTCICEGatheringState.NEW]:`new`,[r.WebRTCICEGatheringState.GATHERING]:`gathering`,[r.WebRTCICEGatheringState.COMPLETE]:`complete`};function gstToIceGatheringState(e){return Pe[e]??`new`}const Fe={[r.WebRTCRTPTransceiverDirection.SENDRECV]:`sendrecv`,[r.WebRTCRTPTransceiverDirection.SENDONLY]:`sendonly`,[r.WebRTCRTPTransceiverDirection.RECVONLY]:`recvonly`},Ie={sendrecv:r.WebRTCRTPTransceiverDirection.SENDRECV,sendonly:r.WebRTCRTPTransceiverDirection.SENDONLY,recvonly:r.WebRTCRTPTransceiverDirection.RECVONLY,inactive:r.WebRTCRTPTransceiverDirection.NONE};function gstDirectionToW3C(e){return Fe[e]??`inactive`}function w3cDirectionToGst(e){return Ie[e]??r.WebRTCRTPTransceiverDirection.NONE}const Le={[r.WebRTCStatsType.CODEC]:`codec`,[r.WebRTCStatsType.INBOUND_RTP]:`inbound-rtp`,[r.WebRTCStatsType.OUTBOUND_RTP]:`outbound-rtp`,[r.WebRTCStatsType.REMOTE_INBOUND_RTP]:`remote-inbound-rtp`,[r.WebRTCStatsType.REMOTE_OUTBOUND_RTP]:`remote-outbound-rtp`,[r.WebRTCStatsType.CSRC]:`csrc`,[r.WebRTCStatsType.PEER_CONNECTION]:`peer-connection`,[r.WebRTCStatsType.DATA_CHANNEL]:`data-channel`,[r.WebRTCStatsType.STREAM]:`stream`,[r.WebRTCStatsType.TRANSPORT]:`transport`,[r.WebRTCStatsType.CANDIDATE_PAIR]:`candidate-pair`,[r.WebRTCStatsType.LOCAL_CANDIDATE]:`local-candidate`,[r.WebRTCStatsType.REMOTE_CANDIDATE]:`remote-candidate`,[r.WebRTCStatsType.CERTIFICATE]:`certificate`};function gstToStatsType(e){return Le[e]}var Re=__exportAll({RTCStatsReport:()=>RTCStatsReport}),RTCStatsReport,ze=__esmMin(()=>{RTCStatsReport=class{_map;constructor(e){this._map=new Map(e)}get size(){return this._map.size}get(e){return this._map.get(e)}has(e){return this._map.has(e)}forEach(e,t){this._map.forEach((n,r)=>{e.call(t,n,r,this)})}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.values()}[Symbol.iterator](){return this._map.entries()}}});ze();function snakeToCamel(e){return e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function extractFields(e){let t={},n=e.n_fields();for(let r=0;r<n;r++){let n=e.nth_field_name(r);try{t[n]=e.get_value(n)}catch{}}return t}function parseStatsEntry(e){let t=extractFields(e),n=t.type;if(n==null)return null;let r=gstToStatsType(Number(n));if(!r)return null;let i=String(t.id??e.get_name()??``),a=t.timestamp,o={type:r,id:i,timestamp:a==null?performance.now():Number(a)/1e6};for(let[e,n]of Object.entries(t)){if(e===`type`||e===`id`||e===`timestamp`)continue;let t=snakeToCamel(e);o[t]=n}return o}function parseGstStats(e){if(!e)return new RTCStatsReport;let t=[],n=e.n_fields();for(let r=0;r<n;r++){let n=e.nth_field_name(r);try{let r=e.get_value(n);if(r&&typeof r.n_fields==`function`){let e=parseStatsEntry(r);e&&t.push([e.id,e])}}catch{}}return new RTCStatsReport(t)}function filterStatsByTrackId(e,t){let n=[],r=new Set;for(let[i,a]of e)if(a.trackIdentifier===t){n.push([i,a]),r.add(i);for(let t of Object.values(a))typeof t==`string`&&e.has(t)&&r.add(t)}for(let[t,i]of e)r.has(t)&&!n.some(([e])=>e===t)&&n.push([t,i]);return new RTCStatsReport(n)}const Be=a.PromiseBridge,Ve=a.WebrtcbinBridge,He=a.DataChannelBridge,Ue=a.ReceiverBridge;function withGstPromise(e){return new Promise((t,n)=>{let r=new Be;r.connect(`replied`,(e,n)=>{t(n)}),r.connect(`rejected`,(e,t)=>{n(Error(t))}),e(r.promise)})}const asWebRtcBin=e=>e,asWebRtcSrcPad=e=>e,asValveElement=e=>e,asRtpPayloaderElement=e=>e,asCapsFilterElement=e=>e,asVp8EncElement=e=>e;globalThis.DOMException===void 0&&(globalThis.DOMException=E);var RTCError=class extends DOMException{errorDetail;sdpLineNumber;sctpCauseCode;receivedAlert;sentAlert;httpRequestStatusCode;constructor(e,t){if(super(t??e.errorDetail,`OperationError`),!e||!e.errorDetail)throw TypeError(`RTCError: errorDetail is required`);this.errorDetail=e.errorDetail,this.sdpLineNumber=e.sdpLineNumber??null,this.sctpCauseCode=e.sctpCauseCode??null,this.receivedAlert=e.receivedAlert??null,this.sentAlert=e.sentAlert??null,this.httpRequestStatusCode=e.httpRequestStatusCode??null}};const We={1:`connecting`,2:`open`,3:`closing`,4:`closed`};function toGBytes(t){let n;return n=ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),new e.Bytes(n)}function bytesToArrayBuffer(e){let t=e,n=t.toArray?.();if(n instanceof Uint8Array)return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);let r=t.get_data?.();return r instanceof Uint8Array?r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength):new ArrayBuffer(0)}var RTCDataChannel=class extends EventTarget{_native;_bridge;_binaryType=`arraybuffer`;_bufferedAmount=0;_closed=!1;_onopen=null;_onclose=null;_onerror=null;_onmessage=null;_onbufferedamountlow=null;_onclosing=null;constructor(e){super();let t=e;t.channel!==void 0&&typeof t.dispose_bridge==`function`?(this._bridge=e,this._native=this._bridge.channel):(this._native=e,this._bridge=new He({channel:this._native})),this._bridge.connect(`opened`,()=>this._handleOpen()),this._bridge.connect(`closed`,()=>this._handleClose()),this._bridge.connect(`error-occurred`,(e,t)=>this._handleError(t)),this._bridge.connect(`message-string`,(e,t)=>this._handleString(t)),this._bridge.connect(`message-data`,(e,t)=>this._handleData(t)),this._bridge.connect(`buffered-amount-low`,()=>this._handleBufferedAmountLow()),this._bridge.connect(`ready-state-changed`,()=>this._handleReadyStateChange())}get label(){return this._native.label}get ordered(){return this._native.ordered}get protocol(){return this._native.protocol}get negotiated(){return this._native.negotiated}get id(){return this._native.id>=0?this._native.id:null}get maxPacketLifeTime(){let e=this._native.max_packet_lifetime;return e>=0?e:null}get maxRetransmits(){let e=this._native.max_retransmits;return e>=0?e:null}get readyState(){return this._closed?`closed`:We[this._native.ready_state]??`connecting`}get bufferedAmount(){try{return Number(this._native.buffered_amount)||this._bufferedAmount}catch{return this._bufferedAmount}}get bufferedAmountLowThreshold(){return Number(this._native.buffered_amount_low_threshold)||0}set bufferedAmountLowThreshold(e){this._native.buffered_amount_low_threshold=e}get binaryType(){return this._binaryType}set binaryType(e){e!==`arraybuffer`&&e!==`blob`||(this._binaryType=e)}get onopen(){return this._onopen}set onopen(e){this._onopen=e}get onclose(){return this._onclose}set onclose(e){this._onclose=e}get onclosing(){return this._onclosing}set onclosing(e){this._onclosing=e}get onerror(){return this._onerror}set onerror(e){this._onerror=e}get onmessage(){return this._onmessage}set onmessage(e){this._onmessage=e}get onbufferedamountlow(){return this._onbufferedamountlow}set onbufferedamountlow(e){this._onbufferedamountlow=e}send(e){let t=this.readyState;if(t!==`open`)throw new E(`RTCDataChannel.send: readyState is '${t}', expected 'open'`,`InvalidStateError`);if(typeof e==`string`){this._native.send_string(e),this._bufferedAmount+=new TextEncoder().encode(e).byteLength;return}if(e instanceof u){e.arrayBuffer().then(e=>{try{this._native.send_data(toGBytes(e)),this._bufferedAmount+=e.byteLength}catch{}});return}if(ArrayBuffer.isView(e)){let t=toGBytes(e);this._native.send_data(t),this._bufferedAmount+=e.byteLength;return}if(e instanceof ArrayBuffer){let t=toGBytes(e);this._native.send_data(t),this._bufferedAmount+=e.byteLength;return}throw TypeError(`RTCDataChannel.send: unsupported data type`)}close(){if(!this._closed){try{this._native.close()}catch{}this._disconnectSignals(),this._closed=!0}}_disconnectSignals(){try{this._bridge.dispose_bridge()}catch{}}_handleOpen(){let e=new Event(`open`);this._onopen?.call(this,e),this.dispatchEvent(e)}_handleClose(){this._closed=!0;let e=new Event(`close`);this._onclose?.call(this,e),this.dispatchEvent(e)}_handleError(e){let t=new RTCErrorEvent(`error`,{error:new RTCError({errorDetail:`data-channel-failure`},e||`RTCDataChannel error`)});this._onerror?.call(this,t),this.dispatchEvent(t)}_handleString(e){let t=new MessageEvent(`message`,{data:e});this._onmessage?.call(this,t),this.dispatchEvent(t)}_handleData(e){if(!e)return;let t=bytesToArrayBuffer(e),n=this._binaryType===`blob`?new u([t]):t,r=new MessageEvent(`message`,{data:n});this._onmessage?.call(this,r),this.dispatchEvent(r)}_handleBufferedAmountLow(){this._bufferedAmount=Number(this._native.buffered_amount)||0;let e=new Event(`bufferedamountlow`);this._onbufferedamountlow?.call(this,e),this.dispatchEvent(e)}_handleReadyStateChange(){if(this.readyState===`closing`){let e=new Event(`closing`);this._onclosing?.call(this,e),this.dispatchEvent(e)}}};const Ge={codecs:[{mimeType:`audio/opus`,clockRate:48e3,channels:2,sdpFmtpLine:`minptime=10;useinbandfec=1`},{mimeType:`audio/G722`,clockRate:8e3,channels:1},{mimeType:`audio/PCMU`,clockRate:8e3,channels:1},{mimeType:`audio/PCMA`,clockRate:8e3,channels:1},{mimeType:`audio/telephone-event`,clockRate:8e3,channels:1},{mimeType:`audio/red`,clockRate:48e3,channels:2}],headerExtensions:[{uri:`urn:ietf:params:rtp-hdrext:ssrc-audio-level`},{uri:`http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time`},{uri:`urn:ietf:params:rtp-hdrext:sdes:mid`}]},Ke={codecs:[{mimeType:`video/VP8`,clockRate:9e4},{mimeType:`video/rtx`,clockRate:9e4},{mimeType:`video/H264`,clockRate:9e4,sdpFmtpLine:`level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f`},{mimeType:`video/VP9`,clockRate:9e4},{mimeType:`video/red`,clockRate:9e4},{mimeType:`video/ulpfec`,clockRate:9e4}],headerExtensions:[{uri:`urn:ietf:params:rtp-hdrext:toffset`},{uri:`http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time`},{uri:`urn:3gpp:video-orientation`},{uri:`urn:ietf:params:rtp-hdrext:sdes:mid`},{uri:`urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id`},{uri:`urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id`}]};function getRtpCapabilities(e){return e===`audio`?Ge:e===`video`?Ke:null}const qe=new Set(`0123456789ABCDabcd#*,`);var RTCDTMFToneChangeEvent=class extends Event{tone;constructor(e,t={}){super(e,t),this.tone=t.tone??``}},RTCDTMFSender=class extends EventTarget{_toneBuffer=``;_duration=100;_interToneGap=70;_timerId=null;_canInsert=!0;_ontonechange=null;_isStopped=()=>!1;_getCurrentDirection=()=>null;get toneBuffer(){return this._toneBuffer}get canInsertDTMF(){return this._canInsert}get ontonechange(){return this._ontonechange}set ontonechange(e){this._ontonechange=e}insertDTMF(e,t,n){if(this._isStopped())throw new DOMException(`Failed to execute 'insertDTMF': The associated transceiver is stopped`,`InvalidStateError`);let r=this._getCurrentDirection();if(r===`recvonly`||r===`inactive`)throw new DOMException(`Failed to execute 'insertDTMF': The associated transceiver direction does not allow sending`,`InvalidStateError`);for(let t of e)if(!qe.has(t))throw new DOMException(`Failed to execute 'insertDTMF': Invalid DTMF character '${t}'`,`InvalidCharacterError`);e=e.replace(/[a-d]/g,e=>e.toUpperCase());let i=t??100;this._duration=Math.max(40,Math.min(6e3,i));let a=n??70;this._interToneGap=Math.max(30,a),this._toneBuffer=e,this._timerId!==null&&(clearTimeout(this._timerId),this._timerId=null),e.length>0&&this._scheduleNextTone(0)}_scheduleNextTone(e){this._timerId=setTimeout(()=>{this._timerId=null,this._playNextTone()},e)}_playNextTone(){if(this._toneBuffer.length===0){this._fireToneChange(``);return}let e=this._toneBuffer[0];this._toneBuffer=this._toneBuffer.slice(1),this._fireToneChange(e);let t=e===`,`?2e3:this._duration+this._interToneGap;this._scheduleNextTone(t)}_fireToneChange(e){let t=new RTCDTMFToneChangeEvent(`tonechange`,{tone:e});this._ontonechange?.call(this,t),this.dispatchEvent(t)}_stop(){this._timerId!==null&&(clearTimeout(this._timerId),this._timerId=null),this._toneBuffer=``,this._canInsert=!1}},TeeMultiplexer=class{_tee;_pipeline;_branchCount=0;constructor(e,t){this._pipeline=e,this._tee=n.ElementFactory.make(`tee`,null),this._tee.allow_not_linked=!0,e.add(this._tee),this._tee.sync_state_with_parent(),t.link(this._tee)}requestSrcPad(){let e=`src_%u`,t=this._tee.request_pad_simple?this._tee.request_pad_simple(e):this._tee.get_request_pad(e);return t&&this._branchCount++,t}releaseSrcPad(e){if(e){try{e.add_probe(n.PadProbeType.BLOCK_DOWNSTREAM,()=>n.PadProbeReturn.DROP)}catch{}try{let t=e.get_peer();t&&e.unlink(t)}catch{}try{this._tee.release_request_pad(e)}catch{}this._branchCount--}}get branchCount(){return this._branchCount}get element(){return this._tee}};let Je=0;var RTCRtpSender=class{_gstSender;_track=null;_lastParams=null;_pipeline=null;_webrtcbin=null;_mlineIndex=-1;_elements=[];_valve=null;_linked=!1;_teeSrcPad=null;_getStatsForTrack=null;_transport=null;_dtmf=null;_kind=null;_transceiver=null;_onPipelineChanged=null;constructor(e,t,n){this._gstSender=e,this._pipeline=t??null,this._webrtcbin=n??null}get track(){return this._track}get dtmf(){if((this._track?.kind??this._kind)!==`audio`)return null;if(!this._dtmf){let e=new RTCDTMFSender;e._isStopped=()=>this._transceiver?.stopped??!1,e._getCurrentDirection=()=>this._transceiver?.currentDirection??null,this._dtmf=e}return this._dtmf}get transport(){return this._transport}_setTrack(e){e===null&&this._linked&&this._teardownPipeline(),this._track=e}_setMlineIndex(e){this._mlineIndex=e}_wirePipeline(e){if(this._linked||!this._pipeline||!this._webrtcbin)return;let t=e._gstSource;if(!t)return;let r=e,i;if(r._gstTee&&r._gstPipeline&&r._gstPipeline!==this._pipeline){let e=r._gstPipeline,t=r._gstTee;this._webrtcbin.get_parent()===this._pipeline&&(this._pipeline.set_state(n.State.NULL),this._pipeline.remove(this._webrtcbin)),e.add(this._webrtcbin),this._webrtcbin.sync_state_with_parent(),this._pipeline=e,this._onPipelineChanged?.(e);let a=t.request_pad_simple?t.request_pad_simple(`src_%u`):t.get_request_pad(`src_%u`);this._teeSrcPad=a,i=null}else if(r._teeMultiplexer){let e=r._teeMultiplexer.requestSrcPad();this._teeSrcPad=e,i=null}else if(r._gstPipeline&&r._gstPipeline!==this._pipeline){let e=r._gstPipeline,a=t.get_static_pad(`src`),o=a?.get_peer?.();o&&a.unlink(o),t.set_state(n.State.NULL),e.remove(t),this._pipeline.add(t),r._gstPipeline=this._pipeline;let s=new TeeMultiplexer(this._pipeline,t);if(r._teeMultiplexer=s,o){let e=s.requestSrcPad();e&&e.link(o)}let c=s.requestSrcPad();this._teeSrcPad=c,i=null}else{let e=r._gstPipeline;e&&e!==this._pipeline&&(t.set_state(n.State.NULL),e.remove(t),r._gstPipeline=this._pipeline),t.get_parent()!==this._pipeline&&this._pipeline.add(t),i=t}let a=asValveElement(n.ElementFactory.make(`valve`,null));a.drop=!e.enabled,this._valve=a,this._pipeline.add(a);let o=[a],s;if(e.kind===`audio`){let e=n.ElementFactory.make(`audioconvert`,null),t=n.ElementFactory.make(`audioresample`,null),r=n.ElementFactory.make(`opusenc`,null),c=asRtpPayloaderElement(n.ElementFactory.make(`rtpopuspay`,null));c.pt=111;let l=asCapsFilterElement(n.ElementFactory.make(`capsfilter`,null));l.caps=n.Caps.from_string(`application/x-rtp,media=audio,encoding-name=OPUS,clock-rate=48000,payload=111`),o.push(e,t,r,c,l);for(let e of o)this._pipeline.add(e);if(this._teeSrcPad){let e=a.get_static_pad(`sink`);this._teeSrcPad.link(e)}else i&&i.link(a);a.link(e),e.link(t),t.link(r),r.link(c),c.link(l),s=l}else{let e=n.ElementFactory.make(`videoconvert`,null),t=n.ElementFactory.make(`videoscale`,null),r=asVp8EncElement(n.ElementFactory.make(`vp8enc`,null));r.deadline=1,r.keyframe_max_dist=60;let c=asRtpPayloaderElement(n.ElementFactory.make(`rtpvp8pay`,null));c.pt=96;let l=asCapsFilterElement(n.ElementFactory.make(`capsfilter`,null));l.caps=n.Caps.from_string(`application/x-rtp,media=video,encoding-name=VP8,clock-rate=90000,payload=96`),o.push(e,t,r,c,l);for(let e of o)this._pipeline.add(e);if(this._teeSrcPad){let e=a.get_static_pad(`sink`);this._teeSrcPad.link(e)}else i&&i.link(a);a.link(e),e.link(t),t.link(r),r.link(c),c.link(l),s=l}let c=this._mlineIndex>=0?`sink_${this._mlineIndex}`:`sink_%u`,l=this._webrtcbin.request_pad_simple?this._webrtcbin.request_pad_simple(c):this._webrtcbin.get_request_pad(c);l&&s.get_static_pad(`src`).link(l);let u=this._teeSrcPad?o:[t,...o];for(let e of u)e.sync_state_with_parent();this._elements=u,this._linked=!0,e._setEnableCallback(e=>{this._valve&&(this._valve.drop=!e)})}_teardownPipeline(){if(this._linked){if(this._track&&this._track._setEnableCallback(null),this._teeSrcPad&&this._track?._teeMultiplexer){try{this._track._teeMultiplexer.releaseSrcPad(this._teeSrcPad)}catch{}this._teeSrcPad=null}for(let e of[...this._elements].reverse())try{e.set_state(n.State.NULL),this._pipeline?.remove(e)}catch{}this._elements=[],this._valve=null,this._linked=!1}}getParameters(){return this._lastParams||={transactionId:String(++Je),encodings:[],codecs:[],headerExtensions:[],rtcp:{}},{...this._lastParams,encodings:[...this._lastParams.encodings]}}async setParameters(e){if(!this._lastParams)throw new DOMException(`getParameters must be called before setParameters`,`InvalidStateError`);if(e.transactionId!==this._lastParams.transactionId)throw new DOMException(`transactionId mismatch`,`InvalidModificationError`);this._lastParams=null}async replaceTrack(e){if(e===null){this._teardownPipeline(),this._track=null;return}if(this._track!==null&&e.kind!==this._track.kind)throw TypeError(`Cannot replace track with different kind`);let t=e;if(this._linked&&t._gstSource){let e=this._elements[0],r=t._gstSource,i=t._gstPipeline;i&&i!==this._pipeline&&(r.set_state(n.State.NULL),i.remove(r),t._gstPipeline=this._pipeline),e.set_state(n.State.NULL),this._valve&&e.unlink(this._valve),this._pipeline?.remove(e),this._pipeline?.add(r),this._valve&&r.link(this._valve),r.sync_state_with_parent(),this._elements[0]=r}else t._gstSource&&this._wirePipeline(e);this._track&&this._track._setEnableCallback(null),this._track=e,this._linked&&e._setEnableCallback(e=>{this._valve&&(this._valve.drop=!e)})}async getStats(){if(this._getStatsForTrack&&this._track)return this._getStatsForTrack(this._track);let{RTCStatsReport:e}=await Promise.resolve().then(()=>(ze(),Re));return new e}setStreams(...e){}static getCapabilities(e){return getRtpCapabilities(e)}};const Ye=4e3;var RTCRtpReceiver=class{_gstReceiver;_track;_jitterBufferTarget=null;_pipeline=null;_receiverBridge=null;_getStatsForTrack=null;constructor(e,t,n){this._gstReceiver=t,this._pipeline=n??null,this._track=new F({kind:e,muted:!0})}_connectToPad(e){!this._pipeline||this._receiverBridge||(this._receiverBridge=new Ue({pipeline:this._pipeline,kind:this._track.kind}),this._receiverBridge.connect_to_pad(e),this._receiverBridge.connect(`media-flowing`,()=>{this._track._setMuted(!1)}))}_dispose(){try{this._receiverBridge?.dispose_bridge()}catch{}this._receiverBridge=null}_transport=null;get track(){return this._track}get transport(){return this._transport}get jitterBufferTarget(){return this._jitterBufferTarget}set jitterBufferTarget(e){if(e===null){this._jitterBufferTarget=null;return}let t=Number(e);if(!Number.isFinite(t)||t<0)throw RangeError(`Failed to set jitterBufferTarget: ${e} is negative or not finite`);if(t>Ye)throw RangeError(`Failed to set jitterBufferTarget: ${e} exceeds maximum of ${Ye}`);this._jitterBufferTarget=t}getParameters(){return{codecs:[],headerExtensions:[],rtcp:{}}}getContributingSources(){return[]}getSynchronizationSources(){return[]}async getStats(){if(this._getStatsForTrack&&this._track)return this._getStatsForTrack(this._track);let{RTCStatsReport:e}=await Promise.resolve().then(()=>(ze(),Re));return new e}static getCapabilities(e){return getRtpCapabilities(e)}},RTCRtpTransceiver=class{_gstTrans;sender;receiver;_stopped=!1;_codecPreferences=[];constructor(e,t,n){this._gstTrans=e,this.sender=t,this.receiver=n}get mid(){if(this._stopped)return null;let e=this._gstTrans.mid;return e===``||e==null?null:String(e)}get direction(){return this._stopped?`stopped`:gstDirectionToW3C(this._gstTrans.direction)}set direction(e){if(this._stopped)throw new DOMException(`Cannot set direction on a stopped transceiver`,`InvalidStateError`);if(e===`stopped`)throw TypeError(`The provided value 'stopped' is not a valid enum value of type RTCRtpTransceiverDirection.`);if(![`sendrecv`,`sendonly`,`recvonly`,`inactive`].includes(e))throw TypeError(`The provided value '${e}' is not a valid enum value of type RTCRtpTransceiverDirection.`);this._gstTrans.direction=w3cDirectionToGst(e)}get currentDirection(){if(this._stopped)return null;let e=this._gstTrans.current_direction??this._gstTrans.currentDirection;if(e==null)return null;let t=gstDirectionToW3C(e);return t===`inactive`?null:t}get stopped(){return this._stopped}stop(){this._stopped||=!0}setCodecPreferences(e){if(!Array.isArray(e))throw TypeError(`codecs must be an array`);if(e.length===0){this._codecPreferences=[];return}let t=this.receiver.track.kind,n=RTCRtpReceiver.getCapabilities(t),r=RTCRtpSender.getCapabilities(t);if(!n||!r)throw new DOMException(`No capabilities available`,`InvalidModificationError`);let i=[...n.codecs,...r.codecs];for(let t of e){if(!t||typeof t!=`object`)throw TypeError(`Each codec must be an object`);if(typeof t.mimeType!=`string`||typeof t.clockRate!=`number`)throw TypeError(`codec must have mimeType (string) and clockRate (number)`);if(!/\/(rtx|red|ulpfec)$/i.test(t.mimeType)&&!i.find(e=>e.mimeType.toLowerCase()===t.mimeType.toLowerCase()&&e.clockRate===t.clockRate&&(t.channels===void 0||e.channels===t.channels)&&(t.sdpFmtpLine===void 0||e.sdpFmtpLine===t.sdpFmtpLine)))throw new DOMException(`Codec ${t.mimeType} ${t.clockRate} is not in capabilities`,`InvalidModificationError`)}this._codecPreferences=[...e]}get _nativeTransceiver(){return this._gstTrans}},RTCIceTransport=class extends EventTarget{_state=`new`;_gatheringState=`new`;_role=`unknown`;_component=`rtp`;_localCandidates=[];_remoteCandidates=[];_localParams=null;_remoteParams=null;_onstatechange=null;_ongatheringstatechange=null;_onselectedcandidatepairchange=null;get state(){return this._state}get gatheringState(){return this._gatheringState}get role(){return this._role}get component(){return this._component}get onstatechange(){return this._onstatechange}set onstatechange(e){this._onstatechange=e}get ongatheringstatechange(){return this._ongatheringstatechange}set ongatheringstatechange(e){this._ongatheringstatechange=e}get onselectedcandidatepairchange(){return this._onselectedcandidatepairchange}set onselectedcandidatepairchange(e){this._onselectedcandidatepairchange=e}getLocalCandidates(){return[...this._localCandidates]}getRemoteCandidates(){return[...this._remoteCandidates]}getSelectedCandidatePair(){return null}getLocalParameters(){return this._localParams}getRemoteParameters(){return this._remoteParams}_setState(e){if(this._state===e)return;this._state=e;let t=new Event(`statechange`);this._onstatechange?.call(this,t),this.dispatchEvent(t)}_setGatheringState(e){if(this._gatheringState===e)return;this._gatheringState=e;let t=new Event(`gatheringstatechange`);this._ongatheringstatechange?.call(this,t),this.dispatchEvent(t)}_addLocalCandidate(e){this._localCandidates.push(new RTCIceCandidate(e))}_addRemoteCandidate(e){this._remoteCandidates.push(new RTCIceCandidate(e))}_setLocalParameters(e){this._localParams=e}_setRemoteParameters(e){this._remoteParams=e}},RTCDtlsTransport=class extends EventTarget{iceTransport;_state=`new`;_onstatechange=null;_onerror=null;constructor(e){super(),this.iceTransport=e}get state(){return this._state}get onstatechange(){return this._onstatechange}set onstatechange(e){this._onstatechange=e}get onerror(){return this._onerror}set onerror(e){this._onerror=e}getRemoteCertificates(){return[]}_setState(e){if(this._state===e)return;this._state=e;let t=new Event(`statechange`);this._onstatechange?.call(this,t),this.dispatchEvent(t)}},RTCSctpTransport=class extends EventTarget{transport;_state=`connecting`;_maxMessageSize=262144;_maxChannels=65535;_onstatechange=null;constructor(e){super(),this.transport=e}get state(){return this._state}get maxMessageSize(){return this._maxMessageSize}get maxChannels(){return this._maxChannels}get onstatechange(){return this._onstatechange}set onstatechange(e){this._onstatechange=e}_setState(e){if(this._state===e)return;this._state=e;let t=new Event(`statechange`);this._onstatechange?.call(this,t),this.dispatchEvent(t)}},RTCCertificate=class{expires;_fingerprints;_algorithm;constructor(e,t,n){this._algorithm=e,this.expires=t,this._fingerprints=n}getFingerprints(){return[...this._fingerprints]}get _algorithmName(){return this._algorithm}};async function generateCertificate(t){let n;if(typeof t==`string`)n=t.toLowerCase();else if(t&&typeof t==`object`&&typeof t.name==`string`)n=t.name.toLowerCase();else throw new DOMException(`generateCertificate: algorithm must have a name property`,`NotSupportedError`);if(n===`ecdsa`){let e=t.namedCurve;if(e&&e!==`P-256`)throw new DOMException(`generateCertificate: unsupported ECDSA curve '${e}'`,`NotSupportedError`)}else if(n===`rsassa-pkcs1-v1_5`){let e=t.hash,n=typeof e==`string`?e:e?.name;if(n&&n.toUpperCase()===`SHA-1`)throw new DOMException(`generateCertificate: SHA-1 is not supported for RSA certificates`,`NotSupportedError`)}else throw new DOMException(`generateCertificate: unsupported algorithm '${n}'`,`NotSupportedError`);let r=e.uuid_string_random(),i=e.Checksum.new(e.ChecksumType.SHA256);i.update(new TextEncoder().encode(r+Date.now()));let a=i.get_string().slice(0,64).match(/.{2}/g).join(`:`).toUpperCase(),o=Date.now()+2592e6;return new RTCCertificate(n,o,[{algorithm:`sha-256`,value:a}])}const Xe={async createOffer(e){this._rejectIfClosed(`createOffer`);let t=n.Structure.new_empty(`offer-options`);this._iceRestartNeeded&&=(this._setStructureField(t,`ice-restart`,`boolean`,!0),!1);let r=(await withGstPromise(e=>{this._webrtcbin.emit(`create-offer`,t,e)})).get_value(`offer`);return L.fromGstDesc(r).toJSON()},async createAnswer(e){this._rejectIfClosed(`createAnswer`);let t=n.Structure.new_empty(`answer-options`),r=(await withGstPromise(e=>{this._webrtcbin.emit(`create-answer`,t,e)})).get_value(`answer`);return L.fromGstDesc(r).toJSON()},async setLocalDescription(e){if(this._rejectIfClosed(`setLocalDescription`),!e||!e.type||!e.sdp){let t=this.signalingState;if(t===`stable`||t===`have-local-offer`)e=await this.createOffer();else if(t===`have-remote-offer`||t===`have-remote-pranswer`)e=await this.createAnswer();else throw new E(`setLocalDescription: cannot auto-create SDP in signalingState '${t}'`,`InvalidStateError`)}this._pipeline.set_state(n.State.PLAYING);let t=new L(e).toGstDesc();await withGstPromise(e=>{this._webrtcbin.emit(`set-local-description`,t,e)})},async setRemoteDescription(e){if(this._rejectIfClosed(`setRemoteDescription`),!e||!e.sdp||!e.type)throw TypeError(`setRemoteDescription requires an RTCSessionDescriptionInit with sdp and type`);this._pipeline.set_state(n.State.PLAYING);let t=new L(e).toGstDesc();await withGstPromise(e=>{this._webrtcbin.emit(`set-remote-description`,t,e)}),this.signalingState===`stable`&&(this._hasNegotiated=!0)},async addIceCandidate(e){if(this._rejectIfClosed(`addIceCandidate`),!e)return;let{candidate:t,sdpMLineIndex:n}=e;typeof t!=`string`||typeof n!=`number`||this._webrtcbin.emit(`add-ice-candidate`,n,t)}};function installSdpNegotiationMethods(e){Object.assign(e,Xe)}function coerceUnsignedShort(e,t){let n=Number(t);if(!Number.isFinite(n))throw TypeError(`createDataChannel: ${e} must be a finite number, got ${String(t)}`);let r=Math.trunc(n);if(r<0||r>65535)throw TypeError(`createDataChannel: ${e}=${r} is outside the [0, 65535] range`);return r}let Ze=0;var RTCPeerConnection$1=class extends EventTarget{static{__name(this,`RTCPeerConnection`)}_pipeline;_webrtcbin;_bridge;_conf;_closed=!1;_iceRestartNeeded=!1;_hasNegotiated=!1;_dataChannels=new Map;_transceivers=new Map;_senders=[];_receivers=[];_iceTransport=null;_dtlsTransport=null;_sctpTransport=null;canTrickleIceCandidates=!0;constructor(e){super(),ensureWebrtcbinAvailable();let[t,r]=n.version();if(t<1||t===1&&r<20)throw new E(`@gjsify/webrtc requires GStreamer >= 1.20 (you have ${t}.${r}). webrtcbin is only stable from 1.20 onward.`,`NotSupportedError`);let i=++Ze;this._pipeline=new n.Pipeline({name:`gjsify-webrtc-pipeline-${i}`});let a=n.ElementFactory.make(`webrtcbin`,`gjsify-webrtcbin-${i}`);if(!a)throw Error(`Failed to create webrtcbin element`);if(this._webrtcbin=a,this._conf={...e},e?.certificates){for(let t of e.certificates)if(t instanceof RTCCertificate&&t.expires<=Date.now())throw new E(`RTCPeerConnection: one of the provided certificates has expired`,`InvalidAccessError`)}this._applyIceServers(e?.iceServers??[]),this._applyIceTransportPolicy(e?.iceTransportPolicy),this._applyBundlePolicy(e?.bundlePolicy),this._pipeline.add(this._webrtcbin),this._bridge=new Ve({bin:this._webrtcbin}),this._bridge.connect(`negotiation-needed`,()=>this._handleNegotiationNeeded()),this._bridge.connect(`icecandidate`,(e,t,n)=>this._handleIceCandidate(t,n)),this._bridge.connect(`datachannel`,(e,t)=>this._handleDataChannel(t)),this._bridge.connect(`new-transceiver`,(e,t)=>this._handleNewTransceiver(t)),this._bridge.connect(`pad-added`,(e,t)=>this._handlePadAdded(t)),this._bridge.connect(`connection-state-changed`,()=>this._dispatchStateChange(`connectionstatechange`)),this._bridge.connect(`ice-connection-state-changed`,()=>this._dispatchStateChange(`iceconnectionstatechange`)),this._bridge.connect(`ice-gathering-state-changed`,()=>this._dispatchStateChange(`icegatheringstatechange`)),this._bridge.connect(`signaling-state-changed`,()=>this._dispatchStateChange(`signalingstatechange`)),this._pipeline.set_state(n.State.PLAYING)}_applyIceServers(e){let t=!1;for(let n of e){let e=Array.isArray(n.urls)?n.urls:[n.urls];if(e.length===0)throw SyntaxError(`RTCIceServer.urls must not be empty`);for(let r of e){if(typeof r!=`string`||r.length===0)throw TypeError(`RTCIceServer.urls entries must be non-empty strings`);let e=r.indexOf(`:`);if(e<0)throw TypeError(`Invalid ICE server URL "${r}"`);let i=r.slice(0,e+1),a=r.slice(e+1);if(i===`stun:`||i===`stuns:`){if(t)continue;asWebRtcBin(this._webrtcbin).stun_server=`${i}//${a}`,t=!0}else if(i===`turn:`||i===`turns:`){if(typeof n.username!=`string`||typeof n.credential!=`string`)throw TypeError(`TURN server credential for ${r} missing`);let e=`${i}//${encodeURIComponent(n.username)}:${encodeURIComponent(n.credential)}@${a}`;try{this._webrtcbin.emit(`add-turn-server`,e)}catch{asWebRtcBin(this._webrtcbin).turn_server=e}}else throw TypeError(`Unsupported ICE server protocol "${i}"`)}}}_applyIceTransportPolicy(e){if(!e)return;let t=e===`relay`?r.WebRTCICETransportPolicy.RELAY:r.WebRTCICETransportPolicy.ALL;try{asWebRtcBin(this._webrtcbin).ice_transport_policy=t}catch{}}_applyBundlePolicy(e){if(!e)return;let t;switch(e){case`balanced`:t=r.WebRTCBundlePolicy.BALANCED;break;case`max-compat`:t=r.WebRTCBundlePolicy.MAX_COMPAT;break;case`max-bundle`:t=r.WebRTCBundlePolicy.MAX_BUNDLE;break;default:return}try{asWebRtcBin(this._webrtcbin).bundle_policy=t}catch{}}get signalingState(){if(this._closed)return`closed`;try{return gstToSignalingState(asWebRtcBin(this._webrtcbin).signaling_state)}catch{return`stable`}}get connectionState(){if(this._closed)return`closed`;try{return gstToConnectionState(asWebRtcBin(this._webrtcbin).connection_state)}catch{return`new`}}get iceConnectionState(){if(this._closed)return`closed`;try{return gstToIceConnectionState(asWebRtcBin(this._webrtcbin).ice_connection_state)}catch{return`new`}}get iceGatheringState(){try{return gstToIceGatheringState(asWebRtcBin(this._webrtcbin).ice_gathering_state)}catch{return`new`}}_descProp(e){try{let t=asWebRtcBin(this._webrtcbin)[e];return t?L.fromGstDesc(t):null}catch{return null}}get localDescription(){return this._descProp(`local_description`)}get remoteDescription(){return this._descProp(`remote_description`)}get currentLocalDescription(){return this._descProp(`current_local_description`)}get currentRemoteDescription(){return this._descProp(`current_remote_description`)}get pendingLocalDescription(){return this._descProp(`pending_local_description`)}get pendingRemoteDescription(){return this._descProp(`pending_remote_description`)}get sctp(){return this._sctpTransport}get peerIdentity(){return Promise.reject(TypeError(`peerIdentity assertions are not implemented`))}get idpErrorInfo(){return null}get idpLoginUrl(){return null}_rejectIfClosed(e){if(this._closed)throw new E(`RTCPeerConnection.${e}: connection is closed`,`InvalidStateError`)}createDataChannel(e,t={}){if(this._closed)throw new E(`Cannot create a data channel on a closed RTCPeerConnection`,`InvalidStateError`);if(typeof e!=`string`)throw TypeError(`createDataChannel: label must be a string`);if(new TextEncoder().encode(e).byteLength>65535)throw TypeError(`createDataChannel: label too long (> 65535 bytes)`);let r=t.maxPacketLifeTime==null?void 0:coerceUnsignedShort(`maxPacketLifeTime`,t.maxPacketLifeTime),i=t.maxRetransmits==null?void 0:coerceUnsignedShort(`maxRetransmits`,t.maxRetransmits),a=t.id==null?void 0:coerceUnsignedShort(`id`,t.id);if(r!==void 0&&i!==void 0)throw TypeError(`createDataChannel: maxPacketLifeTime and maxRetransmits are mutually exclusive`);if(t.negotiated===!0&&a===void 0)throw TypeError(`createDataChannel: negotiated=true requires an id`);if(a===65535)throw TypeError(`createDataChannel: id 65535 is reserved`);let o=n.Structure.new_empty(`data-channel-opts`);this._setStructureField(o,`ordered`,`boolean`,t.ordered),this._setStructureField(o,`max-packet-lifetime`,`int`,r),this._setStructureField(o,`max-retransmits`,`int`,i),this._setStructureField(o,`protocol`,`string`,t.protocol),this._setStructureField(o,`negotiated`,`boolean`,t.negotiated),this._setStructureField(o,`id`,`int`,a);let s=null;try{s=this._webrtcbin.emit(`create-data-channel`,e,o)}catch(e){throw Error(`create-data-channel failed: ${e?.message??e}`)}if(!s)throw Error(`webrtcbin returned null data channel (check id/label/options)`);this._ensureSctpTransport();let c=new RTCDataChannel(s);return this._dataChannels.set(s,c),c.addEventListener(`close`,()=>{this._dataChannels.delete(s)}),c}_setStructureField(e,t,n,r){if(r==null)return;let i=new o.Value;n===`boolean`?(i.init(o.TYPE_BOOLEAN),i.set_boolean(!!r)):n===`int`?(i.init(o.TYPE_INT),i.set_int(Number(r))):n===`string`&&(i.init(o.TYPE_STRING),i.set_string(String(r))),e.set_value(t,i),i.unset()}getConfiguration(){return{...this._conf}}close(){this._closed||(this._closed=!0,e.idle_add(e.PRIORITY_DEFAULT,()=>{try{this._pipeline.set_state(n.State.NULL)}catch{}for(let e of this._dataChannels.values())try{e._disconnectSignals()}catch{}this._dataChannels.clear();for(let e of this._senders)try{e._teardownPipeline()}catch{}for(let e of this._receivers)try{e._dispose()}catch{}this._transceivers.clear(),this._senders.length=0,this._receivers.length=0,this._dtlsTransport&&this._dtlsTransport._setState(`closed`),this._iceTransport&&this._iceTransport._setState(`closed`),this._sctpTransport&&this._sctpTransport._setState(`closed`);try{this._bridge.dispose_bridge()}catch{}return e.SOURCE_REMOVE}))}addTransceiver(e,t){this._rejectIfClosed(`addTransceiver`);let r;if(typeof e==`string`){if(e!==`audio`&&e!==`video`)throw TypeError(`Failed to execute 'addTransceiver' on 'RTCPeerConnection': The provided value '${e}' is not a valid enum value of type MediaStreamTrackKind.`);r=e}else if(e instanceof F)r=e.kind;else throw TypeError(`Failed to execute 'addTransceiver' on 'RTCPeerConnection': parameter 1 is not of type 'MediaStreamTrack' or a valid MediaStreamTrackKind.`);if(t?.sendEncodings){let e=new Set;for(let n of t.sendEncodings){if(n.rid!==void 0){if(typeof n.rid!=`string`||n.rid.length===0||n.rid.length>16||!/^[a-zA-Z0-9]+$/.test(n.rid))throw TypeError(`Invalid RID value: ${n.rid}`);if(e.has(n.rid))throw TypeError(`Duplicate RID: ${n.rid}`);e.add(n.rid)}if(n.scaleResolutionDownBy!==void 0&&n.scaleResolutionDownBy<1)throw RangeError(`scaleResolutionDownBy must be >= 1.0`)}}let i=t?.direction??`sendrecv`;if(![`sendrecv`,`sendonly`,`recvonly`,`inactive`].includes(i))throw TypeError(`Failed to execute 'addTransceiver' on 'RTCPeerConnection': The provided value '${i}' is not a valid enum value of type RTCRtpTransceiverDirection.`);let a=e instanceof F&&e._gstSource,o=i===`sendrecv`||i===`sendonly`,s,c;if(a&&o){let t=e,n=new RTCRtpSender(null,this._pipeline,this._webrtcbin);n._kind=r,n._onPipelineChanged=e=>{this._pipeline=e},n._setTrack(t),n._wirePipeline(t);let a=this._findNewGstTransceiver();if(!a)throw Error(`webrtcbin did not create a transceiver for the send pad`);s=a;let o=s.receiver??null,l=new RTCRtpReceiver(r,o,this._pipeline),statsDelegate=e=>this.getStats(e);n._getStatsForTrack=statsDelegate,l._getStatsForTrack=statsDelegate;let u=this._ensureTransports();n._transport=u,l._transport=u,c=new RTCRtpTransceiver(s,n,l),n._transceiver=c,this._transceivers.set(s,c),this._senders.push(n),this._receivers.push(l),s.direction=w3cDirectionToGst(i)}else{let t=n.Caps.from_string(`application/x-rtp,media=${r}`),a=w3cDirectionToGst(i===`inactive`?`sendrecv`:i),o=this._webrtcbin.emit(`add-transceiver`,a,t);if(!o)throw Error(`webrtcbin did not create a transceiver`);s=o,c=this._transceivers.get(s),c||=this._createTransceiverWrapper(s),s.direction=w3cDirectionToGst(i),e instanceof F&&c.sender._setTrack(e)}return c}addTrack(e,...t){if(this._rejectIfClosed(`addTrack`),!(e instanceof F))throw TypeError(`Failed to execute 'addTrack' on 'RTCPeerConnection': parameter 1 is not a MediaStreamTrack`);if(this._senders.find(t=>t.track===e))throw new E(`Track already exists in a sender of this connection`,`InvalidAccessError`);let n;for(let t of this._transceivers.values())if(t.sender.track===null&&!t.stopped&&t.direction!==`stopped`&&t.receiver.track.kind===e.kind){let e=t.direction;if(e===`recvonly`||e===`inactive`){n=t;break}}if(n){let t=n.direction;return n.direction=t===`recvonly`?`sendrecv`:`sendonly`,n.sender._setTrack(e),n.sender}return this.addTransceiver(e,{direction:`sendrecv`}).sender}removeTrack(e){if(this._rejectIfClosed(`removeTrack`),!this._senders.includes(e))throw new E(`sender was not created by this connection`,`InvalidAccessError`);e._setTrack(null)}getSenders(){return[...this._senders]}getReceivers(){return[...this._receivers]}getTransceivers(){return[...this._transceivers.values()]}async getStats(e){if(this._rejectIfClosed(`getStats`),e!=null&&e instanceof F){let t=this._senders.some(t=>t.track===e),n=this._receivers.some(t=>t.track===e);if(!t&&!n)throw new E(`The selector track is not associated with a sender or receiver of this connection`,`InvalidAccessError`)}let t=parseGstStats(await withGstPromise(e=>{this._webrtcbin.emit(`get-stats`,null,e)}));return e!=null&&e instanceof F?filterStatsByTrackId(t,e.id):t}restartIce(){this._closed||(this._iceRestartNeeded=!0,this._hasNegotiated&&Promise.resolve().then(()=>{this._closed||this._handleNegotiationNeeded()}))}setConfiguration(e){if(this._rejectIfClosed(`setConfiguration`),e.bundlePolicy&&e.bundlePolicy!==(this._conf.bundlePolicy??`balanced`))throw new E(`setConfiguration: bundlePolicy cannot be changed`,`InvalidModificationError`);if(e.rtcpMuxPolicy&&e.rtcpMuxPolicy!==(this._conf.rtcpMuxPolicy??`require`))throw new E(`setConfiguration: rtcpMuxPolicy cannot be changed`,`InvalidModificationError`);e.iceServers&&this._applyIceServers(e.iceServers),e.iceTransportPolicy&&this._applyIceTransportPolicy(e.iceTransportPolicy),this._conf={...this._conf,...e}}getIdentityAssertion(){return Promise.reject(Error(`getIdentityAssertion is not implemented`))}_findNewGstTransceiver(){for(let e=0;;e++){let t=this._webrtcbin.emit(`get-transceiver`,e);if(!t)return null;if(!this._transceivers.has(t))return t}}_ensureTransports(){return this._dtlsTransport||=(this._iceTransport=new RTCIceTransport,new RTCDtlsTransport(this._iceTransport)),this._dtlsTransport}_ensureSctpTransport(){if(this._sctpTransport)return;let e=this._ensureTransports();this._sctpTransport=new RTCSctpTransport(e)}_createTransceiverWrapper(e){let t=`audio`;try{e.kind===r.WebRTCKind.VIDEO&&(t=`video`)}catch{}let n=e.receiver??null,i=e.sender??null,a=new RTCRtpReceiver(t,n,this._pipeline),o=new RTCRtpSender(i,this._pipeline,this._webrtcbin);o._kind=t,o._onPipelineChanged=e=>{this._pipeline=e};let statsDelegate=e=>this.getStats(e);o._getStatsForTrack=statsDelegate,a._getStatsForTrack=statsDelegate;let s=this._ensureTransports();o._transport=s,a._transport=s;try{let t=e.mlineindex;typeof t==`number`&&t>=0&&o._setMlineIndex(t)}catch{}let c=new RTCRtpTransceiver(e,o,a);return o._transceiver=c,this._transceivers.set(e,c),this._senders.push(o),this._receivers.push(a),c}_handleNegotiationNeeded(){let e=new Event(`negotiationneeded`);this._onnegotiationneeded?.call(this,e),this.dispatchEvent(e)}_handleIceCandidate(e,t){let n=new RTCPeerConnectionIceEvent(`icecandidate`,{candidate:new RTCIceCandidate({candidate:t,sdpMLineIndex:e})});this._onicecandidate?.call(this,n),this.dispatchEvent(n)}_handleNewTransceiver(e){this._closed||this._transceivers.has(e)||this._createTransceiverWrapper(e)}_handlePadAdded(e){if(this._closed||e.direction!==n.PadDirection.SRC)return;let t=asWebRtcSrcPad(e).transceiver;if(!t)return;let r=this._transceivers.get(t);r||=this._createTransceiverWrapper(t),r.receiver._connectToPad(e);let i=new Ae([r.receiver.track]),a=new RTCTrackEvent(`track`,{receiver:r.receiver,track:r.receiver.track,streams:[i],transceiver:r});this._ontrack?.call(this,a),this.dispatchEvent(a)}_handleDataChannel(e){this._ensureSctpTransport();let t=e.channel,n=this._dataChannels.get(t);n||(n=new RTCDataChannel(e),this._dataChannels.set(t,n),n.addEventListener(`close`,()=>{this._dataChannels.delete(t)}));let r=new RTCDataChannelEvent(`datachannel`,{channel:n});this._ondatachannel?.call(this,r),this.dispatchEvent(r)}_dispatchStateChange(e){e===`connectionstatechange`?this._syncDtlsState():e===`iceconnectionstatechange`?this._syncIceState():e===`icegatheringstatechange`&&this._syncIceGatheringState();let t=new Event(e);switch(e){case`connectionstatechange`:this._onconnectionstatechange?.call(this,t);break;case`iceconnectionstatechange`:this._oniceconnectionstatechange?.call(this,t);break;case`icegatheringstatechange`:this._onicegatheringstatechange?.call(this,t);break;case`signalingstatechange`:this._onsignalingstatechange?.call(this,t);break}this.dispatchEvent(t)}_syncDtlsState(){if(!this._dtlsTransport)return;let e=this.connectionState;this._dtlsTransport._setState({new:`new`,connecting:`connecting`,connected:`connected`,disconnected:`connected`,failed:`failed`,closed:`closed`}[e]??`new`),e===`connected`&&this._sctpTransport&&this._sctpTransport._setState(`connected`)}_syncIceState(){if(!this._iceTransport)return;let e=this.iceConnectionState;this._iceTransport._setState(e)}_syncIceGatheringState(){if(!this._iceTransport)return;let e=this.iceGatheringState;this._iceTransport._setGatheringState(e)}_onconnectionstatechange=null;_ondatachannel=null;_onicecandidate=null;_oniceconnectionstatechange=null;_onicegatheringstatechange=null;_onnegotiationneeded=null;_onsignalingstatechange=null;get onconnectionstatechange(){return this._onconnectionstatechange}set onconnectionstatechange(e){this._onconnectionstatechange=e}get ondatachannel(){return this._ondatachannel}set ondatachannel(e){this._ondatachannel=e}get onicecandidate(){return this._onicecandidate}set onicecandidate(e){this._onicecandidate=e}get oniceconnectionstatechange(){return this._oniceconnectionstatechange}set oniceconnectionstatechange(e){this._oniceconnectionstatechange=e}get onicegatheringstatechange(){return this._onicegatheringstatechange}set onicegatheringstatechange(e){this._onicegatheringstatechange=e}get onnegotiationneeded(){return this._onnegotiationneeded}set onnegotiationneeded(e){this._onnegotiationneeded=e}get onsignalingstatechange(){return this._onsignalingstatechange}set onsignalingstatechange(e){this._onsignalingstatechange=e}_ontrack=null;get ontrack(){return this._ontrack}set ontrack(e){this._ontrack=e}get onicecandidateerror(){return null}set onicecandidateerror(e){}static generateCertificate(e){return generateCertificate(e)}};installSdpNegotiationMethods(RTCPeerConnection$1.prototype);const R=globalThis;R.RTCPeerConnection===void 0&&(R.RTCPeerConnection=RTCPeerConnection$1),R.RTCSessionDescription===void 0&&(R.RTCSessionDescription=L),R.RTCIceCandidate===void 0&&(R.RTCIceCandidate=RTCIceCandidate),R.RTCPeerConnectionIceEvent===void 0&&(R.RTCPeerConnectionIceEvent=RTCPeerConnectionIceEvent);const z=Symbol(`abort`),B=Symbol(`internal`);var Qe=class AbortSignal extends EventTarget$1{#e=!1;reason=void 0;onabort=null;constructor(e){if(super(),e!==B)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}[z](e){if(this.#e)return;this.#e=!0,this.reason=e??new E(`The operation was aborted.`,`AbortError`);let t=new Event$1(`abort`);typeof this.onabort==`function`&&this.onabort.call(this,t),this.dispatchEvent(t)}static abort(e){let t=new AbortSignal(B);return t[z](e),t}static timeout(e){let t=new AbortSignal(B);return setTimeout(()=>{t[z](new E(`The operation timed out.`,`TimeoutError`))},e),t}static any(e){let t=new AbortSignal(B);for(let n of e)if(n.aborted)return t[z](n.reason),t;let onAbort=()=>{if(!t.aborted){let n=e.find(e=>e.aborted);t[z](n?.reason)}};for(let t of e)t.addEventListener(`abort`,onAbort,{once:!0});return t}},$e=class AbortController{signal;constructor(){this.signal=new Qe(B)}abort(e){if(!(this instanceof AbortController))throw TypeError(`'abort' called on an object that is not a valid instance of AbortController.`);this.signal[z](e)}};const et=globalThis;globalThis.AbortController===void 0&&(et.AbortController=$e),globalThis.AbortSignal===void 0&&(et.AbortSignal=Qe);const tt={CustomEvent,MessageEvent:MessageEvent$1,ErrorEvent,CloseEvent,ProgressEvent};for(let[e,t]of Object.entries(tt))globalThis[e]===void 0&&Object.defineProperty(globalThis,e,{value:t,writable:!0,configurable:!0});const V=Symbol(`kState`),H=Symbol(`kType`);function isBrandCheck(e){return t=>typeof t==`object`&&!!t&&t[V]!==void 0&&t[H]===e}function dequeueValue(e){let{value:t,size:n}=e[V].queue.shift();return e[V].queueTotalSize=Math.max(0,e[V].queueTotalSize-n),t}function resetQueue(e){e[V].queue=[],e[V].queueTotalSize=0}function peekQueueValue(e){return e[V].queue[0].value}function enqueueValueWithSize(e,t,n){if(n=+n,typeof n!=`number`||n<0||Number.isNaN(n)||n===1/0)throw RangeError(`Invalid size: ${n}`);e[V].queue.push({value:t,size:n}),e[V].queueTotalSize+=n}function extractHighWaterMark(e,t){if(e===void 0)return t;if(e=+e,typeof e!=`number`||Number.isNaN(e)||e<0)throw RangeError(`Invalid highWaterMark: ${e}`);return e}function extractSizeAlgorithm(e){if(e===void 0)return()=>1;if(typeof e!=`function`)throw TypeError(`strategy.size must be a function`);return e}function transferArrayBuffer(e){return typeof ArrayBuffer.prototype.transfer==`function`?e.transfer():e.slice(0)}function isDetachedBuffer(e){if(typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer||e.byteLength!==0)return!1;try{return e.slice(0,0),!1}catch{return!0}}function typedArrayConstructorByTag(e){switch(e){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(e){switch(e){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(e){e.then(()=>{},()=>{})}function createPromiseCallback(e,t,n){if(typeof t!=`function`)throw TypeError(`${e} must be a function`);return async(...e)=>t.call(n,...e)}async function nonOpFlush(){}function nonOpStart(){}async function nonOpPull(){}async function nonOpCancel(){}async function nonOpWrite(){}const nt={__proto__:Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype),next:void 0,return:void 0};function createAsyncFromSyncIterator(e){let t={[Symbol.iterator]:()=>e.iterator},n=async function*(){return yield*t}();return{iterator:n,nextMethod:n.next,done:!1}}function getIterator(e,t=`sync`,n){if(n===void 0)if(t===`async`){if(n=e[Symbol.asyncIterator],n==null){let t=e[Symbol.iterator];if(t===void 0)throw TypeError(`Object is not iterable`);return createAsyncFromSyncIterator(getIterator(e,`sync`,t))}}else n=e[Symbol.iterator];if(n===void 0)throw TypeError(`Object is not iterable`);let r=n.call(e);if(typeof r!=`object`||!r)throw TypeError(`The iterator method must return an object`);return{iterator:r,nextMethod:r.next,done:!1}}function iteratorNext(e,t){let n;if(n=t===void 0?e.nextMethod.call(e.iterator):e.nextMethod.call(e.iterator,t),typeof n!=`object`||!n)throw TypeError(`The iterator.next() method must return an object`);return n}const rt=typeof globalThis.AbortController==`function`?globalThis.AbortController:class AbortControllerShim{signal={aborted:!1,reason:void 0,addEventListener(){},removeEventListener(){}};abort(e){this.signal.aborted=!0,this.signal.reason=e}},it=Symbol(`kAbort`),at=Symbol(`kCloseSentinel`),ot=Symbol(`kError`),st=Symbol(`kSkipThrow`);var WritableStream=class{[H]=`WritableStream`;[V];constructor(e={},t={}){if(e!=null&&typeof e!=`object`)throw TypeError(`sink must be an object`);if(t!=null&&typeof t!=`object`)throw TypeError(`strategy must be an object`);let n=e?.type;if(n!==void 0)throw RangeError(`Invalid type: ${n}`);this[V]=createWritableStreamState();let r=extractSizeAlgorithm(t?.size),i=extractHighWaterMark(t?.highWaterMark,1);setupWritableStreamDefaultControllerFromSink(this,e,i,r)}get locked(){if(!U(this))throw TypeError(`Invalid this`);return isWritableStreamLocked(this)}abort(e){return U(this)?isWritableStreamLocked(this)?Promise.reject(TypeError(`WritableStream is locked`)):writableStreamAbort(this,e):Promise.reject(TypeError(`Invalid this`))}close(){return U(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(!U(this))throw TypeError(`Invalid this`);return new WritableStreamDefaultWriter(this)}get[Symbol.toStringTag](){return`WritableStream`}},WritableStreamDefaultWriter=class{[H]=`WritableStreamDefaultWriter`;[V];constructor(e){if(!U(e))throw TypeError(`Expected a WritableStream`);this[V]={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,e)}get closed(){return W(this)?this[V].close.promise:Promise.reject(TypeError(`Invalid this`))}get desiredSize(){if(!W(this))throw TypeError(`Invalid this`);if(this[V].stream===void 0)throw TypeError(`Writer is not bound to a WritableStream`);return writableStreamDefaultWriterGetDesiredSize(this)}get ready(){return W(this)?this[V].ready.promise:Promise.reject(TypeError(`Invalid this`))}abort(e){return W(this)?this[V].stream===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamDefaultWriterAbort(this,e):Promise.reject(TypeError(`Invalid this`))}close(){if(!W(this))return Promise.reject(TypeError(`Invalid this`));let{stream:e}=this[V];return e===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamCloseQueuedOrInFlight(e)?Promise.reject(TypeError(`Failure to close WritableStream`)):writableStreamDefaultWriterClose(this)}releaseLock(){if(!W(this))throw TypeError(`Invalid this`);let{stream:e}=this[V];e!==void 0&&writableStreamDefaultWriterRelease(this)}write(e){return W(this)?this[V].stream===void 0?Promise.reject(TypeError(`Writer is not bound to a WritableStream`)):writableStreamDefaultWriterWrite(this,e):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`WritableStreamDefaultWriter`}},WritableStreamDefaultController=class{[H]=`WritableStreamDefaultController`;[V];constructor(e){if(e!==st)throw TypeError(`Illegal constructor`)}[it](e){let t=this[V].abortAlgorithm(e);return writableStreamDefaultControllerClearAlgorithms(this),t}[ot](){resetQueue(this)}get signal(){if(!ct(this))throw TypeError(`Invalid this`);return this[V].abortController.signal}error(e){if(!ct(this))throw TypeError(`Invalid this`);this[V].stream[V].state===`writable`&&writableStreamDefaultControllerError(this,e)}get[Symbol.toStringTag](){return`WritableStreamDefaultController`}};const U=isBrandCheck(`WritableStream`),W=isBrandCheck(`WritableStreamDefaultWriter`),ct=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(e){return e[V].writer!==void 0}function setupWritableStreamDefaultWriter(e,t){if(isWritableStreamLocked(t))throw TypeError(`WritableStream is locked`);switch(e[V].stream=t,t[V].writer=e,t[V].state){case`writable`:!writableStreamCloseQueuedOrInFlight(t)&&t[V].backpressure?e[V].ready=Promise.withResolvers():e[V].ready={promise:Promise.resolve(),resolve:void 0,reject:void 0},e[V].close=Promise.withResolvers();break;case`erroring`:e[V].ready={promise:Promise.reject(t[V].storedError),resolve:void 0,reject:void 0},setPromiseHandled(e[V].ready.promise),e[V].close=Promise.withResolvers();break;case`closed`:e[V].ready={promise:Promise.resolve(),resolve:void 0,reject:void 0},e[V].close={promise:Promise.resolve(),resolve:void 0,reject:void 0};break;default:e[V].ready={promise:Promise.reject(t[V].storedError),resolve:void 0,reject:void 0},e[V].close={promise:Promise.reject(t[V].storedError),resolve:void 0,reject:void 0},setPromiseHandled(e[V].ready.promise),setPromiseHandled(e[V].close.promise)}}function writableStreamAbort(e,t){let{state:n,controller:r}=e[V];if(n===`closed`||n===`errored`)return Promise.resolve();if(r[V].abortController.abort(t),e[V].pendingAbortRequest.abort.promise!==void 0)return e[V].pendingAbortRequest.abort.promise;let i=!1;n===`erroring`&&(i=!0,t=void 0);let a=Promise.withResolvers();return e[V].pendingAbortRequest={abort:a,reason:t,wasAlreadyErroring:i},i||writableStreamStartErroring(e,t),a.promise}function writableStreamClose(e){let{state:t,writer:n,backpressure:r,controller:i}=e[V];if(t===`closed`||t===`errored`)return Promise.reject(TypeError(`WritableStream is closed`));e[V].closeRequest=Promise.withResolvers();let{promise:a}=e[V].closeRequest;return n!==void 0&&r&&t===`writable`&&n[V].ready.resolve?.(),writableStreamDefaultControllerClose(i),a}function writableStreamUpdateBackpressure(e,t){let{writer:n}=e[V];n!==void 0&&e[V].backpressure!==t&&(t?n[V].ready=Promise.withResolvers():n[V].ready.resolve?.()),e[V].backpressure=t}function writableStreamStartErroring(e,t){let{controller:n,writer:r}=e[V];e[V].state=`erroring`,e[V].storedError=t,r!==void 0&&writableStreamDefaultWriterEnsureReadyPromiseRejected(r,t),!writableStreamHasOperationMarkedInFlight(e)&&n[V].started&&writableStreamFinishErroring(e)}function writableStreamRejectCloseAndClosedPromiseIfNeeded(e){e[V].closeRequest.promise!==void 0&&(e[V].closeRequest.reject?.(e[V].storedError),e[V].closeRequest={promise:void 0,resolve:void 0,reject:void 0}),setPromiseHandled(e[V].close.promise),e[V].close.reject?.(e[V].storedError);let{writer:t}=e[V];t!==void 0&&(setPromiseHandled(t[V].close.promise),t[V].close.reject?.(e[V].storedError))}function writableStreamMarkFirstWriteRequestInFlight(e){let t=e[V].writeRequests.shift();e[V].inFlightWriteRequest=t}function writableStreamMarkCloseRequestInFlight(e){e[V].inFlightCloseRequest=e[V].closeRequest,e[V].closeRequest={promise:void 0,resolve:void 0,reject:void 0}}function writableStreamHasOperationMarkedInFlight(e){return e[V].inFlightWriteRequest.promise!==void 0||e[V].inFlightCloseRequest.promise!==void 0}function writableStreamFinishInFlightWriteWithError(e,t){e[V].inFlightWriteRequest.reject?.(t),e[V].inFlightWriteRequest={promise:void 0,resolve:void 0,reject:void 0},writableStreamDealWithRejection(e,t)}function writableStreamFinishInFlightWrite(e){e[V].inFlightWriteRequest.resolve?.(),e[V].inFlightWriteRequest={promise:void 0,resolve:void 0,reject:void 0}}function writableStreamFinishInFlightCloseWithError(e,t){e[V].inFlightCloseRequest.reject?.(t),e[V].inFlightCloseRequest={promise:void 0,resolve:void 0,reject:void 0},e[V].pendingAbortRequest.abort.promise!==void 0&&(e[V].pendingAbortRequest.abort.reject?.(t),e[V].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1}),writableStreamDealWithRejection(e,t)}function writableStreamFinishInFlightClose(e){e[V].inFlightCloseRequest.resolve?.(),e[V].inFlightCloseRequest={promise:void 0,resolve:void 0,reject:void 0},e[V].state===`erroring`&&(e[V].storedError=void 0,e[V].pendingAbortRequest.abort.promise!==void 0&&(e[V].pendingAbortRequest.abort.resolve?.(),e[V].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1})),e[V].state=`closed`,e[V].writer!==void 0&&e[V].writer[V].close.resolve?.(),e[V].close.resolve?.()}function writableStreamFinishErroring(e){e[V].state=`errored`,e[V].controller[ot]();let t=e[V].storedError;for(let n of e[V].writeRequests)n.reject?.(t);if(e[V].writeRequests=[],e[V].pendingAbortRequest.abort.promise===void 0){writableStreamRejectCloseAndClosedPromiseIfNeeded(e);return}let n=e[V].pendingAbortRequest;if(e[V].pendingAbortRequest={abort:{promise:void 0,resolve:void 0,reject:void 0},reason:void 0,wasAlreadyErroring:!1},n.wasAlreadyErroring){n.abort.reject?.(t),writableStreamRejectCloseAndClosedPromiseIfNeeded(e);return}e[V].controller[it](n.reason).then(()=>{n.abort.resolve?.(),writableStreamRejectCloseAndClosedPromiseIfNeeded(e)},t=>{n.abort.reject?.(t),writableStreamRejectCloseAndClosedPromiseIfNeeded(e)})}function writableStreamDealWithRejection(e,t){if(e[V].state===`writable`){writableStreamStartErroring(e,t);return}writableStreamFinishErroring(e)}function writableStreamCloseQueuedOrInFlight(e){return e[V].closeRequest.promise!==void 0||e[V].inFlightCloseRequest.promise!==void 0}function writableStreamAddWriteRequest(e){let{promise:t,resolve:n,reject:r}=Promise.withResolvers();return e[V].writeRequests.push({promise:t,resolve:n,reject:r}),t}function writableStreamDefaultWriterWrite(e,t){let{stream:n}=e[V],{controller:r}=n[V],i=writableStreamDefaultControllerGetChunkSize(r,t);if(n!==e[V].stream)return Promise.reject(TypeError(`Mismatched WritableStreams`));let{state:a}=n[V];if(a===`errored`)return Promise.reject(n[V].storedError);if(writableStreamCloseQueuedOrInFlight(n)||a===`closed`)return Promise.reject(TypeError(`WritableStream is closed`));if(a===`erroring`)return Promise.reject(n[V].storedError);let o=writableStreamAddWriteRequest(n);return writableStreamDefaultControllerWrite(r,t,i),o}function writableStreamDefaultWriterRelease(e){let{stream:t}=e[V],n=TypeError(`Writer has been released`);writableStreamDefaultWriterEnsureReadyPromiseRejected(e,n),writableStreamDefaultWriterEnsureClosedPromiseRejected(e,n),t[V].writer=void 0,e[V].stream=void 0}function writableStreamDefaultWriterGetDesiredSize(e){let{stream:t}=e[V];switch(t[V].state){case`errored`:case`erroring`:return null;case`closed`:return 0}return writableStreamDefaultControllerGetDesiredSize(t[V].controller)}function writableStreamDefaultWriterEnsureReadyPromiseRejected(e,t){e[V].ready.reject?(e[V].ready.reject(t),e[V].ready.resolve=void 0,e[V].ready.reject=void 0):e[V].ready={promise:Promise.reject(t),resolve:void 0,reject:void 0},setPromiseHandled(e[V].ready.promise)}function writableStreamDefaultWriterEnsureClosedPromiseRejected(e,t){e[V].close.reject?(e[V].close.reject(t),e[V].close.resolve=void 0,e[V].close.reject=void 0):e[V].close={promise:Promise.reject(t),resolve:void 0,reject:void 0},setPromiseHandled(e[V].close.promise)}function writableStreamDefaultWriterCloseWithErrorPropagation(e){let{stream:t}=e[V],{state:n}=t[V];return writableStreamCloseQueuedOrInFlight(t)||n===`closed`?Promise.resolve():n===`errored`?Promise.reject(t[V].storedError):writableStreamDefaultWriterClose(e)}function writableStreamDefaultWriterClose(e){return writableStreamClose(e[V].stream)}function writableStreamDefaultWriterAbort(e,t){return writableStreamAbort(e[V].stream,t)}function writableStreamDefaultControllerWrite(e,t,n){try{enqueueValueWithSize(e,t,n)}catch(t){writableStreamDefaultControllerErrorIfNeeded(e,t);return}let{stream:r}=e[V];!writableStreamCloseQueuedOrInFlight(r)&&r[V].state===`writable`&&writableStreamUpdateBackpressure(r,writableStreamDefaultControllerGetBackpressure(e)),writableStreamDefaultControllerAdvanceQueueIfNeeded(e)}function writableStreamDefaultControllerProcessWrite(e,t){let{stream:n,writeAlgorithm:r}=e[V];writableStreamMarkFirstWriteRequestInFlight(n),r(t,e).then(()=>{writableStreamFinishInFlightWrite(n);let{state:t}=n[V];dequeueValue(e),!writableStreamCloseQueuedOrInFlight(n)&&t===`writable`&&writableStreamUpdateBackpressure(n,writableStreamDefaultControllerGetBackpressure(e)),writableStreamDefaultControllerAdvanceQueueIfNeeded(e)},t=>{n[V].state===`writable`&&writableStreamDefaultControllerClearAlgorithms(e),writableStreamFinishInFlightWriteWithError(n,t)})}function writableStreamDefaultControllerProcessClose(e){let{closeAlgorithm:t,queue:n,stream:r}=e[V];writableStreamMarkCloseRequestInFlight(r),dequeueValue(e);let i=t();writableStreamDefaultControllerClearAlgorithms(e),i.then(()=>writableStreamFinishInFlightClose(r),e=>writableStreamFinishInFlightCloseWithError(r,e))}function writableStreamDefaultControllerGetDesiredSize(e){return e[V].highWaterMark-e[V].queueTotalSize}function writableStreamDefaultControllerGetChunkSize(e,t){let{stream:n,sizeAlgorithm:r}=e[V];if(r===void 0)return 1;try{return r(t)}catch(t){return writableStreamDefaultControllerErrorIfNeeded(e,t),1}}function writableStreamDefaultControllerErrorIfNeeded(e,t){e[V].stream[V].state===`writable`&&writableStreamDefaultControllerError(e,t)}function writableStreamDefaultControllerError(e,t){writableStreamDefaultControllerClearAlgorithms(e),writableStreamStartErroring(e[V].stream,t)}function writableStreamDefaultControllerClose(e){enqueueValueWithSize(e,at,0),writableStreamDefaultControllerAdvanceQueueIfNeeded(e)}function writableStreamDefaultControllerClearAlgorithms(e){e[V].writeAlgorithm=void 0,e[V].closeAlgorithm=void 0,e[V].abortAlgorithm=void 0,e[V].sizeAlgorithm=void 0}function writableStreamDefaultControllerGetBackpressure(e){return writableStreamDefaultControllerGetDesiredSize(e)<=0}function writableStreamDefaultControllerAdvanceQueueIfNeeded(e){let{queue:t,started:n,stream:r}=e[V];if(!n||r[V].inFlightWriteRequest.promise!==void 0)return;if(r[V].state===`erroring`){writableStreamFinishErroring(r);return}if(!t.length)return;let i=peekQueueValue(e);i===at?writableStreamDefaultControllerProcessClose(e):writableStreamDefaultControllerProcessWrite(e,i)}function setupWritableStreamDefaultControllerFromSink(e,t,n,r){let i=new WritableStreamDefaultController(st),a=t?.start,o=t?.write,s=t?.close,c=t?.abort;setupWritableStreamDefaultController(e,i,a?a.bind(t,i):nonOpStart,o?createPromiseCallback(`sink.write`,o,t):nonOpWrite,s?createPromiseCallback(`sink.close`,s,t):nonOpCancel,c?createPromiseCallback(`sink.abort`,c,t):nonOpCancel,n,r)}function setupWritableStreamDefaultController(e,t,n,r,i,a,o,s){t[V]={abortAlgorithm:a,closeAlgorithm:i,highWaterMark:o,queue:[],queueTotalSize:0,abortController:new rt,sizeAlgorithm:s,started:!1,stream:e,writeAlgorithm:r},e[V].controller=t,writableStreamUpdateBackpressure(e,writableStreamDefaultControllerGetBackpressure(t));let c=n();new Promise(e=>e(c)).then(()=>{t[V].started=!0,writableStreamDefaultControllerAdvanceQueueIfNeeded(t)},n=>{t[V].started=!0,writableStreamDealWithRejection(e,n)})}function createWritableStream(e,t,n,r,i=1,a=()=>1){let o=Object.create(WritableStream.prototype);return o[H]=`WritableStream`,o[V]=createWritableStreamState(),setupWritableStreamDefaultController(o,new WritableStreamDefaultController(st),e,t,n,r,i,a),o}const lt=Symbol(`kCancel`),G=Symbol(`kClose`),K=Symbol(`kChunk`),q=Symbol(`kError`),ut=Symbol(`kPull`),dt=Symbol(`kRelease`),J=Symbol(`kSkipThrow`);let ft,pt;function lazyReadableReleasedError(){return ft||(ft=TypeError(`Reader released`),ft)}function lazyReadableReleasingError(){return pt||(pt=TypeError(`Releasing reader`),pt)}function createAbortError(){if(typeof globalThis.DOMException==`function`)return new DOMException(`The operation was aborted`,`AbortError`);let e=Error(`The operation was aborted`);return e.name=`AbortError`,e}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(this,`ReadableStream`)}[H]=`ReadableStream`;[V];constructor(e={},t={}){if(e!=null&&typeof e!=`object`)throw TypeError(`source must be an object`);if(t!=null&&typeof t!=`object`)throw TypeError(`strategy must be an object`);this[V]=createReadableStreamState();let n=t?.size,r=t?.highWaterMark,i=e?.type;if(i!==void 0){if(`${i}`==`bytes`){if(n!==void 0)throw RangeError(`strategy.size must not be set for a byte stream`);setupReadableByteStreamControllerFromSource(this,e,extractHighWaterMark(r,0));return}throw RangeError(`Invalid type: ${i}`)}setupReadableStreamDefaultControllerFromSource(this,e,extractHighWaterMark(r,1),extractSizeAlgorithm(n))}get locked(){if(!Y(this))throw TypeError(`Invalid this`);return isReadableStreamLocked(this)}static from(e){return readableStreamFromIterable(e)}cancel(e=void 0){return Y(this)?isReadableStreamLocked(this)?Promise.reject(TypeError(`ReadableStream is locked`)):readableStreamCancel(this,e):Promise.reject(TypeError(`Invalid this`))}getReader(e={}){if(!Y(this))throw TypeError(`Invalid this`);if(e!=null&&typeof e!=`object`)throw TypeError(`options must be an object`);let t=e?.mode;if(t===void 0)return new ReadableStreamDefaultReader(this);if(`${t}`==`byob`)return new ReadableStreamBYOBReader(this);throw RangeError(`Invalid mode: ${t}`)}pipeThrough(e,t={}){if(!Y(this))throw TypeError(`Invalid this`);let n=e?.readable;if(!Y(n))throw TypeError(`transform.readable must be a ReadableStream`);let r=e?.writable;if(!U(r))throw TypeError(`transform.writable must be a WritableStream`);if(t!=null&&typeof t!=`object`)throw TypeError(`options must be an object`);let i=t?.preventAbort,a=t?.preventCancel,o=t?.preventClose,s=t?.signal;if(s!==void 0&&!(s instanceof Object&&`aborted`in s))throw TypeError(`options.signal must be an AbortSignal`);if(isReadableStreamLocked(this))throw TypeError(`The ReadableStream is locked`);if(isWritableStreamLocked(r))throw TypeError(`The WritableStream is locked`);return setPromiseHandled(readableStreamPipeTo(this,r,!!o,!!i,!!a,s)),n}pipeTo(e,t={}){try{if(!Y(this))throw TypeError(`Invalid this`);if(!U(e))throw TypeError(`destination must be a WritableStream`);if(t!=null&&typeof t!=`object`)throw TypeError(`options must be an object`);let n=t?.preventAbort,r=t?.preventCancel,i=t?.preventClose,a=t?.signal;if(a!==void 0&&!(a instanceof Object&&`aborted`in a))throw TypeError(`options.signal must be an AbortSignal`);if(isReadableStreamLocked(this))throw TypeError(`The ReadableStream is locked`);if(isWritableStreamLocked(e))throw TypeError(`The WritableStream is locked`);return readableStreamPipeTo(this,e,!!i,!!n,!!r,a)}catch(e){return Promise.reject(e)}}tee(){if(!Y(this))throw TypeError(`Invalid this`);let e=this[V].controller;return Z(e)?readableByteStreamTee(this):readableStreamDefaultTee(this,!1)}values(e={}){if(!Y(this))throw TypeError(`Invalid this`);if(e!=null&&typeof e!=`object`)throw TypeError(`options must be an object`);let t=!!e?.preventCancel,n=new ReadableStreamDefaultReader(this),r={done:!1,current:void 0},i=!1;function nextSteps(){if(r.done)return Promise.resolve({done:!0,value:void 0});if(n[V].stream===void 0)return Promise.reject(TypeError(`The reader is not bound to a ReadableStream`));let{promise:e,resolve:t,reject:i}=Promise.withResolvers();return readableStreamDefaultReaderRead(n,{[K](e){r.current=void 0,t({value:e,done:!1})},[G](){r.current=void 0,r.done=!0,readableStreamReaderGenericRelease(n),t({done:!0,value:void 0})},[q](e){r.current=void 0,r.done=!0,readableStreamReaderGenericRelease(n),i(e)}}),e}async function returnSteps(e){if(r.done)return{done:!0,value:e};if(r.done=!0,n[V].stream===void 0)throw TypeError(`The reader is not bound to a ReadableStream`);if(!t){let t=readableStreamReaderGenericCancel(n,e);return readableStreamReaderGenericRelease(n),await t,{done:!0,value:e}}return readableStreamReaderGenericRelease(n),{done:!0,value:e}}return Object.setPrototypeOf({next(){return i||=(r.current=Promise.resolve(),!0),r.current=r.current===void 0?nextSteps():r.current.then(nextSteps,nextSteps),r.current},return(e){return i=!0,r.current=r.current===void 0?returnSteps(e):r.current.then(()=>returnSteps(e),()=>returnSteps(e)),r.current},[Symbol.asyncIterator](){return this}},nt)}[Symbol.asyncIterator](){return this.values()}get[Symbol.toStringTag](){return`ReadableStream`}},DefaultReadRequest=class{[V];constructor(){this[V]=Promise.withResolvers()}[K](e){this[V].resolve?.({value:e,done:!1})}[G](){this[V].resolve?.({value:void 0,done:!0})}[q](e){this[V].reject?.(e)}get promise(){return this[V].promise}},ReadableStreamDefaultReader=class{[H]=`ReadableStreamDefaultReader`;[V];constructor(e){if(!Y(e))throw TypeError(`Expected a ReadableStream`);this[V]={readRequests:[],stream:void 0,close:{promise:void 0,resolve:void 0,reject:void 0}},setupReadableStreamDefaultReader(this,e)}read(){if(!X(this))return Promise.reject(TypeError(`Invalid this`));if(this[V].stream===void 0)return Promise.reject(TypeError(`The reader is not attached to a stream`));let e=this[V].stream,t=e[V].controller;if(e[V].state===`readable`&&mt(t)&&t[V].queue.length>0){e[V].disturbed=!0;let n=dequeueValue(t);return t[V].closeRequested&&!t[V].queue.length?(readableStreamDefaultControllerClearAlgorithms(t),readableStreamClose(e)):readableStreamDefaultControllerCallPullIfNeeded(t),Promise.resolve({value:n,done:!1})}let n=new DefaultReadRequest;return readableStreamDefaultReaderRead(this,n),n.promise}releaseLock(){if(!X(this))throw TypeError(`Invalid this`);this[V].stream!==void 0&&readableStreamDefaultReaderRelease(this)}get closed(){return X(this)?this[V].close.promise:Promise.reject(TypeError(`Invalid this`))}cancel(e=void 0){return X(this)?this[V].stream===void 0?Promise.reject(TypeError(`The reader is not attached to a stream`)):readableStreamReaderGenericCancel(this,e):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`ReadableStreamDefaultReader`}},ReadableStreamDefaultController=class{[H]=`ReadableStreamDefaultController`;[V]={};constructor(e){if(e!==J)throw TypeError(`Illegal constructor`)}get desiredSize(){return readableStreamDefaultControllerGetDesiredSize(this)}close(){if(!readableStreamDefaultControllerCanCloseOrEnqueue(this))throw TypeError(`Controller is already closed`);readableStreamDefaultControllerClose(this)}enqueue(e=void 0){if(!readableStreamDefaultControllerCanCloseOrEnqueue(this))throw TypeError(`Controller is already closed`);readableStreamDefaultControllerEnqueue(this,e)}error(e=void 0){readableStreamDefaultControllerError(this,e)}[lt](e){return readableStreamDefaultControllerCancelSteps(this,e)}[ut](e){readableStreamDefaultControllerPullSteps(this,e)}[dt](){}get[Symbol.toStringTag](){return`ReadableStreamDefaultController`}};const Y=isBrandCheck(`ReadableStream`),mt=isBrandCheck(`ReadableStreamDefaultController`),X=isBrandCheck(`ReadableStreamDefaultReader`);function isReadableStreamLocked(e){return e[V].reader!==void 0}function readableStreamCancel(e,t){switch(e[V].disturbed=!0,e[V].state){case`closed`:return Promise.resolve();case`errored`:return Promise.reject(e[V].storedError)}readableStreamClose(e);let n=e[V].reader;if(n!==void 0&&readableStreamHasBYOBReader(e)){let e=n[V].readIntoRequests;n[V].readIntoRequests=[];for(let t=0;t<e.length;t++)e[t][G](void 0)}return e[V].controller[lt](t).then(()=>{})}function readableStreamClose(e){e[V].state=`closed`,e[V].closedPromise.resolve();let{reader:t}=e[V];if(t!==void 0&&(t[V].close.resolve?.(),readableStreamHasDefaultReader(e))){for(let e=0;e<t[V].readRequests.length;e++)t[V].readRequests[e][G]();t[V].readRequests=[]}}function readableStreamError(e,t){e[V].state=`errored`,e[V].storedError=t,setPromiseHandled(e[V].closedPromise.promise),e[V].closedPromise.reject(t);let{reader:n}=e[V];if(n!==void 0){if(setPromiseHandled(n[V].close.promise),n[V].close.reject?.(t),readableStreamHasDefaultReader(e)){for(let e=0;e<n[V].readRequests.length;e++)n[V].readRequests[e][q](t);n[V].readRequests=[]}else if(readableStreamHasBYOBReader(e)){for(let e=0;e<n[V].readIntoRequests.length;e++)n[V].readIntoRequests[e][q](t);n[V].readIntoRequests=[]}}}function readableStreamHasDefaultReader(e){let{reader:t}=e[V];return t===void 0?!1:t[V]!==void 0&&t[H]===`ReadableStreamDefaultReader`}function readableStreamGetNumReadRequests(e){return e[V].reader[V].readRequests.length}function readableStreamFulfillReadRequest(e,t,n){let{reader:r}=e[V],i=r[V].readRequests.shift();n?i[G]():i[K](t)}function readableStreamAddReadRequest(e,t){e[V].reader[V].readRequests.push(t)}function readableStreamReaderGenericCancel(e,t){let{stream:n}=e[V];return readableStreamCancel(n,t)}function readableStreamReaderGenericInitialize(e,t){switch(e[V].stream=t,t[V].reader=e,t[V].state){case`readable`:e[V].close=Promise.withResolvers();break;case`closed`:e[V].close={promise:Promise.resolve(),resolve:void 0,reject:void 0};break;case`errored`:e[V].close={promise:Promise.reject(t[V].storedError),resolve:void 0,reject:void 0},setPromiseHandled(e[V].close.promise);break}}function readableStreamReaderGenericRelease(e){let{stream:t}=e[V],n=lazyReadableReleasedError();t[V].state===`readable`?e[V].close.reject?.(n):e[V].close={promise:Promise.reject(n),resolve:void 0,reject:void 0},setPromiseHandled(e[V].close.promise),t[V].controller[dt](),t[V].reader=void 0,e[V].stream=void 0}function readableStreamDefaultReaderRelease(e){readableStreamReaderGenericRelease(e),readableStreamDefaultReaderErrorReadRequests(e,lazyReadableReleasingError())}function readableStreamDefaultReaderErrorReadRequests(e,t){for(let n=0;n<e[V].readRequests.length;++n)e[V].readRequests[n][q](t);e[V].readRequests=[]}function readableStreamDefaultReaderRead(e,t){let{stream:n}=e[V];switch(n[V].disturbed=!0,n[V].state){case`closed`:t[G]();break;case`errored`:t[q](n[V].storedError);break;case`readable`:n[V].controller[ut](t);break}}function setupReadableStreamDefaultReader(e,t){if(isReadableStreamLocked(t))throw TypeError(`ReadableStream is locked`);readableStreamReaderGenericInitialize(e,t),e[V].readRequests=[]}function readableStreamDefaultControllerClose(e){readableStreamDefaultControllerCanCloseOrEnqueue(e)&&(e[V].closeRequested=!0,e[V].queue.length||(readableStreamDefaultControllerClearAlgorithms(e),readableStreamClose(e[V].stream)))}function readableStreamDefaultControllerEnqueue(e,t){if(!readableStreamDefaultControllerCanCloseOrEnqueue(e))return;let{stream:n}=e[V];if(isReadableStreamLocked(n)&&readableStreamGetNumReadRequests(n))readableStreamFulfillReadRequest(n,t,!1);else try{enqueueValueWithSize(e,t,e[V].sizeAlgorithm(t))}catch(t){throw readableStreamDefaultControllerError(e,t),t}readableStreamDefaultControllerCallPullIfNeeded(e)}function readableStreamDefaultControllerCanCloseOrEnqueue(e){let{stream:t}=e[V];return!e[V].closeRequested&&t[V].state===`readable`}function readableStreamDefaultControllerGetDesiredSize(e){let{stream:t,highWaterMark:n,queueTotalSize:r}=e[V];switch(t[V].state){case`errored`:return null;case`closed`:return 0;default:return n-r}}function readableStreamDefaultControllerHasBackpressure(e){return!readableStreamDefaultControllerShouldCallPull(e)}function readableStreamDefaultControllerShouldCallPull(e){let{stream:t}=e[V];if(!readableStreamDefaultControllerCanCloseOrEnqueue(e)||!e[V].started)return!1;if(isReadableStreamLocked(t)&&readableStreamGetNumReadRequests(t))return!0;let n=readableStreamDefaultControllerGetDesiredSize(e);return n!==null&&n>0}function readableStreamDefaultControllerCallPullIfNeeded(e){if(readableStreamDefaultControllerShouldCallPull(e)){if(e[V].pulling){e[V].pullAgain=!0;return}e[V].pulling=!0,e[V].pullAlgorithm(e).then(()=>{e[V].pulling=!1,e[V].pullAgain&&(e[V].pullAgain=!1,readableStreamDefaultControllerCallPullIfNeeded(e))},t=>readableStreamDefaultControllerError(e,t))}}function readableStreamDefaultControllerClearAlgorithms(e){e[V].pullAlgorithm=void 0,e[V].cancelAlgorithm=void 0,e[V].sizeAlgorithm=void 0}function readableStreamDefaultControllerError(e,t){let{stream:n}=e[V];n[V].state===`readable`&&(resetQueue(e),readableStreamDefaultControllerClearAlgorithms(e),readableStreamError(n,t))}function readableStreamDefaultControllerCancelSteps(e,t){resetQueue(e);let n=e[V].cancelAlgorithm(t);return readableStreamDefaultControllerClearAlgorithms(e),n}function readableStreamDefaultControllerPullSteps(e,t){let{stream:n,queue:r}=e[V];if(r.length){let i=dequeueValue(e);e[V].closeRequested&&!r.length?(readableStreamDefaultControllerClearAlgorithms(e),readableStreamClose(n)):readableStreamDefaultControllerCallPullIfNeeded(e),t[K](i);return}readableStreamAddReadRequest(n,t),readableStreamDefaultControllerCallPullIfNeeded(e)}function setupReadableStreamDefaultController(e,t,n,r,i,a,o){t[V]={cancelAlgorithm:i,closeRequested:!1,highWaterMark:a,pullAgain:!1,pullAlgorithm:r,pulling:!1,queue:[],queueTotalSize:0,started:!1,sizeAlgorithm:o,stream:e},e[V].controller=t;let s=n();new Promise(e=>e(s)).then(()=>{t[V].started=!0,readableStreamDefaultControllerCallPullIfNeeded(t)},e=>readableStreamDefaultControllerError(t,e))}function setupReadableStreamDefaultControllerFromSource(e,t,n,r){let i=new ReadableStreamDefaultController(J),a=t?.start,o=t?.pull,s=t?.cancel;setupReadableStreamDefaultController(e,i,a?a.bind(t,i):nonOpStart,o?createPromiseCallback(`source.pull`,o,t):nonOpPull,s?createPromiseCallback(`source.cancel`,s,t):nonOpCancel,n,r)}function createReadableStream(e,t,n,r=1,i=()=>1){let a=Object.create(ReadableStream$1.prototype);return a[H]=`ReadableStream`,a[V]=createReadableStreamState(),setupReadableStreamDefaultController(a,new ReadableStreamDefaultController(J),e,t,n,r,i),a}function readableStreamFromIterable(e){let t,n=getIterator(e,`async`),r=nonOpStart;async function pullAlgorithm(){let e=iteratorNext(n);return Promise.resolve(e).then(e=>{if(typeof e!=`object`||!e)throw TypeError(`The promise returned by the iterator.next() method must fulfill with an object`);e.done?readableStreamDefaultControllerClose(t[V].controller):readableStreamDefaultControllerEnqueue(t[V].controller,e.value)})}async function cancelAlgorithm(e){let t=n.iterator,r=t.return;if(r===void 0)return Promise.resolve();let i=r.call(t,e);return Promise.resolve(i).then(e=>{if(typeof e!=`object`||!e)throw TypeError(`The promise returned by the iterator.return() method must fulfill with an object`)})}return t=createReadableStream(r,pullAlgorithm,cancelAlgorithm,0),t}function readableStreamPipeTo(e,t,n,r,i,a){let o,s;try{o=new ReadableStreamDefaultReader(e),s=new WritableStreamDefaultWriter(t)}catch(e){return Promise.reject(e)}e[V].disturbed=!0;let c=!1,{promise:l,resolve:u,reject:d}=Promise.withResolvers(),f={currentWrite:Promise.resolve()},p;function finalize(e,t){writableStreamDefaultWriterRelease(s),readableStreamReaderGenericRelease(o),a!==void 0&&p&&(a.removeEventListener(`abort`,p),p=void 0),e?d(t):u()}async function waitForCurrentWrite(){let e=f.currentWrite;await e,e!==f.currentWrite&&await waitForCurrentWrite()}function shutdownWithAnAction(e,n,r){if(c)return;if(c=!0,t[V].state===`writable`&&!writableStreamCloseQueuedOrInFlight(t)){waitForCurrentWrite().then(complete,e=>finalize(!0,e));return}complete();function complete(){e().then(()=>finalize(!!n,r),e=>finalize(!0,e))}}function shutdown(e,n){if(!c){if(c=!0,t[V].state===`writable`&&!writableStreamCloseQueuedOrInFlight(t)){waitForCurrentWrite().then(()=>finalize(!!e,n),e=>finalize(!0,e));return}finalize(!!e,n)}}function abortAlgorithm(){let n;n=a.reason&&a.reason.name===`AbortError`?createAbortError():a.reason;let o=[];r||o.push(()=>t[V].state===`writable`?writableStreamAbort(t,n):Promise.resolve()),i||o.push(()=>e[V].state===`readable`?readableStreamCancel(e,n):Promise.resolve()),shutdownWithAnAction(()=>Promise.all(o.map(e=>e())).then(()=>void 0),!0,n)}function watchErrored(e,t,n){e[V].state===`errored`?n(e[V].storedError):t.then(void 0,n)}function watchClosed(e,t,n){e[V].state===`closed`?n():t.then(n,()=>{})}class PipeToReadRequest{[K](e){_(()=>{f.currentWrite=writableStreamDefaultWriterWrite(s,e),setPromiseHandled(f.currentWrite),m.resolve(!1)})}[G](){m.resolve(!0)}[q](e){m.reject(e)}}let m={resolve:null,reject:null};async function step(){if(c||t[V].backpressure&&(await s[V].ready.promise,c))return!0;let n=e[V].controller;if(e[V].state===`readable`&&mt(n)&&n[V].queue.length>0){for(;n[V].queue.length>0;){if(c)return!0;let r=dequeueValue(n);if(n[V].closeRequested&&!n[V].queue.length&&(readableStreamDefaultControllerClearAlgorithms(n),readableStreamClose(e)),f.currentWrite=writableStreamDefaultWriterWrite(s,r),setPromiseHandled(f.currentWrite),t[V].backpressure||t[V].state!==`writable`||writableStreamCloseQueuedOrInFlight(t))break}return readableStreamDefaultControllerCallPullIfNeeded(n),e[V].state===`closed`}let{promise:r,resolve:i,reject:a}=Promise.withResolvers();return m={resolve:i,reject:a},readableStreamDefaultReaderRead(o,new PipeToReadRequest),r}async function run(){for(;!await step(););}if(a!==void 0){if(a.aborted)return abortAlgorithm(),l;p=abortAlgorithm,a.addEventListener(`abort`,p,{once:!0})}if(setPromiseHandled(run()),watchErrored(e,o[V].close.promise,e=>{if(!r)return shutdownWithAnAction(()=>writableStreamAbort(t,e),!0,e);shutdown(!0,e)}),watchErrored(t,s[V].close.promise,t=>{if(!i)return shutdownWithAnAction(()=>readableStreamCancel(e,t),!0,t);shutdown(!0,t)}),watchClosed(e,o[V].close.promise,()=>{if(!n)return shutdownWithAnAction(()=>writableStreamDefaultWriterCloseWithErrorPropagation(s));shutdown()}),writableStreamCloseQueuedOrInFlight(t)||t[V].state===`closed`){let t=TypeError(`Destination WritableStream is closed`);i?shutdown(!0,t):shutdownWithAnAction(()=>readableStreamCancel(e,t),!0,t)}return l}function readableStreamDefaultTee(e,t){let n=new ReadableStreamDefaultReader(e),r=!1,i=!1,a=!1,o,s,c,l,u=Promise.withResolvers();async function pullAlgorithm(){r||(r=!0,readableStreamDefaultReaderRead(n,{[K](e){_(()=>{r=!1;let n=e,o=e;if(!a&&t)try{o=structuredClone(o)}catch{}i||readableStreamDefaultControllerEnqueue(c[V].controller,n),a||readableStreamDefaultControllerEnqueue(l[V].controller,o)})},[G](){_(()=>{r=!1,i||readableStreamDefaultControllerClose(c[V].controller),a||readableStreamDefaultControllerClose(l[V].controller),(!i||!a)&&u.resolve(void 0)})},[q](){r=!1}}))}function cancel1Algorithm(t){if(i=!0,o=t,a){let t=[o,s];u.resolve(readableStreamCancel(e,t))}return u.promise}function cancel2Algorithm(t){if(a=!0,s=t,i){let t=[o,s];u.resolve(readableStreamCancel(e,t))}return u.promise}return c=createReadableStream(nonOpStart,pullAlgorithm,cancel1Algorithm),l=createReadableStream(nonOpStart,pullAlgorithm,cancel2Algorithm),n[V].close.promise.then(void 0,e=>{readableStreamDefaultControllerError(c[V].controller,e),readableStreamDefaultControllerError(l[V].controller,e),(!i||!a)&&u.resolve(void 0)}),[c,l]}var BYOBReadIntoRequest=class{[V];constructor(){this[V]=Promise.withResolvers()}[K](e){this[V].resolve?.({value:e,done:!1})}[G](e){this[V].resolve?.({value:e,done:!0})}[q](e){this[V].reject?.(e)}get promise(){return this[V].promise}},ReadableStreamBYOBReader=class{[H]=`ReadableStreamBYOBReader`;[V];constructor(e){if(!Y(e))throw TypeError(`Expected a ReadableStream`);this[V]={readIntoRequests:[],stream:void 0,close:{promise:void 0,resolve:void 0,reject:void 0}},setupReadableStreamBYOBReader(this,e)}read(e,t={}){if(!Q(this))return Promise.reject(TypeError(`Invalid this`));if(typeof e!=`object`||!e||!ArrayBuffer.isView(e))return Promise.reject(TypeError(`view must be an ArrayBufferView`));let n=e.buffer,r=e.byteLength;if(r===0)return Promise.reject(TypeError(`view must have non-zero byteLength`));if(n.byteLength===0)return isDetachedBuffer(n)?Promise.reject(TypeError(`view's buffer has been detached`)):Promise.reject(TypeError(`view's buffer must have non-zero byteLength`));let i=t?.min??1;if(typeof i!=`number`||i<1||!Number.isInteger(i)||Number.isNaN(i))return Promise.reject(TypeError(`options.min must be a positive integer`));let a=e[Symbol.toStringTag];if(a!==void 0&&a!==`DataView`){if(i>e.length)return Promise.reject(RangeError(`options.min must be smaller or equal to view size`))}else if(i>r)return Promise.reject(RangeError(`options.min must be smaller or equal to view size`));if(this[V].stream===void 0)return Promise.reject(TypeError(`Reader has no associated stream`));let o=new BYOBReadIntoRequest;return readableStreamBYOBReaderRead(this,e,i,o),o.promise}releaseLock(){if(!Q(this))throw TypeError(`Invalid this`);this[V].stream!==void 0&&readableStreamBYOBReaderRelease(this)}get closed(){return Q(this)?this[V].close.promise:Promise.reject(TypeError(`Invalid this`))}cancel(e=void 0){return Q(this)?this[V].stream===void 0?Promise.reject(TypeError(`Reader has no associated stream`)):readableStreamReaderGenericCancel(this,e):Promise.reject(TypeError(`Invalid this`))}get[Symbol.toStringTag](){return`ReadableStreamBYOBReader`}},ReadableStreamBYOBRequest=class{[H]=`ReadableStreamBYOBRequest`;[V]={};constructor(e){if(e!==J)throw TypeError(`Illegal constructor`)}get view(){if(!ht(this))throw TypeError(`Invalid this`);return this[V].view}respond(e){if(!ht(this))throw TypeError(`Invalid this`);if(this[V].controller===void 0)throw TypeError(`BYOB request has been invalidated`);if(e=+e,!Number.isInteger(e)||e<0||!Number.isFinite(e))throw RangeError(`bytesWritten must be a non-negative integer`);let t=this[V].view;if(isDetachedBuffer(t.buffer))throw TypeError(`The BYOB request's buffer has been detached`);readableByteStreamControllerRespond(this[V].controller,e)}respondWithNewView(e){if(!ht(this))throw TypeError(`Invalid this`);if(this[V].controller===void 0)throw TypeError(`BYOB request has been invalidated`);if(typeof e!=`object`||!e||!ArrayBuffer.isView(e))throw TypeError(`view must be an ArrayBufferView`);if(isDetachedBuffer(e.buffer))throw TypeError(`The given view's buffer has been detached`);readableByteStreamControllerRespondWithNewView(this[V].controller,e)}get[Symbol.toStringTag](){return`ReadableStreamBYOBRequest`}},ReadableByteStreamController=class{[H]=`ReadableByteStreamController`;[V]={};constructor(e){if(e!==J)throw TypeError(`Illegal constructor`)}get byobRequest(){if(!Z(this))throw TypeError(`Invalid this`);return readableByteStreamControllerGetBYOBRequest(this)}get desiredSize(){if(!Z(this))throw TypeError(`Invalid this`);return readableByteStreamControllerGetDesiredSize(this)}close(){if(!Z(this))throw TypeError(`Invalid this`);if(this[V].closeRequested)throw TypeError(`Close already requested`);if(this[V].stream[V].state!==`readable`)throw TypeError(`Stream is not in a readable state`);readableByteStreamControllerClose(this)}enqueue(e){if(!Z(this))throw TypeError(`Invalid this`);if(typeof e!=`object`||!e||!ArrayBuffer.isView(e))throw TypeError(`chunk must be an ArrayBufferView`);if(e.byteLength===0)throw TypeError(`chunk length must be non-zero`);if(e.buffer.byteLength===0)throw TypeError(`chunk's buffer length must be non-zero`);if(this[V].closeRequested)throw TypeError(`Cannot enqueue after close has been requested`);if(this[V].stream[V].state!==`readable`)throw TypeError(`Stream is not in a readable state`);readableByteStreamControllerEnqueue(this,e)}error(e=void 0){if(!Z(this))throw TypeError(`Invalid this`);readableByteStreamControllerError(this,e)}[lt](e){return readableByteStreamControllerCancelSteps(this,e)}[ut](e){readableByteStreamControllerPullSteps(this,e)}[dt](){if(this[V].pendingPullIntos.length>0){let e=this[V].pendingPullIntos[0];e.readerType=`none`,this[V].pendingPullIntos=[e]}}get[Symbol.toStringTag](){return`ReadableByteStreamController`}};const Z=isBrandCheck(`ReadableByteStreamController`),Q=isBrandCheck(`ReadableStreamBYOBReader`),ht=isBrandCheck(`ReadableStreamBYOBRequest`);function readableStreamHasBYOBReader(e){let{reader:t}=e[V];return t===void 0?!1:t[V]!==void 0&&t[H]===`ReadableStreamBYOBReader`}function readableStreamGetNumReadIntoRequests(e){return e[V].reader[V].readIntoRequests.length}function readableStreamAddReadIntoRequest(e,t){e[V].reader[V].readIntoRequests.push(t)}function readableStreamFulfillReadIntoRequest(e,t,n){let{reader:r}=e[V],i=r[V].readIntoRequests.shift();n?i[G](t):i[K](t)}function setupReadableStreamBYOBReader(e,t){if(isReadableStreamLocked(t))throw TypeError(`ReadableStream is locked`);if(!Z(t[V].controller))throw TypeError(`Cannot use a BYOB reader with a non-byte stream`);readableStreamReaderGenericInitialize(e,t),e[V].readIntoRequests=[]}function readableStreamBYOBReaderRead(e,t,n,r){let{stream:i}=e[V];i[V].disturbed=!0,i[V].state===`errored`?r[q](i[V].storedError):readableByteStreamControllerPullInto(i[V].controller,t,n,r)}function readableStreamBYOBReaderRelease(e){readableStreamReaderGenericRelease(e);let t=TypeError(`Reader was released`);for(let n=0;n<e[V].readIntoRequests.length;n++)e[V].readIntoRequests[n][q](t);e[V].readIntoRequests=[]}function readableByteStreamControllerClearAlgorithms(e){e[V].pullAlgorithm=void 0,e[V].cancelAlgorithm=void 0}function readableByteStreamControllerClearPendingPullIntos(e){readableByteStreamControllerInvalidateBYOBRequest(e),e[V].pendingPullIntos=[]}function readableByteStreamControllerInvalidateBYOBRequest(e){let t=e[V].byobRequest;t!=null&&(t[V].controller=void 0,t[V].view=null,e[V].byobRequest=null)}function readableByteStreamControllerError(e,t){let{stream:n}=e[V];n[V].state===`readable`&&(readableByteStreamControllerClearPendingPullIntos(e),resetQueue(e),readableByteStreamControllerClearAlgorithms(e),readableStreamError(n,t))}function readableByteStreamControllerGetDesiredSize(e){let t=e[V].stream[V].state;return t===`errored`?null:t===`closed`?0:e[V].highWaterMark-e[V].queueTotalSize}function readableByteStreamControllerShouldCallPull(e){let{stream:t}=e[V];if(t[V].state!==`readable`||e[V].closeRequested||!e[V].started)return!1;if(readableStreamHasDefaultReader(t)&&readableStreamGetNumReadRequests(t)>0||readableStreamHasBYOBReader(t)&&readableStreamGetNumReadIntoRequests(t)>0)return!0;let n=readableByteStreamControllerGetDesiredSize(e);return n!==null&&n>0}function readableByteStreamControllerCallPullIfNeeded(e){if(readableByteStreamControllerShouldCallPull(e)){if(e[V].pulling){e[V].pullAgain=!0;return}e[V].pulling=!0,e[V].pullAlgorithm(e).then(()=>{e[V].pulling=!1,e[V].pullAgain&&(e[V].pullAgain=!1,readableByteStreamControllerCallPullIfNeeded(e))},t=>readableByteStreamControllerError(e,t))}}function readableByteStreamControllerHandleQueueDrain(e){e[V].queueTotalSize===0&&e[V].closeRequested?(readableByteStreamControllerClearAlgorithms(e),readableStreamClose(e[V].stream)):readableByteStreamControllerCallPullIfNeeded(e)}function readableByteStreamControllerEnqueueChunkToQueue(e,t,n,r){e[V].queue.push({buffer:t,byteOffset:n,byteLength:r}),e[V].queueTotalSize+=r}function readableByteStreamControllerEnqueueClonedChunkToQueue(e,t,n,r){let i;try{i=t.slice(n,n+r)}catch(t){readableByteStreamControllerError(e,t);return}readableByteStreamControllerEnqueueChunkToQueue(e,i,0,r)}function readableByteStreamControllerEnqueueDetachedPullIntoToQueue(e,t){t.bytesFilled>0&&readableByteStreamControllerEnqueueClonedChunkToQueue(e,t.buffer,t.byteOffset,t.bytesFilled),readableByteStreamControllerShiftPendingPullInto(e)}function readableByteStreamControllerShiftPendingPullInto(e){return e[V].pendingPullIntos.shift()}function readableByteStreamControllerFillHeadPullIntoDescriptor(e,t,n){n.bytesFilled+=t}function readableByteStreamControllerConvertPullIntoDescriptor(e){let t=e.bytesFilled,n=e.elementSize,r=transferArrayBuffer(e.buffer);return e.buffer=r,new e.viewConstructor(r,e.byteOffset,t/n)}function readableByteStreamControllerCommitPullIntoDescriptor(e,t){let n=!1;e[V].state===`closed`&&(n=!0);let r=readableByteStreamControllerConvertPullIntoDescriptor(t);t.readerType===`default`?readableStreamFulfillReadRequest(e,r,n):readableStreamFulfillReadIntoRequest(e,r,n)}function readableByteStreamControllerFillPullIntoDescriptorFromQueue(e,t){let n=Math.min(e[V].queueTotalSize,t.byteLength-t.bytesFilled),r=t.bytesFilled+n,i=n,a=!1,o=r-r%t.elementSize;o>=t.minimumFill&&(i=o-t.bytesFilled,a=!0);let s=e[V].queue;for(;i>0;){let n=s[0],r=Math.min(i,n.byteLength),a=t.byteOffset+t.bytesFilled,o=new Uint8Array(t.buffer,a,r),c=new Uint8Array(n.buffer,n.byteOffset,r);o.set(c),n.byteLength===r?s.shift():(n.byteOffset+=r,n.byteLength-=r),e[V].queueTotalSize-=r,readableByteStreamControllerFillHeadPullIntoDescriptor(e,r,t),i-=r}return a}function readableByteStreamControllerFillReadRequestFromQueue(e,t){let n=e[V].queue.shift();e[V].queueTotalSize-=n.byteLength,readableByteStreamControllerHandleQueueDrain(e);let r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);t[K](r)}function readableByteStreamControllerProcessReadRequestsUsingQueue(e){let t=e[V].stream[V].reader;for(;t[V].readRequests.length!==0;){if(e[V].queueTotalSize===0)return;readableByteStreamControllerFillReadRequestFromQueue(e,t[V].readRequests.shift())}}function readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e){for(;e[V].pendingPullIntos.length!==0;){if(e[V].queueTotalSize===0)return;let t=e[V].pendingPullIntos[0];readableByteStreamControllerFillPullIntoDescriptorFromQueue(e,t)&&(readableByteStreamControllerShiftPendingPullInto(e),readableByteStreamControllerCommitPullIntoDescriptor(e[V].stream,t))}}function readableByteStreamControllerGetBYOBRequest(e){if(e[V].byobRequest===null&&e[V].pendingPullIntos.length!==0){let t=e[V].pendingPullIntos[0],n=new Uint8Array(t.buffer,t.byteOffset+t.bytesFilled,t.byteLength-t.bytesFilled),r=new ReadableStreamBYOBRequest(J);r[V]={controller:e,view:n},e[V].byobRequest=r}return e[V].byobRequest}function readableByteStreamControllerEnqueue(e,t){let{stream:n}=e[V];if(e[V].closeRequested||n[V].state!==`readable`)return;let r=t.buffer,i=t.byteLength,a=t.byteOffset;if(isDetachedBuffer(r))throw TypeError(`chunk's buffer is detached`);let o=transferArrayBuffer(r);if(e[V].pendingPullIntos.length!==0){let t=e[V].pendingPullIntos[0];if(isDetachedBuffer(t.buffer))throw TypeError(`BYOB request's buffer has been detached`);readableByteStreamControllerInvalidateBYOBRequest(e),t.buffer=transferArrayBuffer(t.buffer),t.readerType===`none`&&readableByteStreamControllerEnqueueDetachedPullIntoToQueue(e,t)}readableStreamHasDefaultReader(n)?(readableByteStreamControllerProcessReadRequestsUsingQueue(e),readableStreamGetNumReadRequests(n)===0?readableByteStreamControllerEnqueueChunkToQueue(e,o,a,i):(e[V].pendingPullIntos.length!==0&&readableByteStreamControllerShiftPendingPullInto(e),readableStreamFulfillReadRequest(n,new Uint8Array(o,a,i),!1))):readableStreamHasBYOBReader(n)?(readableByteStreamControllerEnqueueChunkToQueue(e,o,a,i),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e)):readableByteStreamControllerEnqueueChunkToQueue(e,o,a,i),readableByteStreamControllerCallPullIfNeeded(e)}function readableByteStreamControllerClose(e){let{stream:t}=e[V];if(!(e[V].closeRequested||t[V].state!==`readable`)){if(e[V].queueTotalSize>0){e[V].closeRequested=!0;return}if(e[V].pendingPullIntos.length!==0){let t=e[V].pendingPullIntos[0];if(t.bytesFilled%t.elementSize!==0){let t=TypeError(`Insufficient bytes to fill elements in the given buffer`);throw readableByteStreamControllerError(e,t),t}}readableByteStreamControllerClearAlgorithms(e),readableStreamClose(t)}}function readableByteStreamControllerPullInto(e,t,n,r){let i=e[V].stream,a=t[Symbol.toStringTag],o,s;if(a===void 0||a===`DataView`)o=DataView,s=1;else{let e=typedArrayConstructorByTag(a);if(!e){r[q](TypeError(`Unsupported typed array: ${a}`));return}o=e,s=elementSizeByTag(a)}let c=t.buffer,l=t.byteLength,u=t.byteOffset,d=n*s,f;try{f=transferArrayBuffer(c)}catch(e){r[q](e);return}let p={buffer:f,bufferByteLength:f.byteLength,byteOffset:u,byteLength:l,bytesFilled:0,minimumFill:d,elementSize:s,viewConstructor:o,readerType:`byob`};if(e[V].pendingPullIntos.length!==0){e[V].pendingPullIntos.push(p),readableStreamAddReadIntoRequest(i,r);return}if(i[V].state===`closed`){let e=new o(p.buffer,p.byteOffset,0);r[G](e);return}if(e[V].queueTotalSize>0){if(readableByteStreamControllerFillPullIntoDescriptorFromQueue(e,p)){let t=readableByteStreamControllerConvertPullIntoDescriptor(p);readableByteStreamControllerHandleQueueDrain(e),r[K](t);return}if(e[V].closeRequested){let t=TypeError(`Insufficient bytes to fill elements in the given buffer`);readableByteStreamControllerError(e,t),r[q](t);return}}e[V].pendingPullIntos.push(p),readableStreamAddReadIntoRequest(i,r),readableByteStreamControllerCallPullIfNeeded(e)}function readableByteStreamControllerRespond(e,t){let n=e[V].pendingPullIntos[0];if(e[V].stream[V].state===`closed`){if(t!==0)throw TypeError(`bytesWritten must be 0 when calling respond() on a closed stream`)}else{if(t===0)throw TypeError(`bytesWritten must be greater than 0 when calling respond() on a readable stream`);if(n.bytesFilled+t>n.byteLength)throw RangeError(`bytesWritten out of range`)}n.buffer=transferArrayBuffer(n.buffer),readableByteStreamControllerRespondInternal(e,t)}function readableByteStreamControllerRespondWithNewView(e,t){let n=e[V].pendingPullIntos[0],r=e[V].stream[V].state,i=t.byteLength,a=t.byteOffset,o=t.buffer;if(r===`closed`){if(i!==0)throw TypeError(`view's length must be 0 when calling respondWithNewView() on a closed stream`)}else if(i===0)throw TypeError(`view's length must be greater than 0 when calling respondWithNewView() on a readable stream`);if(n.byteOffset+n.bytesFilled!==a)throw RangeError(`The region specified by view does not match byobRequest`);if(n.bufferByteLength!==o.byteLength)throw RangeError(`The buffer of view has different capacity than byobRequest`);if(n.bytesFilled+i>n.byteLength)throw RangeError(`The region specified by view is larger than byobRequest`);n.buffer=transferArrayBuffer(o),readableByteStreamControllerRespondInternal(e,i)}function readableByteStreamControllerRespondInternal(e,t){let n=e[V].pendingPullIntos[0];readableByteStreamControllerInvalidateBYOBRequest(e),e[V].stream[V].state===`closed`?readableByteStreamControllerRespondInClosedState(e,n):readableByteStreamControllerRespondInReadableState(e,t,n),readableByteStreamControllerCallPullIfNeeded(e)}function readableByteStreamControllerRespondInClosedState(e,t){t.readerType===`none`&&readableByteStreamControllerShiftPendingPullInto(e);let n=e[V].stream;if(readableStreamHasBYOBReader(n))for(;readableStreamGetNumReadIntoRequests(n)>0;)readableByteStreamControllerCommitPullIntoDescriptor(n,readableByteStreamControllerShiftPendingPullInto(e))}function readableByteStreamControllerRespondInReadableState(e,t,n){if(readableByteStreamControllerFillHeadPullIntoDescriptor(e,t,n),n.readerType===`none`){readableByteStreamControllerEnqueueDetachedPullIntoToQueue(e,n),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e);return}if(n.bytesFilled<n.minimumFill)return;readableByteStreamControllerShiftPendingPullInto(e);let r=n.bytesFilled%n.elementSize;if(r>0){let t=n.byteOffset+n.bytesFilled;readableByteStreamControllerEnqueueClonedChunkToQueue(e,n.buffer,t-r,r)}n.bytesFilled-=r,readableByteStreamControllerCommitPullIntoDescriptor(e[V].stream,n),readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e)}function readableByteStreamControllerCancelSteps(e,t){readableByteStreamControllerClearPendingPullIntos(e),resetQueue(e);let n=e[V].cancelAlgorithm(t);return readableByteStreamControllerClearAlgorithms(e),n}function readableByteStreamControllerPullSteps(e,t){let n=e[V].stream;if(e[V].queueTotalSize>0){readableByteStreamControllerFillReadRequestFromQueue(e,t);return}let r=e[V].autoAllocateChunkSize;if(r!==void 0){let n;try{n=new ArrayBuffer(r)}catch(e){t[q](e);return}let i={buffer:n,bufferByteLength:r,byteOffset:0,byteLength:r,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:`default`};e[V].pendingPullIntos.push(i)}readableStreamAddReadRequest(n,t),readableByteStreamControllerCallPullIfNeeded(e)}function setupReadableByteStreamController(e,t,n,r,i,a,o){t[V]={cancelAlgorithm:i,closeRequested:!1,highWaterMark:a,pullAgain:!1,pullAlgorithm:r,pulling:!1,queue:[],queueTotalSize:0,started:!1,stream:e,byobRequest:null,pendingPullIntos:[],autoAllocateChunkSize:o},e[V].controller=t;let s=n();new Promise(e=>e(s)).then(()=>{t[V].started=!0,readableByteStreamControllerCallPullIfNeeded(t)},e=>readableByteStreamControllerError(t,e))}function setupReadableByteStreamControllerFromSource(e,t,n){let r=new ReadableByteStreamController(J),i=t?.start,a=t?.pull,o=t?.cancel,s=t?.autoAllocateChunkSize;if(s!==void 0&&(s===0||!Number.isInteger(s)||s<0))throw TypeError(`autoAllocateChunkSize must be a positive integer`);setupReadableByteStreamController(e,r,i?i.bind(t,r):nonOpStart,a?createPromiseCallback(`source.pull`,a,t):nonOpPull,o?createPromiseCallback(`source.cancel`,o,t):nonOpCancel,n,s)}function readableByteStreamTee(e){let t=new ReadableStreamDefaultReader(e),n=!1,r=!1,i=!1,a,o,s=Promise.withResolvers(),c,l,u,d;function pullAlgorithm(){return n?Promise.resolve():(n=!0,t.read().then(e=>{if(n=!1,e.done){r||u.close(),i||d.close();return}let t=e.value,a=new Uint8Array(t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength));r||u.enqueue(a),i||d.enqueue(new Uint8Array(a))},()=>{}),Promise.resolve())}return c=new ReadableStream$1({type:`bytes`,pull:pullAlgorithm,cancel(t){if(r=!0,a=t,i){let t=readableStreamCancel(e,[a,o]);return s.resolve(),t}return s.promise}}),l=new ReadableStream$1({type:`bytes`,pull:pullAlgorithm,cancel(t){if(i=!0,o=t,r){let t=readableStreamCancel(e,[a,o]);return s.resolve(),t}return s.promise}}),u=c[V].controller,d=l[V].controller,t.closed.catch(e=>{u.error(e),d.error(e),(!r||!i)&&s.resolve()}),[c,l]}const gt=Symbol(`kSkipThrow`);var TransformStream=class{[H]=`TransformStream`;[V];constructor(e={},t={},n={}){if(e!=null&&typeof e!=`object`)throw TypeError(`transformer must be an object`);if(t!=null&&typeof t!=`object`)throw TypeError(`writableStrategy must be an object`);if(n!=null&&typeof n!=`object`)throw TypeError(`readableStrategy must be an object`);let r=e?.readableType,i=e?.writableType,a=e?.start;if(r!==void 0)throw RangeError(`Invalid readableType: ${r}`);if(i!==void 0)throw RangeError(`Invalid writableType: ${i}`);let o=extractHighWaterMark(n?.highWaterMark,0),s=extractSizeAlgorithm(n?.size),c=extractHighWaterMark(t?.highWaterMark,1),l=extractSizeAlgorithm(t?.size),u=Promise.withResolvers();initializeTransformStream(this,u,c,l,o,s),setupTransformStreamDefaultControllerFromTransformer(this,e),a===void 0?u.resolve():u.resolve(a.call(e,this[V].controller))}get readable(){if(!_t(this))throw TypeError(`Invalid this`);return this[V].readable}get writable(){if(!_t(this))throw TypeError(`Invalid this`);return this[V].writable}get[Symbol.toStringTag](){return`TransformStream`}},TransformStreamDefaultController=class{[H]=`TransformStreamDefaultController`;[V];constructor(e){if(e!==gt)throw TypeError(`Illegal constructor`)}get desiredSize(){if(!vt(this))throw TypeError(`Invalid this`);let{stream:e}=this[V],{readable:t}=e[V],n=t[V].controller;return readableStreamDefaultControllerGetDesiredSize(n)}enqueue(e){if(!vt(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerEnqueue(this,e)}error(e){if(!vt(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerError(this,e)}terminate(){if(!vt(this))throw TypeError(`Invalid this`);transformStreamDefaultControllerTerminate(this)}get[Symbol.toStringTag](){return`TransformStreamDefaultController`}};const _t=isBrandCheck(`TransformStream`),vt=isBrandCheck(`TransformStreamDefaultController`);async function defaultTransformAlgorithm(e,t){transformStreamDefaultControllerEnqueue(t,e)}function initializeTransformStream(e,t,n,r,i,a){let startAlgorithm=()=>t.promise,o=createWritableStream(startAlgorithm,t=>transformStreamDefaultSinkWriteAlgorithm(e,t),()=>transformStreamDefaultSinkCloseAlgorithm(e),t=>transformStreamDefaultSinkAbortAlgorithm(e,t),n,r);e[V]={readable:createReadableStream(startAlgorithm,()=>transformStreamDefaultSourcePullAlgorithm(e),t=>transformStreamDefaultSourceCancelAlgorithm(e,t),i,a),writable:o,controller:void 0,backpressure:void 0,backpressureChange:{promise:void 0,resolve:void 0,reject:void 0}},transformStreamSetBackpressure(e,!0)}function transformStreamError(e,t){let{readable:n}=e[V];readableStreamDefaultControllerError(n[V].controller,t),transformStreamErrorWritableAndUnblockWrite(e,t)}function transformStreamErrorWritableAndUnblockWrite(e,t){let{controller:n,writable:r}=e[V];transformStreamDefaultControllerClearAlgorithms(n),writableStreamDefaultControllerErrorIfNeeded(r[V].controller,t),transformStreamUnblockWrite(e)}function transformStreamUnblockWrite(e){e[V].backpressure&&transformStreamSetBackpressure(e,!1)}function transformStreamSetBackpressure(e,t){e[V].backpressureChange.promise!==void 0&&e[V].backpressureChange.resolve?.(),e[V].backpressureChange=Promise.withResolvers(),e[V].backpressure=t}function setupTransformStreamDefaultController(e,t,n,r,i){t[V]={stream:e,transformAlgorithm:n,flushAlgorithm:r,cancelAlgorithm:i,finishPromise:void 0},e[V].controller=t}function setupTransformStreamDefaultControllerFromTransformer(e,t){let n=new TransformStreamDefaultController(gt),r=t?.transform,i=t?.flush,a=t?.cancel;setupTransformStreamDefaultController(e,n,r?createPromiseCallback(`transformer.transform`,r,t):defaultTransformAlgorithm,i?createPromiseCallback(`transformer.flush`,i,t):nonOpFlush,a?createPromiseCallback(`transformer.cancel`,a,t):nonOpCancel)}function transformStreamDefaultControllerClearAlgorithms(e){e[V].transformAlgorithm=void 0,e[V].flushAlgorithm=void 0,e[V].cancelAlgorithm=void 0}function transformStreamDefaultControllerEnqueue(e,t){let{stream:n}=e[V],{readable:r}=n[V],i=r[V].controller;if(!readableStreamDefaultControllerCanCloseOrEnqueue(i))throw TypeError(`Unable to enqueue`);try{readableStreamDefaultControllerEnqueue(i,t)}catch(e){throw transformStreamErrorWritableAndUnblockWrite(n,e),r[V].storedError}readableStreamDefaultControllerHasBackpressure(i)!==n[V].backpressure&&transformStreamSetBackpressure(n,!0)}function transformStreamDefaultControllerError(e,t){transformStreamError(e[V].stream,t)}async function transformStreamDefaultControllerPerformTransform(e,t){try{let n=e[V].transformAlgorithm;return n===void 0?void 0:await n(t,e)}catch(t){throw transformStreamError(e[V].stream,t),t}}function transformStreamDefaultControllerTerminate(e){let{stream:t}=e[V],{readable:n}=t[V];readableStreamDefaultControllerClose(n[V].controller),transformStreamErrorWritableAndUnblockWrite(t,TypeError(`TransformStream has been terminated`))}function transformStreamDefaultSinkWriteAlgorithm(e,t){let{controller:n}=e[V];return e[V].backpressure?e[V].backpressureChange.promise.then(()=>{let{writable:r}=e[V];if(r[V].state===`erroring`)throw r[V].storedError;return transformStreamDefaultControllerPerformTransform(n,t)}):transformStreamDefaultControllerPerformTransform(n,t)}async function transformStreamDefaultSinkAbortAlgorithm(e,t){let{controller:n,readable:r}=e[V];if(n[V].finishPromise!==void 0)return n[V].finishPromise;let{promise:i,resolve:a,reject:o}=Promise.withResolvers();n[V].finishPromise=i;let s=n[V].cancelAlgorithm(t);return transformStreamDefaultControllerClearAlgorithms(n),s.then(()=>{r[V].state===`errored`?o(r[V].storedError):(readableStreamDefaultControllerError(r[V].controller,t),a())},e=>{readableStreamDefaultControllerError(r[V].controller,e),o(e)}),n[V].finishPromise}function transformStreamDefaultSinkCloseAlgorithm(e){let{readable:t,controller:n}=e[V];if(n[V].finishPromise!==void 0)return n[V].finishPromise;let{promise:r,resolve:i,reject:a}=Promise.withResolvers();n[V].finishPromise=r;let o=n[V].flushAlgorithm(n);return transformStreamDefaultControllerClearAlgorithms(n),o.then(()=>{t[V].state===`errored`?a(t[V].storedError):(readableStreamDefaultControllerClose(t[V].controller),i())},e=>{readableStreamDefaultControllerError(t[V].controller,e),a(e)}),n[V].finishPromise}function transformStreamDefaultSourcePullAlgorithm(e){return transformStreamSetBackpressure(e,!1),e[V].backpressureChange.promise}function transformStreamDefaultSourceCancelAlgorithm(e,t){let{controller:n,writable:r}=e[V];if(n[V].finishPromise!==void 0)return n[V].finishPromise;let{promise:i,resolve:a,reject:o}=Promise.withResolvers();n[V].finishPromise=i;let s=n[V].cancelAlgorithm(t);return transformStreamDefaultControllerClearAlgorithms(n),s.then(()=>{r[V].state===`errored`?o(r[V].storedError):(writableStreamDefaultControllerErrorIfNeeded(r[V].controller,t),transformStreamUnblockWrite(e),a())},t=>{writableStreamDefaultControllerErrorIfNeeded(r[V].controller,t),transformStreamUnblockWrite(e),o(t)}),n[V].finishPromise}const yt=Object.defineProperty(e=>e.byteLength,"name",{value:`size`}),bt=Object.defineProperty(()=>1,"name",{value:`size`});var ByteLengthQueuingStrategy=class{#e;constructor(e){if(typeof e!=`object`||!e)throw TypeError(`init must be an object`);if(e.highWaterMark===void 0)throw TypeError(`init.highWaterMark is required`);this.#e=+e.highWaterMark}get highWaterMark(){return this.#e}get size(){return yt}get[Symbol.toStringTag](){return`ByteLengthQueuingStrategy`}},CountQueuingStrategy=class{#e;constructor(e){if(typeof e!=`object`||!e)throw TypeError(`init must be an object`);if(e.highWaterMark===void 0)throw TypeError(`init.highWaterMark is required`);this.#e=+e.highWaterMark}get highWaterMark(){return this.#e}get size(){return bt}get[Symbol.toStringTag](){return`CountQueuingStrategy`}},TextEncoderStream=class{#e=null;#t=new TextEncoder;#n;constructor(){this.#n=new TransformStream({transform:(e,t)=>{if(e=String(e),e===``)return;this.#e!==null&&(e=this.#e+e);let n=e.charCodeAt(e.length-1);55296<=n&&n<=56319?(this.#e=e.slice(-1),e=e.slice(0,-1)):this.#e=null,e&&t.enqueue(this.#t.encode(e))},flush:e=>{this.#e!==null&&e.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 xt=hasStreamingSupport();function incompleteUtf8Tail(e){let t=e.length;if(t===0)return 0;for(let n=1;n<=Math.min(3,t);n++){let r=e[t-n];if(!(r&128))return 0;if((r&192)!=128){let e;if((r&224)==192)e=2;else if((r&240)==224)e=3;else if((r&248)==240)e=4;else return 0;return n<e?n:0}}return 0}var TextDecoderStream=class{#e;#t;constructor(e,t){if(this.#e=new TextDecoder(e,t),xt)this.#t=new TransformStream({transform:(e,t)=>{let n=toUint8Array(e),r=this.#e.decode(n,{stream:!0});r&&t.enqueue(r)},flush:e=>{let t=this.#e.decode();t&&e.enqueue(t)},cancel:()=>{this.#e.decode()}});else{let e=new Uint8Array;this.#t=new TransformStream({transform:(t,n)=>{let r=toUint8Array(t),i;e.length>0?(i=new Uint8Array(e.length+r.length),i.set(e,0),i.set(r,e.length)):i=r;let a=incompleteUtf8Tail(i),o;if(a>0?(o=i.slice(0,i.length-a),e=i.slice(i.length-a)):(o=i,e=new Uint8Array),o.length>0){let e=this.#e.decode(o);e&&n.enqueue(e)}},flush:t=>{if(e.length>0){let n=this.#e.decode(e);n&&t.enqueue(n),e=new Uint8Array}},cancel:()=>{e=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(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw TypeError(`chunk must be a BufferSource`)}function isNativeStreamUsable$3(e,t){try{return typeof e==`function`?typeof e.prototype[t]==`function`:!1}catch{return!1}}__name(isNativeStreamUsable$3,`isNativeStreamUsable`);const St=isNativeStreamUsable$3(globalThis.ReadableStream,`getReader`)?globalThis.ReadableStream:ReadableStream$1,Ct=isNativeStreamUsable$3(globalThis.WritableStream,`getWriter`)?globalThis.WritableStream:WritableStream,wt=isNativeStreamUsable$3(globalThis.TransformStream,`readable`)?globalThis.TransformStream:TransformStream,Tt=typeof globalThis.ByteLengthQueuingStrategy==`function`?globalThis.ByteLengthQueuingStrategy:ByteLengthQueuingStrategy,Et=typeof globalThis.CountQueuingStrategy==`function`?globalThis.CountQueuingStrategy:CountQueuingStrategy,Dt=typeof globalThis.TextEncoderStream==`function`?globalThis.TextEncoderStream:TextEncoderStream,Ot=typeof globalThis.TextDecoderStream==`function`?globalThis.TextDecoderStream:TextDecoderStream;globalThis.ByteLengthQueuingStrategy===void 0&&(globalThis.ByteLengthQueuingStrategy=Tt),globalThis.CountQueuingStrategy===void 0&&(globalThis.CountQueuingStrategy=Et);const $=globalThis;function isNativeStreamUsable$2(e,t){try{return typeof e==`function`?typeof e.prototype?.[t]==`function`:!1}catch{return!1}}__name(isNativeStreamUsable$2,`isNativeStreamUsable`),isNativeStreamUsable$2(globalThis.ReadableStream,`getReader`)||($.ReadableStream=St),$.ReadableStreamBYOBReader===void 0&&($.ReadableStreamBYOBReader=ReadableStreamBYOBReader),$.ReadableStreamBYOBRequest===void 0&&($.ReadableStreamBYOBRequest=ReadableStreamBYOBRequest),$.ReadableByteStreamController===void 0&&($.ReadableByteStreamController=ReadableByteStreamController),$.ReadableStreamDefaultController===void 0&&($.ReadableStreamDefaultController=ReadableStreamDefaultController),$.ReadableStreamDefaultReader===void 0&&($.ReadableStreamDefaultReader=ReadableStreamDefaultReader),globalThis.TextEncoderStream===void 0&&(globalThis.TextEncoderStream=Dt),globalThis.TextDecoderStream===void 0&&(globalThis.TextDecoderStream=Ot);function isNativeStreamUsable$1(e,t){try{return typeof e==`function`?typeof e.prototype[t]==`function`:!1}catch{return!1}}__name(isNativeStreamUsable$1,`isNativeStreamUsable`),isNativeStreamUsable$1(globalThis.TransformStream,`readable`)||(globalThis.TransformStream=wt);function isNativeStreamUsable(e,t){try{return typeof e==`function`?typeof e.prototype[t]==`function`:!1}catch{return!1}}isNativeStreamUsable(globalThis.WritableStream,`getWriter`)||(globalThis.WritableStream=Ct);async function runLoopback(e){let t=new RTCPeerConnection({iceServers:[{urls:`stun:stun.l.google.com:19302`}]}),n=new RTCPeerConnection({iceServers:[{urls:`stun:stun.l.google.com:19302`}]});t.onsignalingstatechange=()=>e(`A`,`signalingState → ${t.signalingState}`),n.onsignalingstatechange=()=>e(`B`,`signalingState → ${n.signalingState}`),t.oniceconnectionstatechange=()=>e(`A`,`iceConnectionState → ${t.iceConnectionState}`),n.oniceconnectionstatechange=()=>e(`B`,`iceConnectionState → ${n.iceConnectionState}`),t.onconnectionstatechange=()=>e(`A`,`connectionState → ${t.connectionState}`),n.onconnectionstatechange=()=>e(`B`,`connectionState → ${n.connectionState}`),t.onicecandidate=t=>{t.candidate&&(e(`A→B`,`ICE ${t.candidate.type??`?`} ${t.candidate.address??``}:${t.candidate.port??``}`),n.addIceCandidate(t.candidate.toJSON()))},n.onicecandidate=n=>{n.candidate&&(e(`B→A`,`ICE ${n.candidate.type??`?`} ${n.candidate.address??``}:${n.candidate.port??``}`),t.addIceCandidate(n.candidate.toJSON()))};let r=t.createDataChannel(`chat`),i=new Promise(t=>{let i=0;r.onopen=()=>{e(`A`,`data-channel "chat" open — sending greeting`),r.send(`hello from peer A`),r.send(new Uint8Array([1,2,3,4]).buffer)},r.onmessage=n=>{if(typeof n.data==`string`)e(`A`,`received: ${n.data}`);else{let t=new Uint8Array(n.data);e(`A`,`received ArrayBuffer(${t.length}): [${Array.from(t).join(`, `)}]`)}i++,i>=2&&t()},n.ondatachannel=t=>{let n=t.channel;e(`B`,`ondatachannel "${n.label}"`),n.onmessage=t=>{if(typeof t.data==`string`)e(`B`,`received: ${t.data} — echoing back`),n.send(`echo: ${t.data}`);else{let r=new Uint8Array(t.data),i=new Uint8Array(r).reverse();e(`B`,`received ArrayBuffer(${r.length}) — echoing reversed`),n.send(i.buffer)}}}});e(`A`,`createOffer`);let a=await t.createOffer();await t.setLocalDescription(a),await n.setRemoteDescription(a),e(`B`,`createAnswer`);let o=await n.createAnswer();await n.setLocalDescription(o),await t.setRemoteDescription(o),await Promise.race([i,new Promise((e,t)=>setTimeout(()=>t(Error(`Timeout waiting for echo`)),15e3))]),e(`main`,`demo complete — closing peer connections`),t.close(),n.close()}function log(e,t){typeof print==`function`?print(`[${e}] ${t}`):g.log(`[${e}] ${t}`)}const kt=e.MainLoop.new(null,!1);runLoopback(log).then(()=>{e.timeout_add(e.PRIORITY_DEFAULT,500,()=>(kt.quit(),e.SOURCE_REMOVE))}).catch(t=>{log(`ERROR`,t?.message??String(t)),e.timeout_add(e.PRIORITY_DEFAULT,500,()=>(kt.quit(),e.SOURCE_REMOVE))}),kt.run();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/example-dom-webrtc-loopback",
3
- "version": "0.4.21",
3
+ "version": "0.4.22",
4
4
  "description": "WebRTC data-channel loopback demo (two local peers) for GJS and browser",
5
5
  "main": "dist/gjs.js",
6
6
  "type": "module",
@@ -27,15 +27,15 @@
27
27
  "build:assets": "mkdir -p dist && cp -f src/browser/index.html dist/index.html"
28
28
  },
29
29
  "dependencies": {
30
- "@gjsify/webrtc": "^0.4.21"
30
+ "@gjsify/webrtc": "^0.4.22"
31
31
  },
32
32
  "devDependencies": {
33
- "@girs/gjs": "4.0.0-rc.15",
34
- "@girs/glib-2.0": "2.88.0-4.0.0-rc.15",
35
- "@gjsify/cli": "^0.4.21",
36
- "@gjsify/node-globals": "^0.4.21",
37
- "@gjsify/runtime": "^0.4.21",
38
- "@types/node": "^25.6.2",
33
+ "@girs/gjs": "4.0.1",
34
+ "@girs/glib-2.0": "2.88.0-4.0.1",
35
+ "@gjsify/cli": "^0.4.22",
36
+ "@gjsify/node-globals": "^0.4.22",
37
+ "@gjsify/runtime": "^0.4.22",
38
+ "@types/node": "^25.9.1",
39
39
  "http-server": "^14.1.1",
40
40
  "typescript": "^6.0.3"
41
41
  },