appium-desktop-driver 1.7.2-preview.1 → 1.7.2

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.
Files changed (111) hide show
  1. package/README.md +2 -0
  2. package/build/eslint.config.d.mts +3 -0
  3. package/build/eslint.config.d.mts.map +1 -0
  4. package/build/eslint.config.mjs +22 -0
  5. package/build/eslint.config.mjs.map +1 -0
  6. package/build/lib/commands/actions.d.ts +3 -5
  7. package/build/lib/commands/actions.d.ts.map +1 -1
  8. package/build/lib/commands/actions.js +91 -83
  9. package/build/lib/commands/actions.js.map +1 -1
  10. package/build/lib/commands/app.d.ts +1 -53
  11. package/build/lib/commands/app.d.ts.map +1 -1
  12. package/build/lib/commands/app.js +147 -415
  13. package/build/lib/commands/app.js.map +1 -1
  14. package/build/lib/commands/device.d.ts +8 -0
  15. package/build/lib/commands/device.d.ts.map +1 -1
  16. package/build/lib/commands/device.js +229 -4
  17. package/build/lib/commands/device.js.map +1 -1
  18. package/build/lib/commands/element.d.ts +3 -0
  19. package/build/lib/commands/element.d.ts.map +1 -1
  20. package/build/lib/commands/element.js +53 -102
  21. package/build/lib/commands/element.js.map +1 -1
  22. package/build/lib/commands/extension.d.ts +0 -2
  23. package/build/lib/commands/extension.d.ts.map +1 -1
  24. package/build/lib/commands/extension.js +184 -111
  25. package/build/lib/commands/extension.js.map +1 -1
  26. package/build/lib/commands/index.d.ts +17 -28
  27. package/build/lib/commands/index.d.ts.map +1 -1
  28. package/build/lib/commands/index.js +2 -4
  29. package/build/lib/commands/index.js.map +1 -1
  30. package/build/lib/commands/powershell.d.ts +6 -0
  31. package/build/lib/commands/powershell.d.ts.map +1 -0
  32. package/build/lib/commands/powershell.js +202 -0
  33. package/build/lib/commands/powershell.js.map +1 -0
  34. package/build/lib/commands/screen-recorder.d.ts +3 -3
  35. package/build/lib/commands/screen-recorder.d.ts.map +1 -1
  36. package/build/lib/commands/screen-recorder.js +24 -33
  37. package/build/lib/commands/screen-recorder.js.map +1 -1
  38. package/build/lib/constraints.d.ts +7 -26
  39. package/build/lib/constraints.d.ts.map +1 -1
  40. package/build/lib/constraints.js +6 -25
  41. package/build/lib/constraints.js.map +1 -1
  42. package/build/lib/driver.d.ts +13 -22
  43. package/build/lib/driver.d.ts.map +1 -1
  44. package/build/lib/driver.js +49 -130
  45. package/build/lib/driver.js.map +1 -1
  46. package/build/lib/mcp/tools/index.d.ts.map +1 -1
  47. package/build/lib/mcp/tools/index.js +0 -2
  48. package/build/lib/mcp/tools/index.js.map +1 -1
  49. package/build/lib/powershell/conditions.d.ts.map +1 -1
  50. package/build/lib/powershell/conditions.js +0 -7
  51. package/build/lib/powershell/conditions.js.map +1 -1
  52. package/build/lib/util.d.ts +1 -11
  53. package/build/lib/util.d.ts.map +1 -1
  54. package/build/lib/util.js +7 -158
  55. package/build/lib/util.js.map +1 -1
  56. package/build/lib/winapi/user32.d.ts +6 -5
  57. package/build/lib/winapi/user32.d.ts.map +1 -1
  58. package/build/lib/winapi/user32.js +88 -131
  59. package/build/lib/winapi/user32.js.map +1 -1
  60. package/build/lib/xpath/core.d.ts +4 -10
  61. package/build/lib/xpath/core.d.ts.map +1 -1
  62. package/build/lib/xpath/core.js +224 -205
  63. package/build/lib/xpath/core.js.map +1 -1
  64. package/build/lib/xpath/functions.d.ts +2 -7
  65. package/build/lib/xpath/functions.d.ts.map +1 -1
  66. package/build/lib/xpath/functions.js +25 -49
  67. package/build/lib/xpath/functions.js.map +1 -1
  68. package/build/tsconfig.tsbuildinfo +1 -0
  69. package/package.json +12 -18
  70. package/CHANGELOG.md +0 -249
  71. package/build/lib/commands/contexts.d.ts +0 -64
  72. package/build/lib/commands/contexts.d.ts.map +0 -1
  73. package/build/lib/commands/contexts.js +0 -166
  74. package/build/lib/commands/contexts.js.map +0 -1
  75. package/build/lib/commands/server-session.d.ts +0 -9
  76. package/build/lib/commands/server-session.d.ts.map +0 -1
  77. package/build/lib/commands/server-session.js +0 -158
  78. package/build/lib/commands/server-session.js.map +0 -1
  79. package/build/lib/log-file.d.ts +0 -10
  80. package/build/lib/log-file.d.ts.map +0 -1
  81. package/build/lib/log-file.js +0 -86
  82. package/build/lib/log-file.js.map +0 -1
  83. package/build/lib/mcp/tools/context.d.ts +0 -4
  84. package/build/lib/mcp/tools/context.d.ts.map +0 -1
  85. package/build/lib/mcp/tools/context.js +0 -49
  86. package/build/lib/mcp/tools/context.js.map +0 -1
  87. package/build/lib/server/client.d.ts +0 -15
  88. package/build/lib/server/client.d.ts.map +0 -1
  89. package/build/lib/server/client.js +0 -169
  90. package/build/lib/server/client.js.map +0 -1
  91. package/build/lib/server/conditions.d.ts +0 -13
  92. package/build/lib/server/conditions.d.ts.map +0 -1
  93. package/build/lib/server/conditions.js +0 -71
  94. package/build/lib/server/conditions.js.map +0 -1
  95. package/build/lib/server/converter-bridge.d.ts +0 -26
  96. package/build/lib/server/converter-bridge.d.ts.map +0 -1
  97. package/build/lib/server/converter-bridge.js +0 -171
  98. package/build/lib/server/converter-bridge.js.map +0 -1
  99. package/build/lib/server/index.d.ts +0 -5
  100. package/build/lib/server/index.d.ts.map +0 -1
  101. package/build/lib/server/index.js +0 -25
  102. package/build/lib/server/index.js.map +0 -1
  103. package/build/lib/server/protocol.d.ts +0 -40
  104. package/build/lib/server/protocol.d.ts.map +0 -1
  105. package/build/lib/server/protocol.js +0 -3
  106. package/build/lib/server/protocol.js.map +0 -1
  107. package/build/lib/version.d.ts +0 -2
  108. package/build/lib/version.d.ts.map +0 -1
  109. package/build/lib/version.js +0 -20
  110. package/build/lib/version.js.map +0 -1
  111. package/scripts/postinstall.js +0 -39
