@xunlei-open/miniapp-types 0.1.1-beta.0 → 0.1.1-beta.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.
- package/dist/index.d.cts +161 -10
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +161 -10
- package/dist/index.d.mts.map +1 -1
- package/package.json +1 -1
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;
|
|
@@ -137,7 +137,6 @@ export interface Options {
|
|
|
137
137
|
/** 下载的附加选项。 */
|
|
138
138
|
extra?: OptsExtra;
|
|
139
139
|
}
|
|
140
|
-
export type ExtractStatus = "" | "queued" | "waitingParts" | "extracting" | "done" | "error";
|
|
141
140
|
export interface TaskProgress {
|
|
142
141
|
/** 下载已用时间,单位为纳秒。 */
|
|
143
142
|
used: number;
|
|
@@ -219,24 +218,34 @@ export interface TaskCreateGroupInput {
|
|
|
219
218
|
opts?: Options;
|
|
220
219
|
}
|
|
221
220
|
export interface TaskListInput {
|
|
221
|
+
/** 跳过的任务数量,默认从 0 开始。 */
|
|
222
222
|
offset?: number;
|
|
223
|
+
/** 每页最多返回的任务数量,宿主默认值由运行时约定。 */
|
|
223
224
|
limit?: number;
|
|
225
|
+
/** 按任务状态筛选。 */
|
|
224
226
|
status?: Task["status"] | Task["status"][];
|
|
227
|
+
/** 创建时间排序方式,默认倒序。 */
|
|
225
228
|
sort?: "createdAtAsc" | "createdAtDesc";
|
|
226
229
|
}
|
|
227
230
|
export interface TaskListResult {
|
|
231
|
+
/** 当前页的任务标识;详情通过 tasks.detail 单独查询。 */
|
|
228
232
|
ids: string[];
|
|
233
|
+
/** 满足筛选条件的任务总数。 */
|
|
229
234
|
total: number;
|
|
230
|
-
offset: number;
|
|
231
|
-
limit: number;
|
|
232
235
|
}
|
|
233
236
|
export interface TaskDetailInput {
|
|
234
237
|
id: string;
|
|
235
238
|
}
|
|
236
239
|
export interface TaskUpdateInput {
|
|
240
|
+
/** 要更新的任务标识。 */
|
|
237
241
|
id: string;
|
|
238
|
-
|
|
239
|
-
|
|
242
|
+
/** 要更新的请求字段;当前仅支持 labels。 */
|
|
243
|
+
req?: {
|
|
244
|
+
/** 替换任务请求的标签。 */
|
|
245
|
+
labels?: {
|
|
246
|
+
[key: string]: string;
|
|
247
|
+
};
|
|
248
|
+
};
|
|
240
249
|
}
|
|
241
250
|
export interface TaskDeleteInput {
|
|
242
251
|
id: string;
|
|
@@ -334,7 +343,7 @@ export interface XunleiTasks {
|
|
|
334
343
|
list(input?: TaskListInput): Promise<TaskListResult>;
|
|
335
344
|
/** 查询普通任务或任务组的详情。 */
|
|
336
345
|
detail(input: TaskDetailInput): Promise<TaskDetailResult>;
|
|
337
|
-
/**
|
|
346
|
+
/** 更新任务标签;当前仅支持 req.labels。 */
|
|
338
347
|
update(input: TaskUpdateInput): Promise<Task>;
|
|
339
348
|
/** 删除任务,并按参数决定是否删除文件。 */
|
|
340
349
|
delete(input: TaskDeleteInput): Promise<TaskDeleteResult>;
|
|
@@ -363,60 +372,143 @@ export interface WebviewOpenOptions {
|
|
|
363
372
|
* 非本地开发环境中,事件脚本打开的网页窗口会被强制隐藏。
|
|
364
373
|
*/
|
|
365
374
|
headless?: boolean;
|
|
375
|
+
/** 窗口标题。 */
|
|
366
376
|
title?: string;
|
|
377
|
+
/** 窗口宽度。 */
|
|
367
378
|
width?: number;
|
|
379
|
+
/** 窗口高度。 */
|
|
368
380
|
height?: number;
|
|
381
|
+
/** WebView 使用的 User-Agent。 */
|
|
369
382
|
userAgent?: string;
|
|
370
383
|
}
|
|
371
384
|
export interface WebviewGotoOptions {
|
|
385
|
+
/** 导航超时时间,单位为毫秒。 */
|
|
372
386
|
timeoutMs?: number;
|
|
387
|
+
/** 等待页面加载完成的阶段。 */
|
|
373
388
|
waitUntil?: "load" | "domcontentloaded";
|
|
374
389
|
}
|
|
375
390
|
export interface WebviewClickOptions {
|
|
391
|
+
/** 点击前等待的时间,单位为毫秒。 */
|
|
376
392
|
delay?: number;
|
|
377
393
|
}
|
|
378
394
|
export interface WebviewTypeOptions {
|
|
395
|
+
/** 输入字符之间的延迟,单位为毫秒。 */
|
|
379
396
|
delay?: number;
|
|
380
397
|
}
|
|
381
398
|
export interface WebviewWaitOptions {
|
|
399
|
+
/** 最长等待时间,单位为毫秒。 */
|
|
382
400
|
timeoutMs?: number;
|
|
401
|
+
/** 轮询间隔,单位为毫秒。 */
|
|
383
402
|
pollIntervalMs?: number;
|
|
384
403
|
}
|
|
385
404
|
export interface WebviewWaitForSelectorOptions extends WebviewWaitOptions {
|
|
405
|
+
/** 只在元素可见时视为匹配。 */
|
|
386
406
|
visible?: boolean;
|
|
407
|
+
/** 只在元素隐藏或不存在时视为匹配。 */
|
|
387
408
|
hidden?: boolean;
|
|
388
409
|
}
|
|
389
410
|
export interface WebviewCookie {
|
|
411
|
+
/** Cookie 名称。 */
|
|
390
412
|
name: string;
|
|
413
|
+
/** Cookie 值。 */
|
|
391
414
|
value: string;
|
|
415
|
+
/** Cookie 作用域。 */
|
|
392
416
|
domain?: string;
|
|
417
|
+
/** Cookie 路径。 */
|
|
393
418
|
path?: string;
|
|
419
|
+
/** 过期时间,可传日期字符串、Unix 时间戳或 Date。 */
|
|
394
420
|
expires?: string | number | Date;
|
|
421
|
+
/** 是否仅通过 HTTPS 发送。 */
|
|
395
422
|
secure?: boolean;
|
|
423
|
+
/** 是否禁止页面脚本读取。 */
|
|
396
424
|
httpOnly?: boolean;
|
|
397
425
|
}
|
|
426
|
+
/** 可直接执行的 JavaScript 字符串,或会被序列化到 WebView 中执行的函数。 */
|
|
398
427
|
export type WebviewExecutable<T = unknown> = string | ((...args: unknown[]) => T | Promise<T>);
|
|
399
428
|
export interface WebviewPage {
|
|
429
|
+
/** 在后续导航的页面上下文创建前注入脚本。 */
|
|
400
430
|
addInitScript(script: string): Promise<void>;
|
|
431
|
+
/** 导航到指定网址。 */
|
|
401
432
|
goto(url: string, opts?: WebviewGotoOptions): Promise<void>;
|
|
433
|
+
/** 在 WebView 页面上下文中执行脚本。 */
|
|
402
434
|
execute<T = unknown>(scriptOrFn: WebviewExecutable<T>, ...args: unknown[]): Promise<T>;
|
|
435
|
+
/** 聚焦指定元素。 */
|
|
403
436
|
focus(selector: string): Promise<void>;
|
|
437
|
+
/** 点击指定元素。 */
|
|
404
438
|
click(selector: string, opts?: WebviewClickOptions): Promise<void>;
|
|
439
|
+
/** 向指定元素输入文本。 */
|
|
405
440
|
type(selector: string, text: string, opts?: WebviewTypeOptions): Promise<void>;
|
|
441
|
+
/** 等待选择器匹配;超时时返回 false。 */
|
|
406
442
|
waitForSelector(selector: string, opts?: WebviewWaitForSelectorOptions): Promise<boolean>;
|
|
443
|
+
/** 等待脚本返回真值;超时时返回 null。 */
|
|
407
444
|
waitForFunction<T = unknown>(scriptOrFn: WebviewExecutable<T>, ...args: unknown[]): Promise<T | null>;
|
|
445
|
+
/** 读取当前 WebView 的 Cookie。 */
|
|
408
446
|
getCookies(): Promise<WebviewCookie[]>;
|
|
447
|
+
/** 写入一个 Cookie。 */
|
|
409
448
|
setCookie(cookie: WebviewCookie): Promise<void>;
|
|
449
|
+
/** 删除一个 Cookie。 */
|
|
410
450
|
deleteCookie(cookie: WebviewCookie): Promise<void>;
|
|
451
|
+
/** 清空当前 WebView session 的 Cookie。 */
|
|
411
452
|
clearCookies(): Promise<void>;
|
|
453
|
+
/** 返回当前页面地址。 */
|
|
412
454
|
url(): Promise<string>;
|
|
455
|
+
/** 返回当前页面的 HTML。 */
|
|
413
456
|
content(): Promise<string>;
|
|
457
|
+
/** 关闭当前 WebView 页面。 */
|
|
414
458
|
close(): Promise<void>;
|
|
415
459
|
}
|
|
416
460
|
export interface XunleiRuntimeWebview {
|
|
417
461
|
/** 检查内嵌网页能力是否可用。 */
|
|
418
462
|
isAvailable(): Promise<boolean>;
|
|
419
|
-
/**
|
|
463
|
+
/**
|
|
464
|
+
* 打开内嵌网页并返回页面操作接口。
|
|
465
|
+
*
|
|
466
|
+
* WebView 页面不会注入 `xunlei`,页面操作应通过返回的 `WebviewPage` 完成。
|
|
467
|
+
*
|
|
468
|
+
* @example
|
|
469
|
+
* ```ts
|
|
470
|
+
* if (!(await xunlei.runtime.webview.isAvailable())) {
|
|
471
|
+
* throw new Error("当前宿主不支持 WebView");
|
|
472
|
+
* }
|
|
473
|
+
*
|
|
474
|
+
* const page = await xunlei.runtime.webview.open({
|
|
475
|
+
* headless: true,
|
|
476
|
+
* title: "页面探测",
|
|
477
|
+
* width: 960,
|
|
478
|
+
* height: 720,
|
|
479
|
+
* });
|
|
480
|
+
*
|
|
481
|
+
* try {
|
|
482
|
+
* await page.addInitScript(
|
|
483
|
+
* "window.__miniappStartedAt = Date.now()",
|
|
484
|
+
* );
|
|
485
|
+
* await page.goto("https://example.com", {
|
|
486
|
+
* waitUntil: "domcontentloaded",
|
|
487
|
+
* timeoutMs: 10_000,
|
|
488
|
+
* });
|
|
489
|
+
*
|
|
490
|
+
* if (!(await page.waitForSelector("body", { timeoutMs: 5_000 }))) {
|
|
491
|
+
* throw new Error("页面未加载完成");
|
|
492
|
+
* }
|
|
493
|
+
*
|
|
494
|
+
* const title = await page.execute(() => document.title);
|
|
495
|
+
* const ready = await page.waitForFunction(
|
|
496
|
+
* () => document.readyState === "complete",
|
|
497
|
+
* );
|
|
498
|
+
* const result = {
|
|
499
|
+
* title,
|
|
500
|
+
* ready,
|
|
501
|
+
* url: await page.url(),
|
|
502
|
+
* html: await page.content(),
|
|
503
|
+
* cookies: await page.getCookies(),
|
|
504
|
+
* };
|
|
505
|
+
*
|
|
506
|
+
* console.log(result);
|
|
507
|
+
* } finally {
|
|
508
|
+
* await page.close();
|
|
509
|
+
* }
|
|
510
|
+
* ```
|
|
511
|
+
*/
|
|
420
512
|
open(opts?: WebviewOpenOptions): Promise<WebviewPage>;
|
|
421
513
|
}
|
|
422
514
|
export interface BlobOpenRequest {
|
|
@@ -435,9 +527,68 @@ export interface BlobObjectURLOptions {
|
|
|
435
527
|
range?: boolean;
|
|
436
528
|
}
|
|
437
529
|
export interface XunleiRuntimeBlob {
|
|
438
|
-
/**
|
|
530
|
+
/**
|
|
531
|
+
* 为二进制数据对象或按需打开的数据流创建本地 HTTP 地址。
|
|
532
|
+
*
|
|
533
|
+
* @example 直接传入 Blob
|
|
534
|
+
* ```ts
|
|
535
|
+
* const blob = new Blob(["由微应用生成的内容\n"], {
|
|
536
|
+
* type: "text/plain",
|
|
537
|
+
* });
|
|
538
|
+
* const url = await xunlei.runtime.blob.createObjectURL(blob);
|
|
539
|
+
*
|
|
540
|
+
* try {
|
|
541
|
+
* const task = await xunlei.tasks.create({
|
|
542
|
+
* req: { url },
|
|
543
|
+
* opts: { name: "generated.txt" },
|
|
544
|
+
* });
|
|
545
|
+
* console.log(task.id);
|
|
546
|
+
* // 等任务或其他消费者不再使用 url 后再撤销。
|
|
547
|
+
* } catch (error) {
|
|
548
|
+
* await xunlei.runtime.blob.revokeObjectURL(url);
|
|
549
|
+
* throw error;
|
|
550
|
+
* }
|
|
551
|
+
* ```
|
|
552
|
+
*
|
|
553
|
+
* @example 传入 BlobOpener,按需返回新的流
|
|
554
|
+
* ```ts
|
|
555
|
+
* const sourceUrl = "https://cdn.example.com/video.mp4";
|
|
556
|
+
* const contentLength = 100 * 1024 * 1024;
|
|
557
|
+
*
|
|
558
|
+
* const url = await xunlei.runtime.blob.createObjectURL(
|
|
559
|
+
* async ({ offset, end }) => {
|
|
560
|
+
* const rangeEnd = end >= 0 ? end : "";
|
|
561
|
+
* const response = await fetch(sourceUrl, {
|
|
562
|
+
* headers: { Range: `bytes=${offset}-${rangeEnd}` },
|
|
563
|
+
* });
|
|
564
|
+
* if (response.status !== 206 || !response.body) {
|
|
565
|
+
* throw new Error("源文件未返回可用的分段数据");
|
|
566
|
+
* }
|
|
567
|
+
* return response.body;
|
|
568
|
+
* },
|
|
569
|
+
* {
|
|
570
|
+
* contentType: "video/mp4",
|
|
571
|
+
* size: contentLength,
|
|
572
|
+
* range: true,
|
|
573
|
+
* },
|
|
574
|
+
* );
|
|
575
|
+
*
|
|
576
|
+
* await xunlei.tasks.create({
|
|
577
|
+
* req: { url },
|
|
578
|
+
* opts: { name: "video.mp4" },
|
|
579
|
+
* });
|
|
580
|
+
* // 每次 opener 调用都要返回新的 ReadableStream;确认任务不再需要 url 后再撤销。
|
|
581
|
+
* ```
|
|
582
|
+
*/
|
|
439
583
|
createObjectURL(source: Blob | BlobOpener, options?: BlobObjectURLOptions): Promise<string>;
|
|
440
|
-
/**
|
|
584
|
+
/**
|
|
585
|
+
* 撤销此前由 createObjectURL 创建的地址。
|
|
586
|
+
*
|
|
587
|
+
* @example
|
|
588
|
+
* ```ts
|
|
589
|
+
* await xunlei.runtime.blob.revokeObjectURL(url);
|
|
590
|
+
* ```
|
|
591
|
+
*/
|
|
441
592
|
revokeObjectURL(url: string): Promise<void>;
|
|
442
593
|
}
|
|
443
594
|
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;EACA,MAAM;;iBAGU;;EAEhB;;EAEA;;EAEA,OAAO;;iBAGS;;EAEhB;;YAGW,YAAY;iBAEP;;EAEhB;;EAEA;;EAEA,QAAQ;;
|
|
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;
|
|
@@ -137,7 +137,6 @@ export interface Options {
|
|
|
137
137
|
/** 下载的附加选项。 */
|
|
138
138
|
extra?: OptsExtra;
|
|
139
139
|
}
|
|
140
|
-
export type ExtractStatus = "" | "queued" | "waitingParts" | "extracting" | "done" | "error";
|
|
141
140
|
export interface TaskProgress {
|
|
142
141
|
/** 下载已用时间,单位为纳秒。 */
|
|
143
142
|
used: number;
|
|
@@ -219,24 +218,34 @@ export interface TaskCreateGroupInput {
|
|
|
219
218
|
opts?: Options;
|
|
220
219
|
}
|
|
221
220
|
export interface TaskListInput {
|
|
221
|
+
/** 跳过的任务数量,默认从 0 开始。 */
|
|
222
222
|
offset?: number;
|
|
223
|
+
/** 每页最多返回的任务数量,宿主默认值由运行时约定。 */
|
|
223
224
|
limit?: number;
|
|
225
|
+
/** 按任务状态筛选。 */
|
|
224
226
|
status?: Task["status"] | Task["status"][];
|
|
227
|
+
/** 创建时间排序方式,默认倒序。 */
|
|
225
228
|
sort?: "createdAtAsc" | "createdAtDesc";
|
|
226
229
|
}
|
|
227
230
|
export interface TaskListResult {
|
|
231
|
+
/** 当前页的任务标识;详情通过 tasks.detail 单独查询。 */
|
|
228
232
|
ids: string[];
|
|
233
|
+
/** 满足筛选条件的任务总数。 */
|
|
229
234
|
total: number;
|
|
230
|
-
offset: number;
|
|
231
|
-
limit: number;
|
|
232
235
|
}
|
|
233
236
|
export interface TaskDetailInput {
|
|
234
237
|
id: string;
|
|
235
238
|
}
|
|
236
239
|
export interface TaskUpdateInput {
|
|
240
|
+
/** 要更新的任务标识。 */
|
|
237
241
|
id: string;
|
|
238
|
-
|
|
239
|
-
|
|
242
|
+
/** 要更新的请求字段;当前仅支持 labels。 */
|
|
243
|
+
req?: {
|
|
244
|
+
/** 替换任务请求的标签。 */
|
|
245
|
+
labels?: {
|
|
246
|
+
[key: string]: string;
|
|
247
|
+
};
|
|
248
|
+
};
|
|
240
249
|
}
|
|
241
250
|
export interface TaskDeleteInput {
|
|
242
251
|
id: string;
|
|
@@ -334,7 +343,7 @@ export interface XunleiTasks {
|
|
|
334
343
|
list(input?: TaskListInput): Promise<TaskListResult>;
|
|
335
344
|
/** 查询普通任务或任务组的详情。 */
|
|
336
345
|
detail(input: TaskDetailInput): Promise<TaskDetailResult>;
|
|
337
|
-
/**
|
|
346
|
+
/** 更新任务标签;当前仅支持 req.labels。 */
|
|
338
347
|
update(input: TaskUpdateInput): Promise<Task>;
|
|
339
348
|
/** 删除任务,并按参数决定是否删除文件。 */
|
|
340
349
|
delete(input: TaskDeleteInput): Promise<TaskDeleteResult>;
|
|
@@ -363,60 +372,143 @@ export interface WebviewOpenOptions {
|
|
|
363
372
|
* 非本地开发环境中,事件脚本打开的网页窗口会被强制隐藏。
|
|
364
373
|
*/
|
|
365
374
|
headless?: boolean;
|
|
375
|
+
/** 窗口标题。 */
|
|
366
376
|
title?: string;
|
|
377
|
+
/** 窗口宽度。 */
|
|
367
378
|
width?: number;
|
|
379
|
+
/** 窗口高度。 */
|
|
368
380
|
height?: number;
|
|
381
|
+
/** WebView 使用的 User-Agent。 */
|
|
369
382
|
userAgent?: string;
|
|
370
383
|
}
|
|
371
384
|
export interface WebviewGotoOptions {
|
|
385
|
+
/** 导航超时时间,单位为毫秒。 */
|
|
372
386
|
timeoutMs?: number;
|
|
387
|
+
/** 等待页面加载完成的阶段。 */
|
|
373
388
|
waitUntil?: "load" | "domcontentloaded";
|
|
374
389
|
}
|
|
375
390
|
export interface WebviewClickOptions {
|
|
391
|
+
/** 点击前等待的时间,单位为毫秒。 */
|
|
376
392
|
delay?: number;
|
|
377
393
|
}
|
|
378
394
|
export interface WebviewTypeOptions {
|
|
395
|
+
/** 输入字符之间的延迟,单位为毫秒。 */
|
|
379
396
|
delay?: number;
|
|
380
397
|
}
|
|
381
398
|
export interface WebviewWaitOptions {
|
|
399
|
+
/** 最长等待时间,单位为毫秒。 */
|
|
382
400
|
timeoutMs?: number;
|
|
401
|
+
/** 轮询间隔,单位为毫秒。 */
|
|
383
402
|
pollIntervalMs?: number;
|
|
384
403
|
}
|
|
385
404
|
export interface WebviewWaitForSelectorOptions extends WebviewWaitOptions {
|
|
405
|
+
/** 只在元素可见时视为匹配。 */
|
|
386
406
|
visible?: boolean;
|
|
407
|
+
/** 只在元素隐藏或不存在时视为匹配。 */
|
|
387
408
|
hidden?: boolean;
|
|
388
409
|
}
|
|
389
410
|
export interface WebviewCookie {
|
|
411
|
+
/** Cookie 名称。 */
|
|
390
412
|
name: string;
|
|
413
|
+
/** Cookie 值。 */
|
|
391
414
|
value: string;
|
|
415
|
+
/** Cookie 作用域。 */
|
|
392
416
|
domain?: string;
|
|
417
|
+
/** Cookie 路径。 */
|
|
393
418
|
path?: string;
|
|
419
|
+
/** 过期时间,可传日期字符串、Unix 时间戳或 Date。 */
|
|
394
420
|
expires?: string | number | Date;
|
|
421
|
+
/** 是否仅通过 HTTPS 发送。 */
|
|
395
422
|
secure?: boolean;
|
|
423
|
+
/** 是否禁止页面脚本读取。 */
|
|
396
424
|
httpOnly?: boolean;
|
|
397
425
|
}
|
|
426
|
+
/** 可直接执行的 JavaScript 字符串,或会被序列化到 WebView 中执行的函数。 */
|
|
398
427
|
export type WebviewExecutable<T = unknown> = string | ((...args: unknown[]) => T | Promise<T>);
|
|
399
428
|
export interface WebviewPage {
|
|
429
|
+
/** 在后续导航的页面上下文创建前注入脚本。 */
|
|
400
430
|
addInitScript(script: string): Promise<void>;
|
|
431
|
+
/** 导航到指定网址。 */
|
|
401
432
|
goto(url: string, opts?: WebviewGotoOptions): Promise<void>;
|
|
433
|
+
/** 在 WebView 页面上下文中执行脚本。 */
|
|
402
434
|
execute<T = unknown>(scriptOrFn: WebviewExecutable<T>, ...args: unknown[]): Promise<T>;
|
|
435
|
+
/** 聚焦指定元素。 */
|
|
403
436
|
focus(selector: string): Promise<void>;
|
|
437
|
+
/** 点击指定元素。 */
|
|
404
438
|
click(selector: string, opts?: WebviewClickOptions): Promise<void>;
|
|
439
|
+
/** 向指定元素输入文本。 */
|
|
405
440
|
type(selector: string, text: string, opts?: WebviewTypeOptions): Promise<void>;
|
|
441
|
+
/** 等待选择器匹配;超时时返回 false。 */
|
|
406
442
|
waitForSelector(selector: string, opts?: WebviewWaitForSelectorOptions): Promise<boolean>;
|
|
443
|
+
/** 等待脚本返回真值;超时时返回 null。 */
|
|
407
444
|
waitForFunction<T = unknown>(scriptOrFn: WebviewExecutable<T>, ...args: unknown[]): Promise<T | null>;
|
|
445
|
+
/** 读取当前 WebView 的 Cookie。 */
|
|
408
446
|
getCookies(): Promise<WebviewCookie[]>;
|
|
447
|
+
/** 写入一个 Cookie。 */
|
|
409
448
|
setCookie(cookie: WebviewCookie): Promise<void>;
|
|
449
|
+
/** 删除一个 Cookie。 */
|
|
410
450
|
deleteCookie(cookie: WebviewCookie): Promise<void>;
|
|
451
|
+
/** 清空当前 WebView session 的 Cookie。 */
|
|
411
452
|
clearCookies(): Promise<void>;
|
|
453
|
+
/** 返回当前页面地址。 */
|
|
412
454
|
url(): Promise<string>;
|
|
455
|
+
/** 返回当前页面的 HTML。 */
|
|
413
456
|
content(): Promise<string>;
|
|
457
|
+
/** 关闭当前 WebView 页面。 */
|
|
414
458
|
close(): Promise<void>;
|
|
415
459
|
}
|
|
416
460
|
export interface XunleiRuntimeWebview {
|
|
417
461
|
/** 检查内嵌网页能力是否可用。 */
|
|
418
462
|
isAvailable(): Promise<boolean>;
|
|
419
|
-
/**
|
|
463
|
+
/**
|
|
464
|
+
* 打开内嵌网页并返回页面操作接口。
|
|
465
|
+
*
|
|
466
|
+
* WebView 页面不会注入 `xunlei`,页面操作应通过返回的 `WebviewPage` 完成。
|
|
467
|
+
*
|
|
468
|
+
* @example
|
|
469
|
+
* ```ts
|
|
470
|
+
* if (!(await xunlei.runtime.webview.isAvailable())) {
|
|
471
|
+
* throw new Error("当前宿主不支持 WebView");
|
|
472
|
+
* }
|
|
473
|
+
*
|
|
474
|
+
* const page = await xunlei.runtime.webview.open({
|
|
475
|
+
* headless: true,
|
|
476
|
+
* title: "页面探测",
|
|
477
|
+
* width: 960,
|
|
478
|
+
* height: 720,
|
|
479
|
+
* });
|
|
480
|
+
*
|
|
481
|
+
* try {
|
|
482
|
+
* await page.addInitScript(
|
|
483
|
+
* "window.__miniappStartedAt = Date.now()",
|
|
484
|
+
* );
|
|
485
|
+
* await page.goto("https://example.com", {
|
|
486
|
+
* waitUntil: "domcontentloaded",
|
|
487
|
+
* timeoutMs: 10_000,
|
|
488
|
+
* });
|
|
489
|
+
*
|
|
490
|
+
* if (!(await page.waitForSelector("body", { timeoutMs: 5_000 }))) {
|
|
491
|
+
* throw new Error("页面未加载完成");
|
|
492
|
+
* }
|
|
493
|
+
*
|
|
494
|
+
* const title = await page.execute(() => document.title);
|
|
495
|
+
* const ready = await page.waitForFunction(
|
|
496
|
+
* () => document.readyState === "complete",
|
|
497
|
+
* );
|
|
498
|
+
* const result = {
|
|
499
|
+
* title,
|
|
500
|
+
* ready,
|
|
501
|
+
* url: await page.url(),
|
|
502
|
+
* html: await page.content(),
|
|
503
|
+
* cookies: await page.getCookies(),
|
|
504
|
+
* };
|
|
505
|
+
*
|
|
506
|
+
* console.log(result);
|
|
507
|
+
* } finally {
|
|
508
|
+
* await page.close();
|
|
509
|
+
* }
|
|
510
|
+
* ```
|
|
511
|
+
*/
|
|
420
512
|
open(opts?: WebviewOpenOptions): Promise<WebviewPage>;
|
|
421
513
|
}
|
|
422
514
|
export interface BlobOpenRequest {
|
|
@@ -435,9 +527,68 @@ export interface BlobObjectURLOptions {
|
|
|
435
527
|
range?: boolean;
|
|
436
528
|
}
|
|
437
529
|
export interface XunleiRuntimeBlob {
|
|
438
|
-
/**
|
|
530
|
+
/**
|
|
531
|
+
* 为二进制数据对象或按需打开的数据流创建本地 HTTP 地址。
|
|
532
|
+
*
|
|
533
|
+
* @example 直接传入 Blob
|
|
534
|
+
* ```ts
|
|
535
|
+
* const blob = new Blob(["由微应用生成的内容\n"], {
|
|
536
|
+
* type: "text/plain",
|
|
537
|
+
* });
|
|
538
|
+
* const url = await xunlei.runtime.blob.createObjectURL(blob);
|
|
539
|
+
*
|
|
540
|
+
* try {
|
|
541
|
+
* const task = await xunlei.tasks.create({
|
|
542
|
+
* req: { url },
|
|
543
|
+
* opts: { name: "generated.txt" },
|
|
544
|
+
* });
|
|
545
|
+
* console.log(task.id);
|
|
546
|
+
* // 等任务或其他消费者不再使用 url 后再撤销。
|
|
547
|
+
* } catch (error) {
|
|
548
|
+
* await xunlei.runtime.blob.revokeObjectURL(url);
|
|
549
|
+
* throw error;
|
|
550
|
+
* }
|
|
551
|
+
* ```
|
|
552
|
+
*
|
|
553
|
+
* @example 传入 BlobOpener,按需返回新的流
|
|
554
|
+
* ```ts
|
|
555
|
+
* const sourceUrl = "https://cdn.example.com/video.mp4";
|
|
556
|
+
* const contentLength = 100 * 1024 * 1024;
|
|
557
|
+
*
|
|
558
|
+
* const url = await xunlei.runtime.blob.createObjectURL(
|
|
559
|
+
* async ({ offset, end }) => {
|
|
560
|
+
* const rangeEnd = end >= 0 ? end : "";
|
|
561
|
+
* const response = await fetch(sourceUrl, {
|
|
562
|
+
* headers: { Range: `bytes=${offset}-${rangeEnd}` },
|
|
563
|
+
* });
|
|
564
|
+
* if (response.status !== 206 || !response.body) {
|
|
565
|
+
* throw new Error("源文件未返回可用的分段数据");
|
|
566
|
+
* }
|
|
567
|
+
* return response.body;
|
|
568
|
+
* },
|
|
569
|
+
* {
|
|
570
|
+
* contentType: "video/mp4",
|
|
571
|
+
* size: contentLength,
|
|
572
|
+
* range: true,
|
|
573
|
+
* },
|
|
574
|
+
* );
|
|
575
|
+
*
|
|
576
|
+
* await xunlei.tasks.create({
|
|
577
|
+
* req: { url },
|
|
578
|
+
* opts: { name: "video.mp4" },
|
|
579
|
+
* });
|
|
580
|
+
* // 每次 opener 调用都要返回新的 ReadableStream;确认任务不再需要 url 后再撤销。
|
|
581
|
+
* ```
|
|
582
|
+
*/
|
|
439
583
|
createObjectURL(source: Blob | BlobOpener, options?: BlobObjectURLOptions): Promise<string>;
|
|
440
|
-
/**
|
|
584
|
+
/**
|
|
585
|
+
* 撤销此前由 createObjectURL 创建的地址。
|
|
586
|
+
*
|
|
587
|
+
* @example
|
|
588
|
+
* ```ts
|
|
589
|
+
* await xunlei.runtime.blob.revokeObjectURL(url);
|
|
590
|
+
* ```
|
|
591
|
+
*/
|
|
441
592
|
revokeObjectURL(url: string): Promise<void>;
|
|
442
593
|
}
|
|
443
594
|
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;EACA,MAAM;;iBAGU;;EAEhB;;EAEA;;EAEA,OAAO;;iBAGS;;EAEhB;;YAGW,YAAY;iBAEP;;EAEhB;;EAEA;;EAEA,QAAQ;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
|
package/package.json
CHANGED