Commit Graph
255 Commits
Author SHA1 Message Date
Mykola Mokhnach d94a40af9f feat(base-driver): Isolate test endpoints (#22394) 2026-06-17 08:32:40 +02:00
Mykola Mokhnach c704023790 chore: Strip obsolete methods usages in monorepo packages (#22363) 2026-06-10 19:14:44 +02:00
Mykola Mokhnach f0de6b8719 chore: Ditch @colors/colors and supports-color (#22357) 2026-06-07 00:00:45 +02:00
Mykola Mokhnach 1a46d7d61e chore: Apply format (#22350) 2026-06-05 08:08:54 +02:00
Mykola Mokhnach d9a30c1ace chore(base-driver): Enable strict TS mode (#22334) 2026-06-02 06:43:18 +02:00
Mykola Mokhnach cf79b3283a feat(base-driver): Ditch lodash (#22324) 2026-05-30 08:13:10 +02:00
Mykola Mokhnach c9b7eac365 feat(base-driver): Ditch bluebird (#22293) 2026-05-23 08:28:06 +02:00
Mykola Mokhnach 25d922b7d3 feat: make assignIpc internal (#22278) 2026-05-18 07:35:51 +02:00
Mykola Mokhnach 0264775ecb feat: Limit the maximum count of topics per session and make it configurable (#22279) 2026-05-18 07:22:48 +02:00
Mykola Mokhnach f5b193ccf0 chore(base-driver): Simplify async generator logic in IpcSubscription (#22280) 2026-05-18 07:22:32 +02:00
Jonathan Lipps 97c879cdd0 feat: add IPC channels per session for drivers and plugins to communicate (#22211)
* feat: add IPC channels per session for drivers and plugins to communicate (fix #22206)

* lint

* export AppiumIpc

* fix test issues

* import AppiumIpc directly from basedriver

* fakedriver is used directly outside of appium so can't rely on existence of IPC

* make ipc functions async with lock and better types

* fix assignIpc types

* deduplicate session object deletion

* ipcGuard -> withIpc

* address various review comments

* lint

* address copilot and other review comments

* store only last message. change model to use subscription object and async generator

* enforce max message size in bytes

* fix tests and call the message payload 'data' for clarity

* lint

* make assignIpc optional on drivers for backwards compatibility

* add error handling in startClock since it is usually not awaited

* add docs

* remove todo comment

* apply copilot and eglitise suggestions

* add typedoc

* add error handling to onIpcInit

* apply more suggestions

* fix schema unit test

* apply more suggestions

* add links to ipc examples

* make minimum ipc message size 1 instead of 0

* ensure publisher names are friendly to consumers

* fix ipc message time unit

* use already included sizeof for objs

* just pass error obj to log

* be more typescriptey about our ipc guard

* make max obj size part of opts for appiumipc

* let unsubscribe return whether it worked

* improve ipc types and shapes

* apply master package-lock.json

* update schema config

* use javascript naming conventions

* clarify distinction between message and payload (data)

* ensure async iterator loop ends when unsubscribe is called

* ensure the right things happen when you unsubscribe

* make require ipc more ergonomic

* remove unnecessary async locks and de-asyncify methods

* simplify interface and just use subscriber/plugin names

* fix docs

* fix lint

* document isActive

* add note about topic namespace

* use sleep instead of delay

* restrict the ipc payload data type to something that can be cloned

* clarify topic namespacing recommendation

* make sure listeners and promises are cleaned up in async iterator

* clean up ipc internal names

* readonly

* address review comments

* make ipcmessage readonly

* readonly cause why not
2026-05-14 16:56:02 -07:00
Edgars Eglītis 787571d338 feat: add 3 WebDriver extension endpoints (#22237)
* feat: add 2 WebDriver extension endpoints

* docs: add missing reference for removeAuthCredential

* fix protocol hash
2026-05-05 20:30:59 +03:00
Edgars Eglītis ce09eb2e7d chore: fix new linting errors in ESLint 10 (#22230)
* fix no-useless-assignment errors

* fix preserve-caught-error errors

* address comments

* address comments
2026-05-04 20:44:23 +03:00
Sai Asish Y fa1e87535b feat(base-driver): map W3C 'no such shadow root' to NoSuchShadowRootError (#22210)
Appium's base-driver had no dedicated ProtocolError subclass for
the W3C WebDriver 'no such shadow root' error. Every such response
from an underlying browser (the GetShadowRoot command against an
element whose shadow DOM is absent) fell through the
w3cErrorCodeMap lookup to UnknownError, making client-side error
handling (Selenium's NoSuchShadowRootException in particular)
unreachable.

Add NoSuchShadowRootError with error='no such shadow root' /
w3cStatus=404 / code=65, register it in the errors map so
errorFromW3CJsonCode returns it, and extend the existing
errors.spec table-tests to lock the new mapping.

Fixes #22209

Signed-off-by: SAY-5 <say.apm35@gmail.com>
2026-04-29 19:19:50 +02:00
Mykola Mokhnach 4c4e8d8911 feat(base-driver): Show known capability name matches for typos (#22193) 2026-04-18 19:17:00 +02:00
Mykola Mokhnach 943866bcf3 fix(base-driver): lint warnings (#22174) 2026-04-16 18:15:34 +02:00
Mykola Mokhnach dfe8bde687 fix(base-driver): Make proxy timeout mutable again (#22154) 2026-04-11 09:30:37 +02:00
renovate[bot] 87704de080 chore(types): update dependency type-fest to v5.5.0 (#22084) 2026-03-20 19:41:38 +01:00
Mykola Mokhnach 190c30b418 chore(base-driver): Migrate proxy.js to typescript (#22054) 2026-03-11 07:07:54 +01:00
Mykola Mokhnach 2dfae495ff chore(base-driver): Migrate protocol converter to typescript (#22049) 2026-03-08 21:51:32 +01:00
Mykola Mokhnach a1095d2816 chore(base-driver): Migrate status.js to typescript (#22047) 2026-03-08 08:29:55 +01:00
Mykola Mokhnach e7e26e5f57 chore(base-driver): Migrate the rest of protocol modules to typescript (#22046) 2026-03-07 19:16:46 +01:00
Mykola Mokhnach 27c39aed20 chore(base-driver): Migrate routes.js to typescript (#22039) 2026-03-06 08:33:05 +01:00
Mykola Mokhnach 176f19beff chore(base-driver): Migrate capability helpers to typescript (#22037) 2026-03-05 19:12:00 +01:00
Mykola Mokhnach a7006075f8 chore(base-driver): Migrate the rest of express modules to typescript (#22036) 2026-03-04 21:03:22 +01:00
Mykola Mokhnach 3b728c641a chore(base-driver): Migrate websocket and express logging helpers to typescript (#22034) 2026-03-04 18:28:24 +01:00
Mykola Mokhnach 5d260c78a2 chore(base-driver): Migrate middleware.js to typescript (#22032) 2026-03-04 07:21:28 +01:00
Mykola Mokhnach 7deb40a4a4 chore(base-driver): Migrate server.js to typescript (#22030) 2026-03-03 19:01:05 +01:00
Mykola Mokhnach c6d9e079c3 chore(base-driver): Migrate settings and logger to typescript (#22028) 2026-03-01 16:41:25 +01:00
Mykola Mokhnach 69482ee634 chore(base-driver): Migrate helpers.js to typescript (#22027) 2026-02-28 22:35:14 +01:00
Mykola Mokhnach 2f27425ea3 fix: Type imports (#22025) 2026-02-28 19:53:11 +01:00
Kazuaki Matsuo d734b4c200 fix(base-driver): fix session id handling more (#21962)
* fix(appium): fix session id handling more

* modify the comment

* Refine comments in getSessionId and the log

Updated comments for clarity and corrected typos.
2026-02-15 09:12:34 -08:00
Mykola Mokhnach 9f5faf5bed fix: Avoid attaching plugins to a non-existing session (#21964) 2026-02-15 08:42:40 +01:00
Kazuaki Matsuo 77eed7d4c0 chore(base-driver): update type of express-serve-static-core (#21942)
* chore(base-driver): update type of express-serve-static-core

* modify

* clean up a bit

* use debug

* remove error, address possible array case

* chore: remove a line

Check if the driver proxy is active before proceeding.
2026-02-11 22:17:39 -08:00
Kazuaki Matsuo 5e28714442 fix: apply npm run lint:fix (#21867) 2026-01-18 09:04:01 -08:00
Edgars Eglītis a5ba1c5efb chore: fix all lint issues (#21810)
* chore: fix all lint issues

* fix unit tests

* apply copilot suggestion
2025-12-13 15:24:16 +02:00
Karl BaumgartnerandKarl Baumgartner a4b47c02c6 feat(base-driver): add ability to supply custom headers for proxy (#21790)
Signed-off-by: Karl Baumgartner <178656887+karlbaumg@users.noreply.github.com>
Co-authored-by: Karl Baumgartner <178656887+karlbaumg@users.noreply.github.com>
2025-12-07 22:11:53 +01:00
Mykola Mokhnach fc273da0ef fix(base-driver): Use shouldUpgradeCallback for proper upgrades processing (#21706) 2025-11-11 21:42:43 +01:00
Edgars Eglītis e6635b737d fix(base-driver,relaxed-caps-plugin,types): add missing W3C caps (#21642)
* fix(base-driver,relaxed-caps-plugin,types): add missing W3C standard caps

* docs: add links to webdriver caps
2025-10-07 19:35:54 +03:00
renovate[bot]andMykola Mokhnach 3624635393 chore(types): update dependency type-fest to v5 (#21587)
* chore(types): update dependency type-fest to v5

* update types

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mykola Mokhnach <mokhnach@gmail.com>
2025-09-18 08:44:17 +02:00
Noritaka Kobayashi 9f8b55e7ab chore: fix typos (#21585) 2025-09-13 17:14:42 -07:00
Edgars Eglītis 7f906fcf9a feat: add 21 WebDriver extension endpoints (#21577)
* chore: add reference links to extensions

* feat: add permissions and reporting API endpoints

* feat: add device posture API endpoints

* feat: add generic sensor API endpoints

* docs: fix protocol order

* feat: add custom handlers API endpoint

* feat: add SPC API endpoint

* feat: add compute pressure API endpoints

* feat: add FedCM API endpoints

* chore: formatting & test hash fix

* docs: add protocol-enabling capabilities where possible

* docs: adjust wording + fix anchors

* docs: fix FedCM HTTP methods
2025-09-12 08:40:10 +03:00
Edgars Eglītis cbea4f2e97 feat: add W3C printPage endpoint (#21576) 2025-09-11 08:49:07 +03:00
Edgars Eglītis e2d076c5dc chore: reorder routes.js to match docs (#21568) 2025-09-10 20:21:46 +03:00
Edgars Eglītis 3034fe9b7c fix(base-driver): fix /computedrole and /computedlabel routes (#21551)
* fix(base-driver): fix /computedrole and /computedlabel endpoints

* test: fix protocol hash
2025-09-05 19:06:13 +03:00
Puja Jagani c410201baa fix(base-driver,types): For extension commands that use prefix "mobile", ensure logEvents() has the name of executed script (#21416)
* fix(appium): For extension commands that use prefix "mobile", ensure logEvents() has the name of executed script

Related to https://github.com/appium/java-client/issues/2219

* Fix linting

* Address comments

* Update method name

* Address comments

* Address comments

* Address comments

* Add check for accessing method

* Addressing comments
2025-08-06 18:46:26 +09:00
kkb912002 34eb1c25c7 fix: change cache logic (#21380) 2025-06-24 07:54:57 +02:00
Noritaka Kobayashi 414227be06 refactor: use an object spread instead of Object.assign (#21349) 2025-06-09 21:34:48 +02:00
David Prevost aa5d794ff3 feat(base-driver): Use markSensitive to mask password input field value (#21118) 2025-06-04 21:26:50 +02:00
Mykola Mokhnach 2b6b8dd42a chore: Bump recent changes from master (#21311) 2025-06-03 20:11:29 +02:00