package/package.json CHANGED
@@ -1,41 +1,36 @@
1
1
  {
2
2
  "name": "appium-desktop-driver",
3
- "version": "1.7.2-preview.1",
3
+ "version": "1.7.2",
4
4
  "description": "Appium driver for Windows",
5
5
  "keywords": [
6
6
  "appium",
7
7
  "desktop",
8
8
  "uiautomation",
9
+ "powershell",
9
10
  "automated testing",
10
11
  "windows",
11
- "verisoft",
12
- "desktop automation"
12
+ "verisoft"
13
13
  ],
14
14
  "main": "build/lib/driver.js",
15
- "files": [
16
- "build/lib/**/*",
17
- "native/win-x64/NovaUIAutomationServer.exe",
18
- "scripts/postinstall.js",
19
- "LICENSE",
20
- "README.md",
21
- "CHANGELOG.md"
22
- ],
23
15
  "bin": {
24
16
  "desktop-driver-mcp": "build/lib/mcp/index.js"
25
17
  },
26
18
  "scripts": {
27
19
  "build": "tsc -b",
28
- "build:native": "dotnet publish csharp/NovaUIAutomationServer/NovaUIAutomationServer.csproj -c Release -o native/win-x64/",
29
- "build:all": "npm run build:native && npm run build",
30
20
  "watch": "tsc -b --watch",
31
21
  "lint": "eslint .",
32
22
  "test": "npx vitest run",
33
23
  "test:e2e": "npx vitest run --config vitest.e2e.config.ts",
34
- "postinstall": "node scripts/postinstall.js",
35
24
  "mcp:start": "node build/lib/mcp/index.js",
36
25
  "pack:dist": "node scripts/pack-dist.js"
37
26
  },
38
- "author": "Automate The Planet",
27
+ "files": [
28
+ "build",
29
+ "LICENSE",
30
+ "node_modules",
31
+ "README.md"
32
+ ],
33
+ "author": "VeriSoft",
39
34
  "license": "Apache-2.0",
40
35
  "repository": {
41
36
  "type": "git",
@@ -52,8 +47,8 @@
52
47
  "@appium/base-driver": "^10.1.0",
53
48
  "@aws-sdk/client-bedrock-runtime": "^3.1035.0",
54
49
  "@modelcontextprotocol/sdk": "^1.27.1",
55
- "appium-chromedriver": "^8.3.1",
56
50
  "bezier-easing": "^2.1.0",
51
+ "ffmpeg-static": "^5.2.0",
57
52
  "koffi": "^2.14.1",
58
53
  "webdriverio": "^9.0.0",
59
54
  "xpath-analyzer": "^3.0.1",
@@ -80,7 +75,6 @@
80
75
  "semantic-release": "^25.0.1",
81
76
  "typescript": "^5.9.3",
82
77
  "typescript-eslint": "^8.46.1",
83
- "vitest": "^2.1.0",
84
- "webdriverio": "^9.0.0"
78
+ "vitest": "^2.1.0"
85
79
  }
86
80
  }
