Commit Graph

12655 Commits

Author SHA1 Message Date
github-actions 3afce5b748 chore: publish
- appium@4.0.0-beta.4
 - @appium/base-driver@11.0.0-beta.3
 - @appium/base-plugin@4.0.0-beta.3
 - @appium/docutils@4.0.0-beta.3
 - @appium/driver-test-support@4.0.0-beta.3
 - @appium/execute-driver-plugin@8.0.0-beta.4
 - @appium/fake-driver@7.0.0-beta.4
 - @appium/fake-plugin@5.0.0-beta.4
 - @appium/http-server@1.0.0-beta.3
 - @appium/images-plugin@6.0.0-beta.4
 - @appium/logger@3.0.0-beta.2
 - @appium/opencv@6.0.0-beta.3
 - @appium/oxc-config@2.0.0-beta.2
 - @appium/plugin-test-support@4.0.0-beta.4
 - @appium/relaxed-caps-plugin@4.0.0-beta.4
 - @appium/schema@2.0.0-beta.2
 - @appium/storage-plugin@3.0.0-beta.4
 - @appium/support@8.0.0-beta.3
 - @appium/types@2.0.0-beta.3
 - @appium/universal-xml-plugin@4.0.0-beta.4
@appium/base-driver@11.0.0-beta.3 @appium/base-plugin@4.0.0-beta.3 @appium/docutils@4.0.0-beta.3 @appium/driver-test-support@4.0.0-beta.3 @appium/execute-driver-plugin@8.0.0-beta.4 @appium/fake-driver@7.0.0-beta.4 @appium/fake-plugin@5.0.0-beta.4 @appium/http-server@1.0.0-beta.3 @appium/images-plugin@6.0.0-beta.4 @appium/logger@3.0.0-beta.2 @appium/opencv@6.0.0-beta.3 @appium/oxc-config@2.0.0-beta.2 @appium/plugin-test-support@4.0.0-beta.4 @appium/relaxed-caps-plugin@4.0.0-beta.4 @appium/schema@2.0.0-beta.2 @appium/storage-plugin@3.0.0-beta.4 @appium/support@8.0.0-beta.3 @appium/types@2.0.0-beta.3 @appium/universal-xml-plugin@4.0.0-beta.4 appium@4.0.0-beta.4
2026-10-09 17:41:46 +00:00
Kazuaki Matsuo c5ddcef894 fix: centralize URL hostname formatting and bracket IPv6 hosts (#22914)
* fix: bracket IPv6 hosts in proxy and helper URLs

* refactor(support): share URL hostname formatting across packages

* test: remove duplicate hostname formatting coverage

* refactor(support): move hostname formatting to net module
2026-10-08 23:52:44 +09:00
Edgars Eglītis 2b3e497ea7 chore: run audit fix (#22925) 2026-10-08 17:36:53 +03:00
Edgars Eglītis 01c14af88f chore: port oxc dependency bumps from master (#22924) 2026-10-08 17:25:17 +03:00
Edgars Eglītis 27d3fe41f7 feat(oxc-config): enable plugins at the root level (#22908)
BREAKING CHANGE: enable 19 additional oxlint rules
2026-10-08 17:15:52 +03:00
Edgars Eglītis 57af81cc3b chore: port dependency bumps from master (#22921)
* chore: port dependency bumps from master

* chore: fix format
2026-10-08 17:14:32 +03:00
Edgars Eglītis 9f8455e197 fix: tune wincore driver integration (#22922)
* fix: tune wincore driver integration

* docs: adjust CLI reference doc
2026-10-08 17:04:24 +03:00
Edgars Eglītis 602f8a5ec9 chore: disable more oxlint rules for tests (#22919) 2026-10-08 17:03:03 +03:00
Mykola Mokhnach 7544a1008d feat(appium)!: replace obsolete windows driver with appium-wincore-driver (#22917)
BREAKING CHANGE: Replace the `windows` known-driver shortcut with `wincore` pointing to appium-wincore-driver instead of the obsolete appium-windows-driver
2026-10-08 11:34:50 +02:00
Michael Lip 3063ec9917 fix(universal-xml-plugin): keep the enabled attribute in transformed source (#22911) 2026-10-08 10:09:49 +02:00
Mohamed Mostafa aed3af9538 fix(support): do not drop directories while fs.mv moves a folder (#22913) 2026-10-08 15:27:12 +09:00
Mohamed Mostafa dbae73b921 fix(execute-driver-plugin): bracket IPv6 server hosts for webdriverio (#22912) 2026-10-08 15:24:06 +09:00
Mykola Mokhnach 8297d31fb1 fix(storage-plugin)!: mount routes under the server base path (#22906)
BREAKING CHANGE: the storage routes (and the stream/events websocket paths) were always mounted at the server root, ignoring --base-path. They are now prefixed with the base path, e.g. /wd/hub/appium/storage/add.
2026-10-07 10:13:24 +02:00
Edgars Eglītis 28c1f9392e chore: fix one more oxlint warning (#22907) 2026-10-06 20:37:46 +03:00
Edgars Eglītis a9a84e7147 chore: apply oxlint plugin fixes (#22901)
* chore: apply oxlint plugin fixes

* chore: make various exports explicit
2026-10-06 20:30:33 +03:00
Mikhail Fleytman e230727090 fix(appium): prevent recursion when logging the first BiDi event of a method (#22897) 2026-10-06 07:40:35 +02:00
Edgars Eglītis c064fc8246 feat(oxc-config): enable all oxlint correctness rules (#22899)
BREAKING CHANGE: enable 45 additional correctness rules
2026-10-05 21:42:27 +03:00
Edgars Eglītis db2df4157c ci: fix CI not running for only mjs/cjs file changes (#22900) 2026-10-05 21:39:47 +03:00
Edgars Eglītis 298b09cdbf chore: apply oxlint correctness fixes (#22896)
* chore: fix some correctness issues

* chore: fix more correctness issues

* chore: more correctness fixes

* chore: remove unnecessary eslint-disable directives

* chore: more correctness fixes

* chore: apply remaining fixes

* chore: minor tuning

* chore: explicitly disable rule

* chore: handle TS error

* chore: tune

* chore: tune more

* chore: address comments

* chore: address some comments

* chore: address remaining comments

* chore: address previously missed copilot commens
2026-10-05 20:52:17 +03:00
Mykola Mokhnach b8ef48d0cc ci: use --tag for npm publish in release recovery
`--dist-tag` is a lerna-only flag. `npm publish` ignored it and parsed
`beta` as a package spec, so recovery mode could not publish missing
packages.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-05 12:14:39 +02:00
github-actions 6815fbebac chore: publish
- appium@4.0.0-beta.3
 - @appium/base-driver@11.0.0-beta.2
 - @appium/base-plugin@4.0.0-beta.2
 - @appium/docutils@4.0.0-beta.2
 - @appium/driver-test-support@4.0.0-beta.2
 - @appium/execute-driver-plugin@8.0.0-beta.3
 - @appium/fake-driver@7.0.0-beta.3
 - @appium/fake-plugin@5.0.0-beta.3
 - @appium/http-server@1.0.0-beta.2
 - @appium/images-plugin@6.0.0-beta.3
 - @appium/logger@3.0.0-beta.1
 - @appium/opencv@6.0.0-beta.2
 - @appium/oxc-config@2.0.0-beta.1
 - @appium/plugin-test-support@4.0.0-beta.3
 - @appium/relaxed-caps-plugin@4.0.0-beta.3
 - @appium/schema@2.0.0-beta.1
 - @appium/semantic-release-config@2.0.0-beta.1
 - @appium/storage-plugin@3.0.0-beta.3
 - @appium/strongbox@3.0.0-beta.1
 - @appium/support@8.0.0-beta.2
 - @appium/tsconfig@2.0.0-beta.1
 - @appium/types@2.0.0-beta.2
 - @appium/universal-xml-plugin@4.0.0-beta.3
@appium/base-driver@11.0.0-beta.2 @appium/base-plugin@4.0.0-beta.2 @appium/docutils@4.0.0-beta.2 @appium/driver-test-support@4.0.0-beta.2 @appium/execute-driver-plugin@8.0.0-beta.3 @appium/fake-driver@7.0.0-beta.3 @appium/fake-plugin@5.0.0-beta.3 @appium/http-server@1.0.0-beta.2 @appium/images-plugin@6.0.0-beta.3 @appium/logger@3.0.0-beta.1 @appium/opencv@6.0.0-beta.2 @appium/oxc-config@2.0.0-beta.1 @appium/plugin-test-support@4.0.0-beta.3 @appium/relaxed-caps-plugin@4.0.0-beta.3 @appium/schema@2.0.0-beta.1 @appium/semantic-release-config@2.0.0-beta.1 @appium/storage-plugin@3.0.0-beta.3 @appium/strongbox@3.0.0-beta.1 @appium/support@8.0.0-beta.2 @appium/tsconfig@2.0.0-beta.1 @appium/types@2.0.0-beta.2 @appium/universal-xml-plugin@4.0.0-beta.3 appium@4.0.0-beta.3
2026-10-05 09:57:28 +00:00
Cassian433 b95aaac60b feat(universal-xml-plugin): add execute methods to toggle translation (#22862)
* feat(universal-xml-plugin): add execute methods to toggle translation

Translation could not be turned off during a session, so there was no
way to get the driver's original page source or to run an XPath query
against the original node names while the plugin was active.

This adds two execute methods:

- `universalXml: setEnabled` turns translation off or on for the
  current session. While it's off, getPageSource and findElement(s)
  are passed on unchanged.
- `universalXml: isEnabled` returns the current state.

Translation stays on by default, so existing sessions behave as
before. The context API is not touched, so drivers' assumptions about
the current context are unaffected.

Refs #21630

* chore(universal-xml-plugin): add jsdoc to public methods and mark unused args with void

---------

Co-authored-by: Cassian433 <262026629+Cassian433@users.noreply.github.com>
2026-10-05 17:00:54 +09:00
Kazuaki Matsuo 83122525db fix(appium): import extensions through escaped file URLs (#22884)
* fix(appium): import extensions through escaped file URLs

* docs(appium): clarify why extension imports still require file URLs

* Enhance comments for schemaPath handling

Add comments explaining file URL requirements for Windows and POSIX paths.
2026-10-05 15:27:08 +09:00
Mohamed Mostafa c159d1925c fix(base-driver): remove incomplete app downloads (#22878) 2026-10-05 15:24:38 +09:00
Kazuaki Matsuo b1ec406fd3 docs: document contributor style conventions for agents (#22879)
* feat(oxc-config): restore class member ordering through JS plugins

* docs: document class method ordering for agents and contributors

* docs: keep ordering rules in the contributor style guide

* docs: simplify the agent style guide reference

* docs: add JSDoc and module ordering conventions
2026-10-04 23:10:40 -07:00
Kazuaki Matsuo c5f4217806 fix(base-driver): decode credentials in app download URLs (#22887) 2026-10-05 15:00:38 +09:00
Kazuaki Matsuo 3188c9fbab fix(appium): resolve default extension export conditions (#22885) 2026-10-05 15:00:01 +09:00
Kazuaki Matsuo b791915ffc fix(base-driver): track and remove BiDi subscriptions by ID (#22876)
* fix(base-driver): track and remove BiDi subscriptions by ID

* refactor(base-driver): organize BiDi subscription helpers

* fix(base-driver): address BiDi subscription review feedback

* test(base-driver): cover BiDi unsubscribe review cases

* docs(appium): document BiDi subscription IDs
2026-10-05 14:58:56 +09:00
Kazuaki Matsuo 95c04611e7 fix(appium): apply initial settings from selected capabilities (#22882)
* fix(appium): apply initial settings from selected capabilities

* test(appium): keep settings regressions separate from timeout tests
2026-10-05 14:55:58 +09:00
Kazuaki Matsuo e37f1c1583 fix(appium): start idle timeout after session initialization (#22881) 2026-10-05 14:29:32 +09:00
Kazuaki Matsuo 879873bad5 fix(appium): match global and module BiDi event subscriptions (#22883) 2026-10-05 01:54:47 +09:00
Kazuaki Matsuo 6c9c930cbe fix(support): preserve symlinks inside moved directories (#22880) 2026-10-05 01:54:06 +09:00
Kazuaki Matsuo 4de1a3e62c fix(support): accept transparently decompressed downloads (#22886) 2026-10-05 01:53:47 +09:00
Kazuaki Matsuo ae8a27e02b fix(base-driver): reject queued commands when their session ends (#22874)
* fix(base-driver): reject queued commands when their session ends

* refactor(base-driver): cancel queued commands with AbortController
2026-10-05 01:12:52 +09:00
Kazuaki Matsuo b9c020c6eb fix(appium): explain manual recovery after manifest lock timeouts (#22875)
* fix(appium): recover abandoned manifest locks with heartbeats

* fix(appium): retry released manifest locks promptly

* fix(appium): explain manual manifest lock recovery without new dependencies

* test(appium): keep manifest lock mocks compatible with Node 22
2026-10-05 01:12:36 +09:00
Kazuaki Matsuo e391bb249f fix: use native ESM entrypoint detection (#22868) 2026-10-04 17:39:35 +02:00
Kazuaki Matsuo f24e7046eb fix(appium): roll back sessions when initialization fails (#22873) 2026-10-05 00:21:14 +09:00
Kazuaki Matsuo b077efd67d fix(base-driver): reject unsupported BiDi user-context scopes (#22877) 2026-10-04 10:18:50 +02:00
Kazuaki Matsuo 3875344e11 fix(appium): bracket IPv6 hosts in BiDi websocket URLs (#22872) 2026-10-04 10:02:13 +02:00
Kazuaki Matsuo 11d9904166 fix(appium): detect project homes with prerelease dependencies (#22871) 2026-10-04 10:01:42 +02:00
Kazuaki Matsuo 1b7d1e0eb7 fix(base-driver): validate reset options before creating session state (#22870) 2026-10-04 10:00:44 +02:00
Kazuaki Matsuo 14c42f791c fix(base-driver): return protocol errors for null rejections (#22869) 2026-10-04 09:59:50 +02:00
Kazuaki Matsuo 63e9aa4f57 fix(base-driver): declare the path-to-regexp runtime dependency (#22865) 2026-10-04 09:59:08 +02:00
Kazuaki Matsuo 9de70be6e2 fix(base-driver): keep the idle timer off while commands execute (#22867) 2026-10-04 09:55:12 +02:00
Kazuaki Matsuo c78cfa405f fix(types): align the logger peer dependency with Appium 4 (#22866) 2026-10-04 09:54:12 +02:00
Kazuaki Matsuo 29a60d6e93 fix(support): preserve directories on failed downloads (#22864) 2026-10-04 09:53:22 +02:00
Mohamed Mostafa 1b852557a3 fix(storage-plugin): reject storage file names that start with a dot (#22863) 2026-10-04 08:57:43 +02:00
Mohamed Mostafa 318329fba7 fix(base-driver): report noReset and fullReset together as session not created (#22861) 2026-10-04 15:53:00 +09:00
Edgars Eglītis 6d1f28ed05 fix(base-driver): reject empty array in capabilities.firstMatch (#22860)
BREAKING CHANGE: when creating a new session, capabilities.firstMatch can no longer be set to an empty array, as per the WebDriver spec
2026-10-03 20:54:41 +03:00
Mohamed Mostafa 00547fe9f6 refactor(support): share websocket close codes from net (#22855) 2026-10-03 14:43:16 +02:00