nautogui 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +212 -0
  3. package/README.zh-CN.md +212 -0
  4. package/bin/mouseinfo.mjs +8 -0
  5. package/dist/backend.d.ts +59 -0
  6. package/dist/backend.d.ts.map +1 -0
  7. package/dist/backend.js +210 -0
  8. package/dist/backend.js.map +1 -0
  9. package/dist/config.d.ts +38 -0
  10. package/dist/config.d.ts.map +1 -0
  11. package/dist/config.js +60 -0
  12. package/dist/config.js.map +1 -0
  13. package/dist/constants.d.ts +16 -0
  14. package/dist/constants.d.ts.map +1 -0
  15. package/dist/constants.js +209 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/coords.d.ts +12 -0
  18. package/dist/coords.d.ts.map +1 -0
  19. package/dist/coords.js +46 -0
  20. package/dist/coords.js.map +1 -0
  21. package/dist/display-mouse.d.ts +3 -0
  22. package/dist/display-mouse.d.ts.map +1 -0
  23. package/dist/display-mouse.js +25 -0
  24. package/dist/display-mouse.js.map +1 -0
  25. package/dist/easing-all.d.ts +77 -0
  26. package/dist/easing-all.d.ts.map +1 -0
  27. package/dist/easing-all.js +231 -0
  28. package/dist/easing-all.js.map +1 -0
  29. package/dist/easing-base.d.ts +8 -0
  30. package/dist/easing-base.d.ts.map +1 -0
  31. package/dist/easing-base.js +3 -0
  32. package/dist/easing-base.js.map +1 -0
  33. package/dist/easing.d.ts +9 -0
  34. package/dist/easing.d.ts.map +1 -0
  35. package/dist/easing.js +15 -0
  36. package/dist/easing.js.map +1 -0
  37. package/dist/exceptions.d.ts +18 -0
  38. package/dist/exceptions.d.ts.map +1 -0
  39. package/dist/exceptions.js +30 -0
  40. package/dist/exceptions.js.map +1 -0
  41. package/dist/hold-context.d.ts +10 -0
  42. package/dist/hold-context.d.ts.map +1 -0
  43. package/dist/hold-context.js +31 -0
  44. package/dist/hold-context.js.map +1 -0
  45. package/dist/index.d.ts +104 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +362 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/keyboard-utils.d.ts +7 -0
  50. package/dist/keyboard-utils.d.ts.map +1 -0
  51. package/dist/keyboard-utils.js +33 -0
  52. package/dist/keyboard-utils.js.map +1 -0
  53. package/dist/locate-haystack.d.ts +14 -0
  54. package/dist/locate-haystack.d.ts.map +1 -0
  55. package/dist/locate-haystack.js +90 -0
  56. package/dist/locate-haystack.js.map +1 -0
  57. package/dist/locate-window.d.ts +12 -0
  58. package/dist/locate-window.d.ts.map +1 -0
  59. package/dist/locate-window.js +78 -0
  60. package/dist/locate-window.js.map +1 -0
  61. package/dist/log-screenshots.d.ts +3 -0
  62. package/dist/log-screenshots.d.ts.map +1 -0
  63. package/dist/log-screenshots.js +32 -0
  64. package/dist/log-screenshots.js.map +1 -0
  65. package/dist/mouseinfo.d.ts +8 -0
  66. package/dist/mouseinfo.d.ts.map +1 -0
  67. package/dist/mouseinfo.js +83 -0
  68. package/dist/mouseinfo.js.map +1 -0
  69. package/dist/msgbox.d.ts +17 -0
  70. package/dist/msgbox.d.ts.map +1 -0
  71. package/dist/msgbox.js +77 -0
  72. package/dist/msgbox.js.map +1 -0
  73. package/dist/native-msgbox.d.ts +13 -0
  74. package/dist/native-msgbox.d.ts.map +1 -0
  75. package/dist/native-msgbox.js +222 -0
  76. package/dist/native-msgbox.js.map +1 -0
  77. package/dist/native-utils.d.ts +8 -0
  78. package/dist/native-utils.d.ts.map +1 -0
  79. package/dist/native-utils.js +24 -0
  80. package/dist/native-utils.js.map +1 -0
  81. package/dist/pixel.d.ts +9 -0
  82. package/dist/pixel.d.ts.map +1 -0
  83. package/dist/pixel.js +14 -0
  84. package/dist/pixel.js.map +1 -0
  85. package/dist/region.d.ts +14 -0
  86. package/dist/region.d.ts.map +1 -0
  87. package/dist/region.js +13 -0
  88. package/dist/region.js.map +1 -0
  89. package/dist/run.d.ts +9 -0
  90. package/dist/run.d.ts.map +1 -0
  91. package/dist/run.js +189 -0
  92. package/dist/run.js.map +1 -0
  93. package/dist/runtime.d.ts +12 -0
  94. package/dist/runtime.d.ts.map +1 -0
  95. package/dist/runtime.js +53 -0
  96. package/dist/runtime.js.map +1 -0
  97. package/dist/windows.d.ts +30 -0
  98. package/dist/windows.d.ts.map +1 -0
  99. package/dist/windows.js +62 -0
  100. package/dist/windows.js.map +1 -0
  101. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,362 @@
