epii-types-rpa 1.5.6 → 1.5.7

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 (2) hide show
  1. package/package.json +1 -1
  2. package/rpa.d.ts +321 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "epii-types-rpa",
3
- "version": "1.5.6",
3
+ "version": "1.5.7",
4
4
  "description": "rpa-types",
5
5
  "author": "MrRen",
6
6
  "license": "ISC",
package/rpa.d.ts CHANGED
@@ -34,18 +34,18 @@ type PageHander = {
34
34
  evaluateFunction: (func: Function, data?: Object) => Promise<any>;
35
35
  waitForSelector: (selector: string) => Promise;
36
36
  waitForTrue: (func: Function, data?: Object) => Promise;
37
- waitForOnceLoad: (invokeFun:Function,params?: Object) => Promise;
38
- waitForClosed: (invokeFun:Function) => Promise;
37
+ waitForOnceLoad: (invokeFun: Function, params?: Object) => Promise;
38
+ waitForClosed: (invokeFun: Function) => Promise;
39
39
  execScript: (script: String, params?: Object) => Promise,
40
40
  getPageId: () => string;
41
41
  goto(url: string): Promise;
42
- setContent(html:string):Promise;
43
- close():Promise;
44
- mouse:{
45
- down:(options?:Object)=> Promise<void>;
46
- move:(x:number,y:number,options?:Object)=> Promise<void>;
47
- up:(options?:Object)=> Promise<void>;
48
- click:(x:number,y:number,options?:Object)=> Promise<void>;
42
+ setContent(html: string): Promise;
43
+ close(): Promise;
44
+ mouse: {
45
+ down: (options?: Object) => Promise<void>;
46
+ move: (x: number, y: number, options?: Object) => Promise<void>;
47
+ up: (options?: Object) => Promise<void>;
48
+ click: (x: number, y: number, options?: Object) => Promise<void>;
49
49
  }
50
50
  };
51
51
 
@@ -139,7 +139,7 @@ declare namespace rpa {
139
139
  function getAppDataDir(subDir: string): Promise<string>;
140
140
  function unlink(filepath: string): Promise<string>;
141
141
  function getChromeExePath(): Promise<string>;
142
- function getBase64ImageFromImgNode(imgNode:Element):Promise<string>;
142
+ function getBase64ImageFromImgNode(imgNode: Element): Promise<string>;
143
143
  }
144
144
  namespace page {
145
145
  function setViewport(viewport: Object): Promise
@@ -168,8 +168,8 @@ declare namespace rpa {
168
168
 
169
169
  }
170
170
  namespace browser {
171
- function newPageAndGetHandler(url?:string): Promise<PageHander>;
172
- function newIncognitoPageAndGetHandler(url?:string): Promise<PageHander>;
171
+ function newPageAndGetHandler(url?: string): Promise<PageHander>;
172
+ function newIncognitoPageAndGetHandler(url?: string): Promise<PageHander>;
173
173
  function getPageHandler(pageId: string): PageHander;
174
174
 
175
175
  function evaluateInPage(ageId: String, func: Function, data?: Object): Promise;
@@ -179,7 +179,7 @@ declare namespace rpa {
179
179
  function newPageAndEvaluate(url: String, func: Function, data: Object = {}): Promise;
180
180
  function waitOpenedPageAndEvaluate(invokeFun: Function, func: Function, data: Object = {}): Promise;
181
181
  function waitOpenedPageAndExec(invokeFun: Function, script: String, params: Object = {}): Promise;
182
- function waitOpenedPageAndGetHandler(invokeFun: Function, waitFor?:String):Promise<PageHander>;
182
+ function waitOpenedPageAndGetHandler(invokeFun: Function, waitFor?: String): Promise<PageHander>;
183
183
 
184
184
  function getNextWindowOpenUrl(beforFunc: Function, cancel: boolean): Promise;
185
185
  function getNextWindowOpenUrl(beforFunc: Function): Promise;
@@ -247,3 +247,311 @@ declare function require(path: String, readCache: Boolean = true): Promise;
247
247
  declare namespace args {
248
248
  function get(key: String, dvalue: any = null): any;
249
249
  }
250
+
251
+
252
+ type AgentManager = {
253
+ manager: {
254
+ isStart(): boolean;
255
+ stopServer(): Promise<void>;
256
+ startServer(): Promise<void>;
257
+ },
258
+ tools: {
259
+ /** 本地存储初始化状态标记 */
260
+ localStorageInitOk: boolean;
261
+
262
+ /** 系统行分隔符(如 Windows 的 \r\n、Linux 的 \n) */
263
+ EOL: string;
264
+
265
+ /**
266
+ * 重置命令根目录
267
+ * @description 将 cmdRootDir 置空,并重新初始化路径别名
268
+ */
269
+ resetCmdRootDir(): void;
270
+
271
+ /**
272
+ * 获取根目录路径
273
+ * @returns 根目录路径(优先使用 args 中的 "script-path-prefix",无则使用当前工作目录)
274
+ */
275
+ getRootDir(): string;
276
+
277
+ /**
278
+ * 解析路径(处理路径别名替换)
279
+ * @param path 原始路径(可能包含别名)
280
+ * @returns 替换别名后的路径(统一分隔符为 /)
281
+ * @example 若别名配置为 { "src": "./src" },则 "src/utils.js" 会解析为 "./src/utils.js"
282
+ */
283
+ parsePath(path: string): string;
284
+
285
+ /**
286
+ * 获取完整路径(处理别名、根目录拼接、文件存在性校验)
287
+ * @param path 原始路径(本地路径或 Web 路径)
288
+ * @param rootDir 自定义根目录(默认使用 getRootDir() 结果)
289
+ * @returns 完整路径(Web 路径直接返回,本地路径优先返回存在的文件路径,统一分隔符为 /)
290
+ */
291
+ getPath(path: string, rootDir?: string | null): string;
292
+
293
+ /**
294
+ * 获取本地路径(区分 Web 根目录和本地根目录)
295
+ * @param path 原始路径
296
+ * @returns 本地路径(若根目录是 Web 路径,则拼接当前工作目录;否则使用 getPath 结果)
297
+ */
298
+ getLocalPath(path: string): string;
299
+
300
+ /**
301
+ * 获取应用数据目录(不存在则自动创建)
302
+ * @param subDir 子目录(可选,如 "chrome-cache")
303
+ * @returns 应用数据目录路径(含子目录,确保目录已创建,创建失败会终止进程)
304
+ */
305
+ getAppDataDir(subDir?: string | null): string;
306
+
307
+ /**
308
+ * 获取 Chrome 可执行文件路径
309
+ * @returns Chrome 路径(需先通过 initChromeExePath 初始化)
310
+ */
311
+ getChromeExePath(): string;
312
+
313
+ /**
314
+ * 初始化 Chrome 可执行文件路径
315
+ * @description 优先级:args 配置的 "chrome-path" → 缓存文件(chrome.path.txt)→ 自动安装 Chrome
316
+ * @returns 初始化后的 Chrome 路径
317
+ */
318
+ initChromeExePath(): Promise<string>;
319
+
320
+ /**
321
+ * 判断是否为 Web 文件路径(基于 HTTP/HTTPS 协议)
322
+ * @param file 路径字符串
323
+ * @returns true 为 Web 文件(如 "https://xxx.js"),false 为本地文件
324
+ */
325
+ isWebFile(file: string): boolean;
326
+
327
+ /**
328
+ * 获取脚本文件内容(支持 Web 文件、加密文件、require 语法替换)
329
+ * @param file 脚本路径(本地路径或 Web URL)
330
+ * @param requireReplace 是否将同步 require 替换为 await require(默认 false)
331
+ * @returns 处理后的脚本内容(统一换行符为 \n,加密文件会自动解密)
332
+ * @throws 本地文件读取失败时,内容会返回错误信息字符串
333
+ */
334
+ getScriptContent(file: string, requireReplace?: boolean): Promise<string>;
335
+
336
+ /**
337
+ * 异步遍历数组/对象(按顺序执行回调,确保异步操作串行)
338
+ * @param list 待遍历的数组或对象
339
+ * @param callback 异步回调函数(参数:当前元素、索引/键)
340
+ * @returns 遍历结果集合(与原 list 结构一致,数组返回数组,对象返回对象)
341
+ */
342
+ forEachAsync<T = any, R = any>(
343
+ list: T[] | Record<string, T>,
344
+ callback: (item: T, key: number | string) => Promise<R>
345
+ ): Promise<(R | undefined)[] | Record<string, R>>;
346
+
347
+ /**
348
+ * 异步替换字符串(基于正则表达式,支持异步回调)
349
+ * @param str 原始字符串
350
+ * @param regex 正则表达式(需带全局匹配标记 g)
351
+ * @param asyncFn 异步替换函数(参数:匹配结果、分组1、分组2...)
352
+ * @returns 替换后的字符串
353
+ */
354
+ replaceAsync(
355
+ str: string,
356
+ regex: RegExp,
357
+ asyncFn: (...args: any[]) => Promise<string>
358
+ ): Promise<string>;
359
+
360
+ /**
361
+ * 获取脚本源码(处理 //rpa-include 指令,递归引入依赖脚本)
362
+ * @param file 脚本路径
363
+ * @returns 完整脚本源码(含所有通过 //rpa-include 引入的依赖脚本)
364
+ * @example //rpa-include=./a.js,./b.js 会自动拼接 a.js 和 b.js 的内容
365
+ */
366
+ getScriptSource(file: string): Promise<string>;
367
+
368
+ /**
369
+ * 获取脚本源码的行数组(按行分割)
370
+ * @param file 脚本路径
371
+ * @returns 脚本行数组(每行为一个元素,基于 EOL 分割)
372
+ */
373
+ getScriptSourceLines(file: string): Promise<string[]>;
374
+
375
+ /**
376
+ * 解析模板字符串(替换 {{变量名}} 为 map 中的对应值)
377
+ * @param str 模板字符串(如 "Hello {{name}}")
378
+ * @param map 变量映射对象(如 { name: "World" })
379
+ * @returns 解析后的字符串(如 "Hello World")
380
+ * @warning 内部使用 eval 执行变量读取,需确保 map 安全无恶意代码
381
+ */
382
+ parseTemplate(str: string, map: Record<string, any>): string;
383
+
384
+ /**
385
+ * 将查询字符串转为对象(如 "a=1&b=2" → { a: "1", b: "2" })
386
+ * @param str 查询字符串(不含 ? 前缀)
387
+ * @returns 解析后的键值对对象(值均为字符串类型)
388
+ */
389
+ strToObject(str: string): Record<string, string>;
390
+
391
+ /**
392
+ * 获取文件所在目录(区分 Web 文件和本地文件)
393
+ * @param file 文件路径
394
+ * @returns 目录路径(Web 文件返回 URL 路径部分,本地文件返回系统目录路径)
395
+ */
396
+ dirname(file: string): string;
397
+
398
+ /**
399
+ * 检查文件目录是否存在,不存在则创建
400
+ * @param file 文件路径(需包含文件名,如 "src/logs/2024.txt")
401
+ */
402
+ checkFileDirAndCreate(file: string): void;
403
+
404
+ /**
405
+ * 创建目录(递归创建,权限设为 0777)
406
+ * @param filedir 目录路径(如 "src/logs")
407
+ */
408
+ mkdirSync(filedir: string): void;
409
+
410
+ /**
411
+ * 创建文件所在目录(仅需传入文件路径,自动处理父目录)
412
+ * @param filePath 文件路径(如 "src/logs/2024.txt")
413
+ */
414
+ mkFilePathDirSync(filePath: string): void;
415
+
416
+ /**
417
+ * 执行系统命令(异步)
418
+ * @param cmd 命令字符串(如 "node -v"、"npm install")
419
+ * @returns 命令执行结果(stdout 输出)
420
+ * @throws 命令执行失败时抛出错误(含 stderr 信息)
421
+ */
422
+ runCmd(cmd: string): Promise<string>;
423
+
424
+ /**
425
+ * 获取当前时间(格式化字符串)
426
+ * @returns 格式化时间(如 "2024-05-20 14:30:00")
427
+ */
428
+ getNowTime(): string;
429
+
430
+ /**
431
+ * 判断是否允许指定类型的控制台输出(基于 rpa-console-types 配置)
432
+ * @param type 控制台类型(如 "log"、"error"、"warn")
433
+ * @returns true 允许输出,false 不允许
434
+ * @example 若配置为 "log,error",则 isincludeConsoleType("warn") 返回 false
435
+ */
436
+ isincludeConsoleType(type: string): boolean;
437
+
438
+ /**
439
+ * 休眠指定时间(异步延迟)
440
+ * @param time 休眠时间(毫秒)
441
+ * @returns 休眠结束后的 Promise
442
+ */
443
+ sleep(time: number): Promise<void>;
444
+
445
+ /**
446
+ * 生成随机字符串(排除易混淆字符)
447
+ * @param e 字符串长度(默认 32)
448
+ * @returns 随机字符串(包含大写字母、小写字母、数字,不含 I、O、l、0 等易混淆字符)
449
+ */
450
+ randomString(e?: number): string;
451
+
452
+ /**
453
+ * 等待页面初始化完成(监听页面 ___rpa__init__ready 标记)
454
+ * @param page 页面对象(需包含 ___rpa__init__ready 属性,标记页面是否初始化完成)
455
+ * @returns 页面初始化完成后的 Promise(每 200ms 检查一次状态)
456
+ */
457
+ waitForPageReady(page: { ___rpa__init__ready?: boolean }): Promise<void>;
458
+ },
459
+ changeAgent(agent?: {
460
+ agentId: String,
461
+ config: Object,
462
+ name: String
463
+
464
+ }): void,
465
+ viewConsole(msg: String, color?: String): void,
466
+ args: {
467
+
468
+
469
+ /**
470
+ * 获取当前核心执行动作
471
+ * @returns 动作字符串(如 "server"、"run-script")
472
+ */
473
+ getAction(): ArgsData["action"];
474
+
475
+ /**
476
+ * 获取命令行普通参数列表
477
+ * @returns 普通参数数组(非 --key=value 形式的参数)
478
+ */
479
+ getParams(): ArgsParams;
480
+
481
+ /**
482
+ * 判断当前执行动作是否与目标动作匹配
483
+ * @param action 目标动作(如 "run-script")
484
+ * @returns 匹配结果(true 为匹配,false 为不匹配)
485
+ */
486
+ isAction(action: string): boolean;
487
+
488
+ /**
489
+ * 判断参数是否为「布尔真值」
490
+ * @description 真值判定规则:参数存在 + (值为 true / 值为 1 / 值为 "true")
491
+ * @param key 参数键名
492
+ * @returns 真值判定结果
493
+ */
494
+ getTrueValue(key: keyof ArgsData | string): boolean;
495
+
496
+ /**
497
+ * 检查是否包含指定参数键
498
+ * @param key 参数键名(支持自定义字段)
499
+ * @returns 存在性结果(true 为包含,false 为不包含)
500
+ */
501
+ containsKey(key: keyof ArgsData | string): boolean;
502
+
503
+ /**
504
+ * 获取指定参数的值(支持默认值兜底)
505
+ * @param key 参数键名
506
+ * @param dvalue 默认值(参数不存在时返回)
507
+ * @returns 参数值或默认值
508
+ */
509
+ get(
510
+ key: String,
511
+ dvalue?: any
512
+ ): any;
513
+
514
+ /**
515
+ * 获取项目根目录(即 data.__root__)
516
+ * @returns 项目根目录路径
517
+ */
518
+ getRootDir(): String;
519
+
520
+ /**
521
+ * 合并配置到 data 中(覆盖已有键)
522
+ * @param map 待合并的配置对象
523
+ */
524
+ merge(map: Record<string, any>): void;
525
+
526
+ /**
527
+ * 手动设置参数值(覆盖原有值)
528
+ * @param key 参数键名
529
+ * @param value 待设置的值
530
+ */
531
+ set(key: string, value: any): void;
532
+
533
+ /**
534
+ * 完整配置数据对象(存储所有参数,支持直接读写)
535
+ */
536
+ data: Record<string, any>;
537
+ },
538
+ http: {
539
+ get: (url: string) => Promise<String>;
540
+
541
+ /**
542
+ * 发送 POST 请求
543
+ * @param url 请求地址
544
+ * @param data 请求数据(格式根据实际实现,如 FormData、string 等)
545
+ * @returns 请求结果(返回类型根据实际实现补充,如 Promise<any>)
546
+ */
547
+ post: (url: string, data: any) => Promise<String>;
548
+
549
+ /**
550
+ * 发送 JSON 格式的 POST 请求
551
+ * @param url 请求地址
552
+ * @param data JSON 请求数据(默认空对象)
553
+ * @returns 请求结果(返回类型根据实际实现补充,如 Promise<any>)
554
+ */
555
+ postJson: (url: string, data?: Record<string, any>) => Promise<String>;
556
+ }
557
+ }