Commit Graph
12655 Commits
Author SHA1 Message Date
Mohamed Mostafa 3cdc69b198 fix(appium): close bidi sockets when a session ends unexpectedly (#22854) 2026-10-03 14:42:27 +02:00
Mykola Mokhnach 53b36283f3 chore: use version ranges instead of exact pins (#22846) 2026-10-03 14:41:42 +02:00
Edgars Eglītis 5cc6041ce9 chore: remove placeholder doctor script (#22841) 2026-10-02 12:06:06 +03:00
Edgars Eglītis 8fbdd42eab chore: add automatic label for http-server package (#22842) 2026-10-01 16:02:11 +03:00
Edgars Eglītis ebcac6a7e1 chore: replace ora with yocto-spinner (#22840) 2026-09-30 21:53:21 +03:00
Mohamed Mostafa 66ab396a71 fix(appium): do not crash when a proxied bidi socket closes without a sendable code (#22835) 2026-09-30 08:13:56 +02:00
Mohamed Mostafa 15ecc718c4 fix(support): do not leave a file behind when downloadFile fails (#22836) 2026-09-29 22:16:19 +02:00
Mohamed Mostafa f330716793 fix(base-driver): do not arm the idle timer while a command is still running (#22828) 2026-09-29 19:18:15 +02:00
Mykola Mokhnach e033851cdf refactor(support): vendor klaw as internal fs walker (#22826) 2026-09-28 08:06:55 +02:00
Mykola Mokhnach 6b0938d3ac refactor: drop type-fest dependency across the monorepo (#22825) 2026-09-27 20:18:03 +02:00
Mykola Mokhnach bb51494f67 chore: remove unused jsftp, serve-favicon, and mjpeg dev dependencies (#22827) 2026-09-27 20:14:29 +02:00
github-actions d8370ccf19 chore: publish
- appium@4.0.0-beta.2
 - @appium/base-driver@11.0.0-beta.1
 - @appium/base-plugin@4.0.0-beta.1
 - @appium/docutils@4.0.0-beta.1
 - @appium/driver-test-support@4.0.0-beta.1
 - @appium/execute-driver-plugin@8.0.0-beta.2
 - @appium/fake-driver@7.0.0-beta.2
 - @appium/fake-plugin@5.0.0-beta.2
 - @appium/http-server@1.0.0-beta.1
 - @appium/images-plugin@6.0.0-beta.2
 - @appium/opencv@6.0.0-beta.1
 - @appium/plugin-test-support@4.0.0-beta.2
 - @appium/relaxed-caps-plugin@4.0.0-beta.2
 - @appium/storage-plugin@3.0.0-beta.2
 - @appium/support@8.0.0-beta.1
 - @appium/types@2.0.0-beta.1
 - @appium/universal-xml-plugin@4.0.0-beta.2
@appium/types@2.0.0-beta.1 @appium/universal-xml-plugin@4.0.0-beta.2 @appium/base-driver@11.0.0-beta.1 @appium/base-plugin@4.0.0-beta.1 @appium/docutils@4.0.0-beta.1 @appium/driver-test-support@4.0.0-beta.1 @appium/execute-driver-plugin@8.0.0-beta.2 @appium/fake-driver@7.0.0-beta.2 @appium/fake-plugin@5.0.0-beta.2 @appium/http-server@1.0.0-beta.1 @appium/images-plugin@6.0.0-beta.2 @appium/opencv@6.0.0-beta.1 @appium/plugin-test-support@4.0.0-beta.2 @appium/relaxed-caps-plugin@4.0.0-beta.2 @appium/storage-plugin@3.0.0-beta.2 @appium/support@8.0.0-beta.1 appium@4.0.0-beta.2
2026-09-27 07:38:49 +00:00
Kazuaki Matsuo fb89bb7423 fix(support): preserve exclamation marks with apostrophes (#22816) (#22822)
* fix(support): preserve exclamation marks with apostrophes

* test(support): use async shell execution and document workaround

(cherry picked from commit 359ef4ba89)
2026-09-27 03:07:32 +09:00
Mykola Mokhnach dc0568bc65 fix(appium): release the manifest lock before errAndQuit exits (#22821) 2026-09-26 20:05:48 +02:00
Mohamed Mostafa f313306848 fix(base-driver): keep the default idle timeout when newCommandTimeout is null or blank (#22815) 2026-09-26 13:52:08 +02:00
Mykola Mokhnach b7356ee53e feat(appium): accept package names for installed extension commands (#22747) (#22812) 2026-09-24 23:06:25 +02:00
Mykola Mokhnach ad8e7d56f8 chore: backport recent fixes from master (#22810) 2026-09-24 19:16:20 +02:00
Mykola Mokhnach 7a79dc208c refactor(base-driver): vendor Levenshtein distance and drop http-status-codes dep (#22805) 2026-09-22 22:16:34 +02:00
Mykola Mokhnach 822e4d19d5 refactor(http-server): move network/listener-address helpers out of appium (#22804) 2026-09-22 21:33:05 +02:00
Mykola Mokhnach 2596da02d2 fix(base-driver): carry proxy req via AsyncLocalStorage instead of args (#22799) 2026-09-22 18:28:20 +02:00
Mykola Mokhnach 225a1c6d9d refactor(base-driver)!: extract the HTTP/Express server into @appium/http-server (#22800)
BREAKING CHANGE: @appium/base-driver no longer exports server, normalizeBasePath, configureServer, ServerOpts, ConfigureServerOpts, ConfigureHttpOpts, or StartServerOpts, and no longer depends on express/morgan/body-parser/ method-override/path-to-regexp. Use the new @appium/http-server package instead.

BREAKING CHANGE: appium/driver.js and driver.d.ts no longer re-export server/normalizeBasePath/configureServer/ServerOpts (or their types), and no longer use a blanket export *. Import from @appium/http-server directly if you were relying on this undocumented path.
2026-09-22 07:44:13 +02:00
Mykola Mokhnach 22a00c7a55 feat(base-driver)!: exempt getStatus from the commands queue by default (#22796) 2026-09-21 17:14:52 +02:00
Mykola Mokhnach 09a04f4883 fix(support): narrow fs.glob overload for default withFileTypes/lazy (#22795) 2026-09-20 20:49:25 +02:00
Mykola Mokhnach 4f70ff136f docs: add Appium 3 to 4 migration guide (#22790) 2026-09-20 16:25:16 +02:00
github-actions c2e53e15e5 chore: publish
- appium@4.0.0-beta.1
 - @appium/execute-driver-plugin@8.0.0-beta.1
 - @appium/fake-driver@7.0.0-beta.1
 - @appium/fake-plugin@5.0.0-beta.1
 - @appium/images-plugin@6.0.0-beta.1
 - @appium/plugin-test-support@4.0.0-beta.1
 - @appium/relaxed-caps-plugin@4.0.0-beta.1
 - @appium/storage-plugin@3.0.0-beta.1
 - @appium/universal-xml-plugin@4.0.0-beta.1
@appium/execute-driver-plugin@8.0.0-beta.1 @appium/fake-driver@7.0.0-beta.1 @appium/fake-plugin@5.0.0-beta.1 @appium/images-plugin@6.0.0-beta.1 @appium/plugin-test-support@4.0.0-beta.1 @appium/relaxed-caps-plugin@4.0.0-beta.1 @appium/storage-plugin@3.0.0-beta.1 @appium/universal-xml-plugin@4.0.0-beta.1 appium@4.0.0-beta.1
2026-09-19 21:26:08 +00:00
Mykola Mokhnach b09efc31c6 fix(deps): catch up peerDependencies to published beta.0; drop bootstrap_packages (#22793) 2026-09-19 23:21:31 +02:00
github-actions e303649a42 chore: publish
- appium@4.0.0-beta.0
 - @appium/base-driver@11.0.0-beta.0
 - @appium/base-plugin@4.0.0-beta.0
 - @appium/docutils@4.0.0-beta.0
 - @appium/driver-test-support@4.0.0-beta.0
 - @appium/execute-driver-plugin@8.0.0-beta.0
 - @appium/fake-driver@7.0.0-beta.0
 - @appium/fake-plugin@5.0.0-beta.0
 - @appium/images-plugin@6.0.0-beta.0
 - @appium/logger@3.0.0-beta.0
 - @appium/opencv@6.0.0-beta.0
 - @appium/oxc-config@2.0.0-beta.0
 - @appium/plugin-test-support@4.0.0-beta.0
 - @appium/relaxed-caps-plugin@4.0.0-beta.0
 - @appium/schema@2.0.0-beta.0
 - @appium/semantic-release-config@2.0.0-beta.0
 - @appium/storage-plugin@3.0.0-beta.0
 - @appium/strongbox@3.0.0-beta.0
 - @appium/support@8.0.0-beta.0
 - @appium/tsconfig@2.0.0-beta.0
 - @appium/types@2.0.0-beta.0
 - @appium/universal-xml-plugin@4.0.0-beta.0
@appium/base-driver@11.0.0-beta.0 @appium/base-plugin@4.0.0-beta.0 @appium/docutils@4.0.0-beta.0 @appium/driver-test-support@4.0.0-beta.0 @appium/execute-driver-plugin@8.0.0-beta.0 @appium/fake-driver@7.0.0-beta.0 @appium/fake-plugin@5.0.0-beta.0 @appium/images-plugin@6.0.0-beta.0 @appium/logger@3.0.0-beta.0 @appium/opencv@6.0.0-beta.0 @appium/oxc-config@2.0.0-beta.0 @appium/plugin-test-support@4.0.0-beta.0 @appium/relaxed-caps-plugin@4.0.0-beta.0 @appium/schema@2.0.0-beta.0 @appium/semantic-release-config@2.0.0-beta.0 @appium/storage-plugin@3.0.0-beta.0 @appium/strongbox@3.0.0-beta.0 @appium/support@8.0.0-beta.0 @appium/tsconfig@2.0.0-beta.0 @appium/types@2.0.0-beta.0 @appium/universal-xml-plugin@4.0.0-beta.0 appium@4.0.0-beta.0
2026-09-19 20:35:44 +00:00
Mykola Mokhnach d2483b8bf4 fix(ci): tolerate peer dependency lag in beta releases (#22792) 2026-09-19 22:33:37 +02:00
Mykola Mokhnach b78454ab3e fix(schema): write trailing newline in generated schema JSON (#22791) 2026-09-19 21:50:03 +02:00
Mykola Mokhnach 83b7835733 chore(deps): apply pending major version bumps (#22789) 2026-09-19 21:23:53 +02:00
JustasM 33d866e575 fix(base-driver): clean up aborted session creation (#22733) 2026-09-16 17:55:53 +02:00
Giorgio Boa 0b104f6bf9 feat(appium): add --app-url-rules server arg to restrict remote app URLs (#22753) 2026-09-16 17:51:48 +02:00
Edgars Eglītis 93115d1957 feat(base-driver)!: align timeouts endpoints closer to W3C standard (#22776)
* feat!: align timeouts endpoints closer to W3C standard

* chore: remove unnecessary wrappers
2026-09-14 22:57:53 +03:00
Mykola Mokhnach ac01aa83ad feat(base-driver): add definitions for all WebDriver BiDi commands (#22770) 2026-09-14 08:32:02 +02:00
Mykola Mokhnach 0e91fb756b fix(base-driver)!: don't implicitly allow sessionId/id params in bidi commands (#22771)
BREAKING CHANGE: PayloadParams['validate'] no longer receives a protocol argument; its signature is now (obj: any) => boolean | string | undefined. No implementation in this repo used the second argument.
2026-09-13 22:18:30 +02:00
Mykola Mokhnach 8b62a7971a fix(base-driver): improve bidi command param validation and error messages (#22769) 2026-09-13 18:28:04 +02:00
Mykola Mokhnach a73644fb4f fix(appium): lock the extension manifest while driver/plugin commands run (#22767) 2026-09-13 17:49:31 +02:00
Mykola Mokhnach 33def2cc0b refactor(base-driver)!: split basedriver helpers into a barrel (#22764)
BREAKING CHANGE: Removed the deprecated sessionId argument from generateDriverLogPrefix helper
2026-09-12 13:17:40 +02:00
Edgars Eglītis b7b09f750f chore!: cleanup remaining code for removed JSONWP/MJSONWP methods (#22765)
BREAKING CHANGE: types for the following commands have been removed: `getGeoLocation`, `setGeoLocation`, `getNetworkConnection`, `setNetworkConnection`. The `Location` type has also been removed.
2026-09-12 14:13:24 +03:00
Edgars Eglītis b129cbbcd5 fix: adjust deprecated JSONWP/MJSONWP routes (#22763)
* fix: adjust deprecated JSONWP/MJSONWP routes

* fix: add back geolocation routes for fake-driver

* test: update snapshot
2026-09-12 11:52:52 +03:00
Mykola Mokhnach d6ef7e3f12 fix: Address several TODOs (#22762) 2026-09-12 08:38:47 +02:00
Giorgio Boa b25fc20c51 feat(types): check execute method params against the command signature (#22754) 2026-09-11 18:57:21 +02:00
Mykola Mokhnach 74d1ee6d17 feat(base-driver)!: remove deprecated JSONWP/MJSONWP routes (#22757)
BREAKING CHANGE: Dropped APIs: receive_async_response, element/:elementId GET stub, IME endpoints, orientation, location (geolocation), context/contexts, network_connection, and rotation.
BREAKING CHANGE: Dropped the allowCrossDomainAsyncExecute middleware + its dedicated test suite, which existed solely to CORS-enable the now-removed receive_async_response endpoint.
2026-09-11 14:13:33 +02:00
Mykola Mokhnach bcf1c57999 fix: declare dependencies that were only resolving via hoisting (#22758) 2026-09-11 14:04:00 +02:00
Mykola Mokhnach 5e644a392f feat!: Change the default log level to info (#22756)
BREAKING CHANGE: users relying on the implicit debug default for console/file logs will now see info-level output unless they explicitly pass --log-level debug.
2026-09-10 19:47:36 +02:00
Mykola Mokhnach ff458d7cac refactor(base-driver): split protocol.ts into focused modules (#22750) 2026-09-10 18:39:09 +02:00
Edgars Eglītis 812ca2a9af feat(docutils)!: set 'latest' as default canonical version (#22752)
BREAKING CHANGE: new docs versions are now published with their canonical version set to 'latest'. This value can be changed in mkdocs.yml using the 'mike: canonical_version:' key. The previous behavior can be retained by setting the key value to null.
2026-09-10 18:32:26 +02:00
Mykola Mokhnach 6323df1d73 feat: backport diff from master (#22749) 2026-09-10 18:31:23 +02:00
Mykola Mokhnach 4eb4d7f317 fix(support)!: route non-error CLI console output to stdout (#22742)
BREAKING CHANGE: Any script or tool that consumes Appium CLI output (driver/plugin list/install/update, doctor, etc.) and relies on the previous stream layout will need to be updated. Previously, non-JSON human-readable output (info/success/warning messages) was written to STDERR, with STDOUT reserved almost exclusively for --json output. Now that output goes to STDOUT, and only actual errors go to STDERR.
BREAKING CHANGE: Scripts that discarded STDOUT (1>/dev/null) to suppress "chatter" while relying on STDERR for status text will now see that text on STDOUT instead.
BREAKING CHANGE: Scripts that captured STDERR to detect/log informational or success messages will no longer see them there — only genuine errors will appear on STDERR. --json output and error behavior are unaffected: --json continues to write clean JSON to STDOUT only, and errors continue to go to STDERR.
BREAKING CHANGE: @appium/logger's Log class changes its default output stream from STDERR to STDOUT for all levels except error, and adds an errorStream/stderrLevel pair of properties. Any code that set .stream on a Log instance expecting it to capture all levels (including error) will now need to also set .errorStream to the same target.
2026-09-09 12:55:34 +02:00
Mykola Mokhnach 506bfeeb9a refactor(base-driver)!: replace command mixin with explicit named exports (#22741)
BREAKING CHANGE: @appium/base-driver's default export (BaseDriver) and @appium/base-driver's basedriver/helpers.js default export are removed; use the named exports instead. The appium/driver.js and driver.d.ts re-exports of the default are removed accordingly.
BREAKING CHANGE: BaseDriver.reset() is removed; it was unused, not part of any protocol route or the Driver interface, and had no callers in this monorepo or any driver package that was checked.
BREAKING CHANGE: BaseDriver's constructor is removed in favor of inherited DriverCore construction; opts is no longer a required constructor argument (it now defaults to {}, matching DriverCore).
2026-09-07 20:58:00 +02:00