@xunlei-open/miniapp-types 0.1.1-beta.0 → 0.1.1-beta.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/README.md +5 -3
- package/dist/index.d.cts +173 -15
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +173 -15
- package/dist/index.d.mts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# @xunlei-open/miniapp-types
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
迅雷微应用清单、任务 API、生命周期事件和运行时能力的 TypeScript 类型。
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
pnpm add -D @xunlei-open/miniapp-types
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
在 `tsconfig.json`
|
|
9
|
+
在 `tsconfig.json` 的 `compilerOptions.types` 中加入:
|
|
10
10
|
|
|
11
11
|
```json
|
|
12
12
|
{
|
|
@@ -16,8 +16,10 @@ pnpm add -D @xunlei-open/miniapp-types
|
|
|
16
16
|
}
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
可获得全局 `xunlei`、`MessageError` 的类型提示,也可按需导入:
|
|
20
20
|
|
|
21
21
|
```ts
|
|
22
22
|
import type { MiniappManifest, OnResolveContext } from '@xunlei-open/miniapp-types'
|
|
23
23
|
```
|
|
24
|
+
|
|
25
|
+
本包只提供类型,运行时能力由迅雷宿主注入。API 用法见[官方文档](https://open.xunlei.com/doc/miniapp/platform-api)。
|
package/dist/index.d.cts
CHANGED
|
@@ -9,7 +9,7 @@ export interface MiniappManifest {
|
|
|
9
9
|
title: string;
|
|
10
10
|
/** 微应用简介,最多 1024 个字符。 */
|
|
11
11
|
description?: string;
|
|
12
|
-
/**
|
|
12
|
+
/** 微应用版本:遵循语义化版本规范,例如 "1.0.0" */
|
|
13
13
|
version: string;
|
|
14
14
|
/** 微应用作者。 */
|
|
15
15
|
author?: string;
|
|
@@ -114,7 +114,6 @@ export interface FileInfo {
|
|
|
114
114
|
path: string;
|
|
115
115
|
/** 文件大小,单位为字节。 */
|
|
116
116
|
size: number;
|
|
117
|
-
req?: Request;
|
|
118
117
|
}
|
|
119
118
|
export interface Resource {
|
|
120
119
|
/** 资源名称;资源为文件夹时,表示文件夹名称。 */
|
|
@@ -137,7 +136,6 @@ export interface Options {
|
|
|
137
136
|
/** 下载的附加选项。 */
|
|
138
137
|
extra?: OptsExtra;
|
|
139
138
|
}
|
|
140
|
-
export type ExtractStatus = "" | "queued" | "waitingParts" | "extracting" | "done" | "error";
|
|
141
139
|
export interface TaskProgress {
|
|
142
140
|
/** 下载已用时间,单位为纳秒。 */
|
|
143
141
|
used: number;
|
|
@@ -156,9 +154,11 @@ export interface Task {
|
|
|
156
154
|
name: string;
|
|
157
155
|
/** 任务元数据,包含请求、资源和下载选项。 */
|
|
158
156
|
meta: {
|
|
159
|
-
|
|
157
|
+
/** 任务详情不返回请求的附加选项。 */
|
|
158
|
+
req: Omit<Request, "extra">;
|
|
160
159
|
res: Resource;
|
|
161
|
-
|
|
160
|
+
/** 任务详情不返回下载的附加选项。 */
|
|
161
|
+
opts: Omit<Options, "extra">;
|
|
162
162
|
};
|
|
163
163
|
/** 任务状态。 */
|
|
164
164
|
status: TaskStatus;
|
|
@@ -219,24 +219,34 @@ export interface TaskCreateGroupInput {
|
|
|
219
219
|
opts?: Options;
|
|
220
220
|
}
|
|
221
221
|
export interface TaskListInput {
|
|
222
|
+
/** 跳过的任务数量,默认从 0 开始。 */
|
|
222
223
|
offset?: number;
|
|
224
|
+
/** 每页最多返回的任务数量,宿主默认值由运行时约定。 */
|
|
223
225
|
limit?: number;
|
|
226
|
+
/** 按任务状态筛选。 */
|
|
224
227
|
status?: Task["status"] | Task["status"][];
|
|
228
|
+
/** 创建时间排序方式,默认倒序。 */
|
|
225
229
|
sort?: "createdAtAsc" | "createdAtDesc";
|
|
226
230
|
}
|
|
227
231
|
export interface TaskListResult {
|
|
232
|
+
/** 当前页的任务标识;详情通过 tasks.detail 单独查询。 */
|
|
228
233
|
ids: string[];
|
|
234
|
+
/** 满足筛选条件的任务总数。 */
|
|
229
235
|
total: number;
|
|
230
|
-
offset: number;
|
|
231
|
-
limit: number;
|
|
232
236
|
}
|
|
233
237
|
export interface TaskDetailInput {
|
|
234
238
|
id: string;
|
|
235
239
|
}
|
|
236
240
|
export interface TaskUpdateInput {
|
|
241
|
+
/** 要更新的任务标识。 */
|
|
237
242
|
id: string;
|
|
238
|
-
|
|
239
|
-
|
|
243
|
+
/** 要更新的请求字段;当前仅支持 labels。 */
|
|
244
|
+
req?: {
|
|
245
|
+
/** 替换任务请求的标签。 */
|
|
246
|
+
labels?: {
|
|
247
|
+
[key: string]: string;
|
|
248
|
+
};
|
|
249
|
+
};
|
|
240
250
|
}
|
|
241
251
|
export interface TaskDeleteInput {
|
|
242
252
|
id: string;
|
|
@@ -246,8 +256,14 @@ export interface TaskDeleteResult {
|
|
|
246
256
|
id: string;
|
|
247
257
|
deleted: boolean;
|
|
248
258
|
}
|
|
249
|
-
/**
|
|
250
|
-
export
|
|
259
|
+
/** 仅在 onResolve 解析结果中允许为文件指定下载请求。 */
|
|
260
|
+
export interface OnResolveFileInfo extends FileInfo {
|
|
261
|
+
req?: Request;
|
|
262
|
+
}
|
|
263
|
+
/** 资源解析事件(onResolve)的结果允许省略名称和总大小。 */
|
|
264
|
+
export type OnResolveResource = Omit<Resource, "name" | "size" | "files"> & Partial<Pick<Resource, "name" | "size">> & {
|
|
265
|
+
files: OnResolveFileInfo[];
|
|
266
|
+
};
|
|
251
267
|
/** 资源解析事件(onResolve)的上下文。 */
|
|
252
268
|
export interface OnResolveContext {
|
|
253
269
|
/** 用户请求信息(只读)。 */
|
|
@@ -334,7 +350,7 @@ export interface XunleiTasks {
|
|
|
334
350
|
list(input?: TaskListInput): Promise<TaskListResult>;
|
|
335
351
|
/** 查询普通任务或任务组的详情。 */
|
|
336
352
|
detail(input: TaskDetailInput): Promise<TaskDetailResult>;
|
|
337
|
-
/**
|
|
353
|
+
/** 更新任务标签;当前仅支持 req.labels。 */
|
|
338
354
|
update(input: TaskUpdateInput): Promise<Task>;
|
|
339
355
|
/** 删除任务,并按参数决定是否删除文件。 */
|
|
340
356
|
delete(input: TaskDeleteInput): Promise<TaskDeleteResult>;
|
|
@@ -363,60 +379,143 @@ export interface WebviewOpenOptions {
|
|
|
363
379
|
* 非本地开发环境中,事件脚本打开的网页窗口会被强制隐藏。
|
|
364
380
|
*/
|
|
365
381
|
headless?: boolean;
|
|
382
|
+
/** 窗口标题。 */
|
|
366
383
|
title?: string;
|
|
384
|
+
/** 窗口宽度。 */
|
|
367
385
|
width?: number;
|
|
386
|
+
/** 窗口高度。 */
|
|
368
387
|
height?: number;
|
|
388
|
+
/** WebView 使用的 User-Agent。 */
|
|
369
389
|
userAgent?: string;
|
|
370
390
|
}
|
|
371
391
|
export interface WebviewGotoOptions {
|
|
392
|
+
/** 导航超时时间,单位为毫秒。 */
|
|
372
393
|
timeoutMs?: number;
|
|
394
|
+
/** 等待页面加载完成的阶段。 */
|
|
373
395
|
waitUntil?: "load" | "domcontentloaded";
|
|
374
396
|
}
|
|
375
397
|
export interface WebviewClickOptions {
|
|
398
|
+
/** 点击前等待的时间,单位为毫秒。 */
|
|
376
399
|
delay?: number;
|
|
377
400
|
}
|
|
378
401
|
export interface WebviewTypeOptions {
|
|
402
|
+
/** 输入字符之间的延迟,单位为毫秒。 */
|
|
379
403
|
delay?: number;
|
|
380
404
|
}
|
|
381
405
|
export interface WebviewWaitOptions {
|
|
406
|
+
/** 最长等待时间,单位为毫秒。 */
|
|
382
407
|
timeoutMs?: number;
|
|
408
|
+
/** 轮询间隔,单位为毫秒。 */
|
|
383
409
|
pollIntervalMs?: number;
|
|
384
410
|
}
|
|
385
411
|
export interface WebviewWaitForSelectorOptions extends WebviewWaitOptions {
|
|
412
|
+
/** 只在元素可见时视为匹配。 */
|
|
386
413
|
visible?: boolean;
|
|
414
|
+
/** 只在元素隐藏或不存在时视为匹配。 */
|
|
387
415
|
hidden?: boolean;
|
|
388
416
|
}
|
|
389
417
|
export interface WebviewCookie {
|
|
418
|
+
/** Cookie 名称。 */
|
|
390
419
|
name: string;
|
|
420
|
+
/** Cookie 值。 */
|
|
391
421
|
value: string;
|
|
422
|
+
/** Cookie 作用域。 */
|
|
392
423
|
domain?: string;
|
|
424
|
+
/** Cookie 路径。 */
|
|
393
425
|
path?: string;
|
|
426
|
+
/** 过期时间,可传日期字符串、Unix 时间戳或 Date。 */
|
|
394
427
|
expires?: string | number | Date;
|
|
428
|
+
/** 是否仅通过 HTTPS 发送。 */
|
|
395
429
|
secure?: boolean;
|
|
430
|
+
/** 是否禁止页面脚本读取。 */
|
|
396
431
|
httpOnly?: boolean;
|
|
397
432
|
}
|
|
433
|
+
/** 可直接执行的 JavaScript 字符串,或会被序列化到 WebView 中执行的函数。 */
|
|
398
434
|
export type WebviewExecutable<T = unknown> = string | ((...args: unknown[]) => T | Promise<T>);
|
|
399
435
|
export interface WebviewPage {
|
|
436
|
+
/** 在后续导航的页面上下文创建前注入脚本。 */
|
|
400
437
|
addInitScript(script: string): Promise<void>;
|
|
438
|
+
/** 导航到指定网址。 */
|
|
401
439
|
goto(url: string, opts?: WebviewGotoOptions): Promise<void>;
|
|
440
|
+
/** 在 WebView 页面上下文中执行脚本。 */
|
|
402
441
|
execute<T = unknown>(scriptOrFn: WebviewExecutable<T>, ...args: unknown[]): Promise<T>;
|
|
442
|
+
/** 聚焦指定元素。 */
|
|
403
443
|
focus(selector: string): Promise<void>;
|
|
444
|
+
/** 点击指定元素。 */
|
|
404
445
|
click(selector: string, opts?: WebviewClickOptions): Promise<void>;
|
|
446
|
+
/** 向指定元素输入文本。 */
|
|
405
447
|
type(selector: string, text: string, opts?: WebviewTypeOptions): Promise<void>;
|
|
448
|
+
/** 等待选择器匹配;超时时返回 false。 */
|
|
406
449
|
waitForSelector(selector: string, opts?: WebviewWaitForSelectorOptions): Promise<boolean>;
|
|
450
|
+
/** 等待脚本返回真值;超时时返回 null。 */
|
|
407
451
|
waitForFunction<T = unknown>(scriptOrFn: WebviewExecutable<T>, ...args: unknown[]): Promise<T | null>;
|
|
452
|
+
/** 读取当前 WebView 的 Cookie。 */
|
|
408
453
|
getCookies(): Promise<WebviewCookie[]>;
|
|
454
|
+
/** 写入一个 Cookie。 */
|
|
409
455
|
setCookie(cookie: WebviewCookie): Promise<void>;
|
|
456
|
+
/** 删除一个 Cookie。 */
|
|
410
457
|
deleteCookie(cookie: WebviewCookie): Promise<void>;
|
|
458
|
+
/** 清空当前 WebView session 的 Cookie。 */
|
|
411
459
|
clearCookies(): Promise<void>;
|
|
460
|
+
/** 返回当前页面地址。 */
|
|
412
461
|
url(): Promise<string>;
|
|
462
|
+
/** 返回当前页面的 HTML。 */
|
|
413
463
|
content(): Promise<string>;
|
|
464
|
+
/** 关闭当前 WebView 页面。 */
|
|
414
465
|
close(): Promise<void>;
|
|
415
466
|
}
|
|
416
467
|
export interface XunleiRuntimeWebview {
|
|
417
468
|
/** 检查内嵌网页能力是否可用。 */
|
|
418
469
|
isAvailable(): Promise<boolean>;
|
|
419
|
-
/**
|
|
470
|
+
/**
|
|
471
|
+
* 打开内嵌网页并返回页面操作接口。
|
|
472
|
+
*
|
|
473
|
+
* WebView 页面不会注入 `xunlei`,页面操作应通过返回的 `WebviewPage` 完成。
|
|
474
|
+
*
|
|
475
|
+
* @example
|
|
476
|
+
* ```ts
|
|
477
|
+
* if (!(await xunlei.runtime.webview.isAvailable())) {
|
|
478
|
+
* throw new Error("当前宿主不支持 WebView");
|
|
479
|
+
* }
|
|
480
|
+
*
|
|
481
|
+
* const page = await xunlei.runtime.webview.open({
|
|
482
|
+
* headless: true,
|
|
483
|
+
* title: "页面探测",
|
|
484
|
+
* width: 960,
|
|
485
|
+
* height: 720,
|
|
486
|
+
* });
|
|
487
|
+
*
|
|
488
|
+
* try {
|
|
489
|
+
* await page.addInitScript(
|
|
490
|
+
* "window.__miniappStartedAt = Date.now()",
|
|
491
|
+
* );
|
|
492
|
+
* await page.goto("https://example.com", {
|
|
493
|
+
* waitUntil: "domcontentloaded",
|
|
494
|
+
* timeoutMs: 10_000,
|
|
495
|
+
* });
|
|
496
|
+
*
|
|
497
|
+
* if (!(await page.waitForSelector("body", { timeoutMs: 5_000 }))) {
|
|
498
|
+
* throw new Error("页面未加载完成");
|
|
499
|
+
* }
|
|
500
|
+
*
|
|
501
|
+
* const title = await page.execute(() => document.title);
|
|
502
|
+
* const ready = await page.waitForFunction(
|
|
503
|
+
* () => document.readyState === "complete",
|
|
504
|
+
* );
|
|
505
|
+
* const result = {
|
|
506
|
+
* title,
|
|
507
|
+
* ready,
|
|
508
|
+
* url: await page.url(),
|
|
509
|
+
* html: await page.content(),
|
|
510
|
+
* cookies: await page.getCookies(),
|
|
511
|
+
* };
|
|
512
|
+
*
|
|
513
|
+
* console.log(result);
|
|
514
|
+
* } finally {
|
|
515
|
+
* await page.close();
|
|
516
|
+
* }
|
|
517
|
+
* ```
|
|
518
|
+
*/
|
|
420
519
|
open(opts?: WebviewOpenOptions): Promise<WebviewPage>;
|
|
421
520
|
}
|
|
422
521
|
export interface BlobOpenRequest {
|
|
@@ -435,9 +534,68 @@ export interface BlobObjectURLOptions {
|
|
|
435
534
|
range?: boolean;
|
|
436
535
|
}
|
|
437
536
|
export interface XunleiRuntimeBlob {
|
|
438
|
-
/**
|
|
537
|
+
/**
|
|
538
|
+
* 为二进制数据对象或按需打开的数据流创建本地 HTTP 地址。
|
|
539
|
+
*
|
|
540
|
+
* @example 直接传入 Blob
|
|
541
|
+
* ```ts
|
|
542
|
+
* const blob = new Blob(["由微应用生成的内容\n"], {
|
|
543
|
+
* type: "text/plain",
|
|
544
|
+
* });
|
|
545
|
+
* const url = await xunlei.runtime.blob.createObjectURL(blob);
|
|
546
|
+
*
|
|
547
|
+
* try {
|
|
548
|
+
* const task = await xunlei.tasks.create({
|
|
549
|
+
* req: { url },
|
|
550
|
+
* opts: { name: "generated.txt" },
|
|
551
|
+
* });
|
|
552
|
+
* console.log(task.id);
|
|
553
|
+
* // 等任务或其他消费者不再使用 url 后再撤销。
|
|
554
|
+
* } catch (error) {
|
|
555
|
+
* await xunlei.runtime.blob.revokeObjectURL(url);
|
|
556
|
+
* throw error;
|
|
557
|
+
* }
|
|
558
|
+
* ```
|
|
559
|
+
*
|
|
560
|
+
* @example 传入 BlobOpener,按需返回新的流
|
|
561
|
+
* ```ts
|
|
562
|
+
* const sourceUrl = "https://cdn.example.com/video.mp4";
|
|
563
|
+
* const contentLength = 100 * 1024 * 1024;
|
|
564
|
+
*
|
|
565
|
+
* const url = await xunlei.runtime.blob.createObjectURL(
|
|
566
|
+
* async ({ offset, end }) => {
|
|
567
|
+
* const rangeEnd = end >= 0 ? end : "";
|
|
568
|
+
* const response = await fetch(sourceUrl, {
|
|
569
|
+
* headers: { Range: `bytes=${offset}-${rangeEnd}` },
|
|
570
|
+
* });
|
|
571
|
+
* if (response.status !== 206 || !response.body) {
|
|
572
|
+
* throw new Error("源文件未返回可用的分段数据");
|
|
573
|
+
* }
|
|
574
|
+
* return response.body;
|
|
575
|
+
* },
|
|
576
|
+
* {
|
|
577
|
+
* contentType: "video/mp4",
|
|
578
|
+
* size: contentLength,
|
|
579
|
+
* range: true,
|
|
580
|
+
* },
|
|
581
|
+
* );
|
|
582
|
+
*
|
|
583
|
+
* await xunlei.tasks.create({
|
|
584
|
+
* req: { url },
|
|
585
|
+
* opts: { name: "video.mp4" },
|
|
586
|
+
* });
|
|
587
|
+
* // 每次 opener 调用都要返回新的 ReadableStream;确认任务不再需要 url 后再撤销。
|
|
588
|
+
* ```
|
|
589
|
+
*/
|
|
439
590
|
createObjectURL(source: Blob | BlobOpener, options?: BlobObjectURLOptions): Promise<string>;
|
|
440
|
-
/**
|
|
591
|
+
/**
|
|
592
|
+
* 撤销此前由 createObjectURL 创建的地址。
|
|
593
|
+
*
|
|
594
|
+
* @example
|
|
595
|
+
* ```ts
|
|
596
|
+
* await xunlei.runtime.blob.revokeObjectURL(url);
|
|
597
|
+
* ```
|
|
598
|
+
*/
|
|
441
599
|
revokeObjectURL(url: string): Promise<void>;
|
|
442
600
|
}
|
|
443
601
|
export interface XunleiRuntime {
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;iBAGiB;;EAEhB;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,aAAa;;EAEb;;EAEA,QAAQ;;EAER,SAAS;;EAET,cAAc;;EAEd,UAAU;;EAEV,UAAU;;EAEV,WAAW;;YAGA;iBAWK;GACf;;EAED;;YAGW;iBAEK;;EAEhB,OAAO;;EAEP;;iBAGgB;EAChB;EACA;;iBAGgB;EAChB;EACA;;iBAGgB;EAChB,OAAO;EACP,QAAQ;EACR;;YAGW;YAMA;EACX;EACA;;YAGW;iBAEK;EAChB;EACA;EACA;EACA;EACA,QAAQ;EACR,UAAU;;iBAGM;EAChB;EACA,OAAO;;;YAMI;YAEA;;YASA;EACX;EACA;EACA;EACA;;iBAGgB;EAChB,SAAS;;YAGE,WAAW;iBAEN;;EAEhB;;EAEA,QAAQ;;EAER;KAAY;;;iBAGI,yBAAyB;;EAEzC,UAAU,QAAQ,yBAAyB;;EAE3C,SAAS,aAAa,gBAAgB;;EAEtC,SAAS,cAAc;;iBAGP;EAChB;;EAEA;;EAEA
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -9,7 +9,7 @@ export interface MiniappManifest {
|
|
|
9
9
|
title: string;
|
|
10
10
|
/** 微应用简介,最多 1024 个字符。 */
|
|
11
11
|
description?: string;
|
|
12
|
-
/**
|
|
12
|
+
/** 微应用版本:遵循语义化版本规范,例如 "1.0.0" */
|
|
13
13
|
version: string;
|
|
14
14
|
/** 微应用作者。 */
|
|
15
15
|
author?: string;
|
|
@@ -114,7 +114,6 @@ export interface FileInfo {
|
|
|
114
114
|
path: string;
|
|
115
115
|
/** 文件大小,单位为字节。 */
|
|
116
116
|
size: number;
|
|
117
|
-
req?: Request;
|
|
118
117
|
}
|
|
119
118
|
export interface Resource {
|
|
120
119
|
/** 资源名称;资源为文件夹时,表示文件夹名称。 */
|
|
@@ -137,7 +136,6 @@ export interface Options {
|
|
|
137
136
|
/** 下载的附加选项。 */
|
|
138
137
|
extra?: OptsExtra;
|
|
139
138
|
}
|
|
140
|
-
export type ExtractStatus = "" | "queued" | "waitingParts" | "extracting" | "done" | "error";
|
|
141
139
|
export interface TaskProgress {
|
|
142
140
|
/** 下载已用时间,单位为纳秒。 */
|
|
143
141
|
used: number;
|
|
@@ -156,9 +154,11 @@ export interface Task {
|
|
|
156
154
|
name: string;
|
|
157
155
|
/** 任务元数据,包含请求、资源和下载选项。 */
|
|
158
156
|
meta: {
|
|
159
|
-
|
|
157
|
+
/** 任务详情不返回请求的附加选项。 */
|
|
158
|
+
req: Omit<Request, "extra">;
|
|
160
159
|
res: Resource;
|
|
161
|
-
|
|
160
|
+
/** 任务详情不返回下载的附加选项。 */
|
|
161
|
+
opts: Omit<Options, "extra">;
|
|
162
162
|
};
|
|
163
163
|
/** 任务状态。 */
|
|
164
164
|
status: TaskStatus;
|
|
@@ -219,24 +219,34 @@ export interface TaskCreateGroupInput {
|
|
|
219
219
|
opts?: Options;
|
|
220
220
|
}
|
|
221
221
|
export interface TaskListInput {
|
|
222
|
+
/** 跳过的任务数量,默认从 0 开始。 */
|
|
222
223
|
offset?: number;
|
|
224
|
+
/** 每页最多返回的任务数量,宿主默认值由运行时约定。 */
|
|
223
225
|
limit?: number;
|
|
226
|
+
/** 按任务状态筛选。 */
|
|
224
227
|
status?: Task["status"] | Task["status"][];
|
|
228
|
+
/** 创建时间排序方式,默认倒序。 */
|
|
225
229
|
sort?: "createdAtAsc" | "createdAtDesc";
|
|
226
230
|
}
|
|
227
231
|
export interface TaskListResult {
|
|
232
|
+
/** 当前页的任务标识;详情通过 tasks.detail 单独查询。 */
|
|
228
233
|
ids: string[];
|
|
234
|
+
/** 满足筛选条件的任务总数。 */
|
|
229
235
|
total: number;
|
|
230
|
-
offset: number;
|
|
231
|
-
limit: number;
|
|
232
236
|
}
|
|
233
237
|
export interface TaskDetailInput {
|
|
234
238
|
id: string;
|
|
235
239
|
}
|
|
236
240
|
export interface TaskUpdateInput {
|
|
241
|
+
/** 要更新的任务标识。 */
|
|
237
242
|
id: string;
|
|
238
|
-
|
|
239
|
-
|
|
243
|
+
/** 要更新的请求字段;当前仅支持 labels。 */
|
|
244
|
+
req?: {
|
|
245
|
+
/** 替换任务请求的标签。 */
|
|
246
|
+
labels?: {
|
|
247
|
+
[key: string]: string;
|
|
248
|
+
};
|
|
249
|
+
};
|
|
240
250
|
}
|
|
241
251
|
export interface TaskDeleteInput {
|
|
242
252
|
id: string;
|
|
@@ -246,8 +256,14 @@ export interface TaskDeleteResult {
|
|
|
246
256
|
id: string;
|
|
247
257
|
deleted: boolean;
|
|
248
258
|
}
|
|
249
|
-
/**
|
|
250
|
-
export
|
|
259
|
+
/** 仅在 onResolve 解析结果中允许为文件指定下载请求。 */
|
|
260
|
+
export interface OnResolveFileInfo extends FileInfo {
|
|
261
|
+
req?: Request;
|
|
262
|
+
}
|
|
263
|
+
/** 资源解析事件(onResolve)的结果允许省略名称和总大小。 */
|
|
264
|
+
export type OnResolveResource = Omit<Resource, "name" | "size" | "files"> & Partial<Pick<Resource, "name" | "size">> & {
|
|
265
|
+
files: OnResolveFileInfo[];
|
|
266
|
+
};
|
|
251
267
|
/** 资源解析事件(onResolve)的上下文。 */
|
|
252
268
|
export interface OnResolveContext {
|
|
253
269
|
/** 用户请求信息(只读)。 */
|
|
@@ -334,7 +350,7 @@ export interface XunleiTasks {
|
|
|
334
350
|
list(input?: TaskListInput): Promise<TaskListResult>;
|
|
335
351
|
/** 查询普通任务或任务组的详情。 */
|
|
336
352
|
detail(input: TaskDetailInput): Promise<TaskDetailResult>;
|
|
337
|
-
/**
|
|
353
|
+
/** 更新任务标签;当前仅支持 req.labels。 */
|
|
338
354
|
update(input: TaskUpdateInput): Promise<Task>;
|
|
339
355
|
/** 删除任务,并按参数决定是否删除文件。 */
|
|
340
356
|
delete(input: TaskDeleteInput): Promise<TaskDeleteResult>;
|
|
@@ -363,60 +379,143 @@ export interface WebviewOpenOptions {
|
|
|
363
379
|
* 非本地开发环境中,事件脚本打开的网页窗口会被强制隐藏。
|
|
364
380
|
*/
|
|
365
381
|
headless?: boolean;
|
|
382
|
+
/** 窗口标题。 */
|
|
366
383
|
title?: string;
|
|
384
|
+
/** 窗口宽度。 */
|
|
367
385
|
width?: number;
|
|
386
|
+
/** 窗口高度。 */
|
|
368
387
|
height?: number;
|
|
388
|
+
/** WebView 使用的 User-Agent。 */
|
|
369
389
|
userAgent?: string;
|
|
370
390
|
}
|
|
371
391
|
export interface WebviewGotoOptions {
|
|
392
|
+
/** 导航超时时间,单位为毫秒。 */
|
|
372
393
|
timeoutMs?: number;
|
|
394
|
+
/** 等待页面加载完成的阶段。 */
|
|
373
395
|
waitUntil?: "load" | "domcontentloaded";
|
|
374
396
|
}
|
|
375
397
|
export interface WebviewClickOptions {
|
|
398
|
+
/** 点击前等待的时间,单位为毫秒。 */
|
|
376
399
|
delay?: number;
|
|
377
400
|
}
|
|
378
401
|
export interface WebviewTypeOptions {
|
|
402
|
+
/** 输入字符之间的延迟,单位为毫秒。 */
|
|
379
403
|
delay?: number;
|
|
380
404
|
}
|
|
381
405
|
export interface WebviewWaitOptions {
|
|
406
|
+
/** 最长等待时间,单位为毫秒。 */
|
|
382
407
|
timeoutMs?: number;
|
|
408
|
+
/** 轮询间隔,单位为毫秒。 */
|
|
383
409
|
pollIntervalMs?: number;
|
|
384
410
|
}
|
|
385
411
|
export interface WebviewWaitForSelectorOptions extends WebviewWaitOptions {
|
|
412
|
+
/** 只在元素可见时视为匹配。 */
|
|
386
413
|
visible?: boolean;
|
|
414
|
+
/** 只在元素隐藏或不存在时视为匹配。 */
|
|
387
415
|
hidden?: boolean;
|
|
388
416
|
}
|
|
389
417
|
export interface WebviewCookie {
|
|
418
|
+
/** Cookie 名称。 */
|
|
390
419
|
name: string;
|
|
420
|
+
/** Cookie 值。 */
|
|
391
421
|
value: string;
|
|
422
|
+
/** Cookie 作用域。 */
|
|
392
423
|
domain?: string;
|
|
424
|
+
/** Cookie 路径。 */
|
|
393
425
|
path?: string;
|
|
426
|
+
/** 过期时间,可传日期字符串、Unix 时间戳或 Date。 */
|
|
394
427
|
expires?: string | number | Date;
|
|
428
|
+
/** 是否仅通过 HTTPS 发送。 */
|
|
395
429
|
secure?: boolean;
|
|
430
|
+
/** 是否禁止页面脚本读取。 */
|
|
396
431
|
httpOnly?: boolean;
|
|
397
432
|
}
|
|
433
|
+
/** 可直接执行的 JavaScript 字符串,或会被序列化到 WebView 中执行的函数。 */
|
|
398
434
|
export type WebviewExecutable<T = unknown> = string | ((...args: unknown[]) => T | Promise<T>);
|
|
399
435
|
export interface WebviewPage {
|
|
436
|
+
/** 在后续导航的页面上下文创建前注入脚本。 */
|
|
400
437
|
addInitScript(script: string): Promise<void>;
|
|
438
|
+
/** 导航到指定网址。 */
|
|
401
439
|
goto(url: string, opts?: WebviewGotoOptions): Promise<void>;
|
|
440
|
+
/** 在 WebView 页面上下文中执行脚本。 */
|
|
402
441
|
execute<T = unknown>(scriptOrFn: WebviewExecutable<T>, ...args: unknown[]): Promise<T>;
|
|
442
|
+
/** 聚焦指定元素。 */
|
|
403
443
|
focus(selector: string): Promise<void>;
|
|
444
|
+
/** 点击指定元素。 */
|
|
404
445
|
click(selector: string, opts?: WebviewClickOptions): Promise<void>;
|
|
446
|
+
/** 向指定元素输入文本。 */
|
|
405
447
|
type(selector: string, text: string, opts?: WebviewTypeOptions): Promise<void>;
|
|
448
|
+
/** 等待选择器匹配;超时时返回 false。 */
|
|
406
449
|
waitForSelector(selector: string, opts?: WebviewWaitForSelectorOptions): Promise<boolean>;
|
|
450
|
+
/** 等待脚本返回真值;超时时返回 null。 */
|
|
407
451
|
waitForFunction<T = unknown>(scriptOrFn: WebviewExecutable<T>, ...args: unknown[]): Promise<T | null>;
|
|
452
|
+
/** 读取当前 WebView 的 Cookie。 */
|
|
408
453
|
getCookies(): Promise<WebviewCookie[]>;
|
|
454
|
+
/** 写入一个 Cookie。 */
|
|
409
455
|
setCookie(cookie: WebviewCookie): Promise<void>;
|
|
456
|
+
/** 删除一个 Cookie。 */
|
|
410
457
|
deleteCookie(cookie: WebviewCookie): Promise<void>;
|
|
458
|
+
/** 清空当前 WebView session 的 Cookie。 */
|
|
411
459
|
clearCookies(): Promise<void>;
|
|
460
|
+
/** 返回当前页面地址。 */
|
|
412
461
|
url(): Promise<string>;
|
|
462
|
+
/** 返回当前页面的 HTML。 */
|
|
413
463
|
content(): Promise<string>;
|
|
464
|
+
/** 关闭当前 WebView 页面。 */
|
|
414
465
|
close(): Promise<void>;
|
|
415
466
|
}
|
|
416
467
|
export interface XunleiRuntimeWebview {
|
|
417
468
|
/** 检查内嵌网页能力是否可用。 */
|
|
418
469
|
isAvailable(): Promise<boolean>;
|
|
419
|
-
/**
|
|
470
|
+
/**
|
|
471
|
+
* 打开内嵌网页并返回页面操作接口。
|
|
472
|
+
*
|
|
473
|
+
* WebView 页面不会注入 `xunlei`,页面操作应通过返回的 `WebviewPage` 完成。
|
|
474
|
+
*
|
|
475
|
+
* @example
|
|
476
|
+
* ```ts
|
|
477
|
+
* if (!(await xunlei.runtime.webview.isAvailable())) {
|
|
478
|
+
* throw new Error("当前宿主不支持 WebView");
|
|
479
|
+
* }
|
|
480
|
+
*
|
|
481
|
+
* const page = await xunlei.runtime.webview.open({
|
|
482
|
+
* headless: true,
|
|
483
|
+
* title: "页面探测",
|
|
484
|
+
* width: 960,
|
|
485
|
+
* height: 720,
|
|
486
|
+
* });
|
|
487
|
+
*
|
|
488
|
+
* try {
|
|
489
|
+
* await page.addInitScript(
|
|
490
|
+
* "window.__miniappStartedAt = Date.now()",
|
|
491
|
+
* );
|
|
492
|
+
* await page.goto("https://example.com", {
|
|
493
|
+
* waitUntil: "domcontentloaded",
|
|
494
|
+
* timeoutMs: 10_000,
|
|
495
|
+
* });
|
|
496
|
+
*
|
|
497
|
+
* if (!(await page.waitForSelector("body", { timeoutMs: 5_000 }))) {
|
|
498
|
+
* throw new Error("页面未加载完成");
|
|
499
|
+
* }
|
|
500
|
+
*
|
|
501
|
+
* const title = await page.execute(() => document.title);
|
|
502
|
+
* const ready = await page.waitForFunction(
|
|
503
|
+
* () => document.readyState === "complete",
|
|
504
|
+
* );
|
|
505
|
+
* const result = {
|
|
506
|
+
* title,
|
|
507
|
+
* ready,
|
|
508
|
+
* url: await page.url(),
|
|
509
|
+
* html: await page.content(),
|
|
510
|
+
* cookies: await page.getCookies(),
|
|
511
|
+
* };
|
|
512
|
+
*
|
|
513
|
+
* console.log(result);
|
|
514
|
+
* } finally {
|
|
515
|
+
* await page.close();
|
|
516
|
+
* }
|
|
517
|
+
* ```
|
|
518
|
+
*/
|
|
420
519
|
open(opts?: WebviewOpenOptions): Promise<WebviewPage>;
|
|
421
520
|
}
|
|
422
521
|
export interface BlobOpenRequest {
|
|
@@ -435,9 +534,68 @@ export interface BlobObjectURLOptions {
|
|
|
435
534
|
range?: boolean;
|
|
436
535
|
}
|
|
437
536
|
export interface XunleiRuntimeBlob {
|
|
438
|
-
/**
|
|
537
|
+
/**
|
|
538
|
+
* 为二进制数据对象或按需打开的数据流创建本地 HTTP 地址。
|
|
539
|
+
*
|
|
540
|
+
* @example 直接传入 Blob
|
|
541
|
+
* ```ts
|
|
542
|
+
* const blob = new Blob(["由微应用生成的内容\n"], {
|
|
543
|
+
* type: "text/plain",
|
|
544
|
+
* });
|
|
545
|
+
* const url = await xunlei.runtime.blob.createObjectURL(blob);
|
|
546
|
+
*
|
|
547
|
+
* try {
|
|
548
|
+
* const task = await xunlei.tasks.create({
|
|
549
|
+
* req: { url },
|
|
550
|
+
* opts: { name: "generated.txt" },
|
|
551
|
+
* });
|
|
552
|
+
* console.log(task.id);
|
|
553
|
+
* // 等任务或其他消费者不再使用 url 后再撤销。
|
|
554
|
+
* } catch (error) {
|
|
555
|
+
* await xunlei.runtime.blob.revokeObjectURL(url);
|
|
556
|
+
* throw error;
|
|
557
|
+
* }
|
|
558
|
+
* ```
|
|
559
|
+
*
|
|
560
|
+
* @example 传入 BlobOpener,按需返回新的流
|
|
561
|
+
* ```ts
|
|
562
|
+
* const sourceUrl = "https://cdn.example.com/video.mp4";
|
|
563
|
+
* const contentLength = 100 * 1024 * 1024;
|
|
564
|
+
*
|
|
565
|
+
* const url = await xunlei.runtime.blob.createObjectURL(
|
|
566
|
+
* async ({ offset, end }) => {
|
|
567
|
+
* const rangeEnd = end >= 0 ? end : "";
|
|
568
|
+
* const response = await fetch(sourceUrl, {
|
|
569
|
+
* headers: { Range: `bytes=${offset}-${rangeEnd}` },
|
|
570
|
+
* });
|
|
571
|
+
* if (response.status !== 206 || !response.body) {
|
|
572
|
+
* throw new Error("源文件未返回可用的分段数据");
|
|
573
|
+
* }
|
|
574
|
+
* return response.body;
|
|
575
|
+
* },
|
|
576
|
+
* {
|
|
577
|
+
* contentType: "video/mp4",
|
|
578
|
+
* size: contentLength,
|
|
579
|
+
* range: true,
|
|
580
|
+
* },
|
|
581
|
+
* );
|
|
582
|
+
*
|
|
583
|
+
* await xunlei.tasks.create({
|
|
584
|
+
* req: { url },
|
|
585
|
+
* opts: { name: "video.mp4" },
|
|
586
|
+
* });
|
|
587
|
+
* // 每次 opener 调用都要返回新的 ReadableStream;确认任务不再需要 url 后再撤销。
|
|
588
|
+
* ```
|
|
589
|
+
*/
|
|
439
590
|
createObjectURL(source: Blob | BlobOpener, options?: BlobObjectURLOptions): Promise<string>;
|
|
440
|
-
/**
|
|
591
|
+
/**
|
|
592
|
+
* 撤销此前由 createObjectURL 创建的地址。
|
|
593
|
+
*
|
|
594
|
+
* @example
|
|
595
|
+
* ```ts
|
|
596
|
+
* await xunlei.runtime.blob.revokeObjectURL(url);
|
|
597
|
+
* ```
|
|
598
|
+
*/
|
|
441
599
|
revokeObjectURL(url: string): Promise<void>;
|
|
442
600
|
}
|
|
443
601
|
export interface XunleiRuntime {
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;iBAGiB;;EAEhB;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,aAAa;;EAEb;;EAEA,QAAQ;;EAER,SAAS;;EAET,cAAc;;EAEd,UAAU;;EAEV,UAAU;;EAEV,WAAW;;YAGA;iBAWK;GACf;;EAED;;YAGW;iBAEK;;EAEhB,OAAO;;EAEP;;iBAGgB;EAChB;EACA;;iBAGgB;EAChB;EACA;;iBAGgB;EAChB,OAAO;EACP,QAAQ;EACR;;YAGW;YAMA;EACX;EACA;;YAGW;iBAEK;EAChB;EACA;EACA;EACA;EACA,QAAQ;EACR,UAAU;;iBAGM;EAChB;EACA,OAAO;;;YAMI;YAEA;;YASA;EACX;EACA;EACA;EACA;;iBAGgB;EAChB,SAAS;;YAGE,WAAW;iBAEN;;EAEhB;;EAEA,QAAQ;;EAER;KAAY;;;iBAGI,yBAAyB;;EAEzC,UAAU,QAAQ,yBAAyB;;EAE3C,SAAS,aAAa,gBAAgB;;EAEtC,SAAS,cAAc;;iBAGP;EAChB;;EAEA;;EAEA
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
|
package/package.json
CHANGED