Autarch/web/static/js/lib/adb-bundle.js

7 lines
56 KiB
JavaScript
Raw Normal View History

var YumeAdb=(()=>{var ft=Object.defineProperty;var Dr=Object.getOwnPropertyDescriptor;var zr=Object.getOwnPropertyNames;var Wr=Object.prototype.hasOwnProperty;var zt=(r,e)=>{for(var t in e)ft(r,t,{get:e[t],enumerable:!0})},_r=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of zr(e))!Wr.call(r,i)&&i!==t&&ft(r,i,{get:()=>e[i],enumerable:!(n=Dr(e,i))||n.enumerable});return r};var qr=r=>_r(ft({},"__esModule",{value:!0}),r);var Ln={};zt(Ln,{Adb:()=>rt,AdbDaemonTransport:()=>dt,AdbDaemonWebUsbDevice:()=>q,AdbDaemonWebUsbDeviceManager:()=>mt});var u=class{#e;get promise(){return this.#e}#t;#r;#n="running";get state(){return this.#n}constructor(){this.#e=new Promise((e,t)=>{this.#t=e,this.#r=t})}resolve=e=>{this.#t(e),this.#n="resolved"};reject=e=>{this.#r(e),this.#n="rejected"}};var Se=class{nextId;pendingResolvers=new Map;constructor(e=0){this.nextId=e}add(){let e=this.nextId++,t=new u;return this.pendingResolvers.set(e,t),[e,t.promise]}getResolver(e){if(!this.pendingResolvers.has(e))return null;let t=this.pendingResolvers.get(e);return this.pendingResolvers.delete(e),t}resolve(e,t){let n=this.getResolver(e);return n!==null?(n.resolve(t),!0):!1}reject(e,t){let n=this.getResolver(e);return n!==null?(n.reject(t),!0):!1}};function Wt(r){return new Promise(e=>{globalThis.setTimeout(()=>e(),r)})}function he(r){return typeof r=="object"&&r!==null&&"then"in r}function yt(r,e){for(;;){let{done:t,value:n}=r.next(e);if(t)return n;if(he(n))return n.then(i=>yt(r,{resolved:i}),i=>yt(r,{error:i}));e=n}}function te(r,e){function t(...n){let i=r.call(this,function*(s){if(he(s)){let o=yield s;if("resolved"in o)return o.resolved;throw o.error}return s},...n);return yt(i,void 0)}return e?t.bind(e):t}function _t(r){return(e,t)=>{if("buffer"in t){let n=r(e,t);return t.buffer.set(n,t.index),n.length}else return r(e,t)}}function qt(r,e){return(t,n)=>{if("buffer"in n)return n.index??=0,e(t,n),r;{let i=new Uint8Array(r);return e(t,{buffer:i,index:0,littleEndian:n.littleEndian}),i}}}function Mr(r,e,t,n,i){let s={size:r,type:e,serialize:e==="default"?_t(t):qt(r,t),deserialize:te(n),omitInit:i==null?void 0:i.omitInit};return i!=null&&i.init&&(s.init=i.init),s}var G=Mr;var w=new Uint8Array(0);function Or(r,e,t,n){e.length<n?(r.set(e,t),r.fill(0,t+e.length,t+n)):e.length===n?r.set(e,t):r.set(e.subarray(0,n),t)}function P(r,e){if(typeof r=="number"){let i,s,o;return r===0?(i=()=>{},e?s=function*(){return e.convert(w)}:s=function*(){return w}):(i=(a,{buffer:c,index:l})=>Or(c,a,l,r),e?(s=function*(a,c){let l=c.readExactly(r);return e.convert(yield*a(l))},o=a=>e.back(a)):s=function*(a,c){return c.readExactly(r)}),G(r,"byob",i,s,{init:o})}if((typeof r=="object"||typeof r=="function")&&"serialize"in r){let i,s;return e?(i=function*(o,a,c){let l=yield*o(r.deserialize(a,c)),h=l!==0?a.readExactly(l):w;return e.convert(yield*o(h))},s=o=>e.back(o)):i=function*(o,a,c){let l=yield*o(r.deserialize(a,c));return l!==0?a.readExactly(l):w},G(r.size,"default",(o,{littleEndian:a})=>{if(r.type==="default"){let c=r.serialize(o.length,{littleEndian:a});if(o.length===0)return c;let l=new Uint8Array(c.length+o.length);return l.set(c,0),l.set(o,c.length),l}else{let c=new Uint8Array(r.size+o.length);return r.serialize(o.length,{buffer:c,index:0,littleEndian:a}),c.set(o,r.size),c}},i,{init:s})}if(typeof r=="string"){let i,s;return e?(i=function*(o,a,{dependencies:c}){let l=c[r],h=l!==0?a.readExactly(l):w;return e.convert(yield*o(h))},s=(o,a)=>{let c=e.back(o);return a[r]=c.length,c}):(i=function*(o,a,{dependencies:c}){let l=c[r];return l!==0?a.readExactly(l):w},s=(o,a)=>{let c=o;return a[r]=c.length,c}),G(0,"default",o=>o,i,{init:s})}let t,n;return e?(t=function*(i,s,{dependencies:o}){let a=o[r.field],c=r.convert(a),l=c!==0?s.readExactly(c):w;return e.convert(yield*i(l))},n=(i,s)=>{let o=e.back(i);return s[r.field]=r.back(o.length),o}):(t=function*(i,s,{dependencies:o}){let a=o[r.field],c=r.convert(a);return c!==0?s.readExactly(c):w},n=(i,s)=>{let o=i;return s[r.field]=r.back(o.length),o}),G(0,"default",i=>i,t,{init:n})}var W=class extends Error{constructor(){su
`+r.join(`
`))}function dr(r,e){if(r.length!==e.length)return!1;for(let t=0;t<r.length;t+=1)if(r[t]!==e[t])return!1;return!0}var hr=f({length:V(4),content:V({field:"length",convert(r){return Number.parseInt(r,16)},back(r){return r.toString(16).padStart(4,"0")}})},{littleEndian:!0}),Me=class extends Error{constructor(e){super(e)}},It=class extends Me{constructor(){super("ADB reverse tunnel is not supported on this device when connected wirelessly.")}},Jr=Y(hr,{},{postDeserialize(r){throw r.content==="more than one device/emulator"?new It:new Me(r.content)}});function en(r){let e=0;for(let t of r){if(t<48||t>57)return e;e=e*10+t-48}return e}var tn=C("OKAY"),Oe=class extends F{#e=new Map;async createBufferedStream(e){let t=await this.adb.createSocket(e);return new z(t.readable)}async sendRequest(e){let t=await this.createBufferedStream(e),n=await t.readExactly(4);return dr(n,tn)||await Jr.deserialize(t),t}async list(){let e=await this.createBufferedStream("reverse:list-forward");return(await hr.deserialize(e)).content.split(`
`).filter(n=>!!n).map(n=>{let[i,s,o]=n.split(" ");return{deviceSerial:i,localName:s,remoteName:o}})}async addExternal(e,t){let n=await this.sendRequest(`reverse:forward:${e};${t}`);if(e.startsWith("tcp:")){let i=n.position;try{let s=cr(await n.readExactly(4));e=`tcp:${en(await n.readExactly(s))}`}catch(s){if(!(s instanceof W&&n.position===i))throw s}}return e}async add(e,t,n){n=await this.adb.transport.addReverseTunnel(t,n);try{return e=await this.addExternal(e,n),this.#e.set(e,n),e}catch(i){throw await this.adb.transport.removeReverseTunnel(n),i}}async remove(e){let t=this.#e.get(e);t&&await this.adb.transport.removeReverseTunnel(t),await this.sendRequest(`reverse:killforward:${e}`)}async removeAll(){await this.adb.transport.clearReverseTunnels(),this.#e.clear(),await this.sendRequest("reverse:killforward-all")}};var Ve=class{#e;get stdin(){return this.#e.writable}get output(){return this.#e.readable}#t;get exited(){return this.#t}constructor(e,t){if(this.#e=e,t){let n=new u;this.#e.closed.then(()=>n.resolve(void 0),i=>n.reject(i)),t.addEventListener("abort",()=>{n.reject(t.reason),this.#e.close()}),this.#t=n.promise}else this.#t=this.#e.closed}kill(){return this.#e.close()}};var je=class{#e;#t;#r;get input(){return this.#r}get output(){return this.#e.readable}get exited(){return this.#e.closed}constructor(e){this.#e=e,this.#t=this.#e.writable.getWriter(),this.#r=new I.WritableStream({write:t=>this.#t.write(t)})}sigint(){return this.#t.write(new Uint8Array([3]))}kill(){return this.#e.close()}};function we(r){let e="";e+="'";let t=0;for(;;){let n=r.indexOf("'",t);if(n===-1){e+=r.substring(t);break}e+=r.substring(t,n),e+=String.raw`'\''`,t=n+1}return e+="'",e}function Fe(r){let e=[],t,n=!1,i=0;for(let s=0,o=r.length;s<o;s+=1){if(n){n=!1;continue}let a=r.charAt(s);switch(a){case" ":!t&&s!==i&&(e.push(r.substring(i,s)),i=s+1);break;case"'":case'"':t?a===t&&(t=void 0):t=a;break;case"\\":n=!0;break}}return i<r.length&&e.push(r.substring(i)),e}var $e=class{#e;constructor(e){this.#e=e}spawn(e,t){return t==null||t.throwIfAborted(),typeof e=="string"&&(e=Fe(e)),this.#e(e,t)}async spawnWait(e){return await(await this.spawn(e)).output.pipeThrough(new X)}async spawnWaitText(e){return await(await this.spawn(e)).output.pipeThrough(new Q).pipeThrough(new _)}};var Ke=class extends $e{#e;get adb(){return this.#e}constructor(e){super(async(t,n)=>{let i=await this.#e.createSocket(`exec:${t.join(" ")}`);if(n!=null&&n.aborted)throw await i.close(),n.reason;return new Ve(i,n)}),this.#e=e}async pty(e){return e===void 0?e="":Array.isArray(e)&&(e=e.join(" ")),new je(await this.#e.createSocket(`shell:${e}`))}};var x={ShellV2:"shell_v2",Cmd:"cmd",StatV2:"stat_v2",ListV2:"ls_v2",FixedPushMkdir:"fixed_push_mkdir",Abb:"abb",AbbExec:"abb_exec",SendReceiveV2:"sendrecv_v2",DelayedAck:"delayed_ack"};var L={Stdin:0,Stdout:1,Stderr:2,Exit:3,CloseStdin:4,WindowSizeChange:5},$=f({id:Zt(),data:P(d)},{littleEndian:!0});var Ge=class{#e;#t;#r;get stdin(){return this.#r}#n;get stdout(){return this.#n}#i;get stderr(){return this.#i}#s;get exited(){return this.#s}constructor(e,t){this.#e=e;let n,i;this.#n=new k(o=>{n=o}),this.#i=new k(o=>{i=o});let s=new u;this.#s=s.promise,e.readable.pipeThrough(new ie($)).pipeTo(new m({write:async o=>{switch(o.id){case L.Exit:s.resolve(o.data[0]);break;case L.Stdout:await n.enqueue(o.data);break;case L.Stderr:await i.enqueue(o.data);break;default:break}}})).then(()=>{n.close(),i.close(),s.reject(new Error("Socket ended without exit message"))},o=>{n.error(o),i.error(o),s.reject(o)}),t&&t.addEventListener("abort",()=>{s.reject(t.reason),this.#e.close()}),this.#t=this.#e.writable.getWriter(),this.#r=new I.WritableStream({write:async o=>{await this.#t.write($.serialize({id:L.Stdin,data:o}))},close:()=>this.#t.write($.serialize({id:L.CloseStdin,data:w}))})}kill(){return this.#e.close()}};var He=class{#e;#t;#r;get input(){return this.#r}#n;get output(){return this.#n}#i=new u;get exited(){return this.#i.promise}constructor(e){this.#e=e;let t;this.#n=new k(n=>{t=n}),e.readable.pipeThrough(new ie($)).pipeTo(new m({write:async n=>{switc
`)throw new Error(t);return t}async disable(){let e=await this.adb.createSocketAndWait("usb:");if(e!==`restarting in USB mode
`)throw new Error(e);return e}};var rt=class{#e;get transport(){return this.#e}get serial(){return this.#e.serial}get maxPayloadSize(){return this.#e.maxPayloadSize}get banner(){return this.#e.banner}get disconnected(){return this.#e.disconnected}get clientFeatures(){return this.#e.clientFeatures}get deviceFeatures(){return this.banner.features}subprocess;power;reverse;tcpip;constructor(e){this.#e=e,this.subprocess=new Xe(this),this.power=new _e(this),this.reverse=new Oe(this),this.tcpip=new tt(this)}canUseFeature(e){return this.clientFeatures.includes(e)&&this.deviceFeatures.includes(e)}async createSocket(e){return this.#e.connect(e)}async createSocketAndWait(e){return await(await this.createSocket(e)).readable.pipeThrough(new Q).pipeThrough(new _)}getProp(e){return this.subprocess.noneProtocol.spawnWaitText(["getprop",e]).then(t=>t.trim())}rm(e,t){let n=["rm"];if(t!=null&&t.recursive&&n.push("-r"),t!=null&&t.force&&n.push("-f"),Array.isArray(e))for(let i of e)n.push(we(i));else n.push(we(e));return n.push("</dev/null"),this.subprocess.noneProtocol.spawnWaitText(n)}async sync(){let e=await this.createSocket("sync:");return new et(this,e)}async framebuffer(){return sr(this)}async close(){await this.#e.close()}};var nt={Product:"ro.product.name",Model:"ro.product.model",Device:"ro.product.device",Features:"features"},it=class r{static parse(e){let t,n,i,s=[],o=e.split("::");if(o.length>1){let a=o[1];for(let c of a.split(";")){if(!c)continue;let l=c.split("=");if(l.length!==2)continue;let[h,T]=l;switch(h){case nt.Product:t=T;break;case nt.Model:n=T;break;case nt.Device:i=T;break;case nt.Features:s=T.split(",");break}}}return new r(t,n,i,s)}#e;get product(){return this.#e}#t;get model(){return this.#t}#r;get device(){return this.#r}#n=[];get features(){return this.#n}constructor(e,t,n,i){this.#e=e,this.#t=t,this.#r=n,this.#n=i}};function kt(r,e,t){let n=0n;for(let i=e;i<e+t;i+=8){n<<=64n;let s=Gt(r,i);n|=s}return n}function Bt(r,e,t,n,i){if(i)for(;n>0n;)Vt(r,e,n),e+=8,n>>=64n;else{let s=e+t-8;for(;n>0n;)jt(r,s,n),s-=8,n>>=64n}}var wn=38,fn=2048/8,yn=303,xn=2048/8;function Rr(r){let e=kt(r,wn,fn),t=kt(r,yn,xn);return[e,t]}function Ar(r,e){let t=r%e;return t>0?t:t+(e>0?e:-e)}function bn(r,e){if(r=Ar(r,e),!r||e<2)return NaN;let t=[],n=e;for(;n;)[r,n]=[n,r%n],t.push({a:r,b:n});if(r!==1)return NaN;let i=1,s=0;for(let o=t.length-2;o>=0;o-=1)[i,s]=[s,i-s*Math.floor(t[o].a/t[o].b)];return Ar(s,e)}var ee=2048/8,Sn=ee/4;function Pt(){return 8+ee+ee+4}function Nr(r,e){let t,n=Pt();if(!e)e=new Uint8Array(n),t="Uint8Array";else{if(e.length<n)throw new TypeError("output buffer is too small");t="number"}let i=new DataView(e.buffer,e.byteOffset,e.length),s=0;i.setUint32(s,Sn,!0),s+=4;let[o]=Rr(r),a=-bn(Number(o%2n**32n),2**32);i.setInt32(s,a,!0),s+=4,Bt(e,s,ee,o,!0),s+=ee;let c=2n**4096n%o;return Bt(e,s,ee,c,!0),s+=ee,i.setUint32(s,65537,!0),s+=4,t==="Uint8Array"?e:n}function gn(r,e,t){if(t===1n)return 0n;let n=1n;for(r=r%t;e>0n;)BigInt.asUintN(1,e)===1n&&(n=n*r%t),r=r*r%t,e>>=1n;return n}var vr=20,Cr=48,En=4,In=5,An=6,Tt=new Uint8Array([Cr,13+vr,Cr,9,An,5,1*40+3,14,3,2,26,In,0,En,vr]);function Tr(r,e){let[t,n]=Rr(r),i=new Uint8Array(256),s=0;i[s]=0,s+=1,i[s]=1,s+=1;let o=i.length-Tt.length-e.length-1;for(;s<o;)i[s]=255,s+=1;i[s]=0,s+=1,i.set(Tt,s),s+=Tt.length,i.set(e,s);let a=gn(kt(i,0,i.length),n,t);return Bt(i,0,i.length,a,!1),i}var S={Auth:1213486401,Close:1163086915,Connect:1314410051,Okay:1497451343,Open:1313165391,Write:1163154007},fe=f({command:d,arg0:d,arg1:d,payloadLength:d,checksum:d,magic:Xt},{littleEndian:!0}),Ka=Y(fe,{payload:P("payloadLength")});function ot(r){return r.reduce((e,t)=>e+t,0)}var st=class extends Ae{constructor(){let e=new Uint8Array(fe.size);super({transform:async(t,n)=>{await t.tryConsume(async i=>{let s=i;s.payloadLength=s.payload.length,fe.serialize(s,e),await y.ReadableStream.enqueue(n,e),s.payloadLength&&await y.ReadableStream.enqueue(n,s.payload)})}})}};var at={Token:1,Signature:2,PublicKey:3},vn=async function*(r,e){for await(let t of r.iterateKeys()){let n=await e();if(n.arg0!==at.Token)return;let i=