@appetize/cli 0.27.0 → 0.28.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 +10 -0
- package/cli.js +30 -10
- package/daemon.js +1 -1
- package/package.json +2 -2
- package/skills/appetize/SKILL.md +2 -2
- package/skills/appetize/references/commands.md +12 -8
- package/stream-X6gIBNIh.js +4 -0
- package/viewer.html +1 -1
- package/stream-Cbdd68uZ.js +0 -4
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 dr(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var xe={exports:{}},We,Ct;function hr(){if(Ct)return We;Ct=1;var t=1e3,e=t*60,r=e*60,n=r*24,i=n*7,s=n*365.25;We=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):h(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 h(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 We}var Ge,Et;function pr(){if(Et)return Ge;Et=1;function t(e){n.debug=n,n.default=n,n.coerce=p,n.disable=h,n.enable=s,n.enabled=c,n.humanize=hr(),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 M=0;b[0]=b[0].replace(/%([a-zA-Z%])/g,(z,X)=>{if(z==="%%")return"%";M++;const _=n.formatters[X];if(typeof _=="function"){const G=b[M];z=_.call(E,G),b.splice(M,1),M--}return z}),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 h(){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 Ge=t,Ge}var Rt;function yr(){return Rt||(Rt=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=pr()(e);const{formatters:h}=t.exports;h.j=function(c){try{return JSON.stringify(c)}catch(p){return"[UnexpectedJSONParseError]: "+p.message}}})(xe,xe.exports)),xe.exports}var wr=yr(),Ee=dr(wr),de={},ae={},Re={},Ot;function Ne(){return Ot||(Ot=1,(function(t){var e=Re&&Re.__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 h=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 h(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:h(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})(Re)),Re}var Oe={},At;function Mt(){return At||(At=1,Object.defineProperty(Oe,"__esModule",{value:!0}),Oe.DefaultErrorCode=void 0,Oe.DefaultErrorCode=0),Oe}var Pt;function vr(){if(Pt)return ae;Pt=1;var t=ae&&ae.__awaiter||function(o,h,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,h||[])).next())})},e=ae&&ae.__generator||function(o,h){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=h.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(ae,"__esModule",{value:!0}),ae.JSONRPCClient=void 0;var r=Ne(),n=Mt(),i=(function(){function o(h,c){this._send=h,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(h,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)))})},h);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(h,c,p){return this.requestWithID(h,c,p,this._createID())},o.prototype.requestWithID=function(h,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,h,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(h,c){var p=this,w=Array.isArray(h);Array.isArray(h)||(h=[h]);var y=h.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?h:h[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(h,c,p){var w=(0,r.createJSONRPCNotification)(h,c);this.send(w,p).then(void 0,function(){})},o.prototype.send=function(h,c){return t(this,void 0,void 0,function(){return e(this,function(p){return[2,this._send(h,c)]})})},o.prototype.rejectAllPendingRequests=function(h){this.idToResolveMap.forEach(function(c,p){return c((0,r.createJSONRPCErrorResponse)(p,n.DefaultErrorCode,h))}),this.idToResolveMap.clear()},o.prototype.receive=function(h){var c=this;Array.isArray(h)||(h=[h]),h.forEach(function(p){var w=c.idToResolveMap.get(p.id);w&&(c.idToResolveMap.delete(p.id),w(p))})},o})();ae.JSONRPCClient=i;var s=function(o){return o!=null};return ae}var He={},It;function gr(){return It||(It=1,Object.defineProperty(He,"__esModule",{value:!0})),He}var ce={},kt;function br(){return kt||(kt=1,(function(t){var e=ce&&ce.__awaiter||function(C,b,E,A){function k(M){return M instanceof E?M:new E(function(D){D(M)})}return new(E||(E=Promise))(function(M,D){function z(G){try{_(A.next(G))}catch(ve){D(ve)}}function X(G){try{_(A.throw(G))}catch(ve){D(ve)}}function _(G){G.done?M(G.value):k(G.value).then(z,X)}_((A=A.apply(C,b||[])).next())})},r=ce&&ce.__generator||function(C,b){var E={label:0,sent:function(){if(M[0]&1)throw M[1];return M[1]},trys:[],ops:[]},A,k,M,D;return D={next:z(0),throw:z(1),return:z(2)},typeof Symbol=="function"&&(D[Symbol.iterator]=function(){return this}),D;function z(_){return function(G){return X([_,G])}}function X(_){if(A)throw new TypeError("Generator is already executing.");for(;D&&(D=0,_[0]&&(E=0)),E;)try{if(A=1,k&&(M=_[0]&2?k.return:_[0]?k.throw||((M=k.return)&&M.call(k),0):k.next)&&!(M=M.call(k,_[1])).done)return M;switch(k=0,M&&(_=[_[0]&2,M.value]),_[0]){case 0:case 1:M=_;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(M=E.trys,!(M=M.length>0&&M[M.length-1])&&(_[0]===6||_[0]===2)){E=0;continue}if(_[0]===3&&(!M||_[1]>M[0]&&_[1]<M[3])){E.label=_[1];break}if(_[0]===6&&E.label<M[1]){E.label=M[1],M=_;break}if(M&&E.label<M[2]){E.label=M[2],E.ops.push(_);break}M[2]&&E.ops.pop(),E.trys.pop();continue}_=b.call(C,E)}catch(G){_=[6,G],k=0}finally{A=M=0}if(_[0]&5)throw _[1];return{value:_[0]?_[1]:void 0,done:!0}}},n=ce&&ce.__spreadArray||function(C,b,E){if(E||arguments.length===2)for(var A=0,k=b.length,M;A<k;A++)(M||!(A in b))&&(M||(M=Array.prototype.slice.call(b,0,A)),M[A]=b[A]);return C.concat(M||Array.prototype.slice.call(b))};Object.defineProperty(t,"__esModule",{value:!0}),t.JSONRPCServer=t.createMethodNotFoundResponse=t.createInvalidRequestResponse=void 0;var i=Ne(),s=Mt(),o=function(){return(0,i.createJSONRPCErrorResponse)(null,i.JSONRPCErrorCode.ParseError,"Parse error")},h=function(C){return(0,i.createJSONRPCErrorResponse)((0,i.isJSONRPCID)(C.id)?C.id:null,i.JSONRPCErrorCode.InvalidRequest,"Invalid Request")};t.createInvalidRequestResponse=h;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(M){return v(E.id,M)})}},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(M){switch(M.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=M.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(M){switch(M.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=M.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,M){return b(function(D,z){return E(A,D,z)},k,M)}},C.prototype.callMethod=function(b,E,A){var k=this,M=function(z,X){return b?b(z,X):k.handleMethodNotFound(z,X)},D=function(z){return k.errorListener('An unexpected error occurred while executing "'.concat(E.method,'" JSON-RPC method:'),z),Promise.resolve(k.mapErrorToJSONRPCErrorResponseIfNecessary(E.id,z))};try{return(this.middleware||y)(M,E,A).then(void 0,D)}catch(z){return D(z)}},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,M;return b instanceof i.JSONRPCErrorException&&(k=b.code,M=b.data),(0,i.createJSONRPCErrorResponse)(C,k,A,M)},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)}})(ce)),ce}var le={},xt;function mr(){if(xt)return le;xt=1;var t=le&&le.__awaiter||function(i,s,o,h){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(h.next(S))}catch(g){w(g)}}function v(S){try{f(h.throw(S))}catch(g){w(g)}}function f(S){S.done?p(S.value):c(S.value).then(y,v)}f((h=h.apply(i,s||[])).next())})},e=le&&le.__generator||function(i,s){var o={label:0,sent:function(){if(p[0]&1)throw p[1];return p[1]},trys:[],ops:[]},h,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(h)throw new TypeError("Generator is already executing.");for(;w&&(w=0,f[0]&&(o=0)),o;)try{if(h=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{h=p=0}if(f[0]&5)throw f[1];return{value:f[0]?f[1]:void 0,done:!0}}};Object.defineProperty(le,"__esModule",{value:!0}),le.JSONRPCServerAndClient=void 0;var r=Ne(),n=(function(){function i(s,o,h){h===void 0&&(h={});var c;this.server=s,this.client=o,this.errorListener=(c=h.errorListener)!==null&&c!==void 0?c:console.warn}return i.prototype.applyServerMiddleware=function(){for(var s,o=[],h=0;h<arguments.length;h++)o[h]=arguments[h];(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,h){return this.client.request(s,o,h)},i.prototype.requestAdvanced=function(s,o){return this.client.requestAdvanced(s,o)},i.prototype.notify=function(s,o,h){this.client.notify(s,o,h)},i.prototype.rejectAllPendingRequests=function(s){this.client.rejectAllPendingRequests(s)},i.prototype.receiveAndSend=function(s,o,h){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,h)]:[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 le.JSONRPCServerAndClient=n,le}var Nt;function Sr(){return Nt||(Nt=1,(function(t){var e=de&&de.__createBinding||(Object.create?(function(n,i,s,o){o===void 0&&(o=s);var h=Object.getOwnPropertyDescriptor(i,s);(!h||("get"in h?!i.__esModule:h.writable||h.configurable))&&(h={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(n,o,h)}):(function(n,i,s,o){o===void 0&&(o=s),n[o]=i[s]})),r=de&&de.__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(vr(),t),r(gr(),t),r(Ne(),t),r(br(),t),r(mr(),t)})(de)),de}var _e=Sr();class Cr 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 Er(t,e){const r="CloseEvent"in globalThis?globalThis.CloseEvent:Cr;return new r(t,e)}class Rr{#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 B=Symbol.for("@appetizeio/rpc:rpcMethods");class Or extends Rr{send;constructor(e){super(),this.send=e}dispatchClose(e){return this.dispatchEvent(Er("close",e))}dispatchMessage(e){return this.dispatchEvent(new CustomEvent("message",{detail:e}))}}const _t=Ee("appetize.io:error:rpc");function Ze(t,e){const r=new _e.JSONRPCServerAndClient(new _e.JSONRPCServer({errorListener:_t}),Mr(t),{errorListener:_t}),n=t[B].addEventListener("message",({detail:s})=>{r.receiveAndSend(s)}),i=t[B].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 Ar(t,e){const{rpc:r,unsub:n}=Ze(t,e);return{client:r.client,unsub:n}}function Fe(t,e){const r=t[B].addEventListener("message",({detail:i})=>{if("method"in i)try{e({method:i.method,param:i.params})}catch{}}),n=t[B].addEventListener("close",r,{once:!0});return()=>{r(),n()}}function Mr(t){return new _e.JSONRPCClient(t[B].send.bind(t[B]),()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)+1)}const Pr=(...t)=>Ar(...t),Xe=["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Enter","Tab"],Ir=33333,kr=[[99,10],[396,11],[792,21],[1620,22],[3600,31],[5120,32],[8192,40],[8704,42],[22080,50],[36864,51],[139264,60]],xr=new Intl.Segmenter(void 0,{granularity:"grapheme"}),Nr=new Set(Xe);class _r{#e;#r=!1;#t;#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.#t=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.#r||(this.#r=!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=Ur(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.#t.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.#r)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+=Ir}}}}catch(e){this.#r||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.#t.drawImage(r,0,0,e.width,e.height),r.close()}}function Fr(t,e,{signal:r}={}){if(r?.aborted)return()=>{};const n=s=>{s.altKey||s.ctrlKey||s.metaKey||!Jr(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 Tr(t,e,{signal:r}={}){let n,i;const s=p=>{n===void 0&&(p.preventDefault(),n=p.pointerId,i=Ye(e,p),e.focus(),e.setPointerCapture(p.pointerId),t.touch.down(i.x,i.y))},o=p=>{p.pointerId===n&&(p.preventDefault(),i=Ye(e,p),t.touch.move(i.x,i.y))},h=p=>{if(p.pointerId!==n)return;p.preventDefault();const w=Ye(e,p);t.touch.up(w.x,w.y),Tt(e,p.pointerId),n=void 0,i=void 0},c=()=>{n!==void 0&&Tt(e,n),i&&t.touch.up(i.x,i.y),n=void 0,i=void 0,e.removeEventListener("pointercancel",h),e.removeEventListener("pointerdown",s),e.removeEventListener("pointermove",o),e.removeEventListener("pointerup",h),r?.removeEventListener("abort",c)};return r?.aborted||(e.addEventListener("pointercancel",h),e.addEventListener("pointerdown",s),e.addEventListener("pointermove",o),e.addEventListener("pointerup",h),r?.addEventListener("abort",c,{once:!0})),c}async function Lr(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 _r({canvas:e,context:s,onClose:r,onError:n,signal:i,stream:o}).close}}function Ft(t){return Math.max(0,Math.min(1,t))}function Ur(t,e,r){const n=Math.ceil(e/16)*Math.ceil(r/16),i=kr.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,h=t[s]===0&&t[s+1]===0&&t[s+2]===0&&t[s+3]===1,c=o?s+3:h?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 Jr(t){return Array.from(xr.segment(t)).length===1||Nr.has(t)}function Ye(t,e){const r=t.getBoundingClientRect();return{x:Ft((e.clientX-r.left)/r.width),y:Ft((e.clientY-r.top)/r.height)}}function Tt(t,e){t.hasPointerCapture(e)&&t.releasePointerCapture(e)}function Lt(t){return!!t&&typeof t=="object"&&"jsonrpc"in t}class Te{closed=!1;[B];#e;constructor(e,{signal:r}={}){this[B]=new Or(e),this.#e=r,this.#e?.addEventListener("abort",this.#r)}close(e={}){this.closed||(this.closed=!0,this.handleClose(e))}handleClose(e){this.#e?.removeEventListener("abort",this.#r),this[B].dispatchClose(e)}#r=()=>{this.close({code:1e3,reason:String(this.#e?.reason)})}}const he=Ee("appetize.io:trace:transport:iframe");class Ut extends Te{onmessage;#e;#r;constructor(e,{origin:r="*",signal:n}={}){super(async i=>{e.postMessage(i,this.#e)},{signal:n}),this.#r=e,this.#e=r,window.addEventListener("message",this.#t)}postMessage(e,r,n){he("postMessage(legacy)",{message:e,targetOrigin:r,transfer:n}),this.#r.postMessage(e,r??this.#e,n)}handleClose(e){he("close()"),window.removeEventListener("message",this.#t),super.handleClose(e)}#t=async e=>{if(he("handleMessage()",e),e.source!==this.#r||(he("handleMessage() -> source ok"),this.#e!=="*"&&e.origin!==this.#e))return;he("handleMessage() -> origin ok");const r=e.data;if(!Lt(r)){he("handleMessage() -> legacy"),this.onmessage?.(e);return}he("handleMessage() -> jsonrpc"),this[B].dispatchMessage(r)}}function Jt(t,e,{leftEffects:r=()=>({}),notifiesLeft:n,notifiesRight:i,rightEffects:s=()=>({})}={}){const o=Ze(t,{}),h=Ze(e,{}),c=[()=>{o.unsub(),h.unsub()}],p=()=>{for(const S of c)try{S()}catch{}},w=h.rpc.client,y=o.rpc.client;c.push(t[B].addEventListener("close",()=>{p()},{once:!0}),e[B].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&&h.rpc.addMethod(S,g)}return Dt(o.rpc,h.rpc,{notifies:n}),Dt(h.rpc,o.rpc,{notifies:i}),p}function Dt(t,e,{notifies:r}={}){t.applyServerMiddleware(async(n,i)=>{const s=r?.();if(s){const{id:h,...c}=i;s[B].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 ue(t,...e){t.notify(e[0],e[1],e[2])}function Qe(){const t=new Te(async r=>{e[B].dispatchMessage(r)}),e=new Te(async r=>{t[B].dispatchMessage(r)});return t[B].addEventListener("close",()=>{e.close()},{once:!0}),e[B].addEventListener("close",()=>{t.close()},{once:!0}),[t,e]}function Bt(t,e){const r=[],n=()=>{for(const i of r)i()};r.push(t[B].addEventListener("message",i=>e[B].send(i.detail))),r.push(t[B].addEventListener("close",n,{once:!0})),r.push(e[B].addEventListener("message",i=>t[B].send(i.detail))),r.push(e[B].addEventListener("close",n,{once:!0}))}function Dr(t){return{clearState:async e=>{await t.request("appetizeio.device.server.app.clearState",{appId:e})},launch:async e=>{await t.request("appetizeio.device.server.app.launch",{appId:e})},reinstall:async e=>{await t.request("appetizeio.device.server.app.reinstall",{appId:e})},restart:async e=>{await t.request("appetizeio.device.server.app.restart",{appId:e})}}}function et(){let t,e;return{promise:new Promise((n,i)=>{e=n,t=i}),reject:t,resolve:e}}const Br=2*1024*1024,jt=Ee("appetize:client:acked-writable-stream");class jr{unacked=0;#e;#r;#t;#n;#i=[];#o;constructor(e){this.#t=e,this.#o=e.window??Br}abort(e){this.#s(e),this.#t.onAbort?.(e)}async close(){await this.#c(()=>this.unacked===0),this.#t.onClose?.()}fail(e){this.#s(e)&&this.#t.onError?.(e)}start(e){this.#e=e}write(e){const r=e.byteLength;return this.unacked+=r,this.#t.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()},jt("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;jt("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.#r)return!1;this.#r={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={...et(),until:e};return this.#i.push(r),r.promise}}class zr extends WritableStream{get unacked(){return this.#e.unacked}#e;constructor(e){const r=new jr(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 qr=1024*1024;class Kr{#e;#r=!1;#t;#n;constructor(e){this.#t=e}cancel(e){this.#i(),this.#t?.(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.#r)return;this.#n??=et();const{promise:r}=this.#n;this.#e.enqueue(e),await r}start(e){this.#e=e}#i(){return this.#r?!1:(this.#r=!0,this.pull(),!0)}}class Vr extends ReadableStream{#e;constructor({highWaterMark:e=qr,onCancel:r}={}){const n=new Kr(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 $r{closed;readable;writable;#e=[];#r;#t;#n;#i;#o;#a="starting";constructor(e,{onClose:r,receiveBuffer:n,sendWindow:i,signal:s}){if(this.#o=e,this.#r=et(),this.closed=this.#r.promise,this.closed.catch(Wr),this.#n=new Vr({highWaterMark:n,onCancel:()=>{this.#s(void 0)}}),this.readable=this.#n,this.#i=new zr({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.#t?this.#t: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.#t=e,r&&ue(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.#r.reject(e):this.#r.resolve(void 0)}}}function Wr(){}class Gr{readable;ready;#e=[];#r=!1;#t;#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.#t=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.#t.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.#r||(this.#t.close(),this.#a(e))}#a(e){this.#r=!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 Hr{get subscribers(){return this.#t}#e;#r;#t=new Set;constructor(e){this.#e=e}close(){this.#r=void 0;for(const e of[...this.#t])e.close();this.#t.clear()}add(e){this.#t.add(e)}ensureStarted(){return this.#r||(this.#r=(async()=>{try{return await this.#e.start()}catch(e){throw this.#r=void 0,e}})()),this.#r}release(e){this.#t.delete(e),!(this.#t.size>0||!this.#r)&&(this.#r=void 0,this.#e.stop())}}class zt extends Hr{#e;constructor(e){super({start:e.start,stop:e.stop}),this.#e=e.label}async createStream({signal:e}={}){e?.throwIfAborted();const r=new Gr({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 Zr{#e;#r;#t;#n;constructor(e){this.#n=e,this.#r=new zt({label:"Log stream",start:()=>e.request("appetizeio.device.server.debug.log.start"),stop:()=>{ue(e,"appetizeio.device.server.debug.log.stop",void 0)}}),this.#t=new zt({label:"Proxy intercept stream",start:()=>e.request("appetizeio.device.server.debug.proxyIntercept.start"),stop:()=>{ue(e,"appetizeio.device.server.debug.proxyIntercept.stop",void 0)}})}close(){this.#e?.detach(),this.#r.close(),this.#t.close()}async createAdbTunnel({signal:e}={}){e?.throwIfAborted(),this.#e?.close();const r=new $r(this.#n,{onClose:()=>{this.#e=void 0},signal:e});return this.#e=r,await r.start(),r}async createLogStream(e){return await this.#r.createStream(e)}async createProxyInterceptStream(e){return await this.#t.createStream(e)}async handleAdbTunnelData({data:e}){await this.#e?.handleData(e)}handleAdbTunnelStopped(e){this.#e?.handleStopped(e)}handleLogEntry(e){this.#r.handleNotification(e)}handleProxyInterceptEvent(e){this.#t.handleNotification(e)}}function Le(t){return{...Xr(t),index:t.index,within:t.within?Le(t.within):void 0}}function Xr(t){switch(t.by){case"testId":return{by:"testId",testId:t.testId};case"text":return{by:"text",text:Yr(t.text)}}}function Yr(t){return typeof t=="string"?{kind:"exact",value:t}:{flags:t.flags,kind:"regex",source:t.source}}const Qr=400,qt=["byTestId","byText","duration","index","x","y"],en=new Set(qt),tn=/^-?(?:\d+(?:\.\d*)?|\.\d+)$/u,rn=/^[a-z]$/u,tt=/^\s$/u;class q extends SyntaxError{constructor(e,r,n){super(`${e} at position ${String(r)}`,{cause:n})}}class nn{#e=0;#r;constructor(e){this.#r=e}parse(){const e=[];for(;this.#e<this.#r.length;){const r=this.#s();if(tt.test(r))this.#e++;else if(r===">"){if(this.#r.charAt(this.#e+1)===">")throw new q('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.#r.slice(this.#e,this.#e+2);throw new q(`Unexpected ${JSON.stringify(n)}; write selectors as {...}`,this.#e)}}return e}#t(){const e=this.#e,r=this.#c(n=>n!=="="&&!rt(n));if(this.#s()!=="=")return{kind:"bare",name:r,offset:e};if(r.length===0)throw new q('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 q('Only \\" and \\\\ escapes are supported',this.#e-1);this.#e++,r+=i}else{if(n==="")throw new q("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 q("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 q(`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 q('Unclosed "{"',e);if(s==="}"){if(this.#e++,i===0)throw new q('Expected a selector or wait in "{}"',e);return r===void 0?cn(n,e):{duration:r,kind:"wait"}}const o=this.#t();if(i===0&&o.name==="wait")r=o.kind==="attribute"?Kt(o.value,"wait"):Qr;else{if(r!==void 0)throw new q('"wait" takes no other attributes',o.offset);on(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=>!rt(s));if(i.length===0)throw new q('Expected a value after "="',e);return{kind:"raw",offset:e,text:i}}if(!rt(this.#s()))throw new q('Expected a space or "}" after the value',this.#e);return n}#s(){return this.#r.charAt(this.#e)}#c(e){const r=this.#e;for(;this.#e<this.#r.length&&e(this.#s());)this.#e++;return this.#r.slice(r,this.#e)}#l(){this.#c(e=>tt.test(e))}}function sn(t){return new nn(t).parse()}function on(t,e,r){const{name:n,offset:i}=e;if(e.kind==="attribute"){nt(t,n,i,e.value);return}if(!n.includes(","))throw new q(`Expected key=value, got ${JSON.stringify(n)}`,i);if(r>0)throw new q("Write the x,y position first",i);const[s,o,...h]=n.split(",");if(h.length>0)throw new q("Expected a screen position as x,y",i);const c=i+s.length+1;nt(t,"x",i,{kind:"raw",offset:i,text:s}),nt(t,"y",c,{kind:"raw",offset:c,text:o})}function an(t){return en.has(t)}function rt(t){return t===""||t==="}"||tt.test(t)}function nt(t,e,r,n){if(!an(e))throw new q(`Unknown attribute ${JSON.stringify(e)}; expected one of ${qt.join(", ")}`,r);if(t.offsets[e]!==void 0)throw new q(`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 q("Only one of byText and byTestId may be given",r);e==="byText"?t.byText=fn(n):t.byTestId=un(n);return;default:t[e]=Kt(n,e)}}function cn(t,e){return{duration:t.duration,kind:"move",to:ln(t,e)}}function Kt(t,e){if(t.kind!=="raw"||!tn.test(t.text))throw new q(`"${e}" takes a number`,t.offset);return Number(t.text)}function ln(t,e){const{byTestId:r,byText:n,index:i,offsets:s,x:o,y:h}=t;if(n!==void 0)return{by:"text",index:i,text:n,x:o,y:h};if(r!==void 0)return{by:"testId",index:i,testId:r,x:o,y:h};if(s.index!==void 0)throw new q('"index" needs byText or byTestId',s.index);if(o===void 0||h===void 0)throw new q("A screen position needs x and y",e);return{by:"position",x:o,y:h}}function un(t){if(t.kind==="regex")throw new q('"byTestId" takes a string',t.offset);return t.text}function fn(t){return t.kind==="regex"?t.regex:t.text}function Ae(t){return t.by==="position"?{by:"position",x:t.x,y:t.y}:{...Le(t),x:t.x,y:t.y}}function dn(t){return t.map(e=>e.kind==="move"?{duration:e.duration,kind:"move",to:Ae(e.to)}:e)}function hn(t){return{press:e=>{ue(t,"appetizeio.device.server.keyboard.press",{key:e})}}}function pn({onRequest:t,parent:e,proxyInlet:r,signal:n}){const i=new Ut(e,{signal:n}),s=[()=>{i.close()}];return Bt(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 yn="@appetizeio/rpc:playwrightAdapter",Ue=Symbol.for(yn);function wn(t){window[Ue]&&console.warn("playwright exposed more than once, overwriting previous adapter");const e={send(r){t[B].send(r)},subscribe(r){return t[B].addEventListener("message",n=>{r(n.detail)})}};return window[Ue]=e,()=>{window[Ue]===e&&delete window[Ue]}}function vn({onRequest:t,proxyInlet:e}){const[r,n]=Qe(),s=[wn(n),()=>{r.close()}];return Bt(r,e),t&&s.push(Fe(r,o=>{t(o,{source:"parent"})})),{cleanup:()=>{for(const o of s)o()},notifies:()=>r}}function gn(t){return{clearKeychain:async()=>{await t.request("appetizeio.device.server.settings.clearKeychain")},setAppearance:async e=>{await t.request("appetizeio.device.server.settings.setAppearance",{appearance:e})},setBiometryEnrolled:async e=>{await t.request("appetizeio.device.server.settings.setBiometryEnrolled",{enrolled:e})},setFontSize:async e=>{await t.request("appetizeio.device.server.settings.setFontSize",{fontSize:e})},setLocation:async({latitude:e,longitude:r})=>{await t.request("appetizeio.device.server.settings.setLocation",{latitude:e,longitude:r})}}}function bn(t){return"to"in t?{from:Ae(t.from),kind:"path",to:Ae(t.to)}:{direction:t.direction,distance:t.distance,from:t.from?Ae(t.from):void 0,kind:"direction"}}function mn(t){return{down:(e,r)=>{ue(t,"appetizeio.device.server.touch.down",{x:e,y:r})},move:(e,r)=>{ue(t,"appetizeio.device.server.touch.move",{x:e,y:r})},up:(e,r)=>{ue(t,"appetizeio.device.server.touch.up",{x:e,y:r})}}}const Sn=new Set(Xe),Cn=/^(?<key>[A-Za-z]+)>(?<repeat>\d+)\/$/u,En=/(\{\{|\{[^{}]*\})/u;function Rn(t){const e=[];let r="";function n(){r.length>0&&(e.push({kind:"text",text:r}),r="")}for(const[i,s]of t.split(En).entries())if(i%2===0){if(s.includes("{"))throw new Error(`Unclosed "{" in ${JSON.stringify(t)}`);r+=s}else s==="{{"?r+="{":(n(),e.push(An(s.slice(1,-1))));return n(),e}function On(t,e){if(!Sn.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: ${Xe.join(", ")}. Type characters as text, and escape a literal "{" as "{{".`)}function An(t){const e=Cn.exec(t)?.groups,r=e?.key??t;if(On(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 Mn=Symbol("@appetizeio/client:v1Compat");function Vt(t){return t?.[Mn]}class Pn{readable;ready;get dimensions(){return this.#n}#e=[];#r=!1;#t;#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.#t=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.#t.enqueue(e)}requestKeyFrame=()=>{this.#r||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.#r||(this.#t.close(),this.#s(e))}#s(e){this.#r=!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 In{#e=!1;#r;#t;#n=new Set;constructor(e){this.#r=e}close(){this.#t=void 0;for(const e of[...this.#n])e.close()}async createStream({signal:e}={}){e?.throwIfAborted();const r=new Pn({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.#t?(this.#a(),this.#t):(this.#e=!0,this.#t=(async()=>{try{await this.#r.request("appetizeio.device.server.video.start")}catch(e){throw this.#t=void 0,e}})(),this.#t)}#o(e){this.#n.delete(e),!(this.#n.size>0||!this.#t)&&(this.#t=void 0,ue(this.#r,"appetizeio.device.server.video.stop",void 0))}#a(){this.#e||(this.#e=!0,ue(this.#r,"appetizeio.device.server.video.requestKeyFrame",void 0))}}class kn{app;debug;keyboard;settings;touch;video;#e;#r=[];#t;constructor(e,r={}){const n=Vt(r)??{},{baseUrl:i,onClose:s,signal:o}=r;this.#e=i?xn(i):void 0;const{onRequest:h,parent:c,proxyRequest:p}=n,w=Nn(h);o?.addEventListener("abort",this.close);const[y,v]=Qe(),[f,S]=Qe();this.#r.push(()=>{y.close(),v.close(),f.close(),S.close()}),this.#r.push(Jt(S,e,{leftEffects:p}));const g=c==="playwright"?vn({onRequest:w,proxyInlet:f}):c?pn({onRequest:w,parent:c,proxyInlet:f,signal:o}):void 0;g&&this.#r.push(g.cleanup),this.#r.push(Jt(v,f,{notifiesLeft:g?.notifies}));const{client:C,unsub:b}=Pr(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.#t=C,this.#r.push(b);const E=new Zr(this.#t);this.#r.push(()=>{E.close()});const A=new In(this.#t);this.#r.push(()=>{A.close()}),this.app=Dr(this.#t),this.debug=E,this.keyboard=hn(this.#t),this.settings=gn(this.#t),this.touch=mn(this.#t),this.video=A,w&&(this.#r.push(Fe(v,k=>{w(k,{source:"self"})})),e instanceof Ut&&this.#r.push(Fe(e,k=>{w(k,{source:"iframe"})}))),this.#r.push(()=>s?.())}async authenticateBiometry({match:e=!0}={}){await this.#t.request("appetizeio.device.server.authenticateBiometry",{match:e})}close=()=>{for(const e of this.#r)try{e()}catch(r){console.error("Device cleanup error:",r)}};async fold(e){await this.#t.request("appetizeio.device.server.fold",{hinge:e})}async gesture(e,r){await this.#t.request("appetizeio.device.server.gesture",{options:r,steps:dn(typeof e=="string"?sn(e):e)})}async inspect(e,r){return await this.#t.request("appetizeio.device.server.inspect",{options:r,selector:e?Le(e):void 0})}async open(e){new URL(e),await this.#t.request("appetizeio.device.server.open",{url:e})}async press(e){await this.#t.request("appetizeio.device.server.press",{action:e})}async rotate(e){await this.#t.request("appetizeio.device.server.rotate",{orientation:e})}async screenshot(e,r){const n=await this.#t.request("appetizeio.device.server.screenshot",{options:r,selector:e?Le(e):void 0}),i=this.#e?new URL(n.url,this.#e).href:n.url,s=await fetch(i);if(!s.ok)throw new Error(`Screenshot download failed: ${String(s.status)} ${s.statusText}`);const o=s.headers.get("content-type")??"application/octet-stream";return{data:new Uint8Array(await s.arrayBuffer()),mimeType:o}}async shake(){await this.#t.request("appetizeio.device.server.shake")}async swipe(e,r){await this.#t.request("appetizeio.device.server.swipe",{gesture:bn(e),options:r})}async tap(e,r){await this.#t.request("appetizeio.device.server.tap",{options:r,selector:Ae(e)})}async type(e,r){await this.#t.request("appetizeio.device.server.type",{options:r,steps:Rn(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 Nn=t=>{if(t)return(e,r)=>{e.method.startsWith("appetizeio.device.server.")&&t(e,r)}};let it;try{it=new TextDecoder}catch{}let P,V,d=0;const _n=105,Fn=57342,Tn=57343,$t=57337,Wt=6,ge={};let Je=11281e4,be=1681e4,Ln=1671e4,me=Ln,L={},K,De,Be=0,Me=0,H,re,$=[],st=[],Q,Y,ie,Gt={useRecords:!1,mapsAsObjects:!0},Pe=!1,Ht=2;try{new Function("")}catch{Ht=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[ne(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(P)return rr(()=>{ut();try{return this?this.decode(e,r):ke.prototype.decode.call(Gt,e,r)}catch(n){throw n&&typeof n=="object"&&Zt.add(n),n}});V=r>-1?r:e.length,d=0,Me=0,De=null,H=null,P=e;try{Y=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(n){throw P=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,Q=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return K=this.structures,ze();(!K||K.length>0)&&(K=[])}else L=Gt,(!K||K.length>0)&&(K=[]),Q=null;return ze()}decodeMultiple(e,r){let n,i=0;try{let s=e.length;Pe=!0;let o=this?this.decode(e,s):dt.decode(e,s);if(r){if(r(o)===!1)return;for(;d<s;)if(i=d,r(ze())===!1)return}else{for(n=[o];d<s;)i=d,n.push(ze());return n}}catch(s){throw s.lastPosition=i,s.values=n,s}finally{Pe=!1,ut()}}}const Zt=new WeakSet;let je;function ze(){try{je=V-d;let t=U();if(H){if(d>=H.postBundlePosition)throw new Error("Unexpected bundle position");d=H.postBundlePosition,H=null}if(d==V)K=null,P=null,re&&(re=null);else if(d>V){let e=new Error("Unexpected end of CBOR data");throw e.incomplete=!0,e}else if(!Pe)throw new Error("Data read, but end of buffer not reached");return t}catch(t){throw ut(),Zt.has(t)?t.incomplete&&(t.incomplete=!1):(t instanceof RangeError&&d+8>V||t&&typeof t.message=="string"&&t.message.startsWith("Unexpected end of buffer"))&&(t.incomplete=!0),t}}function ee(){let t=new Error("Unexpected end of CBOR data");return t.incomplete=!0,t}function U(){if(!(d<V))throw ee();let t=P[d++],e=t>>5;if(t=t&31,t>23)switch(t){case 24:if(d>=V)throw ee();t=P[d++];break;case 25:if(e==7)return Bn();t=Y.getUint16(d),d+=2;break;case 26:if(e==7){let r=Y.getFloat32(d);if(L.useFloat32>2){let n=ft[(P[d]&127)<<1|P[d+1]>>7];return d+=4,(n*r+(r>0?.5:-.5)>>0)/n}return d+=4,r}if(t=Y.getUint32(d),d+=4,e===1)return-1-t;break;case 27:if(e==7){let r=Y.getFloat64(d);return d+=8,r}if(e>1){if(Y.getUint32(d)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");t=Y.getUint32(d+4)}else L.int64AsNumber?(t=Y.getUint32(d)*4294967296,t+=Y.getUint32(d+4)):t=Y.getBigUint64(d);d+=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>=Je)throw new Error(`Array length exceeds ${Je}`);r[i++]=n}return e==4?r:e==3?r.join(""):Buffer.concat(r);case 5:let s;if(L.mapsAsObjects){let o={},h=0;if(L.keyMap)for(;(s=U())!=ge;){if(h++>=me)throw new Error(`Property count exceeds ${me}`);o[ne(L.decodeKey(s))]=U()}else for(;(s=U())!=ge;){if(h++>=me)throw new Error(`Property count exceeds ${me}`);o[ne(s)]=U()}return o}else{ie&&(L.mapsAsObjects=!0,ie=!1);let o=new Map;if(L.keyMap){let h=0;for(;(s=U())!=ge;){if(h++>=be)throw new Error(`Map size exceeds ${be}`);o.set(L.decodeKey(s),U())}}else{let h=0;for(;(s=U())!=ge;){if(h++>=be)throw new Error(`Map size exceeds ${be}`);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:if(t>V-d)throw ee();return Dn(t);case 3:if(Me>=d)return De.slice(d-Be,(d+=t)-Be);if(t>V-d)throw ee();if(Me==0&&V<140&&t<32){let i=t<16?Yt(t):Jn(t);if(i!=null)return i}return Un(t);case 4:if(t>Je)throw new Error(`Array length exceeds ${Je}`);if(t>V-d||(je-=t)<0)throw ee();let r=new Array(t);for(let i=0;i<t;i++)r[i]=U();return r;case 5:if(L.mapsAsObjects){if(t>me)throw new Error(`Property count exceeds ${me}`);if(t>(V-d)/2)throw ee();let i={};if(L.keyMap)for(let s=0;s<t;s++)i[ne(L.decodeKey(U()))]=U();else for(let s=0;s<t;s++)i[ne(U())]=U();return i}else{if(ie&&(L.mapsAsObjects=!0,ie=!1),t>be)throw new Error(`Map size exceeds ${be}`);if(t>(V-d)/2)throw ee();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>=$t){let i=K[t&8191];if(i)return i.read||(i.read=ot(i)),i.read();if(t<65536){if(t==Tn){let s=Ce(),o=U(),h=U();ct(o,h);let c={};if(L.keyMap)for(let p=2;p<s;p++){let w=L.decodeKey(h[p-2]);c[ne(w)]=U()}else for(let p=2;p<s;p++){let w=h[p-2];c[ne(w)]=U()}return c}else if(t==Fn){let s=Ce(),o=U();for(let h=2;h<s;h++)ct(o++,U());return U()}else if(t==$t)return $n();if(L.getShared&&(lt(),i=K[t&8191],i))return i.read||(i.read=ot(i)),i.read()}}let n=$[t];if(n)return n.handlesRead?n(U):n(U());{let i=U();for(let s=0;s<st.length;s++){let o=st[s](t,i);if(o!==void 0)return o}return new pe(i,t)}case 7:switch(t){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;default:let i=(Q||ye())[t];if(i!==void 0)return i;throw new Error("Unknown token "+t)}default:throw isNaN(t)?ee():new Error("Unknown CBOR token "+t)}}const Xt=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function ot(t){if(!t)throw new Error("Structure is required in record definition");function e(){let r=P[d++];if(r=r&31,r>23)switch(r){case 24:r=P[d++];break;case 25:r=Y.getUint16(d),d+=2;break;case 26:r=Y.getUint32(d),d+=4;break;default:throw new Error("Expected array header, but got "+P[d-1])}let n=this.compiledReader;for(;n;){if(n.propertyCount===r)return n(U);n=n.next}if(this.slowReads++>=Ht){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=>Xt.test(o)?ne(o)+":r()":"["+JSON.stringify(o)+"]:r()").join(",")+"}"):new Function("r","return {"+s.map(o=>Xt.test(o)?ne(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[ne(L.decodeKey(this[s]))]=U();else for(let s=0;s<r;s++)i[ne(this[s])]=U();return i}return t.slowReads=0,e}function ne(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 Un=at;function at(t){let e;if(t<16&&(e=Yt(t)))return e;if(t>64&&it)return it.decode(P.subarray(d,d+=t));const r=d+t,n=[];for(e="";d<r;){const i=P[d++];if((i&128)===0)n.push(i);else if((i&224)===192)if(i<194||d>=r||(P[d]&192)!==128)n.push(65533);else{const s=P[d++]&63;n.push((i&31)<<6|s)}else if((i&240)===224){const s=d<r?P[d]:0;if(d>=r||(s&192)!==128||i===224&&s<160||i===237&&s>=160)n.push(65533);else if(d++,d>=r||(P[d]&192)!==128)n.push(65533);else{const o=P[d++]&63;n.push((i&31)<<12|(s&63)<<6|o)}}else if((i&248)===240){const s=d<r?P[d]:0;if(i>244||d>=r||(s&192)!==128||i===240&&s<144||i===244&&s>=144)n.push(65533);else if(d++,d>=r||(P[d]&192)!==128)n.push(65533);else{const o=P[d++]&63;if(d>=r||(P[d]&192)!==128)n.push(65533);else{const h=P[d++]&63;let c=(i&7)<<18|(s&63)<<12|o<<6|h;c-=65536,n.push(c>>>10&1023|55296),n.push(56320|c&1023)}}}else n.push(65533);n.length>=4096&&(e+=Z.apply(String,n),n.length=0)}return n.length>0&&(e+=Z.apply(String,n)),e}let Z=String.fromCharCode;function Jn(t){let e=d,r=new Array(t);for(let n=0;n<t;n++){const i=P[d++];if((i&128)>0){d=e;return}r[n]=i}return Z.apply(String,r)}function Yt(t){if(t<4)if(t<2){if(t===0)return"";{let e=P[d++];if((e&128)>1){d-=1;return}return Z(e)}}else{let e=P[d++],r=P[d++];if((e&128)>0||(r&128)>0){d-=2;return}if(t<3)return Z(e,r);let n=P[d++];if((n&128)>0){d-=3;return}return Z(e,r,n)}else{let e=P[d++],r=P[d++],n=P[d++],i=P[d++];if((e&128)>0||(r&128)>0||(n&128)>0||(i&128)>0){d-=4;return}if(t<6){if(t===4)return Z(e,r,n,i);{let s=P[d++];if((s&128)>0){d-=5;return}return Z(e,r,n,i,s)}}else if(t<8){let s=P[d++],o=P[d++];if((s&128)>0||(o&128)>0){d-=6;return}if(t<7)return Z(e,r,n,i,s,o);let h=P[d++];if((h&128)>0){d-=7;return}return Z(e,r,n,i,s,o,h)}else{let s=P[d++],o=P[d++],h=P[d++],c=P[d++];if((s&128)>0||(o&128)>0||(h&128)>0||(c&128)>0){d-=8;return}if(t<10){if(t===8)return Z(e,r,n,i,s,o,h,c);{let p=P[d++];if((p&128)>0){d-=9;return}return Z(e,r,n,i,s,o,h,c,p)}}else if(t<12){let p=P[d++],w=P[d++];if((p&128)>0||(w&128)>0){d-=10;return}if(t<11)return Z(e,r,n,i,s,o,h,c,p,w);let y=P[d++];if((y&128)>0){d-=11;return}return Z(e,r,n,i,s,o,h,c,p,w,y)}else{let p=P[d++],w=P[d++],y=P[d++],v=P[d++];if((p&128)>0||(w&128)>0||(y&128)>0||(v&128)>0){d-=12;return}if(t<14){if(t===12)return Z(e,r,n,i,s,o,h,c,p,w,y,v);{let f=P[d++];if((f&128)>0){d-=13;return}return Z(e,r,n,i,s,o,h,c,p,w,y,v,f)}}else{let f=P[d++],S=P[d++];if((f&128)>0||(S&128)>0){d-=14;return}if(t<15)return Z(e,r,n,i,s,o,h,c,p,w,y,v,f,S);let g=P[d++];if((g&128)>0){d-=15;return}return Z(e,r,n,i,s,o,h,c,p,w,y,v,f,S,g)}}}}}function Dn(t){return L.copyBuffers?Uint8Array.prototype.slice.call(P,d,d+=t):P.subarray(d,d+=t)}let Qt=new Float32Array(1),qe=new Uint8Array(Qt.buffer,0,4);function Bn(){let t=P[d++],e=P[d++],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 qe[3]=t&128|(r>>1)+56,qe[2]=(t&7)<<5|e>>3,qe[1]=e<<5,qe[0]=0,Qt[0]}new Array(4096);class pe{constructor(e,r){this.value=e,this.tag=r}}$[0]=t=>new Date(t),$[1]=t=>new Date(Math.round(t*1e3)),$[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},$[3]=t=>BigInt(-1)-$[2](t),$[4]=t=>+(t[1]+"e"+t[0]),$[5]=t=>t[1]*Math.exp(t[0]*Math.log(2));const ct=(t,e)=>{t=t-57344;let r=K[t];r&&r.isShared&&((K.restoreStructures||(K.restoreStructures=[]))[t]=r),K[t]=e,e.read=ot(e)};$[_n]=t=>{let e=t.length,r=t[1];ct(t[0],r);let n={};for(let i=2;i<e;i++){let s=r[i-2];n[ne(s)]=t[i]}return n},$[14]=t=>H?H[0].slice(H.position0,H.position0+=t):new pe(t,14),$[15]=t=>H?H[1].slice(H.position1,H.position1+=t):new pe(t,15);let jn={Error,RegExp};$[27]=t=>(jn[t[0]]||Error)(t[1],t[2]);const er=t=>{if(!(d<V))throw ee();if(P[d++]!=132)throw new Error("Packed values structure must be followed by a 4 element array");let e=t();if(!Array.isArray(e)||!e.length)throw new Error("Packed values structure must be followed by a 4 element array");return Q=Q?e.concat(Q.slice(e.length)):e,Q.prefixes=t(),Q.suffixes=t(),t()};er.handlesRead=!0,$[51]=er,$[Wt]=t=>{if(!Q)if(L.getShared)lt();else return new pe(t,Wt);if(typeof t=="number")return Q[16+(t>=0?2*t:-2*t-1)];throw new Error("No support for non-integer packed references yet")},$[28]=t=>{re||(re=new Map,re.id=0);let e=re.id++,r=d,n=P[d],i;n>>5==4?i=[]:i={};let s={target:i};re.set(e,s);let o=t();return s.used?(Object.getPrototypeOf(i)!==Object.getPrototypeOf(o)&&(d=r,i=o,re.set(e,{target:i}),o=t()),Object.assign(i,o)):(s.target=o,o)},$[28].handlesRead=!0,$[29]=t=>{let e=re.get(t);return e.used=!0,e.target},$[258]=t=>new Set(t),($[259]=t=>{let e=L;if(e.mapsAsObjects){e.mapsAsObjects=!1,ie=!0;try{return t()}finally{ie&&(e.mapsAsObjects=!0,ie=!1)}}return t()}).handlesRead=!0;function Se(t,e){return typeof t=="string"?t+e:t instanceof Array?t.concat(e):Object.assign({},t,e)}function ye(){if(!Q)if(L.getShared)lt();else throw new Error("No packed values available");return Q}const zn=1399353956;st.push((t,e)=>{if(t>=225&&t<=255)return Se(ye().prefixes[t-224],e);if(t>=28704&&t<=32767)return Se(ye().prefixes[t-28672],e);if(t>=1879052288&&t<=2147483647)return Se(ye().prefixes[t-1879048192],e);if(t>=216&&t<=223)return Se(e,ye().suffixes[t-216]);if(t>=27647&&t<=28671)return Se(e,ye().suffixes[t-27639]);if(t>=1811940352&&t<=1879048191)return Se(e,ye().suffixes[t-1811939328]);if(t==zn)return{packedValues:Q,structures:K.slice(0),version:e};if(t==55799)return e});const qn=new Uint8Array(new Uint16Array([1]).buffer)[0]==1,tr=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array],Kn=[64,68,69,70,71,72,77,78,79,85,86];for(let t=0;t<tr.length;t++)Vn(tr[t],Kn[t]);function Vn(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;$[i?e:e-4]=n==1||i==qn?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 h=new DataView(o.buffer,o.byteOffset,o.byteLength),c=o.length>>s,p=new t(c),w=h[r];for(let y=0;y<c;y++)p[y]=w.call(h,y<<s,i);return p}}}function $n(){let t=Ce(),e=d+U();for(let n=2;n<t;n++){let i=Ce();d+=i}let r=d;return d=e,H=[at(Ce()),at(Ce())],H.position0=0,H.position1=0,H.postBundlePosition=d,d=r,U()}function Ce(){if(!(d<V))throw ee();let t=P[d++]&31;if(t>23)switch(t){case 24:if(d>=V)throw ee();t=P[d++];break;case 25:if(d+2>V)throw ee();t=Y.getUint16(d),d+=2;break;case 26:if(d+4>V)throw ee();t=Y.getUint32(d),d+=4;break}return t}function lt(){if(L.getShared){let t=rr(()=>(P=null,L.getShared()))||{},e=t.structures||[];L.sharedVersion=t.version,Q=L.sharedValues=t.packedValues,K===!0?L.structures=K=e:K.splice.apply(K,[0,e.length].concat(e))}}function rr(t){let e=V,r=d,n=Be,i=Me,s=De,o=re,h=H,c=new Uint8Array(P.slice(0,V)),p=K,w=L,y=Pe,v=ie,f=je;ie=!1;try{return t()}finally{V=e,d=r,Be=n,Me=i,De=s,re=o,H=h,P=c,Pe=y,K=p,L=w,ie=v,je=f,Y=new DataView(P.buffer,P.byteOffset,P.byteLength)}}function ut(){P=null,re=null,K=null}const ft=new Array(147);for(let t=0;t<256;t++)ft[t]=+("1e"+Math.floor(45.15-t*.30103));let dt=new ke({useRecords:!1});const nr=dt.decode;dt.decodeMultiple;let Ke;try{Ke=new TextEncoder}catch{}let ht,ir;const Ve=typeof globalThis=="object"&&globalThis.Buffer,Ie=typeof Ve<"u",pt=Ie?Ve.allocUnsafeSlow:Uint8Array,sr=Ie?Ve:Uint8Array,or=256,ar=Ie?4294967296:2144337920;let yt,u,j,a=0,fe,W=null;const Wn=61440,Gn=/[\u0080-\uFFFF]/,te=Symbol("record-id");class Hn extends ke{constructor(e){super(e),this.offset=0;let r,n,i,s,o;e=e||{};let h=sr.prototype.utf8Write?function(l,I){return u.utf8Write(l,I,u.byteLength-I)}:Ke&&Ke.encodeInto?function(l,I){return Ke.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 pt(8192),j=new DataView(u.buffer,0,8192),a=0),fe=u.length-10,fe-a<2048?(u=new pt(u.length),j=new DataView(u.buffer,0,u.length),fe=u.length-10,a=0):I===fr&&(a=a+7&2147483640),r=a,c.useSelfDescribedHeader&&(j.setUint32(a,3654940416),a+=3),o=c.structuredClone?new Map:null,c.bundleStrings&&typeof l!="string"?(W=[],W.size=1/0):W=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 x=0,N=m.length;x<N;x++)g[m[x]]=x}}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 x,N=n.transitions;for(let F=0,T=m.length;F<T;F++){N[te]===void 0&&(N[te]=O);let J=m[F];x=N[J],x||(x=N[J]=Object.create(null)),N=x}N[te]=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,$e(l,R),R.values.length>0){u[a++]=216,u[a++]=51,se(4);let O=R.values;A(O),se(0),se(0),f=Object.create(g||null);for(let m=0,x=O.length;m<x;m++)f[O[m]]=m}}yt=I&bt;try{if(yt)return;if(A(l),W&&W.position&&ur(r,A),c.offset=a,o&&o.idsToInsert){a+=o.idsToInsert.length*2,a>fe&&M(a),c.offset=a;let R=Yn(u.subarray(r,a),o.idsToInsert);return o=null,R}return I&fr?(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][te]=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&ei&&(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>fe&&(u=M(a));var I=typeof l,R;if(I==="string"){if(f){let N=f[l];if(N>=0){N<16?u[a++]=N+224:(u[a++]=198,N&1?A(15-N>>1):A(N-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(W&&O>=4&&O<1024){if((W.size+=O)>Wn){let F,T=(W[0]?W[0].length*3+W[1].length:0)+10;a+T>fe&&(u=M(a+T)),u[a++]=217,u[a++]=223,u[a++]=249,u[a++]=W.position?132:130,u[a++]=26,F=a-r,a+=4,W.position&&ur(r,A),W=["",""],W.size=0,W.position=F}let N=Gn.test(l);W[N?0:1]+=l,u[a++]=N?206:207,A(O);return}let m;O<32?m=1:O<256?m=2:O<65536?m=3:m=5;let x=O*3;if(a+x>fe&&(u=M(a+x)),O<64||!h){let N,F,T,J=a+m;for(N=0;N<O;N++)F=l.charCodeAt(N),F<128?u[J++]=F:F<2048?(u[J++]=F>>6|192,u[J++]=F&63|128):(F&64512)===55296&&((T=l.charCodeAt(N+1))&64512)===56320?(F=65536+((F&1023)<<10)+(T&1023),N++,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=h(l,a+m,x);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,j.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,j.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,j.setUint16(a,~l),a+=2):(u[a++]=58,j.setUint32(a,~l),a+=4);else if(!this.alwaysUseFloat&&l<0&&l>=-4294967296&&Math.floor(l)===l)u[a++]=58,j.setUint32(a,-1-l),a+=4;else{let O;if((O=this.useFloat32)>0&&l<4294967296&&l>=-2147483648){u[a++]=250,j.setFloat32(a,l);let m;if(O<4||(m=l*ft[(u[a]&127)<<1|u[a+1]>>7])>>0===m){a+=4;return}else a--}u[a++]=251,j.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 x=o.idsToInsert||(o.idsToInsert=[]);m.references=[],x.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:se(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,j.setUint32(a,R),a+=4),c.keyMap)for(let[m,x]of l)A(c.encodeKey(m)),A(x);else for(let[m,x]of l)A(m),A(x);else{for(let m=0,x=ht.length;m<x;m++){let N=ir[m];if(l instanceof N){let F=ht[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,j.setUint32(a,T),a+=4),F.encode.call(this,l,A,M);return}}if(l[Symbol.iterator]){if(yt){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]||wt(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,j.setBigUint64(a,l);else if(l>-(BigInt(1)<<BigInt(64))&&l<0)u[a++]=59,j.setBigUint64(a,-l-BigInt(1));else if(this.largeBigIntToFloat)u[a++]=251,j.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);vt(new Uint8Array(O.reverse()),M);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,j.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,x=0,N,F;if(this.keyMap){F=Object.keys(l).map(J=>this.encodeKey(J)),x=F.length;for(let J=0;J<x;J++){let St=F[J];R=O[St],R||(R=O[St]=Object.create(null),m++),O=R}}else for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&(R=O[J],R||(O[te]&1048576&&(N=O[te]&65535),R=O[J]=Object.create(null),m++),O=R,x++);let T=O[te];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))),N===void 0?(T=s.nextId++,T||(T=0,s.nextId=1),T>=or&&(s.nextId=(T=w)+1)):T=N,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<x;J++)(O[te]===void 0||O[te]&1048576)&&(O[te]=T),O=O[F[J]];O[te]=T|1048576,i=!0}else{if(O[te]=T,j.setUint32(a,3655335680),a+=3,m&&(b+=E*m),C.length>=or-w&&(C.shift()[te]=void 0),C.push(O),se(x+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(x<24?u[a++]=128|x:se(x),!I)for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&A(l[J])},M=l=>{let I;if(l>16777216){if(l-r>ar)throw new Error("Encoded buffer would be larger than maximum buffer size");I=Math.min(ar,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 pt(I);return j=new DataView(R.buffer,0,I),u.copy?u.copy(R,0,r,l):R.set(u.slice(r,l)),a-=r,r=0,fe=R.length-10,u=R};let D=100,z=1e3;this.encodeAsIterable=function(l,I){return ve(l,I,X)},this.encodeAsAsyncIterable=function(l,I){return ve(l,I,mt)};function*X(l,I,R){let O=l.constructor;if(O===Object){let m=c.useRecords!==!1;m?k(l,!0):cr(Object.keys(l).length,160);for(let x in l){let N=l[x];m||A(x),N&&typeof N=="object"?I[x]?yield*X(N,I[x]):yield*_(N,I,x):A(N)}}else if(O===Array){let m=l.length;se(m);for(let x=0;x<m;x++){let N=l[x];N&&(typeof N=="object"||a-r>D)?I.element?yield*X(N,I.element):yield*_(N,I,"element"):A(N)}}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*X(m,I.element):yield*_(m,I,"element"):A(m);u[a++]=255}else wt(l)?(cr(l.size,64),yield u.subarray(r,a),yield l,G()):l[Symbol.asyncIterator]?(u[a++]=159,yield u.subarray(r,a),yield l,G(),u[a++]=255):A(l);R&&a>r?yield u.subarray(r,a):a-r>D&&(yield u.subarray(r,a),G())}function*_(l,I,R){let O=a-r;try{A(l),a-r>D&&(yield u.subarray(r,a),G())}catch(m){if(m.iteratorNotHandled)I[R]={},a=r+O,yield*X.call(this,l,I[R]);else throw m}}function G(){D=z,c.encode(null,bt)}function ve(l,I,R){return I&&I.chunkThreshold?D=z=I.chunkThreshold:D=100,l&&typeof l=="object"?(c.encode(null,bt),R(l,c.iterateProperties||(c.iterateProperties={}),!0)):[c.encode(l)]}async function*mt(l,I){for(let R of X(l,I,!0)){let O=R.constructor;if(O===sr||O===Uint8Array)yield R;else if(wt(R)){let m=R.stream().getReader(),x;for(;!(x=await m.read()).done;)yield x.value}else if(R[Symbol.asyncIterator])for await(let m of R)G(),m?yield*mt(m,I.async||(I.async={})):yield c.encode(m);else yield R}}}useBuffer(e){u=e,j=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 lr(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 cr(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,j.setUint32(a,t),a+=4)}class lr{constructor(e,r,n){this.structures=e,this.packedValues=r,this.version=n}}function se(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,j.setUint32(a,t),a+=4)}const Zn=typeof Blob>"u"?function(){}:Blob;function wt(t){if(t instanceof Zn)return!0;let e=t[Symbol.toStringTag];return e==="Blob"||e==="File"}function $e(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++)$e(t[n],e);else{let n=!e.encoder.useRecords;for(var r in t)t.hasOwnProperty(r)&&(n&&$e(r,e),$e(t[r],e))}break;case"function":console.log(t)}}const Xn=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;ir=[Date,Set,Error,RegExp,pe,ArrayBuffer,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?function(){}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?function(){}:BigInt64Array,Float32Array,Float64Array,lr],ht=[{tag:1,encode(t,e){let r=t.getTime()/1e3;(this.useTimestamp32||t.getMilliseconds()===0)&&r>=0&&r<4294967296?(u[a++]=26,j.setUint32(a,r),a+=4):(u[a++]=251,j.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){vt(t,r)}},{getTag(t){if(t.constructor===Uint8Array&&(this.tagUint8Array||Ie&&this.tagUint8Array!==!1))return 64},encode(t,e,r){vt(t,r)}},oe(68,1),oe(69,2),oe(70,4),oe(71,8),oe(72,1),oe(77,2),oe(78,4),oe(79,8),oe(85,4),oe(86,8),{encode(t,e){let r=t.packedValues||[],n=t.structures||[];if(r.values.length>0){u[a++]=216,u[a++]=51,se(4);let i=r.values;e(i),se(0),se(0),packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let s=0,o=i.length;s<o;s++)packedObjectMap[i[s]]=s}if(n){j.setUint32(a,3655335424),a+=3;let i=n.slice(0);i.unshift(57344),i.push(new pe(t.version,1399353956)),e(i)}else e(new pe(t.version,1399353956))}}];function oe(t,e){return!Xn&&e>1&&(t-=4),{tag:t,encode:function(n,i){let s=n.byteLength,o=n.byteOffset||0,h=n.buffer||n;i(Ie?Ve.from(h,o,s):new Uint8Array(h,o,s))}}}function vt(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,j.setUint32(a,r),a+=4),a+r>=u.length&&e(a+r),u.set(t.buffer?t:new Uint8Array(t),a),a+=r}function Yn(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 h of o.references)t[h++]=s>>8,t[h]=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 ur(t,e){j.setUint32(W.position+t,a-W.position-t+1);let r=W;W=null,e(r[0]),e(r[1])}let gt=new Hn({useRecords:!1});const Qn=gt.encode;gt.encodeAsIterable,gt.encodeAsAsyncIterable;const fr=512,ei=1024,bt=2048,ti=Ee("appetize.io:transport:ws-ping"),ri=3e4;function ni(t){let e=!0;const r=()=>{e=!0};t.on("pong",r);const n=setInterval(()=>{if(!e){clearInterval(n),ti("liveness ping went unanswered, terminating"),t.terminate();return}t.readyState===t.OPEN&&(e=!1,t.ping())},ri);return{destroy(){clearInterval(n),t.off("pong",r)},pong:r}}const we=Ee("appetize.io:trace:transport:websocket");class ii extends Te{constructor(e,{signal:r}={}){super(async i=>{this.#i.send(Qn(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}=ni(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=[];#r=!1;#t=!1;#n;#i;close({destroyWs:e=!1,...r}={}){this.closed||(this.#r=e,super.close(r))}handleClose(e){we("close()");for(const r of this.#e.splice(0))r();if((typeof this.wsOrUrl=="string"||this.#r)&&(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.#t||(this.#t=!0,this.onclose?.(e))}#a=e=>{we("handleWebSocketClose()",e);try{this.#o(e)}finally{this.close()}};#s=e=>{we("handleWebSocketError()",e),this.onerror?.(e)};#c=async e=>{we("handleWebSocketMessage()",e),this.#n?.();const r=this.#u(e);if(!r){we("handleWebSocketMessage() -> legacy"),this.onmessage?.(e);return}we("handleWebSocketMessage() -> jsonrpc",r),this[B].dispatchMessage(r)};#l=e=>{we("handleWebSocketOpen()",e),this.onopen?.(e)};#u(e){try{const r=nr(new Uint8Array(e.data));return Lt(r)?r:null}catch{return null}}}function si(t){return typeof t=="object"&&t!==null}function oi(t){try{const e=nr(new Uint8Array(t.data));if(si(e)&&typeof e.name=="string")return{name:e.name,payload:"payload"in e?e.payload:void 0}}catch{}}async function ai(t,e={}){const r=e.baseUrl??(typeof t=="string"?new URL(t).origin:void 0),n=typeof t=="string"?new ii(t,{signal:e.signal}):t,i=new kn(n,{...e,baseUrl:r});return typeof t=="string"&&await ci(n,i,e),i}function ci(t,e,r){const n=Vt(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 h=oi(o);h&&n?.(h)}})}async function li(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 ai(`${n}//${e.host}/ws`);Fr(i,r),Tr(i,r),await Lr(i,r)}await li(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 dr(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var xe={exports:{}},We,Ct;function hr(){if(Ct)return We;Ct=1;var t=1e3,e=t*60,r=e*60,n=r*24,i=n*7,s=n*365.25;We=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):h(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 h(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 We}var Ge,Et;function pr(){if(Et)return Ge;Et=1;function t(e){n.debug=n,n.default=n,n.coerce=p,n.disable=h,n.enable=s,n.enabled=c,n.humanize=hr(),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),I=A-(v||A);E.diff=I,E.prev=v,E.curr=A,v=A,b[0]=n.coerce(b[0]),typeof b[0]!="string"&&b.unshift("%O");let M=0;b[0]=b[0].replace(/%([a-zA-Z%])/g,(q,X)=>{if(q==="%%")return"%";M++;const _=n.formatters[X];if(typeof _=="function"){const G=b[M];q=_.call(E,G),b.splice(M,1),M--}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 h(){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 Ge=t,Ge}var Rt;function yr(){return Rt||(Rt=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=pr()(e);const{formatters:h}=t.exports;h.j=function(c){try{return JSON.stringify(c)}catch(p){return"[UnexpectedJSONParseError]: "+p.message}}})(xe,xe.exports)),xe.exports}var wr=yr(),Ee=dr(wr),de={},ae={},Re={},Ot;function Ne(){return Ot||(Ot=1,(function(t){var e=Re&&Re.__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 h=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 h(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:h(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})(Re)),Re}var Oe={},At;function Mt(){return At||(At=1,Object.defineProperty(Oe,"__esModule",{value:!0}),Oe.DefaultErrorCode=void 0,Oe.DefaultErrorCode=0),Oe}var Pt;function vr(){if(Pt)return ae;Pt=1;var t=ae&&ae.__awaiter||function(o,h,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,h||[])).next())})},e=ae&&ae.__generator||function(o,h){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=h.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(ae,"__esModule",{value:!0}),ae.JSONRPCClient=void 0;var r=Ne(),n=Mt(),i=(function(){function o(h,c){this._send=h,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(h,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)))})},h);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(h,c,p){return this.requestWithID(h,c,p,this._createID())},o.prototype.requestWithID=function(h,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,h,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(h,c){var p=this,w=Array.isArray(h);Array.isArray(h)||(h=[h]);var y=h.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?h:h[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(h,c,p){var w=(0,r.createJSONRPCNotification)(h,c);this.send(w,p).then(void 0,function(){})},o.prototype.send=function(h,c){return t(this,void 0,void 0,function(){return e(this,function(p){return[2,this._send(h,c)]})})},o.prototype.rejectAllPendingRequests=function(h){this.idToResolveMap.forEach(function(c,p){return c((0,r.createJSONRPCErrorResponse)(p,n.DefaultErrorCode,h))}),this.idToResolveMap.clear()},o.prototype.receive=function(h){var c=this;Array.isArray(h)||(h=[h]),h.forEach(function(p){var w=c.idToResolveMap.get(p.id);w&&(c.idToResolveMap.delete(p.id),w(p))})},o})();ae.JSONRPCClient=i;var s=function(o){return o!=null};return ae}var He={},kt;function gr(){return kt||(kt=1,Object.defineProperty(He,"__esModule",{value:!0})),He}var ce={},It;function br(){return It||(It=1,(function(t){var e=ce&&ce.__awaiter||function(C,b,E,A){function I(M){return M instanceof E?M:new E(function(D){D(M)})}return new(E||(E=Promise))(function(M,D){function q(G){try{_(A.next(G))}catch(ve){D(ve)}}function X(G){try{_(A.throw(G))}catch(ve){D(ve)}}function _(G){G.done?M(G.value):I(G.value).then(q,X)}_((A=A.apply(C,b||[])).next())})},r=ce&&ce.__generator||function(C,b){var E={label:0,sent:function(){if(M[0]&1)throw M[1];return M[1]},trys:[],ops:[]},A,I,M,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(G){return X([_,G])}}function X(_){if(A)throw new TypeError("Generator is already executing.");for(;D&&(D=0,_[0]&&(E=0)),E;)try{if(A=1,I&&(M=_[0]&2?I.return:_[0]?I.throw||((M=I.return)&&M.call(I),0):I.next)&&!(M=M.call(I,_[1])).done)return M;switch(I=0,M&&(_=[_[0]&2,M.value]),_[0]){case 0:case 1:M=_;break;case 4:return E.label++,{value:_[1],done:!1};case 5:E.label++,I=_[1],_=[0];continue;case 7:_=E.ops.pop(),E.trys.pop();continue;default:if(M=E.trys,!(M=M.length>0&&M[M.length-1])&&(_[0]===6||_[0]===2)){E=0;continue}if(_[0]===3&&(!M||_[1]>M[0]&&_[1]<M[3])){E.label=_[1];break}if(_[0]===6&&E.label<M[1]){E.label=M[1],M=_;break}if(M&&E.label<M[2]){E.label=M[2],E.ops.push(_);break}M[2]&&E.ops.pop(),E.trys.pop();continue}_=b.call(C,E)}catch(G){_=[6,G],I=0}finally{A=M=0}if(_[0]&5)throw _[1];return{value:_[0]?_[1]:void 0,done:!0}}},n=ce&&ce.__spreadArray||function(C,b,E){if(E||arguments.length===2)for(var A=0,I=b.length,M;A<I;A++)(M||!(A in b))&&(M||(M=Array.prototype.slice.call(b,0,A)),M[A]=b[A]);return C.concat(M||Array.prototype.slice.call(b))};Object.defineProperty(t,"__esModule",{value:!0}),t.JSONRPCServer=t.createMethodNotFoundResponse=t.createInvalidRequestResponse=void 0;var i=Ne(),s=Mt(),o=function(){return(0,i.createJSONRPCErrorResponse)(null,i.JSONRPCErrorCode.ParseError,"Parse error")},h=function(C){return(0,i.createJSONRPCErrorResponse)((0,i.isJSONRPCID)(C.id)?C.id:null,i.JSONRPCErrorCode.InvalidRequest,"Invalid Request")};t.createInvalidRequestResponse=h;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 I=b(E.params,A);return Promise.resolve(I).then(function(M){return v(E.id,M)})}},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,I=this;return r(this,function(M){switch(M.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 I.receiveSingle(D,E)}))];case 1:return A=M.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,I;return r(this,function(M){switch(M.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 I=M.sent(),[2,g(b,I)]}})})},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,I,M){return b(function(D,q){return E(A,D,q)},I,M)}},C.prototype.callMethod=function(b,E,A){var I=this,M=function(q,X){return b?b(q,X):I.handleMethodNotFound(q,X)},D=function(q){return I.errorListener('An unexpected error occurred while executing "'.concat(E.method,'" JSON-RPC method:'),q),Promise.resolve(I.mapErrorToJSONRPCErrorResponseIfNecessary(E.id,q))};try{return(this.middleware||y)(M,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",I=s.DefaultErrorCode,M;return b instanceof i.JSONRPCErrorException&&(I=b.code,M=b.data),(0,i.createJSONRPCErrorResponse)(C,I,A,M)},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)}})(ce)),ce}var le={},xt;function mr(){if(xt)return le;xt=1;var t=le&&le.__awaiter||function(i,s,o,h){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(h.next(S))}catch(g){w(g)}}function v(S){try{f(h.throw(S))}catch(g){w(g)}}function f(S){S.done?p(S.value):c(S.value).then(y,v)}f((h=h.apply(i,s||[])).next())})},e=le&&le.__generator||function(i,s){var o={label:0,sent:function(){if(p[0]&1)throw p[1];return p[1]},trys:[],ops:[]},h,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(h)throw new TypeError("Generator is already executing.");for(;w&&(w=0,f[0]&&(o=0)),o;)try{if(h=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{h=p=0}if(f[0]&5)throw f[1];return{value:f[0]?f[1]:void 0,done:!0}}};Object.defineProperty(le,"__esModule",{value:!0}),le.JSONRPCServerAndClient=void 0;var r=Ne(),n=(function(){function i(s,o,h){h===void 0&&(h={});var c;this.server=s,this.client=o,this.errorListener=(c=h.errorListener)!==null&&c!==void 0?c:console.warn}return i.prototype.applyServerMiddleware=function(){for(var s,o=[],h=0;h<arguments.length;h++)o[h]=arguments[h];(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,h){return this.client.request(s,o,h)},i.prototype.requestAdvanced=function(s,o){return this.client.requestAdvanced(s,o)},i.prototype.notify=function(s,o,h){this.client.notify(s,o,h)},i.prototype.rejectAllPendingRequests=function(s){this.client.rejectAllPendingRequests(s)},i.prototype.receiveAndSend=function(s,o,h){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,h)]:[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 le.JSONRPCServerAndClient=n,le}var Nt;function Sr(){return Nt||(Nt=1,(function(t){var e=de&&de.__createBinding||(Object.create?(function(n,i,s,o){o===void 0&&(o=s);var h=Object.getOwnPropertyDescriptor(i,s);(!h||("get"in h?!i.__esModule:h.writable||h.configurable))&&(h={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(n,o,h)}):(function(n,i,s,o){o===void 0&&(o=s),n[o]=i[s]})),r=de&&de.__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(vr(),t),r(gr(),t),r(Ne(),t),r(br(),t),r(mr(),t)})(de)),de}var _e=Sr();class Cr 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 Er(t,e){const r="CloseEvent"in globalThis?globalThis.CloseEvent:Cr;return new r(t,e)}class Rr{#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 Or extends Rr{send;constructor(e){super(),this.send=e}dispatchClose(e){return this.dispatchEvent(Er("close",e))}dispatchMessage(e){return this.dispatchEvent(new CustomEvent("message",{detail:e}))}}const _t=Ee("appetize.io:error:rpc");function Ze(t,e){const r=new _e.JSONRPCServerAndClient(new _e.JSONRPCServer({errorListener:_t}),Mr(t),{errorListener:_t}),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 Ar(t,e){const{rpc:r,unsub:n}=Ze(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 Mr(t){return new _e.JSONRPCClient(t[j].send.bind(t[j]),()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)+1)}const Pr=(...t)=>Ar(...t),Xe=["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backspace","Enter","Tab"],kr=33333,Ir=[[99,10],[396,11],[792,21],[1620,22],[3600,31],[5120,32],[8192,40],[8704,42],[22080,50],[36864,51],[139264,60]],xr=new Intl.Segmenter(void 0,{granularity:"grapheme"}),Nr=new Set(Xe);class _r{#e;#r=!1;#t;#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.#t=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.#r||(this.#r=!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=Ur(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.#t.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.#r)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+=kr}}}}catch(e){this.#r||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.#t.drawImage(r,0,0,e.width,e.height),r.close()}}function Fr(t,e,{signal:r}={}){if(r?.aborted)return()=>{};const n=s=>{s.altKey||s.ctrlKey||s.metaKey||!Jr(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 Tr(t,e,{signal:r}={}){let n,i;const s=p=>{n===void 0&&(p.preventDefault(),n=p.pointerId,i=Ye(e,p),e.focus(),e.setPointerCapture(p.pointerId),t.touch.down(i.x,i.y))},o=p=>{p.pointerId===n&&(p.preventDefault(),i=Ye(e,p),t.touch.move(i.x,i.y))},h=p=>{if(p.pointerId!==n)return;p.preventDefault();const w=Ye(e,p);t.touch.up(w.x,w.y),Tt(e,p.pointerId),n=void 0,i=void 0},c=()=>{n!==void 0&&Tt(e,n),i&&t.touch.up(i.x,i.y),n=void 0,i=void 0,e.removeEventListener("pointercancel",h),e.removeEventListener("pointerdown",s),e.removeEventListener("pointermove",o),e.removeEventListener("pointerup",h),r?.removeEventListener("abort",c)};return r?.aborted||(e.addEventListener("pointercancel",h),e.addEventListener("pointerdown",s),e.addEventListener("pointermove",o),e.addEventListener("pointerup",h),r?.addEventListener("abort",c,{once:!0})),c}async function Lr(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 _r({canvas:e,context:s,onClose:r,onError:n,signal:i,stream:o}).close}}function Ft(t){return Math.max(0,Math.min(1,t))}function Ur(t,e,r){const n=Math.ceil(e/16)*Math.ceil(r/16),i=Ir.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,h=t[s]===0&&t[s+1]===0&&t[s+2]===0&&t[s+3]===1,c=o?s+3:h?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 Jr(t){return Array.from(xr.segment(t)).length===1||Nr.has(t)}function Ye(t,e){const r=t.getBoundingClientRect();return{x:Ft((e.clientX-r.left)/r.width),y:Ft((e.clientY-r.top)/r.height)}}function Tt(t,e){t.hasPointerCapture(e)&&t.releasePointerCapture(e)}function Lt(t){return!!t&&typeof t=="object"&&"jsonrpc"in t}class Te{closed=!1;[j];#e;constructor(e,{signal:r}={}){this[j]=new Or(e),this.#e=r,this.#e?.addEventListener("abort",this.#r)}close(e={}){this.closed||(this.closed=!0,this.handleClose(e))}handleClose(e){this.#e?.removeEventListener("abort",this.#r),this[j].dispatchClose(e)}#r=()=>{this.close({code:1e3,reason:String(this.#e?.reason)})}}const he=Ee("appetize.io:trace:transport:iframe");class Ut extends Te{onmessage;#e;#r;constructor(e,{origin:r="*",signal:n}={}){super(async i=>{e.postMessage(i,this.#e)},{signal:n}),this.#r=e,this.#e=r,window.addEventListener("message",this.#t)}postMessage(e,r,n){he("postMessage(legacy)",{message:e,targetOrigin:r,transfer:n}),this.#r.postMessage(e,r??this.#e,n)}handleClose(e){he("close()"),window.removeEventListener("message",this.#t),super.handleClose(e)}#t=async e=>{if(he("handleMessage()",e),e.source!==this.#r||(he("handleMessage() -> source ok"),this.#e!=="*"&&e.origin!==this.#e))return;he("handleMessage() -> origin ok");const r=e.data;if(!Lt(r)){he("handleMessage() -> legacy"),this.onmessage?.(e);return}he("handleMessage() -> jsonrpc"),this[j].dispatchMessage(r)}}function Jt(t,e,{leftEffects:r=()=>({}),notifiesLeft:n,notifiesRight:i,rightEffects:s=()=>({})}={}){const o=Ze(t,{}),h=Ze(e,{}),c=[()=>{o.unsub(),h.unsub()}],p=()=>{for(const S of c)try{S()}catch{}},w=h.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&&h.rpc.addMethod(S,g)}return Dt(o.rpc,h.rpc,{notifies:n}),Dt(h.rpc,o.rpc,{notifies:i}),p}function Dt(t,e,{notifies:r}={}){t.applyServerMiddleware(async(n,i)=>{const s=r?.();if(s){const{id:h,...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 ue(t,...e){t.notify(e[0],e[1],e[2])}function Qe(){const t=new Te(async r=>{e[j].dispatchMessage(r)}),e=new Te(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 jt(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}))}function Dr(t){return{clearState:async e=>{await t.request("appetizeio.device.server.app.clearState",{appId:e})},launch:async e=>{await t.request("appetizeio.device.server.app.launch",{appId:e})},reinstall:async e=>{await t.request("appetizeio.device.server.app.reinstall",{appId:e})},restart:async e=>{await t.request("appetizeio.device.server.app.restart",{appId:e})},terminate:async e=>{await t.request("appetizeio.device.server.app.terminate",{appId:e})}}}function et(){let t,e;return{promise:new Promise((n,i)=>{e=n,t=i}),reject:t,resolve:e}}const jr=2*1024*1024,Bt=Ee("appetize:client:acked-writable-stream");class Br{unacked=0;#e;#r;#t;#n;#i=[];#o;constructor(e){this.#t=e,this.#o=e.window??jr}abort(e){this.#s(e),this.#t.onAbort?.(e)}async close(){await this.#c(()=>this.unacked===0),this.#t.onClose?.()}fail(e){this.#s(e)&&this.#t.onError?.(e)}start(e){this.#e=e}write(e){const r=e.byteLength;return this.unacked+=r,this.#t.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()},Bt("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;Bt("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.#r)return!1;this.#r={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={...et(),until:e};return this.#i.push(r),r.promise}}class qr extends WritableStream{get unacked(){return this.#e.unacked}#e;constructor(e){const r=new Br(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 zr=1024*1024;class Kr{#e;#r=!1;#t;#n;constructor(e){this.#t=e}cancel(e){this.#i(),this.#t?.(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.#r)return;this.#n??=et();const{promise:r}=this.#n;this.#e.enqueue(e),await r}start(e){this.#e=e}#i(){return this.#r?!1:(this.#r=!0,this.pull(),!0)}}class Vr extends ReadableStream{#e;constructor({highWaterMark:e=zr,onCancel:r}={}){const n=new Kr(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 $r{closed;readable;writable;#e=[];#r;#t;#n;#i;#o;#a="starting";constructor(e,{onClose:r,receiveBuffer:n,sendWindow:i,signal:s}){if(this.#o=e,this.#r=et(),this.closed=this.#r.promise,this.closed.catch(Wr),this.#n=new Vr({highWaterMark:n,onCancel:()=>{this.#s(void 0)}}),this.readable=this.#n,this.#i=new qr({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.#t?this.#t: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.#t=e,r&&ue(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.#r.reject(e):this.#r.resolve(void 0)}}}function Wr(){}class Gr{readable;ready;#e=[];#r=!1;#t;#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.#t=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.#t.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.#r||(this.#t.close(),this.#a(e))}#a(e){this.#r=!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 Hr{get subscribers(){return this.#t}#e;#r;#t=new Set;constructor(e){this.#e=e}close(){this.#r=void 0;for(const e of[...this.#t])e.close();this.#t.clear()}add(e){this.#t.add(e)}ensureStarted(){return this.#r||(this.#r=(async()=>{try{return await this.#e.start()}catch(e){throw this.#r=void 0,e}})()),this.#r}release(e){this.#t.delete(e),!(this.#t.size>0||!this.#r)&&(this.#r=void 0,this.#e.stop())}}class qt extends Hr{#e;constructor(e){super({start:e.start,stop:e.stop}),this.#e=e.label}async createStream({signal:e}={}){e?.throwIfAborted();const r=new Gr({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 Zr{#e;#r;#t;#n;constructor(e){this.#n=e,this.#r=new qt({label:"Log stream",start:()=>e.request("appetizeio.device.server.debug.log.start"),stop:()=>{ue(e,"appetizeio.device.server.debug.log.stop",void 0)}}),this.#t=new qt({label:"Proxy intercept stream",start:()=>e.request("appetizeio.device.server.debug.proxyIntercept.start"),stop:()=>{ue(e,"appetizeio.device.server.debug.proxyIntercept.stop",void 0)}})}close(){this.#e?.detach(),this.#r.close(),this.#t.close()}async createAdbTunnel({signal:e}={}){e?.throwIfAborted(),this.#e?.close();const r=new $r(this.#n,{onClose:()=>{this.#e=void 0},signal:e});return this.#e=r,await r.start(),r}async createLogStream(e){return await this.#r.createStream(e)}async createProxyInterceptStream(e){return await this.#t.createStream(e)}async handleAdbTunnelData({data:e}){await this.#e?.handleData(e)}handleAdbTunnelStopped(e){this.#e?.handleStopped(e)}handleLogEntry(e){this.#r.handleNotification(e)}handleProxyInterceptEvent(e){this.#t.handleNotification(e)}}function Le(t){return{...Xr(t),index:t.index,within:t.within?Le(t.within):void 0}}function Xr(t){switch(t.by){case"testId":return{by:"testId",testId:t.testId};case"text":return{by:"text",text:Yr(t.text)}}}function Yr(t){return typeof t=="string"?{kind:"exact",value:t}:{flags:t.flags,kind:"regex",source:t.source}}const Qr=400,zt=["byTestId","byText","duration","index","x","y"],en=new Set(zt),tn=/^-?(?:\d+(?:\.\d*)?|\.\d+)$/u,rn=/^[a-z]$/u,tt=/^\s$/u;class z extends SyntaxError{constructor(e,r,n){super(`${e} at position ${String(r)}`,{cause:n})}}class nn{#e=0;#r;constructor(e){this.#r=e}parse(){const e=[];for(;this.#e<this.#r.length;){const r=this.#s();if(tt.test(r))this.#e++;else if(r===">"){if(this.#r.charAt(this.#e+1)===">")throw new z('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.#r.slice(this.#e,this.#e+2);throw new z(`Unexpected ${JSON.stringify(n)}; write selectors as {...}`,this.#e)}}return e}#t(){const e=this.#e,r=this.#c(n=>n!=="="&&!rt(n));if(this.#s()!=="=")return{kind:"bare",name:r,offset:e};if(r.length===0)throw new z('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 z('Only \\" and \\\\ escapes are supported',this.#e-1);this.#e++,r+=i}else{if(n==="")throw new z("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 z("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 z(`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 z('Unclosed "{"',e);if(s==="}"){if(this.#e++,i===0)throw new z('Expected a selector or wait in "{}"',e);return r===void 0?cn(n,e):{duration:r,kind:"wait"}}const o=this.#t();if(i===0&&o.name==="wait")r=o.kind==="attribute"?Kt(o.value,"wait"):Qr;else{if(r!==void 0)throw new z('"wait" takes no other attributes',o.offset);on(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=>!rt(s));if(i.length===0)throw new z('Expected a value after "="',e);return{kind:"raw",offset:e,text:i}}if(!rt(this.#s()))throw new z('Expected a space or "}" after the value',this.#e);return n}#s(){return this.#r.charAt(this.#e)}#c(e){const r=this.#e;for(;this.#e<this.#r.length&&e(this.#s());)this.#e++;return this.#r.slice(r,this.#e)}#l(){this.#c(e=>tt.test(e))}}function sn(t){return new nn(t).parse()}function on(t,e,r){const{name:n,offset:i}=e;if(e.kind==="attribute"){nt(t,n,i,e.value);return}if(!n.includes(","))throw new z(`Expected key=value, got ${JSON.stringify(n)}`,i);if(r>0)throw new z("Write the x,y position first",i);const[s,o,...h]=n.split(",");if(h.length>0)throw new z("Expected a screen position as x,y",i);const c=i+s.length+1;nt(t,"x",i,{kind:"raw",offset:i,text:s}),nt(t,"y",c,{kind:"raw",offset:c,text:o})}function an(t){return en.has(t)}function rt(t){return t===""||t==="}"||tt.test(t)}function nt(t,e,r,n){if(!an(e))throw new z(`Unknown attribute ${JSON.stringify(e)}; expected one of ${zt.join(", ")}`,r);if(t.offsets[e]!==void 0)throw new z(`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 z("Only one of byText and byTestId may be given",r);e==="byText"?t.byText=fn(n):t.byTestId=un(n);return;default:t[e]=Kt(n,e)}}function cn(t,e){return{duration:t.duration,kind:"move",to:ln(t,e)}}function Kt(t,e){if(t.kind!=="raw"||!tn.test(t.text))throw new z(`"${e}" takes a number`,t.offset);return Number(t.text)}function ln(t,e){const{byTestId:r,byText:n,index:i,offsets:s,x:o,y:h}=t;if(n!==void 0)return{by:"text",index:i,text:n,x:o,y:h};if(r!==void 0)return{by:"testId",index:i,testId:r,x:o,y:h};if(s.index!==void 0)throw new z('"index" needs byText or byTestId',s.index);if(o===void 0||h===void 0)throw new z("A screen position needs x and y",e);return{by:"position",x:o,y:h}}function un(t){if(t.kind==="regex")throw new z('"byTestId" takes a string',t.offset);return t.text}function fn(t){return t.kind==="regex"?t.regex:t.text}function Ae(t){return t.by==="position"?{by:"position",x:t.x,y:t.y}:{...Le(t),x:t.x,y:t.y}}function dn(t){return t.map(e=>e.kind==="move"?{duration:e.duration,kind:"move",to:Ae(e.to)}:e)}function hn(t){return{press:e=>{ue(t,"appetizeio.device.server.keyboard.press",{key:e})}}}function pn({onRequest:t,parent:e,proxyInlet:r,signal:n}){const i=new Ut(e,{signal:n}),s=[()=>{i.close()}];return jt(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 yn="@appetizeio/rpc:playwrightAdapter",Ue=Symbol.for(yn);function wn(t){window[Ue]&&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[Ue]=e,()=>{window[Ue]===e&&delete window[Ue]}}function vn({onRequest:t,proxyInlet:e}){const[r,n]=Qe(),s=[wn(n),()=>{r.close()}];return jt(r,e),t&&s.push(Fe(r,o=>{t(o,{source:"parent"})})),{cleanup:()=>{for(const o of s)o()},notifies:()=>r}}function gn(t){return{clearKeychain:async()=>{await t.request("appetizeio.device.server.settings.clearKeychain")},setAppearance:async e=>{await t.request("appetizeio.device.server.settings.setAppearance",{appearance:e})},setBiometryEnrolled:async e=>{await t.request("appetizeio.device.server.settings.setBiometryEnrolled",{enrolled:e})},setFontSize:async e=>{await t.request("appetizeio.device.server.settings.setFontSize",{fontSize:e})},setLocation:async({latitude:e,longitude:r})=>{await t.request("appetizeio.device.server.settings.setLocation",{latitude:e,longitude:r})}}}function bn(t){return t.to!==void 0?{from:Ae(t.from),kind:"path",to:Ae(t.to)}:{direction:t.direction,distance:t.distance,from:t.from?Ae(t.from):void 0,kind:"direction"}}function mn(t){return{down:(e,r)=>{ue(t,"appetizeio.device.server.touch.down",{x:e,y:r})},move:(e,r)=>{ue(t,"appetizeio.device.server.touch.move",{x:e,y:r})},up:(e,r)=>{ue(t,"appetizeio.device.server.touch.up",{x:e,y:r})}}}const Sn=new Set(Xe),Cn=/^(?<key>[A-Za-z]+)>(?<repeat>\d+)\/$/u,En=/(\{\{|\{[^{}]*\})/u;function Rn(t){const e=[];let r="";function n(){r.length>0&&(e.push({kind:"text",text:r}),r="")}for(const[i,s]of t.split(En).entries())if(i%2===0){if(s.includes("{"))throw new Error(`Unclosed "{" in ${JSON.stringify(t)}`);r+=s}else s==="{{"?r+="{":(n(),e.push(An(s.slice(1,-1))));return n(),e}function On(t,e){if(!Sn.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: ${Xe.join(", ")}. Type characters as text, and escape a literal "{" as "{{".`)}function An(t){const e=Cn.exec(t)?.groups,r=e?.key??t;if(On(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 Mn=Symbol("@appetizeio/client:v1Compat");function Vt(t){return t?.[Mn]}class Pn{readable;ready;get dimensions(){return this.#n}#e=[];#r=!1;#t;#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.#t=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.#t.enqueue(e)}requestKeyFrame=()=>{this.#r||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.#r||(this.#t.close(),this.#s(e))}#s(e){this.#r=!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 kn{#e=!1;#r;#t;#n=new Set;constructor(e){this.#r=e}close(){this.#t=void 0;for(const e of[...this.#n])e.close()}async createStream({signal:e}={}){e?.throwIfAborted();const r=new Pn({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.#t?(this.#a(),this.#t):(this.#e=!0,this.#t=(async()=>{try{await this.#r.request("appetizeio.device.server.video.start")}catch(e){throw this.#t=void 0,e}})(),this.#t)}#o(e){this.#n.delete(e),!(this.#n.size>0||!this.#t)&&(this.#t=void 0,ue(this.#r,"appetizeio.device.server.video.stop",void 0))}#a(){this.#e||(this.#e=!0,ue(this.#r,"appetizeio.device.server.video.requestKeyFrame",void 0))}}class In{app;debug;keyboard;settings;touch;video;#e;#r=[];#t;constructor(e,r={}){const n=Vt(r)??{},{baseUrl:i,onClose:s,signal:o}=r;this.#e=i?xn(i):void 0;const{onRequest:h,parent:c,proxyRequest:p}=n,w=_n(h);o?.addEventListener("abort",this.close);const[y,v]=Qe(),[f,S]=Qe();this.#r.push(()=>{y.close(),v.close(),f.close(),S.close()}),this.#r.push(Jt(S,e,{leftEffects:p}));const g=c==="playwright"?vn({onRequest:w,proxyInlet:f}):c?pn({onRequest:w,parent:c,proxyInlet:f,signal:o}):void 0;g&&this.#r.push(g.cleanup),this.#r.push(Jt(v,f,{notifiesLeft:g?.notifies}));const{client:C,unsub:b}=Pr(y,{"appetizeio.device.client.debug.adbTunnel.data":I=>E.handleAdbTunnelData(I),"appetizeio.device.client.debug.adbTunnel.stopped":async I=>{E.handleAdbTunnelStopped(I)},"appetizeio.device.client.debug.log.entry":async I=>{E.handleLogEntry(I)},"appetizeio.device.client.debug.proxyIntercept.event":async I=>{E.handleProxyInterceptEvent(I)},"appetizeio.device.client.video.chunk":async I=>{A.handleChunk(I)}});this.#t=C,this.#r.push(b);const E=new Zr(this.#t);this.#r.push(()=>{E.close()});const A=new kn(this.#t);this.#r.push(()=>{A.close()}),this.app=Dr(this.#t),this.debug=E,this.keyboard=hn(this.#t),this.settings=gn(this.#t),this.touch=mn(this.#t),this.video=A,w&&(this.#r.push(Fe(v,I=>{w(I,{source:"self"})})),e instanceof Ut&&this.#r.push(Fe(e,I=>{w(I,{source:"iframe"})}))),this.#r.push(()=>s?.())}async addMedia(e,r={}){const{url:n}=await this.#t.request("appetizeio.device.server.media.requestUrl"),i=this.#e?new URL(n,this.#e).href:n,s=await fetch(i,{body:e,headers:{"Content-Type":e.type},method:"POST"});if(!s.ok){const c=await s.text();throw new Error(`Media upload failed: ${String(s.status)} ${c}`.trim())}const o=await s.json(),h=r.name??("name"in e?String(e.name):"");await this.#t.request("appetizeio.device.server.addMedia",{name:h||void 0,url:Nn(o)})}async authenticateBiometry({match:e=!0}={}){await this.#t.request("appetizeio.device.server.authenticateBiometry",{match:e})}close=()=>{for(const e of this.#r)try{e()}catch(r){console.error("Device cleanup error:",r)}};async fold(e){await this.#t.request("appetizeio.device.server.fold",{hinge:e})}async gesture(e,r){await this.#t.request("appetizeio.device.server.gesture",{options:r,steps:dn(typeof e=="string"?sn(e):e)})}async inspect(e,r){return await this.#t.request("appetizeio.device.server.inspect",{options:r,selector:e?Le(e):void 0})}async open(e){new URL(e),await this.#t.request("appetizeio.device.server.open",{url:e})}async press(e){await this.#t.request("appetizeio.device.server.press",{action:e})}async rotate(e){await this.#t.request("appetizeio.device.server.rotate",{orientation:e})}async screenshot(e,r){const n=await this.#t.request("appetizeio.device.server.screenshot",{options:r,selector:e?Le(e):void 0}),i=this.#e?new URL(n.url,this.#e).href:n.url,s=await fetch(i);if(!s.ok)throw new Error(`Screenshot download failed: ${String(s.status)} ${s.statusText}`);const o=s.headers.get("content-type")??"application/octet-stream";return{data:new Uint8Array(await s.arrayBuffer()),mimeType:o}}async shake(){await this.#t.request("appetizeio.device.server.shake")}async swipe(e,r){await this.#t.request("appetizeio.device.server.swipe",{gesture:bn(e),options:r})}async tap(e,r){await this.#t.request("appetizeio.device.server.tap",{options:r,selector:Ae(e)})}async type(e,r){await this.#t.request("appetizeio.device.server.type",{options:r,steps:Rn(e)})}}function xn(t){const e=new URL(t);return e.protocol==="ws:"?e.protocol="http:":e.protocol==="wss:"&&(e.protocol="https:"),e.href}function Nn(t){if(typeof t=="object"&&t!==null&&"url"in t&&typeof t.url=="string")return t.url;throw new Error("Media upload returned no URL")}const _n=t=>{if(t)return(e,r)=>{e.method.startsWith("appetizeio.device.server.")&&t(e,r)}};let it;try{it=new TextDecoder}catch{}let P,V,d=0;const Fn=105,Tn=57342,Ln=57343,$t=57337,Wt=6,ge={};let Je=11281e4,be=1681e4,Un=1671e4,me=Un,L={},K,De,je=0,Me=0,H,re,$=[],st=[],Q,Y,ie,Gt={useRecords:!1,mapsAsObjects:!0},Pe=!1,Ht=2;try{new Function("")}catch{Ht=1/0}class Ie{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[ne(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(P)return rr(()=>{ut();try{return this?this.decode(e,r):Ie.prototype.decode.call(Gt,e,r)}catch(n){throw n&&typeof n=="object"&&Zt.add(n),n}});V=r>-1?r:e.length,d=0,Me=0,De=null,H=null,P=e;try{Y=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(n){throw P=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 Ie){if(L=this,Q=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return K=this.structures,qe();(!K||K.length>0)&&(K=[])}else L=Gt,(!K||K.length>0)&&(K=[]),Q=null;return qe()}decodeMultiple(e,r){let n,i=0;try{let s=e.length;Pe=!0;let o=this?this.decode(e,s):dt.decode(e,s);if(r){if(r(o)===!1)return;for(;d<s;)if(i=d,r(qe())===!1)return}else{for(n=[o];d<s;)i=d,n.push(qe());return n}}catch(s){throw s.lastPosition=i,s.values=n,s}finally{Pe=!1,ut()}}}const Zt=new WeakSet;let Be;function qe(){try{Be=V-d;let t=U();if(H){if(d>=H.postBundlePosition)throw new Error("Unexpected bundle position");d=H.postBundlePosition,H=null}if(d==V)K=null,P=null,re&&(re=null);else if(d>V){let e=new Error("Unexpected end of CBOR data");throw e.incomplete=!0,e}else if(!Pe)throw new Error("Data read, but end of buffer not reached");return t}catch(t){throw ut(),Zt.has(t)?t.incomplete&&(t.incomplete=!1):(t instanceof RangeError&&d+8>V||t&&typeof t.message=="string"&&t.message.startsWith("Unexpected end of buffer"))&&(t.incomplete=!0),t}}function ee(){let t=new Error("Unexpected end of CBOR data");return t.incomplete=!0,t}function U(){if(!(d<V))throw ee();let t=P[d++],e=t>>5;if(t=t&31,t>23)switch(t){case 24:if(d>=V)throw ee();t=P[d++];break;case 25:if(e==7)return Bn();t=Y.getUint16(d),d+=2;break;case 26:if(e==7){let r=Y.getFloat32(d);if(L.useFloat32>2){let n=ft[(P[d]&127)<<1|P[d+1]>>7];return d+=4,(n*r+(r>0?.5:-.5)>>0)/n}return d+=4,r}if(t=Y.getUint32(d),d+=4,e===1)return-1-t;break;case 27:if(e==7){let r=Y.getFloat64(d);return d+=8,r}if(e>1){if(Y.getUint32(d)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");t=Y.getUint32(d+4)}else L.int64AsNumber?(t=Y.getUint32(d)*4294967296,t+=Y.getUint32(d+4)):t=Y.getBigUint64(d);d+=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>=Je)throw new Error(`Array length exceeds ${Je}`);r[i++]=n}return e==4?r:e==3?r.join(""):Buffer.concat(r);case 5:let s;if(L.mapsAsObjects){let o={},h=0;if(L.keyMap)for(;(s=U())!=ge;){if(h++>=me)throw new Error(`Property count exceeds ${me}`);o[ne(L.decodeKey(s))]=U()}else for(;(s=U())!=ge;){if(h++>=me)throw new Error(`Property count exceeds ${me}`);o[ne(s)]=U()}return o}else{ie&&(L.mapsAsObjects=!0,ie=!1);let o=new Map;if(L.keyMap){let h=0;for(;(s=U())!=ge;){if(h++>=be)throw new Error(`Map size exceeds ${be}`);o.set(L.decodeKey(s),U())}}else{let h=0;for(;(s=U())!=ge;){if(h++>=be)throw new Error(`Map size exceeds ${be}`);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:if(t>V-d)throw ee();return jn(t);case 3:if(Me>=d)return De.slice(d-je,(d+=t)-je);if(t>V-d)throw ee();if(Me==0&&V<140&&t<32){let i=t<16?Yt(t):Dn(t);if(i!=null)return i}return Jn(t);case 4:if(t>Je)throw new Error(`Array length exceeds ${Je}`);if(t>V-d||(Be-=t)<0)throw ee();let r=new Array(t);for(let i=0;i<t;i++)r[i]=U();return r;case 5:if(L.mapsAsObjects){if(t>me)throw new Error(`Property count exceeds ${me}`);if(t>(V-d)/2)throw ee();let i={};if(L.keyMap)for(let s=0;s<t;s++)i[ne(L.decodeKey(U()))]=U();else for(let s=0;s<t;s++)i[ne(U())]=U();return i}else{if(ie&&(L.mapsAsObjects=!0,ie=!1),t>be)throw new Error(`Map size exceeds ${be}`);if(t>(V-d)/2)throw ee();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>=$t){let i=K[t&8191];if(i)return i.read||(i.read=ot(i)),i.read();if(t<65536){if(t==Ln){let s=Ce(),o=U(),h=U();ct(o,h);let c={};if(L.keyMap)for(let p=2;p<s;p++){let w=L.decodeKey(h[p-2]);c[ne(w)]=U()}else for(let p=2;p<s;p++){let w=h[p-2];c[ne(w)]=U()}return c}else if(t==Tn){let s=Ce(),o=U();for(let h=2;h<s;h++)ct(o++,U());return U()}else if(t==$t)return Wn();if(L.getShared&&(lt(),i=K[t&8191],i))return i.read||(i.read=ot(i)),i.read()}}let n=$[t];if(n)return n.handlesRead?n(U):n(U());{let i=U();for(let s=0;s<st.length;s++){let o=st[s](t,i);if(o!==void 0)return o}return new pe(i,t)}case 7:switch(t){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;default:let i=(Q||ye())[t];if(i!==void 0)return i;throw new Error("Unknown token "+t)}default:throw isNaN(t)?ee():new Error("Unknown CBOR token "+t)}}const Xt=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function ot(t){if(!t)throw new Error("Structure is required in record definition");function e(){let r=P[d++];if(r=r&31,r>23)switch(r){case 24:r=P[d++];break;case 25:r=Y.getUint16(d),d+=2;break;case 26:r=Y.getUint32(d),d+=4;break;default:throw new Error("Expected array header, but got "+P[d-1])}let n=this.compiledReader;for(;n;){if(n.propertyCount===r)return n(U);n=n.next}if(this.slowReads++>=Ht){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=>Xt.test(o)?ne(o)+":r()":"["+JSON.stringify(o)+"]:r()").join(",")+"}"):new Function("r","return {"+s.map(o=>Xt.test(o)?ne(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[ne(L.decodeKey(this[s]))]=U();else for(let s=0;s<r;s++)i[ne(this[s])]=U();return i}return t.slowReads=0,e}function ne(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 Jn=at;function at(t){let e;if(t<16&&(e=Yt(t)))return e;if(t>64&&it)return it.decode(P.subarray(d,d+=t));const r=d+t,n=[];for(e="";d<r;){const i=P[d++];if((i&128)===0)n.push(i);else if((i&224)===192)if(i<194||d>=r||(P[d]&192)!==128)n.push(65533);else{const s=P[d++]&63;n.push((i&31)<<6|s)}else if((i&240)===224){const s=d<r?P[d]:0;if(d>=r||(s&192)!==128||i===224&&s<160||i===237&&s>=160)n.push(65533);else if(d++,d>=r||(P[d]&192)!==128)n.push(65533);else{const o=P[d++]&63;n.push((i&31)<<12|(s&63)<<6|o)}}else if((i&248)===240){const s=d<r?P[d]:0;if(i>244||d>=r||(s&192)!==128||i===240&&s<144||i===244&&s>=144)n.push(65533);else if(d++,d>=r||(P[d]&192)!==128)n.push(65533);else{const o=P[d++]&63;if(d>=r||(P[d]&192)!==128)n.push(65533);else{const h=P[d++]&63;let c=(i&7)<<18|(s&63)<<12|o<<6|h;c-=65536,n.push(c>>>10&1023|55296),n.push(56320|c&1023)}}}else n.push(65533);n.length>=4096&&(e+=Z.apply(String,n),n.length=0)}return n.length>0&&(e+=Z.apply(String,n)),e}let Z=String.fromCharCode;function Dn(t){let e=d,r=new Array(t);for(let n=0;n<t;n++){const i=P[d++];if((i&128)>0){d=e;return}r[n]=i}return Z.apply(String,r)}function Yt(t){if(t<4)if(t<2){if(t===0)return"";{let e=P[d++];if((e&128)>1){d-=1;return}return Z(e)}}else{let e=P[d++],r=P[d++];if((e&128)>0||(r&128)>0){d-=2;return}if(t<3)return Z(e,r);let n=P[d++];if((n&128)>0){d-=3;return}return Z(e,r,n)}else{let e=P[d++],r=P[d++],n=P[d++],i=P[d++];if((e&128)>0||(r&128)>0||(n&128)>0||(i&128)>0){d-=4;return}if(t<6){if(t===4)return Z(e,r,n,i);{let s=P[d++];if((s&128)>0){d-=5;return}return Z(e,r,n,i,s)}}else if(t<8){let s=P[d++],o=P[d++];if((s&128)>0||(o&128)>0){d-=6;return}if(t<7)return Z(e,r,n,i,s,o);let h=P[d++];if((h&128)>0){d-=7;return}return Z(e,r,n,i,s,o,h)}else{let s=P[d++],o=P[d++],h=P[d++],c=P[d++];if((s&128)>0||(o&128)>0||(h&128)>0||(c&128)>0){d-=8;return}if(t<10){if(t===8)return Z(e,r,n,i,s,o,h,c);{let p=P[d++];if((p&128)>0){d-=9;return}return Z(e,r,n,i,s,o,h,c,p)}}else if(t<12){let p=P[d++],w=P[d++];if((p&128)>0||(w&128)>0){d-=10;return}if(t<11)return Z(e,r,n,i,s,o,h,c,p,w);let y=P[d++];if((y&128)>0){d-=11;return}return Z(e,r,n,i,s,o,h,c,p,w,y)}else{let p=P[d++],w=P[d++],y=P[d++],v=P[d++];if((p&128)>0||(w&128)>0||(y&128)>0||(v&128)>0){d-=12;return}if(t<14){if(t===12)return Z(e,r,n,i,s,o,h,c,p,w,y,v);{let f=P[d++];if((f&128)>0){d-=13;return}return Z(e,r,n,i,s,o,h,c,p,w,y,v,f)}}else{let f=P[d++],S=P[d++];if((f&128)>0||(S&128)>0){d-=14;return}if(t<15)return Z(e,r,n,i,s,o,h,c,p,w,y,v,f,S);let g=P[d++];if((g&128)>0){d-=15;return}return Z(e,r,n,i,s,o,h,c,p,w,y,v,f,S,g)}}}}}function jn(t){return L.copyBuffers?Uint8Array.prototype.slice.call(P,d,d+=t):P.subarray(d,d+=t)}let Qt=new Float32Array(1),ze=new Uint8Array(Qt.buffer,0,4);function Bn(){let t=P[d++],e=P[d++],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 ze[3]=t&128|(r>>1)+56,ze[2]=(t&7)<<5|e>>3,ze[1]=e<<5,ze[0]=0,Qt[0]}new Array(4096);class pe{constructor(e,r){this.value=e,this.tag=r}}$[0]=t=>new Date(t),$[1]=t=>new Date(Math.round(t*1e3)),$[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},$[3]=t=>BigInt(-1)-$[2](t),$[4]=t=>+(t[1]+"e"+t[0]),$[5]=t=>t[1]*Math.exp(t[0]*Math.log(2));const ct=(t,e)=>{t=t-57344;let r=K[t];r&&r.isShared&&((K.restoreStructures||(K.restoreStructures=[]))[t]=r),K[t]=e,e.read=ot(e)};$[Fn]=t=>{let e=t.length,r=t[1];ct(t[0],r);let n={};for(let i=2;i<e;i++){let s=r[i-2];n[ne(s)]=t[i]}return n},$[14]=t=>H?H[0].slice(H.position0,H.position0+=t):new pe(t,14),$[15]=t=>H?H[1].slice(H.position1,H.position1+=t):new pe(t,15);let qn={Error,RegExp};$[27]=t=>(qn[t[0]]||Error)(t[1],t[2]);const er=t=>{if(!(d<V))throw ee();if(P[d++]!=132)throw new Error("Packed values structure must be followed by a 4 element array");let e=t();if(!Array.isArray(e)||!e.length)throw new Error("Packed values structure must be followed by a 4 element array");return Q=Q?e.concat(Q.slice(e.length)):e,Q.prefixes=t(),Q.suffixes=t(),t()};er.handlesRead=!0,$[51]=er,$[Wt]=t=>{if(!Q)if(L.getShared)lt();else return new pe(t,Wt);if(typeof t=="number")return Q[16+(t>=0?2*t:-2*t-1)];throw new Error("No support for non-integer packed references yet")},$[28]=t=>{re||(re=new Map,re.id=0);let e=re.id++,r=d,n=P[d],i;n>>5==4?i=[]:i={};let s={target:i};re.set(e,s);let o=t();return s.used?(Object.getPrototypeOf(i)!==Object.getPrototypeOf(o)&&(d=r,i=o,re.set(e,{target:i}),o=t()),Object.assign(i,o)):(s.target=o,o)},$[28].handlesRead=!0,$[29]=t=>{let e=re.get(t);return e.used=!0,e.target},$[258]=t=>new Set(t),($[259]=t=>{let e=L;if(e.mapsAsObjects){e.mapsAsObjects=!1,ie=!0;try{return t()}finally{ie&&(e.mapsAsObjects=!0,ie=!1)}}return t()}).handlesRead=!0;function Se(t,e){return typeof t=="string"?t+e:t instanceof Array?t.concat(e):Object.assign({},t,e)}function ye(){if(!Q)if(L.getShared)lt();else throw new Error("No packed values available");return Q}const zn=1399353956;st.push((t,e)=>{if(t>=225&&t<=255)return Se(ye().prefixes[t-224],e);if(t>=28704&&t<=32767)return Se(ye().prefixes[t-28672],e);if(t>=1879052288&&t<=2147483647)return Se(ye().prefixes[t-1879048192],e);if(t>=216&&t<=223)return Se(e,ye().suffixes[t-216]);if(t>=27647&&t<=28671)return Se(e,ye().suffixes[t-27639]);if(t>=1811940352&&t<=1879048191)return Se(e,ye().suffixes[t-1811939328]);if(t==zn)return{packedValues:Q,structures:K.slice(0),version:e};if(t==55799)return e});const Kn=new Uint8Array(new Uint16Array([1]).buffer)[0]==1,tr=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array],Vn=[64,68,69,70,71,72,77,78,79,85,86];for(let t=0;t<tr.length;t++)$n(tr[t],Vn[t]);function $n(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;$[i?e:e-4]=n==1||i==Kn?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 h=new DataView(o.buffer,o.byteOffset,o.byteLength),c=o.length>>s,p=new t(c),w=h[r];for(let y=0;y<c;y++)p[y]=w.call(h,y<<s,i);return p}}}function Wn(){let t=Ce(),e=d+U();for(let n=2;n<t;n++){let i=Ce();d+=i}let r=d;return d=e,H=[at(Ce()),at(Ce())],H.position0=0,H.position1=0,H.postBundlePosition=d,d=r,U()}function Ce(){if(!(d<V))throw ee();let t=P[d++]&31;if(t>23)switch(t){case 24:if(d>=V)throw ee();t=P[d++];break;case 25:if(d+2>V)throw ee();t=Y.getUint16(d),d+=2;break;case 26:if(d+4>V)throw ee();t=Y.getUint32(d),d+=4;break}return t}function lt(){if(L.getShared){let t=rr(()=>(P=null,L.getShared()))||{},e=t.structures||[];L.sharedVersion=t.version,Q=L.sharedValues=t.packedValues,K===!0?L.structures=K=e:K.splice.apply(K,[0,e.length].concat(e))}}function rr(t){let e=V,r=d,n=je,i=Me,s=De,o=re,h=H,c=new Uint8Array(P.slice(0,V)),p=K,w=L,y=Pe,v=ie,f=Be;ie=!1;try{return t()}finally{V=e,d=r,je=n,Me=i,De=s,re=o,H=h,P=c,Pe=y,K=p,L=w,ie=v,Be=f,Y=new DataView(P.buffer,P.byteOffset,P.byteLength)}}function ut(){P=null,re=null,K=null}const ft=new Array(147);for(let t=0;t<256;t++)ft[t]=+("1e"+Math.floor(45.15-t*.30103));let dt=new Ie({useRecords:!1});const nr=dt.decode;dt.decodeMultiple;let Ke;try{Ke=new TextEncoder}catch{}let ht,ir;const Ve=typeof globalThis=="object"&&globalThis.Buffer,ke=typeof Ve<"u",pt=ke?Ve.allocUnsafeSlow:Uint8Array,sr=ke?Ve:Uint8Array,or=256,ar=ke?4294967296:2144337920;let yt,u,B,a=0,fe,W=null;const Gn=61440,Hn=/[\u0080-\uFFFF]/,te=Symbol("record-id");class Zn extends Ie{constructor(e){super(e),this.offset=0;let r,n,i,s,o;e=e||{};let h=sr.prototype.utf8Write?function(l,k){return u.utf8Write(l,k,u.byteLength-k)}:Ke&&Ke.encodeInto?function(l,k){return Ke.encodeInto(l,u.subarray(k)).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,k=S.length;l<k;l++)g[S[l]]=l}let C=[],b=0,E=0;this.mapEncode=function(l,k){return this._keyMap&&!this._mapped&&l.constructor.name==="Array"&&(l=l.map(R=>this.encodeKeys(R))),this.encode(l,k)},this.encode=function(l,k){if(u||(u=new pt(8192),B=new DataView(u.buffer,0,8192),a=0),fe=u.length-10,fe-a<2048?(u=new pt(u.length),B=new DataView(u.buffer,0,u.length),fe=u.length-10,a=0):k===fr&&(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"?(W=[],W.size=1/0):W=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 x=0,N=m.length;x<N;x++)g[m[x]]=x}}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 x,N=n.transitions;for(let F=0,T=m.length;F<T;F++){N[te]===void 0&&(N[te]=O);let J=m[F];x=N[J],x||(x=N[J]=Object.create(null)),N=x}N[te]=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,$e(l,R),R.values.length>0){u[a++]=216,u[a++]=51,se(4);let O=R.values;A(O),se(0),se(0),f=Object.create(g||null);for(let m=0,x=O.length;m<x;m++)f[O[m]]=m}}yt=k&bt;try{if(yt)return;if(A(l),W&&W.position&&ur(r,A),c.offset=a,o&&o.idsToInsert){a+=o.idsToInsert.length*2,a>fe&&M(a),c.offset=a;let R=Qn(u.subarray(r,a),o.idsToInsert);return o=null,R}return k&fr?(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][te]=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}k&ti&&(a=r)}},this.findCommonStringsToPack=()=>(v=new Map,g||(g=Object.create(null)),l=>{let k=l&&l.threshold||4,R=this.pack?l.maxPrivatePackedValues||16:0;S||(S=this.sharedValues=[]);for(let[O,m]of v)m.count>k&&(g[O]=R++,S.push(O),i=!0);for(;this.saveShared&&this.updateSharedData()===!1;);v=null});const A=l=>{a>fe&&(u=M(a));var k=typeof l,R;if(k==="string"){if(f){let N=f[l];if(N>=0){N<16?u[a++]=N+224:(u[a++]=198,N&1?A(15-N>>1):A(N-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(W&&O>=4&&O<1024){if((W.size+=O)>Gn){let F,T=(W[0]?W[0].length*3+W[1].length:0)+10;a+T>fe&&(u=M(a+T)),u[a++]=217,u[a++]=223,u[a++]=249,u[a++]=W.position?132:130,u[a++]=26,F=a-r,a+=4,W.position&&ur(r,A),W=["",""],W.size=0,W.position=F}let N=Hn.test(l);W[N?0:1]+=l,u[a++]=N?206:207,A(O);return}let m;O<32?m=1:O<256?m=2:O<65536?m=3:m=5;let x=O*3;if(a+x>fe&&(u=M(a+x)),O<64||!h){let N,F,T,J=a+m;for(N=0;N<O;N++)F=l.charCodeAt(N),F<128?u[J++]=F:F<2048?(u[J++]=F>>6|192,u[J++]=F&63|128):(F&64512)===55296&&((T=l.charCodeAt(N+1))&64512)===56320?(F=65536+((F&1023)<<10)+(T&1023),N++,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=h(l,a+m,x);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(k==="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*ft[(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(k==="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 x=o.idsToInsert||(o.idsToInsert=[]);m.references=[],x.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]])])),I(l);else if(O===Array){R=l.length,R<24?u[a++]=128|R:se(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,x]of l)A(c.encodeKey(m)),A(x);else for(let[m,x]of l)A(m),A(x);else{for(let m=0,x=ht.length;m<x;m++){let N=ir[m];if(l instanceof N){let F=ht[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,M);return}}if(l[Symbol.iterator]){if(yt){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]||wt(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)}I(l)}}else if(k==="boolean")u[a++]=l?245:244;else if(k==="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);vt(new Uint8Array(O.reverse()),M);return}a+=8}else if(k==="undefined")u[a++]=247;else throw new Error("Unknown type: "+k)},I=this.useRecords===!1?this.variableMapSize?l=>{let k=Object.keys(l),R=Object.values(l),O=k.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(k[m])),A(R[m]);else for(let m=0;m<O;m++)A(k[m]),A(R[m])}:l=>{u[a++]=185;let k=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[k+++r]=R>>8,u[k+r]=R&255}:(l,k)=>{let R,O=s.transitions||(s.transitions=Object.create(null)),m=0,x=0,N,F;if(this.keyMap){F=Object.keys(l).map(J=>this.encodeKey(J)),x=F.length;for(let J=0;J<x;J++){let St=F[J];R=O[St],R||(R=O[St]=Object.create(null),m++),O=R}}else for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&(R=O[J],R||(O[te]&1048576&&(N=O[te]&65535),R=O[J]=Object.create(null),m++),O=R,x++);let T=O[te];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))),N===void 0?(T=s.nextId++,T||(T=0,s.nextId=1),T>=or&&(s.nextId=(T=w)+1)):T=N,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<x;J++)(O[te]===void 0||O[te]&1048576)&&(O[te]=T),O=O[F[J]];O[te]=T|1048576,i=!0}else{if(O[te]=T,B.setUint32(a,3655335680),a+=3,m&&(b+=E*m),C.length>=or-w&&(C.shift()[te]=void 0),C.push(O),se(x+2),A(57344+T),A(F),k)return;for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&A(l[J]);return}if(x<24?u[a++]=128|x:se(x),!k)for(let J in l)(typeof l.hasOwnProperty!="function"||l.hasOwnProperty(J))&&A(l[J])},M=l=>{let k;if(l>16777216){if(l-r>ar)throw new Error("Encoded buffer would be larger than maximum buffer size");k=Math.min(ar,Math.round(Math.max((l-r)*(l>67108864?1.25:2),4194304)/4096)*4096)}else k=(Math.max(l-r<<2,u.length-1)>>12)+1<<12;let R=new pt(k);return B=new DataView(R.buffer,0,k),u.copy?u.copy(R,0,r,l):R.set(u.slice(r,l)),a-=r,r=0,fe=R.length-10,u=R};let D=100,q=1e3;this.encodeAsIterable=function(l,k){return ve(l,k,X)},this.encodeAsAsyncIterable=function(l,k){return ve(l,k,mt)};function*X(l,k,R){let O=l.constructor;if(O===Object){let m=c.useRecords!==!1;m?I(l,!0):cr(Object.keys(l).length,160);for(let x in l){let N=l[x];m||A(x),N&&typeof N=="object"?k[x]?yield*X(N,k[x]):yield*_(N,k,x):A(N)}}else if(O===Array){let m=l.length;se(m);for(let x=0;x<m;x++){let N=l[x];N&&(typeof N=="object"||a-r>D)?k.element?yield*X(N,k.element):yield*_(N,k,"element"):A(N)}}else if(l[Symbol.iterator]&&!l.buffer){u[a++]=159;for(let m of l)m&&(typeof m=="object"||a-r>D)?k.element?yield*X(m,k.element):yield*_(m,k,"element"):A(m);u[a++]=255}else wt(l)?(cr(l.size,64),yield u.subarray(r,a),yield l,G()):l[Symbol.asyncIterator]?(u[a++]=159,yield u.subarray(r,a),yield l,G(),u[a++]=255):A(l);R&&a>r?yield u.subarray(r,a):a-r>D&&(yield u.subarray(r,a),G())}function*_(l,k,R){let O=a-r;try{A(l),a-r>D&&(yield u.subarray(r,a),G())}catch(m){if(m.iteratorNotHandled)k[R]={},a=r+O,yield*X.call(this,l,k[R]);else throw m}}function G(){D=q,c.encode(null,bt)}function ve(l,k,R){return k&&k.chunkThreshold?D=q=k.chunkThreshold:D=100,l&&typeof l=="object"?(c.encode(null,bt),R(l,c.iterateProperties||(c.iterateProperties={}),!0)):[c.encode(l)]}async function*mt(l,k){for(let R of X(l,k,!0)){let O=R.constructor;if(O===sr||O===Uint8Array)yield R;else if(wt(R)){let m=R.stream().getReader(),x;for(;!(x=await m.read()).done;)yield x.value}else if(R[Symbol.asyncIterator])for await(let m of R)G(),m?yield*mt(m,k.async||(k.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 lr(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 cr(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 lr{constructor(e,r,n){this.structures=e,this.packedValues=r,this.version=n}}function se(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 Xn=typeof Blob>"u"?function(){}:Blob;function wt(t){if(t instanceof Xn)return!0;let e=t[Symbol.toStringTag];return e==="Blob"||e==="File"}function $e(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++)$e(t[n],e);else{let n=!e.encoder.useRecords;for(var r in t)t.hasOwnProperty(r)&&(n&&$e(r,e),$e(t[r],e))}break;case"function":console.log(t)}}const Yn=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;ir=[Date,Set,Error,RegExp,pe,ArrayBuffer,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?function(){}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?function(){}:BigInt64Array,Float32Array,Float64Array,lr],ht=[{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){vt(t,r)}},{getTag(t){if(t.constructor===Uint8Array&&(this.tagUint8Array||ke&&this.tagUint8Array!==!1))return 64},encode(t,e,r){vt(t,r)}},oe(68,1),oe(69,2),oe(70,4),oe(71,8),oe(72,1),oe(77,2),oe(78,4),oe(79,8),oe(85,4),oe(86,8),{encode(t,e){let r=t.packedValues||[],n=t.structures||[];if(r.values.length>0){u[a++]=216,u[a++]=51,se(4);let i=r.values;e(i),se(0),se(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 pe(t.version,1399353956)),e(i)}else e(new pe(t.version,1399353956))}}];function oe(t,e){return!Yn&&e>1&&(t-=4),{tag:t,encode:function(n,i){let s=n.byteLength,o=n.byteOffset||0,h=n.buffer||n;i(ke?Ve.from(h,o,s):new Uint8Array(h,o,s))}}}function vt(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 Qn(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 h of o.references)t[h++]=s>>8,t[h]=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 ur(t,e){B.setUint32(W.position+t,a-W.position-t+1);let r=W;W=null,e(r[0]),e(r[1])}let gt=new Zn({useRecords:!1});const ei=gt.encode;gt.encodeAsIterable,gt.encodeAsAsyncIterable;const fr=512,ti=1024,bt=2048,ri=Ee("appetize.io:transport:ws-ping"),ni=3e4;function ii(t){let e=!0;const r=()=>{e=!0};t.on("pong",r);const n=setInterval(()=>{if(!e){clearInterval(n),ri("liveness ping went unanswered, terminating"),t.terminate();return}t.readyState===t.OPEN&&(e=!1,t.ping())},ni);return{destroy(){clearInterval(n),t.off("pong",r)},pong:r}}const we=Ee("appetize.io:trace:transport:websocket");class si extends Te{constructor(e,{signal:r}={}){super(async i=>{this.#i.send(ei(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}=ii(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=[];#r=!1;#t=!1;#n;#i;close({destroyWs:e=!1,...r}={}){this.closed||(this.#r=e,super.close(r))}handleClose(e){we("close()");for(const r of this.#e.splice(0))r();if((typeof this.wsOrUrl=="string"||this.#r)&&(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.#t||(this.#t=!0,this.onclose?.(e))}#a=e=>{we("handleWebSocketClose()",e);try{this.#o(e)}finally{this.close()}};#s=e=>{we("handleWebSocketError()",e),this.onerror?.(e)};#c=async e=>{we("handleWebSocketMessage()",e),this.#n?.();const r=this.#u(e);if(!r){we("handleWebSocketMessage() -> legacy"),this.onmessage?.(e);return}we("handleWebSocketMessage() -> jsonrpc",r),this[j].dispatchMessage(r)};#l=e=>{we("handleWebSocketOpen()",e),this.onopen?.(e)};#u(e){try{const r=nr(new Uint8Array(e.data));return Lt(r)?r:null}catch{return null}}}function oi(t){return typeof t=="object"&&t!==null}function ai(t){try{const e=nr(new Uint8Array(t.data));if(oi(e)&&typeof e.name=="string")return{name:e.name,payload:"payload"in e?e.payload:void 0}}catch{}}async function ci(t,e={}){const r=e.baseUrl??(typeof t=="string"?new URL(t).origin:void 0),n=typeof t=="string"?new si(t,{signal:e.signal}):t,i=new In(n,{...e,baseUrl:r});return typeof t=="string"&&await li(n,i,e),i}function li(t,e,r){const n=Vt(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 h=ai(o);h&&n?.(h)}})}async function ui(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 ci(`${n}//${e.host}/ws`);Fr(i,r),Tr(i,r),await Lr(i,r)}await ui(document,location);
|
|
2
2
|
</script></body></html>
|