@kaeawc/auto-mobile 0.0.91 → 0.0.92
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/dist/build-info.json +12 -12
- package/dist/schemas/README.md +16 -0
- package/dist/schemas/prototype-icon-names.json +302 -0
- package/dist/src/chunk-09442h7v.js +4 -0
- package/dist/src/chunk-0dfnyfkh.js +5 -0
- package/dist/src/chunk-0e4gm1kj.js +5 -0
- package/dist/src/chunk-0eb8576f.js +4 -0
- package/dist/src/chunk-0rjm4nx7.js +5 -0
- package/dist/src/chunk-0w1spptt.js +6 -0
- package/dist/src/chunk-1zmh2eak.js +4 -0
- package/dist/src/chunk-28k63ha3.js +5 -0
- package/dist/src/chunk-2d4wmp8b.js +4 -0
- package/dist/src/chunk-2e6s75qv.js +78 -0
- package/dist/src/chunk-2v7tw1nj.js +5 -0
- package/dist/src/chunk-32jpxz2y.js +323 -0
- package/dist/src/chunk-34zxqcmq.js +5 -0
- package/dist/src/chunk-3jmvqygr.js +238 -0
- package/dist/src/chunk-3swvfhqt.js +5 -0
- package/dist/src/chunk-44bt78m9.js +5 -0
- package/dist/src/chunk-488vt2bp.js +4 -0
- package/dist/src/chunk-4fgdhcwx.js +5 -0
- package/dist/src/chunk-4jp2se4w.js +4 -0
- package/dist/src/chunk-4pfftt07.js +5 -0
- package/dist/src/chunk-4vhr9e4t.js +4 -0
- package/dist/src/chunk-4xd6zs3y.js +15 -0
- package/dist/src/chunk-51567pg8.js +4 -0
- package/dist/src/chunk-5agqsfev.js +4 -0
- package/dist/src/chunk-5d706gmr.js +4 -0
- package/dist/src/chunk-5kd4rqk7.js +5 -0
- package/dist/src/chunk-5s645vr4.js +4 -0
- package/dist/src/chunk-61t538bm.js +4 -0
- package/dist/src/chunk-6d3mmqxt.js +54 -0
- package/dist/src/chunk-6hyt398x.js +5 -0
- package/dist/src/chunk-6mnr8kpm.js +4 -0
- package/dist/src/chunk-6pg7bqck.js +4 -0
- package/dist/src/chunk-79q5xsdc.js +42 -0
- package/dist/src/chunk-7bdgand3.js +4 -0
- package/dist/src/chunk-84cp9dw5.js +4 -0
- package/dist/src/chunk-86f2h5ww.js +5 -0
- package/dist/src/chunk-8cghfzb2.js +19 -0
- package/dist/src/chunk-8en08r7q.js +5 -0
- package/dist/src/chunk-950qcq1e.js +10 -0
- package/dist/src/chunk-9rkfyt6q.js +5 -0
- package/dist/src/chunk-9tf2p9y9.js +5 -0
- package/dist/src/chunk-9y5bcy28.js +6 -0
- package/dist/src/chunk-a2sc4jm0.js +5 -0
- package/dist/src/chunk-a4k9rt7z.js +5 -0
- package/dist/src/chunk-aa5ng3d1.js +4 -0
- package/dist/src/chunk-ajsrz473.js +5 -0
- package/dist/src/chunk-b3h0a6ca.js +4 -0
- package/dist/src/chunk-b4cxdzwy.js +20 -0
- package/dist/src/chunk-b6a737qt.js +4 -0
- package/dist/src/chunk-bn64x5z5.js +5 -0
- package/dist/src/chunk-bvh649za.js +12 -0
- package/dist/src/chunk-c9nk1r78.js +5 -0
- package/dist/src/chunk-c9tyfg4j.js +26 -0
- package/dist/src/chunk-cfsdfqnm.js +4 -0
- package/dist/src/chunk-cxyf04jc.js +7 -0
- package/dist/src/chunk-d57432wq.js +4 -0
- package/dist/src/chunk-da08tx5v.js +4 -0
- package/dist/src/chunk-eka89q3k.js +4 -0
- package/dist/src/chunk-f2tc08m2.js +4 -0
- package/dist/src/chunk-f8tnk179.js +5 -0
- package/dist/src/chunk-f9s1kkhx.js +5 -0
- package/dist/src/chunk-fbp8a4rx.js +4 -0
- package/dist/src/chunk-fd2z0sze.js +4 -0
- package/dist/src/chunk-fk927f4q.js +54 -0
- package/dist/src/chunk-fxmr3a0f.js +4 -0
- package/dist/src/chunk-gaqwhd44.js +4 -0
- package/dist/src/chunk-ggtd5x5a.js +5 -0
- package/dist/src/chunk-gndcfrm7.js +4 -0
- package/dist/src/chunk-h3n4adc6.js +310 -0
- package/dist/src/chunk-h5pjbb83.js +4 -0
- package/dist/src/chunk-hgnnh302.js +4 -0
- package/dist/src/chunk-hmke8nhx.js +5 -0
- package/dist/src/chunk-j2bx12hn.js +4 -0
- package/dist/src/chunk-j70y1a2g.js +4 -0
- package/dist/src/chunk-jdqvcq0a.js +5 -0
- package/dist/src/chunk-jhnbfj19.js +55 -0
- package/dist/src/chunk-js1jpyxp.js +6 -0
- package/dist/src/chunk-kbjq0qvb.js +4 -0
- package/dist/src/chunk-kfwx57xd.js +4 -0
- package/dist/src/chunk-km0dy5vc.js +71 -0
- package/dist/src/chunk-kzwctna2.js +4 -0
- package/dist/src/chunk-m9ehyehy.js +4 -0
- package/dist/src/chunk-mct91p1f.js +4 -0
- package/dist/src/chunk-mf9spd4g.js +5 -0
- package/dist/src/chunk-mgrcansb.js +4 -0
- package/dist/src/chunk-mqc1d0eb.js +6 -0
- package/dist/src/chunk-n1zmpk0z.js +4 -0
- package/dist/src/chunk-ncyjf63g.js +4 -0
- package/dist/src/chunk-nr64d21q.js +973 -0
- package/dist/src/chunk-nwm2pq5v.js +168 -0
- package/dist/src/chunk-pm06b05d.js +9 -0
- package/dist/src/chunk-q50s00ry.js +4 -0
- package/dist/src/chunk-qv2918jt.js +4 -0
- package/dist/src/chunk-qwye1958.js +14 -0
- package/dist/src/chunk-r0f1q783.js +5 -0
- package/dist/src/chunk-r14wwk37.js +18 -0
- package/dist/src/chunk-r20pe1nv.js +5 -0
- package/dist/src/chunk-r8z9pfve.js +5 -0
- package/dist/src/chunk-rdpgkjf6.js +4 -0
- package/dist/src/chunk-rkr0dks9.js +5 -0
- package/dist/src/chunk-rn84t3sf.js +11 -0
- package/dist/src/chunk-s123kn7n.js +4 -0
- package/dist/src/chunk-s1zq65ny.js +4 -0
- package/dist/src/chunk-s73qn3fx.js +4 -0
- package/dist/src/chunk-sjn0nj4p.js +5 -0
- package/dist/src/chunk-sns0c35v.js +7 -0
- package/dist/src/chunk-stfzjr9y.js +8 -0
- package/dist/src/chunk-sz1a7p43.js +4 -0
- package/dist/src/chunk-t4dr5c8v.js +8 -0
- package/dist/src/chunk-tc8k9c1j.js +4 -0
- package/dist/src/chunk-teznhase.js +4 -0
- package/dist/src/chunk-ty9xgmz4.js +4 -0
- package/dist/src/chunk-tyazf3sk.js +145 -0
- package/dist/src/chunk-v6npjrjm.js +5 -0
- package/dist/src/chunk-v90es00d.js +4 -0
- package/dist/src/chunk-vbvtzkwz.js +5 -0
- package/dist/src/chunk-vefd8qee.js +8 -0
- package/dist/src/chunk-vs9r72ta.js +17 -0
- package/dist/src/chunk-w2mwa0jk.js +4 -0
- package/dist/src/chunk-w7zsh13a.js +9 -0
- package/dist/src/chunk-w88k0bgr.js +4 -0
- package/dist/src/chunk-wry6skrm.js +4 -0
- package/dist/src/chunk-wzdt0enk.js +4 -0
- package/dist/src/chunk-xhhv854c.js +4 -0
- package/dist/src/chunk-y58270hd.js +4 -0
- package/dist/src/chunk-yk0hmbex.js +4 -0
- package/dist/src/chunk-ympy4fdz.js +28 -0
- package/dist/src/chunk-yw436axy.js +4 -0
- package/dist/src/chunk-z04jrpjy.js +5 -0
- package/dist/src/chunk-z2xznczw.js +4 -0
- package/dist/src/chunk-z4xnrgps.js +4 -0
- package/dist/src/chunk-z7csyszv.js +4 -0
- package/dist/src/chunk-z8t0v07j.js +11 -0
- package/dist/src/chunk-z916af47.js +228 -0
- package/dist/src/chunk-zcr8he8q.js +5 -0
- package/dist/src/chunk-zd9vmkzn.js +9 -0
- package/dist/src/chunk-zg67wjkh.js +5 -0
- package/dist/src/chunk-zj939v0h.js +5 -0
- package/dist/src/chunk-zkdjwtc1.js +4 -0
- package/dist/src/chunk-zkv5kzt6.js +4 -0
- package/dist/src/daemon/processEntry.js +4 -0
- package/dist/src/index.js +4 -2843
- package/dist/src/runtime/bunRuntimeGuard.js +4 -0
- package/dist/src/utils/workers/iosBundleExtractWorker.js +2 -3
- package/package.json +5 -5
- package/schemas/README.md +16 -0
- package/schemas/prototype-icon-names.json +302 -0
- package/node_modules/@borewit/text-codec/README.md +0 -87
- package/node_modules/@jimp/diff/node_modules/pixelmatch/README.md +0 -110
- package/node_modules/@jimp/diff/node_modules/pixelmatch/node_modules/pngjs/README.md +0 -433
- package/node_modules/@jimp/file-ops/dist/browser/index.js +0 -8
- package/node_modules/@jimp/js-png/README.md +0 -35
- package/node_modules/@jimp/js-png/src/__image_snapshots__/index-node-test-ts-png-should-use-png-options-1-snap.png +0 -0
- package/node_modules/@jimp/js-png/src/output.png +0 -0
- package/node_modules/@jimp/js-png/vitest.config.browser.mjs +0 -3
- package/node_modules/@jimp/plugin-resize/README.md +0 -12
- package/node_modules/@jimp/plugin-resize/vitest.config.browser.mjs +0 -3
- package/node_modules/@tokenizer/inflate/README.md +0 -114
- package/node_modules/@tokenizer/token/README.md +0 -19
- package/node_modules/await-to-js/README.md +0 -82
- package/node_modules/debug/README.md +0 -481
- package/node_modules/exif-parser/README.md +0 -83
- package/node_modules/file-type/readme.md +0 -667
- package/node_modules/ieee754/README.md +0 -51
- package/node_modules/mime/README.md +0 -178
- package/node_modules/ms/readme.md +0 -59
- package/node_modules/parse-bmfont-xml/README.md +0 -74
- package/node_modules/parse-bmfont-xml/lib/browser.js +0 -85
- package/node_modules/parse-bmfont-xml/node_modules/xml2js/README.md +0 -507
- package/node_modules/pngjs/README.md +0 -287
- package/node_modules/sax/README.md +0 -228
- package/node_modules/strtok3/README.md +0 -795
- package/node_modules/tinycolor2/README.md +0 -492
- package/node_modules/tinycolor2/cjs/test.js +0 -2191
- package/node_modules/tinycolor2/cjs/test_template.js +0 -26
- package/node_modules/tinycolor2/deno_asserts@0.168.0.mjs +0 -807
- package/node_modules/tinycolor2/esm/test.js +0 -2189
- package/node_modules/tinycolor2/esm/test_template.js +0 -24
- package/node_modules/tinycolor2/tinycolor.js +0 -1191
- package/node_modules/token-types/README.md +0 -160
- package/node_modules/uint8array-extras/readme.md +0 -318
- package/node_modules/xml-parse-from-string/README.md +0 -35
- package/node_modules/xmlbuilder/README.md +0 -86
- package/node_modules/zod/README.md +0 -208
- package/node_modules/zod/v4/locales/ar.d.cts +0 -4
- package/node_modules/zod/v4/locales/ar.d.ts +0 -4
- package/node_modules/zod/v4/locales/az.d.cts +0 -4
- package/node_modules/zod/v4/locales/az.d.ts +0 -4
- package/node_modules/zod/v4/locales/be.d.cts +0 -4
- package/node_modules/zod/v4/locales/be.d.ts +0 -4
- package/node_modules/zod/v4/locales/ca.d.cts +0 -4
- package/node_modules/zod/v4/locales/ca.d.ts +0 -4
- package/node_modules/zod/v4/locales/cs.d.cts +0 -4
- package/node_modules/zod/v4/locales/cs.d.ts +0 -4
- package/node_modules/zod/v4/locales/de.d.cts +0 -4
- package/node_modules/zod/v4/locales/de.d.ts +0 -4
- package/node_modules/zod/v4/locales/en.d.cts +0 -5
- package/node_modules/zod/v4/locales/en.d.ts +0 -5
- package/node_modules/zod/v4/locales/eo.d.cts +0 -5
- package/node_modules/zod/v4/locales/eo.d.ts +0 -5
- package/node_modules/zod/v4/locales/es.d.cts +0 -4
- package/node_modules/zod/v4/locales/es.d.ts +0 -4
- package/node_modules/zod/v4/locales/fa.d.cts +0 -4
- package/node_modules/zod/v4/locales/fa.d.ts +0 -4
- package/node_modules/zod/v4/locales/fi.d.cts +0 -4
- package/node_modules/zod/v4/locales/fi.d.ts +0 -4
- package/node_modules/zod/v4/locales/fr-CA.d.cts +0 -4
- package/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
- package/node_modules/zod/v4/locales/fr.d.cts +0 -4
- package/node_modules/zod/v4/locales/fr.d.ts +0 -4
- package/node_modules/zod/v4/locales/he.d.cts +0 -4
- package/node_modules/zod/v4/locales/he.d.ts +0 -4
- package/node_modules/zod/v4/locales/hu.d.cts +0 -4
- package/node_modules/zod/v4/locales/hu.d.ts +0 -4
- package/node_modules/zod/v4/locales/id.d.cts +0 -4
- package/node_modules/zod/v4/locales/id.d.ts +0 -4
- package/node_modules/zod/v4/locales/index.d.cts +0 -39
- package/node_modules/zod/v4/locales/index.d.ts +0 -39
- package/node_modules/zod/v4/locales/it.d.cts +0 -4
- package/node_modules/zod/v4/locales/it.d.ts +0 -4
- package/node_modules/zod/v4/locales/ja.d.cts +0 -4
- package/node_modules/zod/v4/locales/ja.d.ts +0 -4
- package/node_modules/zod/v4/locales/kh.d.cts +0 -4
- package/node_modules/zod/v4/locales/kh.d.ts +0 -4
- package/node_modules/zod/v4/locales/ko.d.cts +0 -4
- package/node_modules/zod/v4/locales/ko.d.ts +0 -4
- package/node_modules/zod/v4/locales/mk.d.cts +0 -4
- package/node_modules/zod/v4/locales/mk.d.ts +0 -4
- package/node_modules/zod/v4/locales/ms.d.cts +0 -4
- package/node_modules/zod/v4/locales/ms.d.ts +0 -4
- package/node_modules/zod/v4/locales/nl.d.cts +0 -4
- package/node_modules/zod/v4/locales/nl.d.ts +0 -4
- package/node_modules/zod/v4/locales/no.d.cts +0 -4
- package/node_modules/zod/v4/locales/no.d.ts +0 -4
- package/node_modules/zod/v4/locales/ota.d.cts +0 -4
- package/node_modules/zod/v4/locales/ota.d.ts +0 -4
- package/node_modules/zod/v4/locales/pl.d.cts +0 -4
- package/node_modules/zod/v4/locales/pl.d.ts +0 -4
- package/node_modules/zod/v4/locales/ps.d.cts +0 -4
- package/node_modules/zod/v4/locales/ps.d.ts +0 -4
- package/node_modules/zod/v4/locales/pt.d.cts +0 -4
- package/node_modules/zod/v4/locales/pt.d.ts +0 -4
- package/node_modules/zod/v4/locales/ru.d.cts +0 -4
- package/node_modules/zod/v4/locales/ru.d.ts +0 -4
- package/node_modules/zod/v4/locales/sl.d.cts +0 -4
- package/node_modules/zod/v4/locales/sl.d.ts +0 -4
- package/node_modules/zod/v4/locales/sv.d.cts +0 -4
- package/node_modules/zod/v4/locales/sv.d.ts +0 -4
- package/node_modules/zod/v4/locales/ta.d.cts +0 -4
- package/node_modules/zod/v4/locales/ta.d.ts +0 -4
- package/node_modules/zod/v4/locales/th.d.cts +0 -4
- package/node_modules/zod/v4/locales/th.d.ts +0 -4
- package/node_modules/zod/v4/locales/tr.d.cts +0 -5
- package/node_modules/zod/v4/locales/tr.d.ts +0 -5
- package/node_modules/zod/v4/locales/ua.d.cts +0 -4
- package/node_modules/zod/v4/locales/ua.d.ts +0 -4
- package/node_modules/zod/v4/locales/ur.d.cts +0 -4
- package/node_modules/zod/v4/locales/ur.d.ts +0 -4
- package/node_modules/zod/v4/locales/vi.d.cts +0 -4
- package/node_modules/zod/v4/locales/vi.d.ts +0 -4
- package/node_modules/zod/v4/locales/zh-CN.d.cts +0 -4
- package/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
- package/node_modules/zod/v4/locales/zh-TW.d.cts +0 -4
- package/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Zi,Y,dt,M,Ot,rd,oB,tR,ul,jo,_,k}from"./chunk-h3n4adc6.js";import{e}from"./chunk-z8t0v07j.js";import{De,wt}from"./chunk-4fgdhcwx.js";import{bo,VF,tv}from"./chunk-0w1spptt.js";import{nc}from"./chunk-vefd8qee.js";import{Fy,zl}from"./chunk-4xd6zs3y.js";import{fh,J0,X0}from"./chunk-0rjm4nx7.js";import{r,yt}from"./chunk-9rkfyt6q.js";function A(t){return t.success&&t.focusVerified===!0}function g(t,n){let s=t.matchedText??n.text??n.textAny?.[0]??n.elementId??n.testTag;return s?JSON.stringify(s):"for the selector"}var I=(t)=>({focus:async(n,s)=>{let i=await new nc(t).execute({...n,action:"focus"},{signal:s});return{success:i.success,error:i.error,focusVerified:i.focusVerified===!0,matchedId:i.selectedElement?.resourceId,matchedText:i.selectedElement?.text}}});function u(t,n){if(n?.retryable!==!1)t?.throwIfAborted()}async function w(t,n,s){if(!n)return;let i;try{let d=await t.requestImeAction(n);if(u(s),!d.success)i=d.error||"unknown error"}catch(d){u(s),i=r(d)||"unknown error"}if(i===void 0)return;return e.warn(`[InputText] CtrlProxy iOS IME action '${n}' failed: ${i}`),tv(n,i)}async function v({device:t,observeScreen:n,timer:s},i,d,o){u(o);let p=Date.now();e.debug(`[InputText] iOS begin textLength=${i.length} imeAction=${d??"none"}`);let c=_.getInstance(t),a=await fh({observer:n,timer:s,signal:o});u(o);let l=jo(),y=await c.requestSetText(i,{...l===void 0?{}:{deadlineMs:l},timeoutMs:ul(i,l===void 0?void 0:l-s.now()),abortSignal:o});if(!y.success)return u(o,y),e.error(`[InputText] CtrlProxy iOS setText failed: ${y.error} totalMs=${Date.now()-p}`),{success:!1,text:i,error:await X0(y.error,i,a,{observer:n,timer:s,signal:o}),...y.retryable===!1?{retryable:!1}:{},method:"a11y"};e.debug(`[InputText] iOS setText ok totalMs=${Date.now()-p}`);let f=await J0(i,a,{observer:n,timer:s,signal:o});if(!f.success)return{success:!1,text:i,error:f.error,method:"a11y"};let m=await w(c,d,o);if(m!==void 0)return{success:!1,text:i,method:"a11y",error:m};return{success:!0,text:i,imeAction:d,method:"a11y",...f.warning?{warnings:[f.warning]}:{}}}function E(t,n){for(let s of n)if(s.length>0&&t.includes(s))return"eventAll";return}var S=100,F=(t,n)=>{let s=new bo(t,{adbFactory:n});return{close:(i)=>s.execute("close",i)}};function K(t={},n={}){return{...t,dismissKeyboard:t.dismissKeyboard??!1,signal:n.signal}}class cq extends De{androidApiLevel;targetFocuser;keyboardCloserFactory;constructor(t,n=null,s={}){super(t,{adb:n,timer:s.timer,displayFence:s});this.device=t,this.keyboardCloserFactory=s.keyboardCloserFactory??F,this.targetFocuser=(s.targetFocuserFactory??I)(t)}get testHooks(){return{executeAndroidTextInput:(t,n)=>this.executeAndroidTextInput(t,n),executeKeyEventPlan:(t,n)=>this.executeKeyEventPlan(t,n),executeiOSTextInput:(t,n,s)=>v(this.iosTextDeps(),t,n,s)}}iosTextDeps(){return{device:this.device,observeScreen:this.observeScreen,timer:this.timer}}async execute(t,n,s){Fy(this.device.platform,"text input");let{imeAction:i,dismissKeyboard:d,mode:o,selector:p,signal:c}=K(n,s),a=Y();if(a.serial("inputText"),t===void 0||t===null)return a.end(),{success:!1,text:"",error:"No text provided",method:"a11y"};let l=o??"a11y";if(this.device.platform==="android"&&o===void 0){let m=E(t,M.getEventAllMarkers());if(m)l=m,e.debug("[InputText] auto-promoted a11y -> eventAll (text matched a configured event-all marker)")}let y={};if(p){u(c);let m=await this.targetFocuser.focus(p,c);if(!A(m))return a.end(),{success:!1,text:t,error:m.error??`Failed to confirm focus on editable input ${g(m,p)} before typing`,method:this.device.platform==="android"?l:"a11y"};y={matchedId:m.matchedId,matchedText:m.matchedText}}u(c);let f=await this.observedInteraction(async()=>{try{switch(u(c),this.device.platform){case"android":return await a.track("androidTextInput",()=>this.executeAndroidTextInput(t,{imeAction:i,dismissKeyboard:d,mode:l,signal:c}));case"ios":return await a.track("iOSTextInput",()=>v(this.iosTextDeps(),t,i,c));default:throw a.end(),yt(this.device.platform,"input text")}}catch(m){u(c),a.end();let x=r(m);return e.warn(`[InputText] text input failed (mode=${l}): ${x}`,m),{success:!1,text:t,error:`Failed to send text input: ${x}`,method:this.device.platform==="android"?l:"a11y"}}},{usesObservationForResolution:!1,changeExpected:!0,tolerancePercent:0,timeoutMs:wt.lifecycle,perf:a,signal:c,skipUiStability:!0});return u(c,f),{...f,...y}}async executeAndroidTextInput(t,n={}){let{imeAction:s,dismissKeyboard:i=!1,mode:d="a11y",signal:o}=n;if(u(o),d==="eventLast")return this.executeAndroidEventLastTextInput(t,s,i,o);if(d==="eventAll")return this.executeAndroidEventAllTextInput(t,s,i,o);if(d==="append")return this.executeAndroidAppendTextInput(t,{imeAction:s,dismissKeyboard:i,signal:o});let p=k.getInstance(this.device,this.adbFactory),c=await this.withTextDispatch(()=>p.requestSetText(t));if(u(o),c.success){if(e.info(`[InputText] Text input via accessibility service: ${c.totalTimeMs}ms`),s)await this.executeImeAction(s,o);let a=i?await this.dismissKeyboardEpilogue(o):{};return{success:!0,text:t,imeAction:s,method:"a11y",...a}}return e.warn(`[InputText] Accessibility service setText failed: ${c.error}`),{success:!1,text:t,error:`Accessibility service setText failed: ${c.error}`,method:"a11y"}}async a11yFallback(t,n){return{...await this.executeAndroidTextInput(t,{...n,mode:"a11y"}),method:"a11y"}}async executeAndroidEventLastTextInput(t,n,s=!1,i){u(i);let d=this.findLastPrintableAsciiNonWhitespace(t);if(!d)return e.info("[InputText] eventLast requested but no printable non-whitespace ASCII character was found; using a11y"),this.a11yFallback(t,{imeAction:n,dismissKeyboard:s,signal:i});let{index:o,char:p}=d,c=t.slice(0,o),a=t.slice(o+1),l=await this.getAsciiKeyEventPlan(p,void 0,i);if(u(i),!l)return e.info(`[InputText] eventLast could not map ASCII character ${JSON.stringify(p)} to a key event; using a11y`),this.a11yFallback(t,{imeAction:n,dismissKeyboard:s,signal:i});let y=k.getInstance(this.device,this.adbFactory),f=await this.withTextDispatch(()=>y.requestSetText(c));if(u(i),!f.success)return this.setTextFailure(t,{stage:"eventLast prefix",phase:"before real key event",cause:f.error,method:"eventLast"});if(await this.executeKeyEventPlan(l,{signal:i}),a.length>0){let x=await this.withTextDispatch(()=>y.requestSetText(t));if(u(i),!x.success)return this.setTextFailure(t,{stage:"eventLast final",phase:"after real key event",cause:x.error,method:"eventLast"})}if(n)await this.executeImeAction(n,i);let m=s?await this.dismissKeyboardEpilogue(i):{};return{success:!0,text:t,imeAction:n,method:"eventLast",...m}}async executeAndroidEventAllTextInput(t,n,s=!1,i){u(i);let d=Array.from(t);if(!await this.hasAsciiKeyEventPlan(d,i))return this.a11yFallback(t,{imeAction:n,dismissKeyboard:s,signal:i});let o=k.getInstance(this.device,this.adbFactory),p=await this.withTextDispatch(()=>o.requestSetText(""));if(u(i),!p.success)return this.setTextFailure(t,{stage:"eventAll initial clear",phase:"before eventAll input",cause:p.error,method:"eventAll"});let c=await this.sendAndroidEventAllCharacters(t,d,o,i);if(c)return c;if(s){let l=await this.withTextDispatch(()=>o.requestSetText(t));if(u(i),!l.success)return this.setTextFailure(t,{stage:"eventAll final",phase:"after eventAll input",cause:l.error,method:"eventAll"})}if(n)await this.executeImeAction(n,i);let a=s?await this.dismissKeyboardEpilogue(i):{};return{success:!0,text:t,imeAction:n,method:"eventAll",...a}}async sendAndroidEventAllCharacters(t,n,s,i){let d="";for(let o=0;o<n.length;o++){u(i);let p=n[o]??"",c=await this.getAsciiKeyEventPlan(p,void 0,i);if(c){await this.executeKeyEventPlan(c,{signal:i}),d+=p;continue}let a=p;while(o+1<n.length&&!await this.getAsciiKeyEventPlan(n[o+1]??"",void 0,i))u(i),o++,a+=n[o]??"";d+=a;let l=await this.withTextDispatch(()=>s.requestSetText(d));if(u(i),!l.success)return this.setTextFailure(t,{stage:"eventAll unsupported text run",phase:"during eventAll input",cause:l.error,method:"eventAll"})}return}async appendText(t,n={}){return this.executeAndroidAppendTextInput(t,n)}async executeAndroidAppendTextInput(t,n={}){let{imeAction:s,timeoutMs:i,beforeKeyEvents:d,signal:o,onDispatch:p}=n;u(o);let c=this.createBudget(i),a=await this.planAppendKeyEvents(t,c,i,o);if(a.error)return this.appendFailure(t,a.error,0);let l=await this.typeAppendKeyEvents(a.plans,{remaining:c,timeoutMs:i},{beforeKeyEvents:d,signal:o,onDispatch:p});if(l.error)return this.appendFailure(t,l.error,l.charsSent,l.failureSource);if(s)await this.executeImeAction(s,o);let y=n.dismissKeyboard?await this.dismissKeyboardEpilogue(o):{};return{success:!0,text:t,imeAction:s,method:"append",charsSent:l.charsSent,...y}}async planAppendKeyEvents(t,n,s,i){u(i);let d=Array.from(t),o=d.some((a)=>oB(a)),p=!1;if(o){let a=n();if(a!==void 0&&a<=0)return{plans:[],error:this.appendBudgetExceeded(s,"resolving key events")};p=await this.supportsAndroidInputKeyCombination(a,i)}let c=[];for(let a of d){let l=tR(a,p);if(!l)return{plans:c,error:`append cannot type ${JSON.stringify(a)} with Android key events`};c.push(l)}return{plans:c}}async typeAppendKeyEvents(t,n,s){let{remaining:i,timeoutMs:d}=n,{beforeKeyEvents:o,signal:p,onDispatch:c}=s,a=0;for(let l of t){u(p);let y=i();if(y!==void 0&&y<=0)return{charsSent:a,error:this.appendBudgetExceeded(d,"typing")};let f,m,x=a===0?async(T)=>{try{let h=await o?.(T);if(u(p),h&&!h.success)f=h.error??"Frame context is stale or unavailable; observe a fresh frame before retrying",m=h.failureSource}catch(h){f=`append frame context validation failed: ${r(h)}`}let b=i();if(f===void 0&&b!==void 0&&b<=0)f=this.appendBudgetExceeded(d,"typing");if(f)throw Error(f);u(p),c?.()}:void 0;try{await this.executeKeyEventPlan(l,{timeoutMs:y,noRetry:!0,beforeDispatch:x,signal:p})}catch(T){if(u(p),f)return{charsSent:a,error:f,...m!==void 0?{failureSource:m}:{}};let b=r(T);return e.warn(`[InputText] append key event failed after ${a} char(s): ${b}`,T),{...T instanceof dt?{}:{charsSent:a},error:`append key event failed: ${b}`}}a+=1}return{charsSent:a}}async dismissKeyboardEpilogue(t){let n;try{n=await this.keyboardCloserFactory(this.device,this.adbFactory).close(t)}catch(i){u(t);let d=r(i);return e.warn(`[InputText] keyboard dismissal threw: ${d}`,i),zl({keyboardDismissed:!1},`keyboard dismissal failed: ${d}`)}if(u(t),n.success)return{keyboardDismissed:!0};let s=n.error??n.message??"unknown error";return zl({keyboardDismissed:!1},`keyboard dismissal failed: ${s}`)}createBudget(t){if(t===void 0)return()=>{return};let n=this.timer.now()+t;return()=>n-this.timer.now()}appendBudgetExceeded(t,n){return`append exceeded its ${t}ms budget while ${n}`}appendFailure(t,n,s,i){return{success:!1,text:t,error:n,method:"append",...s!==void 0?{charsSent:s}:{},...i!==void 0?{failureSource:i}:{}}}setTextFailure(t,n){let{stage:s,phase:i,cause:d,method:o}=n;return e.warn(`[InputText] ${s} setText failed: ${d}`),{success:!1,text:t,error:`Accessibility service setText failed ${i}: ${d}`,method:o}}findLastPrintableAsciiNonWhitespace(t){for(let n=t.length-1;n>=0;n--){let s=t[n];if(!s)continue;let i=s.charCodeAt(0);if(i>=33&&i<=126&&!/\s/.test(s))return{index:n,char:s}}return null}async hasAsciiKeyEventPlan(t,n){for(let s of t)if(await this.getAsciiKeyEventPlan(s,void 0,n))return!0;return!1}async getAsciiKeyEventPlan(t,n,s){u(s);let i=await this.supportsAndroidInputKeyCombination(n,s);return u(s),tR(t,i)}async supportsAndroidInputKeyCombination(t,n){let s=await this.getAndroidApiLevel(t,n);return s!==null&&s>=rd}async getAndroidApiLevel(t,n){if(u(n),this.androidApiLevel!==void 0)return this.androidApiLevel;let s=await Ot(this.adb,t,this.timer);if(u(n),s===null)return null;return this.androidApiLevel=s,s}async withTextDispatch(t){let s=Zi()?.textState?.dispatched();try{return await t()}finally{s?.(!0)}}async executeKeyEventPlan(t,n={}){let{timeoutMs:s,noRetry:i=!1,beforeDispatch:d,signal:o}=n;for(let[p,c]of t.commands.entries()){u(o);let a=c.startsWith("shell input text ")?await this.getAndroidApiLevel(s,o):null;await this.withTextDispatch(()=>{let l={timeoutMs:s,noRetry:i,beforeDispatch:p===0?d:void 0,signal:o,waitForProcessSettlementAfterAbort:!0};return c.startsWith("shell input text ")?VF(this.adb,this.timer,c,{...l,apiLevel:a,textLength:t.textLength??1}):this.adb.execute(c.split(" "),l)}),u(o)}}async executeImeAction(t,n){let i={done:"KEYCODE_ENTER",next:"KEYCODE_TAB",search:"KEYCODE_SEARCH",send:"KEYCODE_ENTER",go:"KEYCODE_ENTER",previous:"KEYCODE_SHIFT_LEFT KEYCODE_TAB"}[t];if(i)if(u(n),await this.timer.sleep(S),u(n),i.includes(" ")){let d=i.split(" ");for(let o of d)u(n),await this.withTextDispatch(()=>this.adb.executeCommand(`shell input keyevent ${o}`,{signal:n,waitForProcessSettlementAfterAbort:!0})),u(n)}else await this.withTextDispatch(()=>this.adb.executeCommand(`shell input keyevent ${i}`,{signal:n,waitForProcessSettlementAfterAbort:!0})),u(n)}}
|
|
3
|
+
export{cq};
|
|
4
|
+
|
|
5
|
+
//# debugId=50BF58AF0606C41264756E2164756E21
|