@maaxyz/maa-node 0.0.1-alpha.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.
- package/agent/maatouch/universal/maatouch +0 -0
- package/agent/minicap/arm64-v8a/bin/minicap +0 -0
- package/agent/minicap/arm64-v8a/bin/minicap-nopie +0 -0
- package/agent/minicap/arm64-v8a/lib/android-21/minicap.so +0 -0
- package/agent/minicap/arm64-v8a/lib/android-22/minicap.so +0 -0
- package/agent/minicap/arm64-v8a/lib/android-23/minicap.so +0 -0
- package/agent/minicap/arm64-v8a/lib/android-24/minicap.so +0 -0
- package/agent/minicap/arm64-v8a/lib/android-25/minicap.so +0 -0
- package/agent/minicap/arm64-v8a/lib/android-26/minicap.so +0 -0
- package/agent/minicap/arm64-v8a/lib/android-27/minicap.so +0 -0
- package/agent/minicap/arm64-v8a/lib/android-28/minicap.so +0 -0
- package/agent/minicap/arm64-v8a/lib/android-29/minicap +0 -0
- package/agent/minicap/arm64-v8a/lib/android-29/minicap-nopie +0 -0
- package/agent/minicap/arm64-v8a/lib/android-29/minicap.so +0 -0
- package/agent/minicap/arm64-v8a/lib/android-30/minicap.so +0 -0
- package/agent/minicap/arm64-v8a/lib/android-31/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/bin/minicap +0 -0
- package/agent/minicap/armeabi-v7a/bin/minicap-nopie +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-10/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-14/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-15/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-16/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-17/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-18/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-19/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-21/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-22/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-23/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-24/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-25/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-26/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-27/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-28/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-29/minicap +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-29/minicap-nopie +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-29/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-30/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-31/minicap.so +0 -0
- package/agent/minicap/armeabi-v7a/lib/android-9/minicap.so +0 -0
- package/agent/minicap/x86/bin/minicap +0 -0
- package/agent/minicap/x86/bin/minicap-nopie +0 -0
- package/agent/minicap/x86/lib/android-14/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-15/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-16/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-17/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-18/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-19/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-21/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-22/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-23/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-24/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-25/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-26/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-27/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-28/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-29/minicap +0 -0
- package/agent/minicap/x86/lib/android-29/minicap-nopie +0 -0
- package/agent/minicap/x86/lib/android-29/minicap.so +0 -0
- package/agent/minicap/x86/lib/android-31/minicap.so +0 -0
- package/agent/minicap/x86_64/bin/minicap +0 -0
- package/agent/minicap/x86_64/bin/minicap-nopie +0 -0
- package/agent/minicap/x86_64/lib/android-21/minicap.so +0 -0
- package/agent/minicap/x86_64/lib/android-22/minicap.so +0 -0
- package/agent/minicap/x86_64/lib/android-23/minicap.so +0 -0
- package/agent/minicap/x86_64/lib/android-24/minicap.so +0 -0
- package/agent/minicap/x86_64/lib/android-25/minicap.so +0 -0
- package/agent/minicap/x86_64/lib/android-26/minicap.so +0 -0
- package/agent/minicap/x86_64/lib/android-27/minicap.so +0 -0
- package/agent/minicap/x86_64/lib/android-28/minicap.so +0 -0
- package/agent/minicap/x86_64/lib/android-29/minicap +0 -0
- package/agent/minicap/x86_64/lib/android-29/minicap-nopie +0 -0
- package/agent/minicap/x86_64/lib/android-29/minicap.so +0 -0
- package/agent/minicap/x86_64/lib/android-31/minicap.so +0 -0
- package/agent/minitouch/arm64-v8a/minitouch +0 -0
- package/agent/minitouch/armeabi/minitouch +0 -0
- package/agent/minitouch/armeabi-v7a/minitouch +0 -0
- package/agent/minitouch/x86/minitouch +0 -0
- package/agent/minitouch/x86_64/minitouch +0 -0
- package/dist/context.d.ts +52 -0
- package/dist/controller.d.ts +105 -0
- package/dist/global.d.ts +10 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +1028 -0
- package/dist/job.d.ts +23 -0
- package/dist/maa.d.ts +376 -0
- package/dist/pi.d.ts +9 -0
- package/dist/pipeline.d.ts +249 -0
- package/dist/resource.d.ts +36 -0
- package/dist/tasker.d.ts +128 -0
- package/dist/types.d.ts +27 -0
- package/package.json +33 -0
- package/scripts/build.mjs +20 -0
- package/src/context.ts +78 -0
- package/src/controller.ts +366 -0
- package/src/global.ts +49 -0
- package/src/index.ts +9 -0
- package/src/job.ts +68 -0
- package/src/maa.d.ts +376 -0
- package/src/maa.js +27 -0
- package/src/pi.ts +62 -0
- package/src/pipeline.ts +694 -0
- package/src/resource.ts +173 -0
- package/src/tasker.ts +231 -0
- package/src/types.ts +31 -0
- package/tsconfig.json +9 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,1028 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
9
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
10
|
+
};
|
|
11
|
+
var __export = (target, all) => {
|
|
12
|
+
for (var name in all)
|
|
13
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from))
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
19
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
24
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
25
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
26
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
27
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
28
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
29
|
+
mod
|
|
30
|
+
));
|
|
31
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
32
|
+
|
|
33
|
+
// src/maa.js
|
|
34
|
+
var require_maa = __commonJS({
|
|
35
|
+
"src/maa.js"(exports2, module2) {
|
|
36
|
+
"use strict";
|
|
37
|
+
if (!globalThis.MaaAPI) {
|
|
38
|
+
switch (`${process.platform}-${process.arch}`) {
|
|
39
|
+
case "win32-x64":
|
|
40
|
+
globalThis.MaaAPI = require("@maaxyz/maa-node-win32-x64");
|
|
41
|
+
break;
|
|
42
|
+
case "win32-arm64":
|
|
43
|
+
globalThis.MaaAPI = require("@maaxyz/maa-node-win32-arm64");
|
|
44
|
+
break;
|
|
45
|
+
case "linux-x64":
|
|
46
|
+
globalThis.MaaAPI = require("@maaxyz/maa-node-linux-x64");
|
|
47
|
+
break;
|
|
48
|
+
case "linux-arm64":
|
|
49
|
+
globalThis.MaaAPI = require("@maaxyz/maa-node-linux-arm64");
|
|
50
|
+
break;
|
|
51
|
+
case "darwin-x64":
|
|
52
|
+
globalThis.MaaAPI = require("@maaxyz/maa-node-darwin-x64");
|
|
53
|
+
break;
|
|
54
|
+
case "darwin-arm64":
|
|
55
|
+
globalThis.MaaAPI = require("@maaxyz/maa-node-darwin-arm64");
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
globalThis.MaaAPI = {};
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
module2.exports = globalThis.MaaAPI;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// src/index.ts
|
|
67
|
+
var src_exports = {};
|
|
68
|
+
__export(src_exports, {
|
|
69
|
+
AdbController: () => AdbController,
|
|
70
|
+
Context: () => Context,
|
|
71
|
+
ControllerBase: () => ControllerBase,
|
|
72
|
+
CustomController: () => CustomController,
|
|
73
|
+
CustomControllerActor: () => CustomControllerActor,
|
|
74
|
+
CustomControllerActorDefaultImpl: () => CustomControllerActorDefaultImpl,
|
|
75
|
+
DbgController: () => DbgController,
|
|
76
|
+
Global: () => Global,
|
|
77
|
+
Pi: () => Pi,
|
|
78
|
+
Resource: () => Resource,
|
|
79
|
+
ResourceBase: () => ResourceBase,
|
|
80
|
+
Tasker: () => Tasker,
|
|
81
|
+
TaskerBase: () => TaskerBase,
|
|
82
|
+
Win32Controller: () => Win32Controller,
|
|
83
|
+
api: () => api,
|
|
84
|
+
pp: () => pp
|
|
85
|
+
});
|
|
86
|
+
module.exports = __toCommonJS(src_exports);
|
|
87
|
+
var api = __toESM(require_maa());
|
|
88
|
+
|
|
89
|
+
// src/controller.ts
|
|
90
|
+
var import_path = __toESM(require("path"));
|
|
91
|
+
|
|
92
|
+
// src/job.ts
|
|
93
|
+
var maa = __toESM(require_maa());
|
|
94
|
+
var Job = class {
|
|
95
|
+
source;
|
|
96
|
+
id;
|
|
97
|
+
#status;
|
|
98
|
+
constructor(source, id) {
|
|
99
|
+
this.source = source;
|
|
100
|
+
this.id = id;
|
|
101
|
+
this.#status = null;
|
|
102
|
+
}
|
|
103
|
+
get status() {
|
|
104
|
+
return this.#status ?? this.source.status(this.id);
|
|
105
|
+
}
|
|
106
|
+
wait() {
|
|
107
|
+
const realWait = async () => {
|
|
108
|
+
this.#status = await this.source.wait(this.id);
|
|
109
|
+
return this;
|
|
110
|
+
};
|
|
111
|
+
const pro = realWait();
|
|
112
|
+
for (const key of ["status", "done", "succeeded", "failed"]) {
|
|
113
|
+
Object.defineProperty(pro, key, {
|
|
114
|
+
get: () => {
|
|
115
|
+
return new Promise((resolve) => {
|
|
116
|
+
pro.then((self) => {
|
|
117
|
+
resolve(self[key]);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return pro;
|
|
124
|
+
}
|
|
125
|
+
get done() {
|
|
126
|
+
return [maa.Status.Succeeded, maa.Status.Failed].includes(this.status);
|
|
127
|
+
}
|
|
128
|
+
get succeeded() {
|
|
129
|
+
return this.status == maa.Status.Succeeded;
|
|
130
|
+
}
|
|
131
|
+
get failed() {
|
|
132
|
+
return this.status == maa.Status.Failed;
|
|
133
|
+
}
|
|
134
|
+
get running() {
|
|
135
|
+
return this.status == maa.Status.Running;
|
|
136
|
+
}
|
|
137
|
+
get pending() {
|
|
138
|
+
return this.status == maa.Status.Pending;
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
// src/controller.ts
|
|
143
|
+
var import_maa = __toESM(require_maa());
|
|
144
|
+
var ImageJob = class extends Job {
|
|
145
|
+
#ctrl;
|
|
146
|
+
constructor(ctrl, source, id) {
|
|
147
|
+
super(source, id);
|
|
148
|
+
this.#ctrl = ctrl;
|
|
149
|
+
}
|
|
150
|
+
get() {
|
|
151
|
+
if (this.done) {
|
|
152
|
+
return this.#ctrl.cached_image;
|
|
153
|
+
} else {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
wait() {
|
|
158
|
+
const superPro = super.wait();
|
|
159
|
+
const pro = superPro;
|
|
160
|
+
pro.get = () => {
|
|
161
|
+
return new Promise((resolve) => {
|
|
162
|
+
pro.then((self) => {
|
|
163
|
+
resolve(self.get());
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
return pro;
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
var ControllerBase = class {
|
|
171
|
+
handle;
|
|
172
|
+
#source;
|
|
173
|
+
notify(message, details_json) {
|
|
174
|
+
}
|
|
175
|
+
set parsed_notify(cb) {
|
|
176
|
+
this.notify = (msg, details) => {
|
|
177
|
+
return cb({
|
|
178
|
+
msg: msg.replace(/^Controller\./, ""),
|
|
179
|
+
...JSON.parse(details)
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
constructor(handle) {
|
|
184
|
+
this.handle = handle;
|
|
185
|
+
this.#source = {
|
|
186
|
+
status: (id) => import_maa.default.controller_status(this.handle, id),
|
|
187
|
+
wait: (id) => import_maa.default.controller_wait(this.handle, id)
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
destroy() {
|
|
191
|
+
import_maa.default.controller_destroy(this.handle);
|
|
192
|
+
}
|
|
193
|
+
set screenshot_target_long_side(value) {
|
|
194
|
+
if (!import_maa.default.controller_set_option_screenshot_target_long_side(this.handle, value)) {
|
|
195
|
+
throw "Controller set screenshot_target_long_side failed";
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
set screenshot_target_short_side(value) {
|
|
199
|
+
if (!import_maa.default.controller_set_option_screenshot_target_short_side(this.handle, value)) {
|
|
200
|
+
throw "Controller set screenshot_target_short_side failed";
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
set screenshot_use_raw_size(value) {
|
|
204
|
+
if (!import_maa.default.controller_set_option_screenshot_use_raw_size(this.handle, value)) {
|
|
205
|
+
throw "Controller set screenshot_use_raw_size failed";
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
set recording(value) {
|
|
209
|
+
if (!import_maa.default.controller_set_option_recording(this.handle, value)) {
|
|
210
|
+
throw "Controller set recording failed";
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
post_connection() {
|
|
214
|
+
return new Job(this.#source, import_maa.default.controller_post_connection(this.handle));
|
|
215
|
+
}
|
|
216
|
+
post_click(x, y) {
|
|
217
|
+
return new Job(this.#source, import_maa.default.controller_post_click(this.handle, x, y));
|
|
218
|
+
}
|
|
219
|
+
post_swipe(x1, y1, x2, y2, duration) {
|
|
220
|
+
return new Job(
|
|
221
|
+
this.#source,
|
|
222
|
+
import_maa.default.controller_post_swipe(this.handle, x1, y1, x2, y2, duration)
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
post_press_key(keycode) {
|
|
226
|
+
return new Job(this.#source, import_maa.default.controller_post_press_key(this.handle, keycode));
|
|
227
|
+
}
|
|
228
|
+
post_input_text(text) {
|
|
229
|
+
return new Job(this.#source, import_maa.default.controller_post_input_text(this.handle, text));
|
|
230
|
+
}
|
|
231
|
+
post_start_app(intent) {
|
|
232
|
+
return new Job(this.#source, import_maa.default.controller_post_start_app(this.handle, intent));
|
|
233
|
+
}
|
|
234
|
+
post_stop_app(intent) {
|
|
235
|
+
return new Job(this.#source, import_maa.default.controller_post_stop_app(this.handle, intent));
|
|
236
|
+
}
|
|
237
|
+
post_touch_down(contact, x, y, pressure) {
|
|
238
|
+
return new Job(
|
|
239
|
+
this.#source,
|
|
240
|
+
import_maa.default.controller_post_touch_down(this.handle, contact, x, y, pressure)
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
post_touch_move(contact, x, y, pressure) {
|
|
244
|
+
return new Job(
|
|
245
|
+
this.#source,
|
|
246
|
+
import_maa.default.controller_post_touch_move(this.handle, contact, x, y, pressure)
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
post_touch_up(contact) {
|
|
250
|
+
return new Job(this.#source, import_maa.default.controller_post_touch_up(this.handle, contact));
|
|
251
|
+
}
|
|
252
|
+
post_screencap() {
|
|
253
|
+
return new ImageJob(this, this.#source, import_maa.default.controller_post_screencap(this.handle));
|
|
254
|
+
}
|
|
255
|
+
get connected() {
|
|
256
|
+
return import_maa.default.controller_connected(this.handle);
|
|
257
|
+
}
|
|
258
|
+
get cached_image() {
|
|
259
|
+
return import_maa.default.controller_cached_image(this.handle);
|
|
260
|
+
}
|
|
261
|
+
get uuid() {
|
|
262
|
+
return import_maa.default.controller_get_uuid(this.handle);
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
var AdbController = class _AdbController extends ControllerBase {
|
|
266
|
+
constructor(adb_path, address, screencap_methods, input_methods, config, agent) {
|
|
267
|
+
let ws;
|
|
268
|
+
const h = import_maa.default.adb_controller_create(
|
|
269
|
+
adb_path,
|
|
270
|
+
address,
|
|
271
|
+
screencap_methods,
|
|
272
|
+
input_methods,
|
|
273
|
+
config,
|
|
274
|
+
agent ?? _AdbController.agent_path(),
|
|
275
|
+
(message, details_json) => {
|
|
276
|
+
ws.deref()?.notify(message, details_json);
|
|
277
|
+
}
|
|
278
|
+
);
|
|
279
|
+
if (!h) {
|
|
280
|
+
throw "AdbController create failed";
|
|
281
|
+
}
|
|
282
|
+
super(h);
|
|
283
|
+
ws = new WeakRef(this);
|
|
284
|
+
}
|
|
285
|
+
static agent_path() {
|
|
286
|
+
return import_path.default.join(__dirname, "..", "agent");
|
|
287
|
+
}
|
|
288
|
+
static async find(adb) {
|
|
289
|
+
return import_maa.default.find_adb(adb ?? null);
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
var Win32Controller = class extends ControllerBase {
|
|
293
|
+
constructor(hwnd, screencap_methods, input_methods) {
|
|
294
|
+
let ws;
|
|
295
|
+
const h = import_maa.default.win32_controller_create(
|
|
296
|
+
hwnd ?? "0",
|
|
297
|
+
screencap_methods,
|
|
298
|
+
input_methods,
|
|
299
|
+
(message, details_json) => {
|
|
300
|
+
ws.deref()?.notify(message, details_json);
|
|
301
|
+
}
|
|
302
|
+
);
|
|
303
|
+
if (!h) {
|
|
304
|
+
throw "Win32Controller create failed";
|
|
305
|
+
}
|
|
306
|
+
super(h);
|
|
307
|
+
ws = new WeakRef(this);
|
|
308
|
+
}
|
|
309
|
+
static find() {
|
|
310
|
+
return import_maa.default.find_desktop();
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
var DbgController = class extends ControllerBase {
|
|
314
|
+
constructor(read_path, write_path, type, config) {
|
|
315
|
+
let ws;
|
|
316
|
+
const h = import_maa.default.dbg_controller_create(
|
|
317
|
+
read_path,
|
|
318
|
+
write_path,
|
|
319
|
+
type,
|
|
320
|
+
config,
|
|
321
|
+
(message, details_json) => {
|
|
322
|
+
ws.deref()?.notify(message, details_json);
|
|
323
|
+
}
|
|
324
|
+
);
|
|
325
|
+
if (!h) {
|
|
326
|
+
throw "DbgController create failed";
|
|
327
|
+
}
|
|
328
|
+
super(h);
|
|
329
|
+
ws = new WeakRef(this);
|
|
330
|
+
}
|
|
331
|
+
};
|
|
332
|
+
var CustomControllerActor = class {
|
|
333
|
+
};
|
|
334
|
+
var CustomControllerActorDefaultImpl = class extends CustomControllerActor {
|
|
335
|
+
connect() {
|
|
336
|
+
return false;
|
|
337
|
+
}
|
|
338
|
+
request_uuid() {
|
|
339
|
+
return null;
|
|
340
|
+
}
|
|
341
|
+
start_app(intent) {
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
344
|
+
stop_app(intent) {
|
|
345
|
+
return false;
|
|
346
|
+
}
|
|
347
|
+
screencap() {
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
click(x, y) {
|
|
351
|
+
return false;
|
|
352
|
+
}
|
|
353
|
+
swipe(x1, y1, x2, y2, duration) {
|
|
354
|
+
return false;
|
|
355
|
+
}
|
|
356
|
+
touch_down(contact, x, y, pressure) {
|
|
357
|
+
return false;
|
|
358
|
+
}
|
|
359
|
+
touch_move(contact, x, y, pressure) {
|
|
360
|
+
return false;
|
|
361
|
+
}
|
|
362
|
+
touch_up(contact) {
|
|
363
|
+
return false;
|
|
364
|
+
}
|
|
365
|
+
press_key(keycode) {
|
|
366
|
+
return false;
|
|
367
|
+
}
|
|
368
|
+
input_text(text) {
|
|
369
|
+
return false;
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
var CustomController = class extends ControllerBase {
|
|
373
|
+
constructor(actor) {
|
|
374
|
+
let ws;
|
|
375
|
+
const h = import_maa.default.custom_controller_create(
|
|
376
|
+
(action, ...param) => {
|
|
377
|
+
return actor[action](...param);
|
|
378
|
+
},
|
|
379
|
+
(message, details_json) => {
|
|
380
|
+
ws.deref()?.notify(message, details_json);
|
|
381
|
+
}
|
|
382
|
+
);
|
|
383
|
+
if (!h) {
|
|
384
|
+
throw "CustomController create failed";
|
|
385
|
+
}
|
|
386
|
+
super(h);
|
|
387
|
+
ws = new WeakRef(this);
|
|
388
|
+
}
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
// src/context.ts
|
|
392
|
+
var maa4 = __toESM(require_maa());
|
|
393
|
+
|
|
394
|
+
// src/tasker.ts
|
|
395
|
+
var import_maa2 = __toESM(require_maa());
|
|
396
|
+
var TaskJob = class extends Job {
|
|
397
|
+
#tasker;
|
|
398
|
+
constructor(tasker, source, id) {
|
|
399
|
+
super(source, id);
|
|
400
|
+
this.#tasker = tasker;
|
|
401
|
+
}
|
|
402
|
+
get() {
|
|
403
|
+
if (this.done) {
|
|
404
|
+
return this.#tasker.task_detail(this.id);
|
|
405
|
+
} else {
|
|
406
|
+
return null;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
wait() {
|
|
410
|
+
const superPro = super.wait();
|
|
411
|
+
const pro = superPro;
|
|
412
|
+
pro.get = () => {
|
|
413
|
+
return new Promise((resolve) => {
|
|
414
|
+
pro.then((self) => {
|
|
415
|
+
resolve(self.get());
|
|
416
|
+
});
|
|
417
|
+
});
|
|
418
|
+
};
|
|
419
|
+
return pro;
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
var TaskerBase = class {
|
|
423
|
+
handle;
|
|
424
|
+
#source;
|
|
425
|
+
notify(message, details_json) {
|
|
426
|
+
}
|
|
427
|
+
set parsed_notify(cb) {
|
|
428
|
+
this.notify = (msg, details) => {
|
|
429
|
+
return cb({
|
|
430
|
+
msg: msg.replace(/^Task(?:er)?\./, ""),
|
|
431
|
+
...JSON.parse(details)
|
|
432
|
+
});
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
constructor(handle) {
|
|
436
|
+
this.handle = handle;
|
|
437
|
+
this.#source = {
|
|
438
|
+
status: (id) => import_maa2.default.tasker_status(this.handle, id),
|
|
439
|
+
wait: (id) => import_maa2.default.tasker_wait(this.handle, id)
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
destroy() {
|
|
443
|
+
import_maa2.default.tasker_destroy(this.handle);
|
|
444
|
+
}
|
|
445
|
+
bind(slave) {
|
|
446
|
+
let ret;
|
|
447
|
+
if (slave instanceof ControllerBase) {
|
|
448
|
+
ret = import_maa2.default.tasker_bind_controller(this.handle, slave.handle);
|
|
449
|
+
} else {
|
|
450
|
+
ret = import_maa2.default.tasker_bind_resource(this.handle, slave.handle);
|
|
451
|
+
}
|
|
452
|
+
if (!ret) {
|
|
453
|
+
throw "Tasker bind failed";
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
post_pipeline(entry, param = {}) {
|
|
457
|
+
return new TaskJob(
|
|
458
|
+
this,
|
|
459
|
+
this.#source,
|
|
460
|
+
import_maa2.default.tasker_post_pipeline(this.handle, entry, JSON.stringify(param))
|
|
461
|
+
);
|
|
462
|
+
}
|
|
463
|
+
get inited() {
|
|
464
|
+
return import_maa2.default.tasker_inited(this.handle);
|
|
465
|
+
}
|
|
466
|
+
get running() {
|
|
467
|
+
return import_maa2.default.tasker_running(this.handle);
|
|
468
|
+
}
|
|
469
|
+
post_stop() {
|
|
470
|
+
return new TaskJob(
|
|
471
|
+
this,
|
|
472
|
+
this.#source,
|
|
473
|
+
import_maa2.default.tasker_post_stop(this.handle)
|
|
474
|
+
);
|
|
475
|
+
}
|
|
476
|
+
get resource() {
|
|
477
|
+
const res = import_maa2.default.tasker_get_resource(this.handle);
|
|
478
|
+
if (res) {
|
|
479
|
+
return new ResourceBase(res);
|
|
480
|
+
} else {
|
|
481
|
+
return null;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
get controller() {
|
|
485
|
+
const ctrl = import_maa2.default.tasker_get_controller(this.handle);
|
|
486
|
+
if (ctrl) {
|
|
487
|
+
return new ControllerBase(ctrl);
|
|
488
|
+
} else {
|
|
489
|
+
return null;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
clear_cache() {
|
|
493
|
+
if (!import_maa2.default.tasker_clear_cache(this.handle)) {
|
|
494
|
+
throw "Tasker clear_cache failed";
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
recognition_detail(id) {
|
|
498
|
+
const dt = import_maa2.default.tasker_get_recognition_detail(this.handle, id);
|
|
499
|
+
if (dt) {
|
|
500
|
+
const [name, algorithm, hit, box, detail, raw, draws] = dt;
|
|
501
|
+
return {
|
|
502
|
+
name,
|
|
503
|
+
algorithm,
|
|
504
|
+
hit,
|
|
505
|
+
box,
|
|
506
|
+
detail,
|
|
507
|
+
raw,
|
|
508
|
+
draws
|
|
509
|
+
};
|
|
510
|
+
} else {
|
|
511
|
+
return null;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
node_detail(id) {
|
|
515
|
+
const dt = import_maa2.default.tasker_get_node_detail(this.handle, id);
|
|
516
|
+
if (dt) {
|
|
517
|
+
const [name, reco_id, completed] = dt;
|
|
518
|
+
return {
|
|
519
|
+
name,
|
|
520
|
+
reco: this.recognition_detail(reco_id),
|
|
521
|
+
completed
|
|
522
|
+
};
|
|
523
|
+
} else {
|
|
524
|
+
return null;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
task_detail(id) {
|
|
528
|
+
const dt = import_maa2.default.tasker_get_task_detail(this.handle, id);
|
|
529
|
+
if (dt) {
|
|
530
|
+
const [entry, node_ids, status] = dt;
|
|
531
|
+
return {
|
|
532
|
+
entry,
|
|
533
|
+
nodes: node_ids.map((i) => this.node_detail(i)),
|
|
534
|
+
status
|
|
535
|
+
};
|
|
536
|
+
} else {
|
|
537
|
+
return null;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
latest_node(task) {
|
|
541
|
+
return import_maa2.default.tasker_get_latest_node(this.handle, task);
|
|
542
|
+
}
|
|
543
|
+
};
|
|
544
|
+
var Tasker = class extends TaskerBase {
|
|
545
|
+
constructor() {
|
|
546
|
+
let ws;
|
|
547
|
+
const h = import_maa2.default.tasker_create((message, details_json) => {
|
|
548
|
+
ws.deref()?.notify(message, details_json);
|
|
549
|
+
});
|
|
550
|
+
if (!h) {
|
|
551
|
+
throw "Tasker create failed";
|
|
552
|
+
}
|
|
553
|
+
super(h);
|
|
554
|
+
ws = new WeakRef(this);
|
|
555
|
+
}
|
|
556
|
+
};
|
|
557
|
+
|
|
558
|
+
// src/context.ts
|
|
559
|
+
var Context = class _Context {
|
|
560
|
+
handle;
|
|
561
|
+
#tasker;
|
|
562
|
+
constructor(handle) {
|
|
563
|
+
this.handle = handle;
|
|
564
|
+
this.#tasker = new TaskerBase(maa4.context_get_tasker(this.handle));
|
|
565
|
+
}
|
|
566
|
+
async run_pipeline(entry, pipeline_override = {}) {
|
|
567
|
+
const id = await maa4.context_run_pipeline(
|
|
568
|
+
this.handle,
|
|
569
|
+
entry,
|
|
570
|
+
JSON.stringify(pipeline_override)
|
|
571
|
+
);
|
|
572
|
+
return this.#tasker.task_detail(id);
|
|
573
|
+
}
|
|
574
|
+
async run_recognition(entry, image, pipeline_override = {}) {
|
|
575
|
+
if (image instanceof Buffer) {
|
|
576
|
+
image = image.buffer;
|
|
577
|
+
}
|
|
578
|
+
const id = await maa4.context_run_recognition(
|
|
579
|
+
this.handle,
|
|
580
|
+
entry,
|
|
581
|
+
JSON.stringify(pipeline_override),
|
|
582
|
+
image
|
|
583
|
+
);
|
|
584
|
+
return this.#tasker.recognition_detail(id);
|
|
585
|
+
}
|
|
586
|
+
async run_action(entry, box, reco_detail, pipeline_override = {}) {
|
|
587
|
+
const id = await maa4.context_run_action(
|
|
588
|
+
this.handle,
|
|
589
|
+
entry,
|
|
590
|
+
JSON.stringify(pipeline_override),
|
|
591
|
+
box,
|
|
592
|
+
reco_detail
|
|
593
|
+
);
|
|
594
|
+
return this.#tasker.node_detail(id);
|
|
595
|
+
}
|
|
596
|
+
override_pipeline(pipeline_override) {
|
|
597
|
+
if (!maa4.context_override_pipeline(this.handle, JSON.stringify(pipeline_override))) {
|
|
598
|
+
throw "Context override_pipeline failed";
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
override_next(name, next) {
|
|
602
|
+
if (!maa4.context_override_next(this.handle, name, next)) {
|
|
603
|
+
throw "Context override_next failed";
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
get task_id() {
|
|
607
|
+
return maa4.context_get_task_id(this.handle);
|
|
608
|
+
}
|
|
609
|
+
get tasker() {
|
|
610
|
+
return this.#tasker;
|
|
611
|
+
}
|
|
612
|
+
clone() {
|
|
613
|
+
return new _Context(maa4.context_clone(this.handle));
|
|
614
|
+
}
|
|
615
|
+
};
|
|
616
|
+
|
|
617
|
+
// src/resource.ts
|
|
618
|
+
var import_maa3 = __toESM(require_maa());
|
|
619
|
+
var ResourceBase = class {
|
|
620
|
+
handle;
|
|
621
|
+
#source;
|
|
622
|
+
notify(message, details_json) {
|
|
623
|
+
}
|
|
624
|
+
set parsed_notify(cb) {
|
|
625
|
+
this.notify = (msg, details) => {
|
|
626
|
+
return cb({
|
|
627
|
+
msg: msg.replace(/^Resource\./, ""),
|
|
628
|
+
...JSON.parse(details)
|
|
629
|
+
});
|
|
630
|
+
};
|
|
631
|
+
}
|
|
632
|
+
constructor(handle) {
|
|
633
|
+
this.handle = handle;
|
|
634
|
+
this.#source = {
|
|
635
|
+
status: (id) => import_maa3.default.resource_status(this.handle, id),
|
|
636
|
+
wait: (id) => import_maa3.default.resource_wait(this.handle, id)
|
|
637
|
+
};
|
|
638
|
+
}
|
|
639
|
+
destroy() {
|
|
640
|
+
import_maa3.default.resource_destroy(this.handle);
|
|
641
|
+
}
|
|
642
|
+
set inference_device(id) {
|
|
643
|
+
if (typeof id === "string") {
|
|
644
|
+
id = import_maa3.default.InferenceDevice[id];
|
|
645
|
+
}
|
|
646
|
+
if (!import_maa3.default.resource_set_option_inference_device(this.handle, id)) {
|
|
647
|
+
throw "Resource set inference_device failed";
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
set inference_execution_provider(provider) {
|
|
651
|
+
if (!import_maa3.default.resource_set_option_inference_execution_provider(
|
|
652
|
+
this.handle,
|
|
653
|
+
import_maa3.default.InferenceExecutionProvider[provider]
|
|
654
|
+
)) {
|
|
655
|
+
throw "Resource set inference_execution_provider failed";
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
register_custom_recognizer(name, func) {
|
|
659
|
+
if (!import_maa3.default.resource_register_custom_recognition(
|
|
660
|
+
this.handle,
|
|
661
|
+
name,
|
|
662
|
+
(context, id, task, name2, param, image, roi) => {
|
|
663
|
+
const self = {
|
|
664
|
+
context: new Context(context),
|
|
665
|
+
id,
|
|
666
|
+
task,
|
|
667
|
+
name: name2,
|
|
668
|
+
param: JSON.parse(param),
|
|
669
|
+
image,
|
|
670
|
+
roi
|
|
671
|
+
};
|
|
672
|
+
return func.apply(self, [self]);
|
|
673
|
+
}
|
|
674
|
+
)) {
|
|
675
|
+
throw "Resource register_custom_recognition failed";
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
unregister_custom_recognizer(name) {
|
|
679
|
+
if (!import_maa3.default.resource_unregister_custom_recognition(this.handle, name)) {
|
|
680
|
+
throw "Resource unregister_custom_recognition failed";
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
clear_custom_recognizer() {
|
|
684
|
+
if (!import_maa3.default.resource_clear_custom_recognition(this.handle)) {
|
|
685
|
+
throw "Resource clear_custom_recognition failed";
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
register_custom_action(name, func) {
|
|
689
|
+
if (!import_maa3.default.resource_register_custom_action(
|
|
690
|
+
this.handle,
|
|
691
|
+
name,
|
|
692
|
+
(context, id, task, name2, param, recoId, box) => {
|
|
693
|
+
const self = {
|
|
694
|
+
context: new Context(context),
|
|
695
|
+
id,
|
|
696
|
+
task,
|
|
697
|
+
name: name2,
|
|
698
|
+
param: JSON.parse(param),
|
|
699
|
+
recoId,
|
|
700
|
+
box
|
|
701
|
+
};
|
|
702
|
+
return func.apply(self, [self]);
|
|
703
|
+
}
|
|
704
|
+
)) {
|
|
705
|
+
throw "Resource register_custom_action failed";
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
unregister_custom_action(name) {
|
|
709
|
+
if (!import_maa3.default.resource_unregister_custom_action(this.handle, name)) {
|
|
710
|
+
throw "Resource unregister_custom_action failed";
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
clear_custom_action() {
|
|
714
|
+
if (!import_maa3.default.resource_clear_custom_action(this.handle)) {
|
|
715
|
+
throw "Resource clear_custom_action failed";
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
post_path(path2) {
|
|
719
|
+
return new Job(this.#source, import_maa3.default.resource_post_path(this.handle, path2));
|
|
720
|
+
}
|
|
721
|
+
clear() {
|
|
722
|
+
if (!import_maa3.default.resource_clear(this.handle)) {
|
|
723
|
+
throw "Resource clear failed";
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
get loaded() {
|
|
727
|
+
return import_maa3.default.resource_loaded(this.handle);
|
|
728
|
+
}
|
|
729
|
+
get hash() {
|
|
730
|
+
return import_maa3.default.resource_get_hash(this.handle);
|
|
731
|
+
}
|
|
732
|
+
get task_list() {
|
|
733
|
+
return import_maa3.default.resource_get_task_list(this.handle);
|
|
734
|
+
}
|
|
735
|
+
};
|
|
736
|
+
var Resource = class extends ResourceBase {
|
|
737
|
+
constructor() {
|
|
738
|
+
let ws;
|
|
739
|
+
const h = import_maa3.default.resource_create((message, details_json) => {
|
|
740
|
+
ws.deref()?.notify(message, details_json);
|
|
741
|
+
});
|
|
742
|
+
if (!h) {
|
|
743
|
+
throw "Resource create failed";
|
|
744
|
+
}
|
|
745
|
+
super(h);
|
|
746
|
+
ws = new WeakRef(this);
|
|
747
|
+
}
|
|
748
|
+
};
|
|
749
|
+
|
|
750
|
+
// src/global.ts
|
|
751
|
+
var maa6 = __toESM(require_maa());
|
|
752
|
+
var Global = {
|
|
753
|
+
get version() {
|
|
754
|
+
return maa6.version();
|
|
755
|
+
},
|
|
756
|
+
set log_dir(value) {
|
|
757
|
+
if (!maa6.set_global_option_log_dir(value)) {
|
|
758
|
+
throw "Global set log_dir failed";
|
|
759
|
+
}
|
|
760
|
+
},
|
|
761
|
+
set save_draw(value) {
|
|
762
|
+
if (!maa6.set_global_option_save_draw(value)) {
|
|
763
|
+
throw "Global set save_draw failed";
|
|
764
|
+
}
|
|
765
|
+
},
|
|
766
|
+
set recording(value) {
|
|
767
|
+
if (!maa6.set_global_option_recording(value)) {
|
|
768
|
+
throw "Global set recording failed";
|
|
769
|
+
}
|
|
770
|
+
},
|
|
771
|
+
set stdout_level(value) {
|
|
772
|
+
if (!maa6.set_global_option_stdout_level(maa6.LoggingLevel[value])) {
|
|
773
|
+
throw "Global set stdout_level failed";
|
|
774
|
+
}
|
|
775
|
+
},
|
|
776
|
+
set show_hit_draw(value) {
|
|
777
|
+
if (!maa6.set_global_option_show_hit_draw(value)) {
|
|
778
|
+
throw "Global set show_hit_draw failed";
|
|
779
|
+
}
|
|
780
|
+
},
|
|
781
|
+
set debug_mode(value) {
|
|
782
|
+
if (!maa6.set_global_option_debug_mode(value)) {
|
|
783
|
+
throw "Global set debug_mode failed";
|
|
784
|
+
}
|
|
785
|
+
},
|
|
786
|
+
config_init_option(user_path, default_json = "{}") {
|
|
787
|
+
if (!maa6.config_init_option(user_path, default_json)) {
|
|
788
|
+
throw "Global config_init_option failed";
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
};
|
|
792
|
+
|
|
793
|
+
// src/pi.ts
|
|
794
|
+
var maa7 = __toESM(require_maa());
|
|
795
|
+
var Pi = {
|
|
796
|
+
__running: false,
|
|
797
|
+
notify(message, details_json) {
|
|
798
|
+
},
|
|
799
|
+
register_custom_recognizer(id, name, func) {
|
|
800
|
+
maa7.pi_register_custom_recognizer(id, name, (context, id2, task, name2, param, image, roi) => {
|
|
801
|
+
const self = {
|
|
802
|
+
context: new Context(context),
|
|
803
|
+
id: id2,
|
|
804
|
+
task,
|
|
805
|
+
name: name2,
|
|
806
|
+
param: JSON.parse(param),
|
|
807
|
+
image,
|
|
808
|
+
roi
|
|
809
|
+
};
|
|
810
|
+
return func.apply(self, [self]);
|
|
811
|
+
});
|
|
812
|
+
},
|
|
813
|
+
register_custom_action(id, name, func) {
|
|
814
|
+
maa7.pi_register_custom_action(id, name, (context, id2, task, name2, param, recoId, box) => {
|
|
815
|
+
const self = {
|
|
816
|
+
context: new Context(context),
|
|
817
|
+
id: id2,
|
|
818
|
+
task,
|
|
819
|
+
name: name2,
|
|
820
|
+
param: JSON.parse(param),
|
|
821
|
+
recoId,
|
|
822
|
+
box
|
|
823
|
+
};
|
|
824
|
+
return func.apply(self, [self]);
|
|
825
|
+
});
|
|
826
|
+
},
|
|
827
|
+
async run_cli(id, resource_path, user_path, directly) {
|
|
828
|
+
if (Pi.__running) {
|
|
829
|
+
return false;
|
|
830
|
+
}
|
|
831
|
+
Pi.__running = true;
|
|
832
|
+
const res = await maa7.pi_run_cli(
|
|
833
|
+
id,
|
|
834
|
+
resource_path,
|
|
835
|
+
user_path,
|
|
836
|
+
directly,
|
|
837
|
+
(message, details) => {
|
|
838
|
+
return Pi.notify(message, details);
|
|
839
|
+
}
|
|
840
|
+
);
|
|
841
|
+
Pi.__running = false;
|
|
842
|
+
return res;
|
|
843
|
+
}
|
|
844
|
+
};
|
|
845
|
+
|
|
846
|
+
// src/pipeline.ts
|
|
847
|
+
function pp() {
|
|
848
|
+
const self = new Proxy(
|
|
849
|
+
{
|
|
850
|
+
__json: {}
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
get(target, key) {
|
|
854
|
+
switch (key) {
|
|
855
|
+
case "done":
|
|
856
|
+
return target.__json;
|
|
857
|
+
case "recognition":
|
|
858
|
+
return (val) => {
|
|
859
|
+
target.__json[key] = val;
|
|
860
|
+
const sub_self = new Proxy(
|
|
861
|
+
{ __json: {} },
|
|
862
|
+
{
|
|
863
|
+
get(sub_target, sub_key) {
|
|
864
|
+
switch (sub_key) {
|
|
865
|
+
case "done":
|
|
866
|
+
Object.assign(target.__json, sub_target.__json);
|
|
867
|
+
return self;
|
|
868
|
+
case "threshold$":
|
|
869
|
+
case "order_by":
|
|
870
|
+
case "index":
|
|
871
|
+
case "method":
|
|
872
|
+
case "green_mask":
|
|
873
|
+
case "count":
|
|
874
|
+
case "detector":
|
|
875
|
+
case "ratio":
|
|
876
|
+
case "connected":
|
|
877
|
+
case "only_rec":
|
|
878
|
+
case "model":
|
|
879
|
+
case "custom_recognition":
|
|
880
|
+
case "custom_recognition_param":
|
|
881
|
+
return (val2) => {
|
|
882
|
+
sub_target.__json[sub_key] = val2;
|
|
883
|
+
return sub_self;
|
|
884
|
+
};
|
|
885
|
+
case "roi":
|
|
886
|
+
return (...val2) => {
|
|
887
|
+
sub_target.__json[sub_key] = val2.length === 4 ? val2 : val2[0];
|
|
888
|
+
return sub_self;
|
|
889
|
+
};
|
|
890
|
+
case "roi_offset":
|
|
891
|
+
case "template":
|
|
892
|
+
case "threshold":
|
|
893
|
+
case "lower":
|
|
894
|
+
case "upper":
|
|
895
|
+
case "expected":
|
|
896
|
+
case "replace":
|
|
897
|
+
case "labels":
|
|
898
|
+
return (...val2) => {
|
|
899
|
+
sub_target.__json[sub_key] = val2;
|
|
900
|
+
return sub_self;
|
|
901
|
+
};
|
|
902
|
+
}
|
|
903
|
+
return null;
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
);
|
|
907
|
+
return sub_self;
|
|
908
|
+
};
|
|
909
|
+
case "action":
|
|
910
|
+
return (val) => {
|
|
911
|
+
target.__json[key] = val;
|
|
912
|
+
const sub_self = new Proxy(
|
|
913
|
+
{ __json: {} },
|
|
914
|
+
{
|
|
915
|
+
get(sub_target, sub_key) {
|
|
916
|
+
switch (sub_key) {
|
|
917
|
+
case "done":
|
|
918
|
+
Object.assign(target.__json, sub_target.__json);
|
|
919
|
+
return self;
|
|
920
|
+
case "key":
|
|
921
|
+
case "input_text":
|
|
922
|
+
case "package":
|
|
923
|
+
case "custom_action":
|
|
924
|
+
case "custom_action_param":
|
|
925
|
+
return (val2) => {
|
|
926
|
+
sub_target.__json[sub_key] = val2;
|
|
927
|
+
return sub_self;
|
|
928
|
+
};
|
|
929
|
+
case "target":
|
|
930
|
+
case "begin_target":
|
|
931
|
+
case "end_target":
|
|
932
|
+
return (...val2) => {
|
|
933
|
+
sub_target.__json[sub_key] = val2.length === 4 ? val2 : val2[0];
|
|
934
|
+
return sub_self;
|
|
935
|
+
};
|
|
936
|
+
case "target_offset":
|
|
937
|
+
case "begin_offset":
|
|
938
|
+
case "end_offset":
|
|
939
|
+
return (...val2) => {
|
|
940
|
+
sub_target.__json[sub_key] = val2;
|
|
941
|
+
return sub_self;
|
|
942
|
+
};
|
|
943
|
+
}
|
|
944
|
+
return null;
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
);
|
|
948
|
+
return sub_self;
|
|
949
|
+
};
|
|
950
|
+
case "rate_limit":
|
|
951
|
+
case "timeout":
|
|
952
|
+
case "inverse":
|
|
953
|
+
case "enabled":
|
|
954
|
+
case "pre_delay":
|
|
955
|
+
case "post_delay":
|
|
956
|
+
case "focus":
|
|
957
|
+
return (val) => {
|
|
958
|
+
target.__json[key] = val;
|
|
959
|
+
return self;
|
|
960
|
+
};
|
|
961
|
+
case "next":
|
|
962
|
+
case "interrupt":
|
|
963
|
+
case "on_error":
|
|
964
|
+
return (...val) => {
|
|
965
|
+
target.__json[key] = val;
|
|
966
|
+
return self;
|
|
967
|
+
};
|
|
968
|
+
case "pre_wait_freezes":
|
|
969
|
+
case "post_wait_freezes": {
|
|
970
|
+
const sub_self = new Proxy(
|
|
971
|
+
{ __json: {} },
|
|
972
|
+
{
|
|
973
|
+
get(sub_target, sub_key) {
|
|
974
|
+
switch (sub_key) {
|
|
975
|
+
case "done":
|
|
976
|
+
target.__json[key] = sub_target.__json;
|
|
977
|
+
return self;
|
|
978
|
+
case "time":
|
|
979
|
+
case "threshold":
|
|
980
|
+
case "method":
|
|
981
|
+
case "rate_limit":
|
|
982
|
+
return (val) => {
|
|
983
|
+
sub_target.__json[sub_key] = val;
|
|
984
|
+
return sub_self;
|
|
985
|
+
};
|
|
986
|
+
case "target":
|
|
987
|
+
return (...val) => {
|
|
988
|
+
sub_target.__json[sub_key] = val.length === 4 ? val : val[0];
|
|
989
|
+
return sub_self;
|
|
990
|
+
};
|
|
991
|
+
case "target_offset":
|
|
992
|
+
return (...val) => {
|
|
993
|
+
sub_target.__json[sub_key] = val;
|
|
994
|
+
return sub_self;
|
|
995
|
+
};
|
|
996
|
+
}
|
|
997
|
+
return null;
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
);
|
|
1001
|
+
return sub_self;
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
return null;
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
);
|
|
1008
|
+
return self;
|
|
1009
|
+
}
|
|
1010
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
1011
|
+
0 && (module.exports = {
|
|
1012
|
+
AdbController,
|
|
1013
|
+
Context,
|
|
1014
|
+
ControllerBase,
|
|
1015
|
+
CustomController,
|
|
1016
|
+
CustomControllerActor,
|
|
1017
|
+
CustomControllerActorDefaultImpl,
|
|
1018
|
+
DbgController,
|
|
1019
|
+
Global,
|
|
1020
|
+
Pi,
|
|
1021
|
+
Resource,
|
|
1022
|
+
ResourceBase,
|
|
1023
|
+
Tasker,
|
|
1024
|
+
TaskerBase,
|
|
1025
|
+
Win32Controller,
|
|
1026
|
+
api,
|
|
1027
|
+
pp
|
|
1028
|
+
});
|