@oiyo/framework 0.4.7 → 0.4.9

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
@@ -57,22 +57,21 @@ type MappedResponseBodyType<TRBType extends ResponseBodyType, TRBJsonType = any>
57
57
  //#endregion
58
58
  //#region src/oiyo/http/types/uni.d.ts
59
59
  type UniAppRequestOptions = Omit<UniNamespace.RequestOptions, 'url' | 'data' | 'header' | 'method' | 'timeout' | 'responseType' | 'success' | 'fail' | 'complete'>;
60
+ interface UniAppOnChunkData {
61
+ data: ArrayBuffer;
62
+ }
60
63
  type UniAppRequestResponse<TRBody = any> = Prettify<Omit<UniNamespace.RequestSuccessCallbackResult, 'data'> & {
61
64
  data: TRBody;
62
65
  }>;
63
66
  type UniAppUploadOptions = Omit<UniNamespace.UploadFileOption, 'url' | 'header' | 'formData' | 'timeout' | 'success' | 'fail' | 'complete'>;
64
- interface UniAppOnUploadProgress extends UniNamespace.OnProgressUpdateResult {}
67
+ interface UniAppOnUploadProgressData extends UniNamespace.OnProgressUpdateResult {}
65
68
  type UniAppUploadResponse<TRBody = any> = Prettify<Omit<UniNamespace.UploadFileSuccessCallbackResult, 'data'> & {
66
69
  data: TRBody;
67
70
  }>;
68
71
  type UniAppDownloadBodyType = 'json';
69
72
  type UniAppDownloadBody = Prettify<Pick<UniNamespace.DownloadSuccessData, 'tempFilePath'>>;
70
73
  type UniAppDownloadOptions = Omit<UniNamespace.DownloadFileOption, 'url' | 'header' | 'timeout' | 'success' | 'fail' | 'complete'>;
71
- interface UniAppDownloadProgress extends UniNamespace.OnProgressDownloadResult {
72
- progress: number;
73
- totalBytesWritten: number;
74
- totalBytesExpectedToWrite: number;
75
- }
74
+ interface UniAppDownloadProgressData extends UniNamespace.OnProgressDownloadResult {}
76
75
  type UniAppDownloadResponse<TRBody = any> = Prettify<Omit<UniNamespace.DownloadSuccessData, keyof UniAppDownloadBody> & {
77
76
  data: TRBody;
78
77
  }>;
@@ -85,7 +84,7 @@ interface HeadersReceived {
85
84
  header: Record<string, string>;
86
85
  }
87
86
  /**
88
- * 所有请求共享的基础选项。
87
+ * 所有传输方式共享的基础选项。
89
88
  */
90
89
  interface HttpCommonOptions<TRBType extends ResponseBodyType = ResponseBodyType> {
91
90
  baseURL?: string;
@@ -94,6 +93,7 @@ interface HttpCommonOptions<TRBType extends ResponseBodyType = ResponseBodyType>
94
93
  query?: Record<string, any>;
95
94
  body?: any;
96
95
  timeout?: number;
96
+ _action?: 'request' | 'upload' | 'download';
97
97
  /**
98
98
  * 为 true 时返回完整响应对象(statusCode / header / data ...),
99
99
  * 否则只返回精炼后的 data。
@@ -111,7 +111,7 @@ interface HttpCommonOptions<TRBType extends ResponseBodyType = ResponseBodyType>
111
111
  ignoreResponseError?: boolean;
112
112
  /**
113
113
  * 中断信号,由 `createHttpAborter()` 创建。
114
- * 信号触发后请求会被中断;已中断的信号会让请求立即中断。
114
+ * 信号触发后传输会被中断;已中断的信号会让传输立即中断。
115
115
  */
116
116
  signal?: HttpAbortSignal;
117
117
  /**
@@ -120,61 +120,103 @@ interface HttpCommonOptions<TRBType extends ResponseBodyType = ResponseBodyType>
120
120
  onHeadersReceived?: (result: HeadersReceived) => void;
121
121
  }
122
122
  interface HttpRequestOptions<TRBType extends ResponseBodyType = ResponseBodyType> extends HttpCommonOptions<TRBType>, UniAppRequestOptions {
123
+ /**
124
+ * 传输动作
125
+ * @description 常用于钩子中
126
+ * @protected
127
+ */
128
+ _action?: 'request';
129
+ /**
130
+ * 请求方法
131
+ * @default - 'POST'
132
+ */
123
133
  method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT';
134
+ /**
135
+ * 监听流式数据
136
+ * @description onChunkReceived
137
+ */
138
+ onChunk?: (data: UniAppOnChunkData) => void;
124
139
  }
125
140
  interface HttpUploadOptions<TRBType extends ResponseBodyType = ResponseBodyType> extends HttpCommonOptions<TRBType>, UniAppUploadOptions {
126
141
  /**
127
- * 上传请求方法,强制 POST
142
+ * 传输动作
143
+ * @description 常用于钩子中
144
+ * @protected
145
+ */
146
+ _action?: 'upload';
147
+ /**
148
+ * 上传方法,强制 POST
128
149
  * @default - 'POST'
129
150
  */
130
151
  method?: 'POST';
131
152
  /**
132
- * 监听上传进度(对应 task.onProgressUpdate)。
153
+ * 监听上传进度
154
+ * @description 对应 onProgressUpdate
133
155
  */
134
- onProgress?: (result: UniAppOnUploadProgress) => void;
156
+ onProgress?: (data: UniAppOnUploadProgressData) => void;
135
157
  }
136
158
  interface HttpDownloadOptions<TRBType extends UniAppDownloadBodyType = 'json'> extends HttpCommonOptions<TRBType>, UniAppDownloadOptions {
137
159
  /**
138
- * 下载请求方法,强制 GET
160
+ * 传输动作
161
+ * @description 常用于钩子中
162
+ * @protected
163
+ */
164
+ _action?: 'download';
165
+ /**
166
+ * 下载方法,强制 GET
139
167
  * @default - 'GET'
140
168
  */
141
169
  method?: 'GET';
142
170
  /**
143
- * 监听下载进度(对应 task.onProgressUpdate)。
171
+ * 监听下载进度
172
+ * @description 对应 onProgressUpdate
144
173
  */
145
- onProgress?: (result: UniAppDownloadProgress) => void;
174
+ onProgress?: (data: UniAppDownloadProgressData) => void;
146
175
  }
176
+ /**
177
+ * 传输地址
178
+ */
147
179
  type HttpURL = string;
180
+ /**
181
+ * 传输属性
182
+ */
148
183
  interface HttpOptions extends HttpCommonOptions, UniAppRequestOptions, UniAppUploadOptions, UniAppDownloadOptions {}
149
184
  //#endregion
150
185
  //#region src/oiyo/http/types/response.d.ts
151
- type HttpRequestResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = MappedResponseBodyType<TRBType, TRBody>;
152
- type HttpUploadResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = MappedResponseBodyType<TRBType, TRBody>;
153
- type HttpDownloadResponse<TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = 'json'> = MappedResponseBodyType<TRBType, TRBody>;
154
- type HttpRequestRawResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = UniAppRequestResponse<MappedResponseBodyType<TRBType, TRBody>>;
155
- type HttpUploadRawResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = UniAppUploadResponse<MappedResponseBodyType<TRBType, TRBody>>;
156
- type HttpDownloadRawResponse<TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = 'json'> = UniAppDownloadResponse<MappedResponseBodyType<TRBType, TRBody>>;
157
- type HttpRawResponse<T = any> = HttpRequestRawResponse<T> | HttpUploadRawResponse<T> | HttpDownloadRawResponse;
186
+ type HttpRequestResult<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = MappedResponseBodyType<TRBType, TRBody>;
187
+ type HttpUploadResult<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = MappedResponseBodyType<TRBType, TRBody>;
188
+ type HttpDownloadResult<TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = 'json'> = MappedResponseBodyType<TRBType, TRBody>;
189
+ type HttpRequestResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = UniAppRequestResponse<MappedResponseBodyType<TRBType, TRBody>>;
190
+ type HttpUploadResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = UniAppUploadResponse<MappedResponseBodyType<TRBType, TRBody>>;
191
+ type HttpDownloadResponse<TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = 'json'> = UniAppDownloadResponse<MappedResponseBodyType<TRBType, TRBody>>;
192
+ type HttpResponse<T = any> = HttpRequestResponse<T> | HttpUploadResponse<T> | HttpDownloadResponse;
158
193
  //#endregion
159
194
  //#region src/oiyo/http/types/core.d.ts
160
- interface HttpRequestMethod {
195
+ interface HttpRequest {
161
196
  <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options: HttpRequestOptions<TRBType> & {
162
197
  raw: true;
163
- }): Promise<HttpRequestRawResponse<TRBody, TRBType>>;
164
- <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options?: HttpRequestOptions<TRBType>): Promise<HttpRequestResponse<TRBody, TRBType>>;
198
+ }): Promise<HttpRequestResponse<TRBody, TRBType>>;
199
+ <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options?: HttpRequestOptions<TRBType>): Promise<HttpRequestResult<TRBody, TRBType>>;
165
200
  }
166
- interface HttpUploadMethod {
201
+ interface HttpUpload {
167
202
  <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options: HttpUploadOptions<TRBType> & {
168
203
  raw: true;
169
- }): Promise<HttpUploadRawResponse<TRBody, TRBType>>;
170
- <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options?: HttpUploadOptions<TRBType>): Promise<HttpUploadResponse<TRBody, TRBType>>;
204
+ }): Promise<HttpUploadResponse<TRBody, TRBType>>;
205
+ <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options?: HttpUploadOptions<TRBType>): Promise<HttpUploadResult<TRBody, TRBType>>;
171
206
  }
172
- interface HttpDownloadMethod {
207
+ interface HttpDownload {
173
208
  <TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = UniAppDownloadBodyType>(resource: HttpURL, options: HttpDownloadOptions<TRBType> & {
174
209
  raw: true;
175
- }): Promise<HttpDownloadRawResponse<TRBody, TRBType>>;
176
- <TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = UniAppDownloadBodyType>(resource: HttpURL, options?: HttpDownloadOptions<TRBType>): Promise<HttpDownloadResponse<TRBody, TRBType>>;
210
+ }): Promise<HttpDownloadResponse<TRBody, TRBType>>;
211
+ <TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = UniAppDownloadBodyType>(resource: HttpURL, options?: HttpDownloadOptions<TRBType>): Promise<HttpDownloadResult<TRBody, TRBType>>;
177
212
  }
213
+ type HttpHookContextOptions = HttpRequestOptions & {
214
+ _action: 'request';
215
+ } | HttpUploadOptions & {
216
+ _action: 'upload';
217
+ } | HttpDownloadOptions & {
218
+ _action: 'download';
219
+ };
178
220
  interface HttpHooks<TContextOptions, TResponse> {
179
221
  onRequest?: (context: {
180
222
  resource: HttpURL;
@@ -196,34 +238,85 @@ interface HttpHooks<TContextOptions, TResponse> {
196
238
  response: TResponse;
197
239
  }) => MaybePromise<void>;
198
240
  }
199
- interface HttpConfig extends HttpCommonOptions, HttpHooks<HttpOptions, HttpRawResponse> {}
241
+ interface HttpConfig extends HttpCommonOptions, HttpHooks<HttpHookContextOptions, HttpResponse> {}
200
242
  interface HttpError<T = any> extends Error {
201
243
  resource?: HttpURL;
202
244
  options?: HttpOptions;
203
- response?: HttpRawResponse<T>;
245
+ response?: HttpResponse<T>;
204
246
  data: T;
205
247
  }
206
248
  //#endregion
207
249
  //#region src/oiyo/http/core.d.ts
208
250
  interface Http {
209
251
  /**
210
- * 普通请求
252
+ * 发起请求
253
+ *
254
+ * @example
255
+ * const data = await http.request<IUserInfoRes>('/user/info')
256
+ * // data 是精炼后的数据,同 `IUserInfoRes` 结构的值
257
+ *
258
+ * const response = await http.request<IUserInfoRes>('/user/info', { raw: true })
259
+ * // response 是源响应数据,你必须通过 response.data 才能拿到同 `IUserInfoRes` 结构的值
211
260
  */
212
- request: HttpRequestMethod;
261
+ request: HttpRequest;
213
262
  /**
214
263
  * 文件上传
264
+ *
265
+ * @example
266
+ * const data = await http.upload<IUploadRes>('/upload', { name: 'file', filePath, body: { category: 'avatar' } })
267
+ * // data 是精炼后的数据,同 `IUploadRes` 结构的值
268
+ *
269
+ * const response = await http.upload<IUploadRes>('/upload', { raw: true, name: 'file', filePath, body: { category: 'avatar' } })
270
+ * // response 是源响应数据,你必须通过 response.data 才能拿到同 `IUploadRes` 结构的值
215
271
  */
216
- upload: HttpUploadMethod;
272
+ upload: HttpUpload;
217
273
  /**
218
274
  * 文件下载
275
+ *
276
+ * @example
277
+ * const data = await http.download('/file/report.pdf')
278
+ * // data.tempFilePath 可以直接获取到临时文件路径
279
+ *
280
+ * const response = await http.download('/file/report.pdf', { raw: true })
281
+ * // response 是源响应数据,你必须通过 response.data.tempFilePath 才能拿到
219
282
  */
220
- download: HttpDownloadMethod;
283
+ download: HttpDownload;
221
284
  /**
222
285
  * 基于当前配置派生一个新实例。
286
+ *
287
+ * @example
288
+ * // 作为实例源
289
+ * const client = http.create({ ... })
290
+ *
291
+ * // 派生鉴权/订单专用实例,它们都会继承与 client 中的配置
292
+ * const authClient = client.create({...})
293
+ * const orderClient = client.create({...})
223
294
  */
224
295
  create: (config: HttpConfig) => Http;
225
296
  }
226
297
  declare function createHttp(globalConfig?: HttpConfig): Http;
298
+ /**
299
+ * 请求层
300
+ *
301
+ * @docs https://oiyo.js.org/docs/manual/data/http
302
+ * @example
303
+ * // 发起请求
304
+ * const data = await http.request<IUserInfoRes>('/user/info')
305
+ *
306
+ * // 文件上传
307
+ * const data = await http.upload<IUploadRes>('/upload', { name: 'file', filePath, body: { category: 'avatar' } })
308
+ *
309
+ * // 文件下载
310
+ * const { tempFilePath } = await http.download('/file/report.pdf')
311
+ *
312
+ * // 中断进行中的请求
313
+ * const aborter = createHttpAborter()
314
+ * http.request('/pet/1', { signal: aborter.signal })
315
+ * aborter.abort()
316
+ *
317
+ * // 派生一个新实例(覆盖超时等配置,公共实例的钩子会一并串联执行)
318
+ * const longTimeoutClient = http.create({ timeout: 120000 })
319
+ */
227
320
  declare const http: Http;
228
321
  //#endregion
229
- export { HttpDownloadResponse as a, HttpCommonOptions as c, HttpRequestOptions as d, HttpUploadOptions as f, HttpError as i, HttpDownloadOptions as l, createHttpAborter as m, http as n, HttpRequestResponse as o, ResponseBodyType as p, HttpConfig as r, HttpUploadResponse as s, createHttp as t, HttpOptions as u };
322
+ export { HttpDownloadResponse as a, HttpUploadResponse as c, HttpOptions as d, HttpRequestOptions as f, createHttpAborter as h, HttpError as i, HttpCommonOptions as l, ResponseBodyType as m, http as n, HttpRequestResponse as o, HttpUploadOptions as p, HttpConfig as r, HttpResponse as s, createHttp as t, HttpDownloadOptions as u };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
@@ -57,22 +57,21 @@ type MappedResponseBodyType<TRBType extends ResponseBodyType, TRBJsonType = any>
57
57
  //#endregion
58
58
  //#region src/oiyo/http/types/uni.d.ts
59
59
  type UniAppRequestOptions = Omit<UniNamespace.RequestOptions, 'url' | 'data' | 'header' | 'method' | 'timeout' | 'responseType' | 'success' | 'fail' | 'complete'>;
60
+ interface UniAppOnChunkData {
61
+ data: ArrayBuffer;
62
+ }
60
63
  type UniAppRequestResponse<TRBody = any> = Prettify<Omit<UniNamespace.RequestSuccessCallbackResult, 'data'> & {
61
64
  data: TRBody;
62
65
  }>;
63
66
  type UniAppUploadOptions = Omit<UniNamespace.UploadFileOption, 'url' | 'header' | 'formData' | 'timeout' | 'success' | 'fail' | 'complete'>;
64
- interface UniAppOnUploadProgress extends UniNamespace.OnProgressUpdateResult {}
67
+ interface UniAppOnUploadProgressData extends UniNamespace.OnProgressUpdateResult {}
65
68
  type UniAppUploadResponse<TRBody = any> = Prettify<Omit<UniNamespace.UploadFileSuccessCallbackResult, 'data'> & {
66
69
  data: TRBody;
67
70
  }>;
68
71
  type UniAppDownloadBodyType = 'json';
69
72
  type UniAppDownloadBody = Prettify<Pick<UniNamespace.DownloadSuccessData, 'tempFilePath'>>;
70
73
  type UniAppDownloadOptions = Omit<UniNamespace.DownloadFileOption, 'url' | 'header' | 'timeout' | 'success' | 'fail' | 'complete'>;
71
- interface UniAppDownloadProgress extends UniNamespace.OnProgressDownloadResult {
72
- progress: number;
73
- totalBytesWritten: number;
74
- totalBytesExpectedToWrite: number;
75
- }
74
+ interface UniAppDownloadProgressData extends UniNamespace.OnProgressDownloadResult {}
76
75
  type UniAppDownloadResponse<TRBody = any> = Prettify<Omit<UniNamespace.DownloadSuccessData, keyof UniAppDownloadBody> & {
77
76
  data: TRBody;
78
77
  }>;
@@ -85,7 +84,7 @@ interface HeadersReceived {
85
84
  header: Record<string, string>;
86
85
  }
87
86
  /**
88
- * 所有请求共享的基础选项。
87
+ * 所有传输方式共享的基础选项。
89
88
  */
90
89
  interface HttpCommonOptions<TRBType extends ResponseBodyType = ResponseBodyType> {
91
90
  baseURL?: string;
@@ -94,6 +93,7 @@ interface HttpCommonOptions<TRBType extends ResponseBodyType = ResponseBodyType>
94
93
  query?: Record<string, any>;
95
94
  body?: any;
96
95
  timeout?: number;
96
+ _action?: 'request' | 'upload' | 'download';
97
97
  /**
98
98
  * 为 true 时返回完整响应对象(statusCode / header / data ...),
99
99
  * 否则只返回精炼后的 data。
@@ -111,7 +111,7 @@ interface HttpCommonOptions<TRBType extends ResponseBodyType = ResponseBodyType>
111
111
  ignoreResponseError?: boolean;
112
112
  /**
113
113
  * 中断信号,由 `createHttpAborter()` 创建。
114
- * 信号触发后请求会被中断;已中断的信号会让请求立即中断。
114
+ * 信号触发后传输会被中断;已中断的信号会让传输立即中断。
115
115
  */
116
116
  signal?: HttpAbortSignal;
117
117
  /**
@@ -120,61 +120,103 @@ interface HttpCommonOptions<TRBType extends ResponseBodyType = ResponseBodyType>
120
120
  onHeadersReceived?: (result: HeadersReceived) => void;
121
121
  }
122
122
  interface HttpRequestOptions<TRBType extends ResponseBodyType = ResponseBodyType> extends HttpCommonOptions<TRBType>, UniAppRequestOptions {
123
+ /**
124
+ * 传输动作
125
+ * @description 常用于钩子中
126
+ * @protected
127
+ */
128
+ _action?: 'request';
129
+ /**
130
+ * 请求方法
131
+ * @default - 'POST'
132
+ */
123
133
  method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT';
134
+ /**
135
+ * 监听流式数据
136
+ * @description onChunkReceived
137
+ */
138
+ onChunk?: (data: UniAppOnChunkData) => void;
124
139
  }
125
140
  interface HttpUploadOptions<TRBType extends ResponseBodyType = ResponseBodyType> extends HttpCommonOptions<TRBType>, UniAppUploadOptions {
126
141
  /**
127
- * 上传请求方法,强制 POST
142
+ * 传输动作
143
+ * @description 常用于钩子中
144
+ * @protected
145
+ */
146
+ _action?: 'upload';
147
+ /**
148
+ * 上传方法,强制 POST
128
149
  * @default - 'POST'
129
150
  */
130
151
  method?: 'POST';
131
152
  /**
132
- * 监听上传进度(对应 task.onProgressUpdate)。
153
+ * 监听上传进度
154
+ * @description 对应 onProgressUpdate
133
155
  */
134
- onProgress?: (result: UniAppOnUploadProgress) => void;
156
+ onProgress?: (data: UniAppOnUploadProgressData) => void;
135
157
  }
136
158
  interface HttpDownloadOptions<TRBType extends UniAppDownloadBodyType = 'json'> extends HttpCommonOptions<TRBType>, UniAppDownloadOptions {
137
159
  /**
138
- * 下载请求方法,强制 GET
160
+ * 传输动作
161
+ * @description 常用于钩子中
162
+ * @protected
163
+ */
164
+ _action?: 'download';
165
+ /**
166
+ * 下载方法,强制 GET
139
167
  * @default - 'GET'
140
168
  */
141
169
  method?: 'GET';
142
170
  /**
143
- * 监听下载进度(对应 task.onProgressUpdate)。
171
+ * 监听下载进度
172
+ * @description 对应 onProgressUpdate
144
173
  */
145
- onProgress?: (result: UniAppDownloadProgress) => void;
174
+ onProgress?: (data: UniAppDownloadProgressData) => void;
146
175
  }
176
+ /**
177
+ * 传输地址
178
+ */
147
179
  type HttpURL = string;
180
+ /**
181
+ * 传输属性
182
+ */
148
183
  interface HttpOptions extends HttpCommonOptions, UniAppRequestOptions, UniAppUploadOptions, UniAppDownloadOptions {}
149
184
  //#endregion
150
185
  //#region src/oiyo/http/types/response.d.ts
151
- type HttpRequestResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = MappedResponseBodyType<TRBType, TRBody>;
152
- type HttpUploadResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = MappedResponseBodyType<TRBType, TRBody>;
153
- type HttpDownloadResponse<TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = 'json'> = MappedResponseBodyType<TRBType, TRBody>;
154
- type HttpRequestRawResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = UniAppRequestResponse<MappedResponseBodyType<TRBType, TRBody>>;
155
- type HttpUploadRawResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = UniAppUploadResponse<MappedResponseBodyType<TRBType, TRBody>>;
156
- type HttpDownloadRawResponse<TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = 'json'> = UniAppDownloadResponse<MappedResponseBodyType<TRBType, TRBody>>;
157
- type HttpRawResponse<T = any> = HttpRequestRawResponse<T> | HttpUploadRawResponse<T> | HttpDownloadRawResponse;
186
+ type HttpRequestResult<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = MappedResponseBodyType<TRBType, TRBody>;
187
+ type HttpUploadResult<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = MappedResponseBodyType<TRBType, TRBody>;
188
+ type HttpDownloadResult<TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = 'json'> = MappedResponseBodyType<TRBType, TRBody>;
189
+ type HttpRequestResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = UniAppRequestResponse<MappedResponseBodyType<TRBType, TRBody>>;
190
+ type HttpUploadResponse<TRBody = any, TRBType extends ResponseBodyType = ResponseBodyType> = UniAppUploadResponse<MappedResponseBodyType<TRBType, TRBody>>;
191
+ type HttpDownloadResponse<TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = 'json'> = UniAppDownloadResponse<MappedResponseBodyType<TRBType, TRBody>>;
192
+ type HttpResponse<T = any> = HttpRequestResponse<T> | HttpUploadResponse<T> | HttpDownloadResponse;
158
193
  //#endregion
159
194
  //#region src/oiyo/http/types/core.d.ts
160
- interface HttpRequestMethod {
195
+ interface HttpRequest {
161
196
  <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options: HttpRequestOptions<TRBType> & {
162
197
  raw: true;
163
- }): Promise<HttpRequestRawResponse<TRBody, TRBType>>;
164
- <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options?: HttpRequestOptions<TRBType>): Promise<HttpRequestResponse<TRBody, TRBType>>;
198
+ }): Promise<HttpRequestResponse<TRBody, TRBType>>;
199
+ <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options?: HttpRequestOptions<TRBType>): Promise<HttpRequestResult<TRBody, TRBType>>;
165
200
  }
