@xunlei-open/miniapp-types 0.1.1-beta.7 → 0.1.1-beta.8

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 CHANGED
@@ -79,7 +79,7 @@ export interface MiniappSettingOption {
79
79
  /** 下载协议类型。 */
80
80
  export type Protocol = 'http' | 'bt' | 'ed2k';
81
81
  export type TaskStatus = 'ready' | 'running' | 'pause' | 'wait' | 'error' | 'done';
82
- /** 支持的 HTTP 请求头 */
82
+ /** 当前迅雷宿主支持的 HTTP 请求头;运行时名称透传,具体适配由宿主负责。 */
83
83
  export type HttpHeader = {
84
84
  'User-Agent'?: string;
85
85
  Referer?: string;
@@ -100,7 +100,12 @@ export interface Request {
100
100
  [key: string]: string;
101
101
  };
102
102
  }
103
- export interface ExtensionRequest extends Request {
103
+ /** 已有任务的请求数据递归只读,通过请求对象上的方法修改。 */
104
+ export type ReadonlyExtra<T> = T extends object ? { readonly [K in keyof T]: ReadonlyExtra<T[K]>; } : T;
105
+ /** 任务事件请求,数据和修改方法均位于 task.meta.req;宿主不返回原有请求头,修改方法仍可用。 */
106
+ export interface MutateBaseRequest extends ReadonlyExtra<Omit<Request, 'extra'>> {
107
+ /** 覆盖任务请求地址;当前宿主仅支持 HTTP 任务,其他协议调用会报 unsupported。 */
108
+ setUrl(url: string): Promise<void>;
104
109
  /** 全量覆盖任务请求的标签。 */
105
110
  setLabels(labels: Record<string, string>): Promise<void>;
106
111
  /** 设置任务请求的单个标签。 */
@@ -108,6 +113,19 @@ export interface ExtensionRequest extends Request {
108
113
  /** 删除任务请求的单个标签。 */
109
114
  delLabel(key: string): Promise<void>;
110
115
  }
116
+ /** HTTP 请求修改方法,非 HTTP 任务调用无效果。 */
117
+ export interface MutateHttpRequest extends MutateBaseRequest {
118
+ /** 全量替换请求头,空对象表示清空;运行时将值转为字符串,名称与重名处理交由宿主。 */
119
+ setHeaders(headers: HttpHeader): Promise<void>;
120
+ /** 添加或替换单个请求头;运行时将名称和值转为字符串,大小写适配由宿主负责。 */
121
+ putHeader(name: keyof HttpHeader, value: string): Promise<void>;
122
+ /** 删除单个请求头;运行时将名称转为字符串,大小写适配由宿主负责。 */
123
+ delHeader(name: keyof HttpHeader): Promise<void>;
124
+ }
125
+ /** BT 请求目前仅提供通用请求修改方法。 */
126
+ export interface MutateBtRequest extends MutateBaseRequest {}
127
+ /** 组合所有协议的请求方法,无需类型断言即可获得提示;协议专属方法仅对对应协议生效。 */
128
+ export type MutateRequest = MutateHttpRequest & MutateBtRequest;
111
129
  export interface FileInfo {
112
130
  name: string;
113
131
  /** 文件相对于资源根目录的路径。 */
@@ -192,22 +210,24 @@ export interface TaskFileAccessResult {
192
210
  url: string;
193
211
  }
194
212
  /**
195
- * 扩展任务类型,提供任务控制能力。
213
+ * 可修改请求的任务类型,所有请求修改方法均位于 meta.req。
196
214
  * 用于任务开始(onStart)和任务出错(onError)事件的上下文。
197
215
  */
198
- export interface ExtensionTask extends Task {
216
+ export interface MutateTask extends Omit<Task, 'meta'> {
199
217
  meta: Omit<Task['meta'], 'req'> & {
200
- req: ExtensionRequest;
218
+ readonly req: MutateRequest;
201
219
  };
202
- /** 覆盖任务请求地址。 */
203
- setUrl(url: string): Promise<void>;
204
- /** 设置任务请求扩展信息。 */
205
- setExtra(extra: ReqExtra): Promise<void>;
206
220
  }
207
- export interface OnErrorExtensionTask extends ExtensionTask {
221
+ export interface MutateOnErrorTask extends MutateTask {
208
222
  /** 恢复任务。 */
209
223
  continue(): Promise<void>;
210
224
  }
225
+ /** 组本身没有请求修改方法;通过 children 的独立任务 ID 修改请求。 */
226
+ export interface MutateOnErrorTaskGroup extends Omit<TaskGroup, 'children'> {
227
+ children: MutateOnErrorTask[];
228
+ /** 恢复整个任务组;也可单独调用 child.continue()。 */
229
+ continue(): Promise<void>;
230
+ }
211
231
  export interface TaskCreateInput {
212
232
  req: Request;
213
233
  opts?: Options;
@@ -274,7 +294,7 @@ export type OnResolveResource = {
274
294
  };
275
295
  /** 资源解析事件(onResolve)的上下文。 */
276
296
  export interface OnResolveContext {
277
- /** 用户请求信息(只读)。 */
297
+ /** 用户请求信息,不提供任务修改方法。 */
278
298
  req: Request;
279
299
  /** 解析结果,由事件脚本填充。 */
280
300
  res?: OnResolveResource;
@@ -282,19 +302,19 @@ export interface OnResolveContext {
282
302
  /** 任务开始事件(onStart)的上下文。 */
283
303
  export interface OnStartContext {
284
304
  /** 当前任务信息。 */
285
- task: ExtensionTask;
305
+ task: MutateTask;
286
306
  }
287
307
  /** 任务出错事件(onError)的上下文。 */
288
308
  export interface OnErrorContext {
289
309
  /** 出错时的任务信息。 */
290
- task: OnErrorExtensionTask;
310
+ task: MutateOnErrorTask | MutateOnErrorTaskGroup;
291
311
  /** 错误详情(只读)。 */
292
312
  error: Error;
293
313
  }
294
314
  /** 任务完成事件(onDone)的上下文。 */
295
315
  export interface OnDoneContext {
296
316
  /** 完成时的任务信息,只读,不提供修改请求地址或标签等控制方法。 */
297
- task: Task;
317
+ task: Task | TaskGroup;
298
318
  }
299
319
  export type XunleiOnResolveHandler = (ctx: OnResolveContext) => Promise<void> | void;
300
320
  export type XunleiOnStartHandler = (ctx: OnStartContext) => Promise<void> | void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;iBAGiB;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,aAAa;;EAEb;;EAEA,QAAQ;;EAER,SAAS;;EAET,cAAc;;EAEd,UAAU;;EAEV,UAAU;;EAEV,WAAW;;YAGD;iBAWK;GACd;;EAED;;YAGU;iBAEK;;EAEf,OAAO;;EAEP;;iBAGe;EACf;EACA;;iBAGe;EACf;EACA;;iBAGe;EACf,OAAO;EACP,QAAQ;EACR;;YAGU;YAEA;EACV;EACA;;YAGU;iBAEK;EACf;EACA;EACA;EACA;EACA,QAAQ;EACR,UAAU;;iBAGK;EACf;EACA,OAAO;;;YAMG;YAEA;;YAGA;EACV;EACA;EACA;EACA;;iBAGe;EACf,SAAS;;YAGC,WAAW;iBAEN;;EAEf;;EAEA,QAAQ;;EAER;KAAY;;;iBAGG,yBAAyB;;EAExC,UAAU,QAAQ,yBAAyB;;EAE3C,SAAS,aAAa,gBAAgB;;EAEtC,SAAS,cAAc;;iBAGR;EACf;;EAEA;;EAEA;;iBAGe;;EAEf;;EAEA;;EAEA,OAAO;;iBAGQ;;EAEf;;YAGU,YAAY;iBAEP;;EAEf;;EAEA;;EAEA,QAAQ;;iBAGO;;EAEf;;EAEA;;EAEA;;iBAKe;EACf;;EAEA;;EAEA,UAAU;;EAEV;;EAEA;;IAEE,KAAK,KAAK;IACV,KAAK;;IAEL,MAAM,KAAK;;;EAGb,QAAQ;;EAER,UAAU;;EAEV;;EAEA;;EAEA;;;YAIU,mBAAmB,OAAO;iBAErB,kBAAkB,KAAK;EACtC;;EAEA;IAAQ;IAAc;;;EAEtB,UAAU;;iBAGK;EACf;EACA;;iBAGe;;EAEf;;;;;;iBAOe,sBAAsB;EACrC,MAAM,KAAK;IACT,KAAK;;;EAGP,OAAO,cAAc;;EAErB,SAAS,OAAO,WAAW;;iBAGZ,6BAA6B;;EAE5C,YAAY;;iBAGG;EACf,KAAK;EACL,OAAO;;;iBAIQ;;EAEf;;EAEA,OAAO;;EAEP,OAAO;;iBAGQ;;EAEf;;EAEA;;EAEA,SAAS,iBAAiB;;EAE1B;;iBAGe;;EAEf;;EAEA;;iBAGe;EACf;;iBAGe;;EAEf;;EAEA;;IAEE;OAAY;;;;iBAIC;EACf;EACA;;iBAGe;EACf;EACA;;;YAMU;EACV,OAAO;EACP,OAAO;EACP,OAAO;EACP,KAAK;;;YAIK;EACV,OAAO;EACP,OAAO;EACP,OAAO;;;iBAIQ;;EAEf,KAAK;;EAEL,MAAM;;;iBAIS;;EAEf,MAAM;;;iBAIS;;EAEf,MAAM;;EAEN,OAAO;;;iBAIQ;;EAEf,MAAM;;YAKI,0BAA0B,KAAK,qBAAqB;YAEpD,wBAAwB,KAAK,mBAAmB;YAEhD,wBAAwB,KAAK,mBAAmB;YAEhD,uBAAuB,KAAK,kBAAkB;;iBAKzC;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;;iBAIe;EACf,MAAM,sBAAsB;EAC5B,KAAK,sBAAsB;EAC3B,KAAK,sBAAsB;EAC3B,MAAM,sBAAsB;;;iBAIb;;GAEd,cAAc;;;iBAIA;;;;EAIf,IAAI,cAAc;;;;EAIlB,IAAI,aAAa,gBAAgB;;;;EAIjC,OAAO,cAAc;;;;EAIrB,SAAS;;;;EAIT,QAAQ;;;iBAIO;;EAEf,OAAO,OAAO,kBAAkB,QAAQ;;EAExC,YAAY,OAAO,uBAAuB,QAAQ;;EAElD,KAAK,QAAQ,gBAAgB,QAAQ;;EAErC,OAAO,OAAO,kBAAkB,QAAQ;;EAExC,OAAO,OAAO,kBAAkB,QAAQ;;EAExC,OAAO,OAAO,kBAAkB,QAAQ;;iBAGzB,2BAA2B;;EAE1C;;IAEE,OAAO,OAAO,sBAAsB,QAAQ;;;iBAI/B;;EAEf,UAAU,SAAS;;EAEnB,QAAQ,SAAS;;EAEjB,QAAQ,SAAS;;EAEjB,OAAO,SAAS;;;iBAMD;;;;;EAKf;;EAEA;;EAEA;;EAEA;;EAEA;;iBAGe;;EAEf;;EAEA;;iBAGe;;EAEf;;iBAGe;;EAEf;;iBAGe;;EAEf;;EAEA;;iBAGe,sCAAsC;;EAErD;;EAEA;;iBAGe;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA,4BAA4B;;EAE5B;;EAEA;;;YAIU,kBAAkB,6BAA6B,oBAAoB,IAAI,QAAQ;;iBAG1E;;EAEf;IACE;;IAEA;;;;;;EAMF;IACE;;;EAGF;IACE;IACA;;;EAGF;;IAEE;;;;YAKQ,2BAA2B;iBAEtB;;;;;;;EAOf,GAAG,gBAAgB,iBACjB,OAAO,GACP,UAAU,MAAM,gBAAgB,cAC/B,QAAQ;;EAEX,cAAc,iBAAiB;;EAE/B,KAAK,aAAa,OAAO,qBAAqB;;EAE9C,QAAQ,aAAa,YAAY,kBAAkB,OAAO,kBAAkB,QAAQ;;EAEpF,MAAM,mBAAmB;;EAEzB,MAAM,kBAAkB,OAAO,sBAAsB;;EAErD,KAAK,kBAAkB,cAAc,OAAO,qBAAqB;;EAEjE,gBAAgB,kBAAkB,OAAO,gCAAgC;;EAEzE,gBAAgB,aAAa,YAAY,kBAAkB,OAAO,kBAAkB,QAAQ;;EAE5F,cAAc,QAAQ;;EAEtB,UAAU,QAAQ,gBAAgB;;EAElC,aAAa,QAAQ,gBAAgB;;EAErC,gBAAgB;;EAEhB,OAAO;;EAEP,WAAW;;EAEX,SAAS;;iBAGM;;EAEf,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDf,KAAK,OAAO,qBAAqB,QAAQ;;iBAK1B;;EAEf;;EAEA;;YAGU,cAAc,SAAS,oBAAoB,eAAe,cAAc,QAAQ,eAAe;iBAE1F;;EAEf;;EAEA;;EAEA;;iBAGe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDf,gBAAgB,QAAQ,OAAO,YAAY,UAAU,uBAAuB;;;;;;;;;EAS5E,gBAAgB,cAAc;;iBAGf;EACf,MAAM;EACN,SAAS;;;YAMC;;iBAGK;;;;;EAKf,sBAAsB;;;;;EAKtB,aAAa,QAAQ;;iBAGN;;EAEf;;;iBAIe;;EAEf;;iBAGe;;EAEf;;;iBAIe;;EAEf,cAAc,OAAO,yBAAyB,QAAQ;;EAEtD,aAAa,OAAO,wBAAwB;;;;;;iBAO7B;;EAEf,KAAK;;EAEL,IAAI;;iBAGW;;EAEf,MAAM;;EAEN,QAAQ;;EAER,UAAU;;EAEV,SAAS;;EAET,OAAO;;EAEP,QAAQ;;EAER,SAAS;;EAET,MAAM;;iBAKS;EACf;EACA;EACA;EACA;EACA,QAAQ;EACR;;YAGU,eAAe;;iBAGV;OACV,mBAAmB;GACvB,mBAAmB;;QAGd;QACA,QAAQ;QACR,cAAc"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -79,7 +79,7 @@ export interface MiniappSettingOption {
79
79
  /** 下载协议类型。 */
80
80
  export type Protocol = 'http' | 'bt' | 'ed2k';
81
81
  export type TaskStatus = 'ready' | 'running' | 'pause' | 'wait' | 'error' | 'done';
82
- /** 支持的 HTTP 请求头 */
82
+ /** 当前迅雷宿主支持的 HTTP 请求头;运行时名称透传,具体适配由宿主负责。 */
83
83
  export type HttpHeader = {
84
84
  'User-Agent'?: string;
85
85
  Referer?: string;
@@ -100,7 +100,12 @@ export interface Request {
100
100
  [key: string]: string;
101
101
  };
102
102
  }
103
- export interface ExtensionRequest extends Request {
103
+ /** 已有任务的请求数据递归只读,通过请求对象上的方法修改。 */
104
+ export type ReadonlyExtra<T> = T extends object ? { readonly [K in keyof T]: ReadonlyExtra<T[K]>; } : T;
105
+ /** 任务事件请求,数据和修改方法均位于 task.meta.req;宿主不返回原有请求头,修改方法仍可用。 */
106
+ export interface MutateBaseRequest extends ReadonlyExtra<Omit<Request, 'extra'>> {
107
+ /** 覆盖任务请求地址;当前宿主仅支持 HTTP 任务,其他协议调用会报 unsupported。 */
108
+ setUrl(url: string): Promise<void>;
104
109
  /** 全量覆盖任务请求的标签。 */
105
110
  setLabels(labels: Record<string, string>): Promise<void>;
106
111
  /** 设置任务请求的单个标签。 */
@@ -108,6 +113,19 @@ export interface ExtensionRequest extends Request {
108
113
  /** 删除任务请求的单个标签。 */
109
114
  delLabel(key: string): Promise<void>;
110
115
  }
116
+ /** HTTP 请求修改方法,非 HTTP 任务调用无效果。 */
117
+ export interface MutateHttpRequest extends MutateBaseRequest {
118
+ /** 全量替换请求头,空对象表示清空;运行时将值转为字符串,名称与重名处理交由宿主。 */
119
+ setHeaders(headers: HttpHeader): Promise<void>;
120
+ /** 添加或替换单个请求头;运行时将名称和值转为字符串,大小写适配由宿主负责。 */
121
+ putHeader(name: keyof HttpHeader, value: string): Promise<void>;
122
+ /** 删除单个请求头;运行时将名称转为字符串,大小写适配由宿主负责。 */
123
+ delHeader(name: keyof HttpHeader): Promise<void>;
124
+ }
125
+ /** BT 请求目前仅提供通用请求修改方法。 */
126
+ export interface MutateBtRequest extends MutateBaseRequest {}
127
+ /** 组合所有协议的请求方法,无需类型断言即可获得提示;协议专属方法仅对对应协议生效。 */
128
+ export type MutateRequest = MutateHttpRequest & MutateBtRequest;
111
129
  export interface FileInfo {
112
130
  name: string;
113
131
  /** 文件相对于资源根目录的路径。 */
@@ -192,22 +210,24 @@ export interface TaskFileAccessResult {
192
210
  url: string;
193
211
  }
194
212
  /**
195
- * 扩展任务类型,提供任务控制能力。
213
+ * 可修改请求的任务类型,所有请求修改方法均位于 meta.req。
196
214
  * 用于任务开始(onStart)和任务出错(onError)事件的上下文。
197
215
  */
198
- export interface ExtensionTask extends Task {
216
+ export interface MutateTask extends Omit<Task, 'meta'> {
199
217
  meta: Omit<Task['meta'], 'req'> & {
200
- req: ExtensionRequest;
218
+ readonly req: MutateRequest;
201
219
  };
202
- /** 覆盖任务请求地址。 */
203
- setUrl(url: string): Promise<void>;
204
- /** 设置任务请求扩展信息。 */
205
- setExtra(extra: ReqExtra): Promise<void>;
206
220
  }
207
- export interface OnErrorExtensionTask extends ExtensionTask {
221
+ export interface MutateOnErrorTask extends MutateTask {
208
222
  /** 恢复任务。 */
209
223
  continue(): Promise<void>;
210
224
  }
225
+ /** 组本身没有请求修改方法;通过 children 的独立任务 ID 修改请求。 */
226
+ export interface MutateOnErrorTaskGroup extends Omit<TaskGroup, 'children'> {
227
+ children: MutateOnErrorTask[];
228
+ /** 恢复整个任务组;也可单独调用 child.continue()。 */
229
+ continue(): Promise<void>;
230
+ }
211
231
  export interface TaskCreateInput {
212
232
  req: Request;
213
233
  opts?: Options;
@@ -274,7 +294,7 @@ export type OnResolveResource = {
274
294
  };
275
295
  /** 资源解析事件(onResolve)的上下文。 */
276
296
  export interface OnResolveContext {
277
- /** 用户请求信息(只读)。 */
297
+ /** 用户请求信息,不提供任务修改方法。 */
278
298
  req: Request;
279
299
  /** 解析结果,由事件脚本填充。 */
280
300
  res?: OnResolveResource;
@@ -282,19 +302,19 @@ export interface OnResolveContext {
282
302
  /** 任务开始事件(onStart)的上下文。 */
283
303
  export interface OnStartContext {
284
304
  /** 当前任务信息。 */
285
- task: ExtensionTask;
305
+ task: MutateTask;
286
306
  }
287
307
  /** 任务出错事件(onError)的上下文。 */
288
308
  export interface OnErrorContext {
289
309
  /** 出错时的任务信息。 */
290
- task: OnErrorExtensionTask;
310
+ task: MutateOnErrorTask | MutateOnErrorTaskGroup;
291
311
  /** 错误详情(只读)。 */
292
312
  error: Error;
293
313
  }
294
314
  /** 任务完成事件(onDone)的上下文。 */
295
315
  export interface OnDoneContext {
296
316
  /** 完成时的任务信息,只读,不提供修改请求地址或标签等控制方法。 */
297
- task: Task;
317
+ task: Task | TaskGroup;
298
318
  }
299
319
  export type XunleiOnResolveHandler = (ctx: OnResolveContext) => Promise<void> | void;
300
320
  export type XunleiOnStartHandler = (ctx: OnStartContext) => Promise<void> | void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xunlei-open/miniapp-types",
3
- "version": "0.1.1-beta.7",
3
+ "version": "0.1.1-beta.8",
4
4
  "description": "TypeScript definitions for the Xunlei Miniapp manifest and runtime APIs",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",