@epsilon-asi/actors 0.0.21 → 0.0.32

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 (198) hide show
  1. package/dist/browser/RuntimeConfig.d.ts +26 -0
  2. package/dist/browser/RuntimeConfig.d.ts.map +1 -1
  3. package/dist/browser/RuntimeConfig.js +29 -1
  4. package/dist/browser/RuntimeConfig.js.map +1 -1
  5. package/dist/core/ActorContext.d.ts +2 -0
  6. package/dist/core/ActorContext.d.ts.map +1 -1
  7. package/dist/core/ActorRunner.d.ts +3 -0
  8. package/dist/core/ActorRunner.d.ts.map +1 -1
  9. package/dist/core/ActorRunner.js +11 -1
  10. package/dist/core/ActorRunner.js.map +1 -1
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +2 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/native/CompositeNativeWindowDriver.d.ts +11 -0
  16. package/dist/native/CompositeNativeWindowDriver.d.ts.map +1 -0
  17. package/dist/native/CompositeNativeWindowDriver.js +31 -0
  18. package/dist/native/CompositeNativeWindowDriver.js.map +1 -0
  19. package/dist/native/NativeActionRegistry.d.ts +14 -0
  20. package/dist/native/NativeActionRegistry.d.ts.map +1 -0
  21. package/dist/native/NativeActionRegistry.js +101 -0
  22. package/dist/native/NativeActionRegistry.js.map +1 -0
  23. package/dist/native/NativeAutomation.d.ts +3 -0
  24. package/dist/native/NativeAutomation.d.ts.map +1 -0
  25. package/dist/native/NativeAutomation.js +12 -0
  26. package/dist/native/NativeAutomation.js.map +1 -0
  27. package/dist/native/NativeCoordinateMapper.d.ts +23 -0
  28. package/dist/native/NativeCoordinateMapper.d.ts.map +1 -0
  29. package/dist/native/NativeCoordinateMapper.js +201 -0
  30. package/dist/native/NativeCoordinateMapper.js.map +1 -0
  31. package/dist/native/NativeFileDialogService.d.ts +26 -0
  32. package/dist/native/NativeFileDialogService.d.ts.map +1 -0
  33. package/dist/native/NativeFileDialogService.js +121 -0
  34. package/dist/native/NativeFileDialogService.js.map +1 -0
  35. package/dist/native/NativeImageFinder.d.ts +12 -0
  36. package/dist/native/NativeImageFinder.d.ts.map +1 -0
  37. package/dist/native/NativeImageFinder.js +29 -0
  38. package/dist/native/NativeImageFinder.js.map +1 -0
  39. package/dist/native/NativeKeyboard.d.ts +10 -0
  40. package/dist/native/NativeKeyboard.d.ts.map +1 -0
  41. package/dist/native/NativeKeyboard.js +16 -0
  42. package/dist/native/NativeKeyboard.js.map +1 -0
  43. package/dist/native/NativeMouse.d.ts +38 -0
  44. package/dist/native/NativeMouse.d.ts.map +1 -0
  45. package/dist/native/NativeMouse.js +82 -0
  46. package/dist/native/NativeMouse.js.map +1 -0
  47. package/dist/native/NativeWindowService.d.ts +31 -0
  48. package/dist/native/NativeWindowService.d.ts.map +1 -0
  49. package/dist/native/NativeWindowService.js +183 -0
  50. package/dist/native/NativeWindowService.js.map +1 -0
  51. package/dist/native/UnsupportedNativeAutomation.d.ts +4 -0
  52. package/dist/native/UnsupportedNativeAutomation.d.ts.map +1 -0
  53. package/dist/native/UnsupportedNativeAutomation.js +77 -0
  54. package/dist/native/UnsupportedNativeAutomation.js.map +1 -0
  55. package/dist/native/WindowMatcher.d.ts +4 -0
  56. package/dist/native/WindowMatcher.d.ts.map +1 -0
  57. package/dist/native/WindowMatcher.js +39 -0
  58. package/dist/native/WindowMatcher.js.map +1 -0
  59. package/dist/native/drivers.d.ts +37 -0
  60. package/dist/native/drivers.d.ts.map +1 -0
  61. package/dist/native/drivers.js +2 -0
  62. package/dist/native/drivers.js.map +1 -0
  63. package/dist/native/errors.d.ts +23 -0
  64. package/dist/native/errors.d.ts.map +1 -0
  65. package/dist/native/errors.js +45 -0
  66. package/dist/native/errors.js.map +1 -0
  67. package/dist/native/index.d.ts +13 -0
  68. package/dist/native/index.d.ts.map +1 -0
  69. package/dist/native/index.js +13 -0
  70. package/dist/native/index.js.map +1 -0
  71. package/dist/native/macos/MacOSAccessibilityWindowDriver.d.ts +11 -0
  72. package/dist/native/macos/MacOSAccessibilityWindowDriver.d.ts.map +1 -0
  73. package/dist/native/macos/MacOSAccessibilityWindowDriver.js +180 -0
  74. package/dist/native/macos/MacOSAccessibilityWindowDriver.js.map +1 -0
  75. package/dist/native/macos/MacOSAppleScriptClient.d.ts +24 -0
  76. package/dist/native/macos/MacOSAppleScriptClient.d.ts.map +1 -0
  77. package/dist/native/macos/MacOSAppleScriptClient.js +163 -0
  78. package/dist/native/macos/MacOSAppleScriptClient.js.map +1 -0
  79. package/dist/native/macos/MacOSFileDialogAccessibilityStrategy.d.ts +10 -0
  80. package/dist/native/macos/MacOSFileDialogAccessibilityStrategy.d.ts.map +1 -0
  81. package/dist/native/macos/MacOSFileDialogAccessibilityStrategy.js +12 -0
  82. package/dist/native/macos/MacOSFileDialogAccessibilityStrategy.js.map +1 -0
  83. package/dist/native/macos/MacOSNativeAutomation.d.ts +3 -0
  84. package/dist/native/macos/MacOSNativeAutomation.d.ts.map +1 -0
  85. package/dist/native/macos/MacOSNativeAutomation.js +88 -0
  86. package/dist/native/macos/MacOSNativeAutomation.js.map +1 -0
  87. package/dist/native/nut/NutNativeImageFinder.d.ts +17 -0
  88. package/dist/native/nut/NutNativeImageFinder.d.ts.map +1 -0
  89. package/dist/native/nut/NutNativeImageFinder.js +84 -0
  90. package/dist/native/nut/NutNativeImageFinder.js.map +1 -0
  91. package/dist/native/nut/NutNativeKeyboardDriver.d.ts +8 -0
  92. package/dist/native/nut/NutNativeKeyboardDriver.d.ts.map +1 -0
  93. package/dist/native/nut/NutNativeKeyboardDriver.js +39 -0
  94. package/dist/native/nut/NutNativeKeyboardDriver.js.map +1 -0
  95. package/dist/native/nut/NutNativeMouseDriver.d.ts +8 -0
  96. package/dist/native/nut/NutNativeMouseDriver.d.ts.map +1 -0
  97. package/dist/native/nut/NutNativeMouseDriver.js +24 -0
  98. package/dist/native/nut/NutNativeMouseDriver.js.map +1 -0
  99. package/dist/native/nut/NutNativeScreenDriver.d.ts +6 -0
  100. package/dist/native/nut/NutNativeScreenDriver.d.ts.map +1 -0
  101. package/dist/native/nut/NutNativeScreenDriver.js +12 -0
  102. package/dist/native/nut/NutNativeScreenDriver.js.map +1 -0
  103. package/dist/native/nut/NutNativeWindowDriver.d.ts +6 -0
  104. package/dist/native/nut/NutNativeWindowDriver.d.ts.map +1 -0
  105. package/dist/native/nut/NutNativeWindowDriver.js +53 -0
  106. package/dist/native/nut/NutNativeWindowDriver.js.map +1 -0
  107. package/dist/native/nut/loadNut.d.ts +58 -0
  108. package/dist/native/nut/loadNut.d.ts.map +1 -0
  109. package/dist/native/nut/loadNut.js +25 -0
  110. package/dist/native/nut/loadNut.js.map +1 -0
  111. package/dist/native/types.d.ts +194 -0
  112. package/dist/native/types.d.ts.map +1 -0
  113. package/dist/native/types.js +2 -0
  114. package/dist/native/types.js.map +1 -0
  115. package/dist/native/utils/appleScriptEscape.d.ts +7 -0
  116. package/dist/native/utils/appleScriptEscape.d.ts.map +1 -0
  117. package/dist/native/utils/appleScriptEscape.js +11 -0
  118. package/dist/native/utils/appleScriptEscape.js.map +1 -0
  119. package/dist/native/utils/geometry.d.ts +12 -0
  120. package/dist/native/utils/geometry.d.ts.map +1 -0
  121. package/dist/native/utils/geometry.js +77 -0
  122. package/dist/native/utils/geometry.js.map +1 -0
  123. package/dist/native/utils/redactNative.d.ts +2 -0
  124. package/dist/native/utils/redactNative.d.ts.map +1 -0
  125. package/dist/native/utils/redactNative.js +7 -0
  126. package/dist/native/utils/redactNative.js.map +1 -0
  127. package/dist/native/utils/waitFor.d.ts +7 -0
  128. package/dist/native/utils/waitFor.d.ts.map +1 -0
  129. package/dist/native/utils/waitFor.js +17 -0
  130. package/dist/native/utils/waitFor.js.map +1 -0
  131. package/dist/sites/upwork-com/upwork-com.actor.d.ts +4 -1
  132. package/dist/sites/upwork-com/upwork-com.actor.d.ts.map +1 -1
  133. package/dist/sites/upwork-com/upwork-com.actor.js +30 -12
  134. package/dist/sites/upwork-com/upwork-com.actor.js.map +1 -1
  135. package/dist/sites/upwork-com/upwork-com.types.d.ts +3 -1
  136. package/dist/sites/upwork-com/upwork-com.types.d.ts.map +1 -1
  137. package/dist/sites/upwork-com/upwork-com.types.js.map +1 -1
  138. package/dist/sites/upwork-com/util/parseJobApplicationDetails.d.ts +70 -0
  139. package/dist/sites/upwork-com/util/parseJobApplicationDetails.d.ts.map +1 -0
  140. package/dist/sites/upwork-com/util/parseJobApplicationDetails.js +334 -0
  141. package/dist/sites/upwork-com/util/parseJobApplicationDetails.js.map +1 -0
  142. package/dist/sites/upwork-com/util/scrapeJobListing.d.ts +1 -0
  143. package/dist/sites/upwork-com/util/scrapeJobListing.d.ts.map +1 -1
  144. package/dist/sites/upwork-com/util/scrapeJobListing.js +4 -0
  145. package/dist/sites/upwork-com/util/scrapeJobListing.js.map +1 -1
  146. package/package.json +5 -1
  147. package/src/browser/RuntimeConfig.ts +57 -1
  148. package/src/core/ActorContext.ts +2 -0
  149. package/src/core/ActorRunner.ts +13 -1
  150. package/src/index.ts +2 -0
  151. package/src/native/CompositeNativeWindowDriver.ts +30 -0
  152. package/src/native/NativeActionRegistry.ts +114 -0
  153. package/src/native/NativeAutomation.ts +15 -0
  154. package/src/native/NativeCoordinateMapper.ts +258 -0
  155. package/src/native/NativeFileDialogService.ts +138 -0
  156. package/src/native/NativeImageFinder.ts +33 -0
  157. package/src/native/NativeKeyboard.ts +18 -0
  158. package/src/native/NativeMouse.ts +116 -0
  159. package/src/native/NativeWindowService.ts +229 -0
  160. package/src/native/UnsupportedNativeAutomation.ts +92 -0
  161. package/src/native/WindowMatcher.ts +31 -0
  162. package/src/native/drivers.ts +38 -0
  163. package/src/native/errors.ts +51 -0
  164. package/src/native/index.ts +12 -0
  165. package/src/native/macos/MacOSAccessibilityWindowDriver.ts +183 -0
  166. package/src/native/macos/MacOSAppleScriptClient.ts +182 -0
  167. package/src/native/macos/MacOSFileDialogAccessibilityStrategy.ts +11 -0
  168. package/src/native/macos/MacOSNativeAutomation.ts +86 -0
  169. package/src/native/nut/NutNativeImageFinder.ts +98 -0
  170. package/src/native/nut/NutNativeKeyboardDriver.ts +38 -0
  171. package/src/native/nut/NutNativeMouseDriver.ts +27 -0
  172. package/src/native/nut/NutNativeScreenDriver.ts +14 -0
  173. package/src/native/nut/NutNativeWindowDriver.ts +61 -0
  174. package/src/native/nut/loadNut.ts +86 -0
  175. package/src/native/types.ts +224 -0
  176. package/src/native/utils/appleScriptEscape.ts +11 -0
  177. package/src/native/utils/geometry.ts +88 -0
  178. package/src/native/utils/redactNative.ts +6 -0
  179. package/src/native/utils/waitFor.ts +25 -0
  180. package/src/sites/upwork-com/upwork-com.actor.ts +46 -15
  181. package/src/sites/upwork-com/upwork-com.types.ts +4 -1
  182. package/src/sites/upwork-com/util/parseJobApplicationDetails.ts +622 -0
  183. package/src/sites/upwork-com/util/scrapeJobListing.ts +4 -3
  184. package/tests/fixtures/makeContext.ts +7 -2
  185. package/tests/fixtures/native/FakeNativeAutomation.ts +138 -0
  186. package/tests/unit/browser/RuntimeConfig.native.test.ts +63 -0
  187. package/tests/unit/core/ActorRunner.native.test.ts +69 -0
  188. package/tests/unit/native/MacOSAppleScriptClient.test.ts +35 -0
  189. package/tests/unit/native/NativeActionRegistry.test.ts +34 -0
  190. package/tests/unit/native/NativeCoordinateMapper.test.ts +92 -0
  191. package/tests/unit/native/NativeFileDialogService.test.ts +91 -0
  192. package/tests/unit/native/NativeMouse.test.ts +91 -0
  193. package/tests/unit/native/NativeWindowService.test.ts +87 -0
  194. package/tests/unit/native/WindowMatcher.test.ts +32 -0
  195. package/tests/unit/native/appleScriptEscape.test.ts +9 -0
  196. package/tests/unit/sites/myvistage-com.login.test.ts +1 -1
  197. package/tests/unit/sites/myvistage-com.postComment.test.ts +0 -1
  198. package/tests/unit/sites/upwork-com.login.test.ts +1 -1
@@ -0,0 +1,183 @@
1
+ import { NativeAutomationError, NativeWindowNotFoundError } from './errors.js';
2
+ import { matchesWindow, matcherToString } from './WindowMatcher.js';
3
+ import { centerOf, visibleEnough } from './utils/geometry.js';
4
+ import { waitFor } from './utils/waitFor.js';
5
+ export class DefaultNativeWindowService {
6
+ deps;
7
+ defaultTimeoutMs;
8
+ constructor(deps) {
9
+ this.deps = deps;
10
+ this.defaultTimeoutMs = deps.defaultTimeoutMs ?? 15_000;
11
+ }
12
+ async list() {
13
+ const handles = await this.deps.driver.list();
14
+ return Promise.all(handles.map(handle => handle.info()));
15
+ }
16
+ async find(matcher, options = {}) {
17
+ if (options.timeoutMs !== undefined && options.timeoutMs > 0) {
18
+ try {
19
+ return await this.waitFor(matcher, options);
20
+ }
21
+ catch (error) {
22
+ if (error instanceof NativeWindowNotFoundError)
23
+ return null;
24
+ throw error;
25
+ }
26
+ }
27
+ const handle = await this.findHandle(matcher);
28
+ return handle === null ? null : handle.info();
29
+ }
30
+ async waitFor(matcher, options = {}) {
31
+ try {
32
+ const handle = await this.waitForHandle(matcher, options);
33
+ return handle.info();
34
+ }
35
+ catch (error) {
36
+ if (error instanceof NativeWindowNotFoundError)
37
+ throw error;
38
+ throw new NativeWindowNotFoundError({ matcher: matcherToString(matcher), cause: error });
39
+ }
40
+ }
41
+ async isOpen(matcher) {
42
+ return (await this.findHandle(matcher)) !== null;
43
+ }
44
+ async focus(matcher) {
45
+ const handle = await this.waitForHandle(matcher);
46
+ const before = await handle.info();
47
+ if (before.isMinimized === true) {
48
+ await handle.restore();
49
+ }
50
+ await handle.focus();
51
+ return this.refreshHandleInfo(handle);
52
+ }
53
+ async ensureInView(matcher, options = {}) {
54
+ const restore = options.restore ?? true;
55
+ const focus = options.focus ?? true;
56
+ const moveIntoPrimaryDisplay = options.moveIntoPrimaryDisplay ?? true;
57
+ const minimumVisibleWidth = options.minimumVisibleWidth ?? 100;
58
+ const minimumVisibleHeight = options.minimumVisibleHeight ?? 80;
59
+ const handle = await this.waitForHandle(matcher, options);
60
+ let info = await handle.info();
61
+ if (restore && info.isMinimized === true) {
62
+ await handle.restore();
63
+ info = await handle.info();
64
+ }
65
+ if (focus) {
66
+ await handle.focus();
67
+ info = await handle.info();
68
+ }
69
+ if (moveIntoPrimaryDisplay) {
70
+ const primaryDisplay = {
71
+ x: 0,
72
+ y: 0,
73
+ width: await this.deps.screen.width(),
74
+ height: await this.deps.screen.height()
75
+ };
76
+ if (!visibleEnough(info.region, primaryDisplay, minimumVisibleWidth, minimumVisibleHeight)) {
77
+ const target = {
78
+ x: Math.max(0, Math.min(info.region.x, Math.max(0, primaryDisplay.width - info.region.width))),
79
+ y: Math.max(0, Math.min(info.region.y, Math.max(0, primaryDisplay.height - info.region.height)))
80
+ };
81
+ await handle.move(target);
82
+ info = await handle.info();
83
+ }
84
+ }
85
+ return info;
86
+ }
87
+ async setFullscreen(matcher, fullscreen, options = {}) {
88
+ const handle = await this.waitForHandle(matcher, options);
89
+ const info = await handle.info();
90
+ if (info.isFullscreen === fullscreen) {
91
+ return;
92
+ }
93
+ if (handle.setFullscreen !== undefined) {
94
+ await handle.setFullscreen(fullscreen);
95
+ return;
96
+ }
97
+ if (handle.toggleFullscreen !== undefined) {
98
+ await handle.toggleFullscreen();
99
+ return;
100
+ }
101
+ if ((options.strategy ?? 'auto') !== 'accessibility' && this.deps.images !== undefined && this.deps.mouse !== undefined && options.fullscreenButtonTemplate !== undefined) {
102
+ await this.clickWindowButtonTemplate(info.region, options.fullscreenButtonTemplate, options);
103
+ return;
104
+ }
105
+ throw new NativeAutomationError('Window fullscreen control is unavailable for the matched window.', {
106
+ matcher: matcherToString(matcher),
107
+ strategy: options.strategy ?? 'auto'
108
+ });
109
+ }
110
+ async toggleFullscreen(matcher, options = {}) {
111
+ const handle = await this.waitForHandle(matcher, options);
112
+ const info = await handle.info();
113
+ if (handle.toggleFullscreen !== undefined) {
114
+ await handle.toggleFullscreen();
115
+ return;
116
+ }
117
+ if (handle.setFullscreen !== undefined && info.isFullscreen !== undefined) {
118
+ await handle.setFullscreen(!info.isFullscreen);
119
+ return;
120
+ }
121
+ if ((options.strategy ?? 'auto') !== 'accessibility' && this.deps.images !== undefined && this.deps.mouse !== undefined && options.fullscreenButtonTemplate !== undefined) {
122
+ await this.clickWindowButtonTemplate(info.region, options.fullscreenButtonTemplate, options);
123
+ return;
124
+ }
125
+ throw new NativeAutomationError('Window fullscreen toggle is unavailable for the matched window.', {
126
+ matcher: matcherToString(matcher),
127
+ strategy: options.strategy ?? 'auto'
128
+ });
129
+ }
130
+ async minimize(matcher) {
131
+ const handle = await this.waitForHandle(matcher);
132
+ await handle.minimize();
133
+ }
134
+ async restore(matcher) {
135
+ const handle = await this.waitForHandle(matcher);
136
+ await handle.restore();
137
+ }
138
+ async findHandle(matcher) {
139
+ const handles = await this.deps.driver.list();
140
+ for (const handle of handles) {
141
+ const info = await handle.info();
142
+ if (matchesWindow(info, matcher)) {
143
+ return handle;
144
+ }
145
+ }
146
+ return null;
147
+ }
148
+ async waitForHandle(matcher, options = {}) {
149
+ try {
150
+ return await waitFor(() => this.findHandle(matcher), {
151
+ timeoutMs: options.timeoutMs ?? this.defaultTimeoutMs,
152
+ intervalMs: options.intervalMs ?? 100,
153
+ description: `native window (${matcherToString(matcher)})`
154
+ });
155
+ }
156
+ catch (error) {
157
+ throw new NativeWindowNotFoundError({ matcher: matcherToString(matcher), cause: error });
158
+ }
159
+ }
160
+ async refreshHandleInfo(handle) {
161
+ return handle.info();
162
+ }
163
+ async clickWindowButtonTemplate(region, template, options) {
164
+ if (this.deps.images === undefined || this.deps.mouse === undefined) {
165
+ throw new NativeAutomationError('Visual window button strategy requires image finder and native mouse dependencies.');
166
+ }
167
+ const padding = options.searchRegionPaddingPx ?? 96;
168
+ const searchRegion = {
169
+ x: region.x,
170
+ y: region.y,
171
+ width: Math.min(region.width, padding),
172
+ height: Math.min(region.height, padding)
173
+ };
174
+ const imageOptions = { searchRegion };
175
+ if (options.timeoutMs !== undefined)
176
+ imageOptions.timeoutMs = options.timeoutMs;
177
+ if (options.intervalMs !== undefined)
178
+ imageOptions.intervalMs = options.intervalMs;
179
+ const match = await this.deps.images.waitForTemplate(template, imageOptions);
180
+ await this.deps.mouse.click(centerOf(match.region));
181
+ }
182
+ }
183
+ //# sourceMappingURL=NativeWindowService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeWindowService.js","sourceRoot":"","sources":["../../src/native/NativeWindowService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { NativeAutomation } from './types.js';
2
+ import type { Logger } from '../logging/Logger.js';
3
+ export declare function createUnsupportedNativeAutomation(platform: NodeJS.Platform, logger: Logger): NativeAutomation;
4
+ //# sourceMappingURL=UnsupportedNativeAutomation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsupportedNativeAutomation.d.ts","sourceRoot":"","sources":["../../src/native/UnsupportedNativeAutomation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,gBAAgB,EAkBjB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAmDnD,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAc7G"}
@@ -0,0 +1,77 @@
1
+ import { DefaultNativeActionRegistry, registerDefaultNativeActions } from './NativeActionRegistry.js';
2
+ import { UnsupportedPlatformError } from './errors.js';
3
+ class UnsupportedNativeWindowService {
4
+ platform;
5
+ constructor(platform) {
6
+ this.platform = platform;
7
+ }
8
+ async list() { throw new UnsupportedPlatformError(this.platform); }
9
+ async find(_matcher, _options) { throw new UnsupportedPlatformError(this.platform); }
10
+ async waitFor(_matcher, _options) { throw new UnsupportedPlatformError(this.platform); }
11
+ async isOpen(_matcher) { throw new UnsupportedPlatformError(this.platform); }
12
+ async focus(_matcher) { throw new UnsupportedPlatformError(this.platform); }
13
+ async ensureInView(_matcher) { throw new UnsupportedPlatformError(this.platform); }
14
+ async setFullscreen(_matcher, _fullscreen, _options) { throw new UnsupportedPlatformError(this.platform); }
15
+ async toggleFullscreen(_matcher, _options) { throw new UnsupportedPlatformError(this.platform); }
16
+ async minimize(_matcher) { throw new UnsupportedPlatformError(this.platform); }
17
+ async restore(_matcher) { throw new UnsupportedPlatformError(this.platform); }
18
+ }
19
+ class UnsupportedNativeFileDialogService {
20
+ platform;
21
+ constructor(platform) {
22
+ this.platform = platform;
23
+ }
24
+ async selectFile(_filePath, _options) { throw new UnsupportedPlatformError(this.platform); }
25
+ }
26
+ class UnsupportedNativeMouse {
27
+ platform;
28
+ constructor(platform) {
29
+ this.platform = platform;
30
+ }
31
+ async moveTo(_point, _options) { throw new UnsupportedPlatformError(this.platform); }
32
+ async click(_point, _options) { throw new UnsupportedPlatformError(this.platform); }
33
+ async clickRegion(_region, _options) { throw new UnsupportedPlatformError(this.platform); }
34
+ async clickBrowserPoint(_page, _point, _options) { throw new UnsupportedPlatformError(this.platform); }
35
+ }
36
+ class UnsupportedNativeKeyboard {
37
+ platform;
38
+ constructor(platform) {
39
+ this.platform = platform;
40
+ }
41
+ async type(_text) { throw new UnsupportedPlatformError(this.platform); }
42
+ async pressKey(_key) { throw new UnsupportedPlatformError(this.platform); }
43
+ async pressShortcut(_keys) { throw new UnsupportedPlatformError(this.platform); }
44
+ }
45
+ class UnsupportedNativeCoordinateMapper {
46
+ platform;
47
+ constructor(platform) {
48
+ this.platform = platform;
49
+ }
50
+ async calibrate(_page, _options) { throw new UnsupportedPlatformError(this.platform); }
51
+ async browserToScreen(_point, _options) { throw new UnsupportedPlatformError(this.platform); }
52
+ async screenToBrowser(_point, _options) { throw new UnsupportedPlatformError(this.platform); }
53
+ invalidate() { }
54
+ }
55
+ class UnsupportedNativeImageFinder {
56
+ platform;
57
+ constructor(platform) {
58
+ this.platform = platform;
59
+ }
60
+ async findTemplate(_template, _options) { throw new UnsupportedPlatformError(this.platform); }
61
+ async waitForTemplate(_template, _options) { throw new UnsupportedPlatformError(this.platform); }
62
+ }
63
+ export function createUnsupportedNativeAutomation(platform, logger) {
64
+ const automation = {
65
+ windows: new UnsupportedNativeWindowService(platform),
66
+ fileDialogs: new UnsupportedNativeFileDialogService(platform),
67
+ mouse: new UnsupportedNativeMouse(platform),
68
+ keyboard: new UnsupportedNativeKeyboard(platform),
69
+ coordinates: new UnsupportedNativeCoordinateMapper(platform),
70
+ images: new UnsupportedNativeImageFinder(platform),
71
+ actions: undefined
72
+ };
73
+ const registry = new DefaultNativeActionRegistry(() => ({ automation, logger }));
74
+ automation.actions = registerDefaultNativeActions(registry, automation, logger);
75
+ return automation;
76
+ }
77
+ //# sourceMappingURL=UnsupportedNativeAutomation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsupportedNativeAutomation.js","sourceRoot":"","sources":["../../src/native/UnsupportedNativeAutomation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { NativeWindowInfo, WindowMatcher } from './types.js';
2
+ export declare function matchesWindow(info: NativeWindowInfo, matcher: WindowMatcher): boolean;
3
+ export declare function matcherToString(matcher: WindowMatcher): string;
4
+ //# sourceMappingURL=WindowMatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WindowMatcher.d.ts","sourceRoot":"","sources":["../../src/native/WindowMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAWlE,wBAAgB,aAAa,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAQrF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAS9D"}
@@ -0,0 +1,39 @@
1
+ function matchesRegex(value, regex) {
2
+ const expression = typeof regex === 'string' ? new RegExp(regex) : regex;
3
+ return expression.test(value);
4
+ }
5
+ function matchesOptional(actual, expected) {
6
+ return expected === undefined || actual === expected;
7
+ }
8
+ export function matchesWindow(info, matcher) {
9
+ if (!matchesOptional(info.appName, matcher.appName))
10
+ return false;
11
+ if (!matchesOptional(info.bundleId, matcher.bundleId))
12
+ return false;
13
+ if (!matchesOptional(info.role, matcher.role))
14
+ return false;
15
+ if (matcher.title !== undefined && info.title !== matcher.title)
16
+ return false;
17
+ if (matcher.titleIncludes !== undefined && !info.title.includes(matcher.titleIncludes))
18
+ return false;
19
+ if (matcher.titleRegex !== undefined && !matchesRegex(info.title, matcher.titleRegex))
20
+ return false;
21
+ return true;
22
+ }
23
+ export function matcherToString(matcher) {
24
+ const parts = [];
25
+ if (matcher.appName !== undefined)
26
+ parts.push(`app=${matcher.appName}`);
27
+ if (matcher.bundleId !== undefined)
28
+ parts.push(`bundle=${matcher.bundleId}`);
29
+ if (matcher.title !== undefined)
30
+ parts.push(`title=${matcher.title}`);
31
+ if (matcher.titleIncludes !== undefined)
32
+ parts.push(`titleIncludes=${matcher.titleIncludes}`);
33
+ if (matcher.titleRegex !== undefined)
34
+ parts.push(`titleRegex=${String(matcher.titleRegex)}`);
35
+ if (matcher.role !== undefined)
36
+ parts.push(`role=${matcher.role}`);
37
+ return parts.length === 0 ? '<any window>' : parts.join(', ');
38
+ }
39
+ //# sourceMappingURL=WindowMatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WindowMatcher.js","sourceRoot":"","sources":["../../src/native/WindowMatcher.ts"],"names":[],"mappings":"AAEA,SAAS,YAAY,CAAC,KAAa,EAAE,KAAsB;IACzD,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,eAAe,CAAC,MAA0B,EAAE,QAA4B;IAC/E,OAAO,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAsB,EAAE,OAAsB;IAC1E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAC9E,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IACrG,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACpG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAsB;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACtE,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9F,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7F,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { NativeMouseButton, NativePoint, NativeSize, NativeWindowInfo } from './types.js';
2
+ export interface NativeMouseDriver {
3
+ getPosition(): Promise<NativePoint>;
4
+ move(point: NativePoint): Promise<void>;
5
+ click(button: NativeMouseButton): Promise<void>;
6
+ }
7
+ export interface NativeKeyboardDriver {
8
+ type(text: string, options?: {
9
+ delayMs?: number;
10
+ }): Promise<void>;
11
+ pressKey(key: string): Promise<void>;
12
+ pressShortcut(keys: readonly string[]): Promise<void>;
13
+ }
14
+ export interface NativeScreenDriver {
15
+ width(): Promise<number>;
16
+ height(): Promise<number>;
17
+ }
18
+ export interface NativeWindowHandle {
19
+ info(): Promise<NativeWindowInfo>;
20
+ focus(): Promise<void>;
21
+ minimize(): Promise<void>;
22
+ restore(): Promise<void>;
23
+ move(point: NativePoint): Promise<void>;
24
+ resize(size: NativeSize): Promise<void>;
25
+ setFullscreen?(fullscreen: boolean): Promise<void>;
26
+ toggleFullscreen?(): Promise<void>;
27
+ }
28
+ export interface NativeWindowDriver {
29
+ list(): Promise<NativeWindowHandle[]>;
30
+ active?(): Promise<NativeWindowHandle | null>;
31
+ }
32
+ export interface AppleScriptExecutor {
33
+ execute(script: string, options?: {
34
+ timeoutMs?: number;
35
+ }): Promise<string>;
36
+ }
37
+ //# sourceMappingURL=drivers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drivers.d.ts","sourceRoot":"","sources":["../../src/native/drivers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAgB,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE7G,MAAM,WAAW,iBAAiB;IAChC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,aAAa,CAAC,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,gBAAgB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=drivers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drivers.js","sourceRoot":"","sources":["../../src/native/drivers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ export declare class NativeAutomationError extends Error {
2
+ readonly meta: Record<string, unknown>;
3
+ constructor(message: string, meta?: Record<string, unknown>);
4
+ }
5
+ export declare class UnsupportedPlatformError extends NativeAutomationError {
6
+ constructor(platform: NodeJS.Platform);
7
+ }
8
+ export declare class NativeDependencyError extends NativeAutomationError {
9
+ constructor(packageName: string, cause?: unknown);
10
+ }
11
+ export declare class NativeWindowNotFoundError extends NativeAutomationError {
12
+ constructor(meta: Record<string, unknown>);
13
+ }
14
+ export declare class NativeImageNotFoundError extends NativeAutomationError {
15
+ constructor(meta: Record<string, unknown>);
16
+ }
17
+ export declare class NativeFileDialogError extends NativeAutomationError {
18
+ constructor(message: string, meta?: Record<string, unknown>);
19
+ }
20
+ export declare class CoordinateCalibrationError extends NativeAutomationError {
21
+ constructor(message: string, meta?: Record<string, unknown>);
22
+ }
23
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/native/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,qBAAsB,SAAQ,KAAK;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAAvD,OAAO,EAAE,MAAM,EAAW,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAIzE;AAED,qBAAa,wBAAyB,SAAQ,qBAAqB;gBACrD,QAAQ,EAAE,MAAM,CAAC,QAAQ;CAItC;AAED,qBAAa,qBAAsB,SAAQ,qBAAqB;gBAClD,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAOjD;AAED,qBAAa,yBAA0B,SAAQ,qBAAqB;gBACtD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI1C;AAED,qBAAa,wBAAyB,SAAQ,qBAAqB;gBACrD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI1C;AAED,qBAAa,qBAAsB,SAAQ,qBAAqB;gBAClD,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAIhE;AAED,qBAAa,0BAA2B,SAAQ,qBAAqB;gBACvD,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAIhE"}
@@ -0,0 +1,45 @@
1
+ export class NativeAutomationError extends Error {
2
+ meta;
3
+ constructor(message, meta = {}) {
4
+ super(message);
5
+ this.meta = meta;
6
+ this.name = 'NativeAutomationError';
7
+ }
8
+ }
9
+ export class UnsupportedPlatformError extends NativeAutomationError {
10
+ constructor(platform) {
11
+ super(`Native automation is not supported on platform: ${platform}.`, { platform });
12
+ this.name = 'UnsupportedPlatformError';
13
+ }
14
+ }
15
+ export class NativeDependencyError extends NativeAutomationError {
16
+ constructor(packageName, cause) {
17
+ super(`Native automation dependency ${packageName} is not available. Install the optional native automation peer dependencies before using this feature.`, cause === undefined ? { packageName } : { packageName, cause });
18
+ this.name = 'NativeDependencyError';
19
+ }
20
+ }
21
+ export class NativeWindowNotFoundError extends NativeAutomationError {
22
+ constructor(meta) {
23
+ super('Native window was not found.', meta);
24
+ this.name = 'NativeWindowNotFoundError';
25
+ }
26
+ }
27
+ export class NativeImageNotFoundError extends NativeAutomationError {
28
+ constructor(meta) {
29
+ super('Native image/template was not found on screen.', meta);
30
+ this.name = 'NativeImageNotFoundError';
31
+ }
32
+ }
33
+ export class NativeFileDialogError extends NativeAutomationError {
34
+ constructor(message, meta = {}) {
35
+ super(message, meta);
36
+ this.name = 'NativeFileDialogError';
37
+ }
38
+ }
39
+ export class CoordinateCalibrationError extends NativeAutomationError {
40
+ constructor(message, meta = {}) {
41
+ super(message, meta);
42
+ this.name = 'CoordinateCalibrationError';
43
+ }
44
+ }
45
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/native/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACR;IAAtC,YAAY,OAAe,EAAW,OAAgC,EAAE;QACtE,KAAK,CAAC,OAAO,CAAC,CAAC;QADqB,SAAI,GAAJ,IAAI,CAA8B;QAEtE,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,qBAAqB;IACjE,YAAY,QAAyB;QACnC,KAAK,CAAC,mDAAmD,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,qBAAqB;IAC9D,YAAY,WAAmB,EAAE,KAAe;QAC9C,KAAK,CACH,gCAAgC,WAAW,wGAAwG,EACnJ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAC/D,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,qBAAqB;IAClE,YAAY,IAA6B;QACvC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,qBAAqB;IACjE,YAAY,IAA6B;QACvC,KAAK,CAAC,gDAAgD,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,qBAAqB;IAC9D,YAAY,OAAe,EAAE,OAAgC,EAAE;QAC7D,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,qBAAqB;IACnE,YAAY,OAAe,EAAE,OAAgC,EAAE;QAC7D,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ export * from './types.js';
2
+ export * from './errors.js';
3
+ export * from './drivers.js';
4
+ export * from './NativeActionRegistry.js';
5
+ export * from './NativeAutomation.js';
6
+ export * from './NativeCoordinateMapper.js';
7
+ export * from './NativeFileDialogService.js';
8
+ export * from './NativeImageFinder.js';
9
+ export * from './NativeKeyboard.js';
10
+ export * from './NativeMouse.js';
11
+ export * from './NativeWindowService.js';
12
+ export * from './WindowMatcher.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export * from './types.js';
2
+ export * from './errors.js';
3
+ export * from './drivers.js';
4
+ export * from './NativeActionRegistry.js';
5
+ export * from './NativeAutomation.js';
6
+ export * from './NativeCoordinateMapper.js';
7
+ export * from './NativeFileDialogService.js';
8
+ export * from './NativeImageFinder.js';
9
+ export * from './NativeKeyboard.js';
10
+ export * from './NativeMouse.js';
11
+ export * from './NativeWindowService.js';
12
+ export * from './WindowMatcher.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Logger } from '../../logging/Logger.js';
2
+ import type { NativeWindowDriver, NativeWindowHandle } from '../drivers.js';
3
+ import { MacOSAppleScriptClient } from './MacOSAppleScriptClient.js';
4
+ export declare class MacOSAccessibilityWindowDriver implements NativeWindowDriver {
5
+ private readonly client;
6
+ private readonly logger?;
7
+ constructor(client: MacOSAppleScriptClient, logger?: Logger | undefined);
8
+ list(): Promise<NativeWindowHandle[]>;
9
+ private parseRow;
10
+ }
11
+ //# sourceMappingURL=MacOSAccessibilityWindowDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MacOSAccessibilityWindowDriver.d.ts","sourceRoot":"","sources":["../../../src/native/macos/MacOSAccessibilityWindowDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AA8FrE,qBAAa,8BAA+B,YAAW,kBAAkB;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA0B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAxD,MAAM,EAAE,sBAAsB,EAAmB,MAAM,CAAC,EAAE,MAAM,YAAA;IAEvF,IAAI,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAwD3C,OAAO,CAAC,QAAQ;CAyBjB"}