166
- interface HttpUploadMethod {
201
+ interface HttpUpload {
167
202
  <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options: HttpUploadOptions<TRBType> & {
168
203
  raw: true;
169
- }): Promise<HttpUploadRawResponse<TRBody, TRBType>>;
170
- <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options?: HttpUploadOptions<TRBType>): Promise<HttpUploadResponse<TRBody, TRBType>>;
204
+ }): Promise<HttpUploadResponse<TRBody, TRBType>>;
205
+ <TRBody = any, TRBType extends ResponseBodyType = 'json'>(resource: HttpURL, options?: HttpUploadOptions<TRBType>): Promise<HttpUploadResult<TRBody, TRBType>>;
171
206
  }
172
- interface HttpDownloadMethod {
207
+ interface HttpDownload {
173
208
  <TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = UniAppDownloadBodyType>(resource: HttpURL, options: HttpDownloadOptions<TRBType> & {
174
209
  raw: true;
175
- }): Promise<HttpDownloadRawResponse<TRBody, TRBType>>;
176
- <TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = UniAppDownloadBodyType>(resource: HttpURL, options?: HttpDownloadOptions<TRBType>): Promise<HttpDownloadResponse<TRBody, TRBType>>;
210
+ }): Promise<HttpDownloadResponse<TRBody, TRBType>>;
211
+ <TRBody extends UniAppDownloadBody = UniAppDownloadBody, TRBType extends UniAppDownloadBodyType = UniAppDownloadBodyType>(resource: HttpURL, options?: HttpDownloadOptions<TRBType>): Promise<HttpDownloadResult<TRBody, TRBType>>;
177
212
  }
