@appetize/cli 0.23.0 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/cli.js +10 -9
- package/daemon.js +2 -3
- package/package.json +1 -1
- package/skills/appetize/SKILL.md +3 -2
- package/skills/appetize/references/commands.md +13 -0
- package/stream-C9RfmvVk.js +4 -0
- package/viewer.html +1 -1
- package/stream-DqsoC5l1.js +0 -3
package/viewer.html
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="data:,"><title>Appetize device</title><style>body,html{height:100%;margin:0;background:#111318}body{display:grid;place-items:center}canvas{max-width:100vw;max-height:100vh;background:#000;touch-action:none}</style></head><body><canvas aria-label="Device screen" tabindex="0"></canvas><script type="module">function lr(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Ne={exports:{}},Ke,mt;function ur(){if(mt)return Ke;mt=1;var t=1e3,e=t*60,r=e*60,n=r*24,i=n*7,s=n*365.25;Ke=function(w,y){y=y||{};var v=typeof w;if(v==="string"&&w.length>0)return o(w);if(v==="number"&&isFinite(w))return y.long?c(w):d(w);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(w))};function o(w){if(w=String(w),!(w.length>100)){var y=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(w);if(y){var v=parseFloat(y[1]),f=(y[2]||"ms").toLowerCase();switch(f){case"years":case"year":case"yrs":case"yr":case"y":return v*s;case"weeks":case"week":case"w":return v*i;case"days":case"day":case"d":return v*n;case"hours":case"hour":case"hrs":case"hr":case"h":return v*r;case"minutes":case"minute":case"mins":case"min":case"m":return v*e;case"seconds":case"second":case"secs":case"sec":case"s":return v*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return v;default:return}}}}function d(w){var y=Math.abs(w);return y>=n?Math.round(w/n)+"d":y>=r?Math.round(w/r)+"h":y>=e?Math.round(w/e)+"m":y>=t?Math.round(w/t)+"s":w+"ms"}function c(w){var y=Math.abs(w);return y>=n?p(w,y,n,"day"):y>=r?p(w,y,r,"hour"):y>=e?p(w,y,e,"minute"):y>=t?p(w,y,t,"second"):w+" ms"}function p(w,y,v,f){var S=y>=v*1.5;return Math.round(w/v)+" "+f+(S?"s":"")}return Ke}var Ve,St;function fr(){if(St)return Ve;St=1;function t(e){n.debug=n,n.default=n,n.coerce=p,n.disable=d,n.enable=s,n.enabled=c,n.humanize=ur(),n.destroy=w,Object.keys(e).forEach(y=>{n[y]=e[y]}),n.names=[],n.skips=[],n.formatters={};function r(y){let v=0;for(let f=0;f<y.length;f++)v=(v<<5)-v+y.charCodeAt(f),v|=0;return n.colors[Math.abs(v)%n.colors.length]}n.selectColor=r;function n(y){let v,f=null,S,g;function C(...b){if(!C.enabled)return;const E=C,A=Number(new Date),k=A-(v||A);E.diff=k,E.prev=v,E.curr=A,v=A,b[0]=n.coerce(b[0]),typeof b[0]!="string"&&b.unshift("%O");let P=0;b[0]=b[0].replace(/%([a-zA-Z%])/g,(q,Z)=>{if(q==="%%")return"%";P++;const _=n.formatters[Z];if(typeof _=="function"){const $=b[P];q=_.call(E,$),b.splice(P,1),P--}return q}),n.formatArgs.call(E,b),(E.log||n.log).apply(E,b)}return C.namespace=y,C.useColors=n.useColors(),C.color=n.selectColor(y),C.extend=i,C.destroy=n.destroy,Object.defineProperty(C,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(S!==n.namespaces&&(S=n.namespaces,g=n.enabled(y)),g),set:b=>{f=b}}),typeof n.init=="function"&&n.init(C),C}function i(y,v){const f=n(this.namespace+(typeof v>"u"?":":v)+y);return f.log=this.log,f}function s(y){n.save(y),n.namespaces=y,n.names=[],n.skips=[];const v=(typeof y=="string"?y:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const f of v)f[0]==="-"?n.skips.push(f.slice(1)):n.names.push(f)}function o(y,v){let f=0,S=0,g=-1,C=0;for(;f<y.length;)if(S<v.length&&(v[S]===y[f]||v[S]==="*"))v[S]==="*"?(g=S,C=f,S++):(f++,S++);else if(g!==-1)S=g+1,C++,f=C;else return!1;for(;S<v.length&&v[S]==="*";)S++;return S===v.length}function d(){const y=[...n.names,...n.skips.map(v=>"-"+v)].join(",");return n.enable(""),y}function c(y){for(const v of n.skips)if(o(y,v))return!1;for(const v of n.names)if(o(y,v))return!0;return!1}function p(y){return y instanceof Error?y.stack||y.message:y}function w(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}return Ve=t,Ve}var Ct;function dr(){return Ct||(Ct=1,(function(t,e){e.formatArgs=n,e.save=i,e.load=s,e.useColors=r,e.storage=o(),e.destroy=(()=>{let c=!1;return()=>{c||(c=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let c;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(c=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(c[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function n(c){if(c[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+c[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const p="color: "+this.color;c.splice(1,0,p,"color: inherit");let w=0,y=0;c[0].replace(/%[a-zA-Z%]/g,v=>{v!=="%%"&&(w++,v==="%c"&&(y=w))}),c.splice(y,0,p)}e.log=console.debug||console.log||(()=>{});function i(c){try{c?e.storage.setItem("debug",c):e.storage.removeItem("debug")}catch{}}function s(){let c;try{c=e.storage.getItem("debug")||e.storage.getItem("DEBUG")}catch{}return!c&&typeof process<"u"&&"env"in process&&(c=process.env.DEBUG),c}function o(){try{return localStorage}catch{}}t.exports=fr()(e);const{formatters:d}=t.exports;d.j=function(c){try{return JSON.stringify(c)}catch(p){return"[UnexpectedJSONParseError]: "+p.message}}})(Ne,Ne.exports)),Ne.exports}var hr=dr(),Se=lr(hr),fe={},se={},Ce={},Et;function xe(){return Et||(Et=1,(function(t){var e=Ce&&Ce.__extends||(function(){var f=function(S,g){return f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(C,b){C.__proto__=b}||function(C,b){for(var E in b)Object.prototype.hasOwnProperty.call(b,E)&&(C[E]=b[E])},f(S,g)};return function(S,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");f(S,g);function C(){this.constructor=S}S.prototype=g===null?Object.create(g):(C.prototype=g.prototype,new C)}})();Object.defineProperty(t,"__esModule",{value:!0}),t.createJSONRPCNotification=t.createJSONRPCRequest=t.createJSONRPCSuccessResponse=t.createJSONRPCErrorResponse=t.JSONRPCErrorCode=t.JSONRPCErrorException=t.isJSONRPCResponses=t.isJSONRPCResponse=t.isJSONRPCRequests=t.isJSONRPCRequest=t.isJSONRPCID=t.JSONRPC=void 0,t.JSONRPC="2.0";var r=function(f){return typeof f=="string"||typeof f=="number"||f===null};t.isJSONRPCID=r;var n=function(f){return f.jsonrpc===t.JSONRPC&&f.method!==void 0&&f.result===void 0&&f.error===void 0};t.isJSONRPCRequest=n;var i=function(f){return Array.isArray(f)&&f.every(t.isJSONRPCRequest)};t.isJSONRPCRequests=i;var s=function(f){return f.jsonrpc===t.JSONRPC&&f.id!==void 0&&(f.result!==void 0||f.error!==void 0)};t.isJSONRPCResponse=s;var o=function(f){return Array.isArray(f)&&f.every(t.isJSONRPCResponse)};t.isJSONRPCResponses=o;var d=function(f,S,g){var C={code:f,message:S};return g!=null&&(C.data=g),C},c=(function(f){e(S,f);function S(g,C,b){var E=f.call(this,g)||this;return Object.setPrototypeOf(E,S.prototype),E.code=C,E.data=b,E}return S.prototype.toObject=function(){return d(this.code,this.message,this.data)},S})(Error);t.JSONRPCErrorException=c,(function(f){f[f.ParseError=-32700]="ParseError",f[f.InvalidRequest=-32600]="InvalidRequest",f[f.MethodNotFound=-32601]="MethodNotFound",f[f.InvalidParams=-32602]="InvalidParams",f[f.InternalError=-32603]="InternalError"})(t.JSONRPCErrorCode||(t.JSONRPCErrorCode={}));var p=function(f,S,g,C){return{jsonrpc:t.JSONRPC,id:f,error:d(S,g,C)}};t.createJSONRPCErrorResponse=p;var w=function(f,S){return{jsonrpc:t.JSONRPC,id:f,result:S??null}};t.createJSONRPCSuccessResponse=w;var y=function(f,S,g){return{jsonrpc:t.JSONRPC,id:f,method:S,params:g}};t.createJSONRPCRequest=y;var v=function(f,S){return{jsonrpc:t.JSONRPC,method:f,params:S}};t.createJSONRPCNotification=v})(Ce)),Ce}var Ee={},Rt;function Ot(){return Rt||(Rt=1,Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.DefaultErrorCode=void 0,Ee.DefaultErrorCode=0),Ee}var At;function pr(){if(At)return se;At=1;var t=se&&se.__awaiter||function(o,d,c,p){function w(y){return y instanceof c?y:new c(function(v){v(y)})}return new(c||(c=Promise))(function(y,v){function f(C){try{g(p.next(C))}catch(b){v(b)}}function S(C){try{g(p.throw(C))}catch(b){v(b)}}function g(C){C.done?y(C.value):w(C.value).then(f,S)}g((p=p.apply(o,d||[])).next())})},e=se&&se.__generator||function(o,d){var c={label:0,sent:function(){if(y[0]&1)throw y[1];return y[1]},trys:[],ops:[]},p,w,y,v;return v={next:f(0),throw:f(1),return:f(2)},typeof Symbol=="function"&&(v[Symbol.iterator]=function(){return this}),v;function f(g){return function(C){return S([g,C])}}function S(g){if(p)throw new TypeError("Generator is already executing.");for(;v&&(v=0,g[0]&&(c=0)),c;)try{if(p=1,w&&(y=g[0]&2?w.return:g[0]?w.throw||((y=w.return)&&y.call(w),0):w.next)&&!(y=y.call(w,g[1])).done)return y;switch(w=0,y&&(g=[g[0]&2,y.value]),g[0]){case 0:case 1:y=g;break;case 4:return c.label++,{value:g[1],done:!1};case 5:c.label++,w=g[1],g=[0];continue;case 7:g=c.ops.pop(),c.trys.pop();continue;default:if(y=c.trys,!(y=y.length>0&&y[y.length-1])&&(g[0]===6||g[0]===2)){c=0;continue}if(g[0]===3&&(!y||g[1]>y[0]&&g[1]<y[3])){c.label=g[1];break}if(g[0]===6&&c.label<y[1]){c.label=y[1],y=g;break}if(y&&c.label<y[2]){c.label=y[2],c.ops.push(g);break}y[2]&&c.ops.pop(),c.trys.pop();continue}g=d.call(o,c)}catch(C){g=[6,C],w=0}finally{p=y=0}if(g[0]&5)throw g[1];return{value:g[0]?g[1]:void 0,done:!0}}};Object.defineProperty(se,"__esModule",{value:!0}),se.JSONRPCClient=void 0;var r=xe(),n=Ot(),i=(function(){function o(d,c){this._send=d,this.createID=c,this.idToResolveMap=new Map,this.id=0}return o.prototype._createID=function(){return this.createID?this.createID():++this.id},o.prototype.timeout=function(d,c){var p=this;c===void 0&&(c=function(v){return(0,r.createJSONRPCErrorResponse)(v,n.DefaultErrorCode,"Request timeout")});var w=function(v,f){var S=setTimeout(function(){v.forEach(function(g){var C=p.idToResolveMap.get(g);C&&(p.idToResolveMap.delete(g),C(c(g)))})},d);return f().then(function(g){return clearTimeout(S),g},function(g){return clearTimeout(S),Promise.reject(g)})},y=function(v,f){var S=(Array.isArray(v)?v:[v]).map(function(g){return g.id}).filter(s);return w(S,function(){return p.requestAdvanced(v,f)})};return{request:function(v,f,S){var g=p._createID();return w([g],function(){return p.requestWithID(v,f,S,g)})},requestAdvanced:function(v,f){return y(v,f)}}},o.prototype.request=function(d,c,p){return this.requestWithID(d,c,p,this._createID())},o.prototype.requestWithID=function(d,c,p,w){return t(this,void 0,void 0,function(){var y,v;return e(this,function(f){switch(f.label){case 0:return y=(0,r.createJSONRPCRequest)(w,d,c),[4,this.requestAdvanced(y,p)];case 1:return v=f.sent(),v.result!==void 0&&!v.error?[2,v.result]:v.result===void 0&&v.error?[2,Promise.reject(new r.JSONRPCErrorException(v.error.message,v.error.code,v.error.data))]:[2,Promise.reject(new Error("An unexpected error occurred"))]}})})},o.prototype.requestAdvanced=function(d,c){var p=this,w=Array.isArray(d);Array.isArray(d)||(d=[d]);var y=d.filter(function(S){return s(S.id)}),v=y.map(function(S){return new Promise(function(g){return p.idToResolveMap.set(S.id,g)})}),f=Promise.all(v).then(function(S){return w||!S.length?S:S[0]});return this.send(w?d:d[0],c).then(function(){return f},function(S){return y.forEach(function(g){p.receive((0,r.createJSONRPCErrorResponse)(g.id,n.DefaultErrorCode,S&&S.message||"Failed to send a request"))}),f})},o.prototype.notify=function(d,c,p){var w=(0,r.createJSONRPCNotification)(d,c);this.send(w,p).then(void 0,function(){})},o.prototype.send=function(d,c){return t(this,void 0,void 0,function(){return e(this,function(p){return[2,this._send(d,c)]})})},o.prototype.rejectAllPendingRequests=function(d){this.idToResolveMap.forEach(function(c,p){return c((0,r.createJSONRPCErrorResponse)(p,n.DefaultErrorCode,d))}),this.idToResolveMap.clear()},o.prototype.receive=function(d){var c=this;Array.isArray(d)||(d=[d]),d.forEach(function(p){var w=c.idToResolveMap.get(p.id);w&&(c.idToResolveMap.delete(p.id),w(p))})},o})();se.JSONRPCClient=i;var s=function(o){return o!=null};return se}var $e={},Mt;function yr(){return Mt||(Mt=1,Object.defineProperty($e,"__esModule",{value:!0})),$e}var oe={},Pt;function wr(){return Pt||(Pt=1,(function(t){var e=oe&&oe.__awaiter||function(C,b,E,A){function k(P){return P instanceof E?P:new E(function(D){D(P)})}return new(E||(E=Promise))(function(P,D){function q($){try{_(A.next($))}catch(ve){D(ve)}}function Z($){try{_(A.throw($))}catch(ve){D(ve)}}function _($){$.done?P($.value):k($.value).then(q,Z)}_((A=A.apply(C,b||[])).next())})},r=oe&&oe.__generator||function(C,b){var E={label:0,sent:function(){if(P[0]&1)throw P[1];return P[1]},trys:[],ops:[]},A,k,P,D;return D={next:q(0),throw:q(1),return:q(2)},typeof Symbol=="function"&&(D[Symbol.iterator]=function(){return this}),D;function q(_){return function($){return Z([_,$])}}function Z(_){if(A)throw new TypeError("Generator is already executing.");for(;D&&(D=0,_[0]&&(E=0)),E;)try{if(A=1,k&&(P=_[0]&2?k.return:_[0]?k.throw||((P=k.return)&&P.call(k),0):k.next)&&!(P=P.call(k,_[1])).done)return P;switch(k=0,P&&(_=[_[0]&2,P.value]),_[0]){case 0:case 1:P=_;break;case 4:return E.label++,{value:_[1],done:!1};case 5:E.label++,k=_[1],_=[0];continue;case 7:_=E.ops.pop(),E.trys.pop();continue;default:if(P=E.trys,!(P=P.length>0&&P[P.length-1])&&(_[0]===6||_[0]===2)){E=0;continue}if(_[0]===3&&(!P||_[1]>P[0]&&_[1]<P[3])){E.label=_[1];break}if(_[0]===6&&E.label<P[1]){E.label=P[1],P=_;break}if(P&&E.label<P[2]){E.label=P[2],E.ops.push(_);break}P[2]&&E.ops.pop(),E.trys.pop();continue}_=b.call(C,E)}catch($){_=[6,$],k=0}finally{A=P=0}if(_[0]&5)throw _[1];return{value:_[0]?_[1]:void 0,done:!0}}},n=oe&&oe.__spreadArray||function(C,b,E){if(E||arguments.length===2)for(var A=0,k=b.length,P;A<k;A++)(P||!(A in b))&&(P||(P=Array.prototype.slice.call(b,0,A)),P[A]=b[A]);return C.concat(P||Array.prototype.slice.call(b))};Object.defineProperty(t,"__esModule",{value:!0}),t.JSONRPCServer=t.createMethodNotFoundResponse=t.createInvalidRequestResponse=void 0;var i=xe(),s=Ot(),o=function(){return(0,i.createJSONRPCErrorResponse)(null,i.JSONRPCErrorCode.ParseError,"Parse error")},d=function(C){return(0,i.createJSONRPCErrorResponse)((0,i.isJSONRPCID)(C.id)?C.id:null,i.JSONRPCErrorCode.InvalidRequest,"Invalid Request")};t.createInvalidRequestResponse=d;var c=function(C){return(0,i.createJSONRPCErrorResponse)(C,i.JSONRPCErrorCode.MethodNotFound,"Method not found")};t.createMethodNotFoundResponse=c;var p=(function(){function C(b){b===void 0&&(b={});var E;this.mapErrorToJSONRPCErrorResponse=f,this.handleMethodNotFound=S,this.nameToMethodMap=new Map,this.middleware=null,this.errorListener=(E=b.errorListener)!==null&&E!==void 0?E:console.warn}return C.prototype.hasMethod=function(b){return this.nameToMethodMap.has(b)},C.prototype.addMethod=function(b,E){this.addMethodAdvanced(b,this.toJSONRPCMethod(E))},C.prototype.removeMethod=function(b){this.nameToMethodMap.delete(b)},C.prototype.toJSONRPCMethod=function(b){return function(E,A){var k=b(E.params,A);return Promise.resolve(k).then(function(P){return v(E.id,P)})}},C.prototype.addMethodAdvanced=function(b,E){this.nameToMethodMap.set(b,E)},C.prototype.receiveJSON=function(b,E){var A=this.tryParseRequestJSON(b);return A?this.receive(A,E):Promise.resolve(o())},C.prototype.tryParseRequestJSON=function(b){try{return JSON.parse(b)}catch{return null}},C.prototype.receive=function(b,E){return Array.isArray(b)?this.receiveMultiple(b,E):this.receiveSingle(b,E)},C.prototype.receiveMultiple=function(b,E){return e(this,void 0,void 0,function(){var A,k=this;return r(this,function(P){switch(P.label){case 0:return b.length===0?[2,(0,i.createJSONRPCErrorResponse)(null,i.JSONRPCErrorCode.InvalidRequest,"Invalid Request")]:[4,Promise.all(b.map(function(D){return k.receiveSingle(D,E)}))];case 1:return A=P.sent().filter(w),A.length===1?[2,A[0]]:A.length?[2,A]:[2,null]}})})},C.prototype.receiveSingle=function(b,E){return e(this,void 0,void 0,function(){var A,k;return r(this,function(P){switch(P.label){case 0:return A=this.nameToMethodMap.get(b.method),(0,i.isJSONRPCRequest)(b)?[3,1]:[2,(0,t.createInvalidRequestResponse)(b)];case 1:return[4,this.callMethod(A,b,E)];case 2:return k=P.sent(),[2,g(b,k)]}})})},C.prototype.applyMiddleware=function(){for(var b=[],E=0;E<arguments.length;E++)b[E]=arguments[E];this.middleware?this.middleware=this.combineMiddlewares(n([this.middleware],b,!0)):this.middleware=this.combineMiddlewares(b)},C.prototype.combineMiddlewares=function(b){return b.length?b.reduce(this.middlewareReducer):null},C.prototype.middlewareReducer=function(b,E){return function(A,k,P){return b(function(D,q){return E(A,D,q)},k,P)}},C.prototype.callMethod=function(b,E,A){var k=this,P=function(q,Z){return b?b(q,Z):k.handleMethodNotFound(q,Z)},D=function(q){return k.errorListener('An unexpected error occurred while executing "'.concat(E.method,'" JSON-RPC method:'),q),Promise.resolve(k.mapErrorToJSONRPCErrorResponseIfNecessary(E.id,q))};try{return(this.middleware||y)(P,E,A).then(void 0,D)}catch(q){return D(q)}},C.prototype.mapErrorToJSONRPCErrorResponseIfNecessary=function(b,E){return b!==void 0?this.mapErrorToJSONRPCErrorResponse(b,E):null},C})();t.JSONRPCServer=p;var w=function(C){return C!==null},y=function(C,b,E){return C(b,E)},v=function(C,b){return C!==void 0?(0,i.createJSONRPCSuccessResponse)(C,b):null},f=function(C,b){var E,A=(E=b?.message)!==null&&E!==void 0?E:"An unexpected error occurred",k=s.DefaultErrorCode,P;return b instanceof i.JSONRPCErrorException&&(k=b.code,P=b.data),(0,i.createJSONRPCErrorResponse)(C,k,A,P)},S=function(C){return e(void 0,void 0,void 0,function(){return r(this,function(b){return C.id!==void 0?[2,(0,t.createMethodNotFoundResponse)(C.id)]:[2,null]})})},g=function(C,b){return b||(C.id!==void 0?(0,i.createJSONRPCErrorResponse)(C.id,i.JSONRPCErrorCode.InternalError,"Internal error"):null)}})(oe)),oe}var ae={},It;function vr(){if(It)return ae;It=1;var t=ae&&ae.__awaiter||function(i,s,o,d){function c(p){return p instanceof o?p:new o(function(w){w(p)})}return new(o||(o=Promise))(function(p,w){function y(S){try{f(d.next(S))}catch(g){w(g)}}function v(S){try{f(d.throw(S))}catch(g){w(g)}}function f(S){S.done?p(S.value):c(S.value).then(y,v)}f((d=d.apply(i,s||[])).next())})},e=ae&&ae.__generator||function(i,s){var o={label:0,sent:function(){if(p[0]&1)throw p[1];return p[1]},trys:[],ops:[]},d,c,p,w;return w={next:y(0),throw:y(1),return:y(2)},typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function y(f){return function(S){return v([f,S])}}function v(f){if(d)throw new TypeError("Generator is already executing.");for(;w&&(w=0,f[0]&&(o=0)),o;)try{if(d=1,c&&(p=f[0]&2?c.return:f[0]?c.throw||((p=c.return)&&p.call(c),0):c.next)&&!(p=p.call(c,f[1])).done)return p;switch(c=0,p&&(f=[f[0]&2,p.value]),f[0]){case 0:case 1:p=f;break;case 4:return o.label++,{value:f[1],done:!1};case 5:o.label++,c=f[1],f=[0];continue;case 7:f=o.ops.pop(),o.trys.pop();continue;default:if(p=o.trys,!(p=p.length>0&&p[p.length-1])&&(f[0]===6||f[0]===2)){o=0;continue}if(f[0]===3&&(!p||f[1]>p[0]&&f[1]<p[3])){o.label=f[1];break}if(f[0]===6&&o.label<p[1]){o.label=p[1],p=f;break}if(p&&o.label<p[2]){o.label=p[2],o.ops.push(f);break}p[2]&&o.ops.pop(),o.trys.pop();continue}f=s.call(i,o)}catch(S){f=[6,S],c=0}finally{d=p=0}if(f[0]&5)throw f[1];return{value:f[0]?f[1]:void 0,done:!0}}};Object.defineProperty(ae,"__esModule",{value:!0}),ae.JSONRPCServerAndClient=void 0;var r=xe(),n=(function(){function i(s,o,d){d===void 0&&(d={});var c;this.server=s,this.client=o,this.errorListener=(c=d.errorListener)!==null&&c!==void 0?c:console.warn}return i.prototype.applyServerMiddleware=function(){for(var s,o=[],d=0;d<arguments.length;d++)o[d]=arguments[d];(s=this.server).applyMiddleware.apply(s,o)},i.prototype.hasMethod=function(s){return this.server.hasMethod(s)},i.prototype.addMethod=function(s,o){this.server.addMethod(s,o)},i.prototype.addMethodAdvanced=function(s,o){this.server.addMethodAdvanced(s,o)},i.prototype.removeMethod=function(s){this.server.removeMethod(s)},i.prototype.timeout=function(s){return this.client.timeout(s)},i.prototype.request=function(s,o,d){return this.client.request(s,o,d)},i.prototype.requestAdvanced=function(s,o){return this.client.requestAdvanced(s,o)},i.prototype.notify=function(s,o,d){this.client.notify(s,o,d)},i.prototype.rejectAllPendingRequests=function(s){this.client.rejectAllPendingRequests(s)},i.prototype.receiveAndSend=function(s,o,d){return t(this,void 0,void 0,function(){var c,p;return e(this,function(w){switch(w.label){case 0:return(0,r.isJSONRPCResponse)(s)||(0,r.isJSONRPCResponses)(s)?(this.client.receive(s),[3,4]):[3,1];case 1:return(0,r.isJSONRPCRequest)(s)||(0,r.isJSONRPCRequests)(s)?[4,this.server.receive(s,o)]:[3,3];case 2:return c=w.sent(),c?[2,this.client.send(c,d)]:[3,4];case 3:return p="Received an invalid JSON-RPC message",this.errorListener(p,s),[2,Promise.reject(new Error(p))];case 4:return[2]}})})},i})();return ae.JSONRPCServerAndClient=n,ae}var kt;function gr(){return kt||(kt=1,(function(t){var e=fe&&fe.__createBinding||(Object.create?(function(n,i,s,o){o===void 0&&(o=s);var d=Object.getOwnPropertyDescriptor(i,s);(!d||("get"in d?!i.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(n,o,d)}):(function(n,i,s,o){o===void 0&&(o=s),n[o]=i[s]})),r=fe&&fe.__exportStar||function(n,i){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,n,s)};Object.defineProperty(t,"__esModule",{value:!0}),r(pr(),t),r(yr(),t),r(xe(),t),r(wr(),t),r(vr(),t)})(fe)),fe}var _e=gr();class br extends Event{code;reason;wasClean;constructor(e,r={}){super(e,r),this.code=r.code??0,this.reason=r.reason??"",this.wasClean=r.wasClean??!1}}function mr(t,e){const r="CloseEvent"in globalThis?globalThis.CloseEvent:br;return new r(t,e)}class Sr{#e=new EventTarget;addEventListener(e,r,n){return this.#e.addEventListener(e,r,n),()=>{this.#e.removeEventListener(e,r,n)}}removeEventListener(e,r,n){this.#e.removeEventListener(e,r,n)}dispatchEvent(e){return this.#e.dispatchEvent(e)}}const j=Symbol.for("@appetizeio/rpc:rpcMethods");class Cr extends Sr{send;constructor(e){super(),this.send=e}dispatchClose(e){return this.dispatchEvent(mr("close",e))}dispatchMessage(e){return this.dispatchEvent(new CustomEvent("message",{detail:e}))}}const Nt=Se("appetize.io:error:rpc");function We(t,e){const r=new _e.JSONRPCServerAndClient(new _e.JSONRPCServer({errorListener:Nt}),Rr(t),{errorListener:Nt}),n=t[j].addEventListener("message",({detail:s})=>{r.receiveAndSend(s)}),i=t[j].addEventListener("close",()=>{n(),r.rejectAllPendingRequests("Transport closed")},{once:!0});for(const s in e){const o=e[s];o&&r.addMethod(s,o.bind(e))}return{rpc:r,unsub:()=>{n(),i()}}}function Er(t,e){const{rpc:r,unsub:n}=We(t,e);return{client:r.client,unsub:n}}function Fe(t,e){const r=t[j].addEventListener("message",({detail:i})=>{if("method"in i)try{e({method:i.method,param:i.params})}catch{}}),n=t[j].addEventListener("close",r,{once:!0});return()=>{r(),n()}}function Rr(t){return new _e.JSONRPCClient(t[j].send.bind(t[j]),()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)+1)}const Or=(...t)=>Er(...t),Ge=["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Enter","Tab"],Ar=33333,Mr=[[99,10],[396,11],[792,21],[1620,22],[3600,31],[5120,32],[8192,40],[8704,42],[22080,50],[36864,51],[139264,60]],Pr=new Intl.Segmenter(void 0,{granularity:"grapheme"}),Ir=new Set(Ge);class kr{#e;#t=!1;#r;#n;#i;#o;#a;#s;#c;#l=0;#u=!1;constructor({canvas:e,context:r,onClose:n,onError:i,signal:s,stream:o}){this.#e=e,this.#r=r,this.#o=n,this.#a=i,this.#s=s,this.#c=o,this.#s?.addEventListener("abort",this.close,{once:!0}),this.#p()}close=()=>{this.#t||(this.#t=!0,this.#f(),this.#n=void 0,this.#c.close(),this.#s?.removeEventListener("abort",this.close),this.#o?.())};#f(){this.#n&&this.#n.state!=="closed"&&this.#n.close()}#h(e){const r=Fr(e.data,e.width,e.height),n=`${r}:${String(e.width)}x${String(e.height)}`;this.#n&&this.#i===n||(this.#f(),this.#i=n,this.#e.height=e.height,this.#e.width=e.width,this.#n=new VideoDecoder({error:this.#d,output:i=>{this.#r.drawImage(i,0,0,this.#e.width,this.#e.height),i.close()}}),this.#n.configure({codec:r,codedHeight:e.height,codedWidth:e.width,hardwareAcceleration:"no-preference",optimizeForLatency:!0}))}async#p(){try{for await(const e of this.#c){if(this.#t)return;if(e.data.byteLength!==0){if(e.type==="key"&&e.codec==="jpeg"){this.#u=!1,this.#i=void 0,this.#f(),this.#n=void 0,await this.#y(e);continue}if(!(e.type==="delta"&&this.#u)&&(e.type==="key"&&(this.#u=!1,this.#h(e)),this.#n?.state==="configured")){if(this.#n.decodeQueueSize>2&&e.type==="delta"){this.#d();continue}this.#n.decode(new EncodedVideoChunk({data:new Uint8Array(e.data),timestamp:this.#l,type:e.type})),this.#l+=Ar}}}}catch(e){this.#t||this.#a?.(e)}finally{this.close()}}#d=()=>{this.#u=!0,this.#i=void 0,this.#f(),this.#n=void 0,this.#c.requestKeyFrame()};async#y(e){const r=await createImageBitmap(new Blob([new Uint8Array(e.data)],{type:"image/jpeg"}));this.#e.height=e.height,this.#e.width=e.width,this.#r.drawImage(r,0,0,e.width,e.height),r.close()}}function Nr(t,e,{signal:r}={}){if(r?.aborted)return()=>{};const n=s=>{s.altKey||s.ctrlKey||s.metaKey||!Tr(s.key)||(s.preventDefault(),t.keyboard.press(s.key))},i=()=>{e.removeEventListener("keydown",n),r?.removeEventListener("abort",i)};return e.addEventListener("keydown",n),r?.addEventListener("abort",i,{once:!0}),i}function xr(t,e,{signal:r}={}){let n,i;const s=p=>{n===void 0&&(p.preventDefault(),n=p.pointerId,i=He(e,p),e.focus(),e.setPointerCapture(p.pointerId),t.touch.down(i.x,i.y))},o=p=>{p.pointerId===n&&(p.preventDefault(),i=He(e,p),t.touch.move(i.x,i.y))},d=p=>{if(p.pointerId!==n)return;p.preventDefault();const w=He(e,p);t.touch.up(w.x,w.y),_t(e,p.pointerId),n=void 0,i=void 0},c=()=>{n!==void 0&&_t(e,n),i&&t.touch.up(i.x,i.y),n=void 0,i=void 0,e.removeEventListener("pointercancel",d),e.removeEventListener("pointerdown",s),e.removeEventListener("pointermove",o),e.removeEventListener("pointerup",d),r?.removeEventListener("abort",c)};return r?.aborted||(e.addEventListener("pointercancel",d),e.addEventListener("pointerdown",s),e.addEventListener("pointermove",o),e.addEventListener("pointerup",d),r?.addEventListener("abort",c,{once:!0})),c}async function _r(t,e,{onClose:r,onError:n,signal:i}={}){const s=e.getContext("2d");if(!s)throw new Error("Canvas context unavailable");i?.throwIfAborted();const o=await t.video.createStream({signal:i});return{close:new kr({canvas:e,context:s,onClose:r,onError:n,signal:i,stream:o}).close}}function xt(t){return Math.max(0,Math.min(1,t))}function Fr(t,e,r){const n=Math.ceil(e/16)*Math.ceil(r/16),i=Mr.find(([s])=>n<=s)?.[1]??62;for(let s=0;s<t.length-7;s+=1){const o=t[s]===0&&t[s+1]===0&&t[s+2]===1,d=t[s]===0&&t[s+1]===0&&t[s+2]===0&&t[s+3]===1,c=o?s+3:d?s+4:-1;if(c>=0&&(t[c]&31)===7)return`avc1.${[t[c+1],t[c+2],Math.max(t[c+3],i)].map(p=>p.toString(16).padStart(2,"0")).join("")}`}return"avc1.42e01e"}function Tr(t){return Array.from(Pr.segment(t)).length===1||Ir.has(t)}function He(t,e){const r=t.getBoundingClientRect();return{x:xt((e.clientX-r.left)/r.width),y:xt((e.clientY-r.top)/r.height)}}function _t(t,e){t.hasPointerCapture(e)&&t.releasePointerCapture(e)}let Ze;try{Ze=new TextDecoder}catch{}let M,Q,h=0;const Lr=105,Ur=57342,Jr=57343,Ft=57337,Tt=6,ge={};let Re=11281e4,ce=1681e4,L={},z,Te,Le=0,Oe=0,W,te,V=[],Xe=[],Y,X,Ae,Lt={useRecords:!1,mapsAsObjects:!0},Me=!1,Ut=2;try{new Function("")}catch{Ut=1/0}class ke{constructor(e){if(e&&((e.keyMap||e._keyMap)&&!e.useRecords&&(e.useRecords=!1,e.mapsAsObjects=!0),e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.getStructures&&(e.getShared=e.getStructures),e.getShared&&!e.structures&&((e.structures=[]).uninitialized=!0),e.keyMap)){this.mapKey=new Map;for(let[r,n]of Object.entries(e.keyMap))this.mapKey.set(n,r)}Object.assign(this,e)}decodeKey(e){return this.keyMap&&this.mapKey.get(e)||e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(e){if(!this._keyMap)return e;let r=new Map;for(let[n,i]of Object.entries(e))r.set(this._keyMap.hasOwnProperty(n)?this._keyMap[n]:n,i);return r}decodeKeys(e){if(!this._keyMap||e.constructor.name!="Map")return e;if(!this._mapKey){this._mapKey=new Map;for(let[n,i]of Object.entries(this._keyMap))this._mapKey.set(i,n)}let r={};return e.forEach((n,i)=>r[re(this._mapKey.has(i)?this._mapKey.get(i):i)]=n),r}mapDecode(e,r){let n=this.decode(e);return this._keyMap&&n.constructor.name==="Array"?n.map(i=>this.decodeKeys(i)):n}decode(e,r){if(M)return zt(()=>(rt(),this?this.decode(e,r):ke.prototype.decode.call(Lt,e,r)));Q=r>-1?r:e.length,h=0,Oe=0,Te=null,W=null,M=e;try{X=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(n){throw M=null,e instanceof Uint8Array?n:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof ke){if(L=this,Y=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return z=this.structures,Ue();(!z||z.length>0)&&(z=[])}else L=Lt,(!z||z.length>0)&&(z=[]),Y=null;return Ue()}decodeMultiple(e,r){let n,i=0;try{let s=e.length;Me=!0;let o=this?this.decode(e,s):it.decode(e,s);if(r){if(r(o)===!1)return;for(;h<s;)if(i=h,r(Ue())===!1)return}else{for(n=[o];h<s;)i=h,n.push(Ue());return n}}catch(s){throw s.lastPosition=i,s.values=n,s}finally{Me=!1,rt()}}}function Ue(){try{let t=U();if(W){if(h>=W.postBundlePosition){let e=new Error("Unexpected bundle position");throw e.incomplete=!0,e}h=W.postBundlePosition,W=null}if(h==Q)z=null,M=null,te&&(te=null);else if(h>Q){let e=new Error("Unexpected end of CBOR data");throw e.incomplete=!0,e}else if(!Me)throw new Error("Data read, but end of buffer not reached");return t}catch(t){throw rt(),(t instanceof RangeError||t.message.startsWith("Unexpected end of buffer"))&&(t.incomplete=!0),t}}function de(){let t=new Error("Unexpected end of CBOR data");return t.incomplete=!0,t}function U(){if(!(h<Q))throw de();let t=M[h++],e=t>>5;if(t=t&31,t>23)switch(t){case 24:if(h>=Q)throw de();t=M[h++];break;case 25:if(e==7)return qr();t=X.getUint16(h),h+=2;break;case 26:if(e==7){let r=X.getFloat32(h);if(L.useFloat32>2){let n=nt[(M[h]&127)<<1|M[h+1]>>7];return h+=4,(n*r+(r>0?.5:-.5)>>0)/n}return h+=4,r}if(t=X.getUint32(h),h+=4,e===1)return-1-t;break;case 27:if(e==7){let r=X.getFloat64(h);return h+=8,r}if(e>1){if(X.getUint32(h)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");t=X.getUint32(h+4)}else L.int64AsNumber?(t=X.getUint32(h)*4294967296,t+=X.getUint32(h+4)):t=X.getBigUint64(h);h+=8;break;case 31:switch(e){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let r=[],n,i=0;for(;(n=U())!=ge;){if(i>=Re)throw new Error(`Array length exceeds ${Re}`);r[i++]=n}return e==4?r:e==3?r.join(""):Buffer.concat(r);case 5:let s;if(L.mapsAsObjects){let o={},d=0;if(L.keyMap)for(;(s=U())!=ge;){if(d++>=ce)throw new Error(`Property count exceeds ${ce}`);o[re(L.decodeKey(s))]=U()}else for(;(s=U())!=ge;){if(d++>=ce)throw new Error(`Property count exceeds ${ce}`);o[re(s)]=U()}return o}else{Ae&&(L.mapsAsObjects=!0,Ae=!1);let o=new Map;if(L.keyMap){let d=0;for(;(s=U())!=ge;){if(d++>=ce)throw new Error(`Map size exceeds ${ce}`);o.set(L.decodeKey(s),U())}}else{let d=0;for(;(s=U())!=ge;){if(d++>=ce)throw new Error(`Map size exceeds ${ce}`);o.set(s,U())}}return o}case 7:return ge;default:throw new Error("Invalid major type for indefinite length "+e)}default:throw new Error("Unknown token "+t)}switch(e){case 0:return t;case 1:return~t;case 2:return Br(t);case 3:if(Oe>=h)return Te.slice(h-Le,(h+=t)-Le);if(Oe==0&&Q<140&&t<32){let i=t<16?Dt(t):jr(t);if(i!=null)return i}return Dr(t);case 4:if(t>=Re)throw new Error(`Array length exceeds ${Re}`);if(t>Q-h)throw de();let r=new Array(t);for(let i=0;i<t;i++)r[i]=U();return r;case 5:if(t>=ce)throw new Error(`Map size exceeds ${Re}`);if(t>(Q-h)/2)throw de();if(L.mapsAsObjects){let i={};if(L.keyMap)for(let s=0;s<t;s++)i[re(L.decodeKey(U()))]=U();else for(let s=0;s<t;s++)i[re(U())]=U();return i}else{Ae&&(L.mapsAsObjects=!0,Ae=!1);let i=new Map;if(L.keyMap)for(let s=0;s<t;s++)i.set(L.decodeKey(U()),U());else for(let s=0;s<t;s++)i.set(U(),U());return i}case 6:if(t>=Ft){let i=z[t&8191];if(i)return i.read||(i.read=Ye(i)),i.read();if(t<65536){if(t==Jr){let s=me(),o=U(),d=U();et(o,d);let c={};if(L.keyMap)for(let p=2;p<s;p++){let w=L.decodeKey(d[p-2]);c[re(w)]=U()}else for(let p=2;p<s;p++){let w=d[p-2];c[re(w)]=U()}return c}else if(t==Ur){let s=me(),o=U();for(let d=2;d<s;d++)et(o++,U());return U()}else if(t==Ft)return Gr();if(L.getShared&&(tt(),i=z[t&8191],i))return i.read||(i.read=Ye(i)),i.read()}}let n=V[t];if(n)return n.handlesRead?n(U):n(U());{let i=U();for(let s=0;s<Xe.length;s++){let o=Xe[s](t,i);if(o!==void 0)return o}return new he(i,t)}case 7:switch(t){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;default:let i=(Y||pe())[t];if(i!==void 0)return i;throw new Error("Unknown token "+t)}default:throw isNaN(t)?de():new Error("Unknown CBOR token "+t)}}const Jt=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Ye(t){if(!t)throw new Error("Structure is required in record definition");function e(){let r=M[h++];if(r=r&31,r>23)switch(r){case 24:r=M[h++];break;case 25:r=X.getUint16(h),h+=2;break;case 26:r=X.getUint32(h),h+=4;break;default:throw new Error("Expected array header, but got "+M[h-1])}let n=this.compiledReader;for(;n;){if(n.propertyCount===r)return n(U);n=n.next}if(this.slowReads++>=Ut){let s=this.length==r?this:this.slice(0,r);return n=L.keyMap?new Function("r","return {"+s.map(o=>L.decodeKey(o)).map(o=>Jt.test(o)?re(o)+":r()":"["+JSON.stringify(o)+"]:r()").join(",")+"}"):new Function("r","return {"+s.map(o=>Jt.test(o)?re(o)+":r()":"["+JSON.stringify(o)+"]:r()").join(",")+"}"),this.compiledReader&&(n.next=this.compiledReader),n.propertyCount=r,this.compiledReader=n,n(U)}let i={};if(L.keyMap)for(let s=0;s<r;s++)i[re(L.decodeKey(this[s]))]=U();else for(let s=0;s<r;s++)i[re(this[s])]=U();return i}return t.slowReads=0,e}function re(t){if(typeof t=="string")return t==="__proto__"?"__proto_":t;if(typeof t=="number"||typeof t=="boolean"||typeof t=="bigint")return t.toString();if(t==null)return t+"";throw new Error("Invalid property name type "+typeof t)}let Dr=Qe;function Qe(t){let e;if(t<16&&(e=Dt(t)))return e;if(t>64&&Ze)return Ze.decode(M.subarray(h,h+=t));const r=h+t,n=[];for(e="";h<r;){const i=M[h++];if((i&128)===0)n.push(i);else if((i&224)===192)if(i<194||h>=r||(M[h]&192)!==128)n.push(65533);else{const s=M[h++]&63;n.push((i&31)<<6|s)}else if((i&240)===224){const s=h<r?M[h]:0;if(h>=r||(s&192)!==128||i===224&&s<160||i===237&&s>=160)n.push(65533);else if(h++,h>=r||(M[h]&192)!==128)n.push(65533);else{const o=M[h++]&63;n.push((i&31)<<12|(s&63)<<6|o)}}else if((i&248)===240){const s=h<r?M[h]:0;if(i>244||h>=r||(s&192)!==128||i===240&&s<144||i===244&&s>=144)n.push(65533);else if(h++,h>=r||(M[h]&192)!==128)n.push(65533);else{const o=M[h++]&63;if(h>=r||(M[h]&192)!==128)n.push(65533);else{const d=M[h++]&63;let c=(i&7)<<18|(s&63)<<12|o<<6|d;c-=65536,n.push(c>>>10&1023|55296),n.push(56320|c&1023)}}}else n.push(65533);n.length>=4096&&(e+=H.apply(String,n),n.length=0)}return n.length>0&&(e+=H.apply(String,n)),e}let H=String.fromCharCode;function jr(t){let e=h,r=new Array(t);for(let n=0;n<t;n++){const i=M[h++];if((i&128)>0){h=e;return}r[n]=i}return H.apply(String,r)}function Dt(t){if(t<4)if(t<2){if(t===0)return"";{let e=M[h++];if((e&128)>1){h-=1;return}return H(e)}}else{let e=M[h++],r=M[h++];if((e&128)>0||(r&128)>0){h-=2;return}if(t<3)return H(e,r);let n=M[h++];if((n&128)>0){h-=3;return}return H(e,r,n)}else{let e=M[h++],r=M[h++],n=M[h++],i=M[h++];if((e&128)>0||(r&128)>0||(n&128)>0||(i&128)>0){h-=4;return}if(t<6){if(t===4)return H(e,r,n,i);{let s=M[h++];if((s&128)>0){h-=5;return}return H(e,r,n,i,s)}}else if(t<8){let s=M[h++],o=M[h++];if((s&128)>0||(o&128)>0){h-=6;return}if(t<7)return H(e,r,n,i,s,o);let d=M[h++];if((d&128)>0){h-=7;return}return H(e,r,n,i,s,o,d)}else{let s=M[h++],o=M[h++],d=M[h++],c=M[h++];if((s&128)>0||(o&128)>0||(d&128)>0||(c&128)>0){h-=8;return}if(t<10){if(t===8)return H(e,r,n,i,s,o,d,c);{let p=M[h++];if((p&128)>0){h-=9;return}return H(e,r,n,i,s,o,d,c,p)}}else if(t<12){let p=M[h++],w=M[h++];if((p&128)>0||(w&128)>0){h-=10;return}if(t<11)return H(e,r,n,i,s,o,d,c,p,w);let y=M[h++];if((y&128)>0){h-=11;return}return H(e,r,n,i,s,o,d,c,p,w,y)}else{let p=M[h++],w=M[h++],y=M[h++],v=M[h++];if((p&128)>0||(w&128)>0||(y&128)>0||(v&128)>0){h-=12;return}if(t<14){if(t===12)return H(e,r,n,i,s,o,d,c,p,w,y,v);{let f=M[h++];if((f&128)>0){h-=13;return}return H(e,r,n,i,s,o,d,c,p,w,y,v,f)}}else{let f=M[h++],S=M[h++];if((f&128)>0||(S&128)>0){h-=14;return}if(t<15)return H(e,r,n,i,s,o,d,c,p,w,y,v,f,S);let g=M[h++];if((g&128)>0){h-=15;return}return H(e,r,n,i,s,o,d,c,p,w,y,v,f,S,g)}}}}}function Br(t){return L.copyBuffers?Uint8Array.prototype.slice.call(M,h,h+=t):M.subarray(h,h+=t)}let jt=new Float32Array(1),Je=new Uint8Array(jt.buffer,0,4);function qr(){let t=M[h++],e=M[h++],r=(t&127)>>2;if(r===31)return e||t&3?NaN:t&128?-1/0:1/0;if(r===0){let n=((t&3)<<8|e)/16777216;return t&128?-n:n}return Je[3]=t&128|(r>>1)+56,Je[2]=(t&7)<<5|e>>3,Je[1]=e<<5,Je[0]=0,jt[0]}new Array(4096);class he{constructor(e,r){this.value=e,this.tag=r}}V[0]=t=>new Date(t),V[1]=t=>new Date(Math.round(t*1e3)),V[2]=t=>{let e=BigInt(0);for(let r=0,n=t.byteLength;r<n;r++)e=BigInt(t[r])+(e<<BigInt(8));return e},V[3]=t=>BigInt(-1)-V[2](t),V[4]=t=>+(t[1]+"e"+t[0]),V[5]=t=>t[1]*Math.exp(t[0]*Math.log(2));const et=(t,e)=>{t=t-57344;let r=z[t];r&&r.isShared&&((z.restoreStructures||(z.restoreStructures=[]))[t]=r),z[t]=e,e.read=Ye(e)};V[Lr]=t=>{let e=t.length,r=t[1];et(t[0],r);let n={};for(let i=2;i<e;i++){let s=r[i-2];n[re(s)]=t[i]}return n},V[14]=t=>W?W[0].slice(W.position0,W.position0+=t):new he(t,14),V[15]=t=>W?W[1].slice(W.position1,W.position1+=t):new he(t,15);let zr={Error,RegExp};V[27]=t=>(zr[t[0]]||Error)(t[1],t[2]);const Bt=t=>{if(M[h++]!=132){let r=new Error("Packed values structure must be followed by a 4 element array");throw M.length<h&&(r.incomplete=!0),r}let e=t();if(!e||!e.length){let r=new Error("Packed values structure must be followed by a 4 element array");throw r.incomplete=!0,r}return Y=Y?e.concat(Y.slice(e.length)):e,Y.prefixes=t(),Y.suffixes=t(),t()};Bt.handlesRead=!0,V[51]=Bt,V[Tt]=t=>{if(!Y)if(L.getShared)tt();else return new he(t,Tt);if(typeof t=="number")return Y[16+(t>=0?2*t:-2*t-1)];let e=new Error("No support for non-integer packed references yet");throw t===void 0&&(e.incomplete=!0),e},V[28]=t=>{te||(te=new Map,te.id=0);let e=te.id++,r=h,n=M[h],i;n>>5==4?i=[]:i={};let s={target:i};te.set(e,s);let o=t();return s.used?(Object.getPrototypeOf(i)!==Object.getPrototypeOf(o)&&(h=r,i=o,te.set(e,{target:i}),o=t()),Object.assign(i,o)):(s.target=o,o)},V[28].handlesRead=!0,V[29]=t=>{let e=te.get(t);return e.used=!0,e.target},V[258]=t=>new Set(t),(V[259]=t=>(L.mapsAsObjects&&(L.mapsAsObjects=!1,Ae=!0),t())).handlesRead=!0;function be(t,e){return typeof t=="string"?t+e:t instanceof Array?t.concat(e):Object.assign({},t,e)}function pe(){if(!Y)if(L.getShared)tt();else throw new Error("No packed values available");return Y}const Kr=1399353956;Xe.push((t,e)=>{if(t>=225&&t<=255)return be(pe().prefixes[t-224],e);if(t>=28704&&t<=32767)return be(pe().prefixes[t-28672],e);if(t>=1879052288&&t<=2147483647)return be(pe().prefixes[t-1879048192],e);if(t>=216&&t<=223)return be(e,pe().suffixes[t-216]);if(t>=27647&&t<=28671)return be(e,pe().suffixes[t-27639]);if(t>=1811940352&&t<=1879048191)return be(e,pe().suffixes[t-1811939328]);if(t==Kr)return{packedValues:Y,structures:z.slice(0),version:e};if(t==55799)return e});const Vr=new Uint8Array(new Uint16Array([1]).buffer)[0]==1,qt=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array],$r=[64,68,69,70,71,72,77,78,79,85,86];for(let t=0;t<qt.length;t++)Wr(qt[t],$r[t]);function Wr(t,e){let r="get"+t.name.slice(0,-5),n;typeof t=="function"?n=t.BYTES_PER_ELEMENT:t=null;for(let i=0;i<2;i++){if(!i&&n==1)continue;let s=n==2?1:n==4?2:n==8?3:0;V[i?e:e-4]=n==1||i==Vr?o=>{if(!t)throw new Error("Could not find typed array for code "+e);return!L.copyBuffers&&(n===1||n===2&&!(o.byteOffset&1)||n===4&&!(o.byteOffset&3)||n===8&&!(o.byteOffset&7))?new t(o.buffer,o.byteOffset,o.byteLength>>s):new t(Uint8Array.prototype.slice.call(o,0).buffer)}:o=>{if(!t)throw new Error("Could not find typed array for code "+e);let d=new DataView(o.buffer,o.byteOffset,o.byteLength),c=o.length>>s,p=new t(c),w=d[r];for(let y=0;y<c;y++)p[y]=w.call(d,y<<s,i);return p}}}function Gr(){let t=me(),e=h+U();for(let n=2;n<t;n++){let i=me();h+=i}let r=h;return h=e,W=[Qe(me()),Qe(me())],W.position0=0,W.position1=0,W.postBundlePosition=h,h=r,U()}function me(){if(!(h<Q))throw de();let t=M[h++]&31;if(t>23)switch(t){case 24:if(h>=Q)throw de();t=M[h++];break;case 25:t=X.getUint16(h),h+=2;break;case 26:t=X.getUint32(h),h+=4;break}return t}function tt(){if(L.getShared){let t=zt(()=>(M=null,L.getShared()))||{},e=t.structures||[];L.sharedVersion=t.version,Y=L.sharedValues=t.packedValues,z===!0?L.structures=z=e:z.splice.apply(z,[0,e.length].concat(e))}}function zt(t){let e=Q,r=h,n=Le,i=Oe,s=Te,o=te,d=W,c=new Uint8Array(M.slice(0,Q)),p=z,w=L,y=Me,v=t();return Q=e,h=r,Le=n,Oe=i,Te=s,te=o,W=d,M=c,Me=y,z=p,L=w,X=new DataView(M.buffer,M.byteOffset,M.byteLength),v}function rt(){M=null,te=null,z=null}const nt=new Array(147);for(let t=0;t<256;t++)nt[t]=+("1e"+Math.floor(45.15-t*.30103));let it=new ke({useRecords:!1});const Kt=it.decode;it.decodeMultiple;let De;try{De=new TextEncoder}catch{}let st,Vt;const je=typeof globalThis=="object"&&globalThis.Buffer,Pe=typeof je<"u",ot=Pe?je.allocUnsafeSlow:Uint8Array,$t=Pe?je:Uint8Array,Wt=256,Gt=Pe?4294967296:2144337920;let at,u,B,a=0,ue,G=null;const Hr=61440,Zr=/[\u0080-\uFFFF]/,ee=Symbol("record-id");class Xr extends ke{constructor(e){super(e),this.offset=0;let r,n,i,s,o;e=e||{};let d=$t.prototype.utf8Write?function(l,I){return u.utf8Write(l,I,u.byteLength-I)}:De&&De.encodeInto?function(l,I){return De.encodeInto(l,u.subarray(I)).written}:!1,c=this,p=e.structures||e.saveStructures,w=e.maxSharedStructures;if(w==null&&(w=p?128:0),w>8190)throw new Error("Maximum maxSharedStructure is 8190");let y=e.sequential;y&&(w=0),this.structures||(this.structures=[]),this.saveStructures&&(this.saveShared=this.saveStructures);let v,f,S=e.sharedValues,g;if(S){g=Object.create(null);for(let l=0,I=S.length;l<I;l++)g[S[l]]=l}let C=[],b=0,E=0;this.mapEncode=function(l,I){return this._keyMap&&!this._mapped&&l.constructor.name==="Array"&&(l=l.map(R=>this.encodeKeys(R))),this.encode(l,I)},this.encode=function(l,I){if(u||(u=new ot(8192),B=new DataView(u.buffer,0,8192),a=0),ue=u.length-10,ue-a<2048?(u=new ot(u.length),B=new DataView(u.buffer,0,u.length),ue=u.length-10,a=0):I===Yt&&(a=a+7&2147483640),r=a,c.useSelfDescribedHeader&&(B.setUint32(a,3654940416),a+=3),o=c.structuredClone?new Map:null,c.bundleStrings&&typeof l!="string"?(G=[],G.size=1/0):G=null,n=c.structures,n){if(n.uninitialized){let O=c.getShared()||{};c.structures=n=O.structures||[],c.sharedVersion=O.version;let m=c.sharedValues=O.packedValues;if(m){g={};for(let N=0,x=m.length;N<x;N++)g[m[N]]=N}}let R=n.length;if(R>w&&!y&&(R=w),!n.transitions){n.transitions=Object.create(null);for(let O=0;O<R;O++){let m=n[O];if(!m)continue;let N,x=n.transitions;for(let F=0,T=m.length;F<T;F++){x[ee]===void 0&&(x[ee]=O);let J=m[F];N=x[J],N||(N=x[J]=Object.create(null)),x=N}x[ee]=O|1048576}}y||(n.nextId=R)}if(i&&(i=!1),s=n||[],f=g,e.pack){let R=new Map;if(R.values=[],R.encoder=c,R.maxValues=e.maxPrivatePackedValues||(g?16:1/0),R.objectMap=g||!1,R.samplingPackedValues=v,Be(l,R),R.values.length>0){u[a++]=216,u[a++]=51,ne(4);let O=R.values;A(O),ne(0),ne(0),f=Object.create(g||null);for(let m=0,N=O.length;m<N;m++)f[O[m]]=m}}at=I&ft;try{if(at)return;if(A(l),G&&Xt(r,A),c.offset=a,o&&o.idsToInsert){a+=o.idsToInsert.length*2,a>ue&&P(a),c.offset=a;let R=en(u.subarray(r,a),o.idsToInsert);return o=null,R}return I&Yt?(u.start=r,u.end=a,u):u.subarray(r,a)}finally{if(n){if(E<10&&E++,n.length>w&&(n.length=w),b>1e4)n.transitions=null,E=0,b=0,C.length>0&&(C=[]);else if(C.length>0&&!y){for(let R=0,O=C.length;R<O;R++)C[R][ee]=void 0;C=[]}}if(i&&c.saveShared){c.structures.length>w&&(c.structures=c.structures.slice(0,w));let R=u.subarray(r,a);return c.updateSharedData()===!1?c.encode(l):R}I&rn&&(a=r)}},this.findCommonStringsToPack=()=>(v=new Map,g||(g=Object.create(null)),l=>{let I=l&&l.threshold||4,R=this.pack?l.maxPrivatePackedValues||16:0;S||(S=this.sharedValues=[]);for(let[O,m]of v)m.count>I&&(g[O]=R++,S.push(O),i=!0);for(;this.saveShared&&this.updateSharedData()===!1;);v=null});const A=l=>{a>ue&&(u=P(a));var I=typeof l,R;if(I==="string"){if(f){let x=f[l];if(x>=0){x<16?u[a++]=x+224:(u[a++]=198,x&1?A(15-x>>1):A(x-16>>1));return}else if(v&&!e.pack){let F=v.get(l);F?F.count++:v.set(l,{count:1})}}let O=l.length;if(G&&O>=4&&O<1024){if((G.size+=O)>Hr){let F,T=(G[0]?G[0].length*3+G[1].length:0)+10;a+T>ue&&(u=P(a+T)),u[a++]=217,u[a++]=223,u[a++]=249,u[a++]=G.position?132:130,u[a++]=26,F=a-r,a+=4,G.position&&Xt(r,A),G=["",""],G.size=0,G.position=F}let x=Zr.test(l);G[x?0:1]+=l,u[a++]=x?206:207,A(O);return}let m;O<32?m=1:O<256?m=2:O<65536?m=3:m=5;let N=O*3;if(a+N>ue&&(u=P(a+N)),O<64||!d){let x,F,T,J=a+m;for(x=0;x<O;x++)F=l.charCodeAt(x),F<128?u[J++]=F:F<2048?(u[J++]=F>>6|192,u[J++]=F&63|128):(F&64512)===55296&&((T=l.charCodeAt(x+1))&64512)===56320?(F=65536+((F&1023)<<10)+(T&1023),x++,u[J++]=F>>18|240,u[J++]=F>>12&63|128,u[J++]=F>>6&63|128,u[J++]=F&63|128):(u[J++]=F>>12|224,u[J++]=F>>6&63|128,u[J++]=F&63|128);R=J-a-m}else R=d(l,a+m,N);R<24?u[a++]=96|R:R<256?(m<2&&u.copyWithin(a+2,a+1,a+1+R),u[a++]=120,u[a++]=R):R<65536?(m<3&&u.copyWithin(a+3,a+2,a+2+R),u[a++]=121,u[a++]=R>>8,u[a++]=R&255):(m<5&&u.copyWithin(a+5,a+3,a+3+R),u[a++]=122,B.setUint32(a,R),a+=4),a+=R}else if(I==="number")if(!this.alwaysUseFloat&&l>>>0===l)l<24?u[a++]=l:l<256?(u[a++]=24,u[a++]=l):l<65536?(u[a++]=25,u[a++]=l>>8,u[a++]=l&255):(u[a++]=26,B.setUint32(a,l),a+=4);else if(!this.alwaysUseFloat&&l>>0===l)l>=-24?u[a++]=31-l:l>=-256?(u[a++]=56,u[a++]=~l):l>=-65536?(u[a++]=57,B.setUint16(a,~l),a+=2):(u[a++]=58,B.setUint32(a,~l),a+=4);else if(!this.alwaysUseFloat&&l<0&&l>=-4294967296&&Math.floor(l)===l)u[a++]=58,B.setUint32(a,-1-l),a+=4;else{let O;if((O=this.useFloat32)>0&&l<4294967296&&l>=-2147483648){u[a++]=250,B.setFloat32(a,l);let m;if(O<4||(m=l*nt[(u[a]&127)<<1|u[a+1]>>7])>>0===m){a+=4;return}else a--}u[a++]=251,B.setFloat64(a,l),a+=8}else if(I==="object")if(!l)u[a++]=246;else{if(o){let m=o.get(l);if(m){if(u[a++]=216,u[a++]=29,u[a++]=25,!m.references){let N=o.idsToInsert||(o.idsToInsert=[]);m.references=[],N.push(m)}m.references.push(a-r),a+=2;return}else o.set(l,{offset:a-r})}let O=l.constructor;if(O===Object)this.skipFunction===!0&&(l=Object.fromEntries([...Object.keys(l).filter(m=>typeof l[m]!="function").map(m=>[m,l[m]])])),k(l);else if(O===Array){R=l.length,R<24?u[a++]=128|R:ne(R);for(let m=0;m<R;m++)A(l[m])}else if(O===Map)if((this.mapsAsObjects?this.useTag259ForMaps!==!1:this.useTag259ForMaps)&&(u[a++]=217,u[a++]=1,u[a++]=3),R=l.size,R<24?u[a++]=160|R:R<256?(u[a++]=184,u[a++]=R):R<65536?(u[a++]=185,u[a++]=R>>8,u[a++]=R&255):(u[a++]=186,B.setUint32(a,R),a+=4),c.keyMap)for(let[m,N]of l)A(c.encodeKey(m)),A(N);else for(let[m,N]of l)A(m),A(N);else{for(let m=0,N=st.length;m<N;m++){let x=Vt[m];if(l instanceof x){let F=st[m],T=F.tag;T==null&&(T=F.getTag&&F.getTag.call(this,l)),T<24?u[a++]=192|T:T<256?(u[a++]=216,u[a++]=T):T<65536?(u[a++]=217,u[a++]=T>>8,u[a++]=T&255):T>-1&&(u[a++]=218,B.setUint32(a,T),a+=4),F.encode.call(this,l,A,P);return}}if(l[Symbol.iterator]){if(at){let m=new Error("Iterable should be serialized as iterator");throw m.iteratorNotHandled=!0,m}u[a++]=159;for(let m of l)A(m);u[a++]=255;return}if(l[Symbol.asyncIterator]||ct(l)){let m=new Error("Iterable/blob should be serialized as iterator");throw m.iteratorNotHandled=!0,m}if(this.useToJSON&&l.toJSON){const m=l.toJSON();if(m!==l)return A(m)}k(l)}}else if(I==="boolean")u[a++]=l?245:244;else if(I==="bigint"){if(l<BigInt(1)<<BigInt(64)&&l>=0)u[a++]=27,B.setBigUint64(a,l);else if(l>-(BigInt(1)<<BigInt(64))&&l<0)u[a++]=59,B.setBigUint64(a,-l-BigInt(1));else if(this.largeBigIntToFloat)u[a++]=251,B.setFloat64(a,Number(l));else{l>=BigInt(0)?u[a++]=194:(u[a++]=195,l=BigInt(-1)-l);let O=[];for(;l;)O.push(Number(l&BigInt(255))),l>>=BigInt(8);lt(new Uint8Array(O.reverse()),P);return}a+=8}else if(I==="undefined")u[a++]=247;else throw new Error("Unknown type: "+I)},k=this.useRecords===!1?this.variableMapSize?l=>{let I=Object.keys(l),R=Object.values(l),O=I.length;if(O<24?u[a++]=160|O:O<256?(u[a++]=184,u[a++]=O):O<65536?(u[a++]=185,u[a++]=O>>8,u[a++]=O&255):(u[a++]=186,B.setUint32(a,O),a+=4),c.keyMap)for(let m=0;m<O;m++)A(c.encodeKey(I[m])),A(R[m]);else for(let m=0;m<O;m++)A(I[m]),A(R[m])}:l=>{u[a++]=185;let I=a-r;a+=2;let R=0;if(c.keyMap)for(let O in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(O))&&(A(c.encodeKey(O)),A(l[O]),R++);else for(let O in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(O))&&(A(O),A(l[O]),R++);u[I+++r]=R>>8,u[I+r]=R&255}:(l,I)=>{let R,O=s.transitions||(s.transitions=Object.create(null)),m=0,N=0,x,F;if(this.keyMap){F=Object.keys(l).map(J=>this.encodeKey(J)),N=F.length;for(let J=0;J<N;J++){let bt=F[J];R=O[bt],R||(R=O[bt]=Object.create(null),m++),O=R}}else for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&(R=O[J],R||(O[ee]&1048576&&(x=O[ee]&65535),R=O[J]=Object.create(null),m++),O=R,N++);let T=O[ee];if(T!==void 0)T&=65535,u[a++]=217,u[a++]=T>>8|224,u[a++]=T&255;else if(F||(F=O.__keys__||(O.__keys__=Object.keys(l))),x===void 0?(T=s.nextId++,T||(T=0,s.nextId=1),T>=Wt&&(s.nextId=(T=w)+1)):T=x,s[T]=F,T<w){u[a++]=217,u[a++]=T>>8|224,u[a++]=T&255,O=s.transitions;for(let J=0;J<N;J++)(O[ee]===void 0||O[ee]&1048576)&&(O[ee]=T),O=O[F[J]];O[ee]=T|1048576,i=!0}else{if(O[ee]=T,B.setUint32(a,3655335680),a+=3,m&&(b+=E*m),C.length>=Wt-w&&(C.shift()[ee]=void 0),C.push(O),ne(N+2),A(57344+T),A(F),I)return;for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&A(l[J]);return}if(N<24?u[a++]=128|N:ne(N),!I)for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&A(l[J])},P=l=>{let I;if(l>16777216){if(l-r>Gt)throw new Error("Encoded buffer would be larger than maximum buffer size");I=Math.min(Gt,Math.round(Math.max((l-r)*(l>67108864?1.25:2),4194304)/4096)*4096)}else I=(Math.max(l-r<<2,u.length-1)>>12)+1<<12;let R=new ot(I);return B=new DataView(R.buffer,0,I),u.copy?u.copy(R,0,r,l):R.set(u.slice(r,l)),a-=r,r=0,ue=R.length-10,u=R};let D=100,q=1e3;this.encodeAsIterable=function(l,I){return ve(l,I,Z)},this.encodeAsAsyncIterable=function(l,I){return ve(l,I,gt)};function*Z(l,I,R){let O=l.constructor;if(O===Object){let m=c.useRecords!==!1;m?k(l,!0):Ht(Object.keys(l).length,160);for(let N in l){let x=l[N];m||A(N),x&&typeof x=="object"?I[N]?yield*Z(x,I[N]):yield*_(x,I,N):A(x)}}else if(O===Array){let m=l.length;ne(m);for(let N=0;N<m;N++){let x=l[N];x&&(typeof x=="object"||a-r>D)?I.element?yield*Z(x,I.element):yield*_(x,I,"element"):A(x)}}else if(l[Symbol.iterator]&&!l.buffer){u[a++]=159;for(let m of l)m&&(typeof m=="object"||a-r>D)?I.element?yield*Z(m,I.element):yield*_(m,I,"element"):A(m);u[a++]=255}else ct(l)?(Ht(l.size,64),yield u.subarray(r,a),yield l,$()):l[Symbol.asyncIterator]?(u[a++]=159,yield u.subarray(r,a),yield l,$(),u[a++]=255):A(l);R&&a>r?yield u.subarray(r,a):a-r>D&&(yield u.subarray(r,a),$())}function*_(l,I,R){let O=a-r;try{A(l),a-r>D&&(yield u.subarray(r,a),$())}catch(m){if(m.iteratorNotHandled)I[R]={},a=r+O,yield*Z.call(this,l,I[R]);else throw m}}function $(){D=q,c.encode(null,ft)}function ve(l,I,R){return I&&I.chunkThreshold?D=q=I.chunkThreshold:D=100,l&&typeof l=="object"?(c.encode(null,ft),R(l,c.iterateProperties||(c.iterateProperties={}),!0)):[c.encode(l)]}async function*gt(l,I){for(let R of Z(l,I,!0)){let O=R.constructor;if(O===$t||O===Uint8Array)yield R;else if(ct(R)){let m=R.stream().getReader(),N;for(;!(N=await m.read()).done;)yield N.value}else if(R[Symbol.asyncIterator])for await(let m of R)$(),m?yield*gt(m,I.async||(I.async={})):yield c.encode(m);else yield R}}}useBuffer(e){u=e,B=new DataView(u.buffer,u.byteOffset,u.byteLength),a=0}clearSharedData(){this.structures&&(this.structures=[]),this.sharedValues&&(this.sharedValues=void 0)}updateSharedData(){let e=this.sharedVersion||0;this.sharedVersion=e+1;let r=this.structures.slice(0),n=new Zt(r,this.sharedValues,this.sharedVersion),i=this.saveShared(n,s=>(s&&s.version||0)==e);return i===!1?(n=this.getShared()||{},this.structures=n.structures||[],this.sharedValues=n.packedValues,this.sharedVersion=n.version,this.structures.nextId=this.structures.length):r.forEach((s,o)=>this.structures[o]=s),i}}function Ht(t,e){t<24?u[a++]=e|t:t<256?(u[a++]=e|24,u[a++]=t):t<65536?(u[a++]=e|25,u[a++]=t>>8,u[a++]=t&255):(u[a++]=e|26,B.setUint32(a,t),a+=4)}class Zt{constructor(e,r,n){this.structures=e,this.packedValues=r,this.version=n}}function ne(t){t<24?u[a++]=128|t:t<256?(u[a++]=152,u[a++]=t):t<65536?(u[a++]=153,u[a++]=t>>8,u[a++]=t&255):(u[a++]=154,B.setUint32(a,t),a+=4)}const Yr=typeof Blob>"u"?function(){}:Blob;function ct(t){if(t instanceof Yr)return!0;let e=t[Symbol.toStringTag];return e==="Blob"||e==="File"}function Be(t,e){switch(typeof t){case"string":if(t.length>3){if(e.objectMap[t]>-1||e.values.length>=e.maxValues)return;let n=e.get(t);if(n)++n.count==2&&e.values.push(t);else if(e.set(t,{count:1}),e.samplingPackedValues){let i=e.samplingPackedValues.get(t);i?i.count++:e.samplingPackedValues.set(t,{count:1})}}break;case"object":if(t)if(t instanceof Array)for(let n=0,i=t.length;n<i;n++)Be(t[n],e);else{let n=!e.encoder.useRecords;for(var r in t)t.hasOwnProperty(r)&&(n&&Be(r,e),Be(t[r],e))}break;case"function":console.log(t)}}const Qr=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;Vt=[Date,Set,Error,RegExp,he,ArrayBuffer,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?function(){}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?function(){}:BigInt64Array,Float32Array,Float64Array,Zt],st=[{tag:1,encode(t,e){let r=t.getTime()/1e3;(this.useTimestamp32||t.getMilliseconds()===0)&&r>=0&&r<4294967296?(u[a++]=26,B.setUint32(a,r),a+=4):(u[a++]=251,B.setFloat64(a,r),a+=8)}},{tag:258,encode(t,e){let r=Array.from(t);e(r)}},{tag:27,encode(t,e){e([t.name,t.message])}},{tag:27,encode(t,e){e(["RegExp",t.source,t.flags])}},{getTag(t){return t.tag},encode(t,e){e(t.value)}},{encode(t,e,r){lt(t,r)}},{getTag(t){if(t.constructor===Uint8Array&&(this.tagUint8Array||Pe&&this.tagUint8Array!==!1))return 64},encode(t,e,r){lt(t,r)}},ie(68,1),ie(69,2),ie(70,4),ie(71,8),ie(72,1),ie(77,2),ie(78,4),ie(79,8),ie(85,4),ie(86,8),{encode(t,e){let r=t.packedValues||[],n=t.structures||[];if(r.values.length>0){u[a++]=216,u[a++]=51,ne(4);let i=r.values;e(i),ne(0),ne(0),packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let s=0,o=i.length;s<o;s++)packedObjectMap[i[s]]=s}if(n){B.setUint32(a,3655335424),a+=3;let i=n.slice(0);i.unshift(57344),i.push(new he(t.version,1399353956)),e(i)}else e(new he(t.version,1399353956))}}];function ie(t,e){return!Qr&&e>1&&(t-=4),{tag:t,encode:function(n,i){let s=n.byteLength,o=n.byteOffset||0,d=n.buffer||n;i(Pe?je.from(d,o,s):new Uint8Array(d,o,s))}}}function lt(t,e){let r=t.byteLength;r<24?u[a++]=64+r:r<256?(u[a++]=88,u[a++]=r):r<65536?(u[a++]=89,u[a++]=r>>8,u[a++]=r&255):(u[a++]=90,B.setUint32(a,r),a+=4),a+r>=u.length&&e(a+r),u.set(t.buffer?t:new Uint8Array(t),a),a+=r}function en(t,e){let r,n=e.length*2,i=t.length-n;e.sort((s,o)=>s.offset>o.offset?1:-1);for(let s=0;s<e.length;s++){let o=e[s];o.id=s;for(let d of o.references)t[d++]=s>>8,t[d]=s&255}for(;r=e.pop();){let s=r.offset;t.copyWithin(s+n,s,i),n-=2;let o=s+n;t[o++]=216,t[o++]=28,i=s}return t}function Xt(t,e){B.setUint32(G.position+t,a-G.position-t+1);let r=G;G=null,e(r[0]),e(r[1])}let ut=new Xr({useRecords:!1});const tn=ut.encode;ut.encodeAsIterable,ut.encodeAsAsyncIterable;const Yt=512,rn=1024,ft=2048;function Qt(t){return!!t&&typeof t=="object"&&"jsonrpc"in t}class qe{closed=!1;[j];#e;constructor(e,{signal:r}={}){this[j]=new Cr(e),this.#e=r,this.#e?.addEventListener("abort",this.#t)}close(e={}){this.closed||(this.closed=!0,this.handleClose(e))}handleClose(e){this.#e?.removeEventListener("abort",this.#t),this[j].dispatchClose(e)}#t=()=>{this.close({code:1e3,reason:String(this.#e?.reason)})}}const nn=Se("appetize.io:transport:ws-ping"),sn=3e4;function on(t){let e=!0;const r=()=>{e=!0};t.on("pong",r);const n=setInterval(()=>{if(!e){clearInterval(n),nn("liveness ping went unanswered, terminating"),t.terminate();return}t.readyState===t.OPEN&&(e=!1,t.ping())},sn);return{destroy(){clearInterval(n),t.off("pong",r)},pong:r}}const ye=Se("appetize.io:trace:transport:websocket");class an extends qe{constructor(e,{signal:r}={}){super(async i=>{this.#i.send(tn(i))},{signal:r}),this.wsOrUrl=e,typeof e=="string"?(this.#i=new WebSocket(e),this.#i.binaryType="arraybuffer"):this.#i=e;const n=this.#i;if(n instanceof WebSocket?(n.addEventListener("open",this.#l),n.addEventListener("message",this.#c),n.addEventListener("error",this.#s),n.addEventListener("close",this.#a),this.#e.push(()=>{n.removeEventListener("open",this.#l),n.removeEventListener("message",this.#c),n.removeEventListener("error",this.#s),n.removeEventListener("close",this.#a)})):(n.addEventListener("open",this.#l),n.addEventListener("message",this.#c),n.addEventListener("error",this.#s),n.addEventListener("close",this.#a),this.#e.push(()=>{n.removeEventListener("open",this.#l),n.removeEventListener("message",this.#c),n.removeEventListener("error",this.#s),n.removeEventListener("close",this.#a)})),this.send=n.send.bind(n),"ping"in n){const{destroy:i,pong:s}=on(n);this.#n=s,this.#e.push(i)}}wsOrUrl;onclose;onerror;onmessage;onopen;send;get bufferedAmount(){return this.#i.bufferedAmount}get readyState(){return this.#i.readyState}#e=[];#t=!1;#r=!1;#n;#i;close({destroyWs:e=!1,...r}={}){this.closed||(this.#t=e,super.close(r))}handleClose(e){ye("close()");for(const r of this.#e.splice(0))r();if((typeof this.wsOrUrl=="string"||this.#t)&&(this.#i.close(e.code,e.reason),"terminate"in this.#i)){const r=this.#i;setTimeout(()=>{r.terminate()},100)}this.#o(),super.handleClose(e)}#o(e){this.#r||(this.#r=!0,this.onclose?.(e))}#a=e=>{ye("handleWebSocketClose()",e);try{this.#o(e)}finally{this.close()}};#s=e=>{ye("handleWebSocketError()",e),this.onerror?.(e)};#c=async e=>{ye("handleWebSocketMessage()",e),this.#n?.();const r=this.#u(e);if(!r){ye("handleWebSocketMessage() -> legacy"),this.onmessage?.(e);return}ye("handleWebSocketMessage() -> jsonrpc",r),this[j].dispatchMessage(r)};#l=e=>{ye("handleWebSocketOpen()",e),this.onopen?.(e)};#u(e){try{const r=Kt(new Uint8Array(e.data));return Qt(r)?r:null}catch{return null}}}function er(t,e,{leftEffects:r=()=>({}),notifiesLeft:n,notifiesRight:i,rightEffects:s=()=>({})}={}){const o=We(t,{}),d=We(e,{}),c=[()=>{o.unsub(),d.unsub()}],p=()=>{for(const S of c)try{S()}catch{}},w=d.rpc.client,y=o.rpc.client;c.push(t[j].addEventListener("close",()=>{p()},{once:!0}),e[j].addEventListener("close",()=>{p()},{once:!0}));const v=r(w,y);for(const S in v){const g=v[S];g&&o.rpc.addMethod(S,g)}const f=s(y,w);for(const S in f){const g=f[S];g&&d.rpc.addMethod(S,g)}return tr(o.rpc,d.rpc,{notifies:n}),tr(d.rpc,o.rpc,{notifies:i}),p}function tr(t,e,{notifies:r}={}){t.applyServerMiddleware(async(n,i)=>{const s=r?.();if(s){const{id:d,...c}=i;s[j].send(c)}if(t.hasMethod(i.method))return await n(i);if(!i.id)return e.notify(i.method,i.params),null;const o=await e.request(i.method,i.params);return{id:i.id,jsonrpc:_e.JSONRPC,result:o}})}function le(t,...e){t.notify(e[0],e[1],e[2])}function dt(){const t=new qe(async r=>{e[j].dispatchMessage(r)}),e=new qe(async r=>{t[j].dispatchMessage(r)});return t[j].addEventListener("close",()=>{e.close()},{once:!0}),e[j].addEventListener("close",()=>{t.close()},{once:!0}),[t,e]}function rr(t,e){const r=[],n=()=>{for(const i of r)i()};r.push(t[j].addEventListener("message",i=>e[j].send(i.detail))),r.push(t[j].addEventListener("close",n,{once:!0})),r.push(e[j].addEventListener("message",i=>t[j].send(i.detail))),r.push(e[j].addEventListener("close",n,{once:!0}))}const we=Se("appetize.io:trace:transport:iframe");class nr extends qe{onmessage;#e;#t;constructor(e,{origin:r="*",signal:n}={}){super(async i=>{e.postMessage(i,this.#e)},{signal:n}),this.#t=e,this.#e=r,window.addEventListener("message",this.#r)}postMessage(e,r,n){we("postMessage(legacy)",{message:e,targetOrigin:r,transfer:n}),this.#t.postMessage(e,r??this.#e,n)}handleClose(e){we("close()"),window.removeEventListener("message",this.#r),super.handleClose(e)}#r=async e=>{if(we("handleMessage()",e),e.source!==this.#t||(we("handleMessage() -> source ok"),this.#e!=="*"&&e.origin!==this.#e))return;we("handleMessage() -> origin ok");const r=e.data;if(!Qt(r)){we("handleMessage() -> legacy"),this.onmessage?.(e);return}we("handleMessage() -> jsonrpc"),this[j].dispatchMessage(r)}}function ht(){let t,e;return{promise:new Promise((n,i)=>{e=n,t=i}),reject:t,resolve:e}}const cn=2*1024*1024,ir=Se("appetize:client:acked-writable-stream");class ln{unacked=0;#e;#t;#r;#n;#i=[];#o;constructor(e){this.#r=e,this.#o=e.window??cn}abort(e){this.#s(e),this.#r.onAbort?.(e)}async close(){await this.#c(()=>this.unacked===0),this.#r.onClose?.()}fail(e){this.#s(e)&&this.#r.onError?.(e)}start(e){this.#e=e}write(e){const r=e.byteLength;return this.unacked+=r,this.#r.send(e).then(()=>{this.unacked-=r,this.#n&&(this.#n.acked+=r),this.#a()},n=>{this.fail(n)}),this.unacked>=this.#o&&!this.#n&&(this.#n={acked:0,at:performance.now()},ir("window full: %d bytes unacked, writes stalled",this.unacked)),this.#c(()=>this.unacked<this.#o)}#a(){if(this.#n&&this.unacked<=this.#o/2){const e=performance.now()-this.#n.at;ir("pressure relieved after %dms: %d bytes acked, %s MB/s",Math.round(e),this.#n.acked,(this.#n.acked/Math.max(e,1)/1e3).toFixed(2)),this.#n=void 0}this.#i=this.#i.filter(e=>e.until()?(e.resolve(void 0),!1):!0)}#s(e){if(this.#t)return!1;this.#t={reason:e},this.#e.error(e);const r=this.#i;this.#i=[];for(const n of r)n.reject(e);return!0}#c(e){if(e())return Promise.resolve();const r={...ht(),until:e};return this.#i.push(r),r.promise}}class un extends WritableStream{get unacked(){return this.#e.unacked}#e;constructor(e){const r=new ln(e);super({abort:n=>{r.abort(n)},close:()=>r.close(),start:n=>{r.start(n)},write:n=>r.write(n)}),this.#e=r}fail(e){this.#e.fail(e)}}const fn=1024*1024;class dn{#e;#t=!1;#r;#n;constructor(e){this.#r=e}cancel(e){this.#i(),this.#r?.(e)}close(){this.#i()&&this.#e.close()}error(e){this.#i()&&this.#e.error(e)}pull(){const e=this.#n;this.#n=void 0,e?.resolve(void 0)}async push(e){if(this.#t)return;this.#n??=ht();const{promise:r}=this.#n;this.#e.enqueue(e),await r}start(e){this.#e=e}#i(){return this.#t?!1:(this.#t=!0,this.pull(),!0)}}class hn extends ReadableStream{#e;constructor({highWaterMark:e=fn,onCancel:r}={}){const n=new dn(r);super({cancel:i=>{n.cancel(i)},pull:()=>{n.pull()},start:i=>{n.start(i)}},new ByteLengthQueuingStrategy({highWaterMark:e})),this.#e=n}close(){this.#e.close()}error(e){this.#e.error(e)}push(e){return this.#e.push(e)}}class pn{closed;readable;writable;#e=[];#t;#r;#n;#i;#o;#a="starting";constructor(e,{onClose:r,receiveBuffer:n,sendWindow:i,signal:s}){if(this.#o=e,this.#t=ht(),this.closed=this.#t.promise,this.closed.catch(yn),this.#n=new hn({highWaterMark:n,onCancel:()=>{this.#s(void 0)}}),this.readable=this.#n,this.#i=new un({onAbort:()=>{this.#s(void 0)},onClose:()=>{this.#s(void 0)},onError:o=>{this.#s(o)},send:o=>e.request("appetizeio.device.server.debug.adbTunnel.data",{data:o}),window:i}),this.writable=this.#i,s){const o=()=>{this.#s(s.reason)};s.addEventListener("abort",o,{once:!0}),this.#e.push(()=>{s.removeEventListener("abort",o)})}this.#e.push(()=>{r(this)})}close=()=>{this.#s(void 0)};detach(){this.#s(void 0,{notifyServer:!1})}async handleData(e){this.#a==="open"&&await this.#n.push(e)}handleStopped({error:e}){this.#a==="open"&&this.#s(e?new Error(e):void 0)}async start(){try{await this.#o.request("appetizeio.device.server.debug.adbTunnel.start",void 0)}catch(e){throw this.#s(e),e}if(this.#a==="closed")throw this.#r?this.#r:new Error("The adb tunnel closed before it started");this.#a="open"}async[Symbol.asyncDispose](){this.close();try{await this.closed}catch{}}#s(e,{notifyServer:r=!0}={}){if(this.#a!=="closed"){this.#a="closed",this.#r=e,r&&le(this.#o,"appetizeio.device.server.debug.adbTunnel.stop",void 0),e?(this.#n.error(e),this.#i.fail(e)):(this.#n.close(),this.#i.fail(new Error("The adb tunnel has stopped")));for(const n of this.#e)n();e?this.#t.reject(e):this.#t.resolve(void 0)}}}function yn(){}class wn{readable;ready;#e=[];#t=!1;#r;#n;#i;constructor({label:e,onClose:r,signal:n}){this.#n=e,this.ready=new Promise((s,o)=>{this.#i={reject:o,resolve:s}});let i;if(this.readable=new ReadableStream({cancel:()=>{this.#a()},start:s=>{i=s}}),!i)throw new Error("ReadableStream controller was not initialized");if(this.#r=i,n){const s=()=>{this.fail(n.reason)};n.addEventListener("abort",s,{once:!0}),this.#e.push(()=>{n.removeEventListener("abort",s)})}this.#e.push(()=>{r(this)})}close=()=>{this.#o()};fail(e){this.#o(e)}handleItem(e){this.#r.enqueue(e)}markReady(){if(!this.#i)return;const{resolve:e}=this.#i;this.#i=void 0,e(this)}async*[Symbol.asyncIterator](){const e=this.readable.getReader();try{for(let r=await e.read();!r.done;r=await e.read())yield r.value}finally{await e.cancel()}}#o(e){this.#t||(this.#r.close(),this.#a(e))}#a(e){this.#t=!0;for(const r of this.#e)r();this.#i?.reject(e??new Error(`${this.#n} closed before it started`)),this.#i=void 0}}class vn{get subscribers(){return this.#r}#e;#t;#r=new Set;constructor(e){this.#e=e}close(){this.#t=void 0;for(const e of[...this.#r])e.close();this.#r.clear()}add(e){this.#r.add(e)}ensureStarted(){return this.#t||(this.#t=(async()=>{try{return await this.#e.start()}catch(e){throw this.#t=void 0,e}})()),this.#t}release(e){this.#r.delete(e),!(this.#r.size>0||!this.#t)&&(this.#t=void 0,this.#e.stop())}}class sr extends vn{#e;constructor(e){super({start:e.start,stop:e.stop}),this.#e=e.label}async createStream({signal:e}={}){e?.throwIfAborted();const r=new wn({label:this.#e,onClose:n=>{this.release(n)},signal:e});this.add(r);try{await this.ensureStarted(),r.markReady()}catch(n){r.fail(n)}return await r.ready}handleNotification(e){for(const r of this.subscribers)r.handleItem(e)}}class gn{#e;#t;#r;#n;constructor(e){this.#n=e,this.#t=new sr({label:"Log stream",start:()=>e.request("appetizeio.device.server.debug.log.start"),stop:()=>{le(e,"appetizeio.device.server.debug.log.stop",void 0)}}),this.#r=new sr({label:"Proxy intercept stream",start:()=>e.request("appetizeio.device.server.debug.proxyIntercept.start"),stop:()=>{le(e,"appetizeio.device.server.debug.proxyIntercept.stop",void 0)}})}close(){this.#e?.detach(),this.#t.close(),this.#r.close()}async createAdbTunnel({signal:e}={}){e?.throwIfAborted(),this.#e?.close();const r=new pn(this.#n,{onClose:()=>{this.#e=void 0},signal:e});return this.#e=r,await r.start(),r}async createLogStream(e){return await this.#t.createStream(e)}async createProxyInterceptStream(e){return await this.#r.createStream(e)}async handleAdbTunnelData({data:e}){await this.#e?.handleData(e)}handleAdbTunnelStopped(e){this.#e?.handleStopped(e)}handleLogEntry(e){this.#t.handleNotification(e)}handleProxyInterceptEvent(e){this.#r.handleNotification(e)}}function pt(t){return{...bn(t),index:t.index,within:t.within?pt(t.within):void 0}}function bn(t){switch(t.by){case"testId":return{by:"testId",testId:t.testId};case"text":return{by:"text",text:mn(t.text)}}}function mn(t){return typeof t=="string"?{kind:"exact",value:t}:{flags:t.flags,kind:"regex",source:t.source}}const Sn=400,or=["byTestId","byText","duration","index","x","y"],Cn=new Set(or),En=/^-?(?:\d+(?:\.\d*)?|\.\d+)$/u,Rn=/^[a-z]$/u,yt=/^\s$/u;class K extends SyntaxError{constructor(e,r,n){super(`${e} at position ${String(r)}`,{cause:n})}}class On{#e=0;#t;constructor(e){this.#t=e}parse(){const e=[];for(;this.#e<this.#t.length;){const r=this.#s();if(yt.test(r))this.#e++;else if(r===">"){if(this.#t.charAt(this.#e+1)===">")throw new K('Force press ">>" is not supported',this.#e);this.#e++,e.push({kind:"down"})}else if(r==="/")this.#e++,e.push({kind:"up"});else if(r==="{")e.push(this.#o());else{const[n]=this.#t.slice(this.#e,this.#e+2);throw new K(`Unexpected ${JSON.stringify(n)}; write selectors as {...}`,this.#e)}}return e}#r(){const e=this.#e,r=this.#c(n=>n!=="="&&!wt(n));if(this.#s()!=="=")return{kind:"bare",name:r,offset:e};if(r.length===0)throw new K('Expected an attribute name before "="',e);return this.#e++,{kind:"attribute",name:r,offset:e,value:this.#a()}}#n(){const e=this.#e;this.#e++;let r="";for(;;){const n=this.#s();if(this.#e++,n==='"')return r;if(n==="\\"){const i=this.#s();if(i!=='"'&&i!=="\\"&&i!=="")throw new K('Only \\" and \\\\ escapes are supported',this.#e-1);this.#e++,r+=i}else{if(n==="")throw new K("Unclosed string",e);r+=n}}}#i(){const e=this.#e;this.#e++;let r="",n=!1;for(;;){const s=this.#s();if(s==="")throw new K("Unclosed regex",e);if(this.#e++,s==="/"&&!n)break;r+=s,s==="\\"?(r+=this.#s(),this.#e++):s==="["?n=!0:s==="]"&&(n=!1)}const i=this.#c(s=>Rn.test(s));try{return new RegExp(r,i)}catch(s){throw new K(`Invalid regex /${r}/${i}`,e,s)}}#o(){const e=this.#e;this.#e++;let r;const n={offsets:{}};for(let i=0;;i++){this.#l();const s=this.#s();if(s==="")throw new K('Unclosed "{"',e);if(s==="}"){if(this.#e++,i===0)throw new K('Expected a selector or wait in "{}"',e);return r===void 0?In(n,e):{duration:r,kind:"wait"}}const o=this.#r();if(i===0&&o.name==="wait")r=o.kind==="attribute"?ar(o.value,"wait"):Sn;else{if(r!==void 0)throw new K('"wait" takes no other attributes',o.offset);Mn(n,o,i)}}}#a(){const e=this.#e,r=this.#s();let n;if(r==='"')n={kind:"quoted",offset:e,text:this.#n()};else if(r==="/")n={kind:"regex",offset:e,regex:this.#i()};else{const i=this.#c(s=>!wt(s));if(i.length===0)throw new K('Expected a value after "="',e);return{kind:"raw",offset:e,text:i}}if(!wt(this.#s()))throw new K('Expected a space or "}" after the value',this.#e);return n}#s(){return this.#t.charAt(this.#e)}#c(e){const r=this.#e;for(;this.#e<this.#t.length&&e(this.#s());)this.#e++;return this.#t.slice(r,this.#e)}#l(){this.#c(e=>yt.test(e))}}function An(t){return new On(t).parse()}function Mn(t,e,r){const{name:n,offset:i}=e;if(e.kind==="attribute"){vt(t,n,i,e.value);return}if(!n.includes(","))throw new K(`Expected key=value, got ${JSON.stringify(n)}`,i);if(r>0)throw new K("Write the x,y position first",i);const[s,o,...d]=n.split(",");if(d.length>0)throw new K("Expected a screen position as x,y",i);const c=i+s.length+1;vt(t,"x",i,{kind:"raw",offset:i,text:s}),vt(t,"y",c,{kind:"raw",offset:c,text:o})}function Pn(t){return Cn.has(t)}function wt(t){return t===""||t==="}"||yt.test(t)}function vt(t,e,r,n){if(!Pn(e))throw new K(`Unknown attribute ${JSON.stringify(e)}; expected one of ${or.join(", ")}`,r);if(t.offsets[e]!==void 0)throw new K(`Duplicate attribute ${JSON.stringify(e)}`,r);switch(t.offsets[e]=r,e){case"byTestId":case"byText":if(t.byText!==void 0||t.byTestId!==void 0)throw new K("Only one of byText and byTestId may be given",r);e==="byText"?t.byText=xn(n):t.byTestId=Nn(n);return;default:t[e]=ar(n,e)}}function In(t,e){return{duration:t.duration,kind:"move",to:kn(t,e)}}function ar(t,e){if(t.kind!=="raw"||!En.test(t.text))throw new K(`"${e}" takes a number`,t.offset);return Number(t.text)}function kn(t,e){const{byTestId:r,byText:n,index:i,offsets:s,x:o,y:d}=t;if(n!==void 0)return{by:"text",index:i,text:n,x:o,y:d};if(r!==void 0)return{by:"testId",index:i,testId:r,x:o,y:d};if(s.index!==void 0)throw new K('"index" needs byText or byTestId',s.index);if(o===void 0||d===void 0)throw new K("A screen position needs x and y",e);return{by:"position",x:o,y:d}}function Nn(t){if(t.kind==="regex")throw new K('"byTestId" takes a string',t.offset);return t.text}function xn(t){return t.kind==="regex"?t.regex:t.text}function Ie(t){return t.by==="position"?{by:"position",x:t.x,y:t.y}:{...pt(t),x:t.x,y:t.y}}function _n(t){return t.map(e=>e.kind==="move"?{duration:e.duration,kind:"move",to:Ie(e.to)}:e)}function Fn(t){return{press:e=>{le(t,"appetizeio.device.server.keyboard.press",{key:e})}}}function Tn({onRequest:t,parent:e,proxyInlet:r,signal:n}){const i=new nr(e,{signal:n}),s=[()=>{i.close()}];return rr(i,r),t&&s.push(Fe(i,o=>{t(o,{source:"parent"})})),{cleanup:()=>{for(const o of s)o()},notifies:()=>e===globalThis.window?void 0:i}}const Ln="@appetizeio/rpc:playwrightAdapter",ze=Symbol.for(Ln);function Un(t){window[ze]&&console.warn("playwright exposed more than once, overwriting previous adapter");const e={send(r){t[j].send(r)},subscribe(r){return t[j].addEventListener("message",n=>{r(n.detail)})}};return window[ze]=e,()=>{window[ze]===e&&delete window[ze]}}function Jn({onRequest:t,proxyInlet:e}){const[r,n]=dt(),s=[Un(n),()=>{r.close()}];return rr(r,e),t&&s.push(Fe(r,o=>{t(o,{source:"parent"})})),{cleanup:()=>{for(const o of s)o()},notifies:()=>r}}function Dn(t){return"to"in t?{from:Ie(t.from),kind:"path",to:Ie(t.to)}:{direction:t.direction,distance:t.distance,from:t.from?Ie(t.from):void 0,kind:"direction"}}function jn(t){return{down:(e,r)=>{le(t,"appetizeio.device.server.touch.down",{x:e,y:r})},move:(e,r)=>{le(t,"appetizeio.device.server.touch.move",{x:e,y:r})},up:(e,r)=>{le(t,"appetizeio.device.server.touch.up",{x:e,y:r})}}}const Bn=new Set(Ge),qn=/^(?<key>[A-Za-z]+)>(?<repeat>\d+)\/$/u,zn=/(\{\{|\{[^{}]*\})/u;function Kn(t){const e=[];let r="";function n(){r.length>0&&(e.push({kind:"text",text:r}),r="")}for(const[i,s]of t.split(zn).entries())if(i%2===0){if(s.includes("{"))throw new Error(`Unclosed "{" in ${JSON.stringify(t)}`);r+=s}else s==="{{"?r+="{":(n(),e.push($n(s.slice(1,-1))));return n(),e}function Vn(t,e){if(!Bn.has(t))throw e.endsWith(">")?new Error(`Holding a key is not supported: {${e}}`):e.startsWith("/")?new Error(`Releasing a key is not supported: {${e}}`):new Error(`{${e}} does not name a supported key. Supported: ${Ge.join(", ")}. Type characters as text, and escape a literal "{" as "{{".`)}function $n(t){const e=qn.exec(t)?.groups,r=e?.key??t;if(Vn(r,t),!e)return{key:r,kind:"press"};const n=Number(e.repeat);if(n<1)throw new Error(`Repeat for {${t}} must be at least 1`);return{key:r,kind:"press",repeat:n}}const Wn=Symbol("@appetizeio/client:v1Compat");function cr(t){return t?.[Wn]}class Gn{readable;ready;get dimensions(){return this.#n}#e=[];#t=!1;#r;#n;#i;#o;constructor({onClose:e,requestKeyFrame:r,signal:n}){this.#i=r,this.ready=new Promise((s,o)=>{this.#o={reject:o,resolve:s}});let i;if(this.readable=new ReadableStream({cancel:()=>{this.#s()},start:s=>{i=s}}),!i)throw new Error("ReadableStream controller was not initialized");if(this.#r=i,n){const s=()=>{this.fail(n.reason)};n.addEventListener("abort",s,{once:!0}),this.#e.push(()=>{n.removeEventListener("abort",s)})}this.#e.push(()=>{e(this)})}close=()=>{this.#a()};fail(e){this.#a(e)}handleChunk(e){if(this.#o){if(e.type!=="key")return;const{resolve:r}=this.#o;this.#o=void 0,this.#n={height:e.height,width:e.width},r(this)}else e.type==="key"&&(this.#n={height:e.height,width:e.width});this.#r.enqueue(e)}requestKeyFrame=()=>{this.#t||this.#i()};async*[Symbol.asyncIterator](){const e=this.readable.getReader();try{for(let r=await e.read();!r.done;r=await e.read())yield r.value}finally{await e.cancel()}}#a(e){this.#t||(this.#r.close(),this.#s(e))}#s(e){this.#t=!0;for(const r of this.#e)r();this.#o?.reject(e??new Error("Video stream closed before the first key chunk")),this.#o=void 0}}class Hn{#e=!1;#t;#r;#n=new Set;constructor(e){this.#t=e}close(){this.#r=void 0;for(const e of[...this.#n])e.close()}async createStream({signal:e}={}){e?.throwIfAborted();const r=new Gn({onClose:n=>{this.#o(n)},requestKeyFrame:()=>{this.#a()},signal:e});this.#n.add(r);try{await this.#i()}catch(n){r.fail(n)}return await r.ready}handleChunk(e){e.type==="key"&&(this.#e=!1);for(const r of this.#n)r.handleChunk(e)}#i(){return this.#r?(this.#a(),this.#r):(this.#e=!0,this.#r=(async()=>{try{await this.#t.request("appetizeio.device.server.video.start")}catch(e){throw this.#r=void 0,e}})(),this.#r)}#o(e){this.#n.delete(e),!(this.#n.size>0||!this.#r)&&(this.#r=void 0,le(this.#t,"appetizeio.device.server.video.stop",void 0))}#a(){this.#e||(this.#e=!0,le(this.#t,"appetizeio.device.server.video.requestKeyFrame",void 0))}}class Zn{debug;keyboard;touch;video;#e;#t=[];#r;constructor(e,r={}){const n=cr(r)??{},{baseUrl:i,onClose:s,signal:o}=r;this.#e=i?Xn(i):void 0;const{onRequest:d,parent:c,proxyRequest:p}=n,w=Yn(d);o?.addEventListener("abort",this.close);const[y,v]=dt(),[f,S]=dt();this.#t.push(()=>{y.close(),v.close(),f.close(),S.close()}),this.#t.push(er(S,e,{leftEffects:p}));const g=c==="playwright"?Jn({onRequest:w,proxyInlet:f}):c?Tn({onRequest:w,parent:c,proxyInlet:f,signal:o}):void 0;g&&this.#t.push(g.cleanup),this.#t.push(er(v,f,{notifiesLeft:g?.notifies}));const{client:C,unsub:b}=Or(y,{"appetizeio.device.client.debug.adbTunnel.data":k=>E.handleAdbTunnelData(k),"appetizeio.device.client.debug.adbTunnel.stopped":async k=>{E.handleAdbTunnelStopped(k)},"appetizeio.device.client.debug.log.entry":async k=>{E.handleLogEntry(k)},"appetizeio.device.client.debug.proxyIntercept.event":async k=>{E.handleProxyInterceptEvent(k)},"appetizeio.device.client.video.chunk":async k=>{A.handleChunk(k)}});this.#r=C,this.#t.push(b);const E=new gn(this.#r);this.#t.push(()=>{E.close()});const A=new Hn(this.#r);this.#t.push(()=>{A.close()}),this.debug=E,this.keyboard=Fn(this.#r),this.touch=jn(this.#r),this.video=A,w&&(this.#t.push(Fe(v,k=>{w(k,{source:"self"})})),e instanceof nr&&this.#t.push(Fe(e,k=>{w(k,{source:"iframe"})}))),this.#t.push(()=>s?.())}async clearKeychain(){await this.#r.request("appetizeio.device.server.clearKeychain")}close=()=>{for(const e of this.#t)try{e()}catch(r){console.error("Device cleanup error:",r)}};async fold(e){await this.#r.request("appetizeio.device.server.fold",{hinge:e})}async gesture(e,r){await this.#r.request("appetizeio.device.server.gesture",{options:r,steps:_n(typeof e=="string"?An(e):e)})}async inspect(e,r){const n=await this.#r.request("appetizeio.device.server.inspect",{options:r,selector:e?pt(e):void 0});return n.platform==="ios"?{platform:"ios",roots:n.roots}:{platform:"android",roots:n.roots}}async open(e){new URL(e),await this.#r.request("appetizeio.device.server.open",{url:e})}async press(e){await this.#r.request("appetizeio.device.server.press",{action:e})}async rotate(e){await this.#r.request("appetizeio.device.server.rotate",{orientation:e})}async screenshot(){const e=await this.#r.request("appetizeio.device.server.screenshot"),r=this.#e?new URL(e.url,this.#e).href:e.url,n=await fetch(r);if(!n.ok)throw new Error(`Screenshot download failed: ${String(n.status)} ${n.statusText}`);const i=n.headers.get("content-type")??"application/octet-stream";return{data:new Uint8Array(await n.arrayBuffer()),mimeType:i}}async swipe(e,r){await this.#r.request("appetizeio.device.server.swipe",{gesture:Dn(e),options:r})}async tap(e,r){await this.#r.request("appetizeio.device.server.tap",{options:r,selector:Ie(e)})}async type(e,r){await this.#r.request("appetizeio.device.server.type",{options:r,steps:Kn(e)})}}function Xn(t){const e=new URL(t);return e.protocol==="ws:"?e.protocol="http:":e.protocol==="wss:"&&(e.protocol="https:"),e.href}const Yn=t=>{if(t)return(e,r)=>{e.method.startsWith("appetizeio.device.server.")&&t(e,r)}};function Qn(t){return typeof t=="object"&&t!==null}function ei(t){try{const e=Kt(new Uint8Array(t.data));if(Qn(e)&&typeof e.name=="string")return{name:e.name,payload:"payload"in e?e.payload:void 0}}catch{}}async function ti(t,e={}){const r=e.baseUrl??(typeof t=="string"?new URL(t).origin:void 0),n=typeof t=="string"?new an(t,{signal:e.signal}):t,i=new Zn(n,{...e,baseUrl:r});return typeof t=="string"&&await ri(n,i,e),i}function ri(t,e,r){const n=cr(r)?.onLegacyMessage;return new Promise((i,s)=>{t.onopen=()=>{i()},t.onclose=()=>{e.close(),r.signal?.aborted?s(r.signal.reason):s(new Error("The websocket was closed before the device connection was established"))},t.onerror=s,t.onmessage=o=>{const d=ei(o);d&&n?.(d)}})}async function ni(t,e){const r=t.querySelector("canvas");if(!(r instanceof HTMLCanvasElement))throw new Error("Canvas unavailable");const n=e.protocol==="https:"?"wss:":"ws:",i=await ti(`${n}//${e.host}/ws`);Nr(i,r),xr(i,r),await _r(i,r)}await ni(document,location);
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="data:,"><title>Appetize device</title><style>body,html{height:100%;margin:0;background:#111318}body{display:grid;place-items:center}canvas{max-width:100vw;max-height:100vh;background:#000;touch-action:none}</style></head><body><canvas aria-label="Device screen" tabindex="0"></canvas><script type="module">function lr(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Ne={exports:{}},Ke,mt;function ur(){if(mt)return Ke;mt=1;var t=1e3,e=t*60,r=e*60,n=r*24,i=n*7,s=n*365.25;Ke=function(w,y){y=y||{};var v=typeof w;if(v==="string"&&w.length>0)return o(w);if(v==="number"&&isFinite(w))return y.long?c(w):d(w);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(w))};function o(w){if(w=String(w),!(w.length>100)){var y=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(w);if(y){var v=parseFloat(y[1]),f=(y[2]||"ms").toLowerCase();switch(f){case"years":case"year":case"yrs":case"yr":case"y":return v*s;case"weeks":case"week":case"w":return v*i;case"days":case"day":case"d":return v*n;case"hours":case"hour":case"hrs":case"hr":case"h":return v*r;case"minutes":case"minute":case"mins":case"min":case"m":return v*e;case"seconds":case"second":case"secs":case"sec":case"s":return v*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return v;default:return}}}}function d(w){var y=Math.abs(w);return y>=n?Math.round(w/n)+"d":y>=r?Math.round(w/r)+"h":y>=e?Math.round(w/e)+"m":y>=t?Math.round(w/t)+"s":w+"ms"}function c(w){var y=Math.abs(w);return y>=n?p(w,y,n,"day"):y>=r?p(w,y,r,"hour"):y>=e?p(w,y,e,"minute"):y>=t?p(w,y,t,"second"):w+" ms"}function p(w,y,v,f){var S=y>=v*1.5;return Math.round(w/v)+" "+f+(S?"s":"")}return Ke}var Ve,St;function fr(){if(St)return Ve;St=1;function t(e){n.debug=n,n.default=n,n.coerce=p,n.disable=d,n.enable=s,n.enabled=c,n.humanize=ur(),n.destroy=w,Object.keys(e).forEach(y=>{n[y]=e[y]}),n.names=[],n.skips=[],n.formatters={};function r(y){let v=0;for(let f=0;f<y.length;f++)v=(v<<5)-v+y.charCodeAt(f),v|=0;return n.colors[Math.abs(v)%n.colors.length]}n.selectColor=r;function n(y){let v,f=null,S,g;function C(...b){if(!C.enabled)return;const E=C,A=Number(new Date),k=A-(v||A);E.diff=k,E.prev=v,E.curr=A,v=A,b[0]=n.coerce(b[0]),typeof b[0]!="string"&&b.unshift("%O");let P=0;b[0]=b[0].replace(/%([a-zA-Z%])/g,(q,Z)=>{if(q==="%%")return"%";P++;const _=n.formatters[Z];if(typeof _=="function"){const $=b[P];q=_.call(E,$),b.splice(P,1),P--}return q}),n.formatArgs.call(E,b),(E.log||n.log).apply(E,b)}return C.namespace=y,C.useColors=n.useColors(),C.color=n.selectColor(y),C.extend=i,C.destroy=n.destroy,Object.defineProperty(C,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(S!==n.namespaces&&(S=n.namespaces,g=n.enabled(y)),g),set:b=>{f=b}}),typeof n.init=="function"&&n.init(C),C}function i(y,v){const f=n(this.namespace+(typeof v>"u"?":":v)+y);return f.log=this.log,f}function s(y){n.save(y),n.namespaces=y,n.names=[],n.skips=[];const v=(typeof y=="string"?y:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const f of v)f[0]==="-"?n.skips.push(f.slice(1)):n.names.push(f)}function o(y,v){let f=0,S=0,g=-1,C=0;for(;f<y.length;)if(S<v.length&&(v[S]===y[f]||v[S]==="*"))v[S]==="*"?(g=S,C=f,S++):(f++,S++);else if(g!==-1)S=g+1,C++,f=C;else return!1;for(;S<v.length&&v[S]==="*";)S++;return S===v.length}function d(){const y=[...n.names,...n.skips.map(v=>"-"+v)].join(",");return n.enable(""),y}function c(y){for(const v of n.skips)if(o(y,v))return!1;for(const v of n.names)if(o(y,v))return!0;return!1}function p(y){return y instanceof Error?y.stack||y.message:y}function w(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}return Ve=t,Ve}var Ct;function dr(){return Ct||(Ct=1,(function(t,e){e.formatArgs=n,e.save=i,e.load=s,e.useColors=r,e.storage=o(),e.destroy=(()=>{let c=!1;return()=>{c||(c=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let c;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(c=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(c[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function n(c){if(c[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+c[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const p="color: "+this.color;c.splice(1,0,p,"color: inherit");let w=0,y=0;c[0].replace(/%[a-zA-Z%]/g,v=>{v!=="%%"&&(w++,v==="%c"&&(y=w))}),c.splice(y,0,p)}e.log=console.debug||console.log||(()=>{});function i(c){try{c?e.storage.setItem("debug",c):e.storage.removeItem("debug")}catch{}}function s(){let c;try{c=e.storage.getItem("debug")||e.storage.getItem("DEBUG")}catch{}return!c&&typeof process<"u"&&"env"in process&&(c=process.env.DEBUG),c}function o(){try{return localStorage}catch{}}t.exports=fr()(e);const{formatters:d}=t.exports;d.j=function(c){try{return JSON.stringify(c)}catch(p){return"[UnexpectedJSONParseError]: "+p.message}}})(Ne,Ne.exports)),Ne.exports}var hr=dr(),Se=lr(hr),fe={},se={},Ce={},Et;function xe(){return Et||(Et=1,(function(t){var e=Ce&&Ce.__extends||(function(){var f=function(S,g){return f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(C,b){C.__proto__=b}||function(C,b){for(var E in b)Object.prototype.hasOwnProperty.call(b,E)&&(C[E]=b[E])},f(S,g)};return function(S,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");f(S,g);function C(){this.constructor=S}S.prototype=g===null?Object.create(g):(C.prototype=g.prototype,new C)}})();Object.defineProperty(t,"__esModule",{value:!0}),t.createJSONRPCNotification=t.createJSONRPCRequest=t.createJSONRPCSuccessResponse=t.createJSONRPCErrorResponse=t.JSONRPCErrorCode=t.JSONRPCErrorException=t.isJSONRPCResponses=t.isJSONRPCResponse=t.isJSONRPCRequests=t.isJSONRPCRequest=t.isJSONRPCID=t.JSONRPC=void 0,t.JSONRPC="2.0";var r=function(f){return typeof f=="string"||typeof f=="number"||f===null};t.isJSONRPCID=r;var n=function(f){return f.jsonrpc===t.JSONRPC&&f.method!==void 0&&f.result===void 0&&f.error===void 0};t.isJSONRPCRequest=n;var i=function(f){return Array.isArray(f)&&f.every(t.isJSONRPCRequest)};t.isJSONRPCRequests=i;var s=function(f){return f.jsonrpc===t.JSONRPC&&f.id!==void 0&&(f.result!==void 0||f.error!==void 0)};t.isJSONRPCResponse=s;var o=function(f){return Array.isArray(f)&&f.every(t.isJSONRPCResponse)};t.isJSONRPCResponses=o;var d=function(f,S,g){var C={code:f,message:S};return g!=null&&(C.data=g),C},c=(function(f){e(S,f);function S(g,C,b){var E=f.call(this,g)||this;return Object.setPrototypeOf(E,S.prototype),E.code=C,E.data=b,E}return S.prototype.toObject=function(){return d(this.code,this.message,this.data)},S})(Error);t.JSONRPCErrorException=c,(function(f){f[f.ParseError=-32700]="ParseError",f[f.InvalidRequest=-32600]="InvalidRequest",f[f.MethodNotFound=-32601]="MethodNotFound",f[f.InvalidParams=-32602]="InvalidParams",f[f.InternalError=-32603]="InternalError"})(t.JSONRPCErrorCode||(t.JSONRPCErrorCode={}));var p=function(f,S,g,C){return{jsonrpc:t.JSONRPC,id:f,error:d(S,g,C)}};t.createJSONRPCErrorResponse=p;var w=function(f,S){return{jsonrpc:t.JSONRPC,id:f,result:S??null}};t.createJSONRPCSuccessResponse=w;var y=function(f,S,g){return{jsonrpc:t.JSONRPC,id:f,method:S,params:g}};t.createJSONRPCRequest=y;var v=function(f,S){return{jsonrpc:t.JSONRPC,method:f,params:S}};t.createJSONRPCNotification=v})(Ce)),Ce}var Ee={},Rt;function Ot(){return Rt||(Rt=1,Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.DefaultErrorCode=void 0,Ee.DefaultErrorCode=0),Ee}var At;function pr(){if(At)return se;At=1;var t=se&&se.__awaiter||function(o,d,c,p){function w(y){return y instanceof c?y:new c(function(v){v(y)})}return new(c||(c=Promise))(function(y,v){function f(C){try{g(p.next(C))}catch(b){v(b)}}function S(C){try{g(p.throw(C))}catch(b){v(b)}}function g(C){C.done?y(C.value):w(C.value).then(f,S)}g((p=p.apply(o,d||[])).next())})},e=se&&se.__generator||function(o,d){var c={label:0,sent:function(){if(y[0]&1)throw y[1];return y[1]},trys:[],ops:[]},p,w,y,v;return v={next:f(0),throw:f(1),return:f(2)},typeof Symbol=="function"&&(v[Symbol.iterator]=function(){return this}),v;function f(g){return function(C){return S([g,C])}}function S(g){if(p)throw new TypeError("Generator is already executing.");for(;v&&(v=0,g[0]&&(c=0)),c;)try{if(p=1,w&&(y=g[0]&2?w.return:g[0]?w.throw||((y=w.return)&&y.call(w),0):w.next)&&!(y=y.call(w,g[1])).done)return y;switch(w=0,y&&(g=[g[0]&2,y.value]),g[0]){case 0:case 1:y=g;break;case 4:return c.label++,{value:g[1],done:!1};case 5:c.label++,w=g[1],g=[0];continue;case 7:g=c.ops.pop(),c.trys.pop();continue;default:if(y=c.trys,!(y=y.length>0&&y[y.length-1])&&(g[0]===6||g[0]===2)){c=0;continue}if(g[0]===3&&(!y||g[1]>y[0]&&g[1]<y[3])){c.label=g[1];break}if(g[0]===6&&c.label<y[1]){c.label=y[1],y=g;break}if(y&&c.label<y[2]){c.label=y[2],c.ops.push(g);break}y[2]&&c.ops.pop(),c.trys.pop();continue}g=d.call(o,c)}catch(C){g=[6,C],w=0}finally{p=y=0}if(g[0]&5)throw g[1];return{value:g[0]?g[1]:void 0,done:!0}}};Object.defineProperty(se,"__esModule",{value:!0}),se.JSONRPCClient=void 0;var r=xe(),n=Ot(),i=(function(){function o(d,c){this._send=d,this.createID=c,this.idToResolveMap=new Map,this.id=0}return o.prototype._createID=function(){return this.createID?this.createID():++this.id},o.prototype.timeout=function(d,c){var p=this;c===void 0&&(c=function(v){return(0,r.createJSONRPCErrorResponse)(v,n.DefaultErrorCode,"Request timeout")});var w=function(v,f){var S=setTimeout(function(){v.forEach(function(g){var C=p.idToResolveMap.get(g);C&&(p.idToResolveMap.delete(g),C(c(g)))})},d);return f().then(function(g){return clearTimeout(S),g},function(g){return clearTimeout(S),Promise.reject(g)})},y=function(v,f){var S=(Array.isArray(v)?v:[v]).map(function(g){return g.id}).filter(s);return w(S,function(){return p.requestAdvanced(v,f)})};return{request:function(v,f,S){var g=p._createID();return w([g],function(){return p.requestWithID(v,f,S,g)})},requestAdvanced:function(v,f){return y(v,f)}}},o.prototype.request=function(d,c,p){return this.requestWithID(d,c,p,this._createID())},o.prototype.requestWithID=function(d,c,p,w){return t(this,void 0,void 0,function(){var y,v;return e(this,function(f){switch(f.label){case 0:return y=(0,r.createJSONRPCRequest)(w,d,c),[4,this.requestAdvanced(y,p)];case 1:return v=f.sent(),v.result!==void 0&&!v.error?[2,v.result]:v.result===void 0&&v.error?[2,Promise.reject(new r.JSONRPCErrorException(v.error.message,v.error.code,v.error.data))]:[2,Promise.reject(new Error("An unexpected error occurred"))]}})})},o.prototype.requestAdvanced=function(d,c){var p=this,w=Array.isArray(d);Array.isArray(d)||(d=[d]);var y=d.filter(function(S){return s(S.id)}),v=y.map(function(S){return new Promise(function(g){return p.idToResolveMap.set(S.id,g)})}),f=Promise.all(v).then(function(S){return w||!S.length?S:S[0]});return this.send(w?d:d[0],c).then(function(){return f},function(S){return y.forEach(function(g){p.receive((0,r.createJSONRPCErrorResponse)(g.id,n.DefaultErrorCode,S&&S.message||"Failed to send a request"))}),f})},o.prototype.notify=function(d,c,p){var w=(0,r.createJSONRPCNotification)(d,c);this.send(w,p).then(void 0,function(){})},o.prototype.send=function(d,c){return t(this,void 0,void 0,function(){return e(this,function(p){return[2,this._send(d,c)]})})},o.prototype.rejectAllPendingRequests=function(d){this.idToResolveMap.forEach(function(c,p){return c((0,r.createJSONRPCErrorResponse)(p,n.DefaultErrorCode,d))}),this.idToResolveMap.clear()},o.prototype.receive=function(d){var c=this;Array.isArray(d)||(d=[d]),d.forEach(function(p){var w=c.idToResolveMap.get(p.id);w&&(c.idToResolveMap.delete(p.id),w(p))})},o})();se.JSONRPCClient=i;var s=function(o){return o!=null};return se}var $e={},Mt;function yr(){return Mt||(Mt=1,Object.defineProperty($e,"__esModule",{value:!0})),$e}var oe={},Pt;function wr(){return Pt||(Pt=1,(function(t){var e=oe&&oe.__awaiter||function(C,b,E,A){function k(P){return P instanceof E?P:new E(function(D){D(P)})}return new(E||(E=Promise))(function(P,D){function q($){try{_(A.next($))}catch(ve){D(ve)}}function Z($){try{_(A.throw($))}catch(ve){D(ve)}}function _($){$.done?P($.value):k($.value).then(q,Z)}_((A=A.apply(C,b||[])).next())})},r=oe&&oe.__generator||function(C,b){var E={label:0,sent:function(){if(P[0]&1)throw P[1];return P[1]},trys:[],ops:[]},A,k,P,D;return D={next:q(0),throw:q(1),return:q(2)},typeof Symbol=="function"&&(D[Symbol.iterator]=function(){return this}),D;function q(_){return function($){return Z([_,$])}}function Z(_){if(A)throw new TypeError("Generator is already executing.");for(;D&&(D=0,_[0]&&(E=0)),E;)try{if(A=1,k&&(P=_[0]&2?k.return:_[0]?k.throw||((P=k.return)&&P.call(k),0):k.next)&&!(P=P.call(k,_[1])).done)return P;switch(k=0,P&&(_=[_[0]&2,P.value]),_[0]){case 0:case 1:P=_;break;case 4:return E.label++,{value:_[1],done:!1};case 5:E.label++,k=_[1],_=[0];continue;case 7:_=E.ops.pop(),E.trys.pop();continue;default:if(P=E.trys,!(P=P.length>0&&P[P.length-1])&&(_[0]===6||_[0]===2)){E=0;continue}if(_[0]===3&&(!P||_[1]>P[0]&&_[1]<P[3])){E.label=_[1];break}if(_[0]===6&&E.label<P[1]){E.label=P[1],P=_;break}if(P&&E.label<P[2]){E.label=P[2],E.ops.push(_);break}P[2]&&E.ops.pop(),E.trys.pop();continue}_=b.call(C,E)}catch($){_=[6,$],k=0}finally{A=P=0}if(_[0]&5)throw _[1];return{value:_[0]?_[1]:void 0,done:!0}}},n=oe&&oe.__spreadArray||function(C,b,E){if(E||arguments.length===2)for(var A=0,k=b.length,P;A<k;A++)(P||!(A in b))&&(P||(P=Array.prototype.slice.call(b,0,A)),P[A]=b[A]);return C.concat(P||Array.prototype.slice.call(b))};Object.defineProperty(t,"__esModule",{value:!0}),t.JSONRPCServer=t.createMethodNotFoundResponse=t.createInvalidRequestResponse=void 0;var i=xe(),s=Ot(),o=function(){return(0,i.createJSONRPCErrorResponse)(null,i.JSONRPCErrorCode.ParseError,"Parse error")},d=function(C){return(0,i.createJSONRPCErrorResponse)((0,i.isJSONRPCID)(C.id)?C.id:null,i.JSONRPCErrorCode.InvalidRequest,"Invalid Request")};t.createInvalidRequestResponse=d;var c=function(C){return(0,i.createJSONRPCErrorResponse)(C,i.JSONRPCErrorCode.MethodNotFound,"Method not found")};t.createMethodNotFoundResponse=c;var p=(function(){function C(b){b===void 0&&(b={});var E;this.mapErrorToJSONRPCErrorResponse=f,this.handleMethodNotFound=S,this.nameToMethodMap=new Map,this.middleware=null,this.errorListener=(E=b.errorListener)!==null&&E!==void 0?E:console.warn}return C.prototype.hasMethod=function(b){return this.nameToMethodMap.has(b)},C.prototype.addMethod=function(b,E){this.addMethodAdvanced(b,this.toJSONRPCMethod(E))},C.prototype.removeMethod=function(b){this.nameToMethodMap.delete(b)},C.prototype.toJSONRPCMethod=function(b){return function(E,A){var k=b(E.params,A);return Promise.resolve(k).then(function(P){return v(E.id,P)})}},C.prototype.addMethodAdvanced=function(b,E){this.nameToMethodMap.set(b,E)},C.prototype.receiveJSON=function(b,E){var A=this.tryParseRequestJSON(b);return A?this.receive(A,E):Promise.resolve(o())},C.prototype.tryParseRequestJSON=function(b){try{return JSON.parse(b)}catch{return null}},C.prototype.receive=function(b,E){return Array.isArray(b)?this.receiveMultiple(b,E):this.receiveSingle(b,E)},C.prototype.receiveMultiple=function(b,E){return e(this,void 0,void 0,function(){var A,k=this;return r(this,function(P){switch(P.label){case 0:return b.length===0?[2,(0,i.createJSONRPCErrorResponse)(null,i.JSONRPCErrorCode.InvalidRequest,"Invalid Request")]:[4,Promise.all(b.map(function(D){return k.receiveSingle(D,E)}))];case 1:return A=P.sent().filter(w),A.length===1?[2,A[0]]:A.length?[2,A]:[2,null]}})})},C.prototype.receiveSingle=function(b,E){return e(this,void 0,void 0,function(){var A,k;return r(this,function(P){switch(P.label){case 0:return A=this.nameToMethodMap.get(b.method),(0,i.isJSONRPCRequest)(b)?[3,1]:[2,(0,t.createInvalidRequestResponse)(b)];case 1:return[4,this.callMethod(A,b,E)];case 2:return k=P.sent(),[2,g(b,k)]}})})},C.prototype.applyMiddleware=function(){for(var b=[],E=0;E<arguments.length;E++)b[E]=arguments[E];this.middleware?this.middleware=this.combineMiddlewares(n([this.middleware],b,!0)):this.middleware=this.combineMiddlewares(b)},C.prototype.combineMiddlewares=function(b){return b.length?b.reduce(this.middlewareReducer):null},C.prototype.middlewareReducer=function(b,E){return function(A,k,P){return b(function(D,q){return E(A,D,q)},k,P)}},C.prototype.callMethod=function(b,E,A){var k=this,P=function(q,Z){return b?b(q,Z):k.handleMethodNotFound(q,Z)},D=function(q){return k.errorListener('An unexpected error occurred while executing "'.concat(E.method,'" JSON-RPC method:'),q),Promise.resolve(k.mapErrorToJSONRPCErrorResponseIfNecessary(E.id,q))};try{return(this.middleware||y)(P,E,A).then(void 0,D)}catch(q){return D(q)}},C.prototype.mapErrorToJSONRPCErrorResponseIfNecessary=function(b,E){return b!==void 0?this.mapErrorToJSONRPCErrorResponse(b,E):null},C})();t.JSONRPCServer=p;var w=function(C){return C!==null},y=function(C,b,E){return C(b,E)},v=function(C,b){return C!==void 0?(0,i.createJSONRPCSuccessResponse)(C,b):null},f=function(C,b){var E,A=(E=b?.message)!==null&&E!==void 0?E:"An unexpected error occurred",k=s.DefaultErrorCode,P;return b instanceof i.JSONRPCErrorException&&(k=b.code,P=b.data),(0,i.createJSONRPCErrorResponse)(C,k,A,P)},S=function(C){return e(void 0,void 0,void 0,function(){return r(this,function(b){return C.id!==void 0?[2,(0,t.createMethodNotFoundResponse)(C.id)]:[2,null]})})},g=function(C,b){return b||(C.id!==void 0?(0,i.createJSONRPCErrorResponse)(C.id,i.JSONRPCErrorCode.InternalError,"Internal error"):null)}})(oe)),oe}var ae={},It;function vr(){if(It)return ae;It=1;var t=ae&&ae.__awaiter||function(i,s,o,d){function c(p){return p instanceof o?p:new o(function(w){w(p)})}return new(o||(o=Promise))(function(p,w){function y(S){try{f(d.next(S))}catch(g){w(g)}}function v(S){try{f(d.throw(S))}catch(g){w(g)}}function f(S){S.done?p(S.value):c(S.value).then(y,v)}f((d=d.apply(i,s||[])).next())})},e=ae&&ae.__generator||function(i,s){var o={label:0,sent:function(){if(p[0]&1)throw p[1];return p[1]},trys:[],ops:[]},d,c,p,w;return w={next:y(0),throw:y(1),return:y(2)},typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function y(f){return function(S){return v([f,S])}}function v(f){if(d)throw new TypeError("Generator is already executing.");for(;w&&(w=0,f[0]&&(o=0)),o;)try{if(d=1,c&&(p=f[0]&2?c.return:f[0]?c.throw||((p=c.return)&&p.call(c),0):c.next)&&!(p=p.call(c,f[1])).done)return p;switch(c=0,p&&(f=[f[0]&2,p.value]),f[0]){case 0:case 1:p=f;break;case 4:return o.label++,{value:f[1],done:!1};case 5:o.label++,c=f[1],f=[0];continue;case 7:f=o.ops.pop(),o.trys.pop();continue;default:if(p=o.trys,!(p=p.length>0&&p[p.length-1])&&(f[0]===6||f[0]===2)){o=0;continue}if(f[0]===3&&(!p||f[1]>p[0]&&f[1]<p[3])){o.label=f[1];break}if(f[0]===6&&o.label<p[1]){o.label=p[1],p=f;break}if(p&&o.label<p[2]){o.label=p[2],o.ops.push(f);break}p[2]&&o.ops.pop(),o.trys.pop();continue}f=s.call(i,o)}catch(S){f=[6,S],c=0}finally{d=p=0}if(f[0]&5)throw f[1];return{value:f[0]?f[1]:void 0,done:!0}}};Object.defineProperty(ae,"__esModule",{value:!0}),ae.JSONRPCServerAndClient=void 0;var r=xe(),n=(function(){function i(s,o,d){d===void 0&&(d={});var c;this.server=s,this.client=o,this.errorListener=(c=d.errorListener)!==null&&c!==void 0?c:console.warn}return i.prototype.applyServerMiddleware=function(){for(var s,o=[],d=0;d<arguments.length;d++)o[d]=arguments[d];(s=this.server).applyMiddleware.apply(s,o)},i.prototype.hasMethod=function(s){return this.server.hasMethod(s)},i.prototype.addMethod=function(s,o){this.server.addMethod(s,o)},i.prototype.addMethodAdvanced=function(s,o){this.server.addMethodAdvanced(s,o)},i.prototype.removeMethod=function(s){this.server.removeMethod(s)},i.prototype.timeout=function(s){return this.client.timeout(s)},i.prototype.request=function(s,o,d){return this.client.request(s,o,d)},i.prototype.requestAdvanced=function(s,o){return this.client.requestAdvanced(s,o)},i.prototype.notify=function(s,o,d){this.client.notify(s,o,d)},i.prototype.rejectAllPendingRequests=function(s){this.client.rejectAllPendingRequests(s)},i.prototype.receiveAndSend=function(s,o,d){return t(this,void 0,void 0,function(){var c,p;return e(this,function(w){switch(w.label){case 0:return(0,r.isJSONRPCResponse)(s)||(0,r.isJSONRPCResponses)(s)?(this.client.receive(s),[3,4]):[3,1];case 1:return(0,r.isJSONRPCRequest)(s)||(0,r.isJSONRPCRequests)(s)?[4,this.server.receive(s,o)]:[3,3];case 2:return c=w.sent(),c?[2,this.client.send(c,d)]:[3,4];case 3:return p="Received an invalid JSON-RPC message",this.errorListener(p,s),[2,Promise.reject(new Error(p))];case 4:return[2]}})})},i})();return ae.JSONRPCServerAndClient=n,ae}var kt;function gr(){return kt||(kt=1,(function(t){var e=fe&&fe.__createBinding||(Object.create?(function(n,i,s,o){o===void 0&&(o=s);var d=Object.getOwnPropertyDescriptor(i,s);(!d||("get"in d?!i.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(n,o,d)}):(function(n,i,s,o){o===void 0&&(o=s),n[o]=i[s]})),r=fe&&fe.__exportStar||function(n,i){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,n,s)};Object.defineProperty(t,"__esModule",{value:!0}),r(pr(),t),r(yr(),t),r(xe(),t),r(wr(),t),r(vr(),t)})(fe)),fe}var _e=gr();class br extends Event{code;reason;wasClean;constructor(e,r={}){super(e,r),this.code=r.code??0,this.reason=r.reason??"",this.wasClean=r.wasClean??!1}}function mr(t,e){const r="CloseEvent"in globalThis?globalThis.CloseEvent:br;return new r(t,e)}class Sr{#e=new EventTarget;addEventListener(e,r,n){return this.#e.addEventListener(e,r,n),()=>{this.#e.removeEventListener(e,r,n)}}removeEventListener(e,r,n){this.#e.removeEventListener(e,r,n)}dispatchEvent(e){return this.#e.dispatchEvent(e)}}const j=Symbol.for("@appetizeio/rpc:rpcMethods");class Cr extends Sr{send;constructor(e){super(),this.send=e}dispatchClose(e){return this.dispatchEvent(mr("close",e))}dispatchMessage(e){return this.dispatchEvent(new CustomEvent("message",{detail:e}))}}const Nt=Se("appetize.io:error:rpc");function We(t,e){const r=new _e.JSONRPCServerAndClient(new _e.JSONRPCServer({errorListener:Nt}),Rr(t),{errorListener:Nt}),n=t[j].addEventListener("message",({detail:s})=>{r.receiveAndSend(s)}),i=t[j].addEventListener("close",()=>{n(),r.rejectAllPendingRequests("Transport closed")},{once:!0});for(const s in e){const o=e[s];o&&r.addMethod(s,o.bind(e))}return{rpc:r,unsub:()=>{n(),i()}}}function Er(t,e){const{rpc:r,unsub:n}=We(t,e);return{client:r.client,unsub:n}}function Fe(t,e){const r=t[j].addEventListener("message",({detail:i})=>{if("method"in i)try{e({method:i.method,param:i.params})}catch{}}),n=t[j].addEventListener("close",r,{once:!0});return()=>{r(),n()}}function Rr(t){return new _e.JSONRPCClient(t[j].send.bind(t[j]),()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)+1)}const Or=(...t)=>Er(...t),Ge=["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Enter","Tab"],Ar=33333,Mr=[[99,10],[396,11],[792,21],[1620,22],[3600,31],[5120,32],[8192,40],[8704,42],[22080,50],[36864,51],[139264,60]],Pr=new Intl.Segmenter(void 0,{granularity:"grapheme"}),Ir=new Set(Ge);class kr{#e;#t=!1;#r;#n;#i;#o;#a;#s;#c;#l=0;#u=!1;constructor({canvas:e,context:r,onClose:n,onError:i,signal:s,stream:o}){this.#e=e,this.#r=r,this.#o=n,this.#a=i,this.#s=s,this.#c=o,this.#s?.addEventListener("abort",this.close,{once:!0}),this.#p()}close=()=>{this.#t||(this.#t=!0,this.#f(),this.#n=void 0,this.#c.close(),this.#s?.removeEventListener("abort",this.close),this.#o?.())};#f(){this.#n&&this.#n.state!=="closed"&&this.#n.close()}#h(e){const r=Fr(e.data,e.width,e.height),n=`${r}:${String(e.width)}x${String(e.height)}`;this.#n&&this.#i===n||(this.#f(),this.#i=n,this.#e.height=e.height,this.#e.width=e.width,this.#n=new VideoDecoder({error:this.#d,output:i=>{this.#r.drawImage(i,0,0,this.#e.width,this.#e.height),i.close()}}),this.#n.configure({codec:r,codedHeight:e.height,codedWidth:e.width,hardwareAcceleration:"no-preference",optimizeForLatency:!0}))}async#p(){try{for await(const e of this.#c){if(this.#t)return;if(e.data.byteLength!==0){if(e.type==="key"&&e.codec==="jpeg"){this.#u=!1,this.#i=void 0,this.#f(),this.#n=void 0,await this.#y(e);continue}if(!(e.type==="delta"&&this.#u)&&(e.type==="key"&&(this.#u=!1,this.#h(e)),this.#n?.state==="configured")){if(this.#n.decodeQueueSize>2&&e.type==="delta"){this.#d();continue}this.#n.decode(new EncodedVideoChunk({data:new Uint8Array(e.data),timestamp:this.#l,type:e.type})),this.#l+=Ar}}}}catch(e){this.#t||this.#a?.(e)}finally{this.close()}}#d=()=>{this.#u=!0,this.#i=void 0,this.#f(),this.#n=void 0,this.#c.requestKeyFrame()};async#y(e){const r=await createImageBitmap(new Blob([new Uint8Array(e.data)],{type:"image/jpeg"}));this.#e.height=e.height,this.#e.width=e.width,this.#r.drawImage(r,0,0,e.width,e.height),r.close()}}function Nr(t,e,{signal:r}={}){if(r?.aborted)return()=>{};const n=s=>{s.altKey||s.ctrlKey||s.metaKey||!Tr(s.key)||(s.preventDefault(),t.keyboard.press(s.key))},i=()=>{e.removeEventListener("keydown",n),r?.removeEventListener("abort",i)};return e.addEventListener("keydown",n),r?.addEventListener("abort",i,{once:!0}),i}function xr(t,e,{signal:r}={}){let n,i;const s=p=>{n===void 0&&(p.preventDefault(),n=p.pointerId,i=He(e,p),e.focus(),e.setPointerCapture(p.pointerId),t.touch.down(i.x,i.y))},o=p=>{p.pointerId===n&&(p.preventDefault(),i=He(e,p),t.touch.move(i.x,i.y))},d=p=>{if(p.pointerId!==n)return;p.preventDefault();const w=He(e,p);t.touch.up(w.x,w.y),_t(e,p.pointerId),n=void 0,i=void 0},c=()=>{n!==void 0&&_t(e,n),i&&t.touch.up(i.x,i.y),n=void 0,i=void 0,e.removeEventListener("pointercancel",d),e.removeEventListener("pointerdown",s),e.removeEventListener("pointermove",o),e.removeEventListener("pointerup",d),r?.removeEventListener("abort",c)};return r?.aborted||(e.addEventListener("pointercancel",d),e.addEventListener("pointerdown",s),e.addEventListener("pointermove",o),e.addEventListener("pointerup",d),r?.addEventListener("abort",c,{once:!0})),c}async function _r(t,e,{onClose:r,onError:n,signal:i}={}){const s=e.getContext("2d");if(!s)throw new Error("Canvas context unavailable");i?.throwIfAborted();const o=await t.video.createStream({signal:i});return{close:new kr({canvas:e,context:s,onClose:r,onError:n,signal:i,stream:o}).close}}function xt(t){return Math.max(0,Math.min(1,t))}function Fr(t,e,r){const n=Math.ceil(e/16)*Math.ceil(r/16),i=Mr.find(([s])=>n<=s)?.[1]??62;for(let s=0;s<t.length-7;s+=1){const o=t[s]===0&&t[s+1]===0&&t[s+2]===1,d=t[s]===0&&t[s+1]===0&&t[s+2]===0&&t[s+3]===1,c=o?s+3:d?s+4:-1;if(c>=0&&(t[c]&31)===7)return`avc1.${[t[c+1],t[c+2],Math.max(t[c+3],i)].map(p=>p.toString(16).padStart(2,"0")).join("")}`}return"avc1.42e01e"}function Tr(t){return Array.from(Pr.segment(t)).length===1||Ir.has(t)}function He(t,e){const r=t.getBoundingClientRect();return{x:xt((e.clientX-r.left)/r.width),y:xt((e.clientY-r.top)/r.height)}}function _t(t,e){t.hasPointerCapture(e)&&t.releasePointerCapture(e)}let Ze;try{Ze=new TextDecoder}catch{}let M,Q,h=0;const Lr=105,Ur=57342,Jr=57343,Ft=57337,Tt=6,ge={};let Re=11281e4,ce=1681e4,L={},z,Te,Le=0,Oe=0,W,te,V=[],Xe=[],Y,X,Ae,Lt={useRecords:!1,mapsAsObjects:!0},Me=!1,Ut=2;try{new Function("")}catch{Ut=1/0}class ke{constructor(e){if(e&&((e.keyMap||e._keyMap)&&!e.useRecords&&(e.useRecords=!1,e.mapsAsObjects=!0),e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.getStructures&&(e.getShared=e.getStructures),e.getShared&&!e.structures&&((e.structures=[]).uninitialized=!0),e.keyMap)){this.mapKey=new Map;for(let[r,n]of Object.entries(e.keyMap))this.mapKey.set(n,r)}Object.assign(this,e)}decodeKey(e){return this.keyMap&&this.mapKey.get(e)||e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(e){if(!this._keyMap)return e;let r=new Map;for(let[n,i]of Object.entries(e))r.set(this._keyMap.hasOwnProperty(n)?this._keyMap[n]:n,i);return r}decodeKeys(e){if(!this._keyMap||e.constructor.name!="Map")return e;if(!this._mapKey){this._mapKey=new Map;for(let[n,i]of Object.entries(this._keyMap))this._mapKey.set(i,n)}let r={};return e.forEach((n,i)=>r[re(this._mapKey.has(i)?this._mapKey.get(i):i)]=n),r}mapDecode(e,r){let n=this.decode(e);return this._keyMap&&n.constructor.name==="Array"?n.map(i=>this.decodeKeys(i)):n}decode(e,r){if(M)return zt(()=>(rt(),this?this.decode(e,r):ke.prototype.decode.call(Lt,e,r)));Q=r>-1?r:e.length,h=0,Oe=0,Te=null,W=null,M=e;try{X=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(n){throw M=null,e instanceof Uint8Array?n:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof ke){if(L=this,Y=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return z=this.structures,Ue();(!z||z.length>0)&&(z=[])}else L=Lt,(!z||z.length>0)&&(z=[]),Y=null;return Ue()}decodeMultiple(e,r){let n,i=0;try{let s=e.length;Me=!0;let o=this?this.decode(e,s):it.decode(e,s);if(r){if(r(o)===!1)return;for(;h<s;)if(i=h,r(Ue())===!1)return}else{for(n=[o];h<s;)i=h,n.push(Ue());return n}}catch(s){throw s.lastPosition=i,s.values=n,s}finally{Me=!1,rt()}}}function Ue(){try{let t=U();if(W){if(h>=W.postBundlePosition){let e=new Error("Unexpected bundle position");throw e.incomplete=!0,e}h=W.postBundlePosition,W=null}if(h==Q)z=null,M=null,te&&(te=null);else if(h>Q){let e=new Error("Unexpected end of CBOR data");throw e.incomplete=!0,e}else if(!Me)throw new Error("Data read, but end of buffer not reached");return t}catch(t){throw rt(),(t instanceof RangeError||t.message.startsWith("Unexpected end of buffer"))&&(t.incomplete=!0),t}}function de(){let t=new Error("Unexpected end of CBOR data");return t.incomplete=!0,t}function U(){if(!(h<Q))throw de();let t=M[h++],e=t>>5;if(t=t&31,t>23)switch(t){case 24:if(h>=Q)throw de();t=M[h++];break;case 25:if(e==7)return qr();t=X.getUint16(h),h+=2;break;case 26:if(e==7){let r=X.getFloat32(h);if(L.useFloat32>2){let n=nt[(M[h]&127)<<1|M[h+1]>>7];return h+=4,(n*r+(r>0?.5:-.5)>>0)/n}return h+=4,r}if(t=X.getUint32(h),h+=4,e===1)return-1-t;break;case 27:if(e==7){let r=X.getFloat64(h);return h+=8,r}if(e>1){if(X.getUint32(h)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");t=X.getUint32(h+4)}else L.int64AsNumber?(t=X.getUint32(h)*4294967296,t+=X.getUint32(h+4)):t=X.getBigUint64(h);h+=8;break;case 31:switch(e){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let r=[],n,i=0;for(;(n=U())!=ge;){if(i>=Re)throw new Error(`Array length exceeds ${Re}`);r[i++]=n}return e==4?r:e==3?r.join(""):Buffer.concat(r);case 5:let s;if(L.mapsAsObjects){let o={},d=0;if(L.keyMap)for(;(s=U())!=ge;){if(d++>=ce)throw new Error(`Property count exceeds ${ce}`);o[re(L.decodeKey(s))]=U()}else for(;(s=U())!=ge;){if(d++>=ce)throw new Error(`Property count exceeds ${ce}`);o[re(s)]=U()}return o}else{Ae&&(L.mapsAsObjects=!0,Ae=!1);let o=new Map;if(L.keyMap){let d=0;for(;(s=U())!=ge;){if(d++>=ce)throw new Error(`Map size exceeds ${ce}`);o.set(L.decodeKey(s),U())}}else{let d=0;for(;(s=U())!=ge;){if(d++>=ce)throw new Error(`Map size exceeds ${ce}`);o.set(s,U())}}return o}case 7:return ge;default:throw new Error("Invalid major type for indefinite length "+e)}default:throw new Error("Unknown token "+t)}switch(e){case 0:return t;case 1:return~t;case 2:return Br(t);case 3:if(Oe>=h)return Te.slice(h-Le,(h+=t)-Le);if(Oe==0&&Q<140&&t<32){let i=t<16?Dt(t):jr(t);if(i!=null)return i}return Dr(t);case 4:if(t>=Re)throw new Error(`Array length exceeds ${Re}`);if(t>Q-h)throw de();let r=new Array(t);for(let i=0;i<t;i++)r[i]=U();return r;case 5:if(t>=ce)throw new Error(`Map size exceeds ${Re}`);if(t>(Q-h)/2)throw de();if(L.mapsAsObjects){let i={};if(L.keyMap)for(let s=0;s<t;s++)i[re(L.decodeKey(U()))]=U();else for(let s=0;s<t;s++)i[re(U())]=U();return i}else{Ae&&(L.mapsAsObjects=!0,Ae=!1);let i=new Map;if(L.keyMap)for(let s=0;s<t;s++)i.set(L.decodeKey(U()),U());else for(let s=0;s<t;s++)i.set(U(),U());return i}case 6:if(t>=Ft){let i=z[t&8191];if(i)return i.read||(i.read=Ye(i)),i.read();if(t<65536){if(t==Jr){let s=me(),o=U(),d=U();et(o,d);let c={};if(L.keyMap)for(let p=2;p<s;p++){let w=L.decodeKey(d[p-2]);c[re(w)]=U()}else for(let p=2;p<s;p++){let w=d[p-2];c[re(w)]=U()}return c}else if(t==Ur){let s=me(),o=U();for(let d=2;d<s;d++)et(o++,U());return U()}else if(t==Ft)return Gr();if(L.getShared&&(tt(),i=z[t&8191],i))return i.read||(i.read=Ye(i)),i.read()}}let n=V[t];if(n)return n.handlesRead?n(U):n(U());{let i=U();for(let s=0;s<Xe.length;s++){let o=Xe[s](t,i);if(o!==void 0)return o}return new he(i,t)}case 7:switch(t){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;default:let i=(Y||pe())[t];if(i!==void 0)return i;throw new Error("Unknown token "+t)}default:throw isNaN(t)?de():new Error("Unknown CBOR token "+t)}}const Jt=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Ye(t){if(!t)throw new Error("Structure is required in record definition");function e(){let r=M[h++];if(r=r&31,r>23)switch(r){case 24:r=M[h++];break;case 25:r=X.getUint16(h),h+=2;break;case 26:r=X.getUint32(h),h+=4;break;default:throw new Error("Expected array header, but got "+M[h-1])}let n=this.compiledReader;for(;n;){if(n.propertyCount===r)return n(U);n=n.next}if(this.slowReads++>=Ut){let s=this.length==r?this:this.slice(0,r);return n=L.keyMap?new Function("r","return {"+s.map(o=>L.decodeKey(o)).map(o=>Jt.test(o)?re(o)+":r()":"["+JSON.stringify(o)+"]:r()").join(",")+"}"):new Function("r","return {"+s.map(o=>Jt.test(o)?re(o)+":r()":"["+JSON.stringify(o)+"]:r()").join(",")+"}"),this.compiledReader&&(n.next=this.compiledReader),n.propertyCount=r,this.compiledReader=n,n(U)}let i={};if(L.keyMap)for(let s=0;s<r;s++)i[re(L.decodeKey(this[s]))]=U();else for(let s=0;s<r;s++)i[re(this[s])]=U();return i}return t.slowReads=0,e}function re(t){if(typeof t=="string")return t==="__proto__"?"__proto_":t;if(typeof t=="number"||typeof t=="boolean"||typeof t=="bigint")return t.toString();if(t==null)return t+"";throw new Error("Invalid property name type "+typeof t)}let Dr=Qe;function Qe(t){let e;if(t<16&&(e=Dt(t)))return e;if(t>64&&Ze)return Ze.decode(M.subarray(h,h+=t));const r=h+t,n=[];for(e="";h<r;){const i=M[h++];if((i&128)===0)n.push(i);else if((i&224)===192)if(i<194||h>=r||(M[h]&192)!==128)n.push(65533);else{const s=M[h++]&63;n.push((i&31)<<6|s)}else if((i&240)===224){const s=h<r?M[h]:0;if(h>=r||(s&192)!==128||i===224&&s<160||i===237&&s>=160)n.push(65533);else if(h++,h>=r||(M[h]&192)!==128)n.push(65533);else{const o=M[h++]&63;n.push((i&31)<<12|(s&63)<<6|o)}}else if((i&248)===240){const s=h<r?M[h]:0;if(i>244||h>=r||(s&192)!==128||i===240&&s<144||i===244&&s>=144)n.push(65533);else if(h++,h>=r||(M[h]&192)!==128)n.push(65533);else{const o=M[h++]&63;if(h>=r||(M[h]&192)!==128)n.push(65533);else{const d=M[h++]&63;let c=(i&7)<<18|(s&63)<<12|o<<6|d;c-=65536,n.push(c>>>10&1023|55296),n.push(56320|c&1023)}}}else n.push(65533);n.length>=4096&&(e+=H.apply(String,n),n.length=0)}return n.length>0&&(e+=H.apply(String,n)),e}let H=String.fromCharCode;function jr(t){let e=h,r=new Array(t);for(let n=0;n<t;n++){const i=M[h++];if((i&128)>0){h=e;return}r[n]=i}return H.apply(String,r)}function Dt(t){if(t<4)if(t<2){if(t===0)return"";{let e=M[h++];if((e&128)>1){h-=1;return}return H(e)}}else{let e=M[h++],r=M[h++];if((e&128)>0||(r&128)>0){h-=2;return}if(t<3)return H(e,r);let n=M[h++];if((n&128)>0){h-=3;return}return H(e,r,n)}else{let e=M[h++],r=M[h++],n=M[h++],i=M[h++];if((e&128)>0||(r&128)>0||(n&128)>0||(i&128)>0){h-=4;return}if(t<6){if(t===4)return H(e,r,n,i);{let s=M[h++];if((s&128)>0){h-=5;return}return H(e,r,n,i,s)}}else if(t<8){let s=M[h++],o=M[h++];if((s&128)>0||(o&128)>0){h-=6;return}if(t<7)return H(e,r,n,i,s,o);let d=M[h++];if((d&128)>0){h-=7;return}return H(e,r,n,i,s,o,d)}else{let s=M[h++],o=M[h++],d=M[h++],c=M[h++];if((s&128)>0||(o&128)>0||(d&128)>0||(c&128)>0){h-=8;return}if(t<10){if(t===8)return H(e,r,n,i,s,o,d,c);{let p=M[h++];if((p&128)>0){h-=9;return}return H(e,r,n,i,s,o,d,c,p)}}else if(t<12){let p=M[h++],w=M[h++];if((p&128)>0||(w&128)>0){h-=10;return}if(t<11)return H(e,r,n,i,s,o,d,c,p,w);let y=M[h++];if((y&128)>0){h-=11;return}return H(e,r,n,i,s,o,d,c,p,w,y)}else{let p=M[h++],w=M[h++],y=M[h++],v=M[h++];if((p&128)>0||(w&128)>0||(y&128)>0||(v&128)>0){h-=12;return}if(t<14){if(t===12)return H(e,r,n,i,s,o,d,c,p,w,y,v);{let f=M[h++];if((f&128)>0){h-=13;return}return H(e,r,n,i,s,o,d,c,p,w,y,v,f)}}else{let f=M[h++],S=M[h++];if((f&128)>0||(S&128)>0){h-=14;return}if(t<15)return H(e,r,n,i,s,o,d,c,p,w,y,v,f,S);let g=M[h++];if((g&128)>0){h-=15;return}return H(e,r,n,i,s,o,d,c,p,w,y,v,f,S,g)}}}}}function Br(t){return L.copyBuffers?Uint8Array.prototype.slice.call(M,h,h+=t):M.subarray(h,h+=t)}let jt=new Float32Array(1),Je=new Uint8Array(jt.buffer,0,4);function qr(){let t=M[h++],e=M[h++],r=(t&127)>>2;if(r===31)return e||t&3?NaN:t&128?-1/0:1/0;if(r===0){let n=((t&3)<<8|e)/16777216;return t&128?-n:n}return Je[3]=t&128|(r>>1)+56,Je[2]=(t&7)<<5|e>>3,Je[1]=e<<5,Je[0]=0,jt[0]}new Array(4096);class he{constructor(e,r){this.value=e,this.tag=r}}V[0]=t=>new Date(t),V[1]=t=>new Date(Math.round(t*1e3)),V[2]=t=>{let e=BigInt(0);for(let r=0,n=t.byteLength;r<n;r++)e=BigInt(t[r])+(e<<BigInt(8));return e},V[3]=t=>BigInt(-1)-V[2](t),V[4]=t=>+(t[1]+"e"+t[0]),V[5]=t=>t[1]*Math.exp(t[0]*Math.log(2));const et=(t,e)=>{t=t-57344;let r=z[t];r&&r.isShared&&((z.restoreStructures||(z.restoreStructures=[]))[t]=r),z[t]=e,e.read=Ye(e)};V[Lr]=t=>{let e=t.length,r=t[1];et(t[0],r);let n={};for(let i=2;i<e;i++){let s=r[i-2];n[re(s)]=t[i]}return n},V[14]=t=>W?W[0].slice(W.position0,W.position0+=t):new he(t,14),V[15]=t=>W?W[1].slice(W.position1,W.position1+=t):new he(t,15);let zr={Error,RegExp};V[27]=t=>(zr[t[0]]||Error)(t[1],t[2]);const Bt=t=>{if(M[h++]!=132){let r=new Error("Packed values structure must be followed by a 4 element array");throw M.length<h&&(r.incomplete=!0),r}let e=t();if(!e||!e.length){let r=new Error("Packed values structure must be followed by a 4 element array");throw r.incomplete=!0,r}return Y=Y?e.concat(Y.slice(e.length)):e,Y.prefixes=t(),Y.suffixes=t(),t()};Bt.handlesRead=!0,V[51]=Bt,V[Tt]=t=>{if(!Y)if(L.getShared)tt();else return new he(t,Tt);if(typeof t=="number")return Y[16+(t>=0?2*t:-2*t-1)];let e=new Error("No support for non-integer packed references yet");throw t===void 0&&(e.incomplete=!0),e},V[28]=t=>{te||(te=new Map,te.id=0);let e=te.id++,r=h,n=M[h],i;n>>5==4?i=[]:i={};let s={target:i};te.set(e,s);let o=t();return s.used?(Object.getPrototypeOf(i)!==Object.getPrototypeOf(o)&&(h=r,i=o,te.set(e,{target:i}),o=t()),Object.assign(i,o)):(s.target=o,o)},V[28].handlesRead=!0,V[29]=t=>{let e=te.get(t);return e.used=!0,e.target},V[258]=t=>new Set(t),(V[259]=t=>(L.mapsAsObjects&&(L.mapsAsObjects=!1,Ae=!0),t())).handlesRead=!0;function be(t,e){return typeof t=="string"?t+e:t instanceof Array?t.concat(e):Object.assign({},t,e)}function pe(){if(!Y)if(L.getShared)tt();else throw new Error("No packed values available");return Y}const Kr=1399353956;Xe.push((t,e)=>{if(t>=225&&t<=255)return be(pe().prefixes[t-224],e);if(t>=28704&&t<=32767)return be(pe().prefixes[t-28672],e);if(t>=1879052288&&t<=2147483647)return be(pe().prefixes[t-1879048192],e);if(t>=216&&t<=223)return be(e,pe().suffixes[t-216]);if(t>=27647&&t<=28671)return be(e,pe().suffixes[t-27639]);if(t>=1811940352&&t<=1879048191)return be(e,pe().suffixes[t-1811939328]);if(t==Kr)return{packedValues:Y,structures:z.slice(0),version:e};if(t==55799)return e});const Vr=new Uint8Array(new Uint16Array([1]).buffer)[0]==1,qt=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array],$r=[64,68,69,70,71,72,77,78,79,85,86];for(let t=0;t<qt.length;t++)Wr(qt[t],$r[t]);function Wr(t,e){let r="get"+t.name.slice(0,-5),n;typeof t=="function"?n=t.BYTES_PER_ELEMENT:t=null;for(let i=0;i<2;i++){if(!i&&n==1)continue;let s=n==2?1:n==4?2:n==8?3:0;V[i?e:e-4]=n==1||i==Vr?o=>{if(!t)throw new Error("Could not find typed array for code "+e);return!L.copyBuffers&&(n===1||n===2&&!(o.byteOffset&1)||n===4&&!(o.byteOffset&3)||n===8&&!(o.byteOffset&7))?new t(o.buffer,o.byteOffset,o.byteLength>>s):new t(Uint8Array.prototype.slice.call(o,0).buffer)}:o=>{if(!t)throw new Error("Could not find typed array for code "+e);let d=new DataView(o.buffer,o.byteOffset,o.byteLength),c=o.length>>s,p=new t(c),w=d[r];for(let y=0;y<c;y++)p[y]=w.call(d,y<<s,i);return p}}}function Gr(){let t=me(),e=h+U();for(let n=2;n<t;n++){let i=me();h+=i}let r=h;return h=e,W=[Qe(me()),Qe(me())],W.position0=0,W.position1=0,W.postBundlePosition=h,h=r,U()}function me(){if(!(h<Q))throw de();let t=M[h++]&31;if(t>23)switch(t){case 24:if(h>=Q)throw de();t=M[h++];break;case 25:t=X.getUint16(h),h+=2;break;case 26:t=X.getUint32(h),h+=4;break}return t}function tt(){if(L.getShared){let t=zt(()=>(M=null,L.getShared()))||{},e=t.structures||[];L.sharedVersion=t.version,Y=L.sharedValues=t.packedValues,z===!0?L.structures=z=e:z.splice.apply(z,[0,e.length].concat(e))}}function zt(t){let e=Q,r=h,n=Le,i=Oe,s=Te,o=te,d=W,c=new Uint8Array(M.slice(0,Q)),p=z,w=L,y=Me,v=t();return Q=e,h=r,Le=n,Oe=i,Te=s,te=o,W=d,M=c,Me=y,z=p,L=w,X=new DataView(M.buffer,M.byteOffset,M.byteLength),v}function rt(){M=null,te=null,z=null}const nt=new Array(147);for(let t=0;t<256;t++)nt[t]=+("1e"+Math.floor(45.15-t*.30103));let it=new ke({useRecords:!1});const Kt=it.decode;it.decodeMultiple;let De;try{De=new TextEncoder}catch{}let st,Vt;const je=typeof globalThis=="object"&&globalThis.Buffer,Pe=typeof je<"u",ot=Pe?je.allocUnsafeSlow:Uint8Array,$t=Pe?je:Uint8Array,Wt=256,Gt=Pe?4294967296:2144337920;let at,u,B,a=0,ue,G=null;const Hr=61440,Zr=/[\u0080-\uFFFF]/,ee=Symbol("record-id");class Xr extends ke{constructor(e){super(e),this.offset=0;let r,n,i,s,o;e=e||{};let d=$t.prototype.utf8Write?function(l,I){return u.utf8Write(l,I,u.byteLength-I)}:De&&De.encodeInto?function(l,I){return De.encodeInto(l,u.subarray(I)).written}:!1,c=this,p=e.structures||e.saveStructures,w=e.maxSharedStructures;if(w==null&&(w=p?128:0),w>8190)throw new Error("Maximum maxSharedStructure is 8190");let y=e.sequential;y&&(w=0),this.structures||(this.structures=[]),this.saveStructures&&(this.saveShared=this.saveStructures);let v,f,S=e.sharedValues,g;if(S){g=Object.create(null);for(let l=0,I=S.length;l<I;l++)g[S[l]]=l}let C=[],b=0,E=0;this.mapEncode=function(l,I){return this._keyMap&&!this._mapped&&l.constructor.name==="Array"&&(l=l.map(R=>this.encodeKeys(R))),this.encode(l,I)},this.encode=function(l,I){if(u||(u=new ot(8192),B=new DataView(u.buffer,0,8192),a=0),ue=u.length-10,ue-a<2048?(u=new ot(u.length),B=new DataView(u.buffer,0,u.length),ue=u.length-10,a=0):I===Yt&&(a=a+7&2147483640),r=a,c.useSelfDescribedHeader&&(B.setUint32(a,3654940416),a+=3),o=c.structuredClone?new Map:null,c.bundleStrings&&typeof l!="string"?(G=[],G.size=1/0):G=null,n=c.structures,n){if(n.uninitialized){let O=c.getShared()||{};c.structures=n=O.structures||[],c.sharedVersion=O.version;let m=c.sharedValues=O.packedValues;if(m){g={};for(let N=0,x=m.length;N<x;N++)g[m[N]]=N}}let R=n.length;if(R>w&&!y&&(R=w),!n.transitions){n.transitions=Object.create(null);for(let O=0;O<R;O++){let m=n[O];if(!m)continue;let N,x=n.transitions;for(let F=0,T=m.length;F<T;F++){x[ee]===void 0&&(x[ee]=O);let J=m[F];N=x[J],N||(N=x[J]=Object.create(null)),x=N}x[ee]=O|1048576}}y||(n.nextId=R)}if(i&&(i=!1),s=n||[],f=g,e.pack){let R=new Map;if(R.values=[],R.encoder=c,R.maxValues=e.maxPrivatePackedValues||(g?16:1/0),R.objectMap=g||!1,R.samplingPackedValues=v,Be(l,R),R.values.length>0){u[a++]=216,u[a++]=51,ne(4);let O=R.values;A(O),ne(0),ne(0),f=Object.create(g||null);for(let m=0,N=O.length;m<N;m++)f[O[m]]=m}}at=I&ft;try{if(at)return;if(A(l),G&&Xt(r,A),c.offset=a,o&&o.idsToInsert){a+=o.idsToInsert.length*2,a>ue&&P(a),c.offset=a;let R=en(u.subarray(r,a),o.idsToInsert);return o=null,R}return I&Yt?(u.start=r,u.end=a,u):u.subarray(r,a)}finally{if(n){if(E<10&&E++,n.length>w&&(n.length=w),b>1e4)n.transitions=null,E=0,b=0,C.length>0&&(C=[]);else if(C.length>0&&!y){for(let R=0,O=C.length;R<O;R++)C[R][ee]=void 0;C=[]}}if(i&&c.saveShared){c.structures.length>w&&(c.structures=c.structures.slice(0,w));let R=u.subarray(r,a);return c.updateSharedData()===!1?c.encode(l):R}I&rn&&(a=r)}},this.findCommonStringsToPack=()=>(v=new Map,g||(g=Object.create(null)),l=>{let I=l&&l.threshold||4,R=this.pack?l.maxPrivatePackedValues||16:0;S||(S=this.sharedValues=[]);for(let[O,m]of v)m.count>I&&(g[O]=R++,S.push(O),i=!0);for(;this.saveShared&&this.updateSharedData()===!1;);v=null});const A=l=>{a>ue&&(u=P(a));var I=typeof l,R;if(I==="string"){if(f){let x=f[l];if(x>=0){x<16?u[a++]=x+224:(u[a++]=198,x&1?A(15-x>>1):A(x-16>>1));return}else if(v&&!e.pack){let F=v.get(l);F?F.count++:v.set(l,{count:1})}}let O=l.length;if(G&&O>=4&&O<1024){if((G.size+=O)>Hr){let F,T=(G[0]?G[0].length*3+G[1].length:0)+10;a+T>ue&&(u=P(a+T)),u[a++]=217,u[a++]=223,u[a++]=249,u[a++]=G.position?132:130,u[a++]=26,F=a-r,a+=4,G.position&&Xt(r,A),G=["",""],G.size=0,G.position=F}let x=Zr.test(l);G[x?0:1]+=l,u[a++]=x?206:207,A(O);return}let m;O<32?m=1:O<256?m=2:O<65536?m=3:m=5;let N=O*3;if(a+N>ue&&(u=P(a+N)),O<64||!d){let x,F,T,J=a+m;for(x=0;x<O;x++)F=l.charCodeAt(x),F<128?u[J++]=F:F<2048?(u[J++]=F>>6|192,u[J++]=F&63|128):(F&64512)===55296&&((T=l.charCodeAt(x+1))&64512)===56320?(F=65536+((F&1023)<<10)+(T&1023),x++,u[J++]=F>>18|240,u[J++]=F>>12&63|128,u[J++]=F>>6&63|128,u[J++]=F&63|128):(u[J++]=F>>12|224,u[J++]=F>>6&63|128,u[J++]=F&63|128);R=J-a-m}else R=d(l,a+m,N);R<24?u[a++]=96|R:R<256?(m<2&&u.copyWithin(a+2,a+1,a+1+R),u[a++]=120,u[a++]=R):R<65536?(m<3&&u.copyWithin(a+3,a+2,a+2+R),u[a++]=121,u[a++]=R>>8,u[a++]=R&255):(m<5&&u.copyWithin(a+5,a+3,a+3+R),u[a++]=122,B.setUint32(a,R),a+=4),a+=R}else if(I==="number")if(!this.alwaysUseFloat&&l>>>0===l)l<24?u[a++]=l:l<256?(u[a++]=24,u[a++]=l):l<65536?(u[a++]=25,u[a++]=l>>8,u[a++]=l&255):(u[a++]=26,B.setUint32(a,l),a+=4);else if(!this.alwaysUseFloat&&l>>0===l)l>=-24?u[a++]=31-l:l>=-256?(u[a++]=56,u[a++]=~l):l>=-65536?(u[a++]=57,B.setUint16(a,~l),a+=2):(u[a++]=58,B.setUint32(a,~l),a+=4);else if(!this.alwaysUseFloat&&l<0&&l>=-4294967296&&Math.floor(l)===l)u[a++]=58,B.setUint32(a,-1-l),a+=4;else{let O;if((O=this.useFloat32)>0&&l<4294967296&&l>=-2147483648){u[a++]=250,B.setFloat32(a,l);let m;if(O<4||(m=l*nt[(u[a]&127)<<1|u[a+1]>>7])>>0===m){a+=4;return}else a--}u[a++]=251,B.setFloat64(a,l),a+=8}else if(I==="object")if(!l)u[a++]=246;else{if(o){let m=o.get(l);if(m){if(u[a++]=216,u[a++]=29,u[a++]=25,!m.references){let N=o.idsToInsert||(o.idsToInsert=[]);m.references=[],N.push(m)}m.references.push(a-r),a+=2;return}else o.set(l,{offset:a-r})}let O=l.constructor;if(O===Object)this.skipFunction===!0&&(l=Object.fromEntries([...Object.keys(l).filter(m=>typeof l[m]!="function").map(m=>[m,l[m]])])),k(l);else if(O===Array){R=l.length,R<24?u[a++]=128|R:ne(R);for(let m=0;m<R;m++)A(l[m])}else if(O===Map)if((this.mapsAsObjects?this.useTag259ForMaps!==!1:this.useTag259ForMaps)&&(u[a++]=217,u[a++]=1,u[a++]=3),R=l.size,R<24?u[a++]=160|R:R<256?(u[a++]=184,u[a++]=R):R<65536?(u[a++]=185,u[a++]=R>>8,u[a++]=R&255):(u[a++]=186,B.setUint32(a,R),a+=4),c.keyMap)for(let[m,N]of l)A(c.encodeKey(m)),A(N);else for(let[m,N]of l)A(m),A(N);else{for(let m=0,N=st.length;m<N;m++){let x=Vt[m];if(l instanceof x){let F=st[m],T=F.tag;T==null&&(T=F.getTag&&F.getTag.call(this,l)),T<24?u[a++]=192|T:T<256?(u[a++]=216,u[a++]=T):T<65536?(u[a++]=217,u[a++]=T>>8,u[a++]=T&255):T>-1&&(u[a++]=218,B.setUint32(a,T),a+=4),F.encode.call(this,l,A,P);return}}if(l[Symbol.iterator]){if(at){let m=new Error("Iterable should be serialized as iterator");throw m.iteratorNotHandled=!0,m}u[a++]=159;for(let m of l)A(m);u[a++]=255;return}if(l[Symbol.asyncIterator]||ct(l)){let m=new Error("Iterable/blob should be serialized as iterator");throw m.iteratorNotHandled=!0,m}if(this.useToJSON&&l.toJSON){const m=l.toJSON();if(m!==l)return A(m)}k(l)}}else if(I==="boolean")u[a++]=l?245:244;else if(I==="bigint"){if(l<BigInt(1)<<BigInt(64)&&l>=0)u[a++]=27,B.setBigUint64(a,l);else if(l>-(BigInt(1)<<BigInt(64))&&l<0)u[a++]=59,B.setBigUint64(a,-l-BigInt(1));else if(this.largeBigIntToFloat)u[a++]=251,B.setFloat64(a,Number(l));else{l>=BigInt(0)?u[a++]=194:(u[a++]=195,l=BigInt(-1)-l);let O=[];for(;l;)O.push(Number(l&BigInt(255))),l>>=BigInt(8);lt(new Uint8Array(O.reverse()),P);return}a+=8}else if(I==="undefined")u[a++]=247;else throw new Error("Unknown type: "+I)},k=this.useRecords===!1?this.variableMapSize?l=>{let I=Object.keys(l),R=Object.values(l),O=I.length;if(O<24?u[a++]=160|O:O<256?(u[a++]=184,u[a++]=O):O<65536?(u[a++]=185,u[a++]=O>>8,u[a++]=O&255):(u[a++]=186,B.setUint32(a,O),a+=4),c.keyMap)for(let m=0;m<O;m++)A(c.encodeKey(I[m])),A(R[m]);else for(let m=0;m<O;m++)A(I[m]),A(R[m])}:l=>{u[a++]=185;let I=a-r;a+=2;let R=0;if(c.keyMap)for(let O in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(O))&&(A(c.encodeKey(O)),A(l[O]),R++);else for(let O in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(O))&&(A(O),A(l[O]),R++);u[I+++r]=R>>8,u[I+r]=R&255}:(l,I)=>{let R,O=s.transitions||(s.transitions=Object.create(null)),m=0,N=0,x,F;if(this.keyMap){F=Object.keys(l).map(J=>this.encodeKey(J)),N=F.length;for(let J=0;J<N;J++){let bt=F[J];R=O[bt],R||(R=O[bt]=Object.create(null),m++),O=R}}else for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&(R=O[J],R||(O[ee]&1048576&&(x=O[ee]&65535),R=O[J]=Object.create(null),m++),O=R,N++);let T=O[ee];if(T!==void 0)T&=65535,u[a++]=217,u[a++]=T>>8|224,u[a++]=T&255;else if(F||(F=O.__keys__||(O.__keys__=Object.keys(l))),x===void 0?(T=s.nextId++,T||(T=0,s.nextId=1),T>=Wt&&(s.nextId=(T=w)+1)):T=x,s[T]=F,T<w){u[a++]=217,u[a++]=T>>8|224,u[a++]=T&255,O=s.transitions;for(let J=0;J<N;J++)(O[ee]===void 0||O[ee]&1048576)&&(O[ee]=T),O=O[F[J]];O[ee]=T|1048576,i=!0}else{if(O[ee]=T,B.setUint32(a,3655335680),a+=3,m&&(b+=E*m),C.length>=Wt-w&&(C.shift()[ee]=void 0),C.push(O),ne(N+2),A(57344+T),A(F),I)return;for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&A(l[J]);return}if(N<24?u[a++]=128|N:ne(N),!I)for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&A(l[J])},P=l=>{let I;if(l>16777216){if(l-r>Gt)throw new Error("Encoded buffer would be larger than maximum buffer size");I=Math.min(Gt,Math.round(Math.max((l-r)*(l>67108864?1.25:2),4194304)/4096)*4096)}else I=(Math.max(l-r<<2,u.length-1)>>12)+1<<12;let R=new ot(I);return B=new DataView(R.buffer,0,I),u.copy?u.copy(R,0,r,l):R.set(u.slice(r,l)),a-=r,r=0,ue=R.length-10,u=R};let D=100,q=1e3;this.encodeAsIterable=function(l,I){return ve(l,I,Z)},this.encodeAsAsyncIterable=function(l,I){return ve(l,I,gt)};function*Z(l,I,R){let O=l.constructor;if(O===Object){let m=c.useRecords!==!1;m?k(l,!0):Ht(Object.keys(l).length,160);for(let N in l){let x=l[N];m||A(N),x&&typeof x=="object"?I[N]?yield*Z(x,I[N]):yield*_(x,I,N):A(x)}}else if(O===Array){let m=l.length;ne(m);for(let N=0;N<m;N++){let x=l[N];x&&(typeof x=="object"||a-r>D)?I.element?yield*Z(x,I.element):yield*_(x,I,"element"):A(x)}}else if(l[Symbol.iterator]&&!l.buffer){u[a++]=159;for(let m of l)m&&(typeof m=="object"||a-r>D)?I.element?yield*Z(m,I.element):yield*_(m,I,"element"):A(m);u[a++]=255}else ct(l)?(Ht(l.size,64),yield u.subarray(r,a),yield l,$()):l[Symbol.asyncIterator]?(u[a++]=159,yield u.subarray(r,a),yield l,$(),u[a++]=255):A(l);R&&a>r?yield u.subarray(r,a):a-r>D&&(yield u.subarray(r,a),$())}function*_(l,I,R){let O=a-r;try{A(l),a-r>D&&(yield u.subarray(r,a),$())}catch(m){if(m.iteratorNotHandled)I[R]={},a=r+O,yield*Z.call(this,l,I[R]);else throw m}}function $(){D=q,c.encode(null,ft)}function ve(l,I,R){return I&&I.chunkThreshold?D=q=I.chunkThreshold:D=100,l&&typeof l=="object"?(c.encode(null,ft),R(l,c.iterateProperties||(c.iterateProperties={}),!0)):[c.encode(l)]}async function*gt(l,I){for(let R of Z(l,I,!0)){let O=R.constructor;if(O===$t||O===Uint8Array)yield R;else if(ct(R)){let m=R.stream().getReader(),N;for(;!(N=await m.read()).done;)yield N.value}else if(R[Symbol.asyncIterator])for await(let m of R)$(),m?yield*gt(m,I.async||(I.async={})):yield c.encode(m);else yield R}}}useBuffer(e){u=e,B=new DataView(u.buffer,u.byteOffset,u.byteLength),a=0}clearSharedData(){this.structures&&(this.structures=[]),this.sharedValues&&(this.sharedValues=void 0)}updateSharedData(){let e=this.sharedVersion||0;this.sharedVersion=e+1;let r=this.structures.slice(0),n=new Zt(r,this.sharedValues,this.sharedVersion),i=this.saveShared(n,s=>(s&&s.version||0)==e);return i===!1?(n=this.getShared()||{},this.structures=n.structures||[],this.sharedValues=n.packedValues,this.sharedVersion=n.version,this.structures.nextId=this.structures.length):r.forEach((s,o)=>this.structures[o]=s),i}}function Ht(t,e){t<24?u[a++]=e|t:t<256?(u[a++]=e|24,u[a++]=t):t<65536?(u[a++]=e|25,u[a++]=t>>8,u[a++]=t&255):(u[a++]=e|26,B.setUint32(a,t),a+=4)}class Zt{constructor(e,r,n){this.structures=e,this.packedValues=r,this.version=n}}function ne(t){t<24?u[a++]=128|t:t<256?(u[a++]=152,u[a++]=t):t<65536?(u[a++]=153,u[a++]=t>>8,u[a++]=t&255):(u[a++]=154,B.setUint32(a,t),a+=4)}const Yr=typeof Blob>"u"?function(){}:Blob;function ct(t){if(t instanceof Yr)return!0;let e=t[Symbol.toStringTag];return e==="Blob"||e==="File"}function Be(t,e){switch(typeof t){case"string":if(t.length>3){if(e.objectMap[t]>-1||e.values.length>=e.maxValues)return;let n=e.get(t);if(n)++n.count==2&&e.values.push(t);else if(e.set(t,{count:1}),e.samplingPackedValues){let i=e.samplingPackedValues.get(t);i?i.count++:e.samplingPackedValues.set(t,{count:1})}}break;case"object":if(t)if(t instanceof Array)for(let n=0,i=t.length;n<i;n++)Be(t[n],e);else{let n=!e.encoder.useRecords;for(var r in t)t.hasOwnProperty(r)&&(n&&Be(r,e),Be(t[r],e))}break;case"function":console.log(t)}}const Qr=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;Vt=[Date,Set,Error,RegExp,he,ArrayBuffer,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?function(){}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?function(){}:BigInt64Array,Float32Array,Float64Array,Zt],st=[{tag:1,encode(t,e){let r=t.getTime()/1e3;(this.useTimestamp32||t.getMilliseconds()===0)&&r>=0&&r<4294967296?(u[a++]=26,B.setUint32(a,r),a+=4):(u[a++]=251,B.setFloat64(a,r),a+=8)}},{tag:258,encode(t,e){let r=Array.from(t);e(r)}},{tag:27,encode(t,e){e([t.name,t.message])}},{tag:27,encode(t,e){e(["RegExp",t.source,t.flags])}},{getTag(t){return t.tag},encode(t,e){e(t.value)}},{encode(t,e,r){lt(t,r)}},{getTag(t){if(t.constructor===Uint8Array&&(this.tagUint8Array||Pe&&this.tagUint8Array!==!1))return 64},encode(t,e,r){lt(t,r)}},ie(68,1),ie(69,2),ie(70,4),ie(71,8),ie(72,1),ie(77,2),ie(78,4),ie(79,8),ie(85,4),ie(86,8),{encode(t,e){let r=t.packedValues||[],n=t.structures||[];if(r.values.length>0){u[a++]=216,u[a++]=51,ne(4);let i=r.values;e(i),ne(0),ne(0),packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let s=0,o=i.length;s<o;s++)packedObjectMap[i[s]]=s}if(n){B.setUint32(a,3655335424),a+=3;let i=n.slice(0);i.unshift(57344),i.push(new he(t.version,1399353956)),e(i)}else e(new he(t.version,1399353956))}}];function ie(t,e){return!Qr&&e>1&&(t-=4),{tag:t,encode:function(n,i){let s=n.byteLength,o=n.byteOffset||0,d=n.buffer||n;i(Pe?je.from(d,o,s):new Uint8Array(d,o,s))}}}function lt(t,e){let r=t.byteLength;r<24?u[a++]=64+r:r<256?(u[a++]=88,u[a++]=r):r<65536?(u[a++]=89,u[a++]=r>>8,u[a++]=r&255):(u[a++]=90,B.setUint32(a,r),a+=4),a+r>=u.length&&e(a+r),u.set(t.buffer?t:new Uint8Array(t),a),a+=r}function en(t,e){let r,n=e.length*2,i=t.length-n;e.sort((s,o)=>s.offset>o.offset?1:-1);for(let s=0;s<e.length;s++){let o=e[s];o.id=s;for(let d of o.references)t[d++]=s>>8,t[d]=s&255}for(;r=e.pop();){let s=r.offset;t.copyWithin(s+n,s,i),n-=2;let o=s+n;t[o++]=216,t[o++]=28,i=s}return t}function Xt(t,e){B.setUint32(G.position+t,a-G.position-t+1);let r=G;G=null,e(r[0]),e(r[1])}let ut=new Xr({useRecords:!1});const tn=ut.encode;ut.encodeAsIterable,ut.encodeAsAsyncIterable;const Yt=512,rn=1024,ft=2048;function Qt(t){return!!t&&typeof t=="object"&&"jsonrpc"in t}class qe{closed=!1;[j];#e;constructor(e,{signal:r}={}){this[j]=new Cr(e),this.#e=r,this.#e?.addEventListener("abort",this.#t)}close(e={}){this.closed||(this.closed=!0,this.handleClose(e))}handleClose(e){this.#e?.removeEventListener("abort",this.#t),this[j].dispatchClose(e)}#t=()=>{this.close({code:1e3,reason:String(this.#e?.reason)})}}const nn=Se("appetize.io:transport:ws-ping"),sn=3e4;function on(t){let e=!0;const r=()=>{e=!0};t.on("pong",r);const n=setInterval(()=>{if(!e){clearInterval(n),nn("liveness ping went unanswered, terminating"),t.terminate();return}t.readyState===t.OPEN&&(e=!1,t.ping())},sn);return{destroy(){clearInterval(n),t.off("pong",r)},pong:r}}const ye=Se("appetize.io:trace:transport:websocket");class an extends qe{constructor(e,{signal:r}={}){super(async i=>{this.#i.send(tn(i))},{signal:r}),this.wsOrUrl=e,typeof e=="string"?(this.#i=new WebSocket(e),this.#i.binaryType="arraybuffer"):this.#i=e;const n=this.#i;if(n instanceof WebSocket?(n.addEventListener("open",this.#l),n.addEventListener("message",this.#c),n.addEventListener("error",this.#s),n.addEventListener("close",this.#a),this.#e.push(()=>{n.removeEventListener("open",this.#l),n.removeEventListener("message",this.#c),n.removeEventListener("error",this.#s),n.removeEventListener("close",this.#a)})):(n.addEventListener("open",this.#l),n.addEventListener("message",this.#c),n.addEventListener("error",this.#s),n.addEventListener("close",this.#a),this.#e.push(()=>{n.removeEventListener("open",this.#l),n.removeEventListener("message",this.#c),n.removeEventListener("error",this.#s),n.removeEventListener("close",this.#a)})),this.send=n.send.bind(n),"ping"in n){const{destroy:i,pong:s}=on(n);this.#n=s,this.#e.push(i)}}wsOrUrl;onclose;onerror;onmessage;onopen;send;get bufferedAmount(){return this.#i.bufferedAmount}get readyState(){return this.#i.readyState}#e=[];#t=!1;#r=!1;#n;#i;close({destroyWs:e=!1,...r}={}){this.closed||(this.#t=e,super.close(r))}handleClose(e){ye("close()");for(const r of this.#e.splice(0))r();if((typeof this.wsOrUrl=="string"||this.#t)&&(this.#i.close(e.code,e.reason),"terminate"in this.#i)){const r=this.#i;setTimeout(()=>{r.terminate()},100)}this.#o(),super.handleClose(e)}#o(e){this.#r||(this.#r=!0,this.onclose?.(e))}#a=e=>{ye("handleWebSocketClose()",e);try{this.#o(e)}finally{this.close()}};#s=e=>{ye("handleWebSocketError()",e),this.onerror?.(e)};#c=async e=>{ye("handleWebSocketMessage()",e),this.#n?.();const r=this.#u(e);if(!r){ye("handleWebSocketMessage() -> legacy"),this.onmessage?.(e);return}ye("handleWebSocketMessage() -> jsonrpc",r),this[j].dispatchMessage(r)};#l=e=>{ye("handleWebSocketOpen()",e),this.onopen?.(e)};#u(e){try{const r=Kt(new Uint8Array(e.data));return Qt(r)?r:null}catch{return null}}}function er(t,e,{leftEffects:r=()=>({}),notifiesLeft:n,notifiesRight:i,rightEffects:s=()=>({})}={}){const o=We(t,{}),d=We(e,{}),c=[()=>{o.unsub(),d.unsub()}],p=()=>{for(const S of c)try{S()}catch{}},w=d.rpc.client,y=o.rpc.client;c.push(t[j].addEventListener("close",()=>{p()},{once:!0}),e[j].addEventListener("close",()=>{p()},{once:!0}));const v=r(w,y);for(const S in v){const g=v[S];g&&o.rpc.addMethod(S,g)}const f=s(y,w);for(const S in f){const g=f[S];g&&d.rpc.addMethod(S,g)}return tr(o.rpc,d.rpc,{notifies:n}),tr(d.rpc,o.rpc,{notifies:i}),p}function tr(t,e,{notifies:r}={}){t.applyServerMiddleware(async(n,i)=>{const s=r?.();if(s){const{id:d,...c}=i;s[j].send(c)}if(t.hasMethod(i.method))return await n(i);if(!i.id)return e.notify(i.method,i.params),null;const o=await e.request(i.method,i.params);return{id:i.id,jsonrpc:_e.JSONRPC,result:o}})}function le(t,...e){t.notify(e[0],e[1],e[2])}function dt(){const t=new qe(async r=>{e[j].dispatchMessage(r)}),e=new qe(async r=>{t[j].dispatchMessage(r)});return t[j].addEventListener("close",()=>{e.close()},{once:!0}),e[j].addEventListener("close",()=>{t.close()},{once:!0}),[t,e]}function rr(t,e){const r=[],n=()=>{for(const i of r)i()};r.push(t[j].addEventListener("message",i=>e[j].send(i.detail))),r.push(t[j].addEventListener("close",n,{once:!0})),r.push(e[j].addEventListener("message",i=>t[j].send(i.detail))),r.push(e[j].addEventListener("close",n,{once:!0}))}const we=Se("appetize.io:trace:transport:iframe");class nr extends qe{onmessage;#e;#t;constructor(e,{origin:r="*",signal:n}={}){super(async i=>{e.postMessage(i,this.#e)},{signal:n}),this.#t=e,this.#e=r,window.addEventListener("message",this.#r)}postMessage(e,r,n){we("postMessage(legacy)",{message:e,targetOrigin:r,transfer:n}),this.#t.postMessage(e,r??this.#e,n)}handleClose(e){we("close()"),window.removeEventListener("message",this.#r),super.handleClose(e)}#r=async e=>{if(we("handleMessage()",e),e.source!==this.#t||(we("handleMessage() -> source ok"),this.#e!=="*"&&e.origin!==this.#e))return;we("handleMessage() -> origin ok");const r=e.data;if(!Qt(r)){we("handleMessage() -> legacy"),this.onmessage?.(e);return}we("handleMessage() -> jsonrpc"),this[j].dispatchMessage(r)}}function ht(){let t,e;return{promise:new Promise((n,i)=>{e=n,t=i}),reject:t,resolve:e}}const cn=2*1024*1024,ir=Se("appetize:client:acked-writable-stream");class ln{unacked=0;#e;#t;#r;#n;#i=[];#o;constructor(e){this.#r=e,this.#o=e.window??cn}abort(e){this.#s(e),this.#r.onAbort?.(e)}async close(){await this.#c(()=>this.unacked===0),this.#r.onClose?.()}fail(e){this.#s(e)&&this.#r.onError?.(e)}start(e){this.#e=e}write(e){const r=e.byteLength;return this.unacked+=r,this.#r.send(e).then(()=>{this.unacked-=r,this.#n&&(this.#n.acked+=r),this.#a()},n=>{this.fail(n)}),this.unacked>=this.#o&&!this.#n&&(this.#n={acked:0,at:performance.now()},ir("window full: %d bytes unacked, writes stalled",this.unacked)),this.#c(()=>this.unacked<this.#o)}#a(){if(this.#n&&this.unacked<=this.#o/2){const e=performance.now()-this.#n.at;ir("pressure relieved after %dms: %d bytes acked, %s MB/s",Math.round(e),this.#n.acked,(this.#n.acked/Math.max(e,1)/1e3).toFixed(2)),this.#n=void 0}this.#i=this.#i.filter(e=>e.until()?(e.resolve(void 0),!1):!0)}#s(e){if(this.#t)return!1;this.#t={reason:e},this.#e.error(e);const r=this.#i;this.#i=[];for(const n of r)n.reject(e);return!0}#c(e){if(e())return Promise.resolve();const r={...ht(),until:e};return this.#i.push(r),r.promise}}class un extends WritableStream{get unacked(){return this.#e.unacked}#e;constructor(e){const r=new ln(e);super({abort:n=>{r.abort(n)},close:()=>r.close(),start:n=>{r.start(n)},write:n=>r.write(n)}),this.#e=r}fail(e){this.#e.fail(e)}}const fn=1024*1024;class dn{#e;#t=!1;#r;#n;constructor(e){this.#r=e}cancel(e){this.#i(),this.#r?.(e)}close(){this.#i()&&this.#e.close()}error(e){this.#i()&&this.#e.error(e)}pull(){const e=this.#n;this.#n=void 0,e?.resolve(void 0)}async push(e){if(this.#t)return;this.#n??=ht();const{promise:r}=this.#n;this.#e.enqueue(e),await r}start(e){this.#e=e}#i(){return this.#t?!1:(this.#t=!0,this.pull(),!0)}}class hn extends ReadableStream{#e;constructor({highWaterMark:e=fn,onCancel:r}={}){const n=new dn(r);super({cancel:i=>{n.cancel(i)},pull:()=>{n.pull()},start:i=>{n.start(i)}},new ByteLengthQueuingStrategy({highWaterMark:e})),this.#e=n}close(){this.#e.close()}error(e){this.#e.error(e)}push(e){return this.#e.push(e)}}class pn{closed;readable;writable;#e=[];#t;#r;#n;#i;#o;#a="starting";constructor(e,{onClose:r,receiveBuffer:n,sendWindow:i,signal:s}){if(this.#o=e,this.#t=ht(),this.closed=this.#t.promise,this.closed.catch(yn),this.#n=new hn({highWaterMark:n,onCancel:()=>{this.#s(void 0)}}),this.readable=this.#n,this.#i=new un({onAbort:()=>{this.#s(void 0)},onClose:()=>{this.#s(void 0)},onError:o=>{this.#s(o)},send:o=>e.request("appetizeio.device.server.debug.adbTunnel.data",{data:o}),window:i}),this.writable=this.#i,s){const o=()=>{this.#s(s.reason)};s.addEventListener("abort",o,{once:!0}),this.#e.push(()=>{s.removeEventListener("abort",o)})}this.#e.push(()=>{r(this)})}close=()=>{this.#s(void 0)};detach(){this.#s(void 0,{notifyServer:!1})}async handleData(e){this.#a==="open"&&await this.#n.push(e)}handleStopped({error:e}){this.#a==="open"&&this.#s(e?new Error(e):void 0)}async start(){try{await this.#o.request("appetizeio.device.server.debug.adbTunnel.start",void 0)}catch(e){throw this.#s(e),e}if(this.#a==="closed")throw this.#r?this.#r:new Error("The adb tunnel closed before it started");this.#a="open"}async[Symbol.asyncDispose](){this.close();try{await this.closed}catch{}}#s(e,{notifyServer:r=!0}={}){if(this.#a!=="closed"){this.#a="closed",this.#r=e,r&&le(this.#o,"appetizeio.device.server.debug.adbTunnel.stop",void 0),e?(this.#n.error(e),this.#i.fail(e)):(this.#n.close(),this.#i.fail(new Error("The adb tunnel has stopped")));for(const n of this.#e)n();e?this.#t.reject(e):this.#t.resolve(void 0)}}}function yn(){}class wn{readable;ready;#e=[];#t=!1;#r;#n;#i;constructor({label:e,onClose:r,signal:n}){this.#n=e,this.ready=new Promise((s,o)=>{this.#i={reject:o,resolve:s}});let i;if(this.readable=new ReadableStream({cancel:()=>{this.#a()},start:s=>{i=s}}),!i)throw new Error("ReadableStream controller was not initialized");if(this.#r=i,n){const s=()=>{this.fail(n.reason)};n.addEventListener("abort",s,{once:!0}),this.#e.push(()=>{n.removeEventListener("abort",s)})}this.#e.push(()=>{r(this)})}close=()=>{this.#o()};fail(e){this.#o(e)}handleItem(e){this.#r.enqueue(e)}markReady(){if(!this.#i)return;const{resolve:e}=this.#i;this.#i=void 0,e(this)}async*[Symbol.asyncIterator](){const e=this.readable.getReader();try{for(let r=await e.read();!r.done;r=await e.read())yield r.value}finally{await e.cancel()}}#o(e){this.#t||(this.#r.close(),this.#a(e))}#a(e){this.#t=!0;for(const r of this.#e)r();this.#i?.reject(e??new Error(`${this.#n} closed before it started`)),this.#i=void 0}}class vn{get subscribers(){return this.#r}#e;#t;#r=new Set;constructor(e){this.#e=e}close(){this.#t=void 0;for(const e of[...this.#r])e.close();this.#r.clear()}add(e){this.#r.add(e)}ensureStarted(){return this.#t||(this.#t=(async()=>{try{return await this.#e.start()}catch(e){throw this.#t=void 0,e}})()),this.#t}release(e){this.#r.delete(e),!(this.#r.size>0||!this.#t)&&(this.#t=void 0,this.#e.stop())}}class sr extends vn{#e;constructor(e){super({start:e.start,stop:e.stop}),this.#e=e.label}async createStream({signal:e}={}){e?.throwIfAborted();const r=new wn({label:this.#e,onClose:n=>{this.release(n)},signal:e});this.add(r);try{await this.ensureStarted(),r.markReady()}catch(n){r.fail(n)}return await r.ready}handleNotification(e){for(const r of this.subscribers)r.handleItem(e)}}class gn{#e;#t;#r;#n;constructor(e){this.#n=e,this.#t=new sr({label:"Log stream",start:()=>e.request("appetizeio.device.server.debug.log.start"),stop:()=>{le(e,"appetizeio.device.server.debug.log.stop",void 0)}}),this.#r=new sr({label:"Proxy intercept stream",start:()=>e.request("appetizeio.device.server.debug.proxyIntercept.start"),stop:()=>{le(e,"appetizeio.device.server.debug.proxyIntercept.stop",void 0)}})}close(){this.#e?.detach(),this.#t.close(),this.#r.close()}async createAdbTunnel({signal:e}={}){e?.throwIfAborted(),this.#e?.close();const r=new pn(this.#n,{onClose:()=>{this.#e=void 0},signal:e});return this.#e=r,await r.start(),r}async createLogStream(e){return await this.#t.createStream(e)}async createProxyInterceptStream(e){return await this.#r.createStream(e)}async handleAdbTunnelData({data:e}){await this.#e?.handleData(e)}handleAdbTunnelStopped(e){this.#e?.handleStopped(e)}handleLogEntry(e){this.#t.handleNotification(e)}handleProxyInterceptEvent(e){this.#r.handleNotification(e)}}function pt(t){return{...bn(t),index:t.index,within:t.within?pt(t.within):void 0}}function bn(t){switch(t.by){case"testId":return{by:"testId",testId:t.testId};case"text":return{by:"text",text:mn(t.text)}}}function mn(t){return typeof t=="string"?{kind:"exact",value:t}:{flags:t.flags,kind:"regex",source:t.source}}const Sn=400,or=["byTestId","byText","duration","index","x","y"],Cn=new Set(or),En=/^-?(?:\d+(?:\.\d*)?|\.\d+)$/u,Rn=/^[a-z]$/u,yt=/^\s$/u;class K extends SyntaxError{constructor(e,r,n){super(`${e} at position ${String(r)}`,{cause:n})}}class On{#e=0;#t;constructor(e){this.#t=e}parse(){const e=[];for(;this.#e<this.#t.length;){const r=this.#s();if(yt.test(r))this.#e++;else if(r===">"){if(this.#t.charAt(this.#e+1)===">")throw new K('Force press ">>" is not supported',this.#e);this.#e++,e.push({kind:"down"})}else if(r==="/")this.#e++,e.push({kind:"up"});else if(r==="{")e.push(this.#o());else{const[n]=this.#t.slice(this.#e,this.#e+2);throw new K(`Unexpected ${JSON.stringify(n)}; write selectors as {...}`,this.#e)}}return e}#r(){const e=this.#e,r=this.#c(n=>n!=="="&&!wt(n));if(this.#s()!=="=")return{kind:"bare",name:r,offset:e};if(r.length===0)throw new K('Expected an attribute name before "="',e);return this.#e++,{kind:"attribute",name:r,offset:e,value:this.#a()}}#n(){const e=this.#e;this.#e++;let r="";for(;;){const n=this.#s();if(this.#e++,n==='"')return r;if(n==="\\"){const i=this.#s();if(i!=='"'&&i!=="\\"&&i!=="")throw new K('Only \\" and \\\\ escapes are supported',this.#e-1);this.#e++,r+=i}else{if(n==="")throw new K("Unclosed string",e);r+=n}}}#i(){const e=this.#e;this.#e++;let r="",n=!1;for(;;){const s=this.#s();if(s==="")throw new K("Unclosed regex",e);if(this.#e++,s==="/"&&!n)break;r+=s,s==="\\"?(r+=this.#s(),this.#e++):s==="["?n=!0:s==="]"&&(n=!1)}const i=this.#c(s=>Rn.test(s));try{return new RegExp(r,i)}catch(s){throw new K(`Invalid regex /${r}/${i}`,e,s)}}#o(){const e=this.#e;this.#e++;let r;const n={offsets:{}};for(let i=0;;i++){this.#l();const s=this.#s();if(s==="")throw new K('Unclosed "{"',e);if(s==="}"){if(this.#e++,i===0)throw new K('Expected a selector or wait in "{}"',e);return r===void 0?In(n,e):{duration:r,kind:"wait"}}const o=this.#r();if(i===0&&o.name==="wait")r=o.kind==="attribute"?ar(o.value,"wait"):Sn;else{if(r!==void 0)throw new K('"wait" takes no other attributes',o.offset);Mn(n,o,i)}}}#a(){const e=this.#e,r=this.#s();let n;if(r==='"')n={kind:"quoted",offset:e,text:this.#n()};else if(r==="/")n={kind:"regex",offset:e,regex:this.#i()};else{const i=this.#c(s=>!wt(s));if(i.length===0)throw new K('Expected a value after "="',e);return{kind:"raw",offset:e,text:i}}if(!wt(this.#s()))throw new K('Expected a space or "}" after the value',this.#e);return n}#s(){return this.#t.charAt(this.#e)}#c(e){const r=this.#e;for(;this.#e<this.#t.length&&e(this.#s());)this.#e++;return this.#t.slice(r,this.#e)}#l(){this.#c(e=>yt.test(e))}}function An(t){return new On(t).parse()}function Mn(t,e,r){const{name:n,offset:i}=e;if(e.kind==="attribute"){vt(t,n,i,e.value);return}if(!n.includes(","))throw new K(`Expected key=value, got ${JSON.stringify(n)}`,i);if(r>0)throw new K("Write the x,y position first",i);const[s,o,...d]=n.split(",");if(d.length>0)throw new K("Expected a screen position as x,y",i);const c=i+s.length+1;vt(t,"x",i,{kind:"raw",offset:i,text:s}),vt(t,"y",c,{kind:"raw",offset:c,text:o})}function Pn(t){return Cn.has(t)}function wt(t){return t===""||t==="}"||yt.test(t)}function vt(t,e,r,n){if(!Pn(e))throw new K(`Unknown attribute ${JSON.stringify(e)}; expected one of ${or.join(", ")}`,r);if(t.offsets[e]!==void 0)throw new K(`Duplicate attribute ${JSON.stringify(e)}`,r);switch(t.offsets[e]=r,e){case"byTestId":case"byText":if(t.byText!==void 0||t.byTestId!==void 0)throw new K("Only one of byText and byTestId may be given",r);e==="byText"?t.byText=xn(n):t.byTestId=Nn(n);return;default:t[e]=ar(n,e)}}function In(t,e){return{duration:t.duration,kind:"move",to:kn(t,e)}}function ar(t,e){if(t.kind!=="raw"||!En.test(t.text))throw new K(`"${e}" takes a number`,t.offset);return Number(t.text)}function kn(t,e){const{byTestId:r,byText:n,index:i,offsets:s,x:o,y:d}=t;if(n!==void 0)return{by:"text",index:i,text:n,x:o,y:d};if(r!==void 0)return{by:"testId",index:i,testId:r,x:o,y:d};if(s.index!==void 0)throw new K('"index" needs byText or byTestId',s.index);if(o===void 0||d===void 0)throw new K("A screen position needs x and y",e);return{by:"position",x:o,y:d}}function Nn(t){if(t.kind==="regex")throw new K('"byTestId" takes a string',t.offset);return t.text}function xn(t){return t.kind==="regex"?t.regex:t.text}function Ie(t){return t.by==="position"?{by:"position",x:t.x,y:t.y}:{...pt(t),x:t.x,y:t.y}}function _n(t){return t.map(e=>e.kind==="move"?{duration:e.duration,kind:"move",to:Ie(e.to)}:e)}function Fn(t){return{press:e=>{le(t,"appetizeio.device.server.keyboard.press",{key:e})}}}function Tn({onRequest:t,parent:e,proxyInlet:r,signal:n}){const i=new nr(e,{signal:n}),s=[()=>{i.close()}];return rr(i,r),t&&s.push(Fe(i,o=>{t(o,{source:"parent"})})),{cleanup:()=>{for(const o of s)o()},notifies:()=>e===globalThis.window?void 0:i}}const Ln="@appetizeio/rpc:playwrightAdapter",ze=Symbol.for(Ln);function Un(t){window[ze]&&console.warn("playwright exposed more than once, overwriting previous adapter");const e={send(r){t[j].send(r)},subscribe(r){return t[j].addEventListener("message",n=>{r(n.detail)})}};return window[ze]=e,()=>{window[ze]===e&&delete window[ze]}}function Jn({onRequest:t,proxyInlet:e}){const[r,n]=dt(),s=[Un(n),()=>{r.close()}];return rr(r,e),t&&s.push(Fe(r,o=>{t(o,{source:"parent"})})),{cleanup:()=>{for(const o of s)o()},notifies:()=>r}}function Dn(t){return"to"in t?{from:Ie(t.from),kind:"path",to:Ie(t.to)}:{direction:t.direction,distance:t.distance,from:t.from?Ie(t.from):void 0,kind:"direction"}}function jn(t){return{down:(e,r)=>{le(t,"appetizeio.device.server.touch.down",{x:e,y:r})},move:(e,r)=>{le(t,"appetizeio.device.server.touch.move",{x:e,y:r})},up:(e,r)=>{le(t,"appetizeio.device.server.touch.up",{x:e,y:r})}}}const Bn=new Set(Ge),qn=/^(?<key>[A-Za-z]+)>(?<repeat>\d+)\/$/u,zn=/(\{\{|\{[^{}]*\})/u;function Kn(t){const e=[];let r="";function n(){r.length>0&&(e.push({kind:"text",text:r}),r="")}for(const[i,s]of t.split(zn).entries())if(i%2===0){if(s.includes("{"))throw new Error(`Unclosed "{" in ${JSON.stringify(t)}`);r+=s}else s==="{{"?r+="{":(n(),e.push($n(s.slice(1,-1))));return n(),e}function Vn(t,e){if(!Bn.has(t))throw e.endsWith(">")?new Error(`Holding a key is not supported: {${e}}`):e.startsWith("/")?new Error(`Releasing a key is not supported: {${e}}`):new Error(`{${e}} does not name a supported key. Supported: ${Ge.join(", ")}. Type characters as text, and escape a literal "{" as "{{".`)}function $n(t){const e=qn.exec(t)?.groups,r=e?.key??t;if(Vn(r,t),!e)return{key:r,kind:"press"};const n=Number(e.repeat);if(n<1)throw new Error(`Repeat for {${t}} must be at least 1`);return{key:r,kind:"press",repeat:n}}const Wn=Symbol("@appetizeio/client:v1Compat");function cr(t){return t?.[Wn]}class Gn{readable;ready;get dimensions(){return this.#n}#e=[];#t=!1;#r;#n;#i;#o;constructor({onClose:e,requestKeyFrame:r,signal:n}){this.#i=r,this.ready=new Promise((s,o)=>{this.#o={reject:o,resolve:s}});let i;if(this.readable=new ReadableStream({cancel:()=>{this.#s()},start:s=>{i=s}}),!i)throw new Error("ReadableStream controller was not initialized");if(this.#r=i,n){const s=()=>{this.fail(n.reason)};n.addEventListener("abort",s,{once:!0}),this.#e.push(()=>{n.removeEventListener("abort",s)})}this.#e.push(()=>{e(this)})}close=()=>{this.#a()};fail(e){this.#a(e)}handleChunk(e){if(this.#o){if(e.type!=="key")return;const{resolve:r}=this.#o;this.#o=void 0,this.#n={height:e.height,width:e.width},r(this)}else e.type==="key"&&(this.#n={height:e.height,width:e.width});this.#r.enqueue(e)}requestKeyFrame=()=>{this.#t||this.#i()};async*[Symbol.asyncIterator](){const e=this.readable.getReader();try{for(let r=await e.read();!r.done;r=await e.read())yield r.value}finally{await e.cancel()}}#a(e){this.#t||(this.#r.close(),this.#s(e))}#s(e){this.#t=!0;for(const r of this.#e)r();this.#o?.reject(e??new Error("Video stream closed before the first key chunk")),this.#o=void 0}}class Hn{#e=!1;#t;#r;#n=new Set;constructor(e){this.#t=e}close(){this.#r=void 0;for(const e of[...this.#n])e.close()}async createStream({signal:e}={}){e?.throwIfAborted();const r=new Gn({onClose:n=>{this.#o(n)},requestKeyFrame:()=>{this.#a()},signal:e});this.#n.add(r);try{await this.#i()}catch(n){r.fail(n)}return await r.ready}handleChunk(e){e.type==="key"&&(this.#e=!1);for(const r of this.#n)r.handleChunk(e)}#i(){return this.#r?(this.#a(),this.#r):(this.#e=!0,this.#r=(async()=>{try{await this.#t.request("appetizeio.device.server.video.start")}catch(e){throw this.#r=void 0,e}})(),this.#r)}#o(e){this.#n.delete(e),!(this.#n.size>0||!this.#r)&&(this.#r=void 0,le(this.#t,"appetizeio.device.server.video.stop",void 0))}#a(){this.#e||(this.#e=!0,le(this.#t,"appetizeio.device.server.video.requestKeyFrame",void 0))}}class Zn{debug;keyboard;touch;video;#e;#t=[];#r;constructor(e,r={}){const n=cr(r)??{},{baseUrl:i,onClose:s,signal:o}=r;this.#e=i?Xn(i):void 0;const{onRequest:d,parent:c,proxyRequest:p}=n,w=Yn(d);o?.addEventListener("abort",this.close);const[y,v]=dt(),[f,S]=dt();this.#t.push(()=>{y.close(),v.close(),f.close(),S.close()}),this.#t.push(er(S,e,{leftEffects:p}));const g=c==="playwright"?Jn({onRequest:w,proxyInlet:f}):c?Tn({onRequest:w,parent:c,proxyInlet:f,signal:o}):void 0;g&&this.#t.push(g.cleanup),this.#t.push(er(v,f,{notifiesLeft:g?.notifies}));const{client:C,unsub:b}=Or(y,{"appetizeio.device.client.debug.adbTunnel.data":k=>E.handleAdbTunnelData(k),"appetizeio.device.client.debug.adbTunnel.stopped":async k=>{E.handleAdbTunnelStopped(k)},"appetizeio.device.client.debug.log.entry":async k=>{E.handleLogEntry(k)},"appetizeio.device.client.debug.proxyIntercept.event":async k=>{E.handleProxyInterceptEvent(k)},"appetizeio.device.client.video.chunk":async k=>{A.handleChunk(k)}});this.#r=C,this.#t.push(b);const E=new gn(this.#r);this.#t.push(()=>{E.close()});const A=new Hn(this.#r);this.#t.push(()=>{A.close()}),this.debug=E,this.keyboard=Fn(this.#r),this.touch=jn(this.#r),this.video=A,w&&(this.#t.push(Fe(v,k=>{w(k,{source:"self"})})),e instanceof nr&&this.#t.push(Fe(e,k=>{w(k,{source:"iframe"})}))),this.#t.push(()=>s?.())}async clearKeychain(){await this.#r.request("appetizeio.device.server.clearKeychain")}close=()=>{for(const e of this.#t)try{e()}catch(r){console.error("Device cleanup error:",r)}};async fold(e){await this.#r.request("appetizeio.device.server.fold",{hinge:e})}async gesture(e,r){await this.#r.request("appetizeio.device.server.gesture",{options:r,steps:_n(typeof e=="string"?An(e):e)})}async inspect(e,r){return await this.#r.request("appetizeio.device.server.inspect",{options:r,selector:e?pt(e):void 0})}async open(e){new URL(e),await this.#r.request("appetizeio.device.server.open",{url:e})}async press(e){await this.#r.request("appetizeio.device.server.press",{action:e})}async rotate(e){await this.#r.request("appetizeio.device.server.rotate",{orientation:e})}async screenshot(){const e=await this.#r.request("appetizeio.device.server.screenshot"),r=this.#e?new URL(e.url,this.#e).href:e.url,n=await fetch(r);if(!n.ok)throw new Error(`Screenshot download failed: ${String(n.status)} ${n.statusText}`);const i=n.headers.get("content-type")??"application/octet-stream";return{data:new Uint8Array(await n.arrayBuffer()),mimeType:i}}async swipe(e,r){await this.#r.request("appetizeio.device.server.swipe",{gesture:Dn(e),options:r})}async tap(e,r){await this.#r.request("appetizeio.device.server.tap",{options:r,selector:Ie(e)})}async type(e,r){await this.#r.request("appetizeio.device.server.type",{options:r,steps:Kn(e)})}}function Xn(t){const e=new URL(t);return e.protocol==="ws:"?e.protocol="http:":e.protocol==="wss:"&&(e.protocol="https:"),e.href}const Yn=t=>{if(t)return(e,r)=>{e.method.startsWith("appetizeio.device.server.")&&t(e,r)}};function Qn(t){return typeof t=="object"&&t!==null}function ei(t){try{const e=Kt(new Uint8Array(t.data));if(Qn(e)&&typeof e.name=="string")return{name:e.name,payload:"payload"in e?e.payload:void 0}}catch{}}async function ti(t,e={}){const r=e.baseUrl??(typeof t=="string"?new URL(t).origin:void 0),n=typeof t=="string"?new an(t,{signal:e.signal}):t,i=new Zn(n,{...e,baseUrl:r});return typeof t=="string"&&await ri(n,i,e),i}function ri(t,e,r){const n=cr(r)?.onLegacyMessage;return new Promise((i,s)=>{t.onopen=()=>{i()},t.onclose=()=>{e.close(),r.signal?.aborted?s(r.signal.reason):s(new Error("The websocket was closed before the device connection was established"))},t.onerror=s,t.onmessage=o=>{const d=ei(o);d&&n?.(d)}})}async function ni(t,e){const r=t.querySelector("canvas");if(!(r instanceof HTMLCanvasElement))throw new Error("Canvas unavailable");const n=e.protocol==="https:"?"wss:":"ws:",i=await ti(`${n}//${e.host}/ws`);Nr(i,r),xr(i,r),await _r(i,r)}await ni(document,location);
|
|
2
2
|
</script></body></html>
|
package/stream-DqsoC5l1.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import je from"debug";import{JSONRPCServerAndClient as yr,JSONRPCServer as wr,JSONRPCClient as gr,JSONRPC as br}from"json-rpc-2.0";import{writeFileSync as mr,renameSync as Er,mkdirSync as At,readFileSync as Sr,rmSync as vr,readdirSync as Ar}from"node:fs";import{sep as xr,join as re}from"node:path";import{homedir as xt}from"node:os";import{Transform as kr}from"stream";import{createRequire as Ir}from"module";import{connect as Or}from"node:net";class Tr extends Event{code;reason;wasClean;constructor(e,r={}){super(e,r),this.code=r.code??0,this.reason=r.reason??"",this.wasClean=r.wasClean??!1}}function Mr(t,e){const r="CloseEvent"in globalThis?globalThis.CloseEvent:Tr;return new r(t,e)}class Rr{#e=new EventTarget;addEventListener(e,r,s){return this.#e.addEventListener(e,r,s),()=>{this.#e.removeEventListener(e,r,s)}}removeEventListener(e,r,s){this.#e.removeEventListener(e,r,s)}dispatchEvent(e){return this.#e.dispatchEvent(e)}}const R=Symbol.for("@appetizeio/rpc:rpcMethods");class Ur extends Rr{send;constructor(e){super(),this.send=e}dispatchClose(e){return this.dispatchEvent(Mr("close",e))}dispatchMessage(e){return this.dispatchEvent(new CustomEvent("message",{detail:e}))}}const Pr="@appetizeio/rpc:playwrightAdapter";class be{closed=!1;[R];#e;constructor(e,{signal:r}={}){this[R]=new Ur(e),this.#e=r,this.#e?.addEventListener("abort",this.#t)}close(e={}){this.closed||(this.closed=!0,this.handleClose(e))}handleClose(e){this.#e?.removeEventListener("abort",this.#t),this[R].dispatchClose(e)}#t=()=>{this.close({code:1e3,reason:String(this.#e?.reason)})}}const Me=Symbol.for(Pr);function Cr(t){window[Me]&&console.warn("playwright exposed more than once, overwriting previous adapter");const e={send(r){t[R].send(r)},subscribe(r){return t[R].addEventListener("message",s=>{r(s.detail)})}};return window[Me]=e,()=>{window[Me]===e&&delete window[Me]}}const kt=je("appetize.io:error:rpc");function $e(t,e){const r=new yr(new wr({errorListener:kt}),Lr(t),{errorListener:kt}),s=t[R].addEventListener("message",({detail:i})=>{r.receiveAndSend(i)}),n=t[R].addEventListener("close",()=>{s(),r.rejectAllPendingRequests("Transport closed")},{once:!0});for(const i in e){const l=e[i];l&&r.addMethod(i,l.bind(e))}return{rpc:r,unsub:()=>{s(),n()}}}function It(t,e){const{rpc:r,unsub:s}=$e(t,e);return{client:r.client,unsub:s}}function Re(t,e){const r=t[R].addEventListener("message",({detail:n})=>{if("method"in n)try{e({method:n.method,param:n.params})}catch{}}),s=t[R].addEventListener("close",r,{once:!0});return()=>{r(),s()}}function Lr(t){return new gr(t[R].send.bind(t[R]),()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)+1)}function Ve(t,e,{leftEffects:r=()=>({}),notifiesLeft:s,notifiesRight:n,rightEffects:i=()=>({})}={}){const l=$e(t,{}),y=$e(e,{}),p=[()=>{l.unsub(),y.unsub()}],v=()=>{for(const C of p)try{C()}catch{}},m=y.rpc.client,T=l.rpc.client;p.push(t[R].addEventListener("close",()=>{v()},{once:!0}),e[R].addEventListener("close",()=>{v()},{once:!0}));const M=r(m,T);for(const C in M){const P=M[C];P&&l.rpc.addMethod(C,P)}const L=i(T,m);for(const C in L){const P=L[C];P&&y.rpc.addMethod(C,P)}return Ot(l.rpc,y.rpc,{notifies:s}),Ot(y.rpc,l.rpc,{notifies:n}),v}function Ot(t,e,{notifies:r}={}){t.applyServerMiddleware(async(s,n)=>{const i=r?.();if(i){const{id:y,...p}=n;i[R].send(p)}if(t.hasMethod(n.method))return await s(n);if(!n.id)return e.notify(n.method,n.params),null;const l=await e.request(n.method,n.params);return{id:n.id,jsonrpc:br,result:l}})}function Y(t,...e){t.notify(e[0],e[1],e[2])}const Nr=(...t)=>It(...t),Ke=["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Enter","Tab"],_r=["landscapeLeft","landscapeRight","portrait","upsideDown"];function qe(){const t=new be(async r=>{e[R].dispatchMessage(r)}),e=new be(async r=>{t[R].dispatchMessage(r)});return t[R].addEventListener("close",()=>{e.close()},{once:!0}),e[R].addEventListener("close",()=>{t.close()},{once:!0}),[t,e]}function Tt(t,e){const r=[],s=()=>{for(const n of r)n()};r.push(t[R].addEventListener("message",n=>e[R].send(n.detail))),r.push(t[R].addEventListener("close",s,{once:!0})),r.push(e[R].addEventListener("message",n=>t[R].send(n.detail))),r.push(e[R].addEventListener("close",s,{once:!0}))}function Je(t){return!!t&&typeof t=="object"&&"jsonrpc"in t}const se=je("appetize.io:trace:transport:iframe");class Mt extends be{onmessage;#e;#t;constructor(e,{origin:r="*",signal:s}={}){super(async n=>{e.postMessage(n,this.#e)},{signal:s}),this.#t=e,this.#e=r,window.addEventListener("message",this.#r)}postMessage(e,r,s){se("postMessage(legacy)",{message:e,targetOrigin:r,transfer:s}),this.#t.postMessage(e,r??this.#e,s)}handleClose(e){se("close()"),window.removeEventListener("message",this.#r),super.handleClose(e)}#r=async e=>{if(se("handleMessage()",e),e.source!==this.#t||(se("handleMessage() -> source ok"),this.#e!=="*"&&e.origin!==this.#e))return;se("handleMessage() -> origin ok");const r=e.data;if(!Je(r)){se("handleMessage() -> legacy"),this.onmessage?.(e);return}se("handleMessage() -> jsonrpc"),this[R].dispatchMessage(r)}}function Ue(){let t,e;return{promise:new Promise((s,n)=>{e=s,t=n}),reject:t,resolve:e}}const Dr=2*1024*1024,Rt=je("appetize:client:acked-writable-stream");class Br{unacked=0;#e;#t;#r;#s;#n=[];#o;constructor(e){this.#r=e,this.#o=e.window??Dr}abort(e){this.#i(e),this.#r.onAbort?.(e)}async close(){await this.#c(()=>this.unacked===0),this.#r.onClose?.()}fail(e){this.#i(e)&&this.#r.onError?.(e)}start(e){this.#e=e}write(e){const r=e.byteLength;return this.unacked+=r,this.#r.send(e).then(()=>{this.unacked-=r,this.#s&&(this.#s.acked+=r),this.#a()},s=>{this.fail(s)}),this.unacked>=this.#o&&!this.#s&&(this.#s={acked:0,at:performance.now()},Rt("window full: %d bytes unacked, writes stalled",this.unacked)),this.#c(()=>this.unacked<this.#o)}#a(){if(this.#s&&this.unacked<=this.#o/2){const e=performance.now()-this.#s.at;Rt("pressure relieved after %dms: %d bytes acked, %s MB/s",Math.round(e),this.#s.acked,(this.#s.acked/Math.max(e,1)/1e3).toFixed(2)),this.#s=void 0}this.#n=this.#n.filter(e=>e.until()?(e.resolve(void 0),!1):!0)}#i(e){if(this.#t)return!1;this.#t={reason:e},this.#e.error(e);const r=this.#n;this.#n=[];for(const s of r)s.reject(e);return!0}#c(e){if(e())return Promise.resolve();const r={...Ue(),until:e};return this.#n.push(r),r.promise}}class Fr extends WritableStream{get unacked(){return this.#e.unacked}#e;constructor(e){const r=new Br(e);super({abort:s=>{r.abort(s)},close:()=>r.close(),start:s=>{r.start(s)},write:s=>r.write(s)}),this.#e=r}fail(e){this.#e.fail(e)}}const zr=1024*1024;class jr{#e;#t=!1;#r;#s;constructor(e){this.#r=e}cancel(e){this.#n(),this.#r?.(e)}close(){this.#n()&&this.#e.close()}error(e){this.#n()&&this.#e.error(e)}pull(){const e=this.#s;this.#s=void 0,e?.resolve(void 0)}async push(e){if(this.#t)return;this.#s??=Ue();const{promise:r}=this.#s;this.#e.enqueue(e),await r}start(e){this.#e=e}#n(){return this.#t?!1:(this.#t=!0,this.pull(),!0)}}class $r extends ReadableStream{#e;constructor({highWaterMark:e=zr,onCancel:r}={}){const s=new jr(r);super({cancel:n=>{s.cancel(n)},pull:()=>{s.pull()},start:n=>{s.start(n)}},new ByteLengthQueuingStrategy({highWaterMark:e})),this.#e=s}close(){this.#e.close()}error(e){this.#e.error(e)}push(e){return this.#e.push(e)}}class Vr{closed;readable;writable;#e=[];#t;#r;#s;#n;#o;#a="starting";constructor(e,{onClose:r,receiveBuffer:s,sendWindow:n,signal:i}){if(this.#o=e,this.#t=Ue(),this.closed=this.#t.promise,this.closed.catch(Kr),this.#s=new $r({highWaterMark:s,onCancel:()=>{this.#i(void 0)}}),this.readable=this.#s,this.#n=new Fr({onAbort:()=>{this.#i(void 0)},onClose:()=>{this.#i(void 0)},onError:l=>{this.#i(l)},send:l=>e.request("appetizeio.device.server.debug.adbTunnel.data",{data:l}),window:n}),this.writable=this.#n,i){const l=()=>{this.#i(i.reason)};i.addEventListener("abort",l,{once:!0}),this.#e.push(()=>{i.removeEventListener("abort",l)})}this.#e.push(()=>{r(this)})}close=()=>{this.#i(void 0)};detach(){this.#i(void 0,{notifyServer:!1})}async handleData(e){this.#a==="open"&&await this.#s.push(e)}handleStopped({error:e}){this.#a==="open"&&this.#i(e?new Error(e):void 0)}async start(){try{await this.#o.request("appetizeio.device.server.debug.adbTunnel.start",void 0)}catch(e){throw this.#i(e),e}if(this.#a==="closed")throw this.#r?this.#r:new Error("The adb tunnel closed before it started");this.#a="open"}async[Symbol.asyncDispose](){this.close();try{await this.closed}catch{}}#i(e,{notifyServer:r=!0}={}){if(this.#a!=="closed"){this.#a="closed",this.#r=e,r&&Y(this.#o,"appetizeio.device.server.debug.adbTunnel.stop",void 0),e?(this.#s.error(e),this.#n.fail(e)):(this.#s.close(),this.#n.fail(new Error("The adb tunnel has stopped")));for(const s of this.#e)s();e?this.#t.reject(e):this.#t.resolve(void 0)}}}function Kr(){}class qr{readable;ready;#e=[];#t=!1;#r;#s;#n;constructor({label:e,onClose:r,signal:s}){this.#s=e,this.ready=new Promise((i,l)=>{this.#n={reject:l,resolve:i}});let n;if(this.readable=new ReadableStream({cancel:()=>{this.#a()},start:i=>{n=i}}),!n)throw new Error("ReadableStream controller was not initialized");if(this.#r=n,s){const i=()=>{this.fail(s.reason)};s.addEventListener("abort",i,{once:!0}),this.#e.push(()=>{s.removeEventListener("abort",i)})}this.#e.push(()=>{r(this)})}close=()=>{this.#o()};fail(e){this.#o(e)}handleItem(e){this.#r.enqueue(e)}markReady(){if(!this.#n)return;const{resolve:e}=this.#n;this.#n=void 0,e(this)}async*[Symbol.asyncIterator](){const e=this.readable.getReader();try{for(let r=await e.read();!r.done;r=await e.read())yield r.value}finally{await e.cancel()}}#o(e){this.#t||(this.#r.close(),this.#a(e))}#a(e){this.#t=!0;for(const r of this.#e)r();this.#n?.reject(e??new Error(`${this.#s} closed before it started`)),this.#n=void 0}}class Jr{get subscribers(){return this.#r}#e;#t;#r=new Set;constructor(e){this.#e=e}close(){this.#t=void 0;for(const e of[...this.#r])e.close();this.#r.clear()}add(e){this.#r.add(e)}ensureStarted(){return this.#t||(this.#t=(async()=>{try{return await this.#e.start()}catch(e){throw this.#t=void 0,e}})()),this.#t}release(e){this.#r.delete(e),!(this.#r.size>0||!this.#t)&&(this.#t=void 0,this.#e.stop())}}class Ut extends Jr{#e;constructor(e){super({start:e.start,stop:e.stop}),this.#e=e.label}async createStream({signal:e}={}){e?.throwIfAborted();const r=new qr({label:this.#e,onClose:s=>{this.release(s)},signal:e});this.add(r);try{await this.ensureStarted(),r.markReady()}catch(s){r.fail(s)}return await r.ready}handleNotification(e){for(const r of this.subscribers)r.handleItem(e)}}class Wr{#e;#t;#r;#s;constructor(e){this.#s=e,this.#t=new Ut({label:"Log stream",start:()=>e.request("appetizeio.device.server.debug.log.start"),stop:()=>{Y(e,"appetizeio.device.server.debug.log.stop",void 0)}}),this.#r=new Ut({label:"Proxy intercept stream",start:()=>e.request("appetizeio.device.server.debug.proxyIntercept.start"),stop:()=>{Y(e,"appetizeio.device.server.debug.proxyIntercept.stop",void 0)}})}close(){this.#e?.detach(),this.#t.close(),this.#r.close()}async createAdbTunnel({signal:e}={}){e?.throwIfAborted(),this.#e?.close();const r=new Vr(this.#s,{onClose:()=>{this.#e=void 0},signal:e});return this.#e=r,await r.start(),r}async createLogStream(e){return await this.#t.createStream(e)}async createProxyInterceptStream(e){return await this.#r.createStream(e)}async handleAdbTunnelData({data:e}){await this.#e?.handleData(e)}handleAdbTunnelStopped(e){this.#e?.handleStopped(e)}handleLogEntry(e){this.#t.handleNotification(e)}handleProxyInterceptEvent(e){this.#r.handleNotification(e)}}function We(t){return{...Gr(t),index:t.index,within:t.within?We(t.within):void 0}}function Gr(t){switch(t.by){case"testId":return{by:"testId",testId:t.testId};case"text":return{by:"text",text:Hr(t.text)}}}function Hr(t){return typeof t=="string"?{kind:"exact",value:t}:{flags:t.flags,kind:"regex",source:t.source}}const Zr=400,Pt=["byTestId","byText","duration","index","x","y"],Xr=new Set(Pt),Yr=/^-?(?:\d+(?:\.\d*)?|\.\d+)$/u,Qr=/^[a-z]$/u,Ge=/^\s$/u;class N extends SyntaxError{constructor(e,r,s){super(`${e} at position ${String(r)}`,{cause:s})}}class es{#e=0;#t;constructor(e){this.#t=e}parse(){const e=[];for(;this.#e<this.#t.length;){const r=this.#i();if(Ge.test(r))this.#e++;else if(r===">"){if(this.#t.charAt(this.#e+1)===">")throw new N('Force press ">>" is not supported',this.#e);this.#e++,e.push({kind:"down"})}else if(r==="/")this.#e++,e.push({kind:"up"});else if(r==="{")e.push(this.#o());else{const[s]=this.#t.slice(this.#e,this.#e+2);throw new N(`Unexpected ${JSON.stringify(s)}; write selectors as {...}`,this.#e)}}return e}#r(){const e=this.#e,r=this.#c(s=>s!=="="&&!He(s));if(this.#i()!=="=")return{kind:"bare",name:r,offset:e};if(r.length===0)throw new N('Expected an attribute name before "="',e);return this.#e++,{kind:"attribute",name:r,offset:e,value:this.#a()}}#s(){const e=this.#e;this.#e++;let r="";for(;;){const s=this.#i();if(this.#e++,s==='"')return r;if(s==="\\"){const n=this.#i();if(n!=='"'&&n!=="\\"&&n!=="")throw new N('Only \\" and \\\\ escapes are supported',this.#e-1);this.#e++,r+=n}else{if(s==="")throw new N("Unclosed string",e);r+=s}}}#n(){const e=this.#e;this.#e++;let r="",s=!1;for(;;){const i=this.#i();if(i==="")throw new N("Unclosed regex",e);if(this.#e++,i==="/"&&!s)break;r+=i,i==="\\"?(r+=this.#i(),this.#e++):i==="["?s=!0:i==="]"&&(s=!1)}const n=this.#c(i=>Qr.test(i));try{return new RegExp(r,n)}catch(i){throw new N(`Invalid regex /${r}/${n}`,e,i)}}#o(){const e=this.#e;this.#e++;let r;const s={offsets:{}};for(let n=0;;n++){this.#l();const i=this.#i();if(i==="")throw new N('Unclosed "{"',e);if(i==="}"){if(this.#e++,n===0)throw new N('Expected a selector or wait in "{}"',e);return r===void 0?ss(s,e):{duration:r,kind:"wait"}}const l=this.#r();if(n===0&&l.name==="wait")r=l.kind==="attribute"?Lt(l.value,"wait"):Zr;else{if(r!==void 0)throw new N('"wait" takes no other attributes',l.offset);ts(s,l,n)}}}#a(){const e=this.#e,r=this.#i();let s;if(r==='"')s={kind:"quoted",offset:e,text:this.#s()};else if(r==="/")s={kind:"regex",offset:e,regex:this.#n()};else{const n=this.#c(i=>!He(i));if(n.length===0)throw new N('Expected a value after "="',e);return{kind:"raw",offset:e,text:n}}if(!He(this.#i()))throw new N('Expected a space or "}" after the value',this.#e);return s}#i(){return this.#t.charAt(this.#e)}#c(e){const r=this.#e;for(;this.#e<this.#t.length&&e(this.#i());)this.#e++;return this.#t.slice(r,this.#e)}#l(){this.#c(e=>Ge.test(e))}}function Ct(t){return new es(t).parse()}function ts(t,e,r){const{name:s,offset:n}=e;if(e.kind==="attribute"){Ze(t,s,n,e.value);return}if(!s.includes(","))throw new N(`Expected key=value, got ${JSON.stringify(s)}`,n);if(r>0)throw new N("Write the x,y position first",n);const[i,l,...y]=s.split(",");if(y.length>0)throw new N("Expected a screen position as x,y",n);const p=n+i.length+1;Ze(t,"x",n,{kind:"raw",offset:n,text:i}),Ze(t,"y",p,{kind:"raw",offset:p,text:l})}function rs(t){return Xr.has(t)}function He(t){return t===""||t==="}"||Ge.test(t)}function Ze(t,e,r,s){if(!rs(e))throw new N(`Unknown attribute ${JSON.stringify(e)}; expected one of ${Pt.join(", ")}`,r);if(t.offsets[e]!==void 0)throw new N(`Duplicate attribute ${JSON.stringify(e)}`,r);switch(t.offsets[e]=r,e){case"byTestId":case"byText":if(t.byText!==void 0||t.byTestId!==void 0)throw new N("Only one of byText and byTestId may be given",r);e==="byText"?t.byText=os(s):t.byTestId=is(s);return;default:t[e]=Lt(s,e)}}function ss(t,e){return{duration:t.duration,kind:"move",to:ns(t,e)}}function Lt(t,e){if(t.kind!=="raw"||!Yr.test(t.text))throw new N(`"${e}" takes a number`,t.offset);return Number(t.text)}function ns(t,e){const{byTestId:r,byText:s,index:n,offsets:i,x:l,y}=t;if(s!==void 0)return{by:"text",index:n,text:s,x:l,y};if(r!==void 0)return{by:"testId",index:n,testId:r,x:l,y};if(i.index!==void 0)throw new N('"index" needs byText or byTestId',i.index);if(l===void 0||y===void 0)throw new N("A screen position needs x and y",e);return{by:"position",x:l,y}}function is(t){if(t.kind==="regex")throw new N('"byTestId" takes a string',t.offset);return t.text}function os(t){return t.kind==="regex"?t.regex:t.text}function me(t){return t.by==="position"?{by:"position",x:t.x,y:t.y}:{...We(t),x:t.x,y:t.y}}function as(t){return t.map(e=>e.kind==="move"?{duration:e.duration,kind:"move",to:me(e.to)}:e)}function cs(t){return{press:e=>{Y(t,"appetizeio.device.server.keyboard.press",{key:e})}}}function ls({onRequest:t,parent:e,proxyInlet:r,signal:s}){const n=new Mt(e,{signal:s}),i=[()=>{n.close()}];return Tt(n,r),t&&i.push(Re(n,l=>{t(l,{source:"parent"})})),{cleanup:()=>{for(const l of i)l()},notifies:()=>e===globalThis.window?void 0:n}}function fs({onRequest:t,proxyInlet:e}){const[r,s]=qe(),i=[Cr(s),()=>{r.close()}];return Tt(r,e),t&&i.push(Re(r,l=>{t(l,{source:"parent"})})),{cleanup:()=>{for(const l of i)l()},notifies:()=>r}}function us(t){return"to"in t?{from:me(t.from),kind:"path",to:me(t.to)}:{direction:t.direction,distance:t.distance,from:t.from?me(t.from):void 0,kind:"direction"}}function ds(t){return{down:(e,r)=>{Y(t,"appetizeio.device.server.touch.down",{x:e,y:r})},move:(e,r)=>{Y(t,"appetizeio.device.server.touch.move",{x:e,y:r})},up:(e,r)=>{Y(t,"appetizeio.device.server.touch.up",{x:e,y:r})}}}const hs=new Set(Ke),ps=/^(?<key>[A-Za-z]+)>(?<repeat>\d+)\/$/u,ys=/(\{\{|\{[^{}]*\})/u;function ws(t){const e=[];let r="";function s(){r.length>0&&(e.push({kind:"text",text:r}),r="")}for(const[n,i]of t.split(ys).entries())if(n%2===0){if(i.includes("{"))throw new Error(`Unclosed "{" in ${JSON.stringify(t)}`);r+=i}else i==="{{"?r+="{":(s(),e.push(bs(i.slice(1,-1))));return s(),e}function gs(t,e){if(!hs.has(t))throw e.endsWith(">")?new Error(`Holding a key is not supported: {${e}}`):e.startsWith("/")?new Error(`Releasing a key is not supported: {${e}}`):new Error(`{${e}} does not name a supported key. Supported: ${Ke.join(", ")}. Type characters as text, and escape a literal "{" as "{{".`)}function bs(t){const e=ps.exec(t)?.groups,r=e?.key??t;if(gs(r,t),!e)return{key:r,kind:"press"};const s=Number(e.repeat);if(s<1)throw new Error(`Repeat for {${t}} must be at least 1`);return{key:r,kind:"press",repeat:s}}const ms=Symbol("@appetizeio/client:v1Compat");function Nt(t){return t?.[ms]}class Es{readable;ready;get dimensions(){return this.#s}#e=[];#t=!1;#r;#s;#n;#o;constructor({onClose:e,requestKeyFrame:r,signal:s}){this.#n=r,this.ready=new Promise((i,l)=>{this.#o={reject:l,resolve:i}});let n;if(this.readable=new ReadableStream({cancel:()=>{this.#i()},start:i=>{n=i}}),!n)throw new Error("ReadableStream controller was not initialized");if(this.#r=n,s){const i=()=>{this.fail(s.reason)};s.addEventListener("abort",i,{once:!0}),this.#e.push(()=>{s.removeEventListener("abort",i)})}this.#e.push(()=>{e(this)})}close=()=>{this.#a()};fail(e){this.#a(e)}handleChunk(e){if(this.#o){if(e.type!=="key")return;const{resolve:r}=this.#o;this.#o=void 0,this.#s={height:e.height,width:e.width},r(this)}else e.type==="key"&&(this.#s={height:e.height,width:e.width});this.#r.enqueue(e)}requestKeyFrame=()=>{this.#t||this.#n()};async*[Symbol.asyncIterator](){const e=this.readable.getReader();try{for(let r=await e.read();!r.done;r=await e.read())yield r.value}finally{await e.cancel()}}#a(e){this.#t||(this.#r.close(),this.#i(e))}#i(e){this.#t=!0;for(const r of this.#e)r();this.#o?.reject(e??new Error("Video stream closed before the first key chunk")),this.#o=void 0}}class Ss{#e=!1;#t;#r;#s=new Set;constructor(e){this.#t=e}close(){this.#r=void 0;for(const e of[...this.#s])e.close()}async createStream({signal:e}={}){e?.throwIfAborted();const r=new Es({onClose:s=>{this.#o(s)},requestKeyFrame:()=>{this.#a()},signal:e});this.#s.add(r);try{await this.#n()}catch(s){r.fail(s)}return await r.ready}handleChunk(e){e.type==="key"&&(this.#e=!1);for(const r of this.#s)r.handleChunk(e)}#n(){return this.#r?(this.#a(),this.#r):(this.#e=!0,this.#r=(async()=>{try{await this.#t.request("appetizeio.device.server.video.start")}catch(e){throw this.#r=void 0,e}})(),this.#r)}#o(e){this.#s.delete(e),!(this.#s.size>0||!this.#r)&&(this.#r=void 0,Y(this.#t,"appetizeio.device.server.video.stop",void 0))}#a(){this.#e||(this.#e=!0,Y(this.#t,"appetizeio.device.server.video.requestKeyFrame",void 0))}}class vs{debug;keyboard;touch;video;#e;#t=[];#r;constructor(e,r={}){const s=Nt(r)??{},{baseUrl:n,onClose:i,signal:l}=r;this.#e=n?As(n):void 0;const{onRequest:y,parent:p,proxyRequest:v}=s,m=xs(y);l?.addEventListener("abort",this.close);const[T,M]=qe(),[L,C]=qe();this.#t.push(()=>{T.close(),M.close(),L.close(),C.close()}),this.#t.push(Ve(C,e,{leftEffects:v}));const P=p==="playwright"?fs({onRequest:m,proxyInlet:L}):p?ls({onRequest:m,parent:p,proxyInlet:L,signal:l}):void 0;P&&this.#t.push(P.cleanup),this.#t.push(Ve(M,L,{notifiesLeft:P?.notifies}));const{client:G,unsub:we}=Nr(T,{"appetizeio.device.client.debug.adbTunnel.data":j=>H.handleAdbTunnelData(j),"appetizeio.device.client.debug.adbTunnel.stopped":async j=>{H.handleAdbTunnelStopped(j)},"appetizeio.device.client.debug.log.entry":async j=>{H.handleLogEntry(j)},"appetizeio.device.client.debug.proxyIntercept.event":async j=>{H.handleProxyInterceptEvent(j)},"appetizeio.device.client.video.chunk":async j=>{x.handleChunk(j)}});this.#r=G,this.#t.push(we);const H=new Wr(this.#r);this.#t.push(()=>{H.close()});const x=new Ss(this.#r);this.#t.push(()=>{x.close()}),this.debug=H,this.keyboard=cs(this.#r),this.touch=ds(this.#r),this.video=x,m&&(this.#t.push(Re(M,j=>{m(j,{source:"self"})})),e instanceof Mt&&this.#t.push(Re(e,j=>{m(j,{source:"iframe"})}))),this.#t.push(()=>i?.())}async clearKeychain(){await this.#r.request("appetizeio.device.server.clearKeychain")}close=()=>{for(const e of this.#t)try{e()}catch(r){console.error("Device cleanup error:",r)}};async fold(e){await this.#r.request("appetizeio.device.server.fold",{hinge:e})}async gesture(e,r){await this.#r.request("appetizeio.device.server.gesture",{options:r,steps:as(typeof e=="string"?Ct(e):e)})}async inspect(e,r){const s=await this.#r.request("appetizeio.device.server.inspect",{options:r,selector:e?We(e):void 0});return s.platform==="ios"?{platform:"ios",roots:s.roots}:{platform:"android",roots:s.roots}}async open(e){new URL(e),await this.#r.request("appetizeio.device.server.open",{url:e})}async press(e){await this.#r.request("appetizeio.device.server.press",{action:e})}async rotate(e){await this.#r.request("appetizeio.device.server.rotate",{orientation:e})}async screenshot(){const e=await this.#r.request("appetizeio.device.server.screenshot"),r=this.#e?new URL(e.url,this.#e).href:e.url,s=await fetch(r);if(!s.ok)throw new Error(`Screenshot download failed: ${String(s.status)} ${s.statusText}`);const n=s.headers.get("content-type")??"application/octet-stream";return{data:new Uint8Array(await s.arrayBuffer()),mimeType:n}}async swipe(e,r){await this.#r.request("appetizeio.device.server.swipe",{gesture:us(e),options:r})}async tap(e,r){await this.#r.request("appetizeio.device.server.tap",{options:r,selector:me(e)})}async type(e,r){await this.#r.request("appetizeio.device.server.type",{options:r,steps:ws(e)})}}function As(t){const e=new URL(t);return e.protocol==="ws:"?e.protocol="http:":e.protocol==="wss:"&&(e.protocol="https:"),e.href}const xs=t=>{if(t)return(e,r)=>{e.method.startsWith("appetizeio.device.server.")&&t(e,r)}};let Xe;try{Xe=new TextDecoder}catch{}let w,V,f=0;const Ye=[],ks=105,Is=57342,Os=57343,_t=57337,Dt=6,de={};let Ee=11281e4,Q=1681e4,ne=Ye,Se=0,k={},_,ve,Ae=0,ie=0,D,J,B=[],Qe=[],K,$,xe,Bt={useRecords:!1,mapsAsObjects:!0},ke=!1,Ft=2;try{new Function("")}catch{Ft=1/0}class ye{constructor(e){if(e&&((e.keyMap||e._keyMap)&&!e.useRecords&&(e.useRecords=!1,e.mapsAsObjects=!0),e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.getStructures&&(e.getShared=e.getStructures),e.getShared&&!e.structures&&((e.structures=[]).uninitialized=!0),e.keyMap)){this.mapKey=new Map;for(let[r,s]of Object.entries(e.keyMap))this.mapKey.set(s,r)}Object.assign(this,e)}decodeKey(e){return this.keyMap&&this.mapKey.get(e)||e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(e){if(!this._keyMap)return e;let r=new Map;for(let[s,n]of Object.entries(e))r.set(this._keyMap.hasOwnProperty(s)?this._keyMap[s]:s,n);return r}decodeKeys(e){if(!this._keyMap||e.constructor.name!="Map")return e;if(!this._mapKey){this._mapKey=new Map;for(let[s,n]of Object.entries(this._keyMap))this._mapKey.set(n,s)}let r={};return e.forEach((s,n)=>r[W(this._mapKey.has(n)?this._mapKey.get(n):n)]=s),r}mapDecode(e,r){let s=this.decode(e);return this._keyMap&&s.constructor.name==="Array"?s.map(n=>this.decodeKeys(n)):s}decode(e,r){if(w)return Jt(()=>(st(),this?this.decode(e,r):ye.prototype.decode.call(Bt,e,r)));V=r>-1?r:e.length,f=0,Se=0,ie=0,ve=null,ne=Ye,D=null,w=e;try{$=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(s){throw w=null,e instanceof Uint8Array?s:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof ye){if(k=this,K=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return _=this.structures,Pe();(!_||_.length>0)&&(_=[])}else k=Bt,(!_||_.length>0)&&(_=[]),K=null;return Pe()}decodeMultiple(e,r){let s,n=0;try{let i=e.length;ke=!0;let l=this?this.decode(e,i):it.decode(e,i);if(r){if(r(l)===!1)return;for(;f<i;)if(n=f,r(Pe())===!1)return}else{for(s=[l];f<i;)n=f,s.push(Pe());return s}}catch(i){throw i.lastPosition=n,i.values=s,i}finally{ke=!1,st()}}}function Pe(){try{let t=I();if(D){if(f>=D.postBundlePosition){let e=new Error("Unexpected bundle position");throw e.incomplete=!0,e}f=D.postBundlePosition,D=null}if(f==V)_=null,w=null,J&&(J=null);else if(f>V){let e=new Error("Unexpected end of CBOR data");throw e.incomplete=!0,e}else if(!ke)throw new Error("Data read, but end of buffer not reached");return t}catch(t){throw st(),(t instanceof RangeError||t.message.startsWith("Unexpected end of buffer"))&&(t.incomplete=!0),t}}function oe(){let t=new Error("Unexpected end of CBOR data");return t.incomplete=!0,t}function I(){if(!(f<V))throw oe();let t=w[f++],e=t>>5;if(t=t&31,t>23)switch(t){case 24:if(f>=V)throw oe();t=w[f++];break;case 25:if(e==7)return Us();t=$.getUint16(f),f+=2;break;case 26:if(e==7){let r=$.getFloat32(f);if(k.useFloat32>2){let s=nt[(w[f]&127)<<1|w[f+1]>>7];return f+=4,(s*r+(r>0?.5:-.5)>>0)/s}return f+=4,r}if(t=$.getUint32(f),f+=4,e===1)return-1-t;break;case 27:if(e==7){let r=$.getFloat64(f);return f+=8,r}if(e>1){if($.getUint32(f)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");t=$.getUint32(f+4)}else k.int64AsNumber?(t=$.getUint32(f)*4294967296,t+=$.getUint32(f+4)):t=$.getBigUint64(f);f+=8;break;case 31:switch(e){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let r=[],s,n=0;for(;(s=I())!=de;){if(n>=Ee)throw new Error(`Array length exceeds ${Ee}`);r[n++]=s}return e==4?r:e==3?r.join(""):Buffer.concat(r);case 5:let i;if(k.mapsAsObjects){let l={},y=0;if(k.keyMap)for(;(i=I())!=de;){if(y++>=Q)throw new Error(`Property count exceeds ${Q}`);l[W(k.decodeKey(i))]=I()}else for(;(i=I())!=de;){if(y++>=Q)throw new Error(`Property count exceeds ${Q}`);l[W(i)]=I()}return l}else{xe&&(k.mapsAsObjects=!0,xe=!1);let l=new Map;if(k.keyMap){let y=0;for(;(i=I())!=de;){if(y++>=Q)throw new Error(`Map size exceeds ${Q}`);l.set(k.decodeKey(i),I())}}else{let y=0;for(;(i=I())!=de;){if(y++>=Q)throw new Error(`Map size exceeds ${Q}`);l.set(i,I())}}return l}case 7:return de;default:throw new Error("Invalid major type for indefinite length "+e)}default:throw new Error("Unknown token "+t)}switch(e){case 0:return t;case 1:return~t;case 2:return Rs(t);case 3:if(ie>=f)return ve.slice(f-Ae,(f+=t)-Ae);if(ie==0&&V<140&&t<32){let n=t<16?$t(t):Ms(t);if(n!=null)return n}return jt(t);case 4:if(t>=Ee)throw new Error(`Array length exceeds ${Ee}`);if(t>V-f)throw oe();let r=new Array(t);for(let n=0;n<t;n++)r[n]=I();return r;case 5:if(t>=Q)throw new Error(`Map size exceeds ${Ee}`);if(t>(V-f)/2)throw oe();if(k.mapsAsObjects){let n={};if(k.keyMap)for(let i=0;i<t;i++)n[W(k.decodeKey(I()))]=I();else for(let i=0;i<t;i++)n[W(I())]=I();return n}else{xe&&(k.mapsAsObjects=!0,xe=!1);let n=new Map;if(k.keyMap)for(let i=0;i<t;i++)n.set(k.decodeKey(I()),I());else for(let i=0;i<t;i++)n.set(I(),I());return n}case 6:if(t>=_t){let n=_[t&8191];if(n)return n.read||(n.read=et(n)),n.read();if(t<65536){if(t==Os){let i=pe(),l=I(),y=I();tt(l,y);let p={};if(k.keyMap)for(let v=2;v<i;v++){let m=k.decodeKey(y[v-2]);p[W(m)]=I()}else for(let v=2;v<i;v++){let m=y[v-2];p[W(m)]=I()}return p}else if(t==Is){let i=pe(),l=I();for(let y=2;y<i;y++)tt(l++,I());return I()}else if(t==_t)return Ds();if(k.getShared&&(rt(),n=_[t&8191],n))return n.read||(n.read=et(n)),n.read()}}let s=B[t];if(s)return s.handlesRead?s(I):s(I());{let n=I();for(let i=0;i<Qe.length;i++){let l=Qe[i](t,n);if(l!==void 0)return l}return new ae(n,t)}case 7:switch(t){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;default:let n=(K||ce())[t];if(n!==void 0)return n;throw new Error("Unknown token "+t)}default:throw isNaN(t)?oe():new Error("Unknown CBOR token "+t)}}const zt=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function et(t){if(!t)throw new Error("Structure is required in record definition");function e(){let r=w[f++];if(r=r&31,r>23)switch(r){case 24:r=w[f++];break;case 25:r=$.getUint16(f),f+=2;break;case 26:r=$.getUint32(f),f+=4;break;default:throw new Error("Expected array header, but got "+w[f-1])}let s=this.compiledReader;for(;s;){if(s.propertyCount===r)return s(I);s=s.next}if(this.slowReads++>=Ft){let i=this.length==r?this:this.slice(0,r);return s=k.keyMap?new Function("r","return {"+i.map(l=>k.decodeKey(l)).map(l=>zt.test(l)?W(l)+":r()":"["+JSON.stringify(l)+"]:r()").join(",")+"}"):new Function("r","return {"+i.map(l=>zt.test(l)?W(l)+":r()":"["+JSON.stringify(l)+"]:r()").join(",")+"}"),this.compiledReader&&(s.next=this.compiledReader),s.propertyCount=r,this.compiledReader=s,s(I)}let n={};if(k.keyMap)for(let i=0;i<r;i++)n[W(k.decodeKey(this[i]))]=I();else for(let i=0;i<r;i++)n[W(this[i])]=I();return n}return t.slowReads=0,e}function W(t){if(typeof t=="string")return t==="__proto__"?"__proto_":t;if(typeof t=="number"||typeof t=="boolean"||typeof t=="bigint")return t.toString();if(t==null)return t+"";throw new Error("Invalid property name type "+typeof t)}let jt=Ce;function Ts(t){jt=e();function e(r){return function(n){let i=ne[Se++];if(i==null){if(D)return Ce(n);let y=t(f,V,n,w);if(typeof y=="string")i=y,ne=Ye;else if(ne=y,Se=1,ie=1,i=ne[0],i===void 0)throw new Error("Unexpected end of buffer")}let l=i.length;return l<=n?(f+=n,i):(ve=i,Ae=f,ie=f+l,f+=n,i.slice(0,n))}}}function Ce(t){let e;if(t<16&&(e=$t(t)))return e;if(t>64&&Xe)return Xe.decode(w.subarray(f,f+=t));const r=f+t,s=[];for(e="";f<r;){const n=w[f++];if((n&128)===0)s.push(n);else if((n&224)===192)if(n<194||f>=r||(w[f]&192)!==128)s.push(65533);else{const i=w[f++]&63;s.push((n&31)<<6|i)}else if((n&240)===224){const i=f<r?w[f]:0;if(f>=r||(i&192)!==128||n===224&&i<160||n===237&&i>=160)s.push(65533);else if(f++,f>=r||(w[f]&192)!==128)s.push(65533);else{const l=w[f++]&63;s.push((n&31)<<12|(i&63)<<6|l)}}else if((n&248)===240){const i=f<r?w[f]:0;if(n>244||f>=r||(i&192)!==128||n===240&&i<144||n===244&&i>=144)s.push(65533);else if(f++,f>=r||(w[f]&192)!==128)s.push(65533);else{const l=w[f++]&63;if(f>=r||(w[f]&192)!==128)s.push(65533);else{const y=w[f++]&63;let p=(n&7)<<18|(i&63)<<12|l<<6|y;p-=65536,s.push(p>>>10&1023|55296),s.push(56320|p&1023)}}}else s.push(65533);s.length>=4096&&(e+=z.apply(String,s),s.length=0)}return s.length>0&&(e+=z.apply(String,s)),e}let z=String.fromCharCode;function Ms(t){let e=f,r=new Array(t);for(let s=0;s<t;s++){const n=w[f++];if((n&128)>0){f=e;return}r[s]=n}return z.apply(String,r)}function $t(t){if(t<4)if(t<2){if(t===0)return"";{let e=w[f++];if((e&128)>1){f-=1;return}return z(e)}}else{let e=w[f++],r=w[f++];if((e&128)>0||(r&128)>0){f-=2;return}if(t<3)return z(e,r);let s=w[f++];if((s&128)>0){f-=3;return}return z(e,r,s)}else{let e=w[f++],r=w[f++],s=w[f++],n=w[f++];if((e&128)>0||(r&128)>0||(s&128)>0||(n&128)>0){f-=4;return}if(t<6){if(t===4)return z(e,r,s,n);{let i=w[f++];if((i&128)>0){f-=5;return}return z(e,r,s,n,i)}}else if(t<8){let i=w[f++],l=w[f++];if((i&128)>0||(l&128)>0){f-=6;return}if(t<7)return z(e,r,s,n,i,l);let y=w[f++];if((y&128)>0){f-=7;return}return z(e,r,s,n,i,l,y)}else{let i=w[f++],l=w[f++],y=w[f++],p=w[f++];if((i&128)>0||(l&128)>0||(y&128)>0||(p&128)>0){f-=8;return}if(t<10){if(t===8)return z(e,r,s,n,i,l,y,p);{let v=w[f++];if((v&128)>0){f-=9;return}return z(e,r,s,n,i,l,y,p,v)}}else if(t<12){let v=w[f++],m=w[f++];if((v&128)>0||(m&128)>0){f-=10;return}if(t<11)return z(e,r,s,n,i,l,y,p,v,m);let T=w[f++];if((T&128)>0){f-=11;return}return z(e,r,s,n,i,l,y,p,v,m,T)}else{let v=w[f++],m=w[f++],T=w[f++],M=w[f++];if((v&128)>0||(m&128)>0||(T&128)>0||(M&128)>0){f-=12;return}if(t<14){if(t===12)return z(e,r,s,n,i,l,y,p,v,m,T,M);{let L=w[f++];if((L&128)>0){f-=13;return}return z(e,r,s,n,i,l,y,p,v,m,T,M,L)}}else{let L=w[f++],C=w[f++];if((L&128)>0||(C&128)>0){f-=14;return}if(t<15)return z(e,r,s,n,i,l,y,p,v,m,T,M,L,C);let P=w[f++];if((P&128)>0){f-=15;return}return z(e,r,s,n,i,l,y,p,v,m,T,M,L,C,P)}}}}}function Rs(t){return k.copyBuffers?Uint8Array.prototype.slice.call(w,f,f+=t):w.subarray(f,f+=t)}let Vt=new Float32Array(1),Le=new Uint8Array(Vt.buffer,0,4);function Us(){let t=w[f++],e=w[f++],r=(t&127)>>2;if(r===31)return e||t&3?NaN:t&128?-1/0:1/0;if(r===0){let s=((t&3)<<8|e)/16777216;return t&128?-s:s}return Le[3]=t&128|(r>>1)+56,Le[2]=(t&7)<<5|e>>3,Le[1]=e<<5,Le[0]=0,Vt[0]}new Array(4096);class ae{constructor(e,r){this.value=e,this.tag=r}}B[0]=t=>new Date(t),B[1]=t=>new Date(Math.round(t*1e3)),B[2]=t=>{let e=BigInt(0);for(let r=0,s=t.byteLength;r<s;r++)e=BigInt(t[r])+(e<<BigInt(8));return e},B[3]=t=>BigInt(-1)-B[2](t),B[4]=t=>+(t[1]+"e"+t[0]),B[5]=t=>t[1]*Math.exp(t[0]*Math.log(2));const tt=(t,e)=>{t=t-57344;let r=_[t];r&&r.isShared&&((_.restoreStructures||(_.restoreStructures=[]))[t]=r),_[t]=e,e.read=et(e)};B[ks]=t=>{let e=t.length,r=t[1];tt(t[0],r);let s={};for(let n=2;n<e;n++){let i=r[n-2];s[W(i)]=t[n]}return s},B[14]=t=>D?D[0].slice(D.position0,D.position0+=t):new ae(t,14),B[15]=t=>D?D[1].slice(D.position1,D.position1+=t):new ae(t,15);let Ps={Error,RegExp};B[27]=t=>(Ps[t[0]]||Error)(t[1],t[2]);const Kt=t=>{if(w[f++]!=132){let r=new Error("Packed values structure must be followed by a 4 element array");throw w.length<f&&(r.incomplete=!0),r}let e=t();if(!e||!e.length){let r=new Error("Packed values structure must be followed by a 4 element array");throw r.incomplete=!0,r}return K=K?e.concat(K.slice(e.length)):e,K.prefixes=t(),K.suffixes=t(),t()};Kt.handlesRead=!0,B[51]=Kt,B[Dt]=t=>{if(!K)if(k.getShared)rt();else return new ae(t,Dt);if(typeof t=="number")return K[16+(t>=0?2*t:-2*t-1)];let e=new Error("No support for non-integer packed references yet");throw t===void 0&&(e.incomplete=!0),e},B[28]=t=>{J||(J=new Map,J.id=0);let e=J.id++,r=f,s=w[f],n;s>>5==4?n=[]:n={};let i={target:n};J.set(e,i);let l=t();return i.used?(Object.getPrototypeOf(n)!==Object.getPrototypeOf(l)&&(f=r,n=l,J.set(e,{target:n}),l=t()),Object.assign(n,l)):(i.target=l,l)},B[28].handlesRead=!0,B[29]=t=>{let e=J.get(t);return e.used=!0,e.target},B[258]=t=>new Set(t),(B[259]=t=>(k.mapsAsObjects&&(k.mapsAsObjects=!1,xe=!0),t())).handlesRead=!0;function he(t,e){return typeof t=="string"?t+e:t instanceof Array?t.concat(e):Object.assign({},t,e)}function ce(){if(!K)if(k.getShared)rt();else throw new Error("No packed values available");return K}const Cs=1399353956;Qe.push((t,e)=>{if(t>=225&&t<=255)return he(ce().prefixes[t-224],e);if(t>=28704&&t<=32767)return he(ce().prefixes[t-28672],e);if(t>=1879052288&&t<=2147483647)return he(ce().prefixes[t-1879048192],e);if(t>=216&&t<=223)return he(e,ce().suffixes[t-216]);if(t>=27647&&t<=28671)return he(e,ce().suffixes[t-27639]);if(t>=1811940352&&t<=1879048191)return he(e,ce().suffixes[t-1811939328]);if(t==Cs)return{packedValues:K,structures:_.slice(0),version:e};if(t==55799)return e});const Ls=new Uint8Array(new Uint16Array([1]).buffer)[0]==1,qt=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array],Ns=[64,68,69,70,71,72,77,78,79,85,86];for(let t=0;t<qt.length;t++)_s(qt[t],Ns[t]);function _s(t,e){let r="get"+t.name.slice(0,-5),s;typeof t=="function"?s=t.BYTES_PER_ELEMENT:t=null;for(let n=0;n<2;n++){if(!n&&s==1)continue;let i=s==2?1:s==4?2:s==8?3:0;B[n?e:e-4]=s==1||n==Ls?l=>{if(!t)throw new Error("Could not find typed array for code "+e);return!k.copyBuffers&&(s===1||s===2&&!(l.byteOffset&1)||s===4&&!(l.byteOffset&3)||s===8&&!(l.byteOffset&7))?new t(l.buffer,l.byteOffset,l.byteLength>>i):new t(Uint8Array.prototype.slice.call(l,0).buffer)}:l=>{if(!t)throw new Error("Could not find typed array for code "+e);let y=new DataView(l.buffer,l.byteOffset,l.byteLength),p=l.length>>i,v=new t(p),m=y[r];for(let T=0;T<p;T++)v[T]=m.call(y,T<<i,n);return v}}}function Ds(){let t=pe(),e=f+I();for(let s=2;s<t;s++){let n=pe();f+=n}let r=f;return f=e,D=[Ce(pe()),Ce(pe())],D.position0=0,D.position1=0,D.postBundlePosition=f,f=r,I()}function pe(){if(!(f<V))throw oe();let t=w[f++]&31;if(t>23)switch(t){case 24:if(f>=V)throw oe();t=w[f++];break;case 25:t=$.getUint16(f),f+=2;break;case 26:t=$.getUint32(f),f+=4;break}return t}function rt(){if(k.getShared){let t=Jt(()=>(w=null,k.getShared()))||{},e=t.structures||[];k.sharedVersion=t.version,K=k.sharedValues=t.packedValues,_===!0?k.structures=_=e:_.splice.apply(_,[0,e.length].concat(e))}}function Jt(t){let e=V,r=f,s=Se,n=Ae,i=ie,l=ve,y=ne,p=J,v=D,m=new Uint8Array(w.slice(0,V)),T=_,M=k,L=ke,C=t();return V=e,f=r,Se=s,Ae=n,ie=i,ve=l,ne=y,J=p,D=v,w=m,ke=L,_=T,k=M,$=new DataView(w.buffer,w.byteOffset,w.byteLength),C}function st(){w=null,J=null,_=null}const nt=new Array(147);for(let t=0;t<256;t++)nt[t]=+("1e"+Math.floor(45.15-t*.30103));let it=new ye({useRecords:!1});const Bs=it.decode;it.decodeMultiple;let Ne;try{Ne=new TextEncoder}catch{}let ot,Wt;const _e=typeof globalThis=="object"&&globalThis.Buffer,Ie=typeof _e<"u",at=Ie?_e.allocUnsafeSlow:Uint8Array,Gt=Ie?_e:Uint8Array,Ht=256,Zt=Ie?4294967296:2144337920;let ct,c,U,o=0,ee,F=null;const Fs=61440,zs=/[\u0080-\uFFFF]/,q=Symbol("record-id");class Xt extends ye{constructor(e){super(e),this.offset=0;let r,s,n,i,l;e=e||{};let y=Gt.prototype.utf8Write?function(a,g){return c.utf8Write(a,g,c.byteLength-g)}:Ne&&Ne.encodeInto?function(a,g){return Ne.encodeInto(a,c.subarray(g)).written}:!1,p=this,v=e.structures||e.saveStructures,m=e.maxSharedStructures;if(m==null&&(m=v?128:0),m>8190)throw new Error("Maximum maxSharedStructure is 8190");let T=e.sequential;T&&(m=0),this.structures||(this.structures=[]),this.saveStructures&&(this.saveShared=this.saveStructures);let M,L,C=e.sharedValues,P;if(C){P=Object.create(null);for(let a=0,g=C.length;a<g;a++)P[C[a]]=a}let G=[],we=0,H=0;this.mapEncode=function(a,g){return this._keyMap&&!this._mapped&&a.constructor.name==="Array"&&(a=a.map(d=>this.encodeKeys(d))),this.encode(a,g)},this.encode=function(a,g){if(c||(c=new at(8192),U=new DataView(c.buffer,0,8192),o=0),ee=c.length-10,ee-o<2048?(c=new at(c.length),U=new DataView(c.buffer,0,c.length),ee=c.length-10,o=0):g===tr&&(o=o+7&2147483640),r=o,p.useSelfDescribedHeader&&(U.setUint32(o,3654940416),o+=3),l=p.structuredClone?new Map:null,p.bundleStrings&&typeof a!="string"?(F=[],F.size=1/0):F=null,s=p.structures,s){if(s.uninitialized){let h=p.getShared()||{};p.structures=s=h.structures||[],p.sharedVersion=h.version;let u=p.sharedValues=h.packedValues;if(u){P={};for(let b=0,E=u.length;b<E;b++)P[u[b]]=b}}let d=s.length;if(d>m&&!T&&(d=m),!s.transitions){s.transitions=Object.create(null);for(let h=0;h<d;h++){let u=s[h];if(!u)continue;let b,E=s.transitions;for(let S=0,A=u.length;S<A;S++){E[q]===void 0&&(E[q]=h);let O=u[S];b=E[O],b||(b=E[O]=Object.create(null)),E=b}E[q]=h|1048576}}T||(s.nextId=d)}if(n&&(n=!1),i=s||[],L=P,e.pack){let d=new Map;if(d.values=[],d.encoder=p,d.maxValues=e.maxPrivatePackedValues||(P?16:1/0),d.objectMap=P||!1,d.samplingPackedValues=M,De(a,d),d.values.length>0){c[o++]=216,c[o++]=51,Z(4);let h=d.values;x(h),Z(0),Z(0),L=Object.create(P||null);for(let u=0,b=h.length;u<b;u++)L[h[u]]=u}}ct=g&dt;try{if(ct)return;if(x(a),F&&er(r,x),p.offset=o,l&&l.idsToInsert){o+=l.idsToInsert.length*2,o>ee&&fe(o),p.offset=o;let d=Vs(c.subarray(r,o),l.idsToInsert);return l=null,d}return g&tr?(c.start=r,c.end=o,c):c.subarray(r,o)}finally{if(s){if(H<10&&H++,s.length>m&&(s.length=m),we>1e4)s.transitions=null,H=0,we=0,G.length>0&&(G=[]);else if(G.length>0&&!T){for(let d=0,h=G.length;d<h;d++)G[d][q]=void 0;G=[]}}if(n&&p.saveShared){p.structures.length>m&&(p.structures=p.structures.slice(0,m));let d=c.subarray(r,o);return p.updateSharedData()===!1?p.encode(a):d}g&qs&&(o=r)}},this.findCommonStringsToPack=()=>(M=new Map,P||(P=Object.create(null)),a=>{let g=a&&a.threshold||4,d=this.pack?a.maxPrivatePackedValues||16:0;C||(C=this.sharedValues=[]);for(let[h,u]of M)u.count>g&&(P[h]=d++,C.push(h),n=!0);for(;this.saveShared&&this.updateSharedData()===!1;);M=null});const x=a=>{o>ee&&(c=fe(o));var g=typeof a,d;if(g==="string"){if(L){let E=L[a];if(E>=0){E<16?c[o++]=E+224:(c[o++]=198,E&1?x(15-E>>1):x(E-16>>1));return}else if(M&&!e.pack){let S=M.get(a);S?S.count++:M.set(a,{count:1})}}let h=a.length;if(F&&h>=4&&h<1024){if((F.size+=h)>Fs){let S,A=(F[0]?F[0].length*3+F[1].length:0)+10;o+A>ee&&(c=fe(o+A)),c[o++]=217,c[o++]=223,c[o++]=249,c[o++]=F.position?132:130,c[o++]=26,S=o-r,o+=4,F.position&&er(r,x),F=["",""],F.size=0,F.position=S}let E=zs.test(a);F[E?0:1]+=a,c[o++]=E?206:207,x(h);return}let u;h<32?u=1:h<256?u=2:h<65536?u=3:u=5;let b=h*3;if(o+b>ee&&(c=fe(o+b)),h<64||!y){let E,S,A,O=o+u;for(E=0;E<h;E++)S=a.charCodeAt(E),S<128?c[O++]=S:S<2048?(c[O++]=S>>6|192,c[O++]=S&63|128):(S&64512)===55296&&((A=a.charCodeAt(E+1))&64512)===56320?(S=65536+((S&1023)<<10)+(A&1023),E++,c[O++]=S>>18|240,c[O++]=S>>12&63|128,c[O++]=S>>6&63|128,c[O++]=S&63|128):(c[O++]=S>>12|224,c[O++]=S>>6&63|128,c[O++]=S&63|128);d=O-o-u}else d=y(a,o+u,b);d<24?c[o++]=96|d:d<256?(u<2&&c.copyWithin(o+2,o+1,o+1+d),c[o++]=120,c[o++]=d):d<65536?(u<3&&c.copyWithin(o+3,o+2,o+2+d),c[o++]=121,c[o++]=d>>8,c[o++]=d&255):(u<5&&c.copyWithin(o+5,o+3,o+3+d),c[o++]=122,U.setUint32(o,d),o+=4),o+=d}else if(g==="number")if(!this.alwaysUseFloat&&a>>>0===a)a<24?c[o++]=a:a<256?(c[o++]=24,c[o++]=a):a<65536?(c[o++]=25,c[o++]=a>>8,c[o++]=a&255):(c[o++]=26,U.setUint32(o,a),o+=4);else if(!this.alwaysUseFloat&&a>>0===a)a>=-24?c[o++]=31-a:a>=-256?(c[o++]=56,c[o++]=~a):a>=-65536?(c[o++]=57,U.setUint16(o,~a),o+=2):(c[o++]=58,U.setUint32(o,~a),o+=4);else if(!this.alwaysUseFloat&&a<0&&a>=-4294967296&&Math.floor(a)===a)c[o++]=58,U.setUint32(o,-1-a),o+=4;else{let h;if((h=this.useFloat32)>0&&a<4294967296&&a>=-2147483648){c[o++]=250,U.setFloat32(o,a);let u;if(h<4||(u=a*nt[(c[o]&127)<<1|c[o+1]>>7])>>0===u){o+=4;return}else o--}c[o++]=251,U.setFloat64(o,a),o+=8}else if(g==="object")if(!a)c[o++]=246;else{if(l){let u=l.get(a);if(u){if(c[o++]=216,c[o++]=29,c[o++]=25,!u.references){let b=l.idsToInsert||(l.idsToInsert=[]);u.references=[],b.push(u)}u.references.push(o-r),o+=2;return}else l.set(a,{offset:o-r})}let h=a.constructor;if(h===Object)this.skipFunction===!0&&(a=Object.fromEntries([...Object.keys(a).filter(u=>typeof a[u]!="function").map(u=>[u,a[u]])])),j(a);else if(h===Array){d=a.length,d<24?c[o++]=128|d:Z(d);for(let u=0;u<d;u++)x(a[u])}else if(h===Map)if((this.mapsAsObjects?this.useTag259ForMaps!==!1:this.useTag259ForMaps)&&(c[o++]=217,c[o++]=1,c[o++]=3),d=a.size,d<24?c[o++]=160|d:d<256?(c[o++]=184,c[o++]=d):d<65536?(c[o++]=185,c[o++]=d>>8,c[o++]=d&255):(c[o++]=186,U.setUint32(o,d),o+=4),p.keyMap)for(let[u,b]of a)x(p.encodeKey(u)),x(b);else for(let[u,b]of a)x(u),x(b);else{for(let u=0,b=ot.length;u<b;u++){let E=Wt[u];if(a instanceof E){let S=ot[u],A=S.tag;A==null&&(A=S.getTag&&S.getTag.call(this,a)),A<24?c[o++]=192|A:A<256?(c[o++]=216,c[o++]=A):A<65536?(c[o++]=217,c[o++]=A>>8,c[o++]=A&255):A>-1&&(c[o++]=218,U.setUint32(o,A),o+=4),S.encode.call(this,a,x,fe);return}}if(a[Symbol.iterator]){if(ct){let u=new Error("Iterable should be serialized as iterator");throw u.iteratorNotHandled=!0,u}c[o++]=159;for(let u of a)x(u);c[o++]=255;return}if(a[Symbol.asyncIterator]||lt(a)){let u=new Error("Iterable/blob should be serialized as iterator");throw u.iteratorNotHandled=!0,u}if(this.useToJSON&&a.toJSON){const u=a.toJSON();if(u!==a)return x(u)}j(a)}}else if(g==="boolean")c[o++]=a?245:244;else if(g==="bigint"){if(a<BigInt(1)<<BigInt(64)&&a>=0)c[o++]=27,U.setBigUint64(o,a);else if(a>-(BigInt(1)<<BigInt(64))&&a<0)c[o++]=59,U.setBigUint64(o,-a-BigInt(1));else if(this.largeBigIntToFloat)c[o++]=251,U.setFloat64(o,Number(a));else{a>=BigInt(0)?c[o++]=194:(c[o++]=195,a=BigInt(-1)-a);let h=[];for(;a;)h.push(Number(a&BigInt(255))),a>>=BigInt(8);ft(new Uint8Array(h.reverse()),fe);return}o+=8}else if(g==="undefined")c[o++]=247;else throw new Error("Unknown type: "+g)},j=this.useRecords===!1?this.variableMapSize?a=>{let g=Object.keys(a),d=Object.values(a),h=g.length;if(h<24?c[o++]=160|h:h<256?(c[o++]=184,c[o++]=h):h<65536?(c[o++]=185,c[o++]=h>>8,c[o++]=h&255):(c[o++]=186,U.setUint32(o,h),o+=4),p.keyMap)for(let u=0;u<h;u++)x(p.encodeKey(g[u])),x(d[u]);else for(let u=0;u<h;u++)x(g[u]),x(d[u])}:a=>{c[o++]=185;let g=o-r;o+=2;let d=0;if(p.keyMap)for(let h in a)(typeof a.hasOwnProperty!="function"||a.hasOwnProperty(h))&&(x(p.encodeKey(h)),x(a[h]),d++);else for(let h in a)(typeof a.hasOwnProperty!="function"||a.hasOwnProperty(h))&&(x(h),x(a[h]),d++);c[g+++r]=d>>8,c[g+r]=d&255}:(a,g)=>{let d,h=i.transitions||(i.transitions=Object.create(null)),u=0,b=0,E,S;if(this.keyMap){S=Object.keys(a).map(O=>this.encodeKey(O)),b=S.length;for(let O=0;O<b;O++){let vt=S[O];d=h[vt],d||(d=h[vt]=Object.create(null),u++),h=d}}else for(let O in a)(typeof a.hasOwnProperty!="function"||a.hasOwnProperty(O))&&(d=h[O],d||(h[q]&1048576&&(E=h[q]&65535),d=h[O]=Object.create(null),u++),h=d,b++);let A=h[q];if(A!==void 0)A&=65535,c[o++]=217,c[o++]=A>>8|224,c[o++]=A&255;else if(S||(S=h.__keys__||(h.__keys__=Object.keys(a))),E===void 0?(A=i.nextId++,A||(A=0,i.nextId=1),A>=Ht&&(i.nextId=(A=m)+1)):A=E,i[A]=S,A<m){c[o++]=217,c[o++]=A>>8|224,c[o++]=A&255,h=i.transitions;for(let O=0;O<b;O++)(h[q]===void 0||h[q]&1048576)&&(h[q]=A),h=h[S[O]];h[q]=A|1048576,n=!0}else{if(h[q]=A,U.setUint32(o,3655335680),o+=3,u&&(we+=H*u),G.length>=Ht-m&&(G.shift()[q]=void 0),G.push(h),Z(b+2),x(57344+A),x(S),g)return;for(let O in a)(typeof a.hasOwnProperty!="function"||a.hasOwnProperty(O))&&x(a[O]);return}if(b<24?c[o++]=128|b:Z(b),!g)for(let O in a)(typeof a.hasOwnProperty!="function"||a.hasOwnProperty(O))&&x(a[O])},fe=a=>{let g;if(a>16777216){if(a-r>Zt)throw new Error("Encoded buffer would be larger than maximum buffer size");g=Math.min(Zt,Math.round(Math.max((a-r)*(a>67108864?1.25:2),4194304)/4096)*4096)}else g=(Math.max(a-r<<2,c.length-1)>>12)+1<<12;let d=new at(g);return U=new DataView(d.buffer,0,g),c.copy?c.copy(d,0,r,a):d.set(c.slice(r,a)),o-=r,r=0,ee=d.length-10,c=d};let te=100,mt=1e3;this.encodeAsIterable=function(a,g){return Et(a,g,ue)},this.encodeAsAsyncIterable=function(a,g){return Et(a,g,St)};function*ue(a,g,d){let h=a.constructor;if(h===Object){let u=p.useRecords!==!1;u?j(a,!0):Yt(Object.keys(a).length,160);for(let b in a){let E=a[b];u||x(b),E&&typeof E=="object"?g[b]?yield*ue(E,g[b]):yield*ze(E,g,b):x(E)}}else if(h===Array){let u=a.length;Z(u);for(let b=0;b<u;b++){let E=a[b];E&&(typeof E=="object"||o-r>te)?g.element?yield*ue(E,g.element):yield*ze(E,g,"element"):x(E)}}else if(a[Symbol.iterator]&&!a.buffer){c[o++]=159;for(let u of a)u&&(typeof u=="object"||o-r>te)?g.element?yield*ue(u,g.element):yield*ze(u,g,"element"):x(u);c[o++]=255}else lt(a)?(Yt(a.size,64),yield c.subarray(r,o),yield a,ge()):a[Symbol.asyncIterator]?(c[o++]=159,yield c.subarray(r,o),yield a,ge(),c[o++]=255):x(a);d&&o>r?yield c.subarray(r,o):o-r>te&&(yield c.subarray(r,o),ge())}function*ze(a,g,d){let h=o-r;try{x(a),o-r>te&&(yield c.subarray(r,o),ge())}catch(u){if(u.iteratorNotHandled)g[d]={},o=r+h,yield*ue.call(this,a,g[d]);else throw u}}function ge(){te=mt,p.encode(null,dt)}function Et(a,g,d){return g&&g.chunkThreshold?te=mt=g.chunkThreshold:te=100,a&&typeof a=="object"?(p.encode(null,dt),d(a,p.iterateProperties||(p.iterateProperties={}),!0)):[p.encode(a)]}async function*St(a,g){for(let d of ue(a,g,!0)){let h=d.constructor;if(h===Gt||h===Uint8Array)yield d;else if(lt(d)){let u=d.stream().getReader(),b;for(;!(b=await u.read()).done;)yield b.value}else if(d[Symbol.asyncIterator])for await(let u of d)ge(),u?yield*St(u,g.async||(g.async={})):yield p.encode(u);else yield d}}}useBuffer(e){c=e,U=new DataView(c.buffer,c.byteOffset,c.byteLength),o=0}clearSharedData(){this.structures&&(this.structures=[]),this.sharedValues&&(this.sharedValues=void 0)}updateSharedData(){let e=this.sharedVersion||0;this.sharedVersion=e+1;let r=this.structures.slice(0),s=new Qt(r,this.sharedValues,this.sharedVersion),n=this.saveShared(s,i=>(i&&i.version||0)==e);return n===!1?(s=this.getShared()||{},this.structures=s.structures||[],this.sharedValues=s.packedValues,this.sharedVersion=s.version,this.structures.nextId=this.structures.length):r.forEach((i,l)=>this.structures[l]=i),n}}function Yt(t,e){t<24?c[o++]=e|t:t<256?(c[o++]=e|24,c[o++]=t):t<65536?(c[o++]=e|25,c[o++]=t>>8,c[o++]=t&255):(c[o++]=e|26,U.setUint32(o,t),o+=4)}class Qt{constructor(e,r,s){this.structures=e,this.packedValues=r,this.version=s}}function Z(t){t<24?c[o++]=128|t:t<256?(c[o++]=152,c[o++]=t):t<65536?(c[o++]=153,c[o++]=t>>8,c[o++]=t&255):(c[o++]=154,U.setUint32(o,t),o+=4)}const js=typeof Blob>"u"?function(){}:Blob;function lt(t){if(t instanceof js)return!0;let e=t[Symbol.toStringTag];return e==="Blob"||e==="File"}function De(t,e){switch(typeof t){case"string":if(t.length>3){if(e.objectMap[t]>-1||e.values.length>=e.maxValues)return;let s=e.get(t);if(s)++s.count==2&&e.values.push(t);else if(e.set(t,{count:1}),e.samplingPackedValues){let n=e.samplingPackedValues.get(t);n?n.count++:e.samplingPackedValues.set(t,{count:1})}}break;case"object":if(t)if(t instanceof Array)for(let s=0,n=t.length;s<n;s++)De(t[s],e);else{let s=!e.encoder.useRecords;for(var r in t)t.hasOwnProperty(r)&&(s&&De(r,e),De(t[r],e))}break;case"function":console.log(t)}}const $s=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;Wt=[Date,Set,Error,RegExp,ae,ArrayBuffer,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?function(){}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?function(){}:BigInt64Array,Float32Array,Float64Array,Qt],ot=[{tag:1,encode(t,e){let r=t.getTime()/1e3;(this.useTimestamp32||t.getMilliseconds()===0)&&r>=0&&r<4294967296?(c[o++]=26,U.setUint32(o,r),o+=4):(c[o++]=251,U.setFloat64(o,r),o+=8)}},{tag:258,encode(t,e){let r=Array.from(t);e(r)}},{tag:27,encode(t,e){e([t.name,t.message])}},{tag:27,encode(t,e){e(["RegExp",t.source,t.flags])}},{getTag(t){return t.tag},encode(t,e){e(t.value)}},{encode(t,e,r){ft(t,r)}},{getTag(t){if(t.constructor===Uint8Array&&(this.tagUint8Array||Ie&&this.tagUint8Array!==!1))return 64},encode(t,e,r){ft(t,r)}},X(68,1),X(69,2),X(70,4),X(71,8),X(72,1),X(77,2),X(78,4),X(79,8),X(85,4),X(86,8),{encode(t,e){let r=t.packedValues||[],s=t.structures||[];if(r.values.length>0){c[o++]=216,c[o++]=51,Z(4);let n=r.values;e(n),Z(0),Z(0),packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let i=0,l=n.length;i<l;i++)packedObjectMap[n[i]]=i}if(s){U.setUint32(o,3655335424),o+=3;let n=s.slice(0);n.unshift(57344),n.push(new ae(t.version,1399353956)),e(n)}else e(new ae(t.version,1399353956))}}];function X(t,e){return!$s&&e>1&&(t-=4),{tag:t,encode:function(s,n){let i=s.byteLength,l=s.byteOffset||0,y=s.buffer||s;n(Ie?_e.from(y,l,i):new Uint8Array(y,l,i))}}}function ft(t,e){let r=t.byteLength;r<24?c[o++]=64+r:r<256?(c[o++]=88,c[o++]=r):r<65536?(c[o++]=89,c[o++]=r>>8,c[o++]=r&255):(c[o++]=90,U.setUint32(o,r),o+=4),o+r>=c.length&&e(o+r),c.set(t.buffer?t:new Uint8Array(t),o),o+=r}function Vs(t,e){let r,s=e.length*2,n=t.length-s;e.sort((i,l)=>i.offset>l.offset?1:-1);for(let i=0;i<e.length;i++){let l=e[i];l.id=i;for(let y of l.references)t[y++]=i>>8,t[y]=i&255}for(;r=e.pop();){let i=r.offset;t.copyWithin(i+s,i,n),s-=2;let l=i+s;t[l++]=216,t[l++]=28,n=i}return t}function er(t,e){U.setUint32(F.position+t,o-F.position-t+1);let r=F;F=null,e(r[0]),e(r[1])}let ut=new Xt({useRecords:!1});const Ks=ut.encode;ut.encodeAsIterable,ut.encodeAsAsyncIterable;const tr=512,qs=1024,dt=2048;class Js extends kr{constructor(e){e||(e={}),e.objectMode=!0,super(e),e.structures=[],this.decoder=e.decoder||new ye(e)}_transform(e,r,s){this.incompleteBuffer&&(e=Buffer.concat([this.incompleteBuffer,e]),this.incompleteBuffer=null);let n;try{n=this.decoder.decodeMultiple(e)}catch(i){if(i.incomplete)this.incompleteBuffer=e.slice(i.lastPosition),n=i.values;else return s(i)}finally{for(let i of n||[])i===null&&(i=this.getNullValue()),this.push(i)}s()}getNullValue(){return Symbol.for(null)}}const Ws=process.env.CBOR_NATIVE_ACCELERATION_DISABLED!==void 0&&process.env.CBOR_NATIVE_ACCELERATION_DISABLED.toLowerCase()==="true";if(!Ws){let t;try{typeof require=="function"?t=require("cbor-extract"):t=Ir(import.meta.url)("cbor-extract"),t&&Ts(t.extractStrings)}catch{}}const Gs={dateStyle:"medium",timeStyle:"short"},Hs=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/;function Be(t){return Array.isArray(t)?t.map(Be).join(", "):typeof t=="boolean"?t?"yes":"no":typeof t=="number"?t.toLocaleString():Zs(t)}function Zs(t){if(Hs.test(t)){const r=new Date(t);if(!Number.isNaN(r.getTime()))return r.toLocaleString(void 0,Gs)}const e=xt();return t===e?"~":t.startsWith(`${e}${xr}`)?`~${t.slice(e.length)}`:t}function rr(){return process.env.APPETIZE_CLI_HOME??re(xt(),".appetize","cli","sessions")}function ht(t){return re(rr(),t)}class Fe extends Error{details;constructor(e,r={},s){super(e,s===void 0?void 0:{cause:s}),this.name="CommandError",this.details=r}hints(e){return[]}}class Te extends Fe{sessionDir;constructor(e,{cause:r,details:s={},sessionId:n}){const i=ht(n);super(e,Object.assign({sessionDir:i},s),r),this.name="SessionError",this.sessionDir=i}static wrap(e,r){if(e instanceof Te||e instanceof le)return e;const s=e instanceof Error?e.message:String(e),n=e instanceof Fe?e.details:{};return new Te(s,{cause:e,details:n,sessionId:r})}hints(){return[`Check the session logs for details: ${Be(this.sessionDir)}`]}}class Xs extends Te{constructor(e){super(`Session ${e} already exists`,{sessionId:e}),this.name="SessionAlreadyExistsError"}hints(){return[`Pass --force to replace it, deleting ${Be(this.sessionDir)}`]}}class le extends Fe{#e;constructor(e,r=[]){super(e),this.name="UsageError",this.#e=r}hints({command:e}){return[...this.#e,`Run 'appetize ${e} --help' for usage`]}}function Ys(t,e,r){const s=e instanceof Error?e.message:String(e);if(!(e instanceof Fe))return t==="json"?JSON.stringify({error:{message:s}},null,2):`\u2716 ${s}`;const n=e.hints(r);if(t==="json"){const i=n.length>0?{hints:n}:{};return JSON.stringify({error:{message:s,...e.details,...i}},null,2)}return[`\u2716 ${s}`,...n.map(i=>` ${i}`)].join(`
|
|
2
|
-
`)}function pt(t){try{return process.kill(t,0),!0}catch{return!1}}const Qs=["SIGINT","SIGTERM"],en=150;function tn(t){const e=new AbortController,r=setInterval(()=>{pt(t)||(clearInterval(r),e.abort(new Error("The device session exited")))},en);return r.unref(),e.signal}function sr(){const t=new AbortController;for(const e of Qs)process.once(e,()=>{t.abort(new Error(`Received ${e}`))});return t.signal}function rn(t,e){return new Promise((r,s)=>{if(e.aborted){s(nr(e.reason));return}const n=()=>{clearTimeout(i),s(nr(e.reason))},i=setTimeout(()=>{e.removeEventListener("abort",n),r()},t);e.addEventListener("abort",n,{once:!0})})}function nr(t){return t instanceof Error?t:new Error(String(t))}function sn(t){const e=t.at(-1);return{options:an(e)?e:{},positionals:t.slice(0,-1).filter(r=>typeof r=="string"),signal:sr()}}function nn(t,e){const r=ir(t,e);return r===void 0?void 0:or(r,e)}function ir(t,e){if(t===void 0)return;const r=typeof t=="boolean"?Number.NaN:Number(t);if(!Number.isFinite(r))throw new le(`${e} expects a number, e.g., ${e}=-0.1`);return r}function yt(t,e){if(t!==void 0){if(typeof t!="string"||t==="")throw new le(`${e} needs a value`);return t}}function or(t,e){if(!(t>=0&&t<=1))throw new le(`${e} expects a number between 0 and 1`);return t}function on(t,e){const r=yt(t,e);if(r===void 0)throw new le(`${e} needs a value`);return r}function an(t){return typeof t=="object"&&t!==null}const cn="APPETIZEIO_FEATURE_FLAGS";function ln(){const t={};for(const e of(process.env[cn]??"").split(",")){const r=e.trim();r!==""&&(t[r]=!0)}return t}function fn(){const t=process.env.APPETIZE_API_TOKEN;if(!t)throw new Error("APPETIZE_API_TOKEN must be set");return t}function ar(t){return yt(t.endpoint,"--endpoint")??un()}function un(){const t=process.env.APPETIZE_ENDPOINT?.trim();return t===""?void 0:t}const dn="https://appetize.io";async function cr(t,{authorize:e=!0,commandOptions:r={},query:s={},...n}={}){const i=new URL(t,ar(r)??dn);for(const[p,v]of Object.entries(s))i.searchParams.set(p,v);const l=new Headers(n.headers);e&&l.set("x-api-key",fn());const y=await fetch(i,{...n,headers:l});if(!y.ok)throw new Error(`The webserver rejected the request (${String(y.status)})`);return await y.json()}const lr=["android","ios"];function fr(t={},e){return cr("/api/v2/service/devices",{authorize:!1,commandOptions:t,signal:e})}function hn(t){return lr.includes(t)}async function pn(t,e={}){return(await fr(e)).find(s=>s.id===t)?.platform}function yn(t){let e={...t,updatedAt:new Date().toISOString()};return{path:gt(e.sessionId),save:r=>(e={...e,...r,updatedAt:new Date().toISOString()},An(e),e)}}function ur(t){const e=t.state?.phase;return e==="ended"||e==="error"?!1:pt(t.pid)}function wn(){const t=rr();return At(t,{recursive:!0}),Ar(t).map(e=>wt(e)).filter(e=>e!==void 0)}function gn(t){if(t!==void 0){const r=wt(t);if(!r)throw new Error(`No session found for id ${t}`);return r}const e=wn().filter(ur);if(e.length===0)throw new Error("No active sessions");if(e.length>1)throw new le("There are multiple active sessions",["Specify --session-id to pick one"]);return e[0]}function wt(t){try{return JSON.parse(Sr(gt(t),"utf8"))}catch{return}}function bn(t){vr(ht(t),{force:!0,recursive:!0})}function mn(t){return re(Oe(t),"control.sock")}function dr(t){return re(Oe(t),"daemon.log")}function En(t){return re(Oe(t),"device.log.jsonl")}function Sn(t,e){return{daemon:dr(t),device:En(t),...e==="intercept"?{network:vn(t)}:void 0}}function vn(t){return re(Oe(t),"network.jsonl")}function Oe(t){const e=ht(t);return At(e,{recursive:!0}),e}function gt(t){return re(Oe(t),"state.json")}function An(t){const e=gt(t.sessionId),r=`${e}.tmp`;mr(r,`${JSON.stringify(t,null,2)}
|
|
3
|
-
`),Er(r,e)}const bt="APPETIZE_DAEMON_CONFIG";function xn(){const t=process.env[bt];if(!t)throw new Error(`${bt} is not set`);return JSON.parse(t)}function kn(t){return JSON.stringify(t)}function In(){let t,e;return{promise:new Promise((s,n)=>{e=s,t=n}),reject:t,resolve:e}}const hr={useRecords:!1},On=new Xt(hr);class pr extends be{#e=[];#t;constructor(e,{signal:r}={}){super(async l=>{this.#t.write(On.encode(l))},{signal:r}),this.#t=e;const s=new Js(hr);s.on("data",l=>{Je(l)&&this[R].dispatchMessage(l)}),s.on("error",()=>{this.close()});const n=l=>{s.write(l)},i=()=>{this.close()};e.on("data",n),e.once("close",i),e.once("error",i),this.#e.push(()=>{e.off("data",n),e.off("close",i),e.off("error",i),s.destroy()})}handleClose(e){for(const r of this.#e.splice(0))r();super.handleClose(e)}}function Tn(t,e){const{promise:r,reject:s,resolve:n}=In(),i=Or(t),l=e?.signal,y=()=>{i.off("connect",m),i.off("error",T),l?.removeEventListener("abort",v)},p=M=>{y(),i.destroy(),s(M)},v=()=>{p(new Error("The connection was aborted"))},m=()=>{y();const M=new pr(i,e);M[R].addEventListener("close",()=>{i.destroy()},{once:!0}),n(M)},T=M=>{p(M)};return l?.aborted?(p(new Error("The connection was aborted")),r):(i.once("connect",m),i.once("error",T),l?.addEventListener("abort",v,{once:!0}),r)}export{It as A,gn as B,sn as C,bt as D,Ys as E,Ke as F,Ks as G,R as H,Bs as I,Je as J,Nt as K,Ue as L,Ve as M,pr as N,xn as O,yn as P,pn as Q,mn as R,Te as S,be as T,le as U,sr as V,ir as a,fr as b,lr as c,rn as d,Ct as e,cr as f,on as g,_r as h,hn as i,dr as j,ur as k,pt as l,tn as m,ln as n,ar as o,yt as p,wt as q,or as r,kn as s,Xs as t,bn as u,Sn as v,nn as w,Be as x,Tn as y,vs as z};
|