{"_id":"droidline","_rev":"14-a8e4087633b440f24108c2282e17d375","name":"droidline","dist-tags":{"latest":"0.1.13"},"versions":{"0.0.0-stage":{"name":"droidline","version":"0.0.0-stage","_id":"droidline@0.0.0-stage","stub":true,"maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"dist":{"shasum":"67a1cbb0cc6e3ac6572f7adc983973efd9fe7ce3","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.0.0-stage.tgz","fileCount":2,"integrity":"sha512-SW6NQJZfr1+fEZicCSAW2bLPRkzcCBBtOlwWdYCyMOLJzTfCMLJpqAY0KI4uqlzFfTz3Hc4Wl2FfgwNT4axlhA==","signatures":[{"sig":"MEYCIQCKfvccrE84v2dm37I948AUSoJQ35OR1RhmgoxwLOY5lwIhAKFj2ut3Sdr+7WJyF5tMHgYRbWlk5GeOMSMh02WlqTQG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331},"_npmUser":{"name":"knifelemon","email":"knifelemon@gmail.com"},"description":"Temporary package placeholder for staged publishing","directories":{}},"0.1.1":{"name":"droidline","version":"0.1.1","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.1","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"7c3d27b6a38b478047e22709e6f410f002a3956b","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.1.tgz","fileCount":16,"integrity":"sha512-7Xss5mcS1lNiHAmpw+KO77imqIijA2nNXj1m/ZYZ1GyWPBYUAJV6Lp7o4ixWAo7Tb9DjXesLx8xuGvZWFgrFPQ==","signatures":[{"sig":"MEQCIDmxv1LZB6cu6ZmdORgvXrfOgB259jGrIyNCOjyHz9X0AiAtNWvkuE8/Gua1Ey93XMOX/WFYaCvlp1zvPklrWJWLQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCi4MI7mQm5+dHkFraWZjZiR+XOXtpMU5LQNF14vjUPLQIgEwuQB0VdjMgwGCEB3NNOYNKj4tK/hbdCA7/wh5VpDv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247104},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"324a3e663da5e91926a7e82fd726fbc56870f0b7","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"knifelemon","email":"knifelemon@gmail.com"},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.1.0","description":"Control Android phones from Node.js without ADB or root: find elements, tap, type, take screenshots and read notifications.","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.1_1791571541171_0.3696108940355445","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"droidline","version":"0.1.2","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.2","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"3913accef085b1996571596639a6f0a940629f78","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.2.tgz","fileCount":16,"integrity":"sha512-fKkc3pMRpT0v49d4O6wtqwE9FDH0i/Cam8gRGVbBOdMlFPfpcZxH+mKG5fyOlfib5zLPqbTWHkrJSeaaxQH8HQ==","signatures":[{"sig":"MEUCIDFl//OVeA0okqzRlfBIauFkJZA4Cu1kUfnAKEKzS10iAiEA1vMtaamQeoa4xYP/3ivCPNJxeocWu5TuJ4KHTExWaPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBroLOZVenUfrKDINKhOtv3l811T4ohQafs3WPNkNinyAiEAk4nxzvOVSlvi70diH6xRLk3uFtcdo/qA5Z+uIYJOZ/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247104},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"b24141249a603835b87945ae79f0f27aee1f0069","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.0","description":"Control Android phones from Node.js without ADB or root: find elements, tap, type, take screenshots and read notifications.","directories":{},"_nodeVersion":"22.23.3","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.2_1791571744368_0.9626778039404993","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"droidline","version":"0.1.3","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.3","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"df4c616b8259b33884b35e5356d02ee18d6c05d6","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.3.tgz","fileCount":16,"integrity":"sha512-FPYAmLxWL75CElLju+9dcKfQzLhbMtLrBYbd77RLyDC2WIhUfuKXrloOc4BvEoZlSXz8oJViAy6wwD08vcuZMg==","signatures":[{"sig":"MEQCIB782G2ERkVrEBLH4B/C8ayFfiBLFGVsNUDZZfQyrJGFAiAZcU+zwPfa464s2p3fe7Mw61z9T3aZrXHqeWYI7/Lzag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDouvgNnjmM9nf4VrhVHs3Eh9AWGQGxZUaeRKEv7f4U/gIgTLimvwYsm1dqOUTaVMRerwEWdSIybZr2v9lkUCnkDV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247209},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"0ca9783ee1665ae385f20b120509d5d1addf6496","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.0","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"_nodeVersion":"22.23.3","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.3_1791574642527_0.6783294805530184","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"droidline","version":"0.1.4","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.4","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"8111971cfb015be2294d27f97f77416d4acb4d3a","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.4.tgz","fileCount":16,"integrity":"sha512-eannPGtuVgWNCYYnk1uwMh4rhWz6iUjt5Wdobb3KjfVQOp7TC/VvWAVNcNPPtHEHvnpqKcG4nwbwjCYUlSVAZQ==","signatures":[{"sig":"MEQCIGRjCGHib983qOAW3Jzf+iMoNxBluEcKhIBUmvAnz3a8AiAFusnS0S4EDa8INDEfJjfB5N75xz6MBNAaamAJO27nnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDpXHjzb/eIXcx61bbrEDXgkqdbbapjlrb7U5MLHjdgggIhAJwfZePAVSaBh0Wf9yIXS01v7e5bQoqWNHIGsDnlVfdM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247375},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"2d08eb2a5bfd03035fa68ae263681c4d4d430b16","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.0","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"_nodeVersion":"22.23.3","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.4_1791578820719_0.3508774931241494","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"droidline","version":"0.1.5","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.5","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"f6a079bf7b19a5e0d2805e3dd94e6e25787ce4a8","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.5.tgz","fileCount":16,"integrity":"sha512-kzjqEQmeuylD0XL1Li70PhKjKYme9yy9Saz1YLagI36VX4F3y+uex7CU3Ff4LabNIZtte6iVknvwQLIsLZd0lA==","signatures":[{"sig":"MEUCIDUluD9Hty5ageVosIzX0U4LB+P4EjzXwjb1S037aDlGAiEApSjQeZeHv+khERMoJVsjinZCw6PESzjIxPr9rMljV8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDJFFAJE5PqD2o925kkD7H9dWJ7keQywG2Vzm864U0ufgIgKpd+HlNfDcCh1OXYGoqhRr6+RmS4nq561hNPO6V1WmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247375},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"3b9f824576da2c9437edbb80f23d7acb7b3c09e7","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.0","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"_nodeVersion":"22.23.3","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.5_1791588272362_0.25634435994086413","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"droidline","version":"0.1.6","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.6","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"d691d032c9fed90160bb77f36ba0a80d933c2868","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.6.tgz","fileCount":16,"integrity":"sha512-qLozp8Hpdu6lXCFDnqaVqzBwFs5vuAGfJLKg1sXoGv2JuABnks+iWK/Tu6rIai652ObUVi3ZD9k1FUU8CxAjmw==","signatures":[{"sig":"MEYCIQCOV3p8/5wUhI1TR0VV5qAJYU3N2+05geX+UP5YxcLXawIhAMdeOMmEURJrlubicYKzUE3oR7PheqopVJiMUxkS1gJD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC1BdoDtWQ3QM/+SVZmiVAu9fWvNGHck3kgZAgMPPpYtwIhAKRWHzG8i+vPGtAPgq8IvbDPZKENM6/JXeRn18y6XQf+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247375},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"2c9645232b3cc7137be61fd5d24050a83eb2e7f7","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.0","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"_nodeVersion":"22.23.3","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.6_1791596492983_0.4520798656058822","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"droidline","version":"0.1.7","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.7","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"523423a251cbc810c546740fbe0c629f90d6d583","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.7.tgz","fileCount":16,"integrity":"sha512-7xjhynijInyaNayqBl4IatVsqVGSLwYxp6X7ZtMG9fcmrQc7SSCVwgMoDbrPmmmy94m5DnEGHdTEI7iK+tqFjQ==","signatures":[{"sig":"MEQCID9KzAYcdRf5gs9qKnzb4QDImpU0Z4wlsHioFp78AdoxAiAtzQMWgDAzEYH9u3lMJp1XN3YaWu32Ce4BfS3g0o5DeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBqlWILlE1MmKhTKnhpC3olyOYQT1r9Gvnd5EN3co8GcAiEApaeN66p1xVuJ8WCDeSBVk5lgXy0YH2n6YhOXWeVA3mI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247410},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"f63f11e97f9317c67bd61a5fd2d7ca944ceba9f9","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.0","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"_nodeVersion":"22.23.3","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.7_1791648099714_0.6862157378160969","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"droidline","version":"0.1.8","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.8","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"e71b51ff584848277cfd5ac38cf9c465f14b68a4","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.8.tgz","fileCount":16,"integrity":"sha512-StHVN+VtFWbVUi9ntDEL0nCdlxAOD3HKy1dEqI4vWKpRr47WIg41k7JzeqWjj7GrLmH+ALPpIuLWcDa++jUKjw==","signatures":[{"sig":"MEQCIFoVzfQBWxTz6MiKnpBDFPU3COhZXx4wYvUKxwzeMLBNAiA9LTZPAUEK4VQ2hvb6WqVFKq7UwIWZZj16u0R7R0YJ4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID65HR/RTH5IapW5kcAzBP6L+KslmK7Rxh9hUEM8ip1DAiAB/Fm4kEuuazpmTGmg05c2mHNz4BbHqLL+wEzXzYyv7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247410},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"b75d19060746854afa20bca60bdf8427b2b19bb3","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.0","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"_nodeVersion":"22.23.3","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.8_1791692939321_0.8482678186888268","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"droidline","version":"0.1.9","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.9","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"840e392d5b38456d0ec121ae8c88319e425c1c03","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.9.tgz","fileCount":16,"integrity":"sha512-Lc/c7D5Bu9dbmE5Wv/vvKprRHEk4Mwm4qX3spqV+6qfAH8bqg+mPQqbR+4nBnD0Y6ER2/KGM3IbOLnYicPBEIQ==","signatures":[{"sig":"MEQCIE71H4sKXfeHrssFGdNyu/Qq4ld9OFeinaAi4blzXXJvAiBAv5daYKJo67xKuvezlEqsGYqubZzCxgOIASmSXh5Jig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBomy6iTiqXuYTTivwdJYfF8y+HzKnW+4MmQ1gVtku9bAiB9m1GFZHxHLLuhaGMe/thBRdI9QG/mjs28L+lPrQ76dQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247410},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"3a9325d98ce4210b00ade21649b03cbfd827d668","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.0","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"_nodeVersion":"22.23.3","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.9_1791728916821_0.6084630785567091","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"droidline","version":"0.1.10","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.10","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"704019f55d8f3eb5e4ed7185a7716e8a2a51075c","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.10.tgz","fileCount":16,"integrity":"sha512-S/FFRajcFQNP3SIGv2Sip86QEY7ZRPnpG6gvg7w/Qp9B0mjs+IuCPjSC6dMnrU9985YxBpMMrC6kw3UhXF08OQ==","signatures":[{"sig":"MEUCIGWY5DzWsIulft6372bjFZF2mCA2xPNazbMiqanXtV5XAiEA/4szVRum+FVmrJQLlXF12PntlPskfKMMhPcj0/pnCsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE4hyuCqEed2MZmeS8JxexAb4am3tlUzVUviR4/AlB6HAiB6DOLFJdaoWmoMXr7jrTh9brf6K2pLdiKjHnb51N0DPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247411},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"630a31371e9ed027cf85346c39a73944cc1e8799","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.0","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"_nodeVersion":"22.23.3","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.10_1791729753809_0.7676475721287712","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"droidline","version":"0.1.11","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.11","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"ff6381405bfeb88a27ed2fbc2ca849ef48eea4a4","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.11.tgz","fileCount":16,"integrity":"sha512-okbKjGloLQ2x0Yktq/cddnVTTl9ILjV+G3A/3FPJbdhp95JbzCpjFL/6QjInkdC5HPuyXtD1Ib2v0WEKAdvkUw==","signatures":[{"sig":"MEUCIQCf/wJt1aikh2R6jo/RC7LCDodluHWMwBGqJZe15WCBnwIgPZ7FoZHqSaAc9cU3hK6LsCyCdDo08IXYmQlbt2VAUUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH2G2pfJg0DHyazkAlIlGYvrQK6Zz82KmWzuD/EwqjxPAiBgRcR4UIEZsplUdLh8bQfz8X90/lV/9tRvnyzSlQ8PAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":326926},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"0060f869866ed2bd652e7841fe221aacb62c159a","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.0","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"_nodeVersion":"22.23.3","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.11_1791733712181_0.5703287197733551","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"droidline","version":"0.1.12","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"license":"MIT","_id":"droidline@0.1.12","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"homepage":"https://droidline.dev","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"baae9baf7c32df1aa0a2b997c1898d6116d2dfb8","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.12.tgz","fileCount":16,"integrity":"sha512-PHNEgJEYCHpnuEtIq1npKGIOlmp9DR5pDtE3bLtY+wJGcwi+TY7riocOJXhPe5+0G6H8BPN1Ql+p7VJrL6GpVA==","signatures":[{"sig":"MEUCIQCtwc8v6swTVvUkBbLHNS/wz/lJVLDJNn3bFPSLej2k3QIgfj0mIB80uv6mFTGS1rgq/cdeYOW0j8UrKKqAITUU9YQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICS5vcfT3mi4ZArrM0rvmF+zQ/sT/nUx988nG6tTJNVxAiEA9EvT5fDrypLGKfNM9HQDXbcr88gWb107i1yYl3les3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":341489},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"2f5ef0a0013dcca7a3e5824d5a736f6184a695c8","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.1","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"_nodeVersion":"22.23.4","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"tmp":"tmp/droidline_0.1.12_1793352348828_0.21638674869410757","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"_id":"droidline@0.1.13","bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"dist":{"shasum":"292cdc09756dd54accc160c33c4fc822be60b13b","tarball":"https://registry.npmjs.org/droidline/-/droidline-0.1.13.tgz","fileCount":16,"integrity":"sha512-J3X3evBrsDH/3ZSwFCXOBtRlDDGmTixGPIX0XkLRqzFN+0Ltbu2xHu0IVxeVJNqaGsjF96em6U9+57RSjOpGkg==","signatures":[{"sig":"MEYCIQCMLsBpGDY7RUb+VawMl8mv8MKo/Zsxu1kmjGzLGCf5CQIhAPNy4hdZpDDdxdbN0FIjolCWhf5GvE4tiH3bRPziq5if","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG9bOCPaUZygm9T4xbss5mAVsfkiyN0zpxSHyY+JnSadAiAC9bRjZy/VNURDEp4swFXDP7DuKCdh8BLWalVZSBTUzA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/droidline@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":360628},"main":"./dist/index.js","name":"droidline","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./package.json":"./package.json"},"gitHead":"aad11470c2e2bef46600876073320f925945c469","license":"MIT","scripts":{"test":"tsc -p tsconfig.test.json && node --test build-test/test/client.test.js","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"version":"0.1.13","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7e85c7af-4448-47df-8d28-865c0530387f"}},"homepage":"https://droidline.dev","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"_npmVersion":"12.2.1","description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","directories":{},"maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"_nodeVersion":"22.23.4","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^18.19.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/droidline_0.1.13_1793720022067_0.8527717056343154"}}},"time":{"created":"2026-10-09T18:44:45.887Z","modified":"2026-11-03T15:33:42.969Z","0.0.0-stage":"2026-10-09T18:44:45.887Z","0.1.1":"2026-10-09T18:45:41.252Z","0.1.2":"2026-10-09T18:49:04.456Z","0.1.3":"2026-10-09T19:37:22.612Z","0.1.4":"2026-10-09T20:47:00.796Z","0.1.5":"2026-10-09T23:24:32.474Z","0.1.6":"2026-10-10T01:41:33.080Z","0.1.7":"2026-10-10T16:01:39.792Z","0.1.8":"2026-10-11T04:28:59.399Z","0.1.9":"2026-10-11T14:28:36.905Z","0.1.10":"2026-10-11T14:42:33.895Z","0.1.11":"2026-10-11T15:48:32.261Z","0.1.12":"2026-10-30T09:25:48.959Z","0.1.13":"2026-11-03T15:33:42.153Z"},"bugs":{"url":"https://github.com/KnifeLemon/Droidline/issues"},"license":"MIT","homepage":"https://droidline.dev","keywords":["android","android-automation","mobile-automation","ui-automation","test-automation","testing","appium","uiautomator","adb","accessibility","rpa","device-farm","mcp","typescript","droidline"],"repository":{"url":"git+https://github.com/KnifeLemon/Droidline.git","type":"git","directory":"sdk/node"},"description":"Android automation from Node.js: test your apps on real phones, script the tasks you repeat and run many phones at once. No ADB, no USB cable, no root.","maintainers":[{"name":"knifelemon","email":"knifelemon@gmail.com"}],"readme":"# droidline\n\n[![Droidline: Android automation, one line at a time.](https://raw.githubusercontent.com/KnifeLemon/Droidline/main/docs/media/banner-en.jpg)](https://droidline.dev)\n\nNode.js SDK for [Droidline](https://droidline.dev), Android automation from code. Test your apps on real phones, script the tasks you repeat and run many phones at once, without ADB, a USB cable or root.\n\nThe SDK talks to the Droidline server on your PC (`droidline serve`, port 8780). The server and the phone do the waiting, retries and fallbacks; this package sends commands and turns errors into rejected promises. Node 18+, no dependencies, ES modules with TypeScript types.\n\n## Install\n\n```sh\nnpm install droidline\n```\n\n## Example\n\n```js\nimport { connect } from \"droidline\";\n\nconst d = await connect();\nawait d.launch(\"com.kakao.talk\");\nawait d.dump(\"screen.json\");\nawait d.touchById(\"com.kakao.talk:id/login\");\nawait d.input(\"id\", \"com.kakao.talk:id/email\", \"knife\");\nawait d.sendkey(\"enter\");\nif (await d.exists(\"text\", \"광고 닫기\")) {\n  await d.touch(\"text\", \"광고 닫기\");\n}\nawait d.intent(\"android.settings.WIFI_SETTINGS\");    // open a Settings page by its intent action\nawait d.waitIdle();\n```\n\nMethod names match the protocol (`long_tap`), and each has a camelCase alias (`longTap`). Optional parameters go by position or in an options object as the last argument: `d.wait(\"text\", \"완료\", { timeout: 30 })`.\n\n`connect()` uses the only online phone. With several, pass an ID or name: `connect(\"shelf-01\")`, or use `new Droidline().device(\"shelf-01\")` for each. `DROIDLINE_HOST`, `DROIDLINE_PORT`, `DROIDLINE_TOKEN` and `DROIDLINE_DEVICE` set the defaults.\n\nA failed command rejects with a `DroidlineError` that has `code`, `retryable` and the server's extra fields in `data`.\n\nThe process exits when your script finishes, unless a notification callback is registered. `d.close()` closes the connection early.\n\nDocs: https://droidline.dev/docs\n","readmeFilename":"README.md"}