213
+ type HttpHookContextOptions = HttpRequestOptions & {
214
+ _action: 'request';
215
+ } | HttpUploadOptions & {
216
+ _action: 'upload';
217
+ } | HttpDownloadOptions & {
218
+ _action: 'download';
219
+ };
178
220
  interface HttpHooks<TContextOptions, TResponse> {
179
221
  onRequest?: (context: {
180
222
  resource: HttpURL;
@@ -196,34 +238,85 @@ interface HttpHooks<TContextOptions, TResponse> {
196
238
  response: TResponse;
197
239
  }) => MaybePromise<void>;
198
240
  }
199
- interface HttpConfig extends HttpCommonOptions, HttpHooks<HttpOptions, HttpRawResponse> {}
241
+ interface HttpConfig extends HttpCommonOptions, HttpHooks<HttpHookContextOptions, HttpResponse> {}
200
242
  interface HttpError<T = any> extends Error {
201
243
  resource?: HttpURL;
202
244
  options?: HttpOptions;
203
- response?: HttpRawResponse<T>;
245
+ response?: HttpResponse<T>;
204
246
  data: T;
205
247
  }
206
248
  //#endregion
207
249
  //#region src/oiyo/http/core.d.ts
208
250
  interface Http {
209
251
  /**
210
- * 普通请求
252
+ * 发起请求
253
+ *
254
+ * @example
255
+ * const data = await http.request<IUserInfoRes>('/user/info')
256
+ * // data 是精炼后的数据,同 `IUserInfoRes` 结构的值
257
+ *
258
+ * const response = await http.request<IUserInfoRes>('/user/info', { raw: true })
259
+ * // response 是源响应数据,你必须通过 response.data 才能拿到同 `IUserInfoRes` 结构的值
211
260
  */
212
- request: HttpRequestMethod;
261
+ request: HttpRequest;
213
262
  /**
214
263
  * 文件上传
264
+ *
265
+ * @example
266
+ * const data = await http.upload<IUploadRes>('/upload', { name: 'file', filePath, body: { category: 'avatar' } })
267
+ * // data 是精炼后的数据,同 `IUploadRes` 结构的值
268
+ *
269
+ * const response = await http.upload<IUploadRes>('/upload', { raw: true, name: 'file', filePath, body: { category: 'avatar' } })
270
+ * // response 是源响应数据,你必须通过 response.data 才能拿到同 `IUploadRes` 结构的值
215
271
  */
216
- upload: HttpUploadMethod;
272
+ upload: HttpUpload;
217
273
  /**
218
274
  * 文件下载
275
+ *
276
+ * @example
277
+ * const data = await http.download('/file/report.pdf')
278
+ * // data.tempFilePath 可以直接获取到临时文件路径
279
+ *
280
+ * const response = await http.download('/file/report.pdf', { raw: true })
281
+ * // response 是源响应数据,你必须通过 response.data.tempFilePath 才能拿到
219
282
  */
220
- download: HttpDownloadMethod;
283
+ download: HttpDownload;
221
284
  /**
222
285
  * 基于当前配置派生一个新实例。
286
+ *
287
+ * @example
288
+ * // 作为实例源
289
+ * const client = http.create({ ... })
290
+ *
291
+ * // 派生鉴权/订单专用实例,它们都会继承与 client 中的配置
292
+ * const authClient = client.create({...})
293
+ * const orderClient = client.create({...})
223
294
  */
224
295
  create: (config: HttpConfig) => Http;
225
296
  }
226
297
  declare function createHttp(globalConfig?: HttpConfig): Http;
298
+ /**
299
+ * 请求层
300
+ *
301
+ * @docs https://oiyo.js.org/docs/manual/data/http
302
+ * @example
303
+ * // 发起请求
304
+ * const data = await http.request<IUserInfoRes>('/user/info')
305
+ *
306
+ * // 文件上传
307
+ * const data = await http.upload<IUploadRes>('/upload', { name: 'file', filePath, body: { category: 'avatar' } })
308
+ *
309
+ * // 文件下载
310
+ * const { tempFilePath } = await http.download('/file/report.pdf')
311
+ *
312
+ * // 中断进行中的请求
313
+ * const aborter = createHttpAborter()
314
+ * http.request('/pet/1', { signal: aborter.signal })
315
+ * aborter.abort()
316
+ *
317
+ * // 派生一个新实例(覆盖超时等配置,公共实例的钩子会一并串联执行)
318
+ * const longTimeoutClient = http.create({ timeout: 120000 })
319
+ */
227
320
  declare const http: Http;
228
321
  //#endregion
229
- export { HttpDownloadResponse as a, HttpCommonOptions as c, HttpRequestOptions as d, HttpUploadOptions as f, HttpError as i, HttpDownloadOptions as l, createHttpAborter as m, http as n, HttpRequestResponse as o, ResponseBodyType as p, HttpConfig as r, HttpUploadResponse as s, createHttp as t, HttpOptions as u };
322
+ export { HttpDownloadResponse as a, HttpUploadResponse as c, HttpOptions as d, HttpRequestOptions as f, createHttpAborter as h, HttpError as i, HttpCommonOptions as l, ResponseBodyType as m, http as n, HttpRequestResponse as o, HttpUploadOptions as p, HttpConfig as r, HttpResponse as s, createHttp as t, HttpDownloadOptions as u };
package/dist/index.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
6
6
  */
7
7
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
8
- const require_oiyo = require("./oiyo-Dz2nYhKn.cjs");
8
+ const require_oiyo = require("./oiyo-CUAtDW_Y.cjs");
9
9
  require("./uni.cjs");
10
10
  require("./vue.cjs");
11
11
  exports.createHttp = require_oiyo.createHttp;
package/dist/index.d.cts CHANGED
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
6
6
  */
7
- import { a as HttpDownloadResponse, c as HttpCommonOptions, d as HttpRequestOptions, f as HttpUploadOptions, i as HttpError, l as HttpDownloadOptions, m as createHttpAborter, n as http, o as HttpRequestResponse, p as ResponseBodyType, r as HttpConfig, s as HttpUploadResponse, t as createHttp, u as HttpOptions } from "./index-DaPBMr2_.cjs";
7
+ import { a as HttpDownloadResponse, c as HttpUploadResponse, d as HttpOptions, f as HttpRequestOptions, h as createHttpAborter, i as HttpError, l as HttpCommonOptions, m as ResponseBodyType, n as http, o as HttpRequestResponse, p as HttpUploadOptions, r as HttpConfig, s as HttpResponse, t as createHttp, u as HttpDownloadOptions } from "./index-DpCCifZz.cjs";
8
8
  import "./uni.cjs";
9
9
  import "./vue.cjs";
10
10
  export * from "@dcloudio/uni-app";
11
11
  export * from "vue";
12
- export { type HttpCommonOptions, type HttpConfig, type HttpDownloadOptions, type HttpDownloadResponse, type HttpError, type HttpOptions, type HttpRequestOptions, type HttpRequestResponse, type HttpUploadOptions, type HttpUploadResponse, type ResponseBodyType, createHttp, createHttpAborter, http };
12
+ export { type HttpCommonOptions, type HttpConfig, type HttpDownloadOptions, type HttpDownloadResponse, type HttpError, type HttpOptions, type HttpRequestOptions, type HttpRequestResponse, type HttpResponse, type HttpUploadOptions, type HttpUploadResponse, type ResponseBodyType, createHttp, createHttpAborter, http };
package/dist/index.d.mts CHANGED
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
6
6
  */
7
- import { a as HttpDownloadResponse, c as HttpCommonOptions, d as HttpRequestOptions, f as HttpUploadOptions, i as HttpError, l as HttpDownloadOptions, m as createHttpAborter, n as http, o as HttpRequestResponse, p as ResponseBodyType, r as HttpConfig, s as HttpUploadResponse, t as createHttp, u as HttpOptions } from "./index-DaPBMr2_.mjs";
7
+ import { a as HttpDownloadResponse, c as HttpUploadResponse, d as HttpOptions, f as HttpRequestOptions, h as createHttpAborter, i as HttpError, l as HttpCommonOptions, m as ResponseBodyType, n as http, o as HttpRequestResponse, p as HttpUploadOptions, r as HttpConfig, s as HttpResponse, t as createHttp, u as HttpDownloadOptions } from "./index-DpCCifZz.mjs";
8
8
  import "./uni.mjs";
9
9
  import "./vue.mjs";
10
10
  export * from "@dcloudio/uni-app";
11
11
  export * from "vue";
12
- export { type HttpCommonOptions, type HttpConfig, type HttpDownloadOptions, type HttpDownloadResponse, type HttpError, type HttpOptions, type HttpRequestOptions, type HttpRequestResponse, type HttpUploadOptions, type HttpUploadResponse, type ResponseBodyType, createHttp, createHttpAborter, http };
12
+ export { type HttpCommonOptions, type HttpConfig, type HttpDownloadOptions, type HttpDownloadResponse, type HttpError, type HttpOptions, type HttpRequestOptions, type HttpRequestResponse, type HttpResponse, type HttpUploadOptions, type HttpUploadResponse, type ResponseBodyType, createHttp, createHttpAborter, http };
package/dist/index.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
6
6
  */
7
- import { n as http, r as createHttpAborter, t as createHttp } from "./oiyo-Cfyt1TAC.mjs";
7
+ import { n as http, r as createHttpAborter, t as createHttp } from "./oiyo-BXNGL_oa.mjs";
8
8
  import "./uni.mjs";
9
9
  import "./vue.mjs";
10
10
  export * from "@dcloudio/uni-app";
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @oiyo/framework v0.4.9
3
+ * Copyright (c) 2026 skiyee. All rights reserved.
4
+ * Commercial software. See LICENSE for terms.
5
+ * Official site: https://oiyo.js.org
6
+ */
7
+ const _0x5be832=_0x234c;(function(_0x5624d2,_0x2e5e92){const _0x741efa=_0x234c,_0x78a545=_0x5624d2();while(!![]){try{const _0xfd5f3e=-parseInt(_0x741efa(0xfb))/0x1+-parseInt(_0x741efa(0xd1))/0x2*(-parseInt(_0x741efa(0xe4))/0x3)+parseInt(_0x741efa(0xcd))/0x4+parseInt(_0x741efa(0x10c))/0x5*(parseInt(_0x741efa(0x100))/0x6)+parseInt(_0x741efa(0xf2))/0x7+parseInt(_0x741efa(0x106))/0x8+parseInt(_0x741efa(0x10b))/0x9*(-parseInt(_0x741efa(0xdd))/0xa);if(_0xfd5f3e===_0x2e5e92)break;else _0x78a545['push'](_0x78a545['shift']());}catch(_0x50553a){_0x78a545['push'](_0x78a545['shift']());}}}(_0xeeec,0xd8c32));function createHttpAborter(){const _0x5693d4=new HttpAbortSignal();return{'signal':_0x5693d4,'abort':_0xfad464=>_0x5693d4['_abort'](_0xfad464)};}function _0xeeec(){const _0x199e01=['10579464PkTkTJ','assign','responseType','response','The\x20operation\x20was\x20aborted','listeners','includes','<no\x20response\x20body>','defineProperty','728005ecWJWC','onSuccess','enableHttpDNS','GET','emit','732750LYXaOO','request','has','startsWith','slice','onFail','9687624tDrYxs','AbortError','firstIpv4','then','filePath','9dArHgm','55HpWJlN','POST','map','complete','filter','files','timeout','entries','number','headers','withCredentials','abort','download','signal','<no\x20response>','PATCH','splice','name','isArray','onabort','onChunkReceived','5088776JcrNDa','flatMap','toUpperCase','onProgressUpdate','12PoHNan','query','url','fileType','data','text','dataType','success','push','create','upload','formData','51322090BmJlOn','onHeadersReceived','sslVerify','statusCode','uploadFile','aborted','tempFilePath','705099FxRMVu','removeEventListener','reason','json','_action','body','test','file','enableCache','downloadFile','method','replace','catch','onResponse'];_0xeeec=function(){return _0x199e01;};return _0xeeec();}const ABORT_ERROR_NAME=_0x5be832(0x107);var AbortEmitter=class{['listeners']=[];['addEventListener'](_0x2c0ab6,_0x321f8e){const _0x1ee579=_0x5be832;if(_0x2c0ab6!=='abort')return;this['listeners'][_0x1ee579(0xd9)](_0x321f8e);}[_0x5be832(0xe5)](_0xf15582,_0x33f400){const _0x1f3f35=_0x5be832;if(_0xf15582!==_0x1f3f35(0xc3))return;const _0x55da68=this['listeners']['indexOf'](_0x33f400);if(_0x55da68!==-0x1)this[_0x1f3f35(0xf7)][_0x1f3f35(0xc8)](_0x55da68,0x1);}[_0x5be832(0xff)](_0x59e63b){const _0xa66d1c=_0x5be832;for(const _0x29cc45 of this['listeners'][_0xa66d1c(0x104)]())_0x29cc45['call'](this,_0x59e63b);}},HttpAbortSignal=class extends AbortEmitter{[_0x5be832(0xe2)]=![];[_0x5be832(0xe6)]=void 0x0;[_0x5be832(0xcb)]=null;['_abort'](_0x4ee2bb){const _0x7120a=_0x5be832;if(this[_0x7120a(0xe2)])return;this['aborted']=!![],this['reason']=_0x4ee2bb===void 0x0?createAbortError():_0x4ee2bb;const _0x296746={};_0x296746['type']='abort';const _0x3e40c0=_0x296746;if(typeof this[_0x7120a(0xcb)]==='function')this['onabort'](_0x3e40c0);this['emit'](_0x3e40c0);}['throwIfAborted'](){if(this['aborted'])throw this['reason'];}};function createAbortError(_0x4e17da=_0x5be832(0xf6)){const _0x1759fc=new Error(_0x4e17da);return _0x1759fc['name']=ABORT_ERROR_NAME,_0x1759fc;}function isAbortError(_0x2c9aca){const _0x4286d7=_0x5be832;return _0x2c9aca instanceof Error&&_0x2c9aca[_0x4286d7(0xc9)]===ABORT_ERROR_NAME;}function _0x234c(_0x31bbe6,_0x6300e5){_0x31bbe6=_0x31bbe6-0xba;const _0xeeecb7=_0xeeec();let _0x234c4d=_0xeeecb7[_0x31bbe6];return _0x234c4d;}function onAbort(_0x30edd6,_0x4bcd9c){const _0x33cddc=_0x5be832;if(!_0x30edd6)return()=>{};if(_0x30edd6[_0x33cddc(0xe2)])return _0x4bcd9c(),()=>{};return _0x30edd6['addEventListener'](_0x33cddc(0xc3),_0x4bcd9c),()=>_0x30edd6['removeEventListener'](_0x33cddc(0xc3),_0x4bcd9c);}const HOOK_NAMES=['onRequest','onRequestError','onResponse','onResponseError'];function mergeOptions(..._0x4d64c3){const _0x24ac55=_0x5be832,_0x1b69c9={},_0x165b7d={};for(const _0x1b53a2 of _0x4d64c3){if(!_0x1b53a2)continue;for(const _0x3292f2 of HOOK_NAMES)collectHook(_0x165b7d,_0x3292f2,_0x1b53a2);const _0x3bef7b=_0x1b69c9['headers'],_0xe5c9c2=_0x1b69c9['query'];Object['assign'](_0x1b69c9,_0x1b53a2);const _0x321b56={..._0x3bef7b,..._0x1b53a2[_0x24ac55(0xc1)]};_0x1b69c9[_0x24ac55(0xc1)]=_0x321b56;const _0x2fe4c8={..._0xe5c9c2,..._0x1b53a2[_0x24ac55(0xd2)]};_0x1b69c9['query']=_0x2fe4c8;}for(const [_0x1bfe59,_0x11caac]of Object[_0x24ac55(0xbf)](_0x165b7d))Object[_0x24ac55(0xf3)](_0x1b69c9,{[_0x1bfe59]:async _0x5c1829=>{for(const _0x30eb20 of _0x11caac)await _0x30eb20(_0x5c1829);}});return _0x1b69c9;}function collectHook(_0x556ba9,_0x2afbde,_0x3b1ab4){const _0x409956=_0x5be832,_0x198001=_0x3b1ab4[_0x2afbde];if(typeof _0x198001!=='function')return;_0x556ba9[_0x2afbde]??=[],_0x556ba9[_0x2afbde][_0x409956(0xd9)](_0x198001);}function dispatch(_0x5adf9d,_0x2bed50,_0x267114,_0x584f92){let _0x1e39c0;if(_0x5adf9d==='upload')_0x1e39c0=dispatchUpload(_0x2bed50,_0x267114,_0x584f92);else{if(_0x5adf9d==='download')_0x1e39c0=dispatchDownload(_0x2bed50,_0x267114,_0x584f92);else _0x1e39c0=dispatchRequest(_0x2bed50,_0x267114,_0x584f92);}bindTask(_0x1e39c0,_0x267114);}function bindTask(_0x9b32a5,_0x6fa55a){const _0x4c10ea=_0x5be832;onAbort(_0x6fa55a[_0x4c10ea(0xc5)],()=>_0x9b32a5['abort']());if(typeof _0x6fa55a['onHeadersReceived']==='function')_0x9b32a5[_0x4c10ea(0xde)](_0x6fa55a['onHeadersReceived']);const _0x187102=_0x6fa55a['onChunk'];if(typeof _0x187102==='function'&&_0x4c10ea(0xcc)in _0x9b32a5)_0x9b32a5[_0x4c10ea(0xcc)](_0x187102);const _0x6c855b=_0x6fa55a['onProgress'];if(typeof _0x6c855b==='function'&&_0x4c10ea(0xd0)in _0x9b32a5)_0x9b32a5[_0x4c10ea(0xd0)](_0x6c855b);}function dispatchRequest(_0x1ffc0a,_0x5f3031,_0x5afe76){const _0x39e7a2=_0x5be832,_0x5a2b67={'url':_0x1ffc0a,'method':_0x5f3031[_0x39e7a2(0xee)],'header':_0x5f3031[_0x39e7a2(0xc1)],'data':_0x5f3031[_0x39e7a2(0xe9)]??{},'timeout':_0x5f3031['timeout'],'dataType':_0x5f3031[_0x39e7a2(0xd7)]||_0x39e7a2(0xe7),'responseType':mappedResponseBodyType(_0x5f3031[_0x39e7a2(0xf4)]),'sslVerify':_0x5f3031[_0x39e7a2(0xdf)],'withCredentials':_0x5f3031[_0x39e7a2(0xc2)],'firstIpv4':_0x5f3031[_0x39e7a2(0x108)],'enableHttp2':_0x5f3031['enableHttp2'],'enableQuic':_0x5f3031['enableQuic'],'enableCache':_0x5f3031[_0x39e7a2(0xec)],'enableHttpDNS':_0x5f3031[_0x39e7a2(0xfd)],'httpDNSServiceId':_0x5f3031['httpDNSServiceId'],'enableChunked':_0x5f3031['enableChunked'],'forceCellularNetwork':_0x5f3031['forceCellularNetwork'],'success':_0x5afe76[_0x39e7a2(0xfc)],'fail':_0x5afe76[_0x39e7a2(0x105)],'complete':()=>{}};return uni['request'](_0x5a2b67);}function dispatchUpload(_0x41b556,_0x25dfad,_0x6a1dfd){const _0x3304b2=_0x5be832,_0x5ccfee={};_0x5ccfee[_0x3304b2(0xd3)]=_0x41b556,_0x5ccfee['fileType']=_0x25dfad[_0x3304b2(0xd4)],_0x5ccfee['file']=_0x25dfad[_0x3304b2(0xeb)],_0x5ccfee[_0x3304b2(0x10a)]=_0x25dfad['filePath'],_0x5ccfee['name']=_0x25dfad[_0x3304b2(0xc9)]??_0x3304b2(0xeb),_0x5ccfee[_0x3304b2(0xbd)]=_0x25dfad[_0x3304b2(0xbd)],_0x5ccfee['header']=_0x25dfad['headers'],_0x5ccfee[_0x3304b2(0xdc)]=_0x25dfad[_0x3304b2(0xe9)]??{},_0x5ccfee[_0x3304b2(0xbe)]=_0x25dfad[_0x3304b2(0xbe)],_0x5ccfee[_0x3304b2(0xd8)]=_0x6a1dfd['onSuccess'],_0x5ccfee['fail']=_0x6a1dfd[_0x3304b2(0x105)],_0x5ccfee[_0x3304b2(0xbb)]=()=>{};const _0x1dee32=_0x5ccfee;return uni[_0x3304b2(0xe1)](_0x1dee32);}function dispatchDownload(_0xdea449,_0x1bde4e,_0x4be6d8){const _0x53c775=_0x5be832,_0x220d13={'url':_0xdea449,'header':_0x1bde4e['headers'],'timeout':_0x1bde4e['timeout'],'success':_0x6a239=>{const _0x545d87=_0x234c,_0x41edad={..._0x6a239};_0x41edad[_0x545d87(0xd5)]={},_0x41edad[_0x545d87(0xd5)][_0x545d87(0xe3)]=_0x6a239[_0x545d87(0xe3)],_0x4be6d8[_0x545d87(0xfc)](_0x41edad);},'fail':_0x4be6d8[_0x53c775(0x105)],'complete':()=>{}};return uni[_0x53c775(0xed)](_0x220d13);}function mappedResponseBodyType(_0x4f9bc7){const _0x3041bf=_0x5be832;if(!_0x4f9bc7||_0x4f9bc7===_0x3041bf(0xe7))return'text';if(_0x4f9bc7==='arrayBuffer')return'arraybuffer';return _0x3041bf(0xd6);}var HttpError=class extends Error{constructor(_0x28d7c6){const _0x36426e=_0x5be832;super(_0x28d7c6),this[_0x36426e(0xc9)]='HttpError';}};function createResponseError(_0x25dcd4,_0x13fbdb,_0xff3b5b){const _0x2d6239=_0x5be832,_0x55d668=_0x25dcd4,_0x54b7b6='['+(_0x13fbdb?.['method']||'GET')+']\x20'+_0x55d668,_0x1e1624=_0xff3b5b?_0xff3b5b['statusCode']+'\x20'+(_0xff3b5b['errMsg']||''):_0x2d6239(0xc6),_0x148608=_0xff3b5b?JSON['stringify'](_0xff3b5b['data']):_0x2d6239(0xf9),_0x3d0290=new HttpError(_0x54b7b6+':\x20'+_0x1e1624+(_0xff3b5b['data']?'\x20'+_0x148608:''));for(const _0xa0bc48 of[_0x2d6239(0x101),'options','response','data'])Object[_0x2d6239(0xfa)](_0x3d0290,_0xa0bc48,{'get'(){const _0x1807db=_0x2d6239,_0x3b29b8={};return _0x3b29b8[_0x1807db(0x101)]=_0x25dcd4,_0x3b29b8['options']=_0x13fbdb,_0x3b29b8['response']=_0xff3b5b,_0x3b29b8[_0x1807db(0xd5)]=_0xff3b5b[_0x1807db(0xd5)],_0x3b29b8[_0xa0bc48];}});return _0x3d0290;}function normalizeError(_0x3fca60){if(_0x3fca60 instanceof Error)return _0x3fca60;return Object['assign'](new Error(_0x3fca60?.['errMsg']||_0x3fca60?.['message']||'HTTP\x20request\x20failed'),{'cause':_0x3fca60});}async function callRequestHooks(_0x4d5d5b,_0x37936d){await _0x37936d['onRequest']?.({'options':_0x37936d,'resource':_0x4d5d5b});}async function callRequestErrorHooks(_0x38d21c,_0x5c7121,_0x5adbb8){await _0x5c7121['onRequestError']?.({'options':_0x5c7121,'resource':_0x38d21c,'error':_0x5adbb8});}async function callResponseHooks(_0x12ed06,_0x56e203,_0x36ca7c){const _0x64fe60=_0x5be832;await _0x56e203[_0x64fe60(0xf1)]?.({'options':_0x56e203,'resource':_0x12ed06,'response':_0x36ca7c});}async function callResponseErrorHooks(_0x1d50ff,_0x77b3d9,_0x3571e0){await _0x77b3d9['onResponseError']?.({'options':_0x77b3d9,'resource':_0x1d50ff,'response':_0x3571e0});}async function refineResponse(_0x328da8,_0x15a1b8){if(_0x15a1b8['responseType']==='json'||!_0x15a1b8['responseType'])return{..._0x328da8,'data':await parseJSONResponse(_0x328da8['data'],_0x15a1b8)};return _0x328da8;}function parseJSONResponse(_0x2c72d4,_0x465be2){if(typeof _0x2c72d4!=='string')return _0x2c72d4;if(_0x465be2['parseResponse'])return _0x465be2['parseResponse'](_0x2c72d4);return _0x2c72d4?JSON['parse'](_0x2c72d4):null;}function isResponseError(_0xa973b8){const _0x30d600=_0x5be832,_0x17f130='statusCode'in _0xa973b8?_0xa973b8[_0x30d600(0xe0)]:void 0x0;return typeof _0x17f130===_0x30d600(0xc0)&&(_0x17f130<0xc8||_0x17f130>=0x12c);}const DEFAULT_RETRY_STATUS_CODES=[0x198,0x199,0x1a9,0x1ad,0x1f4,0x1f6,0x1f7,0x1f8],PAYLOAD_METHODS=new Set([_0x5be832(0x10d),'PUT','DELETE',_0x5be832(0xc7)]);async function withRetry(_0x5afcf4,_0x13febd){const _0xdffa61=_0x5be832,_0x41ff68=resolveRetryCount(_0x5afcf4);for(let _0x5e503e=0x0;;_0x5e503e++)try{return await _0x13febd();}catch(_0x2aefb5){if(_0x5e503e>=_0x41ff68||!shouldRetry(_0x2aefb5,_0x5afcf4))throw _0x2aefb5;await sleep(_0x5afcf4['retryDelay']??0x0,_0x5afcf4[_0xdffa61(0xc5)]);}}function resolveRetryCount(_0x5809ee){const _0x4aedd6=_0x5be832,{retry:_0x27ca97}=_0x5809ee;if(_0x27ca97===![])return 0x0;if(typeof _0x27ca97===_0x4aedd6(0xc0))return _0x27ca97>0x0?_0x27ca97:0x0;return isPayloadMethod(_0x5809ee['method'])?0x0:0x1;}function shouldRetry(_0x524f00,_0x38b58d){const _0x325c2f=_0x5be832;if(_0x38b58d['signal']?.[_0x325c2f(0xe2)]||isAbortError(_0x524f00))return![];const _0x54c746=_0x524f00?.[_0x325c2f(0xf5)]?.['statusCode'];if(typeof _0x54c746!=='number')return!![];return(_0x38b58d['retryStatusCodes']??DEFAULT_RETRY_STATUS_CODES)[_0x325c2f(0xf8)](_0x54c746);}function isPayloadMethod(_0x15a15f){const _0x557fe5=_0x5be832;return!!_0x15a15f&&PAYLOAD_METHODS[_0x557fe5(0x102)](_0x15a15f[_0x557fe5(0xcf)]());}function sleep(_0x7c99c0,_0x4a52ca){return new Promise((_0x3140ad,_0x82a108)=>{const _0x41797f=_0x234c;if(_0x4a52ca?.[_0x41797f(0xe2)]){_0x82a108(_0x4a52ca[_0x41797f(0xe6)]);return;}if(!(_0x7c99c0>0x0)){_0x3140ad();return;}let _0x2bdd42=()=>{};const _0x111724=setTimeout(()=>{_0x2bdd42(),_0x3140ad();},_0x7c99c0);_0x2bdd42=onAbort(_0x4a52ca,()=>{clearTimeout(_0x111724),_0x82a108(_0x4a52ca['reason']);});});}function buildURL(_0x41eb81,_0x28096e){const _0x2b16a6=_0x5be832,_0x5daf06=joinURL(_0x28096e['baseURL'],_0x41eb81),_0x38dc2e=_0x28096e['query']??{},_0x2c000d=Object['keys'](_0x38dc2e)[_0x2b16a6(0xbc)](_0x2add86=>_0x38dc2e[_0x2add86]!==void 0x0)[_0x2b16a6(0xce)](_0x1a8675=>{const _0x716409=_0x2b16a6,_0x44efc6=_0x38dc2e[_0x1a8675];return(Array[_0x716409(0xca)](_0x44efc6)?_0x44efc6:[_0x44efc6])[_0x716409(0xba)](_0x146632=>encodeURIComponent(_0x1a8675)+'='+encodeURIComponent(String(_0x146632)));})['join']('&');if(!_0x2c000d)return _0x5daf06;return''+_0x5daf06+(_0x5daf06[_0x2b16a6(0xf8)]('?')?'&':'?')+_0x2c000d;}function joinURL(_0x40b5b2,_0x6e8864){const _0x45459b=_0x5be832;if(!_0x40b5b2||isAbsoluteURL(_0x6e8864))return _0x6e8864;return _0x40b5b2[_0x45459b(0xef)](/\/+$/,'')+'/'+_0x6e8864[_0x45459b(0xef)](/^\/+/,'');}function isAbsoluteURL(_0x208f49){const _0x2293d3=_0x5be832;return/^[a-z][a-z\d+\-.]*:\/\//i[_0x2293d3(0xea)](_0x208f49)||_0x208f49[_0x2293d3(0x103)]('//');}function dispatchHttp(_0x579757,_0xbfd4d6,_0x483467){const _0x5a6b9a=buildURL(_0xbfd4d6,_0x483467);return withRetry(_0x483467,()=>attemptRequest(_0x579757,_0xbfd4d6,_0x5a6b9a,_0x483467));}function attemptRequest(_0x1f66f1,_0x4cae6b,_0x578ef5,_0x51b471){const _0x3d111f=!!_0x51b471['raw'];return new Promise((_0x39882d,_0x26a7b5)=>{const _0x2f7c0a=_0x234c;let _0x100207=![];const _0x4c4075=_0x594acb=>{if(_0x100207)return;_0x100207=!![],_0x594acb();},_0xab50cc=onAbort(_0x51b471['signal'],()=>{const _0x461756=_0x234c;_0x4c4075(()=>_0x26a7b5(_0x51b471[_0x461756(0xc5)][_0x461756(0xe6)]));}),_0x1099fc=_0x13ea98=>{_0xab50cc(),_0x4c4075(_0x13ea98);};callRequestHooks(_0x4cae6b,_0x51b471)['then'](()=>{if(_0x100207)return;dispatch(_0x1f66f1,_0x578ef5,_0x51b471,{'onSuccess':_0x4e4c23=>{const _0xae3892=_0x234c;Promise['resolve']()[_0xae3892(0x109)](()=>refineResponse(_0x4e4c23,_0x51b471))['then'](async _0xfa6309=>{if(isResponseError(_0x4e4c23)){await callResponseErrorHooks(_0x4cae6b,_0x51b471,_0xfa6309);if(!_0x51b471['ignoreResponseError'])throw createResponseError(_0x4cae6b,_0x51b471,_0xfa6309);}else await callResponseHooks(_0x4cae6b,_0x51b471,_0xfa6309);_0x1099fc(()=>_0x39882d(_0x3d111f?_0xfa6309:_0xfa6309['data']));})['catch'](_0x2b1f15=>_0x1099fc(()=>_0x26a7b5(_0x2b1f15)));},'onFail':_0x2e3f0e=>{const _0x356170=_0x234c;Promise['resolve']()[_0x356170(0x109)](async()=>{const _0x5189de=normalizeError(_0x2e3f0e);if(!isAbortError(_0x5189de))await callRequestErrorHooks(_0x4cae6b,_0x51b471,_0x5189de);throw _0x5189de;})['catch'](_0x5cf676=>_0x1099fc(()=>_0x26a7b5(_0x5cf676)));}});})[_0x2f7c0a(0xf0)](async _0x372187=>{const _0x464cc9=normalizeError(_0x372187);await callRequestErrorHooks(_0x4cae6b,_0x51b471,_0x464cc9),_0x1099fc(()=>_0x26a7b5(_0x464cc9));});});}const _0x35faf1={};_0x35faf1[_0x5be832(0xee)]='GET',_0x35faf1[_0x5be832(0xf4)]='json';const defaultConfig=_0x35faf1;function createHttp(_0x115a21={}){const _0x4e455a=_0x5be832,_0x5ba2c9=(_0x59c518,_0x941336)=>{const _0x1ddfe2=_0x234c,_0x4c397c={};return _0x4c397c['_action']='request',dispatchHttp(_0x1ddfe2(0x101),_0x59c518,mergeOptions(defaultConfig,_0x115a21,_0x941336,_0x4c397c));},_0x19535d=(_0x4ab800,_0x2eac96)=>{const _0x51cae2=_0x234c,_0x664bea={};return _0x664bea['method']=_0x51cae2(0x10d),_0x664bea[_0x51cae2(0xe8)]=_0x51cae2(0xdb),dispatchHttp(_0x51cae2(0xdb),_0x4ab800,mergeOptions(defaultConfig,_0x115a21,_0x2eac96,_0x664bea));},_0x29286f=(_0x553794,_0x417aa7)=>{const _0x2b5546=_0x234c,_0x40290d={};return _0x40290d['method']=_0x2b5546(0xfe),_0x40290d['_action']=_0x2b5546(0xc4),dispatchHttp(_0x2b5546(0xc4),_0x553794,mergeOptions(defaultConfig,_0x115a21,_0x417aa7,_0x40290d));},_0x5384d1=_0x5c2920=>createHttp(mergeOptions(_0x115a21,_0x5c2920)),_0x331af2={};return _0x331af2['request']=_0x5ba2c9,_0x331af2[_0x4e455a(0xdb)]=_0x19535d,_0x331af2[_0x4e455a(0xc4)]=_0x29286f,_0x331af2[_0x4e455a(0xda)]=_0x5384d1,_0x331af2;}const http=createHttp();export{http as n,createHttpAborter as r,createHttp as t};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @oiyo/framework v0.4.9
3
+ * Copyright (c) 2026 skiyee. All rights reserved.
4
+ * Commercial software. See LICENSE for terms.
5
+ * Official site: https://oiyo.js.org
6
+ */
7
+ function _0x113e(){const _0x983e9d=['addEventListener','onSuccess','data','download','274728vUbQvW','signal','PATCH','function','timeout','filter','test','onabort','onRequest','PUT','161yuyhAS','parseResponse','options','assign','statusCode','get','firstIpv4','3DpYGYD','message','onProgress','file','onHeadersReceived','arraybuffer','json','flatMap','stringify','header','upload','splice','ignoreResponseError','parse','text','GET','onResponse','files','keys','retryStatusCodes','HttpError','POST','onRequestError','2396801JlrgZd','headers','4Xhhkyp','throwIfAborted','complete','createHttp','listeners','forceCellularNetwork','enableHttpDNS','number','map','method','defineProperty','body','enumerable','<no\x20response>','createHttpAborter','name','AbortError','response','errMsg','tempFilePath','resolve','httpDNSServiceId','formData','aborted','15887ksHKCJ','enableCache','DELETE','_action','reason','616266NLdVpv','push','abort','1542672SLQkFB','indexOf','2018920FGledO','catch','emit','87704rMPBdW','responseType','includes','request','fileType','call','5xkCRVT','onFail'];_0x113e=function(){return _0x983e9d;};return _0x113e();}const _0x1889f2=_0x153b;(function(_0x44e069,_0x4cc62d){const _0x4f9c54=_0x153b,_0x52275d=_0x44e069();while(!![]){try{const _0x142dfa=parseInt(_0x4f9c54(0x1a4))/0x1*(-parseInt(_0x4f9c54(0x18c))/0x2)+-parseInt(_0x4f9c54(0x173))/0x3*(-parseInt(_0x4f9c54(0x162))/0x4)+parseInt(_0x4f9c54(0x15c))/0x5*(parseInt(_0x4f9c54(0x1a9))/0x6)+parseInt(_0x4f9c54(0x16c))/0x7*(parseInt(_0x4f9c54(0x156))/0x8)+parseInt(_0x4f9c54(0x1ac))/0x9+-parseInt(_0x4f9c54(0x153))/0xa+-parseInt(_0x4f9c54(0x18a))/0xb;if(_0x142dfa===_0x4cc62d)break;else _0x52275d['push'](_0x52275d['shift']());}catch(_0xf522c3){_0x52275d['push'](_0x52275d['shift']());}}}(_0x113e,0x23021));function createHttpAborter(){const _0x50be6a=new HttpAbortSignal();return{'signal':_0x50be6a,'abort':_0x5b6b1d=>_0x50be6a['_abort'](_0x5b6b1d)};}const ABORT_ERROR_NAME=_0x1889f2(0x19c);var AbortEmitter=class{[_0x1889f2(0x190)]=[];[_0x1889f2(0x15e)](_0x3fd989,_0x1ea8e0){const _0xf40307=_0x1889f2;if(_0x3fd989!==_0xf40307(0x1ab))return;this[_0xf40307(0x190)][_0xf40307(0x1aa)](_0x1ea8e0);}['removeEventListener'](_0x57cc1c,_0x30f1f7){const _0x2ad128=_0x1889f2;if(_0x57cc1c!=='abort')return;const _0x14efca=this['listeners'][_0x2ad128(0x1ad)](_0x30f1f7);if(_0x14efca!==-0x1)this['listeners'][_0x2ad128(0x17e)](_0x14efca,0x1);}['emit'](_0x25fff8){const _0x4c8964=_0x1889f2;for(const _0x52b2a0 of this[_0x4c8964(0x190)]['slice']())_0x52b2a0[_0x4c8964(0x15b)](this,_0x25fff8);}},HttpAbortSignal=class extends AbortEmitter{[_0x1889f2(0x1a3)]=![];[_0x1889f2(0x1a8)]=void 0x0;[_0x1889f2(0x169)]=null;['_abort'](_0x494b57){const _0x445237=_0x1889f2;if(this['aborted'])return;this[_0x445237(0x1a3)]=!![],this['reason']=_0x494b57===void 0x0?createAbortError():_0x494b57;const _0x3c8abb={};_0x3c8abb['type']=_0x445237(0x1ab);const _0x2bf0f6=_0x3c8abb;if(typeof this[_0x445237(0x169)]===_0x445237(0x165))this['onabort'](_0x2bf0f6);this[_0x445237(0x155)](_0x2bf0f6);}[_0x1889f2(0x18d)](){const _0xeff6c5=_0x1889f2;if(this[_0xeff6c5(0x1a3)])throw this['reason'];}};function createAbortError(_0x57dfd8='The\x20operation\x20was\x20aborted'){const _0x19d58b=new Error(_0x57dfd8);return _0x19d58b['name']=ABORT_ERROR_NAME,_0x19d58b;}function isAbortError(_0x3a40e0){return _0x3a40e0 instanceof Error&&_0x3a40e0['name']===ABORT_ERROR_NAME;}function onAbort(_0x417b63,_0x3ca7ad){const _0x1b42c6=_0x1889f2;if(!_0x417b63)return()=>{};if(_0x417b63[_0x1b42c6(0x1a3)])return _0x3ca7ad(),()=>{};return _0x417b63['addEventListener'](_0x1b42c6(0x1ab),_0x3ca7ad),()=>_0x417b63['removeEventListener']('abort',_0x3ca7ad);}const HOOK_NAMES=['onRequest',_0x1889f2(0x189),'onResponse','onResponseError'];function mergeOptions(..._0x4034c9){const _0x24cc83=_0x1889f2,_0x56abea={},_0x473c0d={};for(const _0x95aac6 of _0x4034c9){if(!_0x95aac6)continue;for(const _0x442457 of HOOK_NAMES)collectHook(_0x473c0d,_0x442457,_0x95aac6);const _0x355f3f=_0x56abea['headers'],_0x449028=_0x56abea['query'];Object[_0x24cc83(0x16f)](_0x56abea,_0x95aac6);const _0x20ed85={..._0x355f3f,..._0x95aac6[_0x24cc83(0x18b)]};_0x56abea['headers']=_0x20ed85;const _0x54a190={..._0x449028,..._0x95aac6['query']};_0x56abea['query']=_0x54a190;}for(const [_0x3e130e,_0x202aea]of Object['entries'](_0x473c0d))Object[_0x24cc83(0x16f)](_0x56abea,{[_0x3e130e]:async _0x14017f=>{for(const _0x1cb16b of _0x202aea)await _0x1cb16b(_0x14017f);}});return _0x56abea;}function collectHook(_0x59f1d3,_0x107605,_0x4bdf40){const _0x24f166=_0x4bdf40[_0x107605];if(typeof _0x24f166!=='function')return;_0x59f1d3[_0x107605]??=[],_0x59f1d3[_0x107605]['push'](_0x24f166);}function dispatch(_0x3bcdae,_0x11799a,_0x17b405,_0x478591){const _0x5e10e1=_0x1889f2;let _0x5706b7;if(_0x3bcdae===_0x5e10e1(0x17d))_0x5706b7=dispatchUpload(_0x11799a,_0x17b405,_0x478591);else{if(_0x3bcdae==='download')_0x5706b7=dispatchDownload(_0x11799a,_0x17b405,_0x478591);else _0x5706b7=dispatchRequest(_0x11799a,_0x17b405,_0x478591);}bindTask(_0x5706b7,_0x17b405);}function bindTask(_0xf31368,_0x53e971){const _0x3daa56=_0x1889f2;onAbort(_0x53e971['signal'],()=>_0xf31368['abort']());if(typeof _0x53e971['onHeadersReceived']===_0x3daa56(0x165))_0xf31368['onHeadersReceived'](_0x53e971[_0x3daa56(0x177)]);const _0x19a750=_0x53e971['onChunk'];if(typeof _0x19a750===_0x3daa56(0x165)&&'onChunkReceived'in _0xf31368)_0xf31368['onChunkReceived'](_0x19a750);const _0x4feb08=_0x53e971[_0x3daa56(0x175)];if(typeof _0x4feb08==='function'&&'onProgressUpdate'in _0xf31368)_0xf31368['onProgressUpdate'](_0x4feb08);}function dispatchRequest(_0x16fd73,_0x37e054,_0x5ccd73){const _0x3541a7=_0x1889f2,_0x41c35f={'url':_0x16fd73,'method':_0x37e054['method'],'header':_0x37e054[_0x3541a7(0x18b)],'data':_0x37e054['body']??{},'timeout':_0x37e054[_0x3541a7(0x166)],'dataType':_0x37e054['dataType']||_0x3541a7(0x179),'responseType':mappedResponseBodyType(_0x37e054[_0x3541a7(0x157)]),'sslVerify':_0x37e054['sslVerify'],'withCredentials':_0x37e054['withCredentials'],'firstIpv4':_0x37e054[_0x3541a7(0x172)],'enableHttp2':_0x37e054['enableHttp2'],'enableQuic':_0x37e054['enableQuic'],'enableCache':_0x37e054[_0x3541a7(0x1a5)],'enableHttpDNS':_0x37e054[_0x3541a7(0x192)],'httpDNSServiceId':_0x37e054[_0x3541a7(0x1a1)],'enableChunked':_0x37e054['enableChunked'],'forceCellularNetwork':_0x37e054[_0x3541a7(0x191)],'success':_0x5ccd73[_0x3541a7(0x15f)],'fail':_0x5ccd73[_0x3541a7(0x15d)],'complete':()=>{}};return uni['request'](_0x41c35f);}function dispatchUpload(_0x5290d4,_0x3ff79d,_0x3d0f0e){const _0x4d75c9=_0x1889f2,_0x276add={};_0x276add['url']=_0x5290d4,_0x276add[_0x4d75c9(0x15a)]=_0x3ff79d['fileType'],_0x276add['file']=_0x3ff79d[_0x4d75c9(0x176)],_0x276add['filePath']=_0x3ff79d['filePath'],_0x276add['name']=_0x3ff79d['name']??'file',_0x276add[_0x4d75c9(0x184)]=_0x3ff79d[_0x4d75c9(0x184)],_0x276add[_0x4d75c9(0x17c)]=_0x3ff79d['headers'],_0x276add[_0x4d75c9(0x1a2)]=_0x3ff79d[_0x4d75c9(0x197)]??{},_0x276add['timeout']=_0x3ff79d['timeout'],_0x276add['success']=_0x3d0f0e['onSuccess'],_0x276add['fail']=_0x3d0f0e['onFail'],_0x276add[_0x4d75c9(0x18e)]=()=>{};const _0x2e2d34=_0x276add;return uni['uploadFile'](_0x2e2d34);}function dispatchDownload(_0x944d84,_0x3ff9ea,_0x180b97){const _0x59bf66={'url':_0x944d84,'header':_0x3ff9ea['headers'],'timeout':_0x3ff9ea['timeout'],'success':_0x21df58=>{const _0x293b9c=_0x153b,_0x2d8eed={..._0x21df58};_0x2d8eed[_0x293b9c(0x160)]={},_0x2d8eed[_0x293b9c(0x160)][_0x293b9c(0x19f)]=_0x21df58[_0x293b9c(0x19f)],_0x180b97[_0x293b9c(0x15f)](_0x2d8eed);},'fail':_0x180b97['onFail'],'complete':()=>{}};return uni['downloadFile'](_0x59bf66);}function mappedResponseBodyType(_0x3a8187){const _0x1229e0=_0x1889f2;if(!_0x3a8187||_0x3a8187===_0x1229e0(0x179))return _0x1229e0(0x181);if(_0x3a8187==='arrayBuffer')return _0x1229e0(0x178);return _0x1229e0(0x181);}var HttpError=class extends Error{constructor(_0x262d8b){const _0x2990a6=_0x1889f2;super(_0x262d8b),this[_0x2990a6(0x19b)]=_0x2990a6(0x187);}};function createResponseError(_0x1597c7,_0x2ce43c,_0x242c26){const _0x47fd06=_0x1889f2,_0x4ee9b4=_0x1597c7,_0x4e9b5e='['+(_0x2ce43c?.[_0x47fd06(0x195)]||'GET')+']\x20'+_0x4ee9b4,_0x3d000c=_0x242c26?_0x242c26[_0x47fd06(0x170)]+'\x20'+(_0x242c26[_0x47fd06(0x19e)]||''):_0x47fd06(0x199),_0x5337e4=_0x242c26?JSON[_0x47fd06(0x17b)](_0x242c26[_0x47fd06(0x160)]):'<no\x20response\x20body>',_0x763c2e=new HttpError(_0x4e9b5e+':\x20'+_0x3d000c+(_0x242c26['data']?'\x20'+_0x5337e4:''));for(const _0x5b43d0 of['request',_0x47fd06(0x16e),_0x47fd06(0x19d),_0x47fd06(0x160)])Object[_0x47fd06(0x196)](_0x763c2e,_0x5b43d0,{'get'(){const _0x388599=_0x47fd06,_0x4708c={};return _0x4708c[_0x388599(0x159)]=_0x1597c7,_0x4708c['options']=_0x2ce43c,_0x4708c[_0x388599(0x19d)]=_0x242c26,_0x4708c[_0x388599(0x160)]=_0x242c26[_0x388599(0x160)],_0x4708c[_0x5b43d0];}});return _0x763c2e;}function normalizeError(_0x56e7d3){const _0x212088=_0x1889f2;if(_0x56e7d3 instanceof Error)return _0x56e7d3;return Object['assign'](new Error(_0x56e7d3?.[_0x212088(0x19e)]||_0x56e7d3?.[_0x212088(0x174)]||'HTTP\x20request\x20failed'),{'cause':_0x56e7d3});}async function callRequestHooks(_0x502e44,_0x4b00cb){const _0x1b2eae=_0x1889f2;await _0x4b00cb[_0x1b2eae(0x16a)]?.({'options':_0x4b00cb,'resource':_0x502e44});}async function callRequestErrorHooks(_0x177434,_0x3bee86,_0x583787){await _0x3bee86['onRequestError']?.({'options':_0x3bee86,'resource':_0x177434,'error':_0x583787});}async function callResponseHooks(_0x31dd26,_0x47a2f6,_0x175459){const _0x32078a=_0x1889f2;await _0x47a2f6[_0x32078a(0x183)]?.({'options':_0x47a2f6,'resource':_0x31dd26,'response':_0x175459});}async function callResponseErrorHooks(_0x5d7492,_0x3c7b6e,_0x827b34){await _0x3c7b6e['onResponseError']?.({'options':_0x3c7b6e,'resource':_0x5d7492,'response':_0x827b34});}async function refineResponse(_0xc7049a,_0x40fbfb){const _0x301806=_0x1889f2;if(_0x40fbfb[_0x301806(0x157)]==='json'||!_0x40fbfb['responseType'])return{..._0xc7049a,'data':await parseJSONResponse(_0xc7049a['data'],_0x40fbfb)};return _0xc7049a;}function parseJSONResponse(_0x220570,_0x46a06a){const _0x110dcc=_0x1889f2;if(typeof _0x220570!=='string')return _0x220570;if(_0x46a06a['parseResponse'])return _0x46a06a[_0x110dcc(0x16d)](_0x220570);return _0x220570?JSON[_0x110dcc(0x180)](_0x220570):null;}function isResponseError(_0x1faf6d){const _0x1d0a5b=_0x1889f2,_0x2b37ed='statusCode'in _0x1faf6d?_0x1faf6d[_0x1d0a5b(0x170)]:void 0x0;return typeof _0x2b37ed===_0x1d0a5b(0x193)&&(_0x2b37ed<0xc8||_0x2b37ed>=0x12c);}const DEFAULT_RETRY_STATUS_CODES=[0x198,0x199,0x1a9,0x1ad,0x1f4,0x1f6,0x1f7,0x1f8],PAYLOAD_METHODS=new Set(['POST',_0x1889f2(0x16b),_0x1889f2(0x1a6),_0x1889f2(0x164)]);async function withRetry(_0x2a3050,_0x5b6033){const _0xea3c22=resolveRetryCount(_0x2a3050);for(let _0x2bbd4a=0x0;;_0x2bbd4a++)try{return await _0x5b6033();}catch(_0x406bd9){if(_0x2bbd4a>=_0xea3c22||!shouldRetry(_0x406bd9,_0x2a3050))throw _0x406bd9;await sleep(_0x2a3050['retryDelay']??0x0,_0x2a3050['signal']);}}function resolveRetryCount(_0x159a67){const _0x44a66b=_0x1889f2,{retry:_0x2af424}=_0x159a67;if(_0x2af424===![])return 0x0;if(typeof _0x2af424===_0x44a66b(0x193))return _0x2af424>0x0?_0x2af424:0x0;return isPayloadMethod(_0x159a67['method'])?0x0:0x1;}function shouldRetry(_0x594825,_0x306fae){const _0x4996b0=_0x1889f2;if(_0x306fae['signal']?.['aborted']||isAbortError(_0x594825))return![];const _0x500a7f=_0x594825?.[_0x4996b0(0x19d)]?.['statusCode'];if(typeof _0x500a7f!==_0x4996b0(0x193))return!![];return(_0x306fae[_0x4996b0(0x186)]??DEFAULT_RETRY_STATUS_CODES)[_0x4996b0(0x158)](_0x500a7f);}function isPayloadMethod(_0x145496){return!!_0x145496&&PAYLOAD_METHODS['has'](_0x145496['toUpperCase']());}function sleep(_0x444204,_0x502f94){return new Promise((_0xda734a,_0x24a5e1)=>{const _0x3c806d=_0x153b;if(_0x502f94?.[_0x3c806d(0x1a3)]){_0x24a5e1(_0x502f94['reason']);return;}if(!(_0x444204>0x0)){_0xda734a();return;}let _0x40595f=()=>{};const _0x3cad0b=setTimeout(()=>{_0x40595f(),_0xda734a();},_0x444204);_0x40595f=onAbort(_0x502f94,()=>{clearTimeout(_0x3cad0b),_0x24a5e1(_0x502f94['reason']);});});}function _0x153b(_0x2722dd,_0x58bcc6){_0x2722dd=_0x2722dd-0x153;const _0x113e33=_0x113e();let _0x153bda=_0x113e33[_0x2722dd];return _0x153bda;}function buildURL(_0x2b6a60,_0x43e841){const _0x10fbcd=_0x1889f2,_0x1982dc=joinURL(_0x43e841['baseURL'],_0x2b6a60),_0x13fb28=_0x43e841['query']??{},_0x1393d6=Object[_0x10fbcd(0x185)](_0x13fb28)[_0x10fbcd(0x167)](_0x1568b8=>_0x13fb28[_0x1568b8]!==void 0x0)[_0x10fbcd(0x17a)](_0x430977=>{const _0x1da221=_0x10fbcd,_0x54d388=_0x13fb28[_0x430977];return(Array['isArray'](_0x54d388)?_0x54d388:[_0x54d388])[_0x1da221(0x194)](_0x3458f7=>encodeURIComponent(_0x430977)+'='+encodeURIComponent(String(_0x3458f7)));})['join']('&');if(!_0x1393d6)return _0x1982dc;return''+_0x1982dc+(_0x1982dc[_0x10fbcd(0x158)]('?')?'&':'?')+_0x1393d6;}function joinURL(_0x468db4,_0x340229){if(!_0x468db4||isAbsoluteURL(_0x340229))return _0x340229;return _0x468db4['replace'](/\/+$/,'')+'/'+_0x340229['replace'](/^\/+/,'');}function isAbsoluteURL(_0x596ebb){const _0x3e6e63=_0x1889f2;return/^[a-z][a-z\d+\-.]*:\/\//i[_0x3e6e63(0x168)](_0x596ebb)||_0x596ebb['startsWith']('//');}function dispatchHttp(_0x537e28,_0x3554f0,_0x5e9658){const _0xf37c1a=buildURL(_0x3554f0,_0x5e9658);return withRetry(_0x5e9658,()=>attemptRequest(_0x537e28,_0x3554f0,_0xf37c1a,_0x5e9658));}function attemptRequest(_0x4c39aa,_0x3fd260,_0x465ba0,_0x4cfb4b){const _0x42fcdb=!!_0x4cfb4b['raw'];return new Promise((_0x3b9452,_0x97a517)=>{const _0x94510=_0x153b;let _0x169258=![];const _0x3cf977=_0x242510=>{if(_0x169258)return;_0x169258=!![],_0x242510();},_0x46ff8a=onAbort(_0x4cfb4b[_0x94510(0x163)],()=>{const _0x58be3a=_0x94510;_0x3cf977(()=>_0x97a517(_0x4cfb4b[_0x58be3a(0x163)][_0x58be3a(0x1a8)]));}),_0x57c3fb=_0x5d5752=>{_0x46ff8a(),_0x3cf977(_0x5d5752);};callRequestHooks(_0x3fd260,_0x4cfb4b)['then'](()=>{if(_0x169258)return;dispatch(_0x4c39aa,_0x465ba0,_0x4cfb4b,{'onSuccess':_0x2bc049=>{const _0x4fb0b1=_0x153b;Promise['resolve']()['then'](()=>refineResponse(_0x2bc049,_0x4cfb4b))['then'](async _0x13b704=>{const _0x45fbdd=_0x153b;if(isResponseError(_0x2bc049)){await callResponseErrorHooks(_0x3fd260,_0x4cfb4b,_0x13b704);if(!_0x4cfb4b[_0x45fbdd(0x17f)])throw createResponseError(_0x3fd260,_0x4cfb4b,_0x13b704);}else await callResponseHooks(_0x3fd260,_0x4cfb4b,_0x13b704);_0x57c3fb(()=>_0x3b9452(_0x42fcdb?_0x13b704:_0x13b704['data']));})[_0x4fb0b1(0x154)](_0x5465e1=>_0x57c3fb(()=>_0x97a517(_0x5465e1)));},'onFail':_0x517d32=>{const _0x5c2d0c=_0x153b;Promise[_0x5c2d0c(0x1a0)]()['then'](async()=>{const _0x541004=normalizeError(_0x517d32);if(!isAbortError(_0x541004))await callRequestErrorHooks(_0x3fd260,_0x4cfb4b,_0x541004);throw _0x541004;})[_0x5c2d0c(0x154)](_0x37d87c=>_0x57c3fb(()=>_0x97a517(_0x37d87c)));}});})[_0x94510(0x154)](async _0x28f242=>{const _0x2a8c75=normalizeError(_0x28f242);await callRequestErrorHooks(_0x3fd260,_0x4cfb4b,_0x2a8c75),_0x57c3fb(()=>_0x97a517(_0x2a8c75));});});}const _0x255b02={};_0x255b02['method']='GET',_0x255b02['responseType']='json';const defaultConfig=_0x255b02;function createHttp(_0x342319={}){const _0x8f6102=_0x1889f2,_0x58bc69=(_0x39b539,_0x3b3f4a)=>{const _0x37d091=_0x153b,_0x47dcfd={};return _0x47dcfd[_0x37d091(0x1a7)]=_0x37d091(0x159),dispatchHttp(_0x37d091(0x159),_0x39b539,mergeOptions(defaultConfig,_0x342319,_0x3b3f4a,_0x47dcfd));},_0x288b1d=(_0x2fee9f,_0x67376a)=>{const _0x374667=_0x153b,_0x36fde3={};return _0x36fde3[_0x374667(0x195)]=_0x374667(0x188),_0x36fde3[_0x374667(0x1a7)]=_0x374667(0x17d),dispatchHttp(_0x374667(0x17d),_0x2fee9f,mergeOptions(defaultConfig,_0x342319,_0x67376a,_0x36fde3));},_0x23d31c=(_0x2ef1af,_0x1a0d5a)=>{const _0x4ce23d=_0x153b,_0x51b22c={};return _0x51b22c['method']=_0x4ce23d(0x182),_0x51b22c['_action']='download',dispatchHttp(_0x4ce23d(0x161),_0x2ef1af,mergeOptions(defaultConfig,_0x342319,_0x1a0d5a,_0x51b22c));},_0x5c21f6=_0x5952b1=>createHttp(mergeOptions(_0x342319,_0x5952b1)),_0x2950c7={};return _0x2950c7[_0x8f6102(0x159)]=_0x58bc69,_0x2950c7['upload']=_0x288b1d,_0x2950c7['download']=_0x23d31c,_0x2950c7['create']=_0x5c21f6,_0x2950c7;}const http=createHttp(),_0x26df23={};_0x26df23[_0x1889f2(0x198)]=!![],_0x26df23[_0x1889f2(0x171)]=function(){return createHttp;},Object['defineProperty'](exports,_0x1889f2(0x18f),_0x26df23);const _0x51a6dd={};_0x51a6dd['enumerable']=!![],_0x51a6dd['get']=function(){return createHttpAborter;},Object[_0x1889f2(0x196)](exports,_0x1889f2(0x19a),_0x51a6dd);const _0x5ee7b9={};_0x5ee7b9[_0x1889f2(0x198)]=!![],_0x5ee7b9[_0x1889f2(0x171)]=function(){return http;},Object[_0x1889f2(0x196)](exports,'http',_0x5ee7b9);
package/dist/oiyo.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
6
6
  */
7
7
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
8
- const require_oiyo = require("./oiyo-Dz2nYhKn.cjs");
8
+ const require_oiyo = require("./oiyo-CUAtDW_Y.cjs");
9
9
  exports.createHttp = require_oiyo.createHttp;
10
10
  exports.createHttpAborter = require_oiyo.createHttpAborter;
11
11
  exports.http = require_oiyo.http;
package/dist/oiyo.d.cts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
6
6
  */
7
- import { a as HttpDownloadResponse, c as HttpCommonOptions, d as HttpRequestOptions, f as HttpUploadOptions, i as HttpError, l as HttpDownloadOptions, m as createHttpAborter, n as http, o as HttpRequestResponse, p as ResponseBodyType, r as HttpConfig, s as HttpUploadResponse, t as createHttp, u as HttpOptions } from "./index-DaPBMr2_.cjs";
8
- export { type HttpCommonOptions, type HttpConfig, type HttpDownloadOptions, type HttpDownloadResponse, type HttpError, type HttpOptions, type HttpRequestOptions, type HttpRequestResponse, type HttpUploadOptions, type HttpUploadResponse, type ResponseBodyType, createHttp, createHttpAborter, http };
7
+ import { a as HttpDownloadResponse, c as HttpUploadResponse, d as HttpOptions, f as HttpRequestOptions, h as createHttpAborter, i as HttpError, l as HttpCommonOptions, m as ResponseBodyType, n as http, o as HttpRequestResponse, p as HttpUploadOptions, r as HttpConfig, s as HttpResponse, t as createHttp, u as HttpDownloadOptions } from "./index-DpCCifZz.cjs";
8
+ export { type HttpCommonOptions, type HttpConfig, type HttpDownloadOptions, type HttpDownloadResponse, type HttpError, type HttpOptions, type HttpRequestOptions, type HttpRequestResponse, type HttpResponse, type HttpUploadOptions, type HttpUploadResponse, type ResponseBodyType, createHttp, createHttpAborter, http };
package/dist/oiyo.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
6
6
  */
7
- import { a as HttpDownloadResponse, c as HttpCommonOptions, d as HttpRequestOptions, f as HttpUploadOptions, i as HttpError, l as HttpDownloadOptions, m as createHttpAborter, n as http, o as HttpRequestResponse, p as ResponseBodyType, r as HttpConfig, s as HttpUploadResponse, t as createHttp, u as HttpOptions } from "./index-DaPBMr2_.mjs";
8
- export { type HttpCommonOptions, type HttpConfig, type HttpDownloadOptions, type HttpDownloadResponse, type HttpError, type HttpOptions, type HttpRequestOptions, type HttpRequestResponse, type HttpUploadOptions, type HttpUploadResponse, type ResponseBodyType, createHttp, createHttpAborter, http };
7
+ import { a as HttpDownloadResponse, c as HttpUploadResponse, d as HttpOptions, f as HttpRequestOptions, h as createHttpAborter, i as HttpError, l as HttpCommonOptions, m as ResponseBodyType, n as http, o as HttpRequestResponse, p as HttpUploadOptions, r as HttpConfig, s as HttpResponse, t as createHttp, u as HttpDownloadOptions } from "./index-DpCCifZz.mjs";
8
+ export { type HttpCommonOptions, type HttpConfig, type HttpDownloadOptions, type HttpDownloadResponse, type HttpError, type HttpOptions, type HttpRequestOptions, type HttpRequestResponse, type HttpResponse, type HttpUploadOptions, type HttpUploadResponse, type ResponseBodyType, createHttp, createHttpAborter, http };
package/dist/oiyo.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
6
6
  */
7
- import { n as http, r as createHttpAborter, t as createHttp } from "./oiyo-Cfyt1TAC.mjs";
7
+ import { n as http, r as createHttpAborter, t as createHttp } from "./oiyo-BXNGL_oa.mjs";
8
8
  export { createHttp, createHttpAborter, http };
package/dist/uni.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
package/dist/uni.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
package/dist/uni.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
package/dist/uni.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
package/dist/vue.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
package/dist/vue.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
package/dist/vue.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
package/dist/vue.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @oiyo/framework v0.4.7
2
+ * @oiyo/framework v0.4.9
3
3
  * Copyright (c) 2026 skiyee. All rights reserved.
4
4
  * Commercial software. See LICENSE for terms.
5
5
  * Official site: https://oiyo.js.org
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oiyo/framework",
3
3
  "type": "module",
4
- "version": "0.4.7",
4
+ "version": "0.4.9",
5
5
  "author": {
6
6
  "name": "skiyee",
7
7
  "email": "319619193@qq.com",
@@ -1,7 +0,0 @@
1
- /**
2
- * @oiyo/framework v0.4.7
3
- * Copyright (c) 2026 skiyee. All rights reserved.
4
- * Commercial software. See LICENSE for terms.
5
- * Official site: https://oiyo.js.org
6
- */
7
- const _0x9a34dd=_0x480c;(function(_0x2ff281,_0xf5c4c2){const _0x262cab=_0x480c,_0x433a86=_0x2ff281();while(!![]){try{const _0x381ae9=parseInt(_0x262cab(0xc7))/0x1+parseInt(_0x262cab(0xf7))/0x2*(-parseInt(_0x262cab(0xd1))/0x3)+-parseInt(_0x262cab(0xe8))/0x4*(-parseInt(_0x262cab(0xec))/0x5)+-parseInt(_0x262cab(0xef))/0x6+parseInt(_0x262cab(0xf8))/0x7*(-parseInt(_0x262cab(0xfd))/0x8)+parseInt(_0x262cab(0xda))/0x9*(-parseInt(_0x262cab(0xfc))/0xa)+parseInt(_0x262cab(0x10e))/0xb*(parseInt(_0x262cab(0xff))/0xc);if(_0x381ae9===_0xf5c4c2)break;else _0x433a86['push'](_0x433a86['shift']());}catch(_0x53d0a7){_0x433a86['push'](_0x433a86['shift']());}}}(_0x1013,0x6a914));function createHttpAborter(){const _0x4739b5=new HttpAbortSignal();return{'signal':_0x4739b5,'abort':_0x13fcd9=>_0x4739b5['_abort'](_0x13fcd9)};}const ABORT_ERROR_NAME='AbortError';var AbortEmitter=class{[_0x9a34dd(0x10a)]=[];[_0x9a34dd(0xc4)](_0x1616ef,_0x58ce9a){const _0x107a5e=_0x9a34dd;if(_0x1616ef!=='abort')return;this[_0x107a5e(0x10a)]['push'](_0x58ce9a);}[_0x9a34dd(0x10b)](_0x4382c3,_0x2bfb16){const _0x3bef99=_0x9a34dd;if(_0x4382c3!=='abort')return;const _0x3d77b8=this['listeners'][_0x3bef99(0xd9)](_0x2bfb16);if(_0x3d77b8!==-0x1)this[_0x3bef99(0x10a)][_0x3bef99(0xc5)](_0x3d77b8,0x1);}['emit'](_0x3e0dc5){const _0x55d1a9=_0x9a34dd;for(const _0x1ca8e0 of this['listeners'][_0x55d1a9(0xf1)]())_0x1ca8e0['call'](this,_0x3e0dc5);}},HttpAbortSignal=class extends AbortEmitter{[_0x9a34dd(0xc6)]=![];[_0x9a34dd(0xd4)]=void 0x0;[_0x9a34dd(0xf5)]=null;['_abort'](_0x3a9b2e){const _0x24ac9e=_0x9a34dd;if(this['aborted'])return;this['aborted']=!![],this['reason']=_0x3a9b2e===void 0x0?createAbortError():_0x3a9b2e;const _0x537951={};_0x537951['type']=_0x24ac9e(0xe6);const _0x37b1a0=_0x537951;if(typeof this[_0x24ac9e(0xf5)]==='function')this['onabort'](_0x37b1a0);this['emit'](_0x37b1a0);}[_0x9a34dd(0xfb)](){const _0x5880be=_0x9a34dd;if(this['aborted'])throw this[_0x5880be(0xd4)];}};function createAbortError(_0x564a9d=_0x9a34dd(0x100)){const _0x326076=new Error(_0x564a9d);return _0x326076['name']=ABORT_ERROR_NAME,_0x326076;}function isAbortError(_0x25f112){const _0x357226=_0x9a34dd;return _0x25f112 instanceof Error&&_0x25f112[_0x357226(0x102)]===ABORT_ERROR_NAME;}function onAbort(_0x433621,_0x5485f2){const _0x14698f=_0x9a34dd;if(!_0x433621)return()=>{};if(_0x433621['aborted'])return _0x5485f2(),()=>{};return _0x433621[_0x14698f(0xc4)](_0x14698f(0xe6),_0x5485f2),()=>_0x433621['removeEventListener']('abort',_0x5485f2);}const HOOK_NAMES=[_0x9a34dd(0x107),_0x9a34dd(0xe7),'onResponse','onResponseError'];function _0x480c(_0x46d8ff,_0x42f565){_0x46d8ff=_0x46d8ff-0xc4;const _0x1013a0=_0x1013();let _0x480cf8=_0x1013a0[_0x46d8ff];return _0x480cf8;}function mergeOptions(..._0x261b08){const _0x4f7c2c=_0x9a34dd,_0x3d5df2={},_0x488392={};for(const _0x5d2255 of _0x261b08){if(!_0x5d2255)continue;for(const _0x1a6ed9 of HOOK_NAMES)collectHook(_0x488392,_0x1a6ed9,_0x5d2255);const _0x16f771=_0x3d5df2[_0x4f7c2c(0xe3)],_0x4b23a5=_0x3d5df2[_0x4f7c2c(0xea)];Object[_0x4f7c2c(0xe2)](_0x3d5df2,_0x5d2255);const _0x1425c7={..._0x16f771,..._0x5d2255['headers']};_0x3d5df2[_0x4f7c2c(0xe3)]=_0x1425c7;const _0x3e6420={..._0x4b23a5,..._0x5d2255[_0x4f7c2c(0xea)]};_0x3d5df2['query']=_0x3e6420;}for(const [_0x51a750,_0x5c93bb]of Object['entries'](_0x488392))Object[_0x4f7c2c(0xe2)](_0x3d5df2,{[_0x51a750]:async _0x2d467b=>{for(const _0x1b52fd of _0x5c93bb)await _0x1b52fd(_0x2d467b);}});return _0x3d5df2;}function collectHook(_0x4ae99d,_0x43c441,_0x5c38a6){const _0x3d43ca=_0x9a34dd,_0x1a25e0=_0x5c38a6[_0x43c441];if(typeof _0x1a25e0!==_0x3d43ca(0x111))return;_0x4ae99d[_0x43c441]??=[],_0x4ae99d[_0x43c441][_0x3d43ca(0xdc)](_0x1a25e0);}function dispatch(_0x3246d7,_0x14d138,_0x5aa343,_0x2aadfb){let _0x45b066;if(_0x3246d7==='upload')_0x45b066=dispatchUpload(_0x14d138,_0x5aa343,_0x2aadfb);else{if(_0x3246d7==='download')_0x45b066=dispatchDownload(_0x14d138,_0x5aa343,_0x2aadfb);else _0x45b066=dispatchRequest(_0x14d138,_0x5aa343,_0x2aadfb);}bindTask(_0x45b066,_0x5aa343);}function bindTask(_0x53f7bc,_0x2695ce){const _0x2cd083=_0x9a34dd;onAbort(_0x2695ce['signal'],()=>_0x53f7bc[_0x2cd083(0xe6)]());if(typeof _0x2695ce['onHeadersReceived']===_0x2cd083(0x111))_0x53f7bc['onHeadersReceived'](_0x2695ce[_0x2cd083(0x105)]);const _0x2ebd34=_0x2695ce[_0x2cd083(0xcc)];if(typeof _0x2ebd34==='function'&&'onProgressUpdate'in _0x53f7bc)_0x53f7bc['onProgressUpdate'](_0x2ebd34);}function dispatchRequest(_0x8185c0,_0x2636db,_0x13d596){const _0x1c16fa=_0x9a34dd,_0x3a3cc6={'url':_0x8185c0,'method':_0x2636db['method'],'header':_0x2636db['headers'],'data':_0x2636db[_0x1c16fa(0xe0)]??{},'timeout':_0x2636db['timeout'],'dataType':_0x2636db[_0x1c16fa(0xd3)]||'json','responseType':mappedResponseBodyType(_0x2636db[_0x1c16fa(0xdd)]),'sslVerify':_0x2636db[_0x1c16fa(0xf3)],'withCredentials':_0x2636db['withCredentials'],'firstIpv4':_0x2636db['firstIpv4'],'enableHttp2':_0x2636db[_0x1c16fa(0xce)],'enableQuic':_0x2636db['enableQuic'],'enableCache':_0x2636db['enableCache'],'enableHttpDNS':_0x2636db['enableHttpDNS'],'httpDNSServiceId':_0x2636db['httpDNSServiceId'],'enableChunked':_0x2636db['enableChunked'],'forceCellularNetwork':_0x2636db[_0x1c16fa(0x10c)],'success':_0x13d596[_0x1c16fa(0xe4)],'fail':_0x13d596['onFail'],'complete':()=>{}};return uni[_0x1c16fa(0xf9)](_0x3a3cc6);}function dispatchUpload(_0x4861cd,_0x572df0,_0x5d491d){const _0x22d96a=_0x9a34dd,_0x58267c={};_0x58267c[_0x22d96a(0xd6)]=_0x4861cd,_0x58267c['fileType']=_0x572df0['fileType'],_0x58267c['file']=_0x572df0[_0x22d96a(0xed)],_0x58267c[_0x22d96a(0xdf)]=_0x572df0[_0x22d96a(0xdf)],_0x58267c[_0x22d96a(0x102)]=_0x572df0[_0x22d96a(0x102)]??_0x22d96a(0xed),_0x58267c['files']=_0x572df0['files'],_0x58267c[_0x22d96a(0x10d)]=_0x572df0['headers'],_0x58267c['formData']=_0x572df0[_0x22d96a(0xe0)]??{},_0x58267c[_0x22d96a(0x110)]=_0x572df0[_0x22d96a(0x110)],_0x58267c['success']=_0x5d491d[_0x22d96a(0xe4)],_0x58267c['fail']=_0x5d491d['onFail'],_0x58267c['complete']=()=>{};const _0x5174e8=_0x58267c;return uni['uploadFile'](_0x5174e8);}function dispatchDownload(_0x5d9c77,_0x37c7a6,_0x46313b){const _0x446854=_0x9a34dd,_0x4159b2={'url':_0x5d9c77,'header':_0x37c7a6[_0x446854(0xe3)],'timeout':_0x37c7a6[_0x446854(0x110)],'success':_0x53fe75=>{const _0x5ba138=_0x446854,_0x3e782c={..._0x53fe75};_0x3e782c['data']={},_0x3e782c['data'][_0x5ba138(0x109)]=_0x53fe75['tempFilePath'],_0x46313b[_0x5ba138(0xe4)](_0x3e782c);},'fail':_0x46313b['onFail'],'complete':()=>{}};return uni['downloadFile'](_0x4159b2);}function mappedResponseBodyType(_0x441935){const _0x33ceef=_0x9a34dd;if(!_0x441935||_0x441935==='json')return'text';if(_0x441935==='arrayBuffer')return'arraybuffer';return _0x33ceef(0xfa);}var HttpError=class extends Error{constructor(_0x342cd7){super(_0x342cd7),this['name']='HttpError';}};function createResponseError(_0x38ec63,_0x2cf82d,_0x324d04){const _0x4a7588=_0x9a34dd,_0x508fdf=_0x38ec63,_0xe2de30='['+(_0x2cf82d?.[_0x4a7588(0x108)]||'GET')+']\x20'+_0x508fdf,_0x404de2=_0x324d04?_0x324d04[_0x4a7588(0xd5)]+'\x20'+(_0x324d04['errMsg']||''):'<no\x20response>',_0x193bfb=_0x324d04?JSON['stringify'](_0x324d04['data']):'<no\x20response\x20body>',_0x6e95bf=new HttpError(_0xe2de30+':\x20'+_0x404de2+(_0x324d04[_0x4a7588(0xde)]?'\x20'+_0x193bfb:''));for(const _0xc1d880 of[_0x4a7588(0xf9),_0x4a7588(0x112),_0x4a7588(0x10f),'data'])Object[_0x4a7588(0xd0)](_0x6e95bf,_0xc1d880,{'get'(){const _0x565b7e=_0x4a7588,_0x5750df={};return _0x5750df[_0x565b7e(0xf9)]=_0x38ec63,_0x5750df['options']=_0x2cf82d,_0x5750df[_0x565b7e(0x10f)]=_0x324d04,_0x5750df[_0x565b7e(0xde)]=_0x324d04['data'],_0x5750df[_0xc1d880];}});return _0x6e95bf;}function normalizeError(_0x2b116e){const _0x5944f3=_0x9a34dd;if(_0x2b116e instanceof Error)return _0x2b116e;return Object['assign'](new Error(_0x2b116e?.['errMsg']||_0x2b116e?.[_0x5944f3(0xca)]||_0x5944f3(0xee)),{'cause':_0x2b116e});}async function callRequestHooks(_0x35b7ed,_0x4f6011){await _0x4f6011['onRequest']?.({'options':_0x4f6011,'resource':_0x35b7ed});}async function callRequestErrorHooks(_0x235e13,_0x9a4e53,_0xb39135){await _0x9a4e53['onRequestError']?.({'options':_0x9a4e53,'resource':_0x235e13,'error':_0xb39135});}async function callResponseHooks(_0x35a05c,_0x3d81b6,_0x3dfed3){const _0x395d09=_0x9a34dd;await _0x3d81b6[_0x395d09(0xe1)]?.({'options':_0x3d81b6,'resource':_0x35a05c,'response':_0x3dfed3});}async function callResponseErrorHooks(_0x5ca8a0,_0x286fef,_0x5e771a){await _0x286fef['onResponseError']?.({'options':_0x286fef,'resource':_0x5ca8a0,'response':_0x5e771a});}async function refineResponse(_0x511ed3,_0x4c9f02){const _0x462b9a=_0x9a34dd;if(_0x4c9f02[_0x462b9a(0xdd)]===_0x462b9a(0xf6)||!_0x4c9f02[_0x462b9a(0xdd)])return{..._0x511ed3,'data':await parseJSONResponse(_0x511ed3['data'],_0x4c9f02)};return _0x511ed3;}function parseJSONResponse(_0x2b5bc0,_0x219e72){const _0x486cd7=_0x9a34dd;if(typeof _0x2b5bc0!==_0x486cd7(0xc8))return _0x2b5bc0;if(_0x219e72[_0x486cd7(0xf2)])return _0x219e72['parseResponse'](_0x2b5bc0);return _0x2b5bc0?JSON['parse'](_0x2b5bc0):null;}function isResponseError(_0x2b0c41){const _0x13e2f5=_0x9a34dd,_0x59e32b='statusCode'in _0x2b0c41?_0x2b0c41[_0x13e2f5(0xd5)]:void 0x0;return typeof _0x59e32b==='number'&&(_0x59e32b<0xc8||_0x59e32b>=0x12c);}const DEFAULT_RETRY_STATUS_CODES=[0x198,0x199,0x1a9,0x1ad,0x1f4,0x1f6,0x1f7,0x1f8],PAYLOAD_METHODS=new Set([_0x9a34dd(0xd2),_0x9a34dd(0xc9),_0x9a34dd(0xd8),_0x9a34dd(0xf4)]);async function withRetry(_0x2e14f2,_0x479e7d){const _0x3ffbc2=resolveRetryCount(_0x2e14f2);for(let _0x76ca5d=0x0;;_0x76ca5d++)try{return await _0x479e7d();}catch(_0x4a2f2b){if(_0x76ca5d>=_0x3ffbc2||!shouldRetry(_0x4a2f2b,_0x2e14f2))throw _0x4a2f2b;await sleep(_0x2e14f2['retryDelay']??0x0,_0x2e14f2['signal']);}}function resolveRetryCount(_0x43f2e4){const _0x3cd3d4=_0x9a34dd,{retry:_0x30c053}=_0x43f2e4;if(_0x30c053===![])return 0x0;if(typeof _0x30c053==='number')return _0x30c053>0x0?_0x30c053:0x0;return isPayloadMethod(_0x43f2e4[_0x3cd3d4(0x108)])?0x0:0x1;}function shouldRetry(_0x315a26,_0xcc77bb){const _0x35f353=_0x9a34dd;if(_0xcc77bb[_0x35f353(0xdb)]?.['aborted']||isAbortError(_0x315a26))return![];const _0x509160=_0x315a26?.['response']?.[_0x35f353(0xd5)];if(typeof _0x509160!==_0x35f353(0x101))return!![];return(_0xcc77bb['retryStatusCodes']??DEFAULT_RETRY_STATUS_CODES)['includes'](_0x509160);}function isPayloadMethod(_0x129166){return!!_0x129166&&PAYLOAD_METHODS['has'](_0x129166['toUpperCase']());}function sleep(_0x3edcbf,_0x147c94){return new Promise((_0x4d42e9,_0x1f0320)=>{if(_0x147c94?.['aborted']){_0x1f0320(_0x147c94['reason']);return;}if(!(_0x3edcbf>0x0)){_0x4d42e9();return;}let _0x41c8a9=()=>{};const _0x301cc2=setTimeout(()=>{_0x41c8a9(),_0x4d42e9();},_0x3edcbf);_0x41c8a9=onAbort(_0x147c94,()=>{const _0x19dca5=_0x480c;clearTimeout(_0x301cc2),_0x1f0320(_0x147c94[_0x19dca5(0xd4)]);});});}function buildURL(_0x70de90,_0xeb3555){const _0x2f8a13=_0x9a34dd,_0x47ee2e=joinURL(_0xeb3555['baseURL'],_0x70de90),_0x336f2d=_0xeb3555['query']??{},_0x10a031=Object['keys'](_0x336f2d)[_0x2f8a13(0xcd)](_0x4a9649=>_0x336f2d[_0x4a9649]!==void 0x0)[_0x2f8a13(0xe5)](_0x1c097e=>{const _0x3b09ae=_0x336f2d[_0x1c097e];return(Array['isArray'](_0x3b09ae)?_0x3b09ae:[_0x3b09ae])['map'](_0x28d9a8=>encodeURIComponent(_0x1c097e)+'='+encodeURIComponent(String(_0x28d9a8)));})[_0x2f8a13(0xe9)]('&');if(!_0x10a031)return _0x47ee2e;return''+_0x47ee2e+(_0x47ee2e['includes']('?')?'&':'?')+_0x10a031;}function joinURL(_0x217b21,_0x462259){const _0x20880c=_0x9a34dd;if(!_0x217b21||isAbsoluteURL(_0x462259))return _0x462259;return _0x217b21[_0x20880c(0xeb)](/\/+$/,'')+'/'+_0x462259['replace'](/^\/+/,'');}function isAbsoluteURL(_0x572f17){const _0x52b05e=_0x9a34dd;return/^[a-z][a-z\d+\-.]*:\/\//i[_0x52b05e(0xf0)](_0x572f17)||_0x572f17['startsWith']('//');}function dispatchHttp(_0x12f5ae,_0x17a0f1,_0x5de830){const _0x391ec8=buildURL(_0x17a0f1,_0x5de830);return withRetry(_0x5de830,()=>attemptRequest(_0x12f5ae,_0x17a0f1,_0x391ec8,_0x5de830));}function attemptRequest(_0x1d06e8,_0x55124d,_0x50377d,_0x50b56c){const _0x50d8d9=!!_0x50b56c['raw'];return new Promise((_0x58cc26,_0x5b9b22)=>{const _0x42f212=_0x480c;let _0x1c6c02=![];const _0x552d06=_0x21a577=>{if(_0x1c6c02)return;_0x1c6c02=!![],_0x21a577();},_0x568ff3=onAbort(_0x50b56c[_0x42f212(0xdb)],()=>{const _0x351269=_0x42f212;_0x552d06(()=>_0x5b9b22(_0x50b56c[_0x351269(0xdb)]['reason']));}),_0x7e3dc6=_0x51a80d=>{_0x568ff3(),_0x552d06(_0x51a80d);};callRequestHooks(_0x55124d,_0x50b56c)['then'](()=>{if(_0x1c6c02)return;dispatch(_0x1d06e8,_0x50377d,_0x50b56c,{'onSuccess':_0x3a5b5e=>{const _0x373073=_0x480c;Promise[_0x373073(0x104)]()[_0x373073(0x106)](()=>refineResponse(_0x3a5b5e,_0x50b56c))[_0x373073(0x106)](async _0x2be88a=>{const _0xcde284=_0x373073;if(isResponseError(_0x3a5b5e)){await callResponseErrorHooks(_0x55124d,_0x50b56c,_0x2be88a);if(!_0x50b56c[_0xcde284(0xcb)])throw createResponseError(_0x55124d,_0x50b56c,_0x2be88a);}else await callResponseHooks(_0x55124d,_0x50b56c,_0x2be88a);_0x7e3dc6(()=>_0x58cc26(_0x50d8d9?_0x2be88a:_0x2be88a['data']));})[_0x373073(0x103)](_0xbdc548=>_0x7e3dc6(()=>_0x5b9b22(_0xbdc548)));},'onFail':_0x5899bc=>{const _0x16bbae=_0x480c;Promise['resolve']()['then'](async()=>{const _0x4b2209=normalizeError(_0x5899bc);if(!isAbortError(_0x4b2209))await callRequestErrorHooks(_0x55124d,_0x50b56c,_0x4b2209);throw _0x4b2209;})[_0x16bbae(0x103)](_0x4ab787=>_0x7e3dc6(()=>_0x5b9b22(_0x4ab787)));}});})['catch'](async _0x2e8583=>{const _0x4cfef6=normalizeError(_0x2e8583);await callRequestErrorHooks(_0x55124d,_0x50b56c,_0x4cfef6),_0x7e3dc6(()=>_0x5b9b22(_0x4cfef6));});});}const _0x1fca69={};_0x1fca69['method']=_0x9a34dd(0xd7),_0x1fca69['responseType']='json';function _0x1013(){const _0x10fc22=['enableHttp2','download','defineProperty','593313SyWTfA','POST','dataType','reason','statusCode','url','GET','DELETE','indexOf','542664moIfcR','signal','push','responseType','data','filePath','body','onResponse','assign','headers','onSuccess','flatMap','abort','onRequestError','1204Bhhgcp','join','query','replace','9715xLYdVS','file','HTTP\x20request\x20failed','2552694EJFlHe','test','slice','parseResponse','sslVerify','PATCH','onabort','json','6mePETq','194747yEaeyP','request','text','throwIfAborted','100JnRbmA','224rCCJDy','upload','24509844OYKnlK','The\x20operation\x20was\x20aborted','number','name','catch','resolve','onHeadersReceived','then','onRequest','method','tempFilePath','listeners','removeEventListener','forceCellularNetwork','header','11hMkGYr','response','timeout','function','options','addEventListener','splice','aborted','209880JNHUob','string','PUT','message','ignoreResponseError','onProgress','filter'];_0x1013=function(){return _0x10fc22;};return _0x1013();}const defaultConfig=_0x1fca69;function createHttp(_0x2178c9={}){const _0x2233a0=_0x9a34dd,_0x593412=(_0x45d5f5,_0x3393ee)=>{const _0x2ded71=_0x480c;return dispatchHttp(_0x2ded71(0xf9),_0x45d5f5,mergeOptions(defaultConfig,_0x2178c9,_0x3393ee));},_0x4b4d27=(_0x32f372,_0x5b30be)=>{const _0x52fc13=_0x480c,_0x618bdf={};return _0x618bdf[_0x52fc13(0x108)]='POST',dispatchHttp(_0x52fc13(0xfe),_0x32f372,mergeOptions(defaultConfig,_0x2178c9,_0x5b30be,_0x618bdf));},_0x57c092=(_0x50fd6d,_0x5abd95)=>{const _0xf89190=_0x480c,_0x464784={};return _0x464784['method']='GET',dispatchHttp(_0xf89190(0xcf),_0x50fd6d,mergeOptions(defaultConfig,_0x2178c9,_0x5abd95,_0x464784));},_0x383dd5=_0x7ee4d4=>createHttp(mergeOptions(_0x2178c9,_0x7ee4d4)),_0x288b98={};return _0x288b98['request']=_0x593412,_0x288b98['upload']=_0x4b4d27,_0x288b98[_0x2233a0(0xcf)]=_0x57c092,_0x288b98['create']=_0x383dd5,_0x288b98;}const http=createHttp();export{http as n,createHttpAborter as r,createHttp as t};
@@ -1,7 +0,0 @@
1
- /**
2
- * @oiyo/framework v0.4.7
3
- * Copyright (c) 2026 skiyee. All rights reserved.
4
- * Commercial software. See LICENSE for terms.
5
- * Official site: https://oiyo.js.org
6
- */
7
- const _0x2a89f2=_0x4447;(function(_0x285e33,_0xafda58){const _0x27a5a0=_0x4447,_0x405da3=_0x285e33();while(!![]){try{const _0x5d7a50=-parseInt(_0x27a5a0(0x206))/0x1*(-parseInt(_0x27a5a0(0x203))/0x2)+-parseInt(_0x27a5a0(0x1f5))/0x3+parseInt(_0x27a5a0(0x214))/0x4+-parseInt(_0x27a5a0(0x1e2))/0x5*(-parseInt(_0x27a5a0(0x1d9))/0x6)+parseInt(_0x27a5a0(0x1ca))/0x7*(-parseInt(_0x27a5a0(0x1da))/0x8)+-parseInt(_0x27a5a0(0x201))/0x9+parseInt(_0x27a5a0(0x1c5))/0xa;if(_0x5d7a50===_0xafda58)break;else _0x405da3['push'](_0x405da3['shift']());}catch(_0x8e272e){_0x405da3['push'](_0x405da3['shift']());}}}(_0x38cf,0x92ee1));function createHttpAborter(){const _0x39cd55=new HttpAbortSignal();return{'signal':_0x39cd55,'abort':_0x188460=>_0x39cd55['_abort'](_0x188460)};}const ABORT_ERROR_NAME=_0x2a89f2(0x21b);var AbortEmitter=class{[_0x2a89f2(0x202)]=[];['addEventListener'](_0x3d2dab,_0x598dd4){const _0x3834ff=_0x2a89f2;if(_0x3d2dab!==_0x3834ff(0x209))return;this['listeners']['push'](_0x598dd4);}['removeEventListener'](_0x4df258,_0x5ef6cd){const _0x2a1492=_0x2a89f2;if(_0x4df258!=='abort')return;const _0x5db49f=this[_0x2a1492(0x202)]['indexOf'](_0x5ef6cd);if(_0x5db49f!==-0x1)this['listeners']['splice'](_0x5db49f,0x1);}[_0x2a89f2(0x20d)](_0x182ae6){const _0xe7fd50=_0x2a89f2;for(const _0x19d8ae of this[_0xe7fd50(0x202)][_0xe7fd50(0x1ef)]())_0x19d8ae[_0xe7fd50(0x1c7)](this,_0x182ae6);}},HttpAbortSignal=class extends AbortEmitter{['aborted']=![];[_0x2a89f2(0x1e0)]=void 0x0;[_0x2a89f2(0x1df)]=null;['_abort'](_0x37b4fb){const _0x21f39f=_0x2a89f2;if(this[_0x21f39f(0x207)])return;this[_0x21f39f(0x207)]=!![],this[_0x21f39f(0x1e0)]=_0x37b4fb===void 0x0?createAbortError():_0x37b4fb;const _0x4db41b={};_0x4db41b['type']='abort';const _0x45c023=_0x4db41b;if(typeof this['onabort']==='function')this['onabort'](_0x45c023);this['emit'](_0x45c023);}[_0x2a89f2(0x1fb)](){const _0x1febd9=_0x2a89f2;if(this[_0x1febd9(0x207)])throw this[_0x1febd9(0x1e0)];}};function createAbortError(_0x12843d=_0x2a89f2(0x1cc)){const _0x4612a8=_0x2a89f2,_0x469ab6=new Error(_0x12843d);return _0x469ab6[_0x4612a8(0x1f0)]=ABORT_ERROR_NAME,_0x469ab6;}function isAbortError(_0x18a741){const _0x3130b0=_0x2a89f2;return _0x18a741 instanceof Error&&_0x18a741[_0x3130b0(0x1f0)]===ABORT_ERROR_NAME;}function onAbort(_0x46df1e,_0x16c022){const _0x4ae787=_0x2a89f2;if(!_0x46df1e)return()=>{};if(_0x46df1e['aborted'])return _0x16c022(),()=>{};return _0x46df1e['addEventListener']('abort',_0x16c022),()=>_0x46df1e['removeEventListener'](_0x4ae787(0x209),_0x16c022);}const HOOK_NAMES=['onRequest',_0x2a89f2(0x1e5),_0x2a89f2(0x1f2),'onResponseError'];function mergeOptions(..._0x2ce094){const _0x5af313=_0x2a89f2,_0x2be285={},_0x1b536a={};for(const _0xa5cb36 of _0x2ce094){if(!_0xa5cb36)continue;for(const _0x31774c of HOOK_NAMES)collectHook(_0x1b536a,_0x31774c,_0xa5cb36);const _0x3115fa=_0x2be285['headers'],_0x340292=_0x2be285[_0x5af313(0x1ed)];Object[_0x5af313(0x1d7)](_0x2be285,_0xa5cb36);const _0x22539d={..._0x3115fa,..._0xa5cb36[_0x5af313(0x1d3)]};_0x2be285[_0x5af313(0x1d3)]=_0x22539d;const _0x209afc={..._0x340292,..._0xa5cb36[_0x5af313(0x1ed)]};_0x2be285['query']=_0x209afc;}for(const [_0xc08038,_0x3030f6]of Object[_0x5af313(0x1de)](_0x1b536a))Object[_0x5af313(0x1d7)](_0x2be285,{[_0xc08038]:async _0x2225d3=>{for(const _0x4da1df of _0x3030f6)await _0x4da1df(_0x2225d3);}});return _0x2be285;}function collectHook(_0x1792b4,_0x48aec4,_0xa54d5c){const _0x50ce69=_0xa54d5c[_0x48aec4];if(typeof _0x50ce69!=='function')return;_0x1792b4[_0x48aec4]??=[],_0x1792b4[_0x48aec4]['push'](_0x50ce69);}function dispatch(_0x47f4f7,_0x3f723c,_0x1d757c,_0x131493){let _0x5a0a2a;if(_0x47f4f7==='upload')_0x5a0a2a=dispatchUpload(_0x3f723c,_0x1d757c,_0x131493);else{if(_0x47f4f7==='download')_0x5a0a2a=dispatchDownload(_0x3f723c,_0x1d757c,_0x131493);else _0x5a0a2a=dispatchRequest(_0x3f723c,_0x1d757c,_0x131493);}bindTask(_0x5a0a2a,_0x1d757c);}function bindTask(_0x4716fd,_0x2b4e09){const _0x4b831d=_0x2a89f2;onAbort(_0x2b4e09[_0x4b831d(0x1d0)],()=>_0x4716fd[_0x4b831d(0x209)]());if(typeof _0x2b4e09['onHeadersReceived']==='function')_0x4716fd[_0x4b831d(0x1c2)](_0x2b4e09[_0x4b831d(0x1c2)]);const _0x50203f=_0x2b4e09['onProgress'];if(typeof _0x50203f==='function'&&'onProgressUpdate'in _0x4716fd)_0x4716fd[_0x4b831d(0x1c6)](_0x50203f);}function dispatchRequest(_0x22553a,_0x1bd96b,_0x89e072){const _0x5ae744=_0x2a89f2,_0x3e0db2={'url':_0x22553a,'method':_0x1bd96b[_0x5ae744(0x210)],'header':_0x1bd96b['headers'],'data':_0x1bd96b['body']??{},'timeout':_0x1bd96b[_0x5ae744(0x216)],'dataType':_0x1bd96b[_0x5ae744(0x1e1)]||_0x5ae744(0x1db),'responseType':mappedResponseBodyType(_0x1bd96b[_0x5ae744(0x1dc)]),'sslVerify':_0x1bd96b[_0x5ae744(0x1cd)],'withCredentials':_0x1bd96b['withCredentials'],'firstIpv4':_0x1bd96b[_0x5ae744(0x1ce)],'enableHttp2':_0x1bd96b[_0x5ae744(0x20c)],'enableQuic':_0x1bd96b[_0x5ae744(0x1d4)],'enableCache':_0x1bd96b[_0x5ae744(0x213)],'enableHttpDNS':_0x1bd96b[_0x5ae744(0x208)],'httpDNSServiceId':_0x1bd96b['httpDNSServiceId'],'enableChunked':_0x1bd96b[_0x5ae744(0x1cf)],'forceCellularNetwork':_0x1bd96b[_0x5ae744(0x1c8)],'success':_0x89e072['onSuccess'],'fail':_0x89e072[_0x5ae744(0x1ff)],'complete':()=>{}};return uni['request'](_0x3e0db2);}function dispatchUpload(_0x4cd20e,_0x36ebdf,_0x1db79f){const _0x11d4a9=_0x2a89f2,_0x59e0ff={};_0x59e0ff['url']=_0x4cd20e,_0x59e0ff[_0x11d4a9(0x1f1)]=_0x36ebdf['fileType'],_0x59e0ff[_0x11d4a9(0x1e3)]=_0x36ebdf[_0x11d4a9(0x1e3)],_0x59e0ff['filePath']=_0x36ebdf[_0x11d4a9(0x200)],_0x59e0ff[_0x11d4a9(0x1f0)]=_0x36ebdf[_0x11d4a9(0x1f0)]??_0x11d4a9(0x1e3),_0x59e0ff[_0x11d4a9(0x1d6)]=_0x36ebdf[_0x11d4a9(0x1d6)],_0x59e0ff[_0x11d4a9(0x1d2)]=_0x36ebdf['headers'],_0x59e0ff['formData']=_0x36ebdf['body']??{},_0x59e0ff[_0x11d4a9(0x216)]=_0x36ebdf['timeout'],_0x59e0ff['success']=_0x1db79f[_0x11d4a9(0x21a)],_0x59e0ff[_0x11d4a9(0x1cb)]=_0x1db79f[_0x11d4a9(0x1ff)],_0x59e0ff['complete']=()=>{};const _0x5808f5=_0x59e0ff;return uni['uploadFile'](_0x5808f5);}function dispatchDownload(_0x534c13,_0x46b29d,_0x5232ff){const _0x36dddd=_0x2a89f2,_0x25ed57={'url':_0x534c13,'header':_0x46b29d[_0x36dddd(0x1d3)],'timeout':_0x46b29d[_0x36dddd(0x216)],'success':_0x2ab795=>{const _0x2dcab3=_0x36dddd,_0x14d07e={..._0x2ab795};_0x14d07e[_0x2dcab3(0x205)]={},_0x14d07e[_0x2dcab3(0x205)]['tempFilePath']=_0x2ab795[_0x2dcab3(0x20f)],_0x5232ff['onSuccess'](_0x14d07e);},'fail':_0x5232ff[_0x36dddd(0x1ff)],'complete':()=>{}};return uni['downloadFile'](_0x25ed57);}function mappedResponseBodyType(_0x3c9006){const _0x5c3b98=_0x2a89f2;if(!_0x3c9006||_0x3c9006===_0x5c3b98(0x1db))return _0x5c3b98(0x1e9);if(_0x3c9006===_0x5c3b98(0x1d1))return _0x5c3b98(0x1e8);return _0x5c3b98(0x1e9);}var HttpError=class extends Error{constructor(_0x226d5d){const _0x3a9d4d=_0x2a89f2;super(_0x226d5d),this['name']=_0x3a9d4d(0x1fa);}};function createResponseError(_0x3397dc,_0x134aa8,_0x13ef42){const _0x44422a=_0x2a89f2,_0x38ed50=_0x3397dc,_0x2ec1ad='['+(_0x134aa8?.[_0x44422a(0x210)]||_0x44422a(0x20a))+']\x20'+_0x38ed50,_0xe1f557=_0x13ef42?_0x13ef42['statusCode']+'\x20'+(_0x13ef42['errMsg']||''):_0x44422a(0x1ee),_0x3e00be=_0x13ef42?JSON[_0x44422a(0x1f6)](_0x13ef42[_0x44422a(0x205)]):_0x44422a(0x212),_0x599468=new HttpError(_0x2ec1ad+':\x20'+_0xe1f557+(_0x13ef42[_0x44422a(0x205)]?'\x20'+_0x3e00be:''));for(const _0x2bb94e of['request','options',_0x44422a(0x1d8),_0x44422a(0x205)])Object['defineProperty'](_0x599468,_0x2bb94e,{'get'(){const _0x1ad317=_0x44422a,_0x4e5733={};return _0x4e5733['request']=_0x3397dc,_0x4e5733[_0x1ad317(0x1c3)]=_0x134aa8,_0x4e5733['response']=_0x13ef42,_0x4e5733['data']=_0x13ef42['data'],_0x4e5733[_0x2bb94e];}});return _0x599468;}function normalizeError(_0x51bfea){const _0x352be3=_0x2a89f2;if(_0x51bfea instanceof Error)return _0x51bfea;return Object[_0x352be3(0x1d7)](new Error(_0x51bfea?.['errMsg']||_0x51bfea?.['message']||_0x352be3(0x1d5)),{'cause':_0x51bfea});}async function callRequestHooks(_0x74aa3f,_0xcec4ee){await _0xcec4ee['onRequest']?.({'options':_0xcec4ee,'resource':_0x74aa3f});}async function callRequestErrorHooks(_0x1f605f,_0x30be86,_0x22c4e7){await _0x30be86['onRequestError']?.({'options':_0x30be86,'resource':_0x1f605f,'error':_0x22c4e7});}async function callResponseHooks(_0x880e83,_0x1b6e77,_0x206c2f){await _0x1b6e77['onResponse']?.({'options':_0x1b6e77,'resource':_0x880e83,'response':_0x206c2f});}async function callResponseErrorHooks(_0x1b0717,_0x22311e,_0x817ee9){const _0x40384e=_0x2a89f2;await _0x22311e[_0x40384e(0x1c9)]?.({'options':_0x22311e,'resource':_0x1b0717,'response':_0x817ee9});}async function refineResponse(_0x4554bb,_0x231f1e){const _0xcf7351=_0x2a89f2;if(_0x231f1e[_0xcf7351(0x1dc)]===_0xcf7351(0x1db)||!_0x231f1e[_0xcf7351(0x1dc)])return{..._0x4554bb,'data':await parseJSONResponse(_0x4554bb[_0xcf7351(0x205)],_0x231f1e)};return _0x4554bb;}function parseJSONResponse(_0x518e21,_0x4eca49){const _0x45ac27=_0x2a89f2;if(typeof _0x518e21!=='string')return _0x518e21;if(_0x4eca49[_0x45ac27(0x1f7)])return _0x4eca49[_0x45ac27(0x1f7)](_0x518e21);return _0x518e21?JSON[_0x45ac27(0x215)](_0x518e21):null;}function isResponseError(_0x1040ee){const _0x25e8f4=_0x2a89f2,_0x2f3166='statusCode'in _0x1040ee?_0x1040ee[_0x25e8f4(0x1eb)]:void 0x0;return typeof _0x2f3166==='number'&&(_0x2f3166<0xc8||_0x2f3166>=0x12c);}const DEFAULT_RETRY_STATUS_CODES=[0x198,0x199,0x1a9,0x1ad,0x1f4,0x1f6,0x1f7,0x1f8],PAYLOAD_METHODS=new Set([_0x2a89f2(0x1ea),_0x2a89f2(0x20b),'DELETE',_0x2a89f2(0x20e)]);async function withRetry(_0x5474e3,_0x5e7dde){const _0xe77195=_0x2a89f2,_0x539131=resolveRetryCount(_0x5474e3);for(let _0x5d56eb=0x0;;_0x5d56eb++)try{return await _0x5e7dde();}catch(_0x267056){if(_0x5d56eb>=_0x539131||!shouldRetry(_0x267056,_0x5474e3))throw _0x267056;await sleep(_0x5474e3[_0xe77195(0x1f9)]??0x0,_0x5474e3['signal']);}}function resolveRetryCount(_0x5ab607){const _0x3880ea=_0x2a89f2,{retry:_0x3a5b7e}=_0x5ab607;if(_0x3a5b7e===![])return 0x0;if(typeof _0x3a5b7e==='number')return _0x3a5b7e>0x0?_0x3a5b7e:0x0;return isPayloadMethod(_0x5ab607[_0x3880ea(0x210)])?0x0:0x1;}function shouldRetry(_0x6d2bab,_0x492f01){const _0x1bf38b=_0x2a89f2;if(_0x492f01['signal']?.[_0x1bf38b(0x207)]||isAbortError(_0x6d2bab))return![];const _0x53a3db=_0x6d2bab?.[_0x1bf38b(0x1d8)]?.[_0x1bf38b(0x1eb)];if(typeof _0x53a3db!=='number')return!![];return(_0x492f01[_0x1bf38b(0x1dd)]??DEFAULT_RETRY_STATUS_CODES)['includes'](_0x53a3db);}function isPayloadMethod(_0x2bbd90){const _0x19f123=_0x2a89f2;return!!_0x2bbd90&&PAYLOAD_METHODS[_0x19f123(0x1fd)](_0x2bbd90[_0x19f123(0x1e6)]());}function sleep(_0x5809b0,_0x4f9537){return new Promise((_0x4be4ef,_0x458335)=>{const _0x34d1b8=_0x4447;if(_0x4f9537?.[_0x34d1b8(0x207)]){_0x458335(_0x4f9537[_0x34d1b8(0x1e0)]);return;}if(!(_0x5809b0>0x0)){_0x4be4ef();return;}let _0x2bc96f=()=>{};const _0x51ba56=setTimeout(()=>{_0x2bc96f(),_0x4be4ef();},_0x5809b0);_0x2bc96f=onAbort(_0x4f9537,()=>{const _0x3819ab=_0x34d1b8;clearTimeout(_0x51ba56),_0x458335(_0x4f9537[_0x3819ab(0x1e0)]);});});}function buildURL(_0x206e4d,_0x5d5ff7){const _0x1bbfba=_0x2a89f2,_0x5bee0a=joinURL(_0x5d5ff7['baseURL'],_0x206e4d),_0x1ce55a=_0x5d5ff7['query']??{},_0x59a59b=Object[_0x1bbfba(0x1ec)](_0x1ce55a)['filter'](_0x1402e3=>_0x1ce55a[_0x1402e3]!==void 0x0)[_0x1bbfba(0x1c4)](_0x3c604b=>{const _0x668250=_0x1ce55a[_0x3c604b];return(Array['isArray'](_0x668250)?_0x668250:[_0x668250])['map'](_0x37240e=>encodeURIComponent(_0x3c604b)+'='+encodeURIComponent(String(_0x37240e)));})[_0x1bbfba(0x218)]('&');if(!_0x59a59b)return _0x5bee0a;return''+_0x5bee0a+(_0x5bee0a['includes']('?')?'&':'?')+_0x59a59b;}function joinURL(_0x1d9f00,_0x16a365){const _0x195e62=_0x2a89f2;if(!_0x1d9f00||isAbsoluteURL(_0x16a365))return _0x16a365;return _0x1d9f00[_0x195e62(0x1e4)](/\/+$/,'')+'/'+_0x16a365[_0x195e62(0x1e4)](/^\/+/,'');}function isAbsoluteURL(_0x415140){return/^[a-z][a-z\d+\-.]*:\/\//i['test'](_0x415140)||_0x415140['startsWith']('//');}function dispatchHttp(_0xc1e385,_0x5695e6,_0x4207e5){const _0x38e38c=buildURL(_0x5695e6,_0x4207e5);return withRetry(_0x4207e5,()=>attemptRequest(_0xc1e385,_0x5695e6,_0x38e38c,_0x4207e5));}function attemptRequest(_0xaebc87,_0x494710,_0x175ee6,_0xe82e7e){const _0x11f8e0=_0x2a89f2,_0x231f6c=!!_0xe82e7e[_0x11f8e0(0x1fe)];return new Promise((_0x564458,_0x3ae56f)=>{const _0x4a1024=_0x11f8e0;let _0x3f51a3=![];const _0x2e5c57=_0x3ef91f=>{if(_0x3f51a3)return;_0x3f51a3=!![],_0x3ef91f();},_0xc7242b=onAbort(_0xe82e7e['signal'],()=>{const _0x127b62=_0x4447;_0x2e5c57(()=>_0x3ae56f(_0xe82e7e[_0x127b62(0x1d0)][_0x127b62(0x1e0)]));}),_0x4fab32=_0x39b23f=>{_0xc7242b(),_0x2e5c57(_0x39b23f);};callRequestHooks(_0x494710,_0xe82e7e)[_0x4a1024(0x1f8)](()=>{if(_0x3f51a3)return;dispatch(_0xaebc87,_0x175ee6,_0xe82e7e,{'onSuccess':_0x8a49cd=>{const _0x50c6dd=_0x4447;Promise['resolve']()[_0x50c6dd(0x1f8)](()=>refineResponse(_0x8a49cd,_0xe82e7e))['then'](async _0x11e2c9=>{const _0x290a7a=_0x50c6dd;if(isResponseError(_0x8a49cd)){await callResponseErrorHooks(_0x494710,_0xe82e7e,_0x11e2c9);if(!_0xe82e7e[_0x290a7a(0x1f3)])throw createResponseError(_0x494710,_0xe82e7e,_0x11e2c9);}else await callResponseHooks(_0x494710,_0xe82e7e,_0x11e2c9);_0x4fab32(()=>_0x564458(_0x231f6c?_0x11e2c9:_0x11e2c9[_0x290a7a(0x205)]));})[_0x50c6dd(0x217)](_0x51b52c=>_0x4fab32(()=>_0x3ae56f(_0x51b52c)));},'onFail':_0x415b49=>{const _0x2ae480=_0x4447;Promise['resolve']()[_0x2ae480(0x1f8)](async()=>{const _0x1b9b47=normalizeError(_0x415b49);if(!isAbortError(_0x1b9b47))await callRequestErrorHooks(_0x494710,_0xe82e7e,_0x1b9b47);throw _0x1b9b47;})['catch'](_0x3792d8=>_0x4fab32(()=>_0x3ae56f(_0x3792d8)));}});})[_0x4a1024(0x217)](async _0x48154d=>{const _0x421433=normalizeError(_0x48154d);await callRequestErrorHooks(_0x494710,_0xe82e7e,_0x421433),_0x4fab32(()=>_0x3ae56f(_0x421433));});});}const _0x2fd224={};_0x2fd224['method']='GET',_0x2fd224['responseType']='json';const defaultConfig=_0x2fd224;function createHttp(_0x209740={}){const _0x5dfeff=_0x2a89f2,_0x464b1e=(_0x562183,_0x1ec768)=>{const _0x130bf6=_0x4447;return dispatchHttp(_0x130bf6(0x211),_0x562183,mergeOptions(defaultConfig,_0x209740,_0x1ec768));},_0x54f92e=(_0x13f7a2,_0x2bd065)=>{const _0x5e028b=_0x4447,_0xf2100={};return _0xf2100['method']=_0x5e028b(0x1ea),dispatchHttp('upload',_0x13f7a2,mergeOptions(defaultConfig,_0x209740,_0x2bd065,_0xf2100));},_0x330d2d=(_0x33f8cb,_0x30f560)=>{const _0xe541dc=_0x4447,_0x1fa6e0={};return _0x1fa6e0['method']='GET',dispatchHttp(_0xe541dc(0x1e7),_0x33f8cb,mergeOptions(defaultConfig,_0x209740,_0x30f560,_0x1fa6e0));},_0x541c8a=_0x3856c5=>createHttp(mergeOptions(_0x209740,_0x3856c5)),_0x18289e={};return _0x18289e[_0x5dfeff(0x211)]=_0x464b1e,_0x18289e['upload']=_0x54f92e,_0x18289e['download']=_0x330d2d,_0x18289e['create']=_0x541c8a,_0x18289e;}function _0x4447(_0x52cdd1,_0x5a05cf){_0x52cdd1=_0x52cdd1-0x1c2;const _0x38cf5d=_0x38cf();let _0x44476b=_0x38cf5d[_0x52cdd1];return _0x44476b;}const http=createHttp(),_0x5a410f={};_0x5a410f[_0x2a89f2(0x1fc)]=!![],_0x5a410f[_0x2a89f2(0x219)]=function(){return createHttp;},Object[_0x2a89f2(0x204)](exports,_0x2a89f2(0x1f4),_0x5a410f);const _0x227556={};function _0x38cf(){const _0x187763=['then','retryDelay','HttpError','throwIfAborted','enumerable','has','raw','onFail','filePath','2788758rOBcme','listeners','108HODkrx','defineProperty','data','577BRnAzs','aborted','enableHttpDNS','abort','GET','PUT','enableHttp2','emit','PATCH','tempFilePath','method','request','<no\x20response\x20body>','enableCache','2913520jnECEA','parse','timeout','catch','join','get','onSuccess','AbortError','onHeadersReceived','options','flatMap','5791230YdxtGW','onProgressUpdate','call','forceCellularNetwork','onResponseError','7icnivw','fail','The\x20operation\x20was\x20aborted','sslVerify','firstIpv4','enableChunked','signal','arrayBuffer','header','headers','enableQuic','HTTP\x20request\x20failed','files','assign','response','3415482FkINWx','3390584UXNTLt','json','responseType','retryStatusCodes','entries','onabort','reason','dataType','5OlwxGZ','file','replace','onRequestError','toUpperCase','download','arraybuffer','text','POST','statusCode','keys','query','<no\x20response>','slice','name','fileType','onResponse','ignoreResponseError','createHttp','1717194dWHZaR','stringify','parseResponse'];_0x38cf=function(){return _0x187763;};return _0x38cf();}_0x227556['enumerable']=!![],_0x227556['get']=function(){return createHttpAborter;},Object[_0x2a89f2(0x204)](exports,'createHttpAborter',_0x227556);const _0x5ab8c3={};_0x5ab8c3['enumerable']=!![],_0x5ab8c3['get']=function(){return http;},Object[_0x2a89f2(0x204)](exports,'http',_0x5ab8c3);