@mobilewright/driver-mobilenext 0.0.1 → 0.0.42

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mobilewright/driver-mobilenext",
3
- "version": "0.0.1",
3
+ "version": "0.0.42",
4
4
  "description": "MobileNext driver for Mobilewright",
5
5
  "homepage": "https://mobilewright.dev",
6
6
  "license": "Apache-2.0",
@@ -14,6 +14,10 @@
14
14
  ".": {
15
15
  "types": "./dist/index.d.ts",
16
16
  "default": "./dist/index.js"
17
+ },
18
+ "./reporter": {
19
+ "types": "./dist/reporter.d.ts",
20
+ "default": "./dist/reporter.js"
17
21
  }
18
22
  },
19
23
  "scripts": {
@@ -29,7 +33,7 @@
29
33
  "dist"
30
34
  ],
31
35
  "dependencies": {
32
- "@mobilewright/protocol": "^0.0.1",
36
+ "@mobilewright/protocol": "^0.0.42",
33
37
  "debug": "^4.4.3",
34
38
  "ws": "^8.18.0"
35
39
  },
package/dist/example.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=example.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":""}
package/dist/example.js DELETED
@@ -1,39 +0,0 @@
1
- import { writeFileSync } from 'node:fs';
2
- import { MobileUseDriver } from './driver.js';
3
- const API_KEY = "mob_Z2WFuDmQR3v7A5HJN1bJ18UjETPr4cDueZEt";
4
- async function main() {
5
- const driver = new MobileUseDriver({
6
- // region: 'us-west-2',
7
- // apiKey: 'your-api-key',
8
- apiKey: API_KEY,
9
- });
10
- // Connect to a device
11
- const session = await driver.connect({
12
- platform: 'ios',
13
- });
14
- console.log('Connected:', session);
15
- // Get screen size
16
- const screenSize = await driver.getScreenSize();
17
- console.log('Screen size:', screenSize);
18
- // Get orientation
19
- const orientation = await driver.getOrientation();
20
- console.log('Orientation:', orientation);
21
- // Take a screenshot and save to file
22
- const screenshot = await driver.screenshot();
23
- writeFileSync('screenshot.png', screenshot);
24
- console.log('Screenshot saved to screenshot.png (%d bytes)', screenshot.length);
25
- // List elements on screen
26
- const elements = await driver.getViewHierarchy();
27
- console.log('Elements on screen:', JSON.stringify(elements, null, 2));
28
- // Type text
29
- await driver.typeText('Hello from mobile-use driver!');
30
- console.log('Typed text on screen');
31
- // Disconnect
32
- await driver.disconnect();
33
- console.log('Disconnected');
34
- }
35
- main().catch((err) => {
36
- console.error(err);
37
- process.exit(1);
38
- });
39
- //# sourceMappingURL=example.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"example.js","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAO,GAAG,0CAA0C,CAAC;AAE3D,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,uBAAuB;QACvB,0BAA0B;QAC1B,MAAM,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACnC,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEnC,kBAAkB;IAClB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAExC,kBAAkB;IAClB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEzC,qCAAqC;IACrC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7C,aAAa,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAEhF,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtE,YAAY;IACZ,MAAM,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAEpC,aAAa;IACb,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC9B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- export interface GitInfo {
2
- repoUrl?: string;
3
- branch?: string;
4
- commitSha?: string;
5
- authorName?: string;
6
- commitMessage?: string;
7
- }
8
- export declare function normalizeRepoUrl(url: string): string;
9
- export declare function getGitInfo(): GitInfo;
10
- //# sourceMappingURL=git-info.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-info.d.ts","sourceRoot":"","sources":["../src/git-info.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAcD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUpD;AAoHD,wBAAgB,UAAU,IAAI,OAAO,CAUpC"}
package/dist/git-info.js DELETED
@@ -1,142 +0,0 @@
1
- import { execSync } from 'node:child_process';
2
- function runGit(args) {
3
- try {
4
- const result = execSync(['git', ...args].join(' '), {
5
- encoding: 'utf8',
6
- stdio: ['ignore', 'pipe', 'ignore'],
7
- }).trim();
8
- return result || undefined;
9
- }
10
- catch {
11
- return undefined;
12
- }
13
- }
14
- export function normalizeRepoUrl(url) {
15
- const sshMatch = url.match(/^git@([^:]+):(.+?)(?:\.git)?$/);
16
- if (sshMatch) {
17
- return `https://${sshMatch[1]}/${sshMatch[2]}`;
18
- }
19
- const sshProtocolMatch = url.match(/^ssh:\/\/(?:[^@]+@)?([^/]+)\/(.+?)(?:\.git)?$/);
20
- if (sshProtocolMatch) {
21
- return `https://${sshProtocolMatch[1]}/${sshProtocolMatch[2]}`;
22
- }
23
- return url.replace(/\.git$/, '');
24
- }
25
- function getGitHubInfo() {
26
- if (!process.env['GITHUB_ACTIONS']) {
27
- return undefined;
28
- }
29
- const repo = process.env['GITHUB_REPOSITORY'];
30
- return {
31
- repoUrl: repo ? `https://github.com/${repo}` : undefined,
32
- branch: process.env['GITHUB_REF_NAME'],
33
- commitSha: process.env['GITHUB_SHA'],
34
- authorName: process.env['GITHUB_ACTOR'],
35
- commitMessage: process.env['GITHUB_COMMIT_MESSAGE'] ?? runGit(['log', '-1', '--format=%s']),
36
- };
37
- }
38
- function getGitLabInfo() {
39
- if (!process.env['GITLAB_CI']) {
40
- return undefined;
41
- }
42
- return {
43
- repoUrl: process.env['CI_PROJECT_URL'],
44
- branch: process.env['CI_COMMIT_REF_NAME'],
45
- commitSha: process.env['CI_COMMIT_SHA'],
46
- authorName: process.env['GITLAB_USER_NAME'] ?? process.env['CI_COMMIT_AUTHOR'],
47
- commitMessage: process.env['CI_COMMIT_MESSAGE'],
48
- };
49
- }
50
- function getJenkinsInfo() {
51
- if (!process.env['JENKINS_URL']) {
52
- return undefined;
53
- }
54
- const rawUrl = process.env['GIT_URL'];
55
- const branch = process.env['GIT_BRANCH'] ?? process.env['BRANCH_NAME'] ?? process.env['GIT_LOCAL_BRANCH'];
56
- return {
57
- repoUrl: rawUrl ? normalizeRepoUrl(rawUrl) : undefined,
58
- branch,
59
- commitSha: process.env['GIT_COMMIT'],
60
- authorName: process.env['GIT_AUTHOR_NAME'],
61
- commitMessage: runGit(['log', '-1', '--format=%s']),
62
- };
63
- }
64
- function getCircleCIInfo() {
65
- if (!process.env['CIRCLECI']) {
66
- return undefined;
67
- }
68
- const username = process.env['CIRCLE_PROJECT_USERNAME'];
69
- const reponame = process.env['CIRCLE_PROJECT_REPONAME'];
70
- const vcsType = process.env['CIRCLE_VCS_TYPE'] ?? 'github';
71
- const host = vcsType === 'bitbucket' ? 'bitbucket.org' : 'github.com';
72
- return {
73
- repoUrl: username && reponame ? `https://${host}/${username}/${reponame}` : undefined,
74
- branch: process.env['CIRCLE_BRANCH'],
75
- commitSha: process.env['CIRCLE_SHA1'],
76
- authorName: process.env['CIRCLE_USERNAME'],
77
- commitMessage: runGit(['log', '-1', '--format=%s']),
78
- };
79
- }
80
- function getTravisInfo() {
81
- if (!process.env['TRAVIS']) {
82
- return undefined;
83
- }
84
- const slug = process.env['TRAVIS_REPO_SLUG'];
85
- return {
86
- repoUrl: slug ? `https://github.com/${slug}` : undefined,
87
- branch: process.env['TRAVIS_PULL_REQUEST_BRANCH'] ?? process.env['TRAVIS_BRANCH'],
88
- commitSha: process.env['TRAVIS_COMMIT'],
89
- commitMessage: process.env['TRAVIS_COMMIT_MESSAGE'],
90
- };
91
- }
92
- function getAzureDevOpsInfo() {
93
- if (!process.env['TF_BUILD']) {
94
- return undefined;
95
- }
96
- const rawBranch = process.env['SYSTEM_PULLREQUEST_SOURCEBRANCH'] ?? process.env['BUILD_SOURCEBRANCH'];
97
- return {
98
- repoUrl: process.env['BUILD_REPOSITORY_URI'],
99
- branch: rawBranch?.replace('refs/heads/', ''),
100
- commitSha: process.env['BUILD_SOURCEVERSION'],
101
- authorName: process.env['BUILD_REQUESTEDFOR'],
102
- commitMessage: process.env['BUILD_SOURCEVERSIONMESSAGE'],
103
- };
104
- }
105
- function getBitbucketInfo() {
106
- if (!process.env['BITBUCKET_PIPELINE_UUID']) {
107
- return undefined;
108
- }
109
- const slug = process.env['BITBUCKET_REPO_FULL_NAME'];
110
- return {
111
- repoUrl: slug ? `https://bitbucket.org/${slug}` : undefined,
112
- branch: process.env['BITBUCKET_BRANCH'],
113
- commitSha: process.env['BITBUCKET_COMMIT'],
114
- commitMessage: runGit(['log', '-1', '--format=%s']),
115
- };
116
- }
117
- function getLocalGitInfo() {
118
- const gitDir = runGit(['rev-parse', '--git-dir']);
119
- if (!gitDir) {
120
- return undefined;
121
- }
122
- const rawUrl = runGit(['config', '--get', 'remote.origin.url']);
123
- return {
124
- repoUrl: rawUrl ? normalizeRepoUrl(rawUrl) : undefined,
125
- branch: runGit(['rev-parse', '--abbrev-ref', 'HEAD']),
126
- commitSha: runGit(['rev-parse', 'HEAD']),
127
- authorName: runGit(['log', '-1', '--format=%an']),
128
- commitMessage: runGit(['log', '-1', '--format=%s']),
129
- };
130
- }
131
- export function getGitInfo() {
132
- const info = getGitHubInfo()
133
- ?? getGitLabInfo()
134
- ?? getJenkinsInfo()
135
- ?? getCircleCIInfo()
136
- ?? getTravisInfo()
137
- ?? getAzureDevOpsInfo()
138
- ?? getBitbucketInfo()
139
- ?? getLocalGitInfo();
140
- return info ?? {};
141
- }
142
- //# sourceMappingURL=git-info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-info.js","sourceRoot":"","sources":["../src/git-info.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=git-info.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-info.test.d.ts","sourceRoot":"","sources":["../src/git-info.test.ts"],"names":[],"mappings":""}
@@ -1,107 +0,0 @@
1
- import { test, expect } from '@playwright/test';
2
- import { getGitInfo, normalizeRepoUrl } from './git-info.js';
3
- const ALL_CI_KEYS = [
4
- 'GITHUB_ACTIONS', 'GITLAB_CI', 'JENKINS_URL',
5
- 'CIRCLECI', 'TRAVIS', 'TF_BUILD', 'BITBUCKET_PIPELINE_UUID',
6
- ];
7
- function withCIEnv(vars, fn) {
8
- const saved = {};
9
- const keysToManage = [...new Set([...ALL_CI_KEYS, ...Object.keys(vars)])];
10
- for (const key of keysToManage) {
11
- saved[key] = process.env[key];
12
- delete process.env[key];
13
- }
14
- for (const [key, value] of Object.entries(vars)) {
15
- process.env[key] = value;
16
- }
17
- try {
18
- fn();
19
- }
20
- finally {
21
- for (const key of keysToManage) {
22
- if (saved[key] === undefined) {
23
- delete process.env[key];
24
- }
25
- else {
26
- process.env[key] = saved[key];
27
- }
28
- }
29
- }
30
- }
31
- test('normalizeRepoUrl converts SSH git@ URL to HTTPS', () => {
32
- expect(normalizeRepoUrl('git@github.com:org/repo.git')).toBe('https://github.com/org/repo');
33
- });
34
- test('normalizeRepoUrl converts ssh:// URL to HTTPS', () => {
35
- expect(normalizeRepoUrl('ssh://git@github.com/org/repo.git')).toBe('https://github.com/org/repo');
36
- });
37
- test('normalizeRepoUrl strips .git suffix from HTTPS URL', () => {
38
- expect(normalizeRepoUrl('https://github.com/org/repo.git')).toBe('https://github.com/org/repo');
39
- });
40
- test('normalizeRepoUrl leaves plain HTTPS URL unchanged', () => {
41
- expect(normalizeRepoUrl('https://github.com/org/repo')).toBe('https://github.com/org/repo');
42
- });
43
- test('getGitInfo reads GitHub Actions environment variables', () => {
44
- withCIEnv({
45
- GITHUB_ACTIONS: 'true',
46
- GITHUB_REPOSITORY: 'myorg/myrepo',
47
- GITHUB_SHA: 'abc123def456',
48
- GITHUB_REF_NAME: 'main',
49
- GITHUB_ACTOR: 'octocat',
50
- GITHUB_COMMIT_MESSAGE: 'feat: add feature',
51
- }, () => {
52
- const info = getGitInfo();
53
- expect(info.repoUrl).toBe('https://github.com/myorg/myrepo');
54
- expect(info.commitSha).toBe('abc123def456');
55
- expect(info.branch).toBe('main');
56
- expect(info.authorName).toBe('octocat');
57
- expect(info.commitMessage).toBe('feat: add feature');
58
- });
59
- });
60
- test('getGitInfo reads GitLab CI environment variables', () => {
61
- withCIEnv({
62
- GITLAB_CI: 'true',
63
- CI_PROJECT_URL: 'https://gitlab.com/myorg/myrepo',
64
- CI_COMMIT_SHA: 'deadbeef',
65
- CI_COMMIT_REF_NAME: 'feature-branch',
66
- GITLAB_USER_NAME: 'alice',
67
- CI_COMMIT_MESSAGE: 'fix: bug',
68
- }, () => {
69
- const info = getGitInfo();
70
- expect(info.repoUrl).toBe('https://gitlab.com/myorg/myrepo');
71
- expect(info.commitSha).toBe('deadbeef');
72
- expect(info.branch).toBe('feature-branch');
73
- expect(info.authorName).toBe('alice');
74
- expect(info.commitMessage).toBe('fix: bug');
75
- });
76
- });
77
- test('getGitInfo reads Azure DevOps environment variables and strips refs/heads/ prefix', () => {
78
- withCIEnv({
79
- TF_BUILD: 'true',
80
- BUILD_REPOSITORY_URI: 'https://dev.azure.com/org/project/_git/repo',
81
- BUILD_SOURCEBRANCH: 'refs/heads/main',
82
- BUILD_SOURCEVERSION: 'abc123',
83
- BUILD_REQUESTEDFOR: 'Bob',
84
- BUILD_SOURCEVERSIONMESSAGE: 'chore: update deps',
85
- }, () => {
86
- const info = getGitInfo();
87
- expect(info.branch).toBe('main');
88
- expect(info.repoUrl).toBe('https://dev.azure.com/org/project/_git/repo');
89
- expect(info.authorName).toBe('Bob');
90
- });
91
- });
92
- test('getGitInfo falls back to local git when no CI env vars are set', () => {
93
- // This test runs inside the mobilewright git repo, so local git should work.
94
- withCIEnv({}, () => {
95
- const info = getGitInfo();
96
- expect(typeof info.branch).toBe('string');
97
- expect(typeof info.commitSha).toBe('string');
98
- expect(info.commitSha).toHaveLength(40);
99
- });
100
- });
101
- test('getGitInfo returns empty object when not in a git repo and no CI env vars', () => {
102
- // Simulate a non-git environment by checking we get an object (may be empty)
103
- const info = getGitInfo();
104
- expect(typeof info).toBe('object');
105
- expect(info).not.toBeNull();
106
- });
107
- //# sourceMappingURL=git-info.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-info.test.js","sourceRoot":"","sources":["../src/git-info.test.ts"],"names":[],"mappings":"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"}