package/CHANGELOG.md DELETED
@@ -1,249 +0,0 @@
1
- ## [1.7.2-preview.1](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.7.1...v1.7.2-preview.1) (2026-05-27)
2
-
3
- ### Bug Fixes
4
-
5
- * **webview:** Chrome CDP context switching and window attachment bugs ([8fafd5b](https://github.com/verisoft-ai/appium-desktop-driver/commit/8fafd5b8de7265b7cdb0a9455926f1e8a2948898))
6
-
7
- ### Miscellaneous Chores
8
-
9
- * trigger publish on develop ([2e0123f](https://github.com/verisoft-ai/appium-desktop-driver/commit/2e0123faf5de734874f62fe16280b4e86557d7ac))
10
-
11
- ## [1.7.1](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.7.0...v1.7.1) (2026-05-23)
12
-
13
- ### Miscellaneous Chores
14
-
15
- * remove powershell insecure check - alway allow ([2225b79](https://github.com/verisoft-ai/appium-desktop-driver/commit/2225b79fc9972f0000ff6a3982b6f993506baca5))
16
-
17
- ## [1.7.0](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.6.1...v1.7.0) (2026-05-04)
18
-
19
- ### Features
20
-
21
- * add analyze_screen mcp tool ([5c6b998](https://github.com/verisoft-ai/appium-desktop-driver/commit/5c6b998ebde79caa9f05261f252be3fcba847edd))
22
- * lazy load mcp server ([16a1533](https://github.com/verisoft-ai/appium-desktop-driver/commit/16a15337daacf2a2088f9eb4ee548a5cb03dce71))
23
-
24
- ### Bug Fixes
25
-
26
- * remove last residuals of nova windows logs ([5b3627f](https://github.com/verisoft-ai/appium-desktop-driver/commit/5b3627fef8bb40d2cdb640f0956dfe5c254cfb57))
27
-
28
- ## [1.6.1](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.6.0...v1.6.1) (2026-04-23)
29
-
30
- ### Bug Fixes
31
-
32
- * check amazon user and key ([4f45cf1](https://github.com/verisoft-ai/appium-desktop-driver/commit/4f45cf1ad1a16a6d2412902be1dcfd8a899b1493))
33
- * **vision:** make model argument mandatory in find_by_vision and executeFindByVision ([2eee54c](https://github.com/verisoft-ai/appium-desktop-driver/commit/2eee54cfa7fec16975f7ad748fe3fa4462bc9709))
34
-
35
- ## [1.6.0](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.5.1...v1.6.0) (2026-04-15)
36
-
37
- ### Features
38
-
39
- * **vision:** add extra llm support for vision command. ([4055904](https://github.com/verisoft-ai/appium-desktop-driver/commit/40559042ff5e730e84a155c925da71834c220dcd))
40
-
41
- ### Bug Fixes
42
-
43
- * **vision:** address multi-provider review findings ([9c8a8ff](https://github.com/verisoft-ai/appium-desktop-driver/commit/9c8a8ff366bff7b3d9a047d3e09298f044d62aaf))
44
-
45
- ## [1.5.1](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.5.0...v1.5.1) (2026-04-13)
46
-
47
- ### Bug Fixes
48
-
49
- * **actions:** Action execution according to W3C definition. ([8c9019d](https://github.com/verisoft-ai/appium-desktop-driver/commit/8c9019dc39841ec7f61d8770042db72355975d5f))
50
- * fix json element rect unexpected end error ([8d1498f](https://github.com/verisoft-ai/appium-desktop-driver/commit/8d1498f3dc667e017e3f8ed4d409ec60e3fea72a))
51
- * fix release actions tracking pressed mouse buttons ([0309ab0](https://github.com/verisoft-ai/appium-desktop-driver/commit/0309ab0a06c33591bb1d36b23e2dcbdf688d1772))
52
- * **mouse move:** fix silent fail calculating mouse move after scroll into view. ([9e755eb](https://github.com/verisoft-ai/appium-desktop-driver/commit/9e755eb8c5d1ee475d85a8630bab6b583b2a5a8d))
53
- * **release key:** fix handle null key action not iterating over pressed keys ([db18fd8](https://github.com/verisoft-ai/appium-desktop-driver/commit/db18fd8b8884883dc241b2ce5ef104cde2bccf11))
54
-
55
- ## [1.5.0](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.4.3...v1.5.0) (2026-04-04)
56
-
57
- ### Features
58
-
59
- * add new command 'windows: findByVision' ([26c69aa](https://github.com/verisoft-ai/appium-desktop-driver/commit/26c69aaeed15ff94f9f469b1594bd640772fcf51))
60
- * **mcp:** add analyze_screen tool via agent loop ([0bcbf09](https://github.com/verisoft-ai/appium-desktop-driver/commit/0bcbf0952fbe267e1c2cdc4176dbb722e51cb591))
61
-
62
- ### Bug Fixes
63
-
64
- * account display scaling for precise pixel calculation in analyze_screenshot tool. ([611f345](https://github.com/verisoft-ai/appium-desktop-driver/commit/611f345c957de5361af0c06f0857352ab27ad5ed))
65
- * coordinate mapping with offset calculation ([c68bb4e](https://github.com/verisoft-ai/appium-desktop-driver/commit/c68bb4e7c34b4d39b3472da5ec5f6b566f15cf57))
66
- * correct stale error message in find_by_vision MCP tool ([c82e107](https://github.com/verisoft-ai/appium-desktop-driver/commit/c82e107f7e1b40297e84d34ca2f62ff7b117f669))
67
- * fix mock path vision test ([39b9386](https://github.com/verisoft-ai/appium-desktop-driver/commit/39b9386c80ddcc7ab595317ace4b1f1b9384f519))
68
- * ignore import/no-unresolved for @modelcontextprotocol/sdk subpaths ([688c68c](https://github.com/verisoft-ai/appium-desktop-driver/commit/688c68cdc6d7eb4bf3225dc29d01950b14f94e1d))
69
-
70
- ### Code Refactoring
71
-
72
- * **vision:** unify find_by_vision MCP tool and findByVision command ([276d86f](https://github.com/verisoft-ai/appium-desktop-driver/commit/276d86f68be5e501f4510617442968abcac4db87))
73
-
74
- ## [1.4.3](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.4.2...v1.4.3) (2026-03-26)
75
-
76
- ### Miscellaneous Chores
77
-
78
- * update website hero and footer attribution [skip ci] ([3a67147](https://github.com/verisoft-ai/appium-desktop-driver/commit/3a67147f89bc5f5400092ee7bc4083c55708dc4a))
79
-
80
- ### Code Refactoring
81
-
82
- * rename driver class from NovaWindowsDriver to AppiumDesktopDriver ([8a1eb39](https://github.com/verisoft-ai/appium-desktop-driver/commit/8a1eb393f48c7ee2d9fc5a17d7f262fa7e8ae596))
83
-
84
- ## [1.4.2](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.4.1...v1.4.2) (2026-03-24)
85
-
86
- ### Bug Fixes
87
-
88
- * lint ([9832a8e](https://github.com/verisoft-ai/appium-desktop-driver/commit/9832a8eaf025e96f619d4c1b342c3c0909dfb5fa))
89
-
90
- ### Miscellaneous Chores
91
-
92
- * **website:** create website with mcp and driver demos ([5e8e910](https://github.com/verisoft-ai/appium-desktop-driver/commit/5e8e910fc1e69de8a81ec18898b7f0dd28135af6))
93
-
94
- ## [1.4.1](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.4.0...v1.4.1) (2026-03-23)
95
-
96
- ### Bug Fixes
97
-
98
- * **mcp:** change mcp naming to match new Desktop Driver convention ([e77a7b0](https://github.com/verisoft-ai/appium-desktop-driver/commit/e77a7b02d4ed8769d61697c96c239bb03e3aef61))
99
-
100
- ## [1.4.0](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.3.1...v1.4.0) (2026-03-23)
101
-
102
- ### Features
103
-
104
- * **capability:** Add capabilities windowSwitchRetries and windowSwitchInterval ([a831b3a](https://github.com/verisoft-ai/appium-desktop-driver/commit/a831b3af5d8d531a41483f36391d631cd787c371))
105
- * custom env variables capabilities ([6a98b5c](https://github.com/verisoft-ai/appium-desktop-driver/commit/6a98b5c76bdfecf1ef6a893ea9c37abdd5e47c33))
106
- * **display:** add support for multi monitor testing ([1029aec](https://github.com/verisoft-ai/appium-desktop-driver/commit/1029aec97adb420e9525e1f325c64870dc51585c))
107
- * Implemented missing commands ([4434b99](https://github.com/verisoft-ai/appium-desktop-driver/commit/4434b996fa33cd0214c7cd44073f34806cd1c99f))
108
- * **mcp:** add MCP server with 39 tools and unit test suite ([cf3d464](https://github.com/verisoft-ai/appium-desktop-driver/commit/cf3d464d1b74efbdddb04aa16ff3a19e19564934))
109
-
110
- ### Bug Fixes
111
-
112
- * Add allowed tools to claude code reviewer ([c4c18e9](https://github.com/verisoft-ai/appium-desktop-driver/commit/c4c18e9f35915eb609e41572cb3c5ea15e3314a7))
113
- * add tabbing ([c0cb0e8](https://github.com/verisoft-ai/appium-desktop-driver/commit/c0cb0e8bb4fb37c9f70b8e891c659c56142c1943))
114
- * fix attaching to wrong application window ([8960843](https://github.com/verisoft-ai/appium-desktop-driver/commit/8960843d548c98728880c901b154215b6265b69e))
115
- * fix code review comments ([d7bebd9](https://github.com/verisoft-ai/appium-desktop-driver/commit/d7bebd9ff1660fd065a92e7008344c3b1323bd27))
116
- * **lint:** resolve lint errors ([5b72f12](https://github.com/verisoft-ai/appium-desktop-driver/commit/5b72f122472cdd4e563aa044b1baa2a52af7d10a))
117
- * **mcp:** resolve bugs, add tool annotations, and new UIA tools ([fd73365](https://github.com/verisoft-ai/appium-desktop-driver/commit/fd7336552264a52ad2dda8c28bee2afcf44050a6))
118
- * Remove claude code review workflow ([88f921d](https://github.com/verisoft-ai/appium-desktop-driver/commit/88f921d81ba9b81ff1578b2ac34c81d337670f30))
119
- * Remove outerloops ([92eedfa](https://github.com/verisoft-ai/appium-desktop-driver/commit/92eedfa5decf6125c0f688da2d4c3bcf896491d5))
120
- * replace NovaWindows automation name with DesktopDriver ([dd585b9](https://github.com/verisoft-ai/appium-desktop-driver/commit/dd585b9013fd5b128e10c42af86ca4e5f86f6934))
121
- * **window:** narrow appProcessIds to the attached window's PID ([d281444](https://github.com/verisoft-ai/appium-desktop-driver/commit/d2814445ab5248483d451f1817fbff67d30d7654))
122
- * **window:** track child processes spawned from launched apps. ([f1e6bff](https://github.com/verisoft-ai/appium-desktop-driver/commit/f1e6bfffe5bfcdebe884de207eabce8381c83a67))
123
- * **window:** window handles access capability added ([eefb804](https://github.com/verisoft-ai/appium-desktop-driver/commit/eefb8040b2ec43795b4c985e42090dad2fa2e6ae))
124
-
125
- ### Miscellaneous Chores
126
-
127
- * bump version to 1.1.0 ([393bdae](https://github.com/verisoft-ai/appium-desktop-driver/commit/393bdaeaa0070385a15a61affe88c059c8967c6a))
128
- * bump version to 1.2.0 ([94a4f04](https://github.com/verisoft-ai/appium-desktop-driver/commit/94a4f046be53c3b804497ad4e1d2782860e25070))
129
- * **claude:** Add constraints and context for claude code review ([e95c6b2](https://github.com/verisoft-ai/appium-desktop-driver/commit/e95c6b219f436dd030f4e7dd840713e651af9cb4))
130
- * **claude:** change constraints for claude code review ([3acee1c](https://github.com/verisoft-ai/appium-desktop-driver/commit/3acee1c1565b575e84f3b087aff6085b6b524229))
131
- * **npm:** Ignore build artifacts and local mcp/claude config ([c9d3529](https://github.com/verisoft-ai/appium-desktop-driver/commit/c9d3529cf1c259d36eaf82e64702fdd080463195))
132
- * prepare package for verisoft npm distribution ([5b35ff7](https://github.com/verisoft-ai/appium-desktop-driver/commit/5b35ff722d8254f24fea2bfe5112f4e0bddfc1e7))
133
- * **release:** bump version and re-added the auto release workflow ([8555903](https://github.com/verisoft-ai/appium-desktop-driver/commit/8555903c4b3038d11fe24c038ef83964f71a1710))
134
- * remove auto publish on push to main ([e940fd1](https://github.com/verisoft-ai/appium-desktop-driver/commit/e940fd1e4f20a505ea81dd668b4240abd2053d7f))
135
-
136
- ### Code Refactoring
137
-
138
- * **mcp:** remove auto-start, require Appium to be running externally ([8b76810](https://github.com/verisoft-ai/appium-desktop-driver/commit/8b76810041db68c960b3448173a8adca52679390))
139
-
140
- ## [1.3.1](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.3.0...v1.3.1) (2026-03-09)
141
-
142
- ### Bug Fixes
143
-
144
- * add stderr encoding for PowerShell session ([a233063](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a233063b4509e41c047fcc3603b29b944c5ac374))
145
- * fixed incorrect $pattern variable reference ([a0afceb](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a0afceb7e682219b5e82759c52e20c59bff1225f))
146
- * fixed not being able to attach to slow-starting classic apps on session creation ([f25b000](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/f25b000533be1ef2a7c0bc350bf62a3cd1b60a45))
147
-
148
- ## [1.3.0](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.2.0...v1.3.0) (2026-03-06)
149
-
150
- ### Features
151
-
152
- * **commands:** add extra W3C commands ([57c654a](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/57c654a1e1e43c8a5d31ed8103aba338883efaa9))
153
- * **commands:** add support for close app and launch app ([26db919](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/26db919c17ce74ff3c5ef2776544affecb32e2fc))
154
- * **commands:** implement waitForAppLaunch and forceQuit ([6cce956](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/6cce9565ce51b9f0e354b14819f41a6fc39ffc50))
155
- * **tests:** add unit tests and missing commands - recording, deletion and click and drag ([a8989c0](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a8989c06816b3f9b5b5de82d85895106ab062aca))
156
-
157
- ### Bug Fixes
158
-
159
- * Bind commands to this instance (not prototype) so each driver instance uses its own powershell session ([#56](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/56)) [skip ci] ([6dc2125](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/6dc2125c505b392f100036d532326202c0a9c8d4))
160
- * **capability:** fix post run script ([97b57af](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/97b57af2fe05803ecb66548b8a32202fbe9a45e6))
161
- * **commands:** add allow-insecure check for fs operations ([4662035](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/466203585796fe08fdb4b119991363246cb00dab))
162
- * **commands:** match closeApp and launchApp implementation with appium windows driver ([073c566](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/073c566edb3528380196640eb33ee803b4fe2029))
163
- * fix bugs and implemented end to end tests ([47efa4c](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/47efa4cf00fbac2e15e07e572cdf3e4453ec1020))
164
- * lint ([fb6ebc8](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/fb6ebc83b1ed5c0fd0c5230d2948d4f5cb156b17))
165
- * **lint:** lint ([acf7271](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/acf727179dfe1380d42a33a6d38f5175b22cb90d))
166
- * **recorder:** fix screen recording ([9da1025](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/9da1025c994cb0c3221119690f01a0584b3cf333))
167
- * **recorder:** validate outputPath before rimraf ([8aa49dd](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/8aa49dd27b2b9bb54329efa0555bb5ef21dc36b5))
168
-
169
- ### Miscellaneous Chores
170
-
171
- * **release:** 1.3.0 [skip ci] ([c29b822](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/c29b8223fc6f0435363d6207af0ab1185b811b60))
172
-
173
- ## [1.3.0](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.2.0...v1.3.0) (2026-03-06)
174
-
175
- ### Features
176
-
177
- * **commands:** add extra W3C commands ([57c654a](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/57c654a1e1e43c8a5d31ed8103aba338883efaa9))
178
- * **commands:** add support for close app and launch app ([26db919](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/26db919c17ce74ff3c5ef2776544affecb32e2fc))
179
- * **commands:** implement waitForAppLaunch and forceQuit ([6cce956](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/6cce9565ce51b9f0e354b14819f41a6fc39ffc50))
180
- * **tests:** add unit tests and missing commands - recording, deletion and click and drag ([a8989c0](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a8989c06816b3f9b5b5de82d85895106ab062aca))
181
-
182
- ### Bug Fixes
183
-
184
- * Bind commands to this instance (not prototype) so each driver instance uses its own powershell session ([#56](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/56)) [skip ci] ([6dc2125](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/6dc2125c505b392f100036d532326202c0a9c8d4))
185
- * **capability:** fix post run script ([97b57af](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/97b57af2fe05803ecb66548b8a32202fbe9a45e6))
186
- * **commands:** add allow-insecure check for fs operations ([4662035](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/466203585796fe08fdb4b119991363246cb00dab))
187
- * **commands:** match closeApp and launchApp implementation with appium windows driver ([073c566](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/073c566edb3528380196640eb33ee803b4fe2029))
188
- * fix bugs and implemented end to end tests ([47efa4c](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/47efa4cf00fbac2e15e07e572cdf3e4453ec1020))
189
- * lint ([fb6ebc8](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/fb6ebc83b1ed5c0fd0c5230d2948d4f5cb156b17))
190
- * **lint:** lint ([acf7271](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/acf727179dfe1380d42a33a6d38f5175b22cb90d))
191
- * **recorder:** fix screen recording ([9da1025](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/9da1025c994cb0c3221119690f01a0584b3cf333))
192
- * **recorder:** validate outputPath before rimraf ([8aa49dd](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/8aa49dd27b2b9bb54329efa0555bb5ef21dc36b5))
193
-
194
- ## [1.2.0](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.1.0...v1.2.0) (2026-01-09)
195
-
196
- ### Features
197
-
198
- * add "none" session option to start without attaching to any element ([22586a2](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/22586a237f20e975adee25c13fba8c649420574d))
199
- * add appWorkingDir, prerun, postrun, and isolatedScriptExecution capabilities ([5a581ae](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/5a581ae7ae1e1a013cb8e332454f70762f8749c7))
200
-
201
- ### Bug Fixes
202
-
203
- * allow elementId with optional x/y offsets for click/hover ([2d01246](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/2d01246e009e2c7fd67165fc1d313446870021d3))
204
- * **deps:** downgrade appium peer dependency to 3.0.0-rc.2 ([98262d2](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/98262d297268cf40259946e4a52038103618f3b4))
205
- * make modifierKeys case-insensitive ([7a05300](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/7a05300ef4a0792a9c1160dfab55537c96967f08))
206
- * update ESLint config ([2e08f8d](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/2e08f8d5a1df9bf277b2c521584dddb5b0935e72))
207
- * version bump ([a872a23](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a872a23fec5f10f692b9c61ba7f8d671f360211f))
208
-
209
- ### Miscellaneous Chores
210
-
211
- * add extra logging ([5da452f](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/5da452fa71608d3f52a92c7ea6f82a78ff3139a6))
212
- * bump peerDependency appium to ^3.1.0 ([cdee0ca](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/cdee0ca44a1423312351449b3227035976ba396f))
213
- * configure semantic-release branches for stable and preview releases ([a4a1fa2](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a4a1fa2b0b20c4494919699e8d307793cf18dc04))
214
- * remove unnecessary ESLint ignore comments ([4c70038](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/4c7003809c6b6668315ed7e036b5ee6cf3595e51))
215
- * upgrade dependencies and devDependencies to latest versions ([4fd016c](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/4fd016c5adc091305974b3a41c22423cadf6e3ab))
216
-
217
- ## [1.1.0](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.0.1...v1.1.0) (2025-08-06)
218
-
219
- ### Features
220
-
221
- * adding appArguments option ([#26](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/26)) ([ded917b](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/ded917bdf2f8d224cc9cf917958177ed0e97078b))
222
-
223
- ## [1.0.1](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.0.0...v1.0.1) (2025-04-25)
224
-
225
- ### Bug Fixes
226
-
227
- * fixed crash in Node 22+ by using Buffer instead of {} with EnumDisplaySettingsA ([#17](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/17)) ([08e4907](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/08e49070020f071f3983fcb00c30e9a3ae16b9dc))
228
- * set shouldCloseApp's default value to true ([#18](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/18)) ([28dc1d4](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/28dc1d443d416e9a44f4ddcd2fb31828e0b92bcb))
229
-
230
- ### Code Refactoring
231
-
232
- * remove unnecessary debug logging for name locator ([#19](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/19)) ([ad50be9](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/ad50be9f9b60145a2f203f294d326eb9499339fb))
233
-
234
- ## 1.0.0 (2025-04-23)
235
-
236
- ### Miscellaneous Chores
237
-
238
- * add .gitignore ([631fa0a](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/631fa0a72f5cda861215ff4d98ccc41c44d357f6))
239
- * adding eslint ([c05602d](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/c05602d1aaa7fa003394ec663302017a3027db82))
240
- * **ci:** add semantic-release workflow ([a9c39fd](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a9c39fdab2d361678445a523a2830ea9925c4f1f))
241
- * **lint:** fix linting issue ([6c2cb42](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/6c2cb42388a7f51842a1a5bd11905a9fe0e86ce9))
242
- * **npm:** disable package-lock generation ([5a648ac](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/5a648ac7f65fcfef66afd6bf76ce2188b10d4ce9))
243
- * **package:** add keywords and repository info ([fa165d0](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/fa165d007f6a424c0f11340b59ac73e1185091d8))
244
- * **release:** rollback version to 0.0.1 for testing ([#11](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/11)) ([c4dd2c2](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/c4dd2c21e3067f70a11d72206fbc7f5da79380b6))
245
- * updated dependencies [skip ci] ([08528fb](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/08528fb06727df50c087940fe541730a2a13483f))
246
-
247
- ### Code Refactoring
248
-
249
- * adding enums for click and updating ([89dcebf](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/89dcebfd026f7a68b4052f33fa2c928ba42162bf))
@@ -1,64 +0,0 @@
1
- import { AppiumDesktopDriver } from '../driver';
2
- export declare function getCurrentContext(this: AppiumDesktopDriver): Promise<string>;
3
- export declare function setContext(this: AppiumDesktopDriver, name?: string | null): Promise<void>;
4
- export declare function getContexts(this: AppiumDesktopDriver): Promise<string[]>;
5
- export interface WebViewDetails {
6
- /**
7
- * Web view details as returned by /json/version CDP endpoint
8
- * @example
9
- * {
10
- * "Browser": "Edg/145.0.3800.97",
11
- * "Protocol-Version": "1.3",
12
- * "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 Edg/145.0.0.0",
13
- * "V8-Version": "14.5.40.9",
14
- * "WebKit-Version": "537.36 (@f4c49d5241f148220b99eb7f045ac370a1694a15)",
15
- * "webSocketDebuggerUrl": "ws://localhost:10900/devtools/browser/7039e1b9-f75d-44eb-8583-7279c107bb18"
16
- * }
17
- */
18
- info?: CDPVersionResponse;
19
- /**
20
- * Web view details as returned by /json/list CDP endpoint
21
- * @example // TODO: change example to not include Spotify / use mock data
22
- * [ {
23
- * "description": "",
24
- * "devtoolsFrontendUrl": "https://chrome-devtools-frontend.appspot.com/serve_rev/@80be69ef794ba862ff256b0b23f051cbbc32e1ed/inspector.html?ws=localhost:9222/devtools/page/21C6035BC3E0A67D0BB6AE10F4A66D4A",
25
- * "faviconUrl": "https://xpui.app.spotify.com/favicon.ico",
26
- * "id": "21C6035BC3E0A67D0BB6AE10F4A66D4A",
27
- * "title": "Spotify - Web Player: Music for everyone",
28
- * "type": "page",
29
- * "url": "https://xpui.app.spotify.com/index.html",
30
- * "webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/21C6035BC3E0A67D0BB6AE10F4A66D4A"
31
- * }, {
32
- * "description": "",
33
- * "devtoolsFrontendUrl": "https://chrome-devtools-frontend.appspot.com/serve_rev/@80be69ef794ba862ff256b0b23f051cbbc32e1ed/inspector.html?ws=localhost:9222/devtools/page/7E7008B3C464CD91224ADF976115101F",
34
- * "id": "7E7008B3C464CD91224ADF976115101F",
35
- * "title": "",
36
- * "type": "worker",
37
- * "url": "",
38
- * "webSocketDebuggerUrl": "ws://localhost:10900/devtools/page/7E7008B3C464CD91224ADF976115101F"
39
- * } ]
40
- */
41
- pages?: CDPListResponse;
42
- }
43
- interface CDPVersionResponse {
44
- 'Browser': string;
45
- 'Protocol-Version': string;
46
- 'User-Agent': string;
47
- 'V8-Version': string;
48
- 'WebKit-Version': string;
49
- 'webSocketDebuggerUrl': string;
50
- }
51
- interface CDPListResponseEntry {
52
- 'description': string;
53
- 'devtoolsFrontendUrl': string;
54
- 'faviconUrl': string;
55
- 'id': string;
56
- 'title': string;
57
- 'type': string;
58
- 'url': string;
59
- 'webSocketDebuggerUrl': string;
60
- }
61
- type CDPListResponse = CDPListResponseEntry[];
62
- export declare function getWebViewDetails(this: AppiumDesktopDriver, waitForWebviewMs?: number): Promise<WebViewDetails>;
63
- export {};
64
- //# sourceMappingURL=contexts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../lib/commands/contexts.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAOhD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAElF;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE/F;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAM9E;AAED,MAAM,WAAW,cAAc;IAC3B;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAE1B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,UAAU,kBAAkB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,UAAU,oBAAoB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,KAAK,eAAe,GAAG,oBAAoB,EAAE,CAAC;AAE9C,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA2BrH"}
@@ -1,166 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getCurrentContext = getCurrentContext;
7
- exports.setContext = setContext;
8
- exports.getContexts = getContexts;
9
- exports.getWebViewDetails = getWebViewDetails;
10
- const appium_chromedriver_1 = require("appium-chromedriver");
11
- const support_1 = require("@appium/support");
12
- const node_path_1 = __importDefault(require("node:path"));
13
- const util_1 = require("../util");
14
- const base_driver_1 = require("@appium/base-driver");
15
- const NATIVE_APP = 'NATIVE_APP';
16
- const WEBVIEW = 'WEBVIEW';
17
- const WEBVIEW_BASE = `${WEBVIEW}_`;
18
- async function getCurrentContext() {
19
- return this.currentContext ??= NATIVE_APP;
20
- }
21
- async function setContext(name) {
22
- if (!name || name === NATIVE_APP) {
23
- this.chromedriver?.stop();
24
- this.chromedriver = null;
25
- this.jwpProxyActive = false;
26
- this.proxyReqRes = null;
27
- this.proxyCommand = null;
28
- this.currentContext = NATIVE_APP;
29
- return;
30
- }
31
- const webViewDetails = await this.getWebViewDetails();
32
- if (!(webViewDetails.pages ?? []).map((page) => page.id).includes(name.replace(WEBVIEW_BASE, ''))) {
33
- throw new base_driver_1.errors.InvalidArgumentError(`Web view not found: ${name}`);
34
- }
35
- const browser = webViewDetails.info?.Browser ?? '';
36
- const match = browser.match(/(Chrome|Edg)\/([\d.]+)/);
37
- if (!match?.[1] || (match[1] !== 'Edg' && match[1] !== 'Chrome')) {
38
- throw new base_driver_1.errors.InvalidArgumentError(`Unsupported browser type: ${match?.[1]}`);
39
- }
40
- const browserType = match[1] === 'Edg' ? 'Edge' : 'Chrome';
41
- const browserVersion = match?.[2] ?? '';
42
- const DRIVER_VERSION_REGEX = /^\d+(\.\d+){3}$/;
43
- if (!DRIVER_VERSION_REGEX.test(browserVersion)) {
44
- throw new base_driver_1.errors.InvalidArgumentError(`Invalid browser version: ${browserVersion}`);
45
- }
46
- this.log.debug(`Type: ${browserType}, Version: ${browserVersion}`);
47
- const executable = await getDriverExecutable.call(this, browserType, browserVersion);
48
- const chromedriverOpts = {
49
- executable,
50
- details: webViewDetails,
51
- };
52
- if (this.basePath) {
53
- chromedriverOpts.reqBasePath = this.basePath;
54
- }
55
- const cd = new appium_chromedriver_1.Chromedriver(chromedriverOpts);
56
- this.chromedriver = cd;
57
- const page = webViewDetails.pages?.find((p) => p.id === name.replace(WEBVIEW_BASE, ''));
58
- const debuggerAddress = (page?.webSocketDebuggerUrl ?? '')
59
- .replace('ws://', '')
60
- .split('/')[0];
61
- const options = { debuggerAddress };
62
- const caps = {
63
- 'ms:edgeOptions': options,
64
- 'goog:chromeOptions': options,
65
- };
66
- this.currentContext = name;
67
- await this.chromedriver.start(caps);
68
- this.log.debug('Chromedriver started. Session ID:', cd.sessionId());
69
- this.proxyReqRes = this.chromedriver.proxyReq.bind(this.chromedriver);
70
- this.proxyCommand = this.chromedriver.jwproxy.command.bind(this.chromedriver.jwproxy);
71
- this.jwpProxyActive = true;
72
- }
73
- async function getContexts() {
74
- const webViewDetails = await this.getWebViewDetails();
75
- return [
76
- NATIVE_APP,
77
- ...(webViewDetails.pages?.map((page) => `${WEBVIEW_BASE}${page.id}`) ?? []),
78
- ];
79
- }
80
- async function getWebViewDetails(waitForWebviewMs) {
81
- if (!this.caps.webviewEnabled) {
82
- throw new base_driver_1.errors.InvalidArgumentError('WebView support is not enabled. Please set the "enableWebView" capability to true and try again.');
83
- }
84
- this.log.debug(`Getting a list of available webviews`);
85
- const waitMs = waitForWebviewMs ? Number(waitForWebviewMs) : 0;
86
- if (waitMs) {
87
- this.log.debug(`waiting for ${waitMs} ms`);
88
- await (0, util_1.sleep)(waitMs);
89
- }
90
- const host = 'localhost';
91
- if ((this.caps.app === 'none' || this.caps.app === 'root' || this.caps.appTopLevelWindow != null) && this.caps.webviewDevtoolsPort == null) {
92
- throw new base_driver_1.errors.InvalidArgumentError(`Capability "webviewDevtoolsPort" must be set when using "none", "root", or "appTopLevelWindow" with "enableWebView"`);
93
- }
94
- const port = this.webviewDevtoolsPort ??= this.caps.webviewDevtoolsPort ?? null;
95
- const info = await util_1.cdpRequest.call(this, ({ host, port, endpoint: '/json/version', timeout: 10000 })).catch(() => undefined);
96
- const pages = await util_1.cdpRequest.call(this, ({ host, port, endpoint: '/json/list', timeout: 10000 })).catch(() => undefined);
97
- const webViewDetails = { info, pages };
98
- return webViewDetails;
99
- }
100
- async function getDriverExecutable(browserType, browserVersion) {
101
- let driverType;
102
- if (browserType === 'Chrome') {
103
- driverType = 'chromedriver';
104
- }
105
- else {
106
- driverType = 'edgedriver';
107
- }
108
- const root = support_1.node.getModuleRootSync(util_1.MODULE_NAME, __filename);
109
- if (!root) {
110
- throw new base_driver_1.errors.InvalidArgumentError(`Cannot find the root folder of the ${util_1.MODULE_NAME} Node.js module`);
111
- }
112
- const driverDir = node_path_1.default.join(root, driverType);
113
- if (!(await support_1.fs.exists(driverDir))) {
114
- await support_1.fs.mkdir(driverDir);
115
- }
116
- const fileName = browserType === 'Edge' ? 'msedgedriver.exe' : 'chromedriver.exe';
117
- const finalPath = node_path_1.default.join(driverDir, browserVersion, fileName);
118
- if (await support_1.fs.exists(finalPath)) {
119
- return finalPath;
120
- }
121
- const executablePath = browserType === 'Edge'
122
- ? this.caps.edgedriverExecutablePath
123
- : this.caps.chromedriverExecutablePath;
124
- if (executablePath) {
125
- const exists = await support_1.fs.exists(executablePath);
126
- if (!exists) {
127
- throw new base_driver_1.errors.InvalidArgumentError(`Driver executable not found at path: ${executablePath}`);
128
- }
129
- this.log.debug(`Using local ${browserType} driver executable at ${executablePath}. ` +
130
- `Automatic download is disabled and CDN URLs are ignored. ` +
131
- `You must ensure this binary matches the WebView/Chromium version (${browserVersion}).`);
132
- return executablePath;
133
- }
134
- const arch = await support_1.system.arch();
135
- const zipFilename = `${driverType}${browserType === 'Edge' ? '_' : '-'}win${arch}.zip`;
136
- const CHROME_BASE_URL = this.caps.chromedriverCdnUrl || 'https://storage.googleapis.com/chrome-for-testing-public';
137
- const EDGE_BASE_URL = this.caps.edgedriverCdnUrl || 'https://msedgedriver.microsoft.com';
138
- let downloadUrl = '';
139
- if (browserType === 'Chrome') {
140
- const url = new URL(CHROME_BASE_URL);
141
- url.pathname = node_path_1.default.posix.join(url.pathname, browserVersion, `win${arch}`, zipFilename);
142
- downloadUrl = url.toString();
143
- }
144
- else {
145
- const url = new URL(EDGE_BASE_URL);
146
- url.pathname = node_path_1.default.posix.join(url.pathname, browserVersion, zipFilename);
147
- downloadUrl = url.toString();
148
- }
149
- this.log.debug(`Downloading ${browserType} driver version ${browserVersion}...`);
150
- const tmpRoot = await support_1.tempDir.openDir();
151
- await (0, util_1.downloadFile)(downloadUrl, tmpRoot);
152
- try {
153
- await support_1.zip.extractAllTo(node_path_1.default.join(tmpRoot, zipFilename), tmpRoot);
154
- const driverPath = await support_1.fs.walkDir(tmpRoot, true, (itemPath, isDirectory) => !isDirectory && node_path_1.default.parse(itemPath).base.toLowerCase() === fileName);
155
- if (!driverPath) {
156
- throw new base_driver_1.errors.UnknownError(`The archive was unzipped properly, but did not find any ${driverType} executable.`);
157
- }
158
- this.log.debug(`Moving the extracted '${fileName}' to '${finalPath}'`);
159
- await support_1.fs.mv(driverPath, finalPath, { mkdirp: true });
160
- }
161
- finally {
162
- await support_1.fs.rimraf(tmpRoot);
163
- }
164
- return finalPath;
165
- }
166
- //# sourceMappingURL=contexts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../lib/commands/contexts.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { AppiumDesktopDriver } from '../driver';
2
- export declare function startServerSession(this: AppiumDesktopDriver): Promise<void>;
3
- /**
4
- * Attempts to attach to an already-running instance of the given app.
5
- * Returns true if successfully attached, false if no running process found.
6
- */
7
- export declare function tryAttachToRunningApp(this: AppiumDesktopDriver, appPath: string): Promise<boolean>;
8
- export declare function terminateServerSession(this: AppiumDesktopDriver): Promise<void>;
9
- //# sourceMappingURL=server-session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-session.d.ts","sourceRoot":"","sources":["../../../lib/commands/server-session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAUhD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2GjF;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkCxG;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CASrF"}