1
+ /**
2
+ * **nautogui** — cross-platform GUI automation: mouse, keyboard, screenshot, image template locate.
3
+ */
4
+ import { existsSync, mkdirSync } from "node:fs";
5
+ import { dirname, join } from "node:path";
6
+ import { captureScreenPng, findAllImagesOnScreen, findImageOnScreen, getNut, keyboardPressCombo, keyboardPressKey, keyboardType, mouseDragPath, mouseLeftClick, mouseMiddleClick, mousePosition, mousePressButton, mouseReleaseButton, mouseRightClick, mouseScrollDown, mouseScrollLeft, mouseScrollRight, mouseScrollUp, mouseSetPosition, screenSize, sleepMs, } from "./backend.js";
7
+ import { KEYBOARD_KEYS, KEY_NAMES, LEFT, MIDDLE, PRIMARY, QWERTY, QWERTZ, RIGHT, SECONDARY, VERSION, } from "./constants.js";
8
+ import { configureNautogui, DARWIN_CATCH_UP_TIME, DARWIN_CATCH_UP_TIME_SEC, FAILSAFE, FAILSAFE_POINTS, G_LOG_SCREENSHOTS_FILENAMES, LOG_SCREENSHOTS, LOG_SCREENSHOTS_LIMIT, MINIMUM_DURATION, MINIMUM_DURATION_SEC, MINIMUM_SLEEP, MINIMUM_SLEEP_SEC, NautoguiFailSafeError, NautoguiNotAvailableError, PAUSE, PAUSE_SEC, USE_IMAGE_NOT_FOUND_EXCEPTION, useImageNotFoundException, } from "./config.js";
9
+ import { normalizeButton } from "./coords.js";
10
+ import { displayMousePosition } from "./display-mouse.js";
11
+ import { locateAllOnWindow, locateCenterOnWindow, locateOnWindow, } from "./locate-window.js";
12
+ import { mouseInfo, MouseInfoWindow } from "./mouseinfo.js";
13
+ import { detectNativeMsgboxSupport } from "./native-msgbox.js";
14
+ import { easeInBack, easeInBounce, easeInCirc, easeInCubic, easeInElastic, easeInExpo, easeInOutBack, easeInOutBounce, easeInOutCirc, easeInOutCubic, easeInOutQuart, easeInOutElastic, easeInOutExpo, easeInOutQuad, easeInOutQuint, easeInOutSine, easeInQuad, easeInQuart, easeInQuint, easeInSine, easeOutBack, easeOutBounce, easeOutCirc, easeOutCubic, easeOutElastic, easeOutExpo, easeOutQuad, easeOutQuart, easeOutQuint, easeOutSine, getPointOnLine, linear, linearScalar, pathTweens, resolveTween, scalarTweens, } from "./easing.js";
15
+ import { FailSafeException, ImageNotFoundException, NautoguiException, } from "./exceptions.js";
16
+ import { hold, holdContext } from "./hold-context.js";
17
+ import { isShiftCharacter, isValidKey } from "./keyboard-utils.js";
18
+ import { locate, locateAll } from "./locate-haystack.js";
19
+ import { alert, confirm, password, prompt } from "./msgbox.js";
20
+ import { pixelMatchesColor } from "./pixel.js";
21
+ import { center, isImagePath } from "./region.js";
22
+ import { run } from "./run.js";
23
+ import { countdown, failSafeCheck, getInfo, printInfo, sleep } from "./runtime.js";
24
+ import { Window, getActiveWindow, getActiveWindowTitle, getAllTitles, getAllWindows, getWindowsAt, getWindowsWithTitle, } from "./windows.js";
25
+ export { loadNutJs } from "./backend.js";
26
+ export { VERSION, LEFT, MIDDLE, RIGHT, PRIMARY, SECONDARY, KEY_NAMES, KEYBOARD_KEYS, QWERTY, QWERTZ, configureNautogui, useImageNotFoundException, PAUSE, PAUSE_SEC, FAILSAFE, FAILSAFE_POINTS, MINIMUM_DURATION, MINIMUM_DURATION_SEC, MINIMUM_SLEEP, MINIMUM_SLEEP_SEC, DARWIN_CATCH_UP_TIME, DARWIN_CATCH_UP_TIME_SEC, LOG_SCREENSHOTS, LOG_SCREENSHOTS_LIMIT, G_LOG_SCREENSHOTS_FILENAMES, USE_IMAGE_NOT_FOUND_EXCEPTION, NautoguiException, FailSafeException, ImageNotFoundException, NautoguiFailSafeError, NautoguiNotAvailableError, linear, linearScalar, easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, easeOutCubic, easeInOutCubic, easeInQuart, easeOutQuart, easeInOutQuart, easeInQuint, easeOutQuint, easeInOutQuint, easeInSine, easeOutSine, easeInOutSine, easeInExpo, easeOutExpo, easeInOutExpo, easeInCirc, easeOutCirc, easeInOutCirc, easeInElastic, easeOutElastic, easeInOutElastic, easeInBack, easeOutBack, easeInOutBack, easeInBounce, easeOutBounce, easeInOutBounce, scalarTweens, pathTweens, getPointOnLine, center, alert, confirm, prompt, password, hold, holdContext, locate, locateAll, pixelMatchesColor, run, sleep, countdown, failSafeCheck, getInfo, printInfo, displayMousePosition, mouseInfo, MouseInfoWindow, detectNativeMsgboxSupport, locateOnWindow, locateAllOnWindow, locateCenterOnWindow, Window, getActiveWindow, getActiveWindowTitle, getAllWindows, getAllTitles, getWindowsWithTitle, getWindowsAt, isValidKey, isShiftCharacter, };
27
+ export async function isAvailable() {
28
+ try {
29
+ await getNut();
30
+ return true;
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ }
36
+ async function pauseAfterAction(pause = true) {
37
+ if (pause && PAUSE_SEC > 0)
38
+ await sleepMs(PAUSE_SEC * 1000);
39
+ }
40
+ async function assertFailSafe() {
41
+ await failSafeCheck();
42
+ }
43
+ function resolveDuration(duration) {
44
+ if (duration !== undefined)
45
+ return Math.max(0, duration);
46
+ return MINIMUM_DURATION_SEC;
47
+ }
48
+ function imageFindOpts(opts) {
49
+ return {
50
+ confidence: opts?.confidence,
51
+ region: opts?.region,
52
+ };
53
+ }
54
+ function ensureImageFound(result, target) {
55
+ if (result)
56
+ return result;
57
+ if (USE_IMAGE_NOT_FOUND_EXCEPTION) {
58
+ throw new ImageNotFoundException(`Could not locate ${target} on screen`);
59
+ }
60
+ return null;
61
+ }
62
+ /** size / resolution() */
63
+ export async function size() {
64
+ return screenSize();
65
+ }
66
+ export const resolution = size;
67
+ /** position — optional x/y override without moving. */
68
+ export async function position(x, y) {
69
+ const p = await mousePosition();
70
+ return {
71
+ x: x ?? p.x,
72
+ y: y ?? p.y,
73
+ };
74
+ }
75
+ /** onScreen */
76
+ export async function onScreen(x, y) {
77
+ const px = y === undefined && Array.isArray(x) ? x[0] : x;
78
+ const py = y === undefined && Array.isArray(x) ? x[1] : y;
79
+ const { width, height } = await screenSize();
80
+ return px >= 0 && py >= 0 && px < width && py < height;
81
+ }
82
+ /** moveTo — null keeps axis unchanged. */
83
+ export async function moveTo(x, y, opts) {
84
+ await assertFailSafe();
85
+ const cur = await mousePosition();
86
+ const tx = x ?? cur.x;
87
+ const ty = y ?? cur.y;
88
+ const duration = resolveDuration(opts?.duration);
89
+ const tween = resolveTween(opts?.tween);
90
+ if (duration <= 0) {
91
+ await mouseSetPosition(tx, ty);
92
+ }
93
+ else {
94
+ const steps = Math.max(2, Math.floor(duration / 0.01));
95
+ const path = tween(cur, { x: tx, y: ty }, steps);
96
+ const delayMs = (duration * 1000) / path.length;
97
+ for (const p of path) {
98
+ await mouseSetPosition(p.x, p.y);
99
+ await sleepMs(delayMs);
100
+ }
101
+ }
102
+ await pauseAfterAction(opts?._pause !== false);
103
+ }
104
+ /** move / moveRel */
105
+ export async function move(xOffset = 0, yOffset = 0, opts) {
106
+ const cur = await mousePosition();
107
+ await moveTo(cur.x + xOffset, cur.y + yOffset, opts);
108
+ }
109
+ export const moveRel = move;
110
+ async function clickAt(x, y, opts) {
111
+ await moveTo(x, y, { ...opts, _pause: false });
112
+ const clicks = opts?.clicks ?? 1;
113
+ const interval = opts?.interval ?? 0.1;
114
+ const button = normalizeButton(opts?.button ?? LEFT);
115
+ for (let i = 0; i < clicks; i++) {
116
+ if (button === "right")
117
+ await mouseRightClick();
118
+ else if (button === "middle")
119
+ await mouseMiddleClick();
120
+ else
121
+ await mouseLeftClick();
122
+ if (i < clicks - 1 && interval > 0)
123
+ await sleepMs(interval * 1000);
124
+ }
125
+ await pauseAfterAction(opts?._pause !== false);
126
+ }
127
+ /** Click — string arg must be an existing PNG/image template path. */
128
+ export async function click(target, yOrOpts, maybeOpts) {
129
+ await assertFailSafe();
130
+ if (typeof target === "string") {
131
+ const opts = (typeof yOrOpts === "object" && yOrOpts ? yOrOpts : maybeOpts);
132
+ if (!isImagePath(target) || !existsSync(target)) {
133
+ throw new ImageNotFoundException(`click(): image not found on disk: ${target} (PNG template path required)`);
134
+ }
135
+ const box = ensureImageFound(await findImageOnScreen(target, imageFindOpts(opts)), target);
136
+ if (!box)
137
+ return;
138
+ const c = center(box);
139
+ await clickAt(c.x, c.y, opts);
140
+ return;
141
+ }
142
+ if (target == null && yOrOpts == null) {
143
+ const p = await mousePosition();
144
+ await clickAt(p.x, p.y, maybeOpts);
145
+ return;
146
+ }
147
+ if (typeof target === "number" && typeof yOrOpts === "number") {
148
+ await clickAt(target, yOrOpts, maybeOpts);
149
+ return;
150
+ }
151
+ const p = await mousePosition();
152
+ await clickAt(p.x, p.y, yOrOpts ?? maybeOpts);
153
+ }
154
+ export async function leftClick(x, y, opts) {
155
+ if (x != null && y != null)
156
+ await clickAt(x, y, { ...opts, button: LEFT });
157
+ else
158
+ await click(undefined, undefined, { ...opts, button: LEFT });
159
+ }
160
+ export async function doubleClick(x, y, opts) {
161
+ if (x != null && y != null)
162
+ await clickAt(x, y, { ...opts, clicks: 2 });
163
+ else {
164
+ const p = await mousePosition();
165
+ await clickAt(p.x, p.y, { ...opts, clicks: 2 });
166
+ }
167
+ }
168
+ export async function tripleClick(x, y, opts) {
169
+ if (x != null && y != null)
170
+ await clickAt(x, y, { ...opts, clicks: 3 });
171
+ else {
172
+ const p = await mousePosition();
173
+ await clickAt(p.x, p.y, { ...opts, clicks: 3 });
174
+ }
175
+ }
176
+ export async function rightClick(x, y, opts) {
177
+ if (x != null && y != null)
178
+ await clickAt(x, y, { ...opts, button: RIGHT });
179
+ else {
180
+ const p = await mousePosition();
181
+ await clickAt(p.x, p.y, { ...opts, button: RIGHT });
182
+ }
183
+ }
184
+ export async function middleClick(x, y, opts) {
185
+ if (x != null && y != null)
186
+ await clickAt(x, y, { ...opts, button: MIDDLE });
187
+ else {
188
+ const p = await mousePosition();
189
+ await clickAt(p.x, p.y, { ...opts, button: MIDDLE });
190
+ }
191
+ }
192
+ export async function mouseDown(x, y, button = PRIMARY, opts) {
193
+ await assertFailSafe();
194
+ if (x != null || y != null)
195
+ await moveTo(x, y, { ...opts, _pause: false });
196
+ await mousePressButton(normalizeButton(button));
197
+ await pauseAfterAction(opts?._pause !== false);
198
+ }
199
+ export async function mouseUp(x, y, button = PRIMARY, opts) {
200
+ await assertFailSafe();
201
+ if (x != null || y != null)
202
+ await moveTo(x, y, { ...opts, _pause: false });
203
+ await mouseReleaseButton(normalizeButton(button));
204
+ await pauseAfterAction(opts?._pause !== false);
205
+ }
206
+ export async function drag(xOffset = 0, yOffset = 0, opts) {
207
+ await assertFailSafe();
208
+ const start = await mousePosition();
209
+ const end = { x: start.x + xOffset, y: start.y + yOffset };
210
+ const duration = resolveDuration(opts?.duration);
211
+ const tween = resolveTween(opts?.tween);
212
+ if (duration <= 0)
213
+ await mouseDragPath([start, end]);
214
+ else {
215
+ const steps = Math.max(2, Math.floor(duration / 0.01));
216
+ await mouseDragPath(tween(start, end, steps));
217
+ }
218
+ await pauseAfterAction(opts?._pause !== false);
219
+ }
220
+ export const dragRel = drag;
221
+ export async function dragTo(x, y, opts) {
222
+ const cur = await mousePosition();
223
+ await drag((x ?? cur.x) - cur.x, (y ?? cur.y) - cur.y, opts);
224
+ }
225
+ export async function scroll(amount, x, y) {
226
+ await assertFailSafe();
227
+ if (x != null || y != null)
228
+ await moveTo(x, y, { duration: 0, _pause: false });
229
+ const n = Math.abs(Math.round(amount));
230
+ if (amount > 0)
231
+ await mouseScrollUp(n);
232
+ else if (amount < 0)
233
+ await mouseScrollDown(n);
234
+ await pauseAfterAction();
235
+ }
236
+ export async function hscroll(amount, x, y) {
237
+ await assertFailSafe();
238
+ if (x != null || y != null)
239
+ await moveTo(x, y, { duration: 0, _pause: false });
240
+ const n = Math.abs(Math.round(amount));
241
+ if (amount > 0)
242
+ await mouseScrollRight(n);
243
+ else if (amount < 0)
244
+ await mouseScrollLeft(n);
245
+ await pauseAfterAction();
246
+ }
247
+ export const vscroll = scroll;
248
+ /** Type text (`write` is an alias). */
249
+ export async function typewrite(message, opts) {
250
+ await assertFailSafe();
251
+ const interval = opts?.interval ?? 0;
252
+ const items = Array.isArray(message) ? message : message.split("");
253
+ for (const c of items) {
254
+ if (c.length > 1)
255
+ await press(c.toLowerCase());
256
+ else
257
+ await keyboardType(c);
258
+ if (interval > 0)
259
+ await sleepMs(interval * 1000);
260
+ }
261
+ await pauseAfterAction();
262
+ }
263
+ export const write = typewrite;
264
+ export async function press(keys, presses = 1, interval = 0) {
265
+ await assertFailSafe();
266
+ const list = Array.isArray(keys) ? keys : [keys];
267
+ for (let p = 0; p < presses; p++) {
268
+ for (const k of list) {
269
+ await keyboardPressKey(k.length > 1 ? k.toLowerCase() : k);
270
+ if (interval > 0)
271
+ await sleepMs(interval * 1000);
272
+ }
273
+ }
274
+ await pauseAfterAction();
275
+ }
276
+ export async function hotkey(...keys) {
277
+ await assertFailSafe();
278
+ let interval = 0;
279
+ const list = [];
280
+ for (const k of keys) {
281
+ if (typeof k === "object" && k && "interval" in k) {
282
+ interval = k.interval ?? 0;
283
+ continue;
284
+ }
285
+ list.push(String(k));
286
+ }
287
+ if (list.length === 1 && list[0].includes(",")) {
288
+ list.splice(0, 1, ...list[0].replace(/\s/g, "").split(","));
289
+ }
290
+ const normalized = list.map((k) => (k.length > 1 ? k.toLowerCase() : k));
291
+ await keyboardPressCombo(normalized);
292
+ if (interval > 0)
293
+ await sleepMs(interval * 1000);
294
+ await pauseAfterAction();
295
+ }
296
+ export const shortcut = hotkey;
297
+ export async function keyDown(key) {
298
+ await assertFailSafe();
299
+ const { keyboardKeyDown } = await import("./backend.js");
300
+ await keyboardKeyDown(key.length > 1 ? key.toLowerCase() : key);
301
+ }
302
+ export async function keyUp(key) {
303
+ await assertFailSafe();
304
+ const { keyboardKeyUp } = await import("./backend.js");
305
+ await keyboardKeyUp(key.length > 1 ? key.toLowerCase() : key);
306
+ }
307
+ export async function screenshot(filePath, region) {
308
+ const defaultDir = join(process.cwd(), "logs", "nautogui");
309
+ mkdirSync(defaultDir, { recursive: true });
310
+ const outDir = filePath ? dirname(filePath) : defaultDir;
311
+ mkdirSync(outDir, { recursive: true });
312
+ const stem = filePath
313
+ ? filePath.replace(/\\/g, "/").split("/").pop()?.replace(/\.png$/i, "") ??
314
+ `screen-${Date.now()}`
315
+ : `screen-${Date.now()}`;
316
+ const captured = await captureScreenPng(outDir, stem, region);
317
+ await pauseAfterAction();
318
+ return captured;
319
+ }
320
+ export async function pixel(x, y) {
321
+ await assertFailSafe();
322
+ const { pixelColorAt } = await import("./backend.js");
323
+ const color = await pixelColorAt(x, y);
324
+ await pauseAfterAction();
325
+ return color;
326
+ }
327
+ /** locateOnScreen — PNG/image template on screen (nut.js). */
328
+ export async function locateOnScreen(imagePath, opts) {
329
+ if (!isImagePath(imagePath) || !existsSync(imagePath)) {
330
+ throw new NautoguiException(`locateOnScreen requires an existing image file: ${imagePath}`);
331
+ }
332
+ return ensureImageFound(await findImageOnScreen(imagePath, imageFindOpts(opts)), imagePath);
333
+ }
334
+ export async function locateCenterOnScreen(imagePath, opts) {
335
+ const result = await locateOnScreen(imagePath, opts);
336
+ return result ? center(result) : null;
337
+ }
338
+ export async function locateAllOnScreen(imagePath, opts) {
339
+ if (!isImagePath(imagePath) || !existsSync(imagePath)) {
340
+ throw new NautoguiException(`locateAllOnScreen requires an existing image file: ${imagePath}`);
341
+ }
342
+ return findAllImagesOnScreen(imagePath, imageFindOpts(opts));
343
+ }
344
+ /** locateCenterOnScreen + click (image template only). */
345
+ export async function clickTarget(imagePath, opts) {
346
+ const pt = await locateCenterOnScreen(imagePath, opts);
347
+ if (!pt) {
348
+ throw new ImageNotFoundException(`Target not found: ${imagePath}`);
349
+ }
350
+ await clickAt(pt.x, pt.y, opts);
351
+ }
352
+ export async function fillWindowsOpenDialog(absoluteFilePath) {
353
+ if (process.platform !== "win32") {
354
+ throw new NautoguiException("fillWindowsOpenDialog: win32 only");
355
+ }
356
+ await hotkey("alt", "n");
357
+ await sleepMs(200);
358
+ await write(absoluteFilePath);
359
+ await sleepMs(100);
360
+ await press("enter");
361
+ }
362
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** isValidKey */
2
+ export declare function isValidKey(key: string): boolean;
3
+ /** isShiftCharacter */
4
+ export declare function isShiftCharacter(character: string): boolean;
5
+ export declare function normalizeKeyName(key: string): string;
6
+ export declare function assertValidKey(key: string): void;
7
+ //# sourceMappingURL=keyboard-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard-utils.d.ts","sourceRoot":"","sources":["../src/keyboard-utils.ts"],"names":[],"mappings":"AAGA,iBAAiB;AACjB,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,uBAAuB;AACvB,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAO3D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUpD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAKhD"}
@@ -0,0 +1,33 @@
1
+ import { KEY_NAMES, QWERTY } from "./constants.js";
2
+ import { NautoguiException } from "./exceptions.js";
3
+ /** isValidKey */
4
+ export function isValidKey(key) {
5
+ return KEY_NAMES.includes(key);
6
+ }
7
+ /** isShiftCharacter */
8
+ export function isShiftCharacter(character) {
9
+ return (character.length === 1 &&
10
+ (character.toUpperCase() === character &&
11
+ character.toLowerCase() !== character ||
12
+ "~!@#$%^&*()_+{}|:\"<>?".includes(character)));
13
+ }
14
+ export function normalizeKeyName(key) {
15
+ const k = key.trim();
16
+ if (k.length > 1)
17
+ return k.toLowerCase();
18
+ if (isShiftCharacter(k)) {
19
+ const idx = QWERTY.indexOf(k);
20
+ if (idx >= 0 && idx + 1 < QWERTY.length) {
21
+ return QWERTY[idx + 1].toLowerCase();
22
+ }
23
+ }
24
+ return k;
25
+ }
26
+ export function assertValidKey(key) {
27
+ if (!isValidKey(key) && key.length === 1)
28
+ return;
29
+ if (!isValidKey(key)) {
30
+ throw new NautoguiException(`Invalid key: ${key}`);
31
+ }
32
+ }
33
+ //# sourceMappingURL=keyboard-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard-utils.js","sourceRoot":"","sources":["../src/keyboard-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,iBAAiB;AACjB,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAiC,CAAC,CAAC;AAC/D,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,CACL,SAAS,CAAC,MAAM,KAAK,CAAC;QACtB,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS;YACpC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS;YACrC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Haystack image locate — find needle image within a larger image file.
3
+ * Uses optional `sharp` for pixel comparison (OpenCV-free).
4
+ */
5
+ import type { Box } from "./region.js";
6
+ export type LocateHaystackOptions = {
7
+ confidence?: number;
8
+ grayscale?: boolean;
9
+ };
10
+ /** locate needle in haystack image file */
11
+ export declare function locate(needlePath: string, haystackPath: string, opts?: LocateHaystackOptions): Promise<Box | null>;
12
+ /** locateAll needles in haystack image file */
13
+ export declare function locateAll(needlePath: string, haystackPath: string, opts?: LocateHaystackOptions): Promise<Box[]>;
14
+ //# sourceMappingURL=locate-haystack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locate-haystack.d.ts","sourceRoot":"","sources":["../src/locate-haystack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AA2DF,2CAA2C;AAC3C,wBAAsB,MAAM,CAC1B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAkBrB;AAED,+CAA+C;AAC/C,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC,GAAG,EAAE,CAAC,CAmBhB"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Haystack image locate — find needle image within a larger image file.
3
+ * Uses optional `sharp` for pixel comparison (OpenCV-free).
4
+ */
5
+ import { readFileSync } from "node:fs";
6
+ import { USE_IMAGE_NOT_FOUND_EXCEPTION } from "./config.js";
7
+ import { ImageNotFoundException, NautoguiException } from "./exceptions.js";
8
+ async function loadSharp() {
9
+ try {
10
+ return await import("sharp");
11
+ }
12
+ catch {
13
+ throw new NautoguiException("locate() in haystack images requires optional dependency: npm install sharp");
14
+ }
15
+ }
16
+ async function loadRgba(path, grayscale) {
17
+ const sharp = await loadSharp();
18
+ let pipeline = sharp.default(readFileSync(path)).ensureAlpha();
19
+ if (grayscale)
20
+ pipeline = pipeline.grayscale();
21
+ const { data, info } = await pipeline.raw().toBuffer({ resolveWithObject: true });
22
+ return { width: info.width, height: info.height, data: new Uint8Array(data) };
23
+ }
24
+ function matchAt(hay, needle, left, top, confidence) {
25
+ let matched = 0;
26
+ let total = 0;
27
+ for (let y = 0; y < needle.height; y++) {
28
+ for (let x = 0; x < needle.width; x++) {
29
+ const hi = ((top + y) * hay.width + (left + x)) * 4;
30
+ const ni = (y * needle.width + x) * 4;
31
+ for (let c = 0; c < 3; c++) {
32
+ total++;
33
+ if (Math.abs(hay.data[hi + c] - needle.data[ni + c]) <= 10)
34
+ matched++;
35
+ }
36
+ }
37
+ }
38
+ return total > 0 && matched / total >= confidence;
39
+ }
40
+ function toBox(left, top, needle) {
41
+ return { left, top, width: needle.width, height: needle.height };
42
+ }
43
+ function maybeThrowNotFound(needle) {
44
+ if (USE_IMAGE_NOT_FOUND_EXCEPTION) {
45
+ throw new ImageNotFoundException(`Could not locate ${needle} on screen`);
46
+ }
47
+ return null;
48
+ }
49
+ /** locate needle in haystack image file */
50
+ export async function locate(needlePath, haystackPath, opts) {
51
+ const confidence = opts?.confidence ?? 0.999;
52
+ const grayscale = opts?.grayscale ?? false;
53
+ const [needle, haystack] = await Promise.all([
54
+ loadRgba(needlePath, grayscale),
55
+ loadRgba(haystackPath, grayscale),
56
+ ]);
57
+ if (needle.width > haystack.width || needle.height > haystack.height) {
58
+ return maybeThrowNotFound(needlePath);
59
+ }
60
+ for (let top = 0; top <= haystack.height - needle.height; top++) {
61
+ for (let left = 0; left <= haystack.width - needle.width; left++) {
62
+ if (matchAt(haystack, needle, left, top, confidence)) {
63
+ return toBox(left, top, needle);
64
+ }
65
+ }
66
+ }
67
+ return maybeThrowNotFound(needlePath);
68
+ }
69
+ /** locateAll needles in haystack image file */
70
+ export async function locateAll(needlePath, haystackPath, opts) {
71
+ const confidence = opts?.confidence ?? 0.999;
72
+ const grayscale = opts?.grayscale ?? false;
73
+ const [needle, haystack] = await Promise.all([
74
+ loadRgba(needlePath, grayscale),
75
+ loadRgba(haystackPath, grayscale),
76
+ ]);
77
+ const out = [];
78
+ if (needle.width > haystack.width || needle.height > haystack.height) {
79
+ return out;
80
+ }
81
+ for (let top = 0; top <= haystack.height - needle.height; top++) {
82
+ for (let left = 0; left <= haystack.width - needle.width; left++) {
83
+ if (matchAt(haystack, needle, left, top, confidence)) {
84
+ out.push(toBox(left, top, needle));
85
+ }
86
+ }
87
+ }
88
+ return out;
89
+ }
90
+ //# sourceMappingURL=locate-haystack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locate-haystack.js","sourceRoot":"","sources":["../src/locate-haystack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAc5E,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAiB,CACzB,6EAA6E,CAC9E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,SAAkB;IACtD,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,IAAI,SAAS;QAAE,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IAClF,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,OAAO,CACd,GAAc,EACd,MAAiB,EACjB,IAAY,EACZ,GAAW,EACX,UAAkB;IAElB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,KAAK,EAAE,CAAC;gBACR,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;oBAAE,OAAO,EAAE,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC;AACpD,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,GAAW,EAAE,MAAiB;IACzD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,6BAA6B,EAAE,CAAC;QAClC,MAAM,IAAI,sBAAsB,CAAC,oBAAoB,MAAM,YAAY,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,UAAkB,EAClB,YAAoB,EACpB,IAA4B;IAE5B,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,KAAK,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,KAAK,CAAC;IAC3C,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;QAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;KAClC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrE,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAChE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YACjE,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAAkB,EAClB,YAAoB,EACpB,IAA4B;IAE5B,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,KAAK,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,KAAK,CAAC;IAC3C,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;QAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;KAClC,CAAC,CAAC;IACH,MAAM,GAAG,GAAU,EAAE,CAAC;IACtB,IAAI,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrE,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAChE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YACjE,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** Template match limited to a window region. */
2
+ import type { Box } from "./region.js";
3
+ export type LocateOnWindowOptions = {
4
+ confidence?: number;
5
+ };
6
+ export declare function locateOnWindow(imagePath: string, title?: string, opts?: LocateOnWindowOptions): Promise<Box | null>;
7
+ export declare function locateAllOnWindow(imagePath: string, title?: string, opts?: LocateOnWindowOptions): Promise<Box[]>;
8
+ export declare function locateCenterOnWindow(imagePath: string, title?: string, opts?: LocateOnWindowOptions): Promise<{
9
+ x: number;
10
+ y: number;
11
+ } | null>;
12
+ //# sourceMappingURL=locate-window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locate-window.d.ts","sourceRoot":"","sources":["../src/locate-window.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAKjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAgBF,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CA8BrB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC,GAAG,EAAE,CAAC,CAsBhB;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAO1C"}