mirror of
https://github.com/appium/appium.git
synced 2026-10-31 22:30:34 +08:00
Compare commits
90
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9cc598a92c | ||
|
|
91320ddd02 | ||
|
|
23dc3d56ce | ||
|
|
35742f0962 | ||
|
|
52a6f96e08 | ||
|
|
d064dd1e8c | ||
|
|
7bf4d694d4 | ||
|
|
cdc7c09421 | ||
|
|
17c7a7cb29 | ||
|
|
3032b0009c | ||
|
|
6dacb5e70c | ||
|
|
5a8af1302f | ||
|
|
569db839f1 | ||
|
|
32e9191431 | ||
|
|
21b808d94f | ||
|
|
83cc668596 | ||
|
|
b92ab24a25 | ||
|
|
4c7661dd13 | ||
|
|
b14c03f38a | ||
|
|
0e1eb95006 | ||
|
|
edb490f359 | ||
|
|
202da83449 | ||
|
|
d10b4ba2c4 | ||
|
|
6cd2c547de | ||
|
|
95e3fd2612 | ||
|
|
795092a97f | ||
|
|
5936d53d78 | ||
|
|
5f75d8c8ce | ||
|
|
214e922c3e | ||
|
|
30425f9038 | ||
|
|
6313704ee5 | ||
|
|
fb0f8f776c | ||
|
|
faff8dc199 | ||
|
|
501395c948 | ||
|
|
759e06a940 | ||
|
|
966d305e5e | ||
|
|
f3b212ce05 | ||
|
|
6f0101eb63 | ||
|
|
9e4cff1595 | ||
|
|
63ef7eb2fb | ||
|
|
3dcbd6afe7 | ||
|
|
45abac485b | ||
|
|
1fdf117c63 | ||
|
|
d9711b4191 | ||
|
|
9b16f0d9ad | ||
|
|
da84efc42d | ||
|
|
7733b0de3b | ||
|
|
e8e0444bd2 | ||
|
|
c3bea4cf14 | ||
|
|
b85a6b939f | ||
|
|
0e94a33240 | ||
|
|
4efd0c5cad | ||
|
|
fcb42f0809 | ||
|
|
882bd06d1c | ||
|
|
a6d6480074 | ||
|
|
45f5660b94 | ||
|
|
7aabbc3115 | ||
|
|
2ef9cc5983 | ||
|
|
6ce45cf4f8 | ||
|
|
9a21dbacf2 | ||
|
|
9617974481 | ||
|
|
ca54b4f79a | ||
|
|
35f1dbabf6 | ||
|
|
c3dfade284 | ||
|
|
cbc1f500bc | ||
|
|
293c8031d9 | ||
|
|
43690a4c77 | ||
|
|
40873fb655 | ||
|
|
7d9065cf31 | ||
|
|
06218c0c6a | ||
|
|
348b297578 | ||
|
|
314e1b468a | ||
|
|
16a7899154 | ||
|
|
cc24a26c6a | ||
|
|
0f1c12d859 | ||
|
|
f4011f17d4 | ||
|
|
f7e47316c0 | ||
|
|
d2666f9eb5 | ||
|
|
ac73522351 | ||
|
|
5aaca9b11c | ||
|
|
9733c7715e | ||
|
|
5cd9ca5c21 | ||
|
|
7084d7cfdc | ||
|
|
b5460fc131 | ||
|
|
fc3ea5caa2 | ||
|
|
332cc48a09 | ||
|
|
83f24acd39 | ||
|
|
b08210a6f8 | ||
|
|
474f3ce092 | ||
|
|
9ef2533256 |
@@ -20,7 +20,7 @@ _Put an `x` in the boxes that apply. You can also fill these out after creating
|
||||
- [ ] I have signed the CLA
|
||||
- [ ] Lint and unit tests pass locally with my changes
|
||||
- [ ] I have added tests that prove my fix is effective or that my feature works
|
||||
- [ ] I have added necessary documentation (if appropriate)
|
||||
- [ ] I have added the necessary documentation (if appropriate)
|
||||
- [ ] Any dependent changes have been merged and published in downstream modules
|
||||
|
||||
## Further comments
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
. "$(dirname -- "$0")/_/husky.sh"
|
||||
|
||||
npm run lint:commit -- --edit ${1}
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
. "$(dirname -- "$0")/_/husky.sh"
|
||||
|
||||
npm run lint:staged
|
||||
@@ -1,11 +0,0 @@
|
||||
module.exports = {
|
||||
extends: ['@commitlint/config-conventional'],
|
||||
rules: {
|
||||
'body-leading-blank': [0],
|
||||
'body-max-line-length': [0],
|
||||
'footer-max-line-length': [0],
|
||||
'header-max-length': [0],
|
||||
'subject-case': [0],
|
||||
'subject-full-stop': [0],
|
||||
},
|
||||
};
|
||||
Generated
+725
-2910
File diff suppressed because it is too large
Load Diff
+12
-19
@@ -44,13 +44,10 @@
|
||||
"docs:preview": "npm run -w packages/appium build:docs:preview",
|
||||
"doctor": "node ./packages/doctor",
|
||||
"generate-docs": "npm run --workspace=packages/appium generate-docs",
|
||||
"husky-install": "husky install",
|
||||
"lint": "eslint .",
|
||||
"lint:ci": "eslint --quiet .",
|
||||
"lint:commit": "commitlint",
|
||||
"lint:fix": "run-s \"lint -- --fix\"",
|
||||
"lint:staged": "lint-staged",
|
||||
"prepare": "run-p husky-install rebuild",
|
||||
"prepare": "run-p rebuild",
|
||||
"prepublishOnly": "run-s rebuild",
|
||||
"preversion": "run-s rebuild",
|
||||
"version": "run-s sync-pkgs stage-synced-pkgs",
|
||||
@@ -84,25 +81,23 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@colors/colors": "1.6.0",
|
||||
"@commitlint/cli": "18.4.3",
|
||||
"@commitlint/config-conventional": "18.4.3",
|
||||
"@tsconfig/node14": "14.1.0",
|
||||
"@types/chai": "4.3.11",
|
||||
"@types/chai-as-promised": "7.1.8",
|
||||
"@types/diff": "5.0.9",
|
||||
"@types/mocha": "10.0.6",
|
||||
"@types/node": "20.10.6",
|
||||
"@types/node": "20.11.16",
|
||||
"@types/semver": "7.5.6",
|
||||
"@types/sinon": "17.0.2",
|
||||
"@types/sinon": "17.0.3",
|
||||
"@types/sinon-chai": "3.2.12",
|
||||
"@types/source-map-support": "0.5.10",
|
||||
"@types/teen_process": "2.0.4",
|
||||
"@types/ws": "8.5.10",
|
||||
"@types/yargs": "17.0.32",
|
||||
"@typescript-eslint/eslint-plugin": "6.17.0",
|
||||
"@typescript-eslint/parser": "6.17.0",
|
||||
"@typescript-eslint/eslint-plugin": "6.21.0",
|
||||
"@typescript-eslint/parser": "6.21.0",
|
||||
"asyncbox": "3.0.0",
|
||||
"chai": "4.3.10",
|
||||
"chai": "4.4.1",
|
||||
"chai-as-promised": "7.1.1",
|
||||
"chai-webdriverio-async": "2.8.0",
|
||||
"conventional-changelog-conventionalcommits": "7.0.2",
|
||||
@@ -117,18 +112,16 @@
|
||||
"fancy-log": "2.0.0",
|
||||
"finalhandler": "1.2.0",
|
||||
"get-port": "5.1.1",
|
||||
"husky": "8.0.3",
|
||||
"json-schema-to-typescript": "13.1.1",
|
||||
"lerna": "8.0.1",
|
||||
"lint-staged": "15.2.0",
|
||||
"json-schema-to-typescript": "13.1.2",
|
||||
"lerna": "8.1.2",
|
||||
"log-symbols": "4.1.0",
|
||||
"midnight-smoker": "8.0.0",
|
||||
"mjpeg-consumer": "2.0.0",
|
||||
"mjpeg-server": "0.3.1",
|
||||
"mocha": "10.2.0",
|
||||
"mocha-chai-jest-snapshot": "1.1.4",
|
||||
"npm-run-all": "4.1.5",
|
||||
"prettier": "3.1.1",
|
||||
"npm-run-all2": "6.1.2",
|
||||
"prettier": "3.2.5",
|
||||
"rewiremock": "3.14.5",
|
||||
"rimraf": "5.0.5",
|
||||
"serve-static": "1.15.0",
|
||||
@@ -137,10 +130,10 @@
|
||||
"sync-monorepo-packages": "1.0.2",
|
||||
"through2": "4.0.2",
|
||||
"ts-node": "10.9.2",
|
||||
"tsd": "0.30.2",
|
||||
"tsd": "0.30.4",
|
||||
"typescript": "5.2.2",
|
||||
"validate.js": "0.13.1",
|
||||
"webdriverio": "8.27.0",
|
||||
"webdriverio": "8.30.0",
|
||||
"ws": "8.16.0",
|
||||
"yaml-js": "0.3.1"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,44 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [2.5.0](https://github.com/appium/appium/compare/appium@2.4.1...appium@2.5.0) (2024-02-06)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **appium:** Set a proper exit code if any of required doctor checks fails ([#19617](https://github.com/appium/appium/issues/19617)) ([f4011f1](https://github.com/appium/appium/commit/f4011f17d4d03bc854c43462848a4c38427acb85))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **appium:** Tune warning messages about installed extensions ([#19612](https://github.com/appium/appium/issues/19612)) ([5cd9ca5](https://github.com/appium/appium/commit/5cd9ca5c21393c70d259f7525d2c9d35b7eeb2a2))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.27.2 ([35f1dba](https://github.com/appium/appium/commit/35f1dbabf6e852c4ae84ec128879bc7e61321a16))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.28.0 ([e8e0444](https://github.com/appium/appium/commit/e8e0444bd28d94963090065a813a4b10be665caa))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.28.6 ([da84efc](https://github.com/appium/appium/commit/da84efc42dd62b2be07a52dd4379791e2cef6eb2))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.28.8 ([1fdf117](https://github.com/appium/appium/commit/1fdf117c63f6e9871f4de3c0bd93ecbdb13a9235))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.29.0 ([6f0101e](https://github.com/appium/appium/commit/6f0101eb6343eb8b372e00a6b71d2b2ee909404c))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.29.1 ([fb0f8f7](https://github.com/appium/appium/commit/fb0f8f776c6a03174f4569efa60d817a930809cf))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.29.3 ([6dacb5e](https://github.com/appium/appium/commit/6dacb5e70ca3529a080f629f5245c2b676746e2c))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.29.7 ([52a6f96](https://github.com/appium/appium/commit/52a6f96e085ff13acdf8d5013673861b7e0da818))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.30.0 ([91320dd](https://github.com/appium/appium/commit/91320ddd02dca89a8cec258d0ab44a49d344d71c))
|
||||
* **support:** update dependency axios to v1.6.4 ([332cc48](https://github.com/appium/appium/commit/332cc48a09b5532a8d51f85f3a24785e2c754e00))
|
||||
* **support:** update dependency axios to v1.6.5 ([#19616](https://github.com/appium/appium/issues/19616)) ([ac73522](https://github.com/appium/appium/commit/ac73522351b31bd6c11972c61daa8b6b8d18fb91))
|
||||
* **support:** update dependency axios to v1.6.6 ([6313704](https://github.com/appium/appium/commit/6313704ee5a8ee3aee726eb512ef259b6fa1041c))
|
||||
* **support:** update dependency axios to v1.6.7 ([795092a](https://github.com/appium/appium/commit/795092a97f6d7569cccc4b5c166f52fef821514b))
|
||||
* **types:** update dependency type-fest to v4.10 ([#19694](https://github.com/appium/appium/issues/19694)) ([966d305](https://github.com/appium/appium/commit/966d305e5eade9369a3875243bcad951df88545c))
|
||||
* **types:** update dependency type-fest to v4.10.1 ([#19703](https://github.com/appium/appium/issues/19703)) ([501395c](https://github.com/appium/appium/commit/501395c9489320b84ab49ff78af4270f66070d62))
|
||||
|
||||
|
||||
|
||||
## [2.4.1](https://github.com/appium/appium/compare/appium@2.4.0...appium@2.4.1) (2024-01-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **appium:** Properly handle version check for aliases ([474f3ce](https://github.com/appium/appium/commit/474f3ce092c68981655d9deba546a6202acea141))
|
||||
|
||||
|
||||
|
||||
## [2.4.0](https://github.com/appium/appium/compare/appium@2.3.0...appium@2.4.0) (2024-01-03)
|
||||
|
||||
|
||||
|
||||
@@ -657,6 +657,13 @@ A couple notes about this system:
|
||||
1. The `executeMethod` helper will reject with an error if a script name doesn't match one of the
|
||||
script names defined as a command in `executeMethodMap`, or if there are missing parameters.
|
||||
|
||||
|
||||
### Build Appium Doctor checks
|
||||
|
||||
Your users can run `appium driver doctor <driverName>` to run installation and health checks. Visit
|
||||
the [Building Doctor Checks](./build-doctor-checks.md) guide for more information on this
|
||||
capability.
|
||||
|
||||
### Implement handling of Appium settings
|
||||
|
||||
Appium users can send parameters to your driver via CLI args as well as via capabilities. But these
|
||||
|
||||
@@ -412,6 +412,12 @@ Overriding Execute Methods from drivers works as you'd expect: if your plugin de
|
||||
Method with the same name as that of a driver, your command (in this case `plugMeIn`) will be
|
||||
called first. You can choose to run the driver's original behaviour via `next` if you want.
|
||||
|
||||
### Build Appium Doctor checks
|
||||
|
||||
Your users can run `appium plugin doctor <pluginName>` to run installation and health checks. Visit
|
||||
the [Building Doctor Checks](./build-doctor-checks.md) guide for more information on this
|
||||
capability.
|
||||
|
||||
### Update the Appium server object
|
||||
|
||||
You probably don't normally need to update the Appium server object (which is an
|
||||
|
||||
@@ -31,6 +31,7 @@ These clients are not maintained by the Appium team and can be used with other l
|
||||
|[WebdriverIO](https://webdriver.io/docs/appium)|Node.js|
|
||||
|[Nightwatch.js](https://nightwatchjs.org/guide/mobile-app-testing/introduction.html)|Node.js|
|
||||
|[RobotFramework](https://github.com/serhatbolsu/robotframework-appiumlibrary)|DSL|
|
||||
|[multicatch's appium-client](https://github.com/multicatch/appium-client)|Rust|
|
||||
|
||||
In general, any W3C WebDriver spec-compatible client will also integrate well with Appium, though
|
||||
some Appium-specific commands may not be implemented in other clients.
|
||||
|
||||
@@ -28,7 +28,13 @@ appium
|
||||
You should see some output that starts with a line like this:
|
||||
|
||||
```
|
||||
[Appium] Welcome to Appium v2.0.0
|
||||
[Appium] Welcome to Appium v2.4.1
|
||||
```
|
||||
|
||||
In order to update Appium using `npm`:
|
||||
|
||||
```bash
|
||||
npm update -g appium
|
||||
```
|
||||
|
||||
That's it! If you see this, the Appium server is up and running. Go ahead and quit
|
||||
|
||||
@@ -47,6 +47,11 @@ contents:
|
||||
[WebdriverIO documentation](https://webdriver.io/docs/gettingstarted) for a fuller explanation
|
||||
of the various API commands you see and what their purpose is.
|
||||
|
||||
!!! note
|
||||
|
||||
The sample code is available from [GitHub Appium repository](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/js).
|
||||
|
||||
|
||||
Basically, this code is doing the following:
|
||||
|
||||
1. Defining a set of "Capabilities" (parameters) to send to the Appium server so Appium knows what
|
||||
@@ -68,4 +73,3 @@ If all goes well, you'll see the Settings app open up and navigate to the "Batte
|
||||
app closes again.
|
||||
|
||||
Congratulations, you've started your Appium journey! Read on for some [next steps](./next-steps.md) to explore.
|
||||
|
||||
|
||||
@@ -26,11 +26,17 @@ You usually do not need to worry about the prefix.
|
||||
|
||||
It's not within the scope of this guide to give a complete run-down on the Python client
|
||||
library or everything that's happening here, so we'll leave the code itself unexplained in detail for now.
|
||||
|
||||
- You may want to read up particularly on Appium [Capabilities](../guides/caps.md).
|
||||
- [functional test code](https://github.com/appium/python-client/tree/master/test/functional) in Python Client GitHub repository should help to find more working example.
|
||||
- [Documentation](https://appium.github.io/python-client-sphinx/) also helps to find methods
|
||||
defined in the Appium Python Client.
|
||||
|
||||
!!! note
|
||||
|
||||
The sample code is available from [GitHub Appium repository](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/py).
|
||||
|
||||
|
||||
Basically, this code is doing the following:
|
||||
|
||||
1. Defining a set of "Capabilities" (parameters) to send to the Appium server so Appium knows what
|
||||
|
||||
@@ -6,12 +6,32 @@ title: Write a Test (Ruby)
|
||||
---
|
||||
|
||||
|
||||
The [AppiumLib](https://github.com/appium/ruby_lib) and the [AppiumLibCore](https://github.com/appium/ruby_lib_core) (**recommended**) are official Appium client libraries in Ruby, which are available via gem under the [appium_lib](https://rubygems.org/gems/appium_lib) and the [appium_lib_core](https://rubygems.org/gems/appium_lib_core) package names. The appium_lib_core inherits from the Selenium Ruby Binding, and the appium_lib inherits from the appium_lib_core, so installing these libraries include the selenium binding. We recommend `appium_lib_core` if you need a less complex client-side solution. The `appium_lib` has some useful methods the core does not have, but for the cost of greater complexity.
|
||||
The [AppiumLib](https://github.com/appium/ruby_lib) and the [AppiumLibCore](https://github.com/appium/ruby_lib_core) (**recommended**) are official Appium client libraries in Ruby, which are available via gem under the [appium_lib](https://rubygems.org/gems/appium_lib) and the [appium_lib_core](https://rubygems.org/gems/appium_lib_core) package names. The appium_lib_core inherits from the Selenium Ruby Binding, and the appium_lib inherits from the appium_lib_core, so installing these libraries include the selenium binding. We recommend `appium_lib_core` if you need a less complex client-side solution. The `appium_lib` has some useful methods the core does not have, but for the cost of greater complexity and historical methods which may not work in the latest environment.
|
||||
|
||||
As the first step, let's initialize a Gemfile to manage the dependency:
|
||||
|
||||
```bash
|
||||
gem install appium_lib
|
||||
bundle init
|
||||
```
|
||||
|
||||
Then, you could add Appium Ruby Client dependency as below:
|
||||
|
||||
```bash
|
||||
bundle add appium_lib_core
|
||||
# or
|
||||
gem install appium_lib_core
|
||||
# bundle add appium_lib
|
||||
```
|
||||
|
||||
Test code example below uses `test-unit` module, thus please run:
|
||||
|
||||
```bash
|
||||
bundle add test-unit
|
||||
```
|
||||
|
||||
Once these steps has done, your `Gemfile` file should include:
|
||||
|
||||
```ruby title="Gemfile"
|
||||
--8<-- "./sample-code/quickstarts/rb/Gemfile"
|
||||
```
|
||||
|
||||
The `appium_lib_core` is the main part as an Appium client.
|
||||
@@ -21,7 +41,7 @@ The `appium_lib_core` is the main part as an Appium client.
|
||||
This example is by the `appium_lib_core` with `test-unit` gem module.
|
||||
Tes code in `appium_lib` should be similar.
|
||||
|
||||
```python title="test.py"
|
||||
```ruby title="test.rb"
|
||||
--8<-- "./sample-code/quickstarts/rb/test.rb"
|
||||
```
|
||||
|
||||
@@ -34,6 +54,10 @@ Tes code in `appium_lib` should be similar.
|
||||
- [functional test code](https://github.com/appium/ruby_lib_core/tree/master/test/functional) in the appium_lib_core GitHub repository should help to find more working example.
|
||||
- Documentation [appium_lib_core](https://www.rubydoc.info/github/appium/ruby_lib_core) and [appium_lib](https://www.rubydoc.info/github/appium/ruby_lib) also helps to find available methods.
|
||||
|
||||
!!! note
|
||||
|
||||
The sample code is available from [GitHub Appium repository](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/rb).
|
||||
|
||||
|
||||
Basically, this code is doing the following:
|
||||
|
||||
@@ -49,7 +73,7 @@ running in another terminal session, otherwise you'll get an error about not bei
|
||||
to one. Then, you can execute the script:
|
||||
|
||||
```bash
|
||||
bundle install
|
||||
# Please run "bundle install" first if your environment has not run the installation command yet.
|
||||
bundle exec ruby test.rb
|
||||
```
|
||||
|
||||
|
||||
@@ -68,6 +68,7 @@ nav:
|
||||
- developing/build-drivers.md
|
||||
- developing/build-plugins.md
|
||||
- developing/build-docs.md
|
||||
- developing/build-doctor-checks.md
|
||||
- Contributing:
|
||||
- contributing/index.md
|
||||
- contributing/develop.md
|
||||
|
||||
@@ -1,6 +1,36 @@
|
||||
---
|
||||
title: Appium文档
|
||||
hide:
|
||||
- navigation
|
||||
- toc
|
||||
|
||||
title: 欢迎
|
||||
---
|
||||
<style>
|
||||
.md-typeset h1 {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<div style="text-align: center">
|
||||
<img src="assets/images/appium-logo-horiz.png" style="max-width: 400px;" />
|
||||
</div>
|
||||
|
||||
欢迎访问 Appium 文档!Appium 是一个开源项目和相关软件的生态系统。
|
||||
软件,旨在促进许多应用程序平台的用户界面自动化,包括移动平台(iOS、
|
||||
Android、Tizen)、浏览器(Chrome、Firefox、Safari)、桌面(macOS、Windows)、电视(Roku、tvOS、
|
||||
Android TV、三星)等!
|
||||
|
||||
TODO
|
||||
## 探索文档
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- 查看 [__介绍__](./intro/index.md) 确保您理解关键概念
|
||||
- 通过 [__快速入门__](./quickstart/index.md) 来进行设置并运行基本的 Android 测试
|
||||
- 访问 [__生态系统__](./ecosystem/index.md) 页面,查看您可能需要使用的驱动程序、客户端和插件列表
|
||||
- 参考 [__CLI 参考__](./cli/index.md) 用于从命令行使用 Appium
|
||||
- 查看 [__命令说明__](./commands/index.md) Appium 和插件公开的命令列表
|
||||
- 阅读不同的 [__指南__](./guides/migrating-1-to-2.md) 来获取各种说明、技巧和窍门
|
||||
- 查阅各种第三方的 [__资源__](./resources.md) 来探索网上的Appium运用
|
||||
- 为了创建您自己的Appium拓展, 请查看 [__开发者__](./developing/index.md) 文档
|
||||
- 对 Appium 自身的贡献,请查阅 [__贡献__](./contributing/index.md) 页面
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,29 @@
|
||||
---
|
||||
title: 快速开始
|
||||
hide:
|
||||
- toc
|
||||
|
||||
title: 快速入门介绍
|
||||
---
|
||||
|
||||
让我们开始使用 Appium!为了成功使用本快速入门介绍, 我们建议您
|
||||
首先阅读 [介绍](../intro/index.md), 以便您了解
|
||||
运行 Appium 和编写 Appium 脚本所涉及的概念。
|
||||
|
||||
TODO
|
||||
本快速入门课程的基本计划如下:
|
||||
|
||||
1. 安装 Appium
|
||||
1. 安装 Appium 驱动及其依赖项 (我们将使用 [UiAutomator2
|
||||
driver](https://github.com/appium/appium-uiautomator2-driver) 对于这些例子)
|
||||
1. 用你选择的语言安装 Appium 客户端库(本指南包含以下选项
|
||||
JavaScript、Python、Java、Ruby 和 .NET 的选项)。
|
||||
1. 使用示例应用程序编写并运行简单的 Appium 自动化脚本
|
||||
|
||||
### 要求
|
||||
|
||||
开始之前,请确保您的系统满足运行 Appium 服务器的
|
||||
[要求](../quickstart/requirements.md).其他要求
|
||||
将在安装 UiAutomator2 驱动程序时一并讨论。 本指南还假设
|
||||
您已熟练掌握您的操作系统平台上的基本命令行功能,例如可以运行命令行命令, 设置
|
||||
永久的系统变量, 等等...
|
||||
|
||||
现在你已经准备好开始了!请前往 [安装 Appium](./install.md)吧.
|
||||
|
||||
@@ -1,6 +1,41 @@
|
||||
---
|
||||
title: Install Appium
|
||||
hide:
|
||||
- toc
|
||||
|
||||
title: 安装 Appium
|
||||
---
|
||||
|
||||
!!! 信息
|
||||
|
||||
TODO
|
||||
安装前,请务必检查[系统要求](./requirements.md).
|
||||
|
||||
您可以使用 `npm` 在全局范围内安装 Appium:
|
||||
|
||||
```bash
|
||||
npm i -g appium
|
||||
```
|
||||
|
||||
!!! 注意
|
||||
|
||||
目前不支持其他软件包管理器。
|
||||
|
||||
安装完成后,您应该可以从命令行运行 Appium:
|
||||
|
||||
```
|
||||
appium
|
||||
```
|
||||
|
||||
你应该会看到一些输出结果,开头一行是这样的:
|
||||
|
||||
```
|
||||
[Appium] 欢迎来到 Appium v2.4.1
|
||||
```
|
||||
|
||||
为了更新Appiums使用 `npm`:
|
||||
|
||||
```bash
|
||||
npm update -g appium
|
||||
```
|
||||
|
||||
就是这样!如果你看到这个,说明 Appium 服务器已经启动并运行。按 (Ctrl-C)
|
||||
继续退出并跳转到到 [下一步](./uiauto2-driver.md), 在这里我们将安装一个用于自动运行 Android 应用程序的驱动程序.
|
||||
@@ -1,6 +1,23 @@
|
||||
---
|
||||
title: Next Steps
|
||||
hide:
|
||||
- toc
|
||||
|
||||
title: 下一步
|
||||
---
|
||||
|
||||
既然您已经成功配置了您的系统进行Android自动化并运行了一个简单的测试,
|
||||
您可能希望继续探索这份文档。特别是对于初学者,
|
||||
以下是一些很好的指南和参考资料:
|
||||
|
||||
TODO
|
||||
- 在 [生态系统](../ecosystem/index.md) 页面: 浏览可用的驱动程序, 客户端, 插件, 和工具
|
||||
- [管理Appium驱动程序与插件](../guides/managing-exts.md)
|
||||
- [能力](../guides/caps.md)
|
||||
- [设置](../guides/settings.md)
|
||||
|
||||
您还会发现[Appium 监测者](https://github.com/appium/appium-inspector) 编写 Appium 测试不可或缺的工具。
|
||||
是编写 Appium 测试不可或缺的工具,因为它可以对应用程序进行可视化检查,并
|
||||
帮助您发现可用于测试脚本的元素定位器。
|
||||
|
||||
您还可以利用为您提供的众多在线 Appium 课程之一。
|
||||
|
||||
祝你好运,玩得开心!
|
||||
|
||||
@@ -1,6 +1,20 @@
|
||||
---
|
||||
title: 更多 Appium 资源
|
||||
hide:
|
||||
- navigation
|
||||
- toc
|
||||
|
||||
title: 其他资源
|
||||
---
|
||||
|
||||
在这里,您可以找到网络上其他 Appium 资源的链接:
|
||||
|
||||
TODO
|
||||
## 网站
|
||||
|
||||
- [Appium Pro](https://appiumpro.com) - 是Appium其中一名维护者乔纳森-利普斯(Jonathan Lipps)撰写的博客和时事通讯。
|
||||
撰写的博客和时事通讯,其中包含大量实用指南
|
||||
|
||||
## 在线课程
|
||||
|
||||
- [Appium 和 Selenium 基础](https://ui.headspin.io/university/learn/appium-selenium-fundamentals-2020) - Jonathan Lipps 编写的学习 Python、Selenium 和 Appium 的综合视频课程
|
||||
- [使用 Appium 实现移动测试自动化](https://testautomationu.applitools.com/appium-java-tutorial/) - 由 Moataz Nabil 制作的视频课程
|
||||
- [高级Appoium](https://www.linkedin.com/learning/advanced-appium) - 乔纳森-利普斯(Jonathan Lipps)的视频课程
|
||||
|
||||
@@ -67,10 +67,11 @@ export default class DriverCliCommand extends ExtensionCliCommand {
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs doctor checks for the given driver
|
||||
* Runs doctor checks for the given driver.
|
||||
*
|
||||
* @param {DriverDoctorOptions} opts
|
||||
* @returns {Promise<import('@appium/types').IDoctorCheck[]>}
|
||||
* @returns {Promise<number>} The amount of executed doctor checks.
|
||||
* @throws {Error} If any of the mandatory Doctor checks fails.
|
||||
*/
|
||||
async doctor({driver}) {
|
||||
return await super._doctor({
|
||||
|
||||
@@ -16,7 +16,7 @@ import {packageDidChange} from '../extension/package-changed';
|
||||
import {spawn} from 'child_process';
|
||||
import {inspect} from 'node:util';
|
||||
import {pathToFileURL} from 'url';
|
||||
import {Doctor} from '../doctor/doctor';
|
||||
import {Doctor, EXIT_CODE as DOCTOR_EXIT_CODE} from '../doctor/doctor';
|
||||
import {npmPackage} from '../utils';
|
||||
import semver from 'semver';
|
||||
|
||||
@@ -36,13 +36,17 @@ function receiptToManifest(receipt) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches the remote extension version requirement
|
||||
* Fetches the remote extension version requirements
|
||||
*
|
||||
* @param {string} installSpec Extension name (could also contain the version suffix)
|
||||
* @param {string} pkgName Extension name
|
||||
* @param {string} [pkgVer] Extension version (if not provided then the latest is assumed)
|
||||
* @returns {Promise<[string, string|null]>}
|
||||
*/
|
||||
async function getRemoteExtensionVersionReq(installSpec) {
|
||||
const allDeps = await npm.getPackageInfo(installSpec, ['peerDependencies', 'dependencies']);
|
||||
async function getRemoteExtensionVersionReq(pkgName, pkgVer) {
|
||||
const allDeps = await npm.getPackageInfo(
|
||||
`${pkgName}${pkgVer ? `@${pkgVer}` : ``}`,
|
||||
['peerDependencies', 'dependencies']
|
||||
);
|
||||
const requiredVersionPair = _.flatMap(_.values(allDeps).map(_.toPairs))
|
||||
.find(([name]) => name === 'appium');
|
||||
return [npmPackage.version, requiredVersionPair ? requiredVersionPair[1] : null];
|
||||
@@ -246,13 +250,13 @@ class ExtensionCliCommand {
|
||||
* @param {InstallViaNpmArgs} installViaNpmOpts
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async _checkInstallCompatibility({installSpec, pkgName, installType}) {
|
||||
async _checkInstallCompatibility({installSpec, pkgName, pkgVer, installType}) {
|
||||
if (INSTALL_TYPE_NPM !== installType) {
|
||||
return;
|
||||
}
|
||||
|
||||
await spinWith(this.isJsonOutput, `Checking if '${pkgName}' is compatible`, async () => {
|
||||
const [serverVersion, extVersionRequirement] = await getRemoteExtensionVersionReq(installSpec);
|
||||
const [serverVersion, extVersionRequirement] = await getRemoteExtensionVersionReq(pkgName, pkgVer);
|
||||
if (serverVersion && extVersionRequirement && !semver.satisfies(serverVersion, extVersionRequirement)) {
|
||||
throw this._createFatalError(
|
||||
`'${installSpec}' cannot be installed because the server version it requires (${extVersionRequirement}) ` +
|
||||
@@ -738,10 +742,12 @@ class ExtensionCliCommand {
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs doctor checks for the given extension
|
||||
* Runs doctor checks for the given extension.
|
||||
*
|
||||
* @param {DoctorOptions} opts
|
||||
* @returns {Promise<import('@appium/types').IDoctorCheck[]>}
|
||||
* @returns {Promise<number>} The amount of Doctor checks that were
|
||||
* successfully loaded and executed for the given extension
|
||||
* @throws {Error} If any of the mandatory Doctor checks fails.
|
||||
*/
|
||||
async _doctor({installSpec}) {
|
||||
if (!this.config.isInstalled(installSpec)) {
|
||||
@@ -765,7 +771,7 @@ class ExtensionCliCommand {
|
||||
}
|
||||
if (!doctorSpec) {
|
||||
this.log.info(`The ${this.type} "${installSpec}" does not export any doctor checks`);
|
||||
return [];
|
||||
return 0;
|
||||
}
|
||||
if (!_.isPlainObject(doctorSpec) || !_.isArray(doctorSpec.checks)) {
|
||||
throw this._createFatalError(
|
||||
@@ -806,14 +812,17 @@ class ExtensionCliCommand {
|
||||
.filter(isDoctorCheck);
|
||||
if (_.isEmpty(checks)) {
|
||||
this.log.info(`The ${this.type} "${installSpec}" exports no valid doctor checks`);
|
||||
return [];
|
||||
return 0;
|
||||
}
|
||||
this.log.debug(
|
||||
`Running ${util.pluralize('doctor check', checks.length, true)} ` +
|
||||
`for the "${installSpec}" ${this.type}`
|
||||
);
|
||||
await new Doctor(checks).run();
|
||||
return checks;
|
||||
const exitCode = await new Doctor(checks).run();
|
||||
if (exitCode !== DOCTOR_EXIT_CODE.SUCCESS) {
|
||||
throw this._createFatalError('Treatment required');
|
||||
}
|
||||
return checks.length;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -69,7 +69,8 @@ export default class PluginCliCommand extends ExtensionCliCommand {
|
||||
* Runs doctor checks for the given plugin
|
||||
*
|
||||
* @param {PluginDoctorOptions} opts
|
||||
* @returns {Promise<import('@appium/types').IDoctorCheck[]>}
|
||||
* @returns {Promise<number>} The amount of executed doctor checks.
|
||||
* @throws {Error} If any of the mandatory Doctor checks fails.
|
||||
*/
|
||||
async doctor({plugin}) {
|
||||
return await super._doctor({
|
||||
|
||||
@@ -2,6 +2,11 @@ import '@colors/colors';
|
||||
import _ from 'lodash';
|
||||
import { util, doctor, logger } from '@appium/support';
|
||||
|
||||
export const EXIT_CODE = /** @type {const} */ Object.freeze({
|
||||
SUCCESS: 0,
|
||||
HAS_MAJOR_ISSUES: 127,
|
||||
});
|
||||
|
||||
export class Doctor {
|
||||
/**
|
||||
* @param {DoctorCheck[]} [checks=[]]
|
||||
@@ -68,7 +73,12 @@ export class Doctor {
|
||||
/** @type {string[]} */
|
||||
const fixMessages = [];
|
||||
for (const issue of issues) {
|
||||
const message = await issue.check.fix();
|
||||
let message;
|
||||
try {
|
||||
message = await issue.check.fix();
|
||||
} catch (e) {
|
||||
message = e.message;
|
||||
}
|
||||
if (message) {
|
||||
fixMessages.push(message);
|
||||
}
|
||||
@@ -84,7 +94,7 @@ export class Doctor {
|
||||
'The configuration cannot be automatically fixed, please do the following first:',
|
||||
], manualIssues);
|
||||
await handleIssues([
|
||||
'### Optional Manual Fixes ###',
|
||||
'### Optional Manual Fixes ###',
|
||||
'To fix these optional issues, please do the following manually:',
|
||||
], manualIssuesOptional);
|
||||
|
||||
@@ -127,6 +137,9 @@ export class Doctor {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
async runAutoFixes() {
|
||||
const autoFixes = _.filter(this.foundIssues, (f) => f.check.hasAutofix());
|
||||
for (const f of autoFixes) {
|
||||
@@ -136,22 +149,30 @@ export class Doctor {
|
||||
if (_.find(autoFixes, (f) => !f.fixed)) {
|
||||
// a few issues remain.
|
||||
this.log.info('Bye! A few issues remain, fix manually and/or rerun doctor!');
|
||||
} else {
|
||||
// nothing left to fix.
|
||||
this.log.info('Bye! All issues have been fixed!');
|
||||
this.log.info('');
|
||||
return false;
|
||||
}
|
||||
// nothing left to fix.
|
||||
this.log.info('Bye! All issues have been fixed!');
|
||||
this.log.info('');
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {Promise<EXIT_CODE[keyof EXIT_CODE]>}
|
||||
*/
|
||||
async run() {
|
||||
await this.diagnose();
|
||||
if (this.reportSuccess()) {
|
||||
return;
|
||||
return EXIT_CODE.SUCCESS;
|
||||
}
|
||||
if (await this.reportManualIssues()) {
|
||||
return;
|
||||
return EXIT_CODE.HAS_MAJOR_ISSUES;
|
||||
}
|
||||
await this.runAutoFixes();
|
||||
if (!await this.runAutoFixes()) {
|
||||
return EXIT_CODE.HAS_MAJOR_ISSUES;
|
||||
}
|
||||
return EXIT_CODE.SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -311,7 +311,9 @@ export class ExtensionConfig {
|
||||
const invalidFieldsText = invalidFields.map((field) => `"${field}"`).join(', ');
|
||||
|
||||
warnings.push(
|
||||
`${extTypeText} "${extName}" (package \`${pkgName}\`) has ${invalidFieldsEnumerationText} (${invalidFieldsText}) in \`extensions.yaml\`; this may cause upgrades done via the \`appium\` CLI tool to fail. Please reinstall with \`appium ${this.extensionType} uninstall ${extName}\` and \`appium ${this.extensionType} install ${extName}\` to attempt a fix.`
|
||||
`${extTypeText} "${extName}" (package \`${pkgName}\`) has ${invalidFieldsEnumerationText} (${invalidFieldsText}) in \`extensions.yaml\`; ` +
|
||||
`this may cause upgrades done via the \`appium\` CLI tool to fail. Please reinstall with \`appium ${this.extensionType} uninstall ` +
|
||||
`${extName}\` and \`appium ${this.extensionType} install ${extName}\` to attempt a fix.`
|
||||
);
|
||||
}
|
||||
|
||||
@@ -331,16 +333,16 @@ export class ExtensionConfig {
|
||||
);
|
||||
if (extListData?.installed) {
|
||||
const {updateVersion, upToDate} = extListData;
|
||||
if (!upToDate) {
|
||||
if (!upToDate && updateVersion) {
|
||||
warnings.push(
|
||||
createPeerWarning(
|
||||
`its peer dependency on older Appium v${appiumVersion}. Please upgrade \`${pkgName}\` to v${updateVersion} or newer.`
|
||||
`its peer dependency on Appium ${appiumVersion}. Try to upgrade \`${pkgName}\` to v${updateVersion} or newer.`
|
||||
)
|
||||
);
|
||||
} else {
|
||||
warnings.push(
|
||||
createPeerWarning(
|
||||
`its peer dependency on older Appium v${appiumVersion}. Please ask the developer of \`${pkgName}\` to update the peer dependency on Appium to v${APPIUM_VER}.`
|
||||
`its peer dependency on Appium ${appiumVersion}. Please install a compatible version of the ${_.toLower(extTypeText)}.`
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -354,13 +356,15 @@ export class ExtensionConfig {
|
||||
if (!extListData?.upToDate && extListData?.updateVersion) {
|
||||
warnings.push(
|
||||
createPeerWarning(
|
||||
`an invalid or missing peer dependency on Appium. A newer version of \`${pkgName}\` is available; please attempt to upgrade "${extName}" to v${extListData.updateVersion} or newer.`
|
||||
`an invalid or missing peer dependency on Appium. A newer version of \`${pkgName}\` is available; ` +
|
||||
`please attempt to upgrade "${extName}" to v${extListData.updateVersion} or newer.`
|
||||
)
|
||||
);
|
||||
} else {
|
||||
warnings.push(
|
||||
createPeerWarning(
|
||||
`an invalid or missing peer dependency on Appium. Please ask the developer of \`${pkgName}\` to add a peer dependency on \`^appium@${APPIUM_VER}\`.`
|
||||
`an invalid or missing peer dependency on Appium. ` +
|
||||
`Please ask the developer of \`${pkgName}\` to add a peer dependency on \`^appium@${APPIUM_VER}\`.`
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "appium",
|
||||
"version": "2.4.0",
|
||||
"version": "2.5.0",
|
||||
"description": "Automation for Apps.",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -60,12 +60,12 @@
|
||||
"test:unit": "mocha \"./test/unit/**/*.spec.js\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@appium/base-driver": "^9.5.0",
|
||||
"@appium/base-plugin": "^2.2.26",
|
||||
"@appium/docutils": "^1.0.2",
|
||||
"@appium/base-driver": "^9.5.1",
|
||||
"@appium/base-plugin": "^2.2.27",
|
||||
"@appium/docutils": "^1.0.3",
|
||||
"@appium/schema": "~0.5.0",
|
||||
"@appium/support": "^4.2.0",
|
||||
"@appium/types": "^0.16.0",
|
||||
"@appium/support": "^4.2.1",
|
||||
"@appium/types": "^0.16.1",
|
||||
"@sidvind/better-ajv-errors": "2.1.3",
|
||||
"@types/argparse": "2.0.14",
|
||||
"@types/bluebird": "3.5.42",
|
||||
@@ -78,7 +78,7 @@
|
||||
"argparse": "2.0.1",
|
||||
"async-lock": "1.4.1",
|
||||
"asyncbox": "3.0.0",
|
||||
"axios": "1.6.3",
|
||||
"axios": "1.6.7",
|
||||
"bluebird": "3.7.2",
|
||||
"cross-env": "7.0.3",
|
||||
"lilconfig": "3.0.0",
|
||||
@@ -90,7 +90,7 @@
|
||||
"semver": "7.5.4",
|
||||
"source-map-support": "0.5.21",
|
||||
"teen_process": "2.1.1",
|
||||
"type-fest": "4.9.0",
|
||||
"type-fest": "4.10.1",
|
||||
"winston": "3.11.0",
|
||||
"wrap-ansi": "7.0.0",
|
||||
"ws": "8.16.0",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"webdriverio": "8.27.0"
|
||||
"webdriverio": "8.30.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -423,8 +423,8 @@ describe('Driver CLI', function () {
|
||||
|
||||
describe('when the driver defines doctor checks', function () {
|
||||
it('should load and run them', async function () {
|
||||
const checks = await runDoctor([driverName]);
|
||||
checks.length.should.eql(2);
|
||||
const checksLen = await runDoctor([driverName]);
|
||||
checksLen.should.eql(2);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -592,8 +592,8 @@ describe('FakeDriver via HTTP', function () {
|
||||
collectedEvents.should.not.be.empty;
|
||||
|
||||
// finally unsubscribe and wait and assert that some events have been collected
|
||||
collectedEvents = [];
|
||||
await driver.sessionUnsubscribe({events: ['clock.currentTime']});
|
||||
collectedEvents = [];
|
||||
await B.delay(750);
|
||||
collectedEvents.should.be.empty;
|
||||
});
|
||||
|
||||
@@ -239,7 +239,7 @@ describe('ExtensionConfig', function () {
|
||||
await expect(
|
||||
config.getGenericConfigWarnings(extData, extData.pkgName)
|
||||
).to.eventually.eql([
|
||||
`Driver "${extData.pkgName}" (package \`${extData.pkgName}\`) may be incompatible with the current version of Appium (v${APPIUM_VER}) due to its peer dependency on older Appium v${extData.appiumVersion}. Please upgrade \`${extData.pkgName}\` to v${updateVersion} or newer.`,
|
||||
`Driver "${extData.pkgName}" (package \`${extData.pkgName}\`) may be incompatible with the current version of Appium (v${APPIUM_VER}) due to its peer dependency on Appium ${extData.appiumVersion}. Try to upgrade \`${extData.pkgName}\` to v${updateVersion} or newer.`,
|
||||
]);
|
||||
});
|
||||
});
|
||||
@@ -254,7 +254,7 @@ describe('ExtensionConfig', function () {
|
||||
await expect(
|
||||
config.getGenericConfigWarnings(extData, extData.pkgName)
|
||||
).to.eventually.eql([
|
||||
`Driver "${extData.pkgName}" (package \`${extData.pkgName}\`) may be incompatible with the current version of Appium (v${APPIUM_VER}) due to its peer dependency on older Appium v${extData.appiumVersion}. Please ask the developer of \`${extData.pkgName}\` to update the peer dependency on Appium to v${APPIUM_VER}.`,
|
||||
`Driver "${extData.pkgName}" (package \`${extData.pkgName}\`) may be incompatible with the current version of Appium (v${APPIUM_VER}) due to its peer dependency on Appium ${extData.appiumVersion}. Please install a compatible version of the driver.`,
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,6 +3,21 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [9.5.1](https://github.com/appium/appium/compare/@appium/base-driver@9.5.0...@appium/base-driver@9.5.1) (2024-02-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **images-plugin:** update dependency lru-cache to v10 ([#19723](https://github.com/appium/appium/issues/19723)) ([202da83](https://github.com/appium/appium/commit/202da83449073ddb3da8fb2cfbcfce482a5ecd40))
|
||||
* **support:** update dependency axios to v1.6.4 ([332cc48](https://github.com/appium/appium/commit/332cc48a09b5532a8d51f85f3a24785e2c754e00))
|
||||
* **support:** update dependency axios to v1.6.5 ([#19616](https://github.com/appium/appium/issues/19616)) ([ac73522](https://github.com/appium/appium/commit/ac73522351b31bd6c11972c61daa8b6b8d18fb91))
|
||||
* **support:** update dependency axios to v1.6.6 ([6313704](https://github.com/appium/appium/commit/6313704ee5a8ee3aee726eb512ef259b6fa1041c))
|
||||
* **support:** update dependency axios to v1.6.7 ([795092a](https://github.com/appium/appium/commit/795092a97f6d7569cccc4b5c166f52fef821514b))
|
||||
* **types:** update dependency type-fest to v4.10 ([#19694](https://github.com/appium/appium/issues/19694)) ([966d305](https://github.com/appium/appium/commit/966d305e5eade9369a3875243bcad951df88545c))
|
||||
* **types:** update dependency type-fest to v4.10.1 ([#19703](https://github.com/appium/appium/issues/19703)) ([501395c](https://github.com/appium/appium/commit/501395c9489320b84ab49ff78af4270f66070d62))
|
||||
|
||||
|
||||
|
||||
## [9.5.0](https://github.com/appium/appium/compare/@appium/base-driver@9.4.4...@appium/base-driver@9.5.0) (2024-01-03)
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/base-driver",
|
||||
"version": "9.5.0",
|
||||
"version": "9.5.1",
|
||||
"description": "Base driver class for Appium drivers",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -44,8 +44,8 @@
|
||||
"test:types": "tsd"
|
||||
},
|
||||
"dependencies": {
|
||||
"@appium/support": "^4.2.0",
|
||||
"@appium/types": "^0.16.0",
|
||||
"@appium/support": "^4.2.1",
|
||||
"@appium/types": "^0.16.1",
|
||||
"@colors/colors": "1.6.0",
|
||||
"@types/async-lock": "1.4.2",
|
||||
"@types/bluebird": "3.5.42",
|
||||
@@ -55,20 +55,20 @@
|
||||
"@types/serve-favicon": "2.5.7",
|
||||
"async-lock": "1.4.1",
|
||||
"asyncbox": "3.0.0",
|
||||
"axios": "1.6.3",
|
||||
"axios": "1.6.7",
|
||||
"bluebird": "3.7.2",
|
||||
"body-parser": "1.20.2",
|
||||
"es6-error": "4.1.1",
|
||||
"express": "4.18.2",
|
||||
"http-status-codes": "2.3.0",
|
||||
"lodash": "4.17.21",
|
||||
"lru-cache": "10.1.0",
|
||||
"lru-cache": "10.2.0",
|
||||
"method-override": "3.0.0",
|
||||
"morgan": "1.10.0",
|
||||
"path-to-regexp": "6.2.1",
|
||||
"serve-favicon": "2.5.0",
|
||||
"source-map-support": "0.5.21",
|
||||
"type-fest": "4.9.0",
|
||||
"type-fest": "4.10.1",
|
||||
"validate.js": "0.13.1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [2.2.27](https://github.com/appium/appium/compare/@appium/base-plugin@2.2.26...@appium/base-plugin@2.2.27) (2024-02-06)
|
||||
|
||||
**Note:** Version bump only for package @appium/base-plugin
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.2.26](https://github.com/appium/appium/compare/@appium/base-plugin@2.2.25...@appium/base-plugin@2.2.26) (2024-01-03)
|
||||
|
||||
**Note:** Version bump only for package @appium/base-plugin
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/base-plugin",
|
||||
"version": "2.2.26",
|
||||
"version": "2.2.27",
|
||||
"description": "The base plugin used to create Appium 2.0 plugins",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -40,8 +40,8 @@
|
||||
"test:unit": "mocha \"./test/unit/**/*.spec.js\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@appium/base-driver": "^9.5.0",
|
||||
"@appium/support": "^4.2.0"
|
||||
"@appium/base-driver": "^9.5.1",
|
||||
"@appium/support": "^4.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.17.0 || ^16.13.0 || >=18.0.0",
|
||||
|
||||
@@ -3,6 +3,19 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [2.0.32](https://github.com/appium/appium/compare/@appium/doctor@2.0.31...@appium/doctor@2.0.32) (2024-02-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **doctor:** update dependency appium-adb to v11.1.0 ([cbc1f50](https://github.com/appium/appium/commit/cbc1f500bc0721edcdf7f47af949ae113c038a46))
|
||||
* **doctor:** update dependency appium-adb to v12 ([#19648](https://github.com/appium/appium/issues/19648)) ([9617974](https://github.com/appium/appium/commit/961797448116b6be7b500a68b4202b969805825c))
|
||||
* **doctor:** update dependency appium-adb to v12.0.1 ([b85a6b9](https://github.com/appium/appium/commit/b85a6b939f688703522ebb6ddab19aa807c64dbe))
|
||||
* **doctor:** update dependency appium-adb to v12.0.2 ([5936d53](https://github.com/appium/appium/commit/5936d53d7856e6a2aa31236eaa0ea9afee737c95))
|
||||
* **doctor:** update dependency appium-adb to v12.0.3 ([#19722](https://github.com/appium/appium/issues/19722)) ([6cd2c54](https://github.com/appium/appium/commit/6cd2c547def390eb5d739d6245fe0bab1f99931a))
|
||||
|
||||
|
||||
|
||||
## [2.0.31](https://github.com/appium/appium/compare/@appium/doctor@2.0.30...@appium/doctor@2.0.31) (2024-01-03)
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
[](https://npmjs.org/package/@appium/doctor)
|
||||
[](https://npmjs.org/package/@appium/doctor)
|
||||
|
||||
> [!WARNING]
|
||||
> This package has been deprecated since the Appium server v 2.4.0 and will be removed in the future.
|
||||
> Use doctor checks (if any exist) integrated into your installed driver or plugin by
|
||||
> running `appium driver doctor <driver_name>` or `appium plugin doctor <plugin_name>`.
|
||||
|
||||
### Install
|
||||
|
||||
```
|
||||
|
||||
@@ -198,6 +198,9 @@ class Doctor {
|
||||
|
||||
async run() {
|
||||
log.info(`Appium Doctor v.${version}`);
|
||||
log.warn(`This package is deprecated since the Appium server version 2.4.0 and will be removed in the future.`);
|
||||
log.warn(`Use doctor checks (if any exist) integrated into your installed driver or plugin by ` +
|
||||
`running \`appium driver doctor <driver_name>\` or \`appium plugin doctor <plugin_name>\`.`);
|
||||
await this.diagnose();
|
||||
if (await this.reportSuccess(this.toFix.length, this.toFixOptionals.length)) {
|
||||
return;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/doctor",
|
||||
"version": "2.0.31",
|
||||
"version": "2.0.32",
|
||||
"description": "Test environment for fitness to run Appium",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -44,11 +44,11 @@
|
||||
"test:unit": "mocha \"./test/unit/**/*.spec.js\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@appium/support": "^4.2.0",
|
||||
"@appium/support": "^4.2.1",
|
||||
"@colors/colors": "1.6.0",
|
||||
"@types/bluebird": "3.5.42",
|
||||
"@types/teen_process": "2.0.4",
|
||||
"appium-adb": "11.0.9",
|
||||
"appium-adb": "12.0.3",
|
||||
"bluebird": "3.7.2",
|
||||
"inquirer": "9.2.12",
|
||||
"lodash": "4.17.21",
|
||||
|
||||
@@ -3,6 +3,17 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.0.3](https://github.com/appium/appium/compare/@appium/docutils@1.0.2...@appium/docutils@1.0.3) (2024-02-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **docutils:** change default alias type to `symlink` ([#19681](https://github.com/appium/appium/issues/19681)) ([d9711b4](https://github.com/appium/appium/commit/d9711b4191d19ed0b89944b2732a1a4f4c4d9c0b))
|
||||
* **types:** update dependency type-fest to v4.10 ([#19694](https://github.com/appium/appium/issues/19694)) ([966d305](https://github.com/appium/appium/commit/966d305e5eade9369a3875243bcad951df88545c))
|
||||
* **types:** update dependency type-fest to v4.10.1 ([#19703](https://github.com/appium/appium/issues/19703)) ([501395c](https://github.com/appium/appium/commit/501395c9489320b84ab49ff78af4270f66070d62))
|
||||
|
||||
|
||||
|
||||
## [1.0.2](https://github.com/appium/appium/compare/@appium/docutils@1.0.1...@appium/docutils@1.0.2) (2024-01-03)
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,8 @@ This package does not need to be run directly. Instead, execute this command in
|
||||
npm run dev:docs:en
|
||||
```
|
||||
|
||||
Note that this will only build the English docs. See the `scripts` field of the `package.json` for
|
||||
> [!NOTE]
|
||||
> This will only build the English docs. See the `scripts` field of the `package.json` for
|
||||
other languages.
|
||||
|
||||
## Setup for Appium Drivers and Plugins
|
||||
|
||||
@@ -139,12 +139,6 @@ export async function deploy({
|
||||
const mikeArgs = [
|
||||
...argify(_.pickBy(mikeOpts, (value) => _.isNumber(value) || Boolean(value))),
|
||||
];
|
||||
if (alias) {
|
||||
mikeArgs.push('--update-aliases', version, alias);
|
||||
mikeArgs.push('--alias-type', aliasType);
|
||||
} else {
|
||||
mikeArgs.push(version);
|
||||
}
|
||||
stop(); // discard
|
||||
// unsure about how SIGHUP is handled here
|
||||
await doServe(mikePath, mikeArgs, serveOpts);
|
||||
@@ -159,8 +153,8 @@ export async function deploy({
|
||||
),
|
||||
];
|
||||
if (alias) {
|
||||
mikeArgs.push('--update-aliases', version, alias);
|
||||
mikeArgs.push('--alias-type', aliasType);
|
||||
mikeArgs.push('--update-aliases', '--alias-type', aliasType);
|
||||
mikeArgs.push(version, alias);
|
||||
} else {
|
||||
mikeArgs.push(version);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
*/
|
||||
|
||||
import loadTs from '@sliphua/lilconfig-ts-loader';
|
||||
import {LogLevel} from 'consola';
|
||||
import {lilconfig, Loader} from 'lilconfig';
|
||||
import _ from 'lodash';
|
||||
import path from 'node:path';
|
||||
@@ -46,9 +45,9 @@ export async function findConfig(argv: string[] = hideBin(process.argv)) {
|
||||
|
||||
// if --verbose is used, set the log level to debug.
|
||||
// otherwise use --log-level or the default.
|
||||
let logLevel: LogLevel | keyof typeof LogLevelMap;
|
||||
let logLevel: keyof typeof LogLevelMap;
|
||||
if (preArgs.verbose) {
|
||||
logLevel = LogLevel.Debug;
|
||||
logLevel = 'debug';
|
||||
} else {
|
||||
// if the loglevel is valid, use it, otherwise use the default
|
||||
logLevel = isLogLevelString(preArgs.logLevel) ? preArgs.logLevel : DEFAULT_LOG_LEVEL;
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
* Constants used across various modules in this package
|
||||
* @module
|
||||
*/
|
||||
import {LogLevel} from 'consola';
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires -- Consola 3 import call is ESM
|
||||
const {LogLevels} = require('consola');
|
||||
import {readFileSync} from 'node:fs';
|
||||
import {fs} from '@appium/support';
|
||||
import path from 'node:path';
|
||||
@@ -108,7 +109,7 @@ export const REQUIREMENTS_TXT_PATH = path.join(PKG_ROOT_DIR, NAME_REQUIREMENTS_T
|
||||
* The default alias creation strategy to pass to `mike` when deploying
|
||||
* (`symlink`, `redirect` or `copy`)
|
||||
*/
|
||||
export const DEFAULT_DEPLOY_ALIAS_TYPE = 'redirect';
|
||||
export const DEFAULT_DEPLOY_ALIAS_TYPE = 'symlink';
|
||||
|
||||
/**
|
||||
* The default branch to deploy to
|
||||
@@ -134,11 +135,11 @@ export const DEFAULT_SERVE_HOST = 'localhost';
|
||||
* Mapping of `@appium/docutils`' log levels to `consola` log levels
|
||||
*/
|
||||
export const LogLevelMap = {
|
||||
silent: LogLevel.Silent,
|
||||
error: LogLevel.Error,
|
||||
warn: LogLevel.Warn,
|
||||
info: LogLevel.Info,
|
||||
debug: LogLevel.Debug,
|
||||
silent: LogLevels.silent,
|
||||
error: LogLevels.error,
|
||||
warn: LogLevels.warn,
|
||||
info: LogLevels.info,
|
||||
debug: LogLevels.debug,
|
||||
} as const;
|
||||
|
||||
/**
|
||||
|
||||
+15
-128
@@ -6,134 +6,17 @@
|
||||
* @module
|
||||
*/
|
||||
|
||||
import chalk, {type BackgroundColor, type ForegroundColor} from 'chalk';
|
||||
import consola, {
|
||||
type Consola,
|
||||
type ConsolaReporterLogObject,
|
||||
FancyReporter,
|
||||
type FancyReporterOptions,
|
||||
type LogLevel,
|
||||
type logType as LogType,
|
||||
} from 'consola';
|
||||
import figures from 'figures';
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires -- Consola 3 import call is ESM
|
||||
const {ConsolaInstance, createConsola, LogLevel} = require('consola');
|
||||
import _ from 'lodash';
|
||||
import logSymbols from 'log-symbols';
|
||||
import {DEFAULT_LOG_LEVEL, LogLevelMap} from './constants';
|
||||
|
||||
/**
|
||||
* This is a reporter for `consola` which uses some extra/custom icons and colors.
|
||||
*
|
||||
* @privateRemarks
|
||||
* I did not like that the default `FancyReport` logs errors in _green_ without any sort of icon.
|
||||
* Both `log-symbols` and `consola` consume `chalk`, so we do too. `consola` also depends on `figures`.
|
||||
*/
|
||||
class DocutilsReporter extends FancyReporter {
|
||||
/**
|
||||
* Mapping of log types (the name of the logging method called) to chalk fg colors
|
||||
*/
|
||||
static readonly TYPE_COLOR_MAP = {
|
||||
info: 'cyan',
|
||||
success: 'green',
|
||||
error: 'red',
|
||||
warn: 'yellow',
|
||||
} satisfies {[k in LogType]?: typeof ForegroundColor};
|
||||
|
||||
/**
|
||||
* Mapping of log levels to chalk fg colors
|
||||
*/
|
||||
static readonly LEVEL_COLORS = {
|
||||
0: 'red',
|
||||
1: 'yellow',
|
||||
2: 'white',
|
||||
3: 'green',
|
||||
} satisfies {[k in LogLevel]?: typeof ForegroundColor};
|
||||
|
||||
/**
|
||||
* Mapping of log types to icons/symbols
|
||||
*/
|
||||
static readonly TYPE_ICONS = {
|
||||
info: logSymbols.info,
|
||||
success: logSymbols.success,
|
||||
error: logSymbols.error,
|
||||
warn: logSymbols.warning,
|
||||
debug: figures('›'),
|
||||
trace: figures('›'),
|
||||
} satisfies {[k in LogType]?: string};
|
||||
|
||||
/**
|
||||
* Default color to use if we can't find a color for the log type or level
|
||||
*/
|
||||
static readonly DEFAULT_COLOR = 'grey';
|
||||
|
||||
/**
|
||||
* Type guard to check if a log type has a color
|
||||
* @param type A log type
|
||||
*/
|
||||
static hasTypeColor(type: LogType): type is keyof typeof DocutilsReporter.TYPE_COLOR_MAP {
|
||||
return type in DocutilsReporter.TYPE_COLOR_MAP;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type guard to check if a log level has a color
|
||||
* @param level A log level
|
||||
*/
|
||||
static hasLevelColor(level: LogLevel): level is keyof typeof DocutilsReporter.LEVEL_COLORS {
|
||||
return level in DocutilsReporter.LEVEL_COLORS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type guard to check if a log type has an icon
|
||||
* @param type A log type
|
||||
*/
|
||||
static hasTypeIcon(type: LogType): type is keyof typeof DocutilsReporter.TYPE_ICONS {
|
||||
return type in DocutilsReporter.TYPE_ICONS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prefixes the logging output with colors and symbols, depending on contents of `logObj`.
|
||||
* @param logObj Consola's log object
|
||||
* @param isBadge {@linkcode FancyReporter} uses this; I think it depends on the terminal width
|
||||
* @returns
|
||||
*/
|
||||
protected override formatType(logObj: ConsolaReporterLogObject, isBadge?: boolean): string {
|
||||
const {
|
||||
TYPE_COLOR_MAP,
|
||||
LEVEL_COLORS,
|
||||
TYPE_ICONS,
|
||||
hasTypeColor,
|
||||
hasLevelColor,
|
||||
hasTypeIcon,
|
||||
DEFAULT_COLOR,
|
||||
} = DocutilsReporter;
|
||||
|
||||
let typeColor: typeof ForegroundColor;
|
||||
if (hasTypeColor(logObj.type)) {
|
||||
typeColor = TYPE_COLOR_MAP[logObj.type];
|
||||
} else if (hasLevelColor(logObj.level)) {
|
||||
typeColor = LEVEL_COLORS[logObj.level];
|
||||
} else {
|
||||
typeColor = <typeof ForegroundColor>(
|
||||
((this.options as FancyReporterOptions).secondaryColor ?? DEFAULT_COLOR)
|
||||
);
|
||||
}
|
||||
|
||||
if (isBadge) {
|
||||
return chalk[('bg' + _.capitalize(typeColor)) as typeof BackgroundColor].black(
|
||||
` ${_.toUpper(logObj.type)}`
|
||||
);
|
||||
}
|
||||
|
||||
const type = hasTypeIcon(logObj.type) ? TYPE_ICONS[logObj.type] : logObj.type;
|
||||
return type ? chalk[typeColor](type) : '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The global log level
|
||||
*
|
||||
* "Global" inasmuch as any logger created from the root logger will use this level.
|
||||
*/
|
||||
let globalLevel: LogLevel = LogLevelMap[DEFAULT_LOG_LEVEL];
|
||||
let globalLevel: typeof LogLevel = LogLevelMap[DEFAULT_LOG_LEVEL];
|
||||
|
||||
/**
|
||||
* Type guard to see if a string is a recognized log level
|
||||
@@ -144,20 +27,24 @@ export function isLogLevelString(level: any): level is keyof typeof LogLevelMap
|
||||
}
|
||||
|
||||
/**
|
||||
* The logger from which all loggers are created. This one uses a unique tag and our custom reporter.
|
||||
* The logger from which all loggers are created. This one uses a unique tag.
|
||||
*/
|
||||
const rootLogger = consola.create({
|
||||
const rootLogger = createConsola({
|
||||
defaults: {tag: 'docutils'},
|
||||
reporters: [new DocutilsReporter()],
|
||||
fancy: true,
|
||||
level: globalLevel,
|
||||
formatOptions: {
|
||||
colors: true,
|
||||
date: false,
|
||||
},
|
||||
});
|
||||
// this prevents logging before `initLogger` is called
|
||||
rootLogger.pause();
|
||||
rootLogger.pauseLogs();
|
||||
|
||||
/**
|
||||
* A map of tags to loggers
|
||||
*/
|
||||
const loggers: Map<string, WeakRef<Consola>> = new Map();
|
||||
const loggers: Map<string, WeakRef<typeof ConsolaInstance>> = new Map();
|
||||
|
||||
export function getLogger(tag: string, parent = rootLogger) {
|
||||
if (loggers.has(tag)) {
|
||||
@@ -179,15 +66,15 @@ export function getLogger(tag: string, parent = rootLogger) {
|
||||
*
|
||||
* @remarks Child loggers seem to inherit the "paused" state of the parent, so when this is called, we must resume all of them.
|
||||
*/
|
||||
export const initLogger = _.once((level: keyof typeof LogLevelMap | LogLevel) => {
|
||||
export const initLogger = _.once((level: keyof typeof LogLevelMap | typeof LogLevel) => {
|
||||
globalLevel = isLogLevelString(level) ? LogLevelMap[level] : level;
|
||||
rootLogger.level = globalLevel;
|
||||
rootLogger.resume();
|
||||
rootLogger.resumeLogs();
|
||||
for (const ref of loggers.values()) {
|
||||
const logger = ref.deref();
|
||||
if (logger) {
|
||||
logger.level = globalLevel;
|
||||
logger.resume();
|
||||
logger.resumeLogs();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/docutils",
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.3",
|
||||
"description": "Documentation generation utilities for Appium and related projects",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -48,24 +48,22 @@
|
||||
"start": "node ./build/lib/cli/index.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@appium/support": "^4.2.0",
|
||||
"@appium/support": "^4.2.1",
|
||||
"@appium/tsconfig": "^0.x",
|
||||
"@sliphua/lilconfig-ts-loader": "3.2.2",
|
||||
"@types/which": "3.0.3",
|
||||
"chalk": "4.1.2",
|
||||
"consola": "2.15.3",
|
||||
"consola": "3.2.3",
|
||||
"diff": "5.1.0",
|
||||
"figures": "3.2.0",
|
||||
"json5": "2.2.3",
|
||||
"lilconfig": "3.0.0",
|
||||
"lodash": "4.17.21",
|
||||
"log-symbols": "4.1.0",
|
||||
"pkg-dir": "5.0.0",
|
||||
"read-pkg": "5.2.0",
|
||||
"semver": "7.5.4",
|
||||
"source-map-support": "0.5.21",
|
||||
"teen_process": "2.1.1",
|
||||
"type-fest": "4.9.0",
|
||||
"type-fest": "4.10.1",
|
||||
"typescript": "5.2.2",
|
||||
"yaml": "2.3.4",
|
||||
"yargs": "17.7.2",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
mkdocs==1.5.3
|
||||
mkdocs-git-revision-date-localized-plugin==1.2.2
|
||||
mkdocs-material==9.5.3
|
||||
mkdocs-git-revision-date-localized-plugin==1.2.4
|
||||
mkdocs-material==9.5.7
|
||||
mkdocs-redirects==1.2.1
|
||||
mike==2.0.0
|
||||
|
||||
@@ -3,6 +3,22 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [0.4.21](https://github.com/appium/appium/compare/@appium/driver-test-support@0.4.20...@appium/driver-test-support@0.4.21) (2024-02-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **driver-test-support:** update dependency chai to v4.4.0 ([f7e4731](https://github.com/appium/appium/commit/f7e47316c0133a5bc6b658cfb97c1caa5d4272f7))
|
||||
* **driver-test-support:** update dependency chai to v4.4.1 ([ca54b4f](https://github.com/appium/appium/commit/ca54b4f79ac27f4c6bceaae5d97175afbdbea460))
|
||||
* **support:** update dependency axios to v1.6.4 ([332cc48](https://github.com/appium/appium/commit/332cc48a09b5532a8d51f85f3a24785e2c754e00))
|
||||
* **support:** update dependency axios to v1.6.5 ([#19616](https://github.com/appium/appium/issues/19616)) ([ac73522](https://github.com/appium/appium/commit/ac73522351b31bd6c11972c61daa8b6b8d18fb91))
|
||||
* **support:** update dependency axios to v1.6.6 ([6313704](https://github.com/appium/appium/commit/6313704ee5a8ee3aee726eb512ef259b6fa1041c))
|
||||
* **support:** update dependency axios to v1.6.7 ([795092a](https://github.com/appium/appium/commit/795092a97f6d7569cccc4b5c166f52fef821514b))
|
||||
* **types:** update dependency type-fest to v4.10 ([#19694](https://github.com/appium/appium/issues/19694)) ([966d305](https://github.com/appium/appium/commit/966d305e5eade9369a3875243bcad951df88545c))
|
||||
* **types:** update dependency type-fest to v4.10.1 ([#19703](https://github.com/appium/appium/issues/19703)) ([501395c](https://github.com/appium/appium/commit/501395c9489320b84ab49ff78af4270f66070d62))
|
||||
|
||||
|
||||
|
||||
## [0.4.20](https://github.com/appium/appium/compare/@appium/driver-test-support@0.4.19...@appium/driver-test-support@0.4.20) (2024-01-03)
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/driver-test-support",
|
||||
"version": "0.4.20",
|
||||
"version": "0.4.21",
|
||||
"description": "Test utilities for Appium drivers",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -41,18 +41,18 @@
|
||||
},
|
||||
"types": "./build/lib/index.d.ts",
|
||||
"dependencies": {
|
||||
"@appium/types": "^0.16.0",
|
||||
"@appium/types": "^0.16.1",
|
||||
"@types/lodash": "4.14.202",
|
||||
"@types/stoppable": "1.1.3",
|
||||
"axios": "1.6.3",
|
||||
"axios": "1.6.7",
|
||||
"bluebird": "3.7.2",
|
||||
"chai": "4.3.10",
|
||||
"chai": "4.4.1",
|
||||
"get-port": "5.1.1",
|
||||
"lodash": "4.17.21",
|
||||
"sinon": "17.0.1",
|
||||
"source-map-support": "0.5.21",
|
||||
"stoppable": "1.1.0",
|
||||
"type-fest": "4.9.0"
|
||||
"type-fest": "4.10.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"appium": "^2.0.0-beta.43",
|
||||
|
||||
@@ -3,6 +3,23 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.0.24](https://github.com/appium/appium/compare/@appium/execute-driver-plugin@3.0.23...@appium/execute-driver-plugin@3.0.24) (2024-02-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.27.2 ([35f1dba](https://github.com/appium/appium/commit/35f1dbabf6e852c4ae84ec128879bc7e61321a16))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.28.0 ([e8e0444](https://github.com/appium/appium/commit/e8e0444bd28d94963090065a813a4b10be665caa))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.28.6 ([da84efc](https://github.com/appium/appium/commit/da84efc42dd62b2be07a52dd4379791e2cef6eb2))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.28.8 ([1fdf117](https://github.com/appium/appium/commit/1fdf117c63f6e9871f4de3c0bd93ecbdb13a9235))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.29.0 ([6f0101e](https://github.com/appium/appium/commit/6f0101eb6343eb8b372e00a6b71d2b2ee909404c))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.29.1 ([fb0f8f7](https://github.com/appium/appium/commit/fb0f8f776c6a03174f4569efa60d817a930809cf))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.29.3 ([6dacb5e](https://github.com/appium/appium/commit/6dacb5e70ca3529a080f629f5245c2b676746e2c))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.29.7 ([52a6f96](https://github.com/appium/appium/commit/52a6f96e085ff13acdf8d5013673861b7e0da818))
|
||||
* **execute-driver-plugin:** update dependency webdriverio to v8.30.0 ([91320dd](https://github.com/appium/appium/commit/91320ddd02dca89a8cec258d0ab44a49d344d71c))
|
||||
|
||||
|
||||
|
||||
## [3.0.23](https://github.com/appium/appium/compare/@appium/execute-driver-plugin@3.0.22...@appium/execute-driver-plugin@3.0.23) (2024-01-03)
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/execute-driver-plugin",
|
||||
"version": "3.0.23",
|
||||
"version": "3.0.24",
|
||||
"description": "Plugin for batching and executing driver commands with Appiums",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -43,7 +43,7 @@
|
||||
"lodash": "4.17.21",
|
||||
"source-map-support": "0.5.21",
|
||||
"vm2": "3.9.19",
|
||||
"webdriverio": "8.27.0"
|
||||
"webdriverio": "8.30.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"appium": "^2.0.0-beta.35"
|
||||
|
||||
@@ -3,6 +3,15 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [5.5.0](https://github.com/appium/appium/compare/@appium/fake-driver@5.4.0...@appium/fake-driver@5.5.0) (2024-02-06)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **appium:** Set a proper exit code if any of required doctor checks fails ([#19617](https://github.com/appium/appium/issues/19617)) ([f4011f1](https://github.com/appium/appium/commit/f4011f17d4d03bc854c43462848a4c38427acb85))
|
||||
|
||||
|
||||
|
||||
## [5.4.0](https://github.com/appium/appium/compare/@appium/fake-driver@5.3.0...@appium/fake-driver@5.4.0) (2024-01-03)
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const {fs, doctor} = require('@appium/support');
|
||||
const {doctor} = require('@appium/support');
|
||||
|
||||
/** @satisfies {import('@appium/types').IDoctorCheck} */
|
||||
class EnvVarAndPathCheck {
|
||||
@@ -11,16 +11,7 @@ class EnvVarAndPathCheck {
|
||||
}
|
||||
|
||||
async diagnose() {
|
||||
const varValue = process.env[this.varName];
|
||||
if (typeof varValue === 'undefined') {
|
||||
return doctor.nok(`${this.varName} environment variable is NOT set!`);
|
||||
}
|
||||
|
||||
if (await fs.exists(varValue)) {
|
||||
return doctor.ok(`${this.varName} is set to: ${varValue}`);
|
||||
}
|
||||
|
||||
return doctor.nok(`${this.varName} is set to '${varValue}' but this is NOT a valid path!`);
|
||||
return doctor.ok(`${this.varName} environment variable is always set because it's fake`);
|
||||
}
|
||||
|
||||
async fix() {
|
||||
@@ -39,7 +30,3 @@ class EnvVarAndPathCheck {
|
||||
}
|
||||
|
||||
module.exports = {EnvVarAndPathCheck};
|
||||
|
||||
/**
|
||||
* @typedef {import('@appium/types').DoctorCheckResult} CheckResult
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/fake-driver",
|
||||
"version": "5.4.0",
|
||||
"version": "5.5.0",
|
||||
"description": "Mock driver used internally by Appium for testing. Ignore",
|
||||
"keywords": [
|
||||
"automation",
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.1.31](https://github.com/appium/appium/compare/@appium/fake-plugin@3.1.30...@appium/fake-plugin@3.1.31) (2024-02-06)
|
||||
|
||||
**Note:** Version bump only for package @appium/fake-plugin
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [3.1.30](https://github.com/appium/appium/compare/@appium/fake-plugin@3.1.29...@appium/fake-plugin@3.1.30) (2024-01-03)
|
||||
|
||||
**Note:** Version bump only for package @appium/fake-plugin
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/fake-plugin",
|
||||
"version": "3.1.30",
|
||||
"version": "3.1.31",
|
||||
"description": "A fake Appium 2.0 plugin",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -39,8 +39,8 @@
|
||||
"test:unit": "mocha \"./test/unit/**/*.spec.js\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@appium/base-plugin": "^2.2.26",
|
||||
"@appium/support": "^4.2.0",
|
||||
"@appium/base-plugin": "^2.2.27",
|
||||
"@appium/support": "^4.2.1",
|
||||
"@types/bluebird": "3.5.42",
|
||||
"bluebird": "3.7.2",
|
||||
"lodash": "4.17.21",
|
||||
|
||||
@@ -3,6 +3,15 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.0.2](https://github.com/appium/appium/compare/@appium/images-plugin@3.0.1...@appium/images-plugin@3.0.2) (2024-02-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **images-plugin:** update dependency lru-cache to v10 ([#19723](https://github.com/appium/appium/issues/19723)) ([202da83](https://github.com/appium/appium/commit/202da83449073ddb3da8fb2cfbcfce482a5ecd40))
|
||||
|
||||
|
||||
|
||||
## [3.0.1](https://github.com/appium/appium/compare/@appium/images-plugin@3.0.0...@appium/images-plugin@3.0.1) (2024-01-03)
|
||||
|
||||
**Note:** Version bump only for package @appium/images-plugin
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/images-plugin",
|
||||
"version": "3.0.1",
|
||||
"version": "3.0.2",
|
||||
"description": "Plugin for working with images and image elements in Appium",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -39,11 +39,11 @@
|
||||
"test:unit": "mocha \"./test/unit/**/*.spec.js\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@appium/opencv": "^3.0.1",
|
||||
"@appium/support": "^4.2.0",
|
||||
"@appium/opencv": "^3.0.2",
|
||||
"@appium/support": "^4.2.1",
|
||||
"lodash": "4.17.21",
|
||||
"lru-cache": "10.1.0",
|
||||
"sharp": "0.33.1",
|
||||
"lru-cache": "10.2.0",
|
||||
"sharp": "0.33.2",
|
||||
"source-map-support": "0.5.21"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.0.2](https://github.com/appium/appium/compare/@appium/opencv@3.0.1...@appium/opencv@3.0.2) (2024-02-06)
|
||||
|
||||
**Note:** Version bump only for package @appium/opencv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [3.0.1](https://github.com/appium/appium/compare/@appium/opencv@3.0.0...@appium/opencv@3.0.1) (2024-01-03)
|
||||
|
||||
**Note:** Version bump only for package @appium/opencv
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/opencv",
|
||||
"version": "3.0.1",
|
||||
"version": "3.0.2",
|
||||
"description": "OpenCV-related helper library",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -45,7 +45,7 @@
|
||||
"bluebird": "3.7.2",
|
||||
"lodash": "4.17.21",
|
||||
"opencv-bindings": "4.5.5",
|
||||
"sharp": "0.33.1",
|
||||
"sharp": "0.33.2",
|
||||
"source-map-support": "0.5.21"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [0.3.28](https://github.com/appium/appium/compare/@appium/plugin-test-support@0.3.27...@appium/plugin-test-support@0.3.28) (2024-02-06)
|
||||
|
||||
**Note:** Version bump only for package @appium/plugin-test-support
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [0.3.27](https://github.com/appium/appium/compare/@appium/plugin-test-support@0.3.26...@appium/plugin-test-support@0.3.27) (2024-01-03)
|
||||
|
||||
**Note:** Version bump only for package @appium/plugin-test-support
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/plugin-test-support",
|
||||
"version": "0.3.27",
|
||||
"version": "0.3.28",
|
||||
"description": "Testing utilities for Appium plugins",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -41,7 +41,7 @@
|
||||
"test:unit": "exit 0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@appium/types": "^0.16.0",
|
||||
"@appium/types": "^0.16.1",
|
||||
"get-port": "5.1.1",
|
||||
"log-symbols": "4.1.0",
|
||||
"source-map-support": "0.5.21",
|
||||
|
||||
@@ -3,6 +3,21 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [4.2.1](https://github.com/appium/appium/compare/@appium/support@4.2.0...@appium/support@4.2.1) (2024-02-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **support:** Prefer semver.minVersion to semver.coerce API ([#19610](https://github.com/appium/appium/issues/19610)) ([b5460fc](https://github.com/appium/appium/commit/b5460fc131fd23e8a3feb0b15d3fe9eb8bdac5e9))
|
||||
* **support:** update dependency axios to v1.6.4 ([332cc48](https://github.com/appium/appium/commit/332cc48a09b5532a8d51f85f3a24785e2c754e00))
|
||||
* **support:** update dependency axios to v1.6.5 ([#19616](https://github.com/appium/appium/issues/19616)) ([ac73522](https://github.com/appium/appium/commit/ac73522351b31bd6c11972c61daa8b6b8d18fb91))
|
||||
* **support:** update dependency axios to v1.6.6 ([6313704](https://github.com/appium/appium/commit/6313704ee5a8ee3aee726eb512ef259b6fa1041c))
|
||||
* **support:** update dependency axios to v1.6.7 ([795092a](https://github.com/appium/appium/commit/795092a97f6d7569cccc4b5c166f52fef821514b))
|
||||
* **types:** update dependency type-fest to v4.10 ([#19694](https://github.com/appium/appium/issues/19694)) ([966d305](https://github.com/appium/appium/commit/966d305e5eade9369a3875243bcad951df88545c))
|
||||
* **types:** update dependency type-fest to v4.10.1 ([#19703](https://github.com/appium/appium/issues/19703)) ([501395c](https://github.com/appium/appium/commit/501395c9489320b84ab49ff78af4270f66070d62))
|
||||
|
||||
|
||||
|
||||
## [4.2.0](https://github.com/appium/appium/compare/@appium/support@4.1.11...@appium/support@4.2.0) (2024-01-03)
|
||||
|
||||
|
||||
|
||||
@@ -46,9 +46,15 @@ export async function hasAppiumDependency(cwd) {
|
||||
export const findAppiumDependencyPackage = _.memoize(
|
||||
/**
|
||||
* @param {string} [cwd]
|
||||
* @param {string|semver.Range} [acceptableVersionRange='>=2.0.0-beta'] The expected
|
||||
* semver-compatible range for the Appium dependency. Packages that have 'appium' dependency
|
||||
* not satisfying this range will be skipped.
|
||||
* @returns {Promise<string|undefined>}
|
||||
*/
|
||||
async (cwd = process.cwd()) => {
|
||||
async function findAppiumDependencyPackage (
|
||||
cwd = process.cwd(),
|
||||
acceptableVersionRange = '>=2.0.0-beta'
|
||||
) {
|
||||
/**
|
||||
* Tries to read `package.json` in `root` and resolves the identity if it depends on `appium`;
|
||||
* otherwise resolves `undefined`.
|
||||
@@ -58,14 +64,12 @@ export const findAppiumDependencyPackage = _.memoize(
|
||||
const readPkg = async (root) => {
|
||||
try {
|
||||
const pkg = await readPackageInDir(root);
|
||||
const version = semver.coerce(String(
|
||||
const version = semver.minVersion(String(
|
||||
pkg?.dependencies?.appium ??
|
||||
pkg?.devDependencies?.appium ??
|
||||
pkg?.peerDependencies?.appium
|
||||
));
|
||||
return version && semver.satisfies(version, '>=2.0.0-beta', {includePrerelease: true})
|
||||
? root
|
||||
: undefined;
|
||||
return version && semver.satisfies(version, acceptableVersionRange) ? root : undefined;
|
||||
} catch {}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/support",
|
||||
"version": "4.2.0",
|
||||
"version": "4.2.1",
|
||||
"description": "Support libs used across appium packages",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -42,7 +42,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@appium/tsconfig": "^0.x",
|
||||
"@appium/types": "^0.16.0",
|
||||
"@appium/types": "^0.16.1",
|
||||
"@colors/colors": "1.6.0",
|
||||
"@types/archiver": "6.0.2",
|
||||
"@types/base64-stream": "1.0.5",
|
||||
@@ -58,10 +58,10 @@
|
||||
"@types/shell-quote": "1.7.5",
|
||||
"@types/supports-color": "8.1.3",
|
||||
"@types/teen_process": "2.0.4",
|
||||
"@types/uuid": "9.0.7",
|
||||
"@types/uuid": "9.0.8",
|
||||
"@types/which": "3.0.3",
|
||||
"archiver": "6.0.1",
|
||||
"axios": "1.6.3",
|
||||
"axios": "1.6.7",
|
||||
"base64-stream": "1.0.0",
|
||||
"bluebird": "3.7.2",
|
||||
"bplist-creator": "0.1.1",
|
||||
@@ -90,13 +90,13 @@
|
||||
"source-map-support": "0.5.21",
|
||||
"supports-color": "8.1.1",
|
||||
"teen_process": "2.1.1",
|
||||
"type-fest": "4.9.0",
|
||||
"type-fest": "4.10.1",
|
||||
"uuid": "9.0.1",
|
||||
"which": "4.0.0",
|
||||
"yauzl": "2.10.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"sharp": "0.33.1"
|
||||
"sharp": "0.33.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.17.0 || ^16.13.0 || >=18.0.0",
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.0.31](https://github.com/appium/appium/compare/@appium/test-support@3.0.30...@appium/test-support@3.0.31) (2024-02-06)
|
||||
|
||||
**Note:** Version bump only for package @appium/test-support
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [3.0.30](https://github.com/appium/appium/compare/@appium/test-support@3.0.29...@appium/test-support@3.0.30) (2024-01-03)
|
||||
|
||||
**Note:** Version bump only for package @appium/test-support
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/test-support",
|
||||
"version": "3.0.30",
|
||||
"version": "3.0.31",
|
||||
"description": "A collection of test utilities used across Appium packages",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -45,7 +45,7 @@
|
||||
"test:unit": "mocha \"./test/unit/**/*.spec.js\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@appium/support": "^4.2.0",
|
||||
"@appium/support": "^4.2.1",
|
||||
"@colors/colors": "1.6.0",
|
||||
"bluebird": "3.7.2",
|
||||
"lodash": "4.17.21",
|
||||
|
||||
@@ -3,6 +3,16 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [0.16.1](https://github.com/appium/appium/compare/@appium/types@0.16.0...@appium/types@0.16.1) (2024-02-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **types:** update dependency type-fest to v4.10 ([#19694](https://github.com/appium/appium/issues/19694)) ([966d305](https://github.com/appium/appium/commit/966d305e5eade9369a3875243bcad951df88545c))
|
||||
* **types:** update dependency type-fest to v4.10.1 ([#19703](https://github.com/appium/appium/issues/19703)) ([501395c](https://github.com/appium/appium/commit/501395c9489320b84ab49ff78af4270f66070d62))
|
||||
|
||||
|
||||
|
||||
## [0.16.0](https://github.com/appium/appium/compare/@appium/types@0.15.0...@appium/types@0.16.0) (2024-01-03)
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
> A collection of TypeScript type declarations used across various [Appium](https://github.com/appium/appium) packages.
|
||||
|
||||
**Warning: This is a work-in-progress; expect breaking changes!**
|
||||
> [!WARNING]
|
||||
> This is a work-in-progress; expect breaking changes!
|
||||
|
||||
## Install
|
||||
|
||||
@@ -10,11 +11,10 @@
|
||||
npm install @appium/types -D
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The sources are `.ts` files, _not_ `.d.ts` files. This allows other packages in the root TypeScript "project" to define a dependency upon this one, and enables incremental builds an "watch" mode.
|
||||
- If there is a way to switch to `.d.ts` files and configure this package to work in our "project" context _without_ needing to actually "emit" anything, then we should do that instead. Help accepted!
|
||||
- `lib/appium-config.ts` is generated by this package from `@appium/schema`, but is under version control to avoid chicken-or-egg build problems.
|
||||
> [!NOTE]
|
||||
> - The sources are `.ts` files, _not_ `.d.ts` files. This allows other packages in the root TypeScript "project" to define a dependency upon this one, and enables incremental builds an "watch" mode.
|
||||
> - If there is a way to switch to `.d.ts` files and configure this package to work in our "project" context _without_ needing to actually "emit" anything, then we should do that instead. Help accepted!
|
||||
> - `lib/appium-config.ts` is generated by this package from `@appium/schema`, but is under version control to avoid chicken-or-egg build problems.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/types",
|
||||
"version": "0.16.0",
|
||||
"version": "0.16.1",
|
||||
"description": "Various type declarations used across Appium",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -43,7 +43,7 @@
|
||||
"@types/express": "4.17.21",
|
||||
"@types/npmlog": "7.0.0",
|
||||
"@types/ws": "8.5.10",
|
||||
"type-fest": "4.9.0"
|
||||
"type-fest": "4.10.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.17.0 || ^16.13.0 || >=18.0.0",
|
||||
|
||||
@@ -3,6 +3,16 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.0.17](https://github.com/appium/appium-plugins/compare/@appium/universal-xml-plugin@1.0.16...@appium/universal-xml-plugin@1.0.17) (2024-02-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **universal-xml-plugin:** update dependency fast-xml-parser to v4.3.3 ([40873fb](https://github.com/appium/appium-plugins/commit/40873fb65525073c93f3f8e593f882cdee2368db))
|
||||
* **universal-xml-plugin:** update dependency fast-xml-parser to v4.3.4 ([569db83](https://github.com/appium/appium-plugins/commit/569db839f1c207d604948aefd0a7800b2d568573))
|
||||
|
||||
|
||||
|
||||
## [1.0.16](https://github.com/appium/appium-plugins/compare/@appium/universal-xml-plugin@1.0.15...@appium/universal-xml-plugin@1.0.16) (2023-12-18)
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@appium/universal-xml-plugin",
|
||||
"version": "1.0.16",
|
||||
"version": "1.0.17",
|
||||
"description": "Appium plugin for making XML source and XPath queries the same across iOS and Android",
|
||||
"keywords": [
|
||||
"automation",
|
||||
@@ -38,7 +38,7 @@
|
||||
"dependencies": {
|
||||
"@types/xmldom": "0.1.34",
|
||||
"@xmldom/xmldom": "0.8.10",
|
||||
"fast-xml-parser": "4.3.2",
|
||||
"fast-xml-parser": "4.3.4",
|
||||
"lodash": "4.17.21",
|
||||
"source-map-support": "0.5.21",
|
||||
"xpath": "0.0.34"
|
||||
|
||||
Reference in New Issue
Block a user