@revyl/verify 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +18 -14
- package/docs/api.md +2 -2
- package/docs/getting-started.md +8 -4
- package/docs/web.md +2 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.1 (2026-11-03)
|
|
4
|
+
|
|
5
|
+
- Docs: runnable `.mts` quickstart uses the built-in iOS Settings app, explains how to target an uploaded app with `appId`, clarifies that the Python SDK is not published to PyPI yet, and documents Web availability requirements.
|
|
6
|
+
|
|
3
7
|
## 0.3.0 (2026-10-31)
|
|
4
8
|
|
|
5
9
|
- Sign in automatically on the first interactive `open()`, `attach()`, or `currentComputer()` call using the Revyl CLI browser-approval flow; CI remains key-only and browser-free.
|
package/README.md
CHANGED
|
@@ -10,12 +10,12 @@ Every run gives you a link to watch the target. The session keeps its report and
|
|
|
10
10
|
npm install @revyl/verify
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
Save this as `verify/check.
|
|
13
|
+
Save this as `verify/check.mts`:
|
|
14
14
|
|
|
15
15
|
```ts
|
|
16
16
|
import { open } from '@revyl/verify';
|
|
17
17
|
|
|
18
|
-
const session = await open({ platform: 'ios', app: {
|
|
18
|
+
const session = await open({ platform: 'ios', app: { bundleId: 'com.apple.Preferences' } });
|
|
19
19
|
try {
|
|
20
20
|
await session.instruction('Open General, then About');
|
|
21
21
|
await session.validation('The screen shows the operating system version');
|
|
@@ -25,10 +25,12 @@ try {
|
|
|
25
25
|
}
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
Use `appId` when you want to target your own uploaded app.
|
|
29
|
+
|
|
28
30
|
Run the script:
|
|
29
31
|
|
|
30
32
|
```bash
|
|
31
|
-
node verify/check.
|
|
33
|
+
node verify/check.mts
|
|
32
34
|
```
|
|
33
35
|
|
|
34
36
|
On the first interactive run, Verify opens the Revyl browser approval flow once and saves the login in `~/.revyl/credentials.json` for the CLI and SDK to share.
|
|
@@ -45,7 +47,7 @@ Verify prints a live session URL and progress like this:
|
|
|
45
47
|
|
|
46
48
|
The URL is live during the run and keeps the report and available recording after it closes. A failed instruction or validation throws a typed error and includes the same URL. In CI, Verify never opens a browser: provide `REVYL_API_KEY` as a secret.
|
|
47
49
|
|
|
48
|
-
For Web, use `open({ platform: 'web', app: { appId, url } })`; for a computer, use `open({ platform: 'mac' })`.
|
|
50
|
+
For Web, use `open({ platform: 'web', app: { appId, url } })`; for a computer, use `open({ platform: 'mac' })`. Web targets need Web enabled for your organization; new self-serve organizations don't have it yet. `revyl app create --platform web` reports `Web is not enabled for this organization`; contact Revyl to enable it.
|
|
49
51
|
|
|
50
52
|
## Scaffold a config (optional)
|
|
51
53
|
|
|
@@ -59,7 +61,7 @@ npx @revyl/verify init
|
|
|
59
61
|
|
|
60
62
|
The generated project starts with a named target. Use `--platform web`, `--platform ios`, `--platform android`, or `--platform mac` when you want to skip the platform question. Web and mobile targets need a Revyl app id; a Mac target does not. The generated config is ordinary TypeScript, so edit it when the example needs a pinned build, a public Web URL, or a different target.
|
|
61
63
|
|
|
62
|
-
See the [TypeScript getting-started guide](https://github.com/RevylAI/verify/blob/v0.3.
|
|
64
|
+
See the [TypeScript getting-started guide](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/getting-started.md), the [Python SDK guide](https://github.com/RevylAI/verify/blob/v0.3.1/python/README.md), and the [Go SDK guide](https://github.com/RevylAI/verify/tree/go/v0.2.0/go).
|
|
63
65
|
|
|
64
66
|
## CI
|
|
65
67
|
|
|
@@ -77,7 +79,7 @@ For a normal GitHub Actions job, install from the lockfile with `npm ci` and pas
|
|
|
77
79
|
REVYL_API_KEY: ${{ secrets.REVYL_API_KEY }}
|
|
78
80
|
```
|
|
79
81
|
|
|
80
|
-
On a `revyl-macos` job, `currentComputer()` attaches to the runner's existing computer without taking ownership. The runner releases the computer; closing the Verify attachment still cleans up hosted children. See the [CI guide](https://github.com/RevylAI/verify/blob/v0.3.
|
|
82
|
+
On a `revyl-macos` job, `currentComputer()` attaches to the runner's existing computer without taking ownership. The runner releases the computer; closing the Verify attachment still cleans up hosted children. See the [CI guide](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/ci.md) and [computer API](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/api.md#inside-a-revyl-macos-github-actions-job).
|
|
81
83
|
|
|
82
84
|
## Reference authentication
|
|
83
85
|
|
|
@@ -104,7 +106,7 @@ try {
|
|
|
104
106
|
}
|
|
105
107
|
```
|
|
106
108
|
|
|
107
|
-
For Web, use a public HTTPS URL in the target config. For iOS and Android, point the target at an app or build in Revyl. The [API guide](https://github.com/RevylAI/verify/blob/v0.3.
|
|
109
|
+
For Web, use a public HTTPS URL in the target config. For iOS and Android, point the target at an app or build in Revyl. The [API guide](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/api.md) covers target options, step results, screenshots, reports, and cleanup.
|
|
108
110
|
|
|
109
111
|
## Go
|
|
110
112
|
|
|
@@ -127,6 +129,8 @@ Go calls return errors instead of throwing. The [Go reference](https://github.co
|
|
|
127
129
|
|
|
128
130
|
## Python
|
|
129
131
|
|
|
132
|
+
The Python SDK isn't published to PyPI yet; install it from source using the instructions in the [Python SDK guide](https://github.com/RevylAI/verify/blob/v0.3.1/python/README.md).
|
|
133
|
+
|
|
130
134
|
```python
|
|
131
135
|
from revyl_verify import Target, open
|
|
132
136
|
|
|
@@ -135,7 +139,7 @@ with open(Target(platform="ios", bundle_id="com.apple.Preferences")) as session:
|
|
|
135
139
|
session.validation("The screen shows the operating system version")
|
|
136
140
|
```
|
|
137
141
|
|
|
138
|
-
Python supports synchronous and asyncio APIs, but it has no bundled CLI. The [Python reference](https://github.com/RevylAI/verify/blob/v0.3.
|
|
142
|
+
Python supports synchronous and asyncio APIs, but it has no bundled CLI. The [Python reference](https://github.com/RevylAI/verify/blob/v0.3.1/python/README.md) covers both APIs and computer operations.
|
|
139
143
|
|
|
140
144
|
## Platforms
|
|
141
145
|
|
|
@@ -147,14 +151,14 @@ Python supports synchronous and asyncio APIs, but it has no bundled CLI. The [Py
|
|
|
147
151
|
| Mac computer | — | Yes | Yes |
|
|
148
152
|
| Linux computer | — | Yes | Yes |
|
|
149
153
|
|
|
150
|
-
Computer targets are early access and use commands, files, processes, and screenshots rather than natural-language agent steps. They have a server-bounded lifetime. See [computer setup](https://github.com/RevylAI/verify/blob/v0.3.
|
|
154
|
+
Computer targets are early access and use commands, files, processes, and screenshots rather than natural-language agent steps. They have a server-bounded lifetime. See [computer setup](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/computers.md).
|
|
151
155
|
|
|
152
156
|
## Documentation
|
|
153
157
|
|
|
154
|
-
- [Documentation index](https://github.com/RevylAI/verify/tree/v0.3.
|
|
155
|
-
- [End-to-end results and limitations](https://github.com/RevylAI/verify/blob/v0.3.
|
|
156
|
-
- [Examples](https://github.com/RevylAI/verify/tree/v0.3.
|
|
157
|
-
- [Contributing](https://github.com/RevylAI/verify/blob/v0.3.
|
|
158
|
+
- [Documentation index](https://github.com/RevylAI/verify/tree/v0.3.1/packages/verify/docs/) · [API](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/api.md) · [CI](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/ci.md) · [Coding agents](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/agents.md)
|
|
159
|
+
- [End-to-end results and limitations](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/end-to-end.md)
|
|
160
|
+
- [Examples](https://github.com/RevylAI/verify/tree/v0.3.1/examples/): [Web store](https://github.com/RevylAI/verify/tree/v0.3.1/examples/web-store/) · [Mobile Settings](https://github.com/RevylAI/verify/tree/v0.3.1/examples/mobile-settings/) · [Mac workspace](https://github.com/RevylAI/verify/tree/v0.3.1/examples/mac-workspace/)
|
|
161
|
+
- [Contributing](https://github.com/RevylAI/verify/blob/v0.3.1/CONTRIBUTING.md) · [Security](https://github.com/RevylAI/verify/blob/v0.3.1/SECURITY.md) · [Releasing](https://github.com/RevylAI/verify/blob/v0.3.1/RELEASING.md)
|
|
158
162
|
|
|
159
163
|
## Troubleshooting
|
|
160
164
|
|
|
@@ -165,4 +169,4 @@ Computer targets are early access and use commands, files, processes, and screen
|
|
|
165
169
|
|
|
166
170
|
## License
|
|
167
171
|
|
|
168
|
-
[Apache 2.0](https://github.com/RevylAI/verify/blob/v0.3.
|
|
172
|
+
[Apache 2.0](https://github.com/RevylAI/verify/blob/v0.3.1/LICENSE).
|
package/docs/api.md
CHANGED
|
@@ -29,7 +29,7 @@ const linux = await open({ platform: 'linux' }); // same comp
|
|
|
29
29
|
|
|
30
30
|
`currentComputer(options?)` attaches to `REVYL_COMPUTER_ID` using normal credential resolution. It is non-owning by default: close cleans up hosted children, while the job's owner releases the computer. It never creates a computer and throws `COMPUTER_ID_MISSING` when the ID is unset or blank. Invalid IDs fail with `INVALID_ARGUMENT`.
|
|
31
31
|
|
|
32
|
-
This helper is included in the TypeScript 0.3.
|
|
32
|
+
This helper is included in the TypeScript 0.3.1 release and requires a runner configured to inject `REVYL_COMPUTER_ID` and a short-lived `REVYL_API_KEY`. A workflow can supply its own `REVYL_API_KEY` instead. After installing the project dependencies and selecting Node.js ≥22.18, add this step to a job with `runs-on: revyl-macos`:
|
|
33
33
|
|
|
34
34
|
```yaml
|
|
35
35
|
- name: Run Verify
|
|
@@ -49,7 +49,7 @@ The helper accepts the same options as `attach`, including explicit `backendUrl`
|
|
|
49
49
|
|
|
50
50
|
## attach(computerId, options?)
|
|
51
51
|
|
|
52
|
-
The attachment, hosted-child and navigation APIs below are included in the TypeScript 0.3.
|
|
52
|
+
The attachment, hosted-child and navigation APIs below are included in the TypeScript 0.3.1 release.
|
|
53
53
|
|
|
54
54
|
`open()` and `computer.open()` return the extended `OpenedSession` interface. The original `Session` interface keeps its existing required members, so applications implementing or mocking it do not need to add the new methods. Use `OpenedSession` when explicitly annotating a value that calls `report`, `navigate` or `open`.
|
|
55
55
|
|
package/docs/getting-started.md
CHANGED
|
@@ -8,20 +8,24 @@ Verify needs Node.js 22.18 or later, which runs TypeScript files directly, and a
|
|
|
8
8
|
npm install @revyl/verify
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Save this as `verify/check.mts` and use an inline target when you do not need a named config:
|
|
12
12
|
|
|
13
13
|
```ts
|
|
14
14
|
import { open } from '@revyl/verify';
|
|
15
15
|
|
|
16
|
-
const session = await open({ platform: 'ios', app: {
|
|
16
|
+
const session = await open({ platform: 'ios', app: { bundleId: 'com.apple.Preferences' } });
|
|
17
17
|
try {
|
|
18
|
-
await session.instruction('Open
|
|
19
|
-
await session.validation('The
|
|
18
|
+
await session.instruction('Open General, then About');
|
|
19
|
+
await session.validation('The screen shows the operating system version');
|
|
20
20
|
} finally {
|
|
21
21
|
await session.close();
|
|
22
22
|
}
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
Use `appId` when you want to target your own uploaded app.
|
|
26
|
+
|
|
27
|
+
Run it with `node verify/check.mts`. Web targets need Web enabled for your organization; new self-serve organizations don't have it yet. `revyl app create --platform web` reports `Web is not enabled for this organization`; contact Revyl to enable it.
|
|
28
|
+
|
|
25
29
|
On the first interactive run, Verify opens the Revyl browser approval flow once and saves the shared CLI login. It prints a live session link, then ordered step results. In CI, it never prompts or opens a browser; set `REVYL_API_KEY` as a secret. Python and Go use an existing CLI login or API key; their SDKs do not open the browser themselves.
|
|
26
30
|
|
|
27
31
|
## Scaffold a config (optional)
|
package/docs/web.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
A web target opens your app in a Revyl cloud browser.
|
|
4
4
|
|
|
5
|
+
Web targets need Web enabled for your organization; new self-serve organizations don't have it yet. `revyl app create --platform web` reports `Web is not enabled for this organization`; contact Revyl to enable it.
|
|
6
|
+
|
|
5
7
|
```ts
|
|
6
8
|
{
|
|
7
9
|
platform: 'web',
|
package/package.json
CHANGED