@mptool/all 0.6.0-beta.9 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.ts CHANGED
@@ -1,6 +1,103 @@
1
1
  declare const encode: (arraybuffer: ArrayBuffer) => string;
2
2
  declare const decode: (base64: string) => ArrayBuffer;
3
3
 
4
+ declare const isQQ: boolean;
5
+ declare const isWx: boolean;
6
+ declare const isMp: boolean;
7
+
8
+ type EventType = string | symbol;
9
+ type Handler<T = unknown> = (event: T) => void | Promise<void>;
10
+ type WildcardHandler<T = Record<string, unknown>> = (type: keyof T, event: T[keyof T]) => void | Promise<void>;
11
+ type EventHandlerList<T = unknown> = Array<Handler<T>>;
12
+ type WildCardEventHandlerList<T = Record<string, unknown>> = Array<WildcardHandler<T>>;
13
+ type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<keyof Events | "*", EventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>>;
14
+ interface EmitterInstance<Events extends Record<EventType, unknown>> {
15
+ all: EventHandlerMap<Events>;
16
+ on<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;
17
+ on(type: "*", handler: WildcardHandler<Events>): void;
18
+ off<Key extends keyof Events>(type: Key, handler?: Handler<Events[Key]>): void;
19
+ off(type: "*", handler: WildcardHandler<Events>): void;
20
+ emit<Key extends keyof Events>(type: Key, event: Events[Key]): void;
21
+ emit<Key extends keyof Events>(type: undefined extends Events[Key] ? Key : never): void;
22
+ emitAsync<Key extends keyof Events>(type: Key, event: Events[Key]): Promise<void>;
23
+ emitAsync<Key extends keyof Events>(type: undefined extends Events[Key] ? Key : never): Promise<void>;
24
+ }
25
+ /**
26
+ * Tiny (~300b) functional event emitter / pubsub.
27
+ * @name emitter
28
+ * @returns Emitter
29
+ */
30
+ declare function Emitter<Events extends Record<EventType, unknown>>(all?: EventHandlerMap<Events>): EmitterInstance<Events>;
31
+
32
+ /** 写入普通日志 */
33
+ declare const debug: (...args: any[]) => void;
34
+ /** 写入信息日志 */
35
+ declare const info: (...args: any[]) => void;
36
+ /** 写入警告日志 */
37
+ declare const warn: (...args: any[]) => void;
38
+ /** 写入错误日志 */
39
+ declare const error: (...args: any[]) => void;
40
+ /**
41
+ * 写入过滤信息
42
+ *
43
+ * @param filterMsg 过滤信息
44
+ */
45
+ declare const filter: (filterMsg: string) => void;
46
+
47
+ declare const logger_debug: typeof debug;
48
+ declare const logger_error: typeof error;
49
+ declare const logger_filter: typeof filter;
50
+ declare const logger_info: typeof info;
51
+ declare const logger_warn: typeof warn;
52
+ declare namespace logger {
53
+ export { logger_debug as debug, logger_error as error, logger_filter as filter, logger_info as info, logger_warn as warn };
54
+ }
55
+
56
+ /**
57
+ * 字符串参数解析
58
+ *
59
+ * @param queryString 需要解析的字符串
60
+ * @param [splitter='&'] 分隔符
61
+ *
62
+ * @returns 参数对象
63
+ */
64
+ declare const parse: (queryString?: string, splitter?: string) => Record<string, string>;
65
+ /**
66
+ * query 对象转换字符串
67
+ *
68
+ * @param params query 对象
69
+ * @param [splitter='&] 分隔符
70
+ * @param [unencoded=false] 是否已经解码
71
+ *
72
+ * @returns 解析的字符串
73
+ */
74
+ declare const stringify: (params?: Record<string, string>, splitter?: string, unencoded?: boolean) => string;
75
+ /**
76
+ * URL 添加 query
77
+ *
78
+ * @param path 前部分路径
79
+ * @param queries query对象
80
+ * @param unencoded 是否已经解码,默认为否
81
+ *
82
+ * @returns 处理过的 url
83
+ */
84
+ declare const join: (path: string, queries: Record<string, string>, unencoded?: boolean) => string;
85
+
86
+ declare const query_join: typeof join;
87
+ declare const query_parse: typeof parse;
88
+ declare const query_stringify: typeof stringify;
89
+ declare namespace query {
90
+ export { query_join as join, query_parse as parse, query_stringify as stringify };
91
+ }
92
+
93
+ /**
94
+ * 获取变量类型
95
+ *
96
+ * @param obj 需要辨别的变量
97
+ * @returns 对象的类型
98
+ */
99
+ declare const type: (obj: unknown) => string;
100
+
4
101
  /**
5
102
  * 包装函数,先执行 wrapper ,然后执行原函数
6
103
  *
@@ -111,99 +208,6 @@ declare class Queue {
111
208
  */
112
209
  declare const funcQueue: <A extends unknown[], T = unknown>(fn: (next: () => void, ...args: A) => void, capacity?: number) => (this: T, ...args: A) => void;
113
210
 
114
- type EventType = string | symbol;
115
- type Handler<T = unknown> = (event: T) => void | Promise<void>;
116
- type WildcardHandler<T = Record<string, unknown>> = (type: keyof T, event: T[keyof T]) => void | Promise<void>;
117
- type EventHandlerList<T = unknown> = Array<Handler<T>>;
118
- type WildCardEventHandlerList<T = Record<string, unknown>> = Array<WildcardHandler<T>>;
119
- type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<keyof Events | "*", EventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>>;
120
- interface EmitterInstance<Events extends Record<EventType, unknown>> {
121
- all: EventHandlerMap<Events>;
122
- on<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;
123
- on(type: "*", handler: WildcardHandler<Events>): void;
124
- off<Key extends keyof Events>(type: Key, handler?: Handler<Events[Key]>): void;
125
- off(type: "*", handler: WildcardHandler<Events>): void;
126
- emit<Key extends keyof Events>(type: Key, event: Events[Key]): void;
127
- emit<Key extends keyof Events>(type: undefined extends Events[Key] ? Key : never): void;
128
- emitAsync<Key extends keyof Events>(type: Key, event: Events[Key]): Promise<void>;
129
- emitAsync<Key extends keyof Events>(type: undefined extends Events[Key] ? Key : never): Promise<void>;
130
- }
131
- /**
132
- * Tiny (~300b) functional event emitter / pubsub.
133
- * @name emitter
134
- * @returns Emitter
135
- */
136
- declare function Emitter<Events extends Record<EventType, unknown>>(all?: EventHandlerMap<Events>): EmitterInstance<Events>;
137
-
138
- /** 写入普通日志 */
139
- declare const debug: (...args: any[]) => void;
140
- /** 写入信息日志 */
141
- declare const info: (...args: any[]) => void;
142
- /** 写入警告日志 */
143
- declare const warn: (...args: any[]) => void;
144
- /** 写入错误日志 */
145
- declare const error: (...args: any[]) => void;
146
- /**
147
- * 写入过滤信息
148
- *
149
- * @param filterMsg 过滤信息
150
- */
151
- declare const filter: (filterMsg: string) => void;
152
-
153
- declare const logger_debug: typeof debug;
154
- declare const logger_error: typeof error;
155
- declare const logger_filter: typeof filter;
156
- declare const logger_info: typeof info;
157
- declare const logger_warn: typeof warn;
158
- declare namespace logger {
159
- export { logger_debug as debug, logger_error as error, logger_filter as filter, logger_info as info, logger_warn as warn };
160
- }
161
-
162
- /**
163
- * 字符串参数解析
164
- *
165
- * @param queryString 需要解析的字符串
166
- * @param [splitter='&'] 分隔符
167
- *
168
- * @returns 参数对象
169
- */
170
- declare const parse: (queryString?: string, splitter?: string) => Record<string, string>;
171
- /**
172
- * query 对象转换字符串
173
- *
174
- * @param params query 对象
175
- * @param [splitter='&] 分隔符
176
- * @param [unencoded=false] 是否已经解码
177
- *
178
- * @returns 解析的字符串
179
- */
180
- declare const stringify: (params?: Record<string, string>, splitter?: string, unencoded?: boolean) => string;
181
- /**
182
- * URL 添加 query
183
- *
184
- * @param path 前部分路径
185
- * @param queries query对象
186
- * @param unencoded 是否已经解码,默认为否
187
- *
188
- * @returns 处理过的 url
189
- */
190
- declare const join: (path: string, queries: Record<string, string>, unencoded?: boolean) => string;
191
-
192
- declare const query_join: typeof join;
193
- declare const query_parse: typeof parse;
194
- declare const query_stringify: typeof stringify;
195
- declare namespace query {
196
- export { query_join as join, query_parse as parse, query_stringify as stringify };
197
- }
198
-
199
- /**
200
- * 获取变量类型
201
- *
202
- * @param obj 需要辨别的变量
203
- * @returns 对象的类型
204
- */
205
- declare const type: (obj: unknown) => string;
206
-
207
211
  type Props = Record<string, unknown>;
208
212
  type PropsOptions<Property = Props> = {
209
213
  [K in keyof Property]: PropItem<Property[K]> | null;
@@ -1157,11 +1161,11 @@ interface UrlInfo {
1157
1161
  }
1158
1162
  declare const getDomain: (domainOrURL: string) => string;
1159
1163
  declare const parseUrl: (url: string) => UrlInfo;
1160
- type CookieStoreOptions = string | {
1164
+ type CookieOptions = string | {
1161
1165
  domain?: string;
1162
1166
  path?: string;
1163
1167
  };
1164
- declare const getCookieOptions: (options?: CookieStoreOptions) => UrlInfo;
1168
+ declare const getCookieOptions: (options: CookieOptions) => UrlInfo;
1165
1169
  declare const parseCookieHeader: (setCookieHeader: string, domain: string) => Cookie[];
1166
1170
 
1167
1171
  type CookieMap = Map<string, Cookie>;
@@ -1192,7 +1196,7 @@ declare class CookieStore {
1192
1196
  * @param options Cookie 选项
1193
1197
  * @return cookie 对象
1194
1198
  */
1195
- get(name: string, options: CookieStoreOptions): Cookie | null;
1199
+ get(name: string, options: CookieOptions): Cookie | null;
1196
1200
  /**
1197
1201
  * 获取 Cookie 值
1198
1202
  *
@@ -1200,7 +1204,7 @@ declare class CookieStore {
1200
1204
  * @param options Cookie 选项
1201
1205
  * @return Cookie 值
1202
1206
  */
1203
- getValue(name: string, options: CookieStoreOptions): string | undefined;
1207
+ getValue(name: string, options: CookieOptions): string | undefined;
1204
1208
  /**
1205
1209
  * 是否有特定的 Cookie
1206
1210
  *
@@ -1208,7 +1212,7 @@ declare class CookieStore {
1208
1212
  * @param options Cookie 选项
1209
1213
  * @return 是否存在
1210
1214
  */
1211
- has(name: string, options: CookieStoreOptions): boolean;
1215
+ has(name: string, options: CookieOptions): boolean;
1212
1216
  /**
1213
1217
  * 设置 cookie
1214
1218
  */
@@ -1230,7 +1234,7 @@ declare class CookieStore {
1230
1234
  * @param options Cookie 选项
1231
1235
  * @return Cookie 对象数组
1232
1236
  */
1233
- getCookies(options?: CookieStoreOptions): Cookie[];
1237
+ getCookies(options: CookieOptions): Cookie[];
1234
1238
  /**
1235
1239
  * 获取所有 cookies 对象
1236
1240
  *
@@ -1242,7 +1246,7 @@ declare class CookieStore {
1242
1246
  *
1243
1247
  * @return 键值 Map
1244
1248
  */
1245
- getCookiesMap(options: CookieStoreOptions): Record<string, string>;
1249
+ getCookiesMap(options: CookieOptions): Record<string, string>;
1246
1250
  /**
1247
1251
  * 应用 Cookies
1248
1252
  *
@@ -1261,21 +1265,21 @@ declare class CookieStore {
1261
1265
  * @param header 小程序 response header
1262
1266
  * @param domainOrURL Url 或域名
1263
1267
  */
1264
- applyHeader(header: WechatMiniprogram.IAnyObject, domainOrURL: string): void;
1268
+ applyHeader(header: unknown, domainOrURL: string): void;
1265
1269
  /**
1266
1270
  * 应用响应 cookies
1267
1271
  *
1268
1272
  * @param response 小程序 response
1269
1273
  * @param domainOrURL Url 或域名
1270
1274
  */
1271
- applyResponse(response: WechatMiniprogram.RequestSuccessCallbackResult, domainOrURL: string): void;
1275
+ applyResponse(response: unknown, domainOrURL: string): void;
1272
1276
  /**
1273
1277
  * 获取 request cookie header
1274
1278
  *
1275
1279
  * @param options Cookie 选项
1276
1280
  * @return request cookie header
1277
1281
  */
1278
- getHeader(options: CookieStoreOptions): string;
1282
+ getHeader(options: CookieOptions): string;
1279
1283
  /**
1280
1284
  * 从 Storage 读取 cookies
1281
1285
  */
@@ -1406,9 +1410,9 @@ declare class URLSearchParams {
1406
1410
  [Symbol.iterator](): IterableIterator<[string, string]>;
1407
1411
  }
1408
1412
 
1409
- declare const fetchCookieStore: CookieStore;
1410
- type FetchBody = WechatMiniprogram.IAnyObject | ArrayBuffer | URLSearchParams | string | null;
1411
- interface FetchOptions<T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>> extends Omit<WechatMiniprogram.RequestOption<T>, "url" | "method" | "header" | "data"> {
1413
+ declare const requestCookieStore: CookieStore;
1414
+ type RequestBody = WechatMiniprogram.IAnyObject | ArrayBuffer | URLSearchParams | string | null;
1415
+ interface RequestOptions<T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>> extends Omit<WechatMiniprogram.RequestOption<T>, "url" | "method" | "header" | "data"> {
1412
1416
  /**
1413
1417
  * 请求方法
1414
1418
  */
@@ -1420,7 +1424,7 @@ interface FetchOptions<T extends Record<never, never> | unknown[] | string | Arr
1420
1424
  /**
1421
1425
  * 请求主体
1422
1426
  */
1423
- body?: FetchBody;
1427
+ body?: RequestBody;
1424
1428
  /**
1425
1429
  * Cookie 作用域
1426
1430
  */
@@ -1430,7 +1434,7 @@ interface FetchOptions<T extends Record<never, never> | unknown[] | string | Arr
1430
1434
  */
1431
1435
  cookieStore?: CookieStore;
1432
1436
  }
1433
- interface FetchResponse<T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>> {
1437
+ interface RequestResponse<T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>> {
1434
1438
  /** Status Code */
1435
1439
  status: number;
1436
1440
  /** Response headers */
@@ -1438,15 +1442,13 @@ interface FetchResponse<T extends Record<never, never> | unknown[] | string | Ar
1438
1442
  /** Response data */
1439
1443
  data: T;
1440
1444
  }
1441
- type FetchType = <T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>>(url: string, options?: FetchOptions<T>) => Promise<FetchResponse<T>>;
1442
- interface FetchErrorInfo {
1443
- /** 错误信息 */
1444
- errMsg: string;
1445
+ interface RequestError extends Error {
1445
1446
  /** 错误码 */
1446
- errno: number;
1447
+ errno?: number;
1447
1448
  }
1448
- declare const mpFetch: <T extends string | ArrayBuffer | Record<never, never> | unknown[] = Record<string, any>>(url: string, { method, headers, body, cookieScope, cookieStore, ...options }?: FetchOptions<T>) => Promise<FetchResponse<T>>;
1449
- interface FetchInitOptions extends Pick<WechatMiniprogram.RequestOption, "redirect" | "enableCache" | "enableChunked" | "enableHttp2" | "enableHttpDNS" | "enableQuic" | "httpDNSServiceId" | "forceCellularNetwork" | "timeout"> {
1449
+ type RequestType = <T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>>(url: string, options?: RequestOptions<T>) => Promise<RequestResponse<T>>;
1450
+ declare const request: <T extends string | ArrayBuffer | Record<never, never> | unknown[] = Record<string, any>>(url: string, { method, headers, body, cookieScope, cookieStore, ...options }?: RequestOptions<T>) => Promise<RequestResponse<T>>;
1451
+ interface RequestInitOptions extends Pick<WechatMiniprogram.RequestOption, "redirect" | "enableCache" | "enableChunked" | "enableHttp2" | "enableHttpDNS" | "enableQuic" | "httpDNSServiceId" | "forceCellularNetwork" | "timeout"> {
1450
1452
  /**
1451
1453
  * 访问的默认域名
1452
1454
  */
@@ -1458,26 +1460,29 @@ interface FetchInitOptions extends Pick<WechatMiniprogram.RequestOption, "redire
1458
1460
  /**
1459
1461
  * 响应处理器
1460
1462
  *
1461
- * @param response 响应
1462
- * @returns 数据
1463
- * @throws {Error} 自定义的错误数据
1463
+ * @throws {RequestError} 自定义的错误数据
1464
1464
  */
1465
1465
  responseHandler?: <T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>>(
1466
1466
  /** 响应数据 */
1467
- response: FetchResponse<T>,
1467
+ response: RequestResponse<T>,
1468
1468
  /** 请求地址 */
1469
1469
  url: string,
1470
1470
  /** 请求配置 */
1471
- options: FetchOptions<T>) => FetchResponse<T>;
1471
+ options: RequestOptions<T>) => RequestResponse<T>;
1472
+ /**
1473
+ * 错误处理器
1474
+ *
1475
+ * @throws {RequestError} 自定义的错误数据
1476
+ */
1472
1477
  errorHandler?: <T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>>(
1473
1478
  /** 错误信息 */
1474
- errInfo: FetchErrorInfo,
1479
+ error: RequestError,
1475
1480
  /** 请求地址 */
1476
1481
  url: string,
1477
1482
  /** 请求配置 */
1478
- options: FetchOptions<T>) => FetchResponse<T> | never;
1483
+ options: RequestOptions<T>) => RequestResponse<T> | never;
1479
1484
  }
1480
- interface FetchFactory {
1485
+ interface RequestFactory {
1481
1486
  /**
1482
1487
  * Cookie 存储
1483
1488
  */
@@ -1485,11 +1490,11 @@ interface FetchFactory {
1485
1490
  /**
1486
1491
  * 请求方法
1487
1492
  */
1488
- fetch: FetchType;
1493
+ request: RequestType;
1489
1494
  }
1490
1495
  /**
1491
- * @param options fetch 配置选项
1496
+ * @param options request 配置选项
1492
1497
  */
1493
- declare const createMpFetch: ({ cookieStore, server, responseHandler, errorHandler, ...defaultOptions }?: FetchInitOptions) => FetchFactory;
1498
+ declare const createRequest: ({ cookieStore, server, responseHandler, errorHandler, ...defaultOptions }?: RequestInitOptions) => RequestFactory;
1494
1499
 
1495
- export { $App, $Component, $Config, $Page, type AppConfig, type AppConstructor, type AppInstance, type AppOptions, type ComponentConstructor, type ComponentInstance, type ComponentLifetimes, type ComponentOptions, Cookie, type CookieMap, CookieStore, type CookieStoreOptions, type CookieStoreType, type CookieType, Emitter, type EmitterInstance, type EventHandlerList, type EventHandlerMap, type EventType, type ExtendedAppMethods, type ExtendedComponentMethods, type ExtendedComponentProperty, type ExtendsAppOptions, type FetchBody, type FetchErrorInfo, type FetchFactory, type FetchInitOptions, type FetchOptions, type FetchResponse, type FetchType, type Handler, Headers, type HeadersInit, type PageConstructor, type PageInstance, type PageOptions, type PageQuery, type PageState, type PropType, Queue, type RefMap, type SetCookieOptions, type StorageData, type Task, type TrivialComponentInstance, type TrivialComponentOptions, type TrivialPageInstance, type TrivialPageOptions, URLSearchParams, type UrlInfo, type WildCardEventHandlerList, type WildcardHandler, check, checkAsync, createMpFetch, decode as decodeBase64, dirname, userEmitter as emitter, encode as encodeBase64, exists, fetchCookieStore, funcQueue, get, getAsync, getCookieOptions, getCookieScopeDomain, getDomain, isDir, isFile, lock, logger, ls, mkdir, mpFetch, normalizeDomain, once, parseCookieHeader, parseUrl, put, query, readFile, readJSON, remove, removeAsync, rm, saveFile, saveOnlineFile, set, setAsync, storage, take, type, unzip, wrapFunction, writeFile, writeJSON };
1500
+ export { $App, $Component, $Config, $Page, type AppConfig, type AppConstructor, type AppInstance, type AppOptions, type ComponentConstructor, type ComponentInstance, type ComponentLifetimes, type ComponentOptions, Cookie, type CookieMap, type CookieOptions, CookieStore, type CookieStoreType, type CookieType, Emitter, type EmitterInstance, type EventHandlerList, type EventHandlerMap, type EventType, type ExtendedAppMethods, type ExtendedComponentMethods, type ExtendedComponentProperty, type ExtendsAppOptions, type Handler, Headers, type HeadersInit, type PageConstructor, type PageInstance, type PageOptions, type PageQuery, type PageState, type PropType, Queue, type RefMap, type RequestBody, type RequestError, type RequestFactory, type RequestInitOptions, type RequestOptions, type RequestResponse, type RequestType, type SetCookieOptions, type StorageData, type Task, type TrivialComponentInstance, type TrivialComponentOptions, type TrivialPageInstance, type TrivialPageOptions, URLSearchParams, type UrlInfo, type WildCardEventHandlerList, type WildcardHandler, check, checkAsync, createRequest, decode as decodeBase64, dirname, userEmitter as emitter, encode as encodeBase64, exists, funcQueue, get, getAsync, getCookieOptions, getCookieScopeDomain, getDomain, isDir, isFile, isMp, isQQ, isWx, lock, logger, ls, mkdir, normalizeDomain, once, parseCookieHeader, parseUrl, put, query, readFile, readJSON, remove, removeAsync, request, requestCookieStore, rm, saveFile, saveOnlineFile, set, setAsync, storage, take, type, unzip, wrapFunction, writeFile, writeJSON };
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
- "use strict";for(var j="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",P=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),T=0;T<j.length;T++)P[j.charCodeAt(T)]=T;var it=function(e){var t=new Uint8Array(e),r,n=t.length,o="";for(r=0;r<n;r+=3)o+=j[t[r]>>2],o+=j[(t[r]&3)<<4|t[r+1]>>4],o+=j[(t[r+1]&15)<<2|t[r+2]>>6],o+=j[t[r+2]&63];return n%3===2?o=o.substring(0,o.length-1)+"=":n%3===1&&(o=o.substring(0,o.length-2)+"=="),o},ct=function(e){var t=e.length*.75,r=e.length,n,o=0,s,a,c,l;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);var i=new ArrayBuffer(t),h=new Uint8Array(i);for(n=0;n<r;n+=4)s=P[e.charCodeAt(n)],a=P[e.charCodeAt(n+1)],c=P[e.charCodeAt(n+2)],l=P[e.charCodeAt(n+3)],h[o++]=s<<2|a>>4,h[o++]=(a&15)<<4|c>>2,h[o++]=(c&3)<<6|l&63;return i};function g(e,t){return function(...r){if(t.apply(this,r),e)return e.apply(this,r)}}const lt=(e,t)=>{let r;return function(...n){if(!r)return r=!0,e.apply(t||this,[()=>{r=!1},...n])}},ht=(e,t)=>{let r;return function(...n){if(!(r||!e))return r=!0,e.apply(t||null,n)}};let ye=class{constructor(t=1){this.capacity=t,this.funcQueue=[],this.running=0}next(){const t=this.funcQueue.shift();if(t){const{func:r,ctx:n,args:o}=t,s=()=>{r.apply(n,[()=>{this.running-=1,this.next()},...[].slice.call(o,0)])};this.running+=1,s()}}add(t,r,...n){this.funcQueue.push({func:t,ctx:r,args:[].slice.call(n,0)}),this.running<this.capacity&&this.next()}clear(){this.funcQueue=[]}};const ut=(e,t=1)=>{const r=new ye(t);return function(...n){r.add(e,this,...n)}};function U(e){return e=e||new Map,{all:e,on:(t,r)=>{const n=e.get(t);n?n.push(r):e.set(t,[r])},off:(t,r)=>{const n=e.get(t);n&&(r?n.splice(n.indexOf(r)>>>0,1):e.set(t,[]))},emit:(t,r)=>{let n=e.get(t);n&&n.slice().map(o=>{o(r)}),n=e.get("*"),n&&n.slice().map(o=>{o(t,r)})},emitAsync:(t,r)=>Promise.all((e.get(t)||[]).slice().map(n=>n(r))).then(()=>Promise.all((e.get("*")||[]).slice().map(n=>n(t,r)))).then(()=>{})}}const S=wx.getRealtimeLogManager?wx.getRealtimeLogManager():wx.getLogManager({level:1}),Z=!!wx.getRealtimeLogManager,pt=(...e)=>{wx.env.DEBUG&&(Z?S.info("debug",...e):S.debug(...e))},ft=(...e)=>{console.info(...e),S.info(...e)},dt=(...e)=>{console.warn(...e),S.warn(...e)},gt=(...e)=>{console.error(...e),Z?S.error(...e):S.warn("error",...e)},$t=e=>{Z&&S.setFilterMsg(e)};var $=Object.freeze({__proto__:null,debug:pt,error:gt,filter:$t,info:ft,warn:dt});const mt=(e="",t="&")=>{const r={},n=e?e.split(t):void 0;return n&&n.length>0&&n.forEach(o=>{const[s,a]=o.split("=");r[s]=a}),r},we=(e={},t="&",r=!1)=>Object.keys(e).map(n=>{const o=e[n];return`${n}=${r?o:encodeURIComponent(o)}`}).join(t),yt=(e,t,r=!1)=>{const n=we(t,"&",r);return n?`${e}${/[?&]$/u.test(e)?"":e.indexOf("?")===-1?"?":"&"}${n}`:e};var ve=Object.freeze({__proto__:null,join:yt,parse:mt,stringify:we});const wt=e=>{if(e===void 0)return"undefined";if(typeof e=="object"){if(e===null)return"null";const t=/\[object (\w+)\]/u.exec(Object.prototype.toString.call(e));return t?t[1].toLowerCase():""}return typeof e},ee="a",be="al",xe="n",Se="p",ke="r",Oe="u",m=U(),F=U(),y=U(),w={launch:!1,lOpt:{},hide:0},vt=e=>{w.launch=!0,w.lOpt=e,m.emit(be,e)},bt=()=>{w.hide&&(m.emit(ee,new Date().getTime()-w.hide),w.hide=0)},xt=()=>{w.hide=new Date().getTime()},St=e=>{e.onLaunch=g(e.onLaunch,vt),e.onShow=g(e.onShow,bt),e.onHide=g(e.onHide,xt),e.onAwake&&(m.on(ee,t=>{$.debug(`App: awake after ${t}ms`),e.onAwake(t)}),$.debug("App: registered onAwake")),e.$on=y.on,e.$off=y.off,e.$emit=y.emit,e.$emitAsync=y.emitAsync,App(e)};var kt=Object.defineProperty,Ot=Object.defineProperties,At=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable,Ce=(e,t,r)=>t in e?kt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,jt=(e,t)=>{for(var r in t||(t={}))Ae.call(t,r)&&Ce(e,r,t[r]);if(N)for(var r of N(t))je.call(t,r)&&Ce(e,r,t[r]);return e},Ct=(e,t)=>Ot(e,At(t)),Pt=(e,t)=>{var r={};for(var n in e)Ae.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&N)for(var n of N(e))t.indexOf(n)<0&&je.call(e,n)&&(r[n]=e[n]);return r};let Pe;const _t=e=>{const t=e,{defaultRoute:r,routes:n=[]}=t,o=Pt(t,["defaultRoute","routes"]);let s={},a={};const c=(i,h)=>{const f=h.replace(/\$name/g,i);s[i]=f,a[f]=i};Array.isArray(n)?n.forEach(([i,h])=>{typeof i=="string"?c(i,h):i.forEach(f=>c(f,h))}):typeof n=="object"&&(s=n,a=Object.fromEntries(Object.keys(n).map(i=>[n[i],i])));const l=new RegExp(`^${r.replace(/^\/?/,"/?").replace(/[.]/g,"\\.").replace("$name","([\\w\\-]+)").replace(/\$name/g,"[\\w\\-]+")}`);Pe=Ct(jt({},o),{getRoute:i=>s[i]||r.replace(/\$name/g,i),getName:i=>{var h;return a[i]||((h=l.exec(i))==null?void 0:h[1])||"Unknown"}})},v=()=>Pe||$.error("$Config is not called"),te={},_e=e=>te[e],Et=(e,t)=>{te[e]=t},Dt=e=>{delete te[e]};let _=!0;const Ee=e=>{const t=v(),[r,n]=e.split("?"),o=r.startsWith("/")?r:t.getRoute(r);return{name:t.getName(o),url:`${o}${n?`?${n}`:""}`,query:ve.parse(n)}};function H(e){return t=>{if(_){_=!1;const{name:r,url:n,query:o}=Ee(t);return Promise.race([F.emitAsync(`${xe}:${r}`,o),new Promise(s=>{setTimeout(()=>s(),v().maxDelay||200)})]).then(()=>(_=!0,wx[e]({url:n})))}}}m.on(ke,()=>{setTimeout(()=>{_=!0},v().minInterval||100)}),m.on(Oe,()=>{_=!0});const De=H("navigateTo"),Re=H("redirectTo"),Me=H("switchTab"),re=H("reLaunch");function z(e){return function(t){if(t){const{before:r,after:n,url:o}=t.currentTarget.dataset;if(this&&r&&typeof this[r]=="function"&&this[r](t),o)return e(o).then(()=>{this&&n&&typeof this[n]=="function"&&this[n](t)})}}}const Rt=z(De),Mt=z(Re),Lt=z(Me),It=z(re),Le=(e=1)=>{const{home:t}=v();return getCurrentPages().length<=e&&t?re(t):wx.navigateBack({delta:e})},Tt=function(e){if(e){const{before:t,after:r,delta:n=1}=e.currentTarget.dataset;return this&&t&&typeof this[t]=="function"&&this[t](e),Promise.resolve(Le(Number(n))).then(()=>{this&&r&&typeof this[r]=="function"&&this[r](e)})}},Ut=()=>getCurrentPages().slice(0).pop(),Ft=e=>{const{name:t,query:r}=Ee(e);F.emit(`${Se}:${t}`,r)};function Ie(e){const{args:t,event:r,id:n}=e.detail;switch(r){case"_$attached":{const o=_e(n);if(!o)break;const s=o.$refID;s&&this.$refs&&(this.$refs[s]=o),o._$attached(this);break}default:{const o=this[r];o&&o.apply(this,t)}}}function Te(e){e.$=Ie,e.$refs={},e.$on=y.on,e.$off=y.off,e.$emit=y.emit,e.$emitAsync=y.emitAsync,e.$go=De,e.$redirect=Re,e.$switch=Me,e.$reLaunch=re,e.$back=Le,e.$preload=Ft,e.$currentPage=Ut,e.$getName=v().getName,e.$getPath=v().getRoute,e.$bindGo=Rt,e.$bindRedirect=Mt,e.$bindSwitch=Lt,e.$bindRelaunch=It,e.$bindBack=Tt}var Nt=Object.defineProperty,Ht=Object.defineProperties,zt=Object.getOwnPropertyDescriptors,Ue=Object.getOwnPropertySymbols,qt=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable,Fe=(e,t,r)=>t in e?Nt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ne=(e,t)=>{for(var r in t||(t={}))qt.call(t,r)&&Fe(e,r,t[r]);if(Ue)for(var r of Ue(t))Bt.call(t,r)&&Fe(e,r,t[r]);return e},oe=(e,t)=>Ht(e,zt(t));let Wt=0;const Gt=(e={})=>{const t={};return Object.keys(e).forEach(r=>{const n=e[r];if(n===null||typeof n=="function")t[r]=n;else{const{type:o}=n;o===null?t[r]={type:null,value:n.default}:Array.isArray(o)?t[r]={type:o[0],value:n.default,optionalTypes:o.slice(1)}:t[r]={type:o,value:n.default}}}),oe(ne({},t),{ref:{type:String,value:""}})},Jt=e=>{const{extendComponent:t,injectComponent:r}=v();return t&&t(e),e.lifetimes||(e.lifetimes={}),e.lifetimes.created=g(e.lifetimes.created,function(){Te(this),r&&r(e)}),e.lifetimes.attached=g(e.lifetimes.attached,function(){const n=Wt+=1;this.$id=n,Et(n,this),this.$refID=this.properties.ref,this.triggerEvent("ing",{id:this.$id,event:"_$attached"})}),e.lifetimes.detached=g(e.lifetimes.detached,function(){var n;Dt(this.$id);const o=(n=this.$parent)==null?void 0:n.$refs,s=this.$refID;s&&o&&delete o[s],delete this.$parent}),e.methods=oe(ne({},e.methods),{$call(n,...o){$.debug(`Component ${this.$id} call ${n}:`,o),this.triggerEvent("ing",{id:this.$id,event:n,args:o})},$getRef:_e,_$attached(n){this.$root=n.$root||n,this.$parent=n},$:Ie}),e.observers=oe(ne({},e.observers||{}),{ref(n){var o;this.$refID&&this.$refID!==n&&((o=this.$parent)!=null&&o.$refs&&delete this.$parent.$refs[this.$refID],this.$refID=n,$.debug(`Component ${this.$id} ref: ${n}`))}}),e.properties=Gt(e.properties),Component(e)};let Ne=!1;const Qt=(e,t)=>{const{extendPage:r,injectPage:n}=v(),o=(a,c)=>$.debug(`Page ${e}: ${a} has been invoked`,c||""),s=a=>$.debug(`Page ${e}: registered ${a}`);if(r&&r(e,t),t.$name=e,t.$state={firstOpen:!1},t.onAppLaunch){if(w.launch){const{lOpt:a}=w;o("onAppLaunch"),t.onAppLaunch(a)}else m.on(be,a=>{o("onAppLaunch"),t.onAppLaunch(a)});s("onAppLaunch")}t.onNavigate&&(F.on(`${xe}:${e}`,a=>(o("onNavigate",a),t.onNavigate(a))),s("onNavigate")),t.onPreload&&(F.on(`${Se}:${e}`,a=>(o("onPreload",a),t.onPreload(a))),s("onPreload")),t.onLoad=g(t.onLoad,()=>{t.onAwake&&(m.on(ee,a=>{o("onAwake"),t.onAwake(a)}),s("onAwake")),Ne||(Ne=!0,t.$state.firstOpen=!0)}),t.onReady=g(t.onReady,()=>m.emit(ke)),t.onUnload=g(t.onUnload,()=>m.emit(Oe)),Te(t),n&&n(e,t),t.onRegister&&(o("onRegister"),t.onRegister()),Page(t),$.debug(`Registered: Page ${e}`)};for(var He="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Vt=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),q=0;q<He.length;q++)Vt[He.charCodeAt(q)]=q;const k=wx.getRealtimeLogManager?wx.getRealtimeLogManager():wx.getLogManager({level:1}),se=!!wx.getRealtimeLogManager,Kt=(...e)=>{wx.env.DEBUG&&(se?k.info("debug",...e):k.debug(...e))},Xt=(...e)=>{console.info(...e),k.info(...e)},Yt=(...e)=>{console.warn(...e),k.warn(...e)},Zt=(...e)=>{console.error(...e),se?k.error(...e):k.warn("error",...e)},er=e=>{se&&k.setFilterMsg(e)};var u=Object.freeze({__proto__:null,debug:Kt,error:Zt,filter:er,info:Xt,warn:Yt});const d=wx.getFileSystemManager(),p=wx.env.USER_DATA_PATH,B=e=>e.split("/").slice(0,-1).join("/"),ae=e=>{try{return d.statSync(`${p}/${e}`,!1),!0}catch(t){return!1}},tr=e=>ae(e)&&d.statSync(`${p}/${e}`).isFile(),ze=e=>ae(e)&&d.statSync(`${p}/${e}`).isDirectory(),rr=(e,t=ze(e)?"dir":"file")=>{const r=()=>u.debug(`Deleted ${e}`),n=o=>u.error(`Error deleting ${e}:`,o);if(t==="dir")try{d.rmdirSync(`${p}/${e}`,!0),r()}catch(o){n(o)}else try{d.unlinkSync(`${p}/${e}`),r()}catch(o){n(o)}},nr=e=>{try{const t=d.readdirSync(`${p}/${e}`);return u.debug(`Listing ${e} folder:`,t),t}catch(t){return u.error(`Error listing ${e} folder:`,t),[]}},or=(e,t="utf-8")=>{try{return d.readFileSync(`${p}/${e}`,t)}catch(r){u.warn(`${e} don't exist`);return}},sr=(e,t="utf-8")=>{let r;try{const n=d.readFileSync(`${p}/${e}.json`,t);try{r=JSON.parse(n),u.debug(`Read ${e}.json success:`,r)}catch(o){r=void 0,u.warn(`Parse ${e}.json failed`)}}catch(n){r=void 0,u.warn(`${e}.json doesn't exist`)}return r},W=(e,t=!0)=>{try{d.mkdirSync(`${p}/${e}`,t)}catch(r){u.debug(`${e} folder already exists`)}},ar=(e,t)=>{try{d.saveFileSync(e,`${p}/${t}`)}catch(r){u.error(`Saving to ${t} failed:`,r)}},ir=(e,t)=>(W(B(t)),new Promise((r,n)=>{wx.downloadFile({url:e,filePath:`${p}/${t}`,success:o=>{o.statusCode===200?(u.info(`${e} saved`),r(o.tempFilePath)):(u.error(`Download ${e} failed with statusCode ${o.statusCode}`),n(o.statusCode))},fail:o=>{u.error(`Download ${e} failed:`,o),n(o)}})})),cr=(e,t,r=t instanceof ArrayBuffer?"binary":"utf-8")=>{W(B(e)),d.writeFileSync(`${p}/${e}`,t instanceof ArrayBuffer?t:JSON.stringify(t),r)},lr=(e,t,r="utf-8")=>{const n=JSON.stringify(t);W(B(e)),d.writeFileSync(`${p}/${e}.json`,n,r)},hr=(e,t)=>new Promise((r,n)=>{d.unzip({zipFilePath:`${p}/${e}`,targetPath:`${p}/${t}`,success:()=>{r()},fail:o=>{u.error(`Unzip ${e} failed:`,o),n()}})}),E=new Date().getTime();u.debug(`Current sessionId is ${E}`);const G={},ur=(e,t)=>{G[e]=t},pr=e=>{const t=G[e];return G[e]=void 0,t},ie=(e,t)=>t?t.expired?t.expired===E||new Date().getTime()<t.expired?t.data:(wx.removeStorageSync(`_cache_${e}`),void 0):t.data:void 0,qe=(e,t,r)=>{const n={expired:0,data:t};if(r==="keep"){const o=wx.getStorageSync(`_cache_${e}`);if(!o)return;n.expired=o.expired||0}else r&&(n.expired=r==="once"?E:r+new Date().getTime());return n},fr=(e,t,r=0)=>{wx.setStorageSync(`_cache_${e}`,qe(e,t,r))},dr=(e,t,r=0)=>wx.setStorage({key:`_cache_${e}`,data:qe(e,t,r)}).catch(()=>{u.error(`set "${e}" fail`)}),gr=e=>ie(e,wx.getStorageSync(`_cache_${e}`)),$r=e=>wx.getStorage({key:`_cache_${e}`}).then(({data:t})=>ie(e,t)).catch(()=>{u.error(`set "${e}" fail`)}),mr=e=>{wx.removeStorageSync(`_cache_${e}`),ie(e,null)},yr=e=>wx.removeStorage({key:`_cache_${e}`}),wr=()=>{wx.getStorageInfoSync().keys.forEach(e=>{if(e.startsWith("_cache_")){const t=wx.getStorageSync(e);(!t||t.expired!==E&&new Date().getTime()>=t.expired)&&wx.removeStorageSync(e)}})},vr=()=>wx.getStorageInfo().then(({keys:e})=>Promise.all(e.filter(t=>t.startsWith("_cache_")).map(t=>wx.getStorage({key:t}).then(({data:r})=>{if(!r||r.expired!==E&&new Date().getTime()>=r.expired)return wx.removeStorage({key:t}).then(()=>{})}))));var J={exports:{}},C={decodeValues:!0,map:!1,silent:!1};function ce(e){return typeof e=="string"&&!!e.trim()}function le(e,t){var r=e.split(";").filter(ce),n=r.shift(),o=br(n),s=o.name,a=o.value;t=t?Object.assign({},C,t):C;try{a=t.decodeValues?decodeURIComponent(a):a}catch(l){console.error("set-cookie-parser encountered an error while decoding a cookie with value '"+a+"'. Set options.decodeValues to false to disable this feature.",l)}var c={name:s,value:a};return r.forEach(function(l){var i=l.split("="),h=i.shift().trimLeft().toLowerCase(),f=i.join("=");h==="expires"?c.expires=new Date(f):h==="max-age"?c.maxAge=parseInt(f,10):h==="secure"?c.secure=!0:h==="httponly"?c.httpOnly=!0:h==="samesite"?c.sameSite=f:c[h]=f}),c}function br(e){var t="",r="",n=e.split("=");return n.length>1?(t=n.shift(),r=n.join("=")):r=e,{name:t,value:r}}function Be(e,t){if(t=t?Object.assign({},C,t):C,!e)return t.map?{}:[];if(e.headers)if(typeof e.headers.getSetCookie=="function")e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var r=e.headers[Object.keys(e.headers).find(function(o){return o.toLowerCase()==="set-cookie"})];!r&&e.headers.cookie&&!t.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=r}if(Array.isArray(e)||(e=[e]),t=t?Object.assign({},C,t):C,t.map){var n={};return e.filter(ce).reduce(function(o,s){var a=le(s,t);return o[a.name]=a,o},n)}else return e.filter(ce).map(function(o){return le(o,t)})}function xr(e){if(Array.isArray(e))return e;if(typeof e!="string")return[];var t=[],r=0,n,o,s,a,c;function l(){for(;r<e.length&&/\s/.test(e.charAt(r));)r+=1;return r<e.length}function i(){return o=e.charAt(r),o!=="="&&o!==";"&&o!==","}for(;r<e.length;){for(n=r,c=!1;l();)if(o=e.charAt(r),o===","){for(s=r,r+=1,l(),a=r;r<e.length&&i();)r+=1;r<e.length&&e.charAt(r)==="="?(c=!0,r=a,t.push(e.substring(n,s)),n=r):r=s+1}else r+=1;(!c||r>=e.length)&&t.push(e.substring(n,e.length))}return t}J.exports=Be;var Sr=J.exports.parse=Be;J.exports.parseString=le;var We=J.exports.splitCookiesString=xr,kr=Object.defineProperty,Or=Object.defineProperties,Ar=Object.getOwnPropertyDescriptors,Ge=Object.getOwnPropertySymbols,jr=Object.prototype.hasOwnProperty,Cr=Object.prototype.propertyIsEnumerable,Je=(e,t,r)=>t in e?kr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Pr=(e,t)=>{for(var r in t||(t={}))jr.call(t,r)&&Je(e,r,t[r]);if(Ge)for(var r of Ge(t))Cr.call(t,r)&&Je(e,r,t[r]);return e},_r=(e,t)=>Or(e,Ar(t));const he=(e="")=>e.replace(/^(\.*)?(?=\S)/gi,"."),Q=(e="")=>{if(!e)return[];e=e.replace(/^\.+/gi,"");const t=e.split(".").map(r=>[".",e.slice(e.indexOf(r))].join(""));return[e].concat(t)},ue=e=>e.replace(/^https?:\/\//,"").split("/").shift().replace(/:\d+$/,""),Qe=e=>{const t=ue(e),r=e.split(t)[1].replace(/^:\d+/,"")||"/";return{domain:t,path:r}},pe=e=>{const{domain:t="",path:r="/"}=typeof e=="object"?e:typeof e=="string"?Qe(e):{};return{domain:t,path:r}},Ve=(e,t)=>Sr(We(e),{decodeValues:!1}).map(r=>new V(_r(Pr({},r),{domain:he(r.domain)||t})));class V{constructor(t){this.expires="session",this.name=t.name||"",this.value=t.value||"",this.domain=t.domain||"",this.path=t.path||"/",this.httpOnly=!!t.httpOnly,this.expires=Number.isInteger(t.maxAge)?t.maxAge>0?new Date(new Date().getTime()+t.maxAge*1e3):"outdate":t.expires?new Date(t.expires):"session"}isExpired(){return this.expires==="outdate"||this.expires instanceof Date&&new Date>this.expires}isPersistence(){return this.expires!=="session"}isDomainMatched(t){return Q(t).includes(this.domain)}isPathMatched(t){return t.startsWith(this.path)||this.path.replace(/\/$/,"")===t}toString(){return`${this.name}=${this.value}`}toJSON(){const t={name:this.name,value:this.value,domain:this.domain};return this.path!=="/"&&(t.path=this.path),this.httpOnly&&(t.httpOnly=this.httpOnly),this.expires instanceof Date&&(t.expires=this.expires),t}}for(var Ke="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Er=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),K=0;K<Ke.length;K++)Er[Ke.charCodeAt(K)]=K;const O=wx.getRealtimeLogManager?wx.getRealtimeLogManager():wx.getLogManager({level:1}),fe=!!wx.getRealtimeLogManager,Dr=(...e)=>{wx.env.DEBUG&&(fe?O.info("debug",...e):O.debug(...e))},Rr=(...e)=>{console.info(...e),O.info(...e)},Mr=(...e)=>{console.warn(...e),O.warn(...e)},Lr=(...e)=>{console.error(...e),fe?O.error(...e):O.warn("error",...e)},Ir=e=>{fe&&O.setFilterMsg(e)};var de=Object.freeze({__proto__:null,debug:Dr,error:Lr,filter:Ir,info:Rr,warn:Mr});const Tr=/[^a-z0-9\-#$%&'*+.^_`|~]/i,Xe=`
2
- \r `,Ur=new RegExp(`(^[${Xe}]|$[${Xe}])`,"g"),D=e=>{if(typeof e!="string"||e.length===0||e.length>128)return!1;for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r>127||r===32)return!1}return!0},R=e=>{if(Tr.test(e)||e.trim()==="")throw new TypeError("Invalid character in header field name");return e.trim().toLowerCase()},Ye=e=>{if(typeof e!="string"||e.trim()!==e)return!1;for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r===0||r===10||r===13)return!1}return!0},ge=e=>e.replace(Ur,"");class M{constructor(t){this.headers={},this.headerNames=new Map,t instanceof M?t.forEach((r,n)=>{this.append(n,r)},this):Array.isArray(t)?t.forEach(([r,n])=>{this.append(r,Array.isArray(n)?n.join(", "):n)}):t&&Object.getOwnPropertyNames(t).forEach(r=>{const n=t[r];this.append(r,Array.isArray(n)?n.join(", "):n)})}append(t,r){if(!D(t)||!Ye(r))return;const n=R(t),o=ge(r),s=this.has(n)?`${this.get(n)}, ${o}`:o;this.set(t,s)}delete(t){if(!D(t)||!this.has(t))return;const r=R(t);delete this.headers[r],this.headerNames.delete(r)}get(t){var r;if(!D(t))throw TypeError(`Invalid header name "${t}"`);return(r=this.headers[R(t)])!=null?r:null}getSetCookie(){const t=this.get("set-cookie");return t===null?[]:t===""?[""]:We(t)}has(t){if(!D(t))throw new TypeError(`Invalid header name "${t}"`);return this.headers.hasOwnProperty(R(t))}set(t,r){if(!D(t)||!Ye(r))return;const n=R(t),o=ge(r);this.headers[n]=ge(o),this.headerNames.set(n,t)}forEach(t,r){for(const[n,o]of this.entries())t.call(r,o,n,this)}*keys(){for(const[t]of this.entries())yield t}*values(){for(const[,t]of this.entries())yield t}*entries(){const t=Object.keys(this.headers).sort((r,n)=>r.localeCompare(n));for(const r of t)if(r==="set-cookie")for(const n of this.getSetCookie())yield[r,n];else yield[r,this.get(r)]}toObject(){return this.headers}[Symbol.iterator](){return this.entries()}}class X{constructor(t="__cookie_store__"){this.key=t,this.store=new Map,this.init()}get(t,r){const{domain:n,path:o}=pe(r),s=Q(n);for(const[a,c]of this.store.entries()){if(n&&!s.includes(a))continue;const l=c.get(t);if(l&&l.isPathMatched(o)&&!l.isExpired())return l}return null}getValue(t,r){var n;return(n=this.get(t,r))==null?void 0:n.value}has(t,r){return!!this.get(t,r)}set(t){const{name:r,domain:n}=t,o=new V(t),s=this.store.get(n)||new Map;return s.set(r,o),this.store.set(n,s),this.save(),o}delete(t,r=""){if(r){const n=this.store.get(r);n&&n.delete(t);const o=this.store.get(he(r));o&&o.delete(t)}else for(const n of this.store.values())n.delete(t);this.save()}list(){const t={};for(const r of this.store.keys())t[r]=this.getCookiesMap(r);return t}getCookies(t){const{domain:r,path:n}=pe(t),o=Q(r),s=[];for(const[a,c]of this.store.entries())if(!(r&&o.indexOf(a)<0))for(const l of c.values())l.isPathMatched(n)&&!l.isExpired()&&s.push(l);return s}getAllCookies(){const t=[];for(const r of this.store.values())for(const n of r.values())n.isExpired()||t.push(n);return t}getCookiesMap(t){return Object.fromEntries(this.getCookies(t).map(({name:r,value:n})=>[r,n]))}apply(t){t.forEach(r=>{let n=this.store.get(r.domain);n||(n=new Map,this.store.set(r.domain,n)),n.set(r.name,r)}),this.save()}clear(t=""){if(t){const r=this.store.get(t);r&&r.clear()}else this.store.clear();this.save()}applyHeader(t,r){const n=t["Set-Cookie"]||t["set-cookie"]||"",o=Array.isArray(n)?n.filter(Boolean).join(","):typeof qq=="object"?n.replace(/;((?!Path|Expires|Max-Age|Domain|Path|SameSite)[^\s;]*?)=/gi,",$1="):n;return this.apply(Ve(o,ue(r)))}applyResponse(t,r){return this.applyHeader(t.header,r)}getHeader(t){return this.getCookies(t).map(r=>r.toString()).join("; ")}init(){try{const t=wx.getStorageSync(this.key)||[];this.apply(t.map(r=>new V(r)))}catch(t){console.warn("Error applying cookie storage",t);return}}save(){try{const t=[];for(const r of this.store.values())for(const n of r.values())n.isExpired()?r.delete(n.name):n.isPersistence()&&t.push(n);wx.setStorageSync(this.key,t)}catch(t){console.warn("Error setting cookies",t)}}}const Fr={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"},Ze=e=>encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,t=>Fr[t]),et=e=>decodeURIComponent(e.replace(/\+/g," "));class L{constructor(t){if(!t)this.params=new Map;else if(t instanceof L)this.params=new Map(t.params);else if(this.params=new Map,typeof t=="string")(t.indexOf("?")===0?t.slice(1):t).split("&").map(r=>{var n;const[,o,s]=(n=/^([^=]+)=?(.*?)$/.exec(r))!=null?n:[];o&&this.append(et(o),et(s))});else if(Symbol.iterator in t)for(const r of t){if(r.length!==2)throw new TypeError("Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements");const[n,o]=r;this.append(n,o)}else for(const r of Object.keys(t)){const n=t[r];this.params.set(r,[String(n)])}}get size(){return Array.from(this.params.values()).flat().length}append(t,r){this.params.set(t,this.getAll(t).concat(String(r)))}delete(t){this.params.delete(t)}entries(){const t=new Set;return this.forEach((r,n)=>{t.add([n,r])}),t.values()}forEach(t,r){this.params.forEach((n,o)=>n.forEach(s=>t.bind(r)(s,o,this)))}get(t){var r,n;return(n=(r=this.getAll(t))==null?void 0:r[0])!=null?n:null}getAll(t){return this.has(t)?this.params.get(t).slice(0):[]}has(t){return this.params.has(t)}keys(){return this.params.keys()}set(t,r){this.params.set(t,[r!=null?r:""])}sort(){this.params=new Map(Array.from(this.params.entries()).sort(([t],[r])=>t.localeCompare(r)))}toString(){const t=[];for(const[r,n]of this.params){const o=Ze(r);for(let s=0;s<n.length;s++)t.push(`${o}=${Ze(n[s])}`)}return t.join("&")}values(){const t=new Set;return this.forEach(r=>{t.add(r)}),t.values()}[Symbol.iterator](){return this.entries()}}var Nr=Object.defineProperty,Y=Object.getOwnPropertySymbols,tt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable,nt=(e,t,r)=>t in e?Nr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$e=(e,t)=>{for(var r in t||(t={}))tt.call(t,r)&&nt(e,r,t[r]);if(Y)for(var r of Y(t))rt.call(t,r)&&nt(e,r,t[r]);return e},ot=(e,t)=>{var r={};for(var n in e)tt.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Y)for(var n of Y(e))t.indexOf(n)<0&&rt.call(e,n)&&(r[n]=e[n]);return r};const me=new X("__fetch_cookie__"),st=(e,t={})=>{var r=t,{method:n="GET",headers:o,body:s,cookieScope:a=e,cookieStore:c=me}=r,l=ot(r,["method","headers","body","cookieScope","cookieStore"]);return new Promise((i,h)=>{const f=c.getHeader(a),b=new M(o);b.append("Cookie",f);const A=s instanceof L?s.toString():s!=null?s:void 0;s instanceof L&&b.set("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),de.debug(`Requesting ${e}:
1
+ "use strict";for(var A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),F=0;F<A.length;F++)_[A.charCodeAt(F)]=F;var yt=function(t){var e=new Uint8Array(t),r,n=e.length,o="";for(r=0;r<n;r+=3)o+=A[e[r]>>2],o+=A[(e[r]&3)<<4|e[r+1]>>4],o+=A[(e[r+1]&15)<<2|e[r+2]>>6],o+=A[e[r+2]&63];return n%3===2?o=o.substring(0,o.length-1)+"=":n%3===1&&(o=o.substring(0,o.length-2)+"=="),o},mt=function(t){var e=t.length*.75,r=t.length,n,o=0,s,a,c,l;t[t.length-1]==="="&&(e--,t[t.length-2]==="="&&e--);var i=new ArrayBuffer(e),h=new Uint8Array(i);for(n=0;n<r;n+=4)s=_[t.charCodeAt(n)],a=_[t.charCodeAt(n+1)],c=_[t.charCodeAt(n+2)],l=_[t.charCodeAt(n+3)],h[o++]=s<<2|a>>4,h[o++]=(a&15)<<4|c>>2,h[o++]=(c&3)<<6|l&63;return i};const te=typeof qq=="object",ke=typeof wx=="object"&&!te,re=te||ke;function q(t){return t=t||new Map,{all:t,on:(e,r)=>{const n=t.get(e);n?n.push(r):t.set(e,[r])},off:(e,r)=>{const n=t.get(e);n&&(r?n.splice(n.indexOf(r)>>>0,1):t.set(e,[]))},emit:(e,r)=>{let n=t.get(e);n&&n.slice().map(o=>{o(r)}),n=t.get("*"),n&&n.slice().map(o=>{o(e,r)})},emitAsync:(e,r)=>Promise.all((t.get(e)||[]).slice().map(n=>n(r))).then(()=>Promise.all((t.get("*")||[]).slice().map(n=>n(e,r)))).then(()=>{})}}var Oe;const $=re?((Oe=wx.getRealtimeLogManager)==null?void 0:Oe.call(wx))||wx.getLogManager({level:1}):console,ne=re&&typeof wx.getRealtimeLogManager=="function",wt=(...t)=>{wx.env.DEBUG&&(ne?$.info("debug",...t):$.debug(...t))},vt=(...t)=>{$.info(...t),$!==console&&console.info(...t)},bt=(...t)=>{$.warn(...t),$!==console&&console.warn(...t)},xt=(...t)=>{ne?$.error(...t):$.warn("error",...t),$!==console&&console.error(...t)},St=t=>{ne&&$.setFilterMsg(t)};var v=Object.freeze({__proto__:null,debug:wt,error:xt,filter:St,info:vt,warn:bt});const kt=(t="",e="&")=>{const r={},n=t?t.split(e):void 0;return n&&n.length>0&&n.forEach(o=>{const[s,a]=o.split("=");r[s]=a}),r},Ae=(t={},e="&",r=!1)=>Object.keys(t).map(n=>{const o=t[n];return`${n}=${r?o:encodeURIComponent(o)}`}).join(e),Ot=(t,e,r=!1)=>{const n=Ae(e,"&",r);return n?`${t}${/[?&]$/u.test(t)?"":t.indexOf("?")===-1?"?":"&"}${n}`:t};var je=Object.freeze({__proto__:null,join:Ot,parse:kt,stringify:Ae});const At=t=>{if(t===void 0)return"undefined";if(typeof t=="object"){if(t===null)return"null";const e=/\[object (\w+)\]/u.exec(Object.prototype.toString.call(t));return e?e[1].toLowerCase():""}return typeof t};function y(t,e){return function(...r){if(e.apply(this,r),t)return t.apply(this,r)}}const jt=(t,e)=>{let r;return function(...n){if(!r)return r=!0,t.apply(e||this,[()=>{r=!1},...n])}},Ct=(t,e)=>{let r;return function(...n){if(!(r||!t))return r=!0,t.apply(e||null,n)}};let Ce=class{constructor(e=1){this.capacity=e,this.funcQueue=[],this.running=0}next(){const e=this.funcQueue.shift();if(e){const{func:r,ctx:n,args:o}=e,s=()=>{r.apply(n,[()=>{this.running-=1,this.next()},...[].slice.call(o,0)])};this.running+=1,s()}}add(e,r,...n){this.funcQueue.push({func:e,ctx:r,args:[].slice.call(n,0)}),this.running<this.capacity&&this.next()}clear(){this.funcQueue=[]}};const Pt=(t,e=1)=>{const r=new Ce(e);return function(...n){r.add(t,this,...n)}},oe="a",Pe="al",Ee="n",_e="p",De="r",Re="u",b=q(),N=q(),x=q(),S={launch:!1,lOpt:{},hide:0},Et=t=>{S.launch=!0,S.lOpt=t,b.emit(Pe,t)},_t=()=>{S.hide&&(b.emit(oe,new Date().getTime()-S.hide),S.hide=0)},Dt=()=>{S.hide=new Date().getTime()},Rt=t=>{t.onLaunch=y(t.onLaunch,Et),t.onShow=y(t.onShow,_t),t.onHide=y(t.onHide,Dt),t.onAwake&&(b.on(oe,e=>{v.debug(`App: awake after ${e}ms`),t.onAwake(e)}),v.debug("App: registered onAwake")),t.$on=x.on,t.$off=x.off,t.$emit=x.emit,t.$emitAsync=x.emitAsync,App(t)};var Mt=Object.defineProperty,Tt=Object.defineProperties,Lt=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertySymbols,Me=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Le=(t,e,r)=>e in t?Mt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ut=(t,e)=>{for(var r in e||(e={}))Me.call(e,r)&&Le(t,r,e[r]);if(H)for(var r of H(e))Te.call(e,r)&&Le(t,r,e[r]);return t},It=(t,e)=>Tt(t,Lt(e)),Ft=(t,e)=>{var r={};for(var n in t)Me.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&H)for(var n of H(t))e.indexOf(n)<0&&Te.call(t,n)&&(r[n]=t[n]);return r};let Ue;const qt=t=>{const e=t,{defaultRoute:r,routes:n=[]}=e,o=Ft(e,["defaultRoute","routes"]);let s={},a={};const c=(i,h)=>{const f=h.replace(/\$name/g,i);s[i]=f,a[f]=i};Array.isArray(n)?n.forEach(([i,h])=>{typeof i=="string"?c(i,h):i.forEach(f=>c(f,h))}):typeof n=="object"&&(s=n,a=Object.fromEntries(Object.keys(n).map(i=>[n[i],i])));const l=new RegExp(`^${r.replace(/^\/?/,"/?").replace(/[.]/g,"\\.").replace("$name","([\\w\\-]+)").replace(/\$name/g,"[\\w\\-]+")}`);Ue=It(Ut({},o),{getRoute:i=>s[i]||r.replace(/\$name/g,i),getName:i=>{var h;return a[i]||((h=l.exec(i))==null?void 0:h[1])||"Unknown"}})},k=()=>Ue||v.error("$Config is not called"),se={},Ie=t=>se[t],Nt=(t,e)=>{se[t]=e},Ht=t=>{delete se[t]};let D=!0;const Fe=t=>{const e=k(),[r,n]=t.split("?"),o=r.startsWith("/")?r:e.getRoute(r);return{name:e.getName(o),url:`${o}${n?`?${n}`:""}`,query:je.parse(n)}};function z(t){return e=>{if(D){D=!1;const{name:r,url:n,query:o}=Fe(e);return Promise.race([N.emitAsync(`${Ee}:${r}`,o),new Promise(s=>{setTimeout(()=>s(),k().maxDelay||200)})]).then(()=>(D=!0,wx[t]({url:n})))}}}b.on(De,()=>{setTimeout(()=>{D=!0},k().minInterval||100)}),b.on(Re,()=>{D=!0});const qe=z("navigateTo"),Ne=z("redirectTo"),He=z("switchTab"),ae=z("reLaunch");function B(t){return function(e){if(e){const{before:r,after:n,url:o}=e.currentTarget.dataset;if(this&&r&&typeof this[r]=="function"&&this[r](e),o)return t(o).then(()=>{this&&n&&typeof this[n]=="function"&&this[n](e)})}}}const zt=B(qe),Bt=B(Ne),Qt=B(He),Wt=B(ae),ze=(t=1)=>{const{home:e}=k();return getCurrentPages().length<=t&&e?ae(e):wx.navigateBack({delta:t})},Jt=function(t){if(t){const{before:e,after:r,delta:n=1}=t.currentTarget.dataset;return this&&e&&typeof this[e]=="function"&&this[e](t),Promise.resolve(ze(Number(n))).then(()=>{this&&r&&typeof this[r]=="function"&&this[r](t)})}},Gt=()=>getCurrentPages().slice(0).pop(),Vt=t=>{const{name:e,query:r}=Fe(t);N.emit(`${_e}:${e}`,r)};function Be(t){const{args:e,event:r,id:n}=t.detail;switch(r){case"_$attached":{const o=Ie(n);if(!o)break;const s=o.$refID;s&&this.$refs&&(this.$refs[s]=o),o._$attached(this);break}default:{const o=this[r];o&&o.apply(this,e)}}}function Qe(t){t.$=Be,t.$refs={},t.$on=x.on,t.$off=x.off,t.$emit=x.emit,t.$emitAsync=x.emitAsync,t.$go=qe,t.$redirect=Ne,t.$switch=He,t.$reLaunch=ae,t.$back=ze,t.$preload=Vt,t.$currentPage=Gt,t.$getName=k().getName,t.$getPath=k().getRoute,t.$bindGo=zt,t.$bindRedirect=Bt,t.$bindSwitch=Qt,t.$bindRelaunch=Wt,t.$bindBack=Jt}var Kt=Object.defineProperty,Xt=Object.defineProperties,Yt=Object.getOwnPropertyDescriptors,We=Object.getOwnPropertySymbols,Zt=Object.prototype.hasOwnProperty,er=Object.prototype.propertyIsEnumerable,Je=(t,e,r)=>e in t?Kt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ie=(t,e)=>{for(var r in e||(e={}))Zt.call(e,r)&&Je(t,r,e[r]);if(We)for(var r of We(e))er.call(e,r)&&Je(t,r,e[r]);return t},ce=(t,e)=>Xt(t,Yt(e));let tr=0;const rr=(t={})=>{const e={};return Object.keys(t).forEach(r=>{const n=t[r];if(n===null||typeof n=="function")e[r]=n;else{const{type:o}=n;o===null?e[r]={type:null,value:n.default}:Array.isArray(o)?e[r]={type:o[0],value:n.default,optionalTypes:o.slice(1)}:e[r]={type:o,value:n.default}}}),ce(ie({},e),{ref:{type:String,value:""}})},nr=t=>{const{extendComponent:e,injectComponent:r}=k();return e&&e(t),t.lifetimes||(t.lifetimes={}),t.lifetimes.created=y(t.lifetimes.created,function(){Qe(this),r&&r(t)}),t.lifetimes.attached=y(t.lifetimes.attached,function(){const n=tr+=1;this.$id=n,Nt(n,this),this.$refID=this.properties.ref,this.triggerEvent("ing",{id:this.$id,event:"_$attached"})}),t.lifetimes.detached=y(t.lifetimes.detached,function(){var n;Ht(this.$id);const o=(n=this.$parent)==null?void 0:n.$refs,s=this.$refID;s&&o&&delete o[s],delete this.$parent}),t.methods=ce(ie({},t.methods),{$call(n,...o){v.debug(`Component ${this.$id} call ${n}:`,o),this.triggerEvent("ing",{id:this.$id,event:n,args:o})},$getRef:Ie,_$attached(n){this.$root=n.$root||n,this.$parent=n},$:Be}),t.observers=ce(ie({},t.observers||{}),{ref(n){var o;this.$refID&&this.$refID!==n&&((o=this.$parent)!=null&&o.$refs&&delete this.$parent.$refs[this.$refID],this.$refID=n,v.debug(`Component ${this.$id} ref: ${n}`))}}),t.properties=rr(t.properties),Component(t)};let Ge=!1;const or=(t,e)=>{const{extendPage:r,injectPage:n}=k(),o=(a,c)=>v.debug(`Page ${t}: ${a} has been invoked`,c||""),s=a=>v.debug(`Page ${t}: registered ${a}`);if(r&&r(t,e),e.$name=t,e.$state={firstOpen:!1},e.onAppLaunch){if(S.launch){const{lOpt:a}=S;o("onAppLaunch"),e.onAppLaunch(a)}else b.on(Pe,a=>{o("onAppLaunch"),e.onAppLaunch(a)});s("onAppLaunch")}e.onNavigate&&(N.on(`${Ee}:${t}`,a=>(o("onNavigate",a),e.onNavigate(a))),s("onNavigate")),e.onPreload&&(N.on(`${_e}:${t}`,a=>(o("onPreload",a),e.onPreload(a))),s("onPreload")),e.onLoad=y(e.onLoad,()=>{e.onAwake&&(b.on(oe,a=>{o("onAwake"),e.onAwake(a)}),s("onAwake")),Ge||(Ge=!0,e.$state.firstOpen=!0)}),e.onReady=y(e.onReady,()=>b.emit(De)),e.onUnload=y(e.onUnload,()=>b.emit(Re)),Qe(e),n&&n(t,e),e.onRegister&&(o("onRegister"),e.onRegister()),Page(e),v.debug(`Registered: Page ${t}`)};for(var Ve="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",sr=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),Q=0;Q<Ve.length;Q++)sr[Ve.charCodeAt(Q)]=Q;const Ke=typeof qq=="object",ar=typeof wx=="object"&&!Ke,Xe=Ke||ar;var Ye;const m=Xe?((Ye=wx.getRealtimeLogManager)==null?void 0:Ye.call(wx))||wx.getLogManager({level:1}):console,le=Xe&&typeof wx.getRealtimeLogManager=="function",ir=(...t)=>{wx.env.DEBUG&&(le?m.info("debug",...t):m.debug(...t))},cr=(...t)=>{m.info(...t),m!==console&&console.info(...t)},lr=(...t)=>{m.warn(...t),m!==console&&console.warn(...t)},hr=(...t)=>{le?m.error(...t):m.warn("error",...t),m!==console&&console.error(...t)},ur=t=>{le&&m.setFilterMsg(t)};var u=Object.freeze({__proto__:null,debug:ir,error:hr,filter:ur,info:cr,warn:lr});const d=wx.getFileSystemManager(),p=wx.env.USER_DATA_PATH,W=t=>t.split("/").slice(0,-1).join("/"),he=t=>{try{return d.statSync(`${p}/${t}`,!1),!0}catch(e){return!1}},pr=t=>he(t)&&d.statSync(`${p}/${t}`).isFile(),Ze=t=>he(t)&&d.statSync(`${p}/${t}`).isDirectory(),fr=(t,e=Ze(t)?"dir":"file")=>{const r=()=>u.debug(`Deleted ${t}`),n=o=>u.error(`Error deleting ${t}:`,o);if(e==="dir")try{d.rmdirSync(`${p}/${t}`,!0),r()}catch(o){n(o)}else try{d.unlinkSync(`${p}/${t}`),r()}catch(o){n(o)}},dr=t=>{try{const e=d.readdirSync(`${p}/${t}`);return u.debug(`Listing ${t} folder:`,e),e}catch(e){return u.error(`Error listing ${t} folder:`,e),[]}},gr=(t,e="utf-8")=>{try{return d.readFileSync(`${p}/${t}`,e)}catch(r){u.warn(`${t} don't exist`);return}},$r=(t,e="utf-8")=>{let r;try{const n=d.readFileSync(`${p}/${t}.json`,e);try{r=JSON.parse(n),u.debug(`Read ${t}.json success:`,r)}catch(o){r=void 0,u.warn(`Parse ${t}.json failed`)}}catch(n){r=void 0,u.warn(`${t}.json doesn't exist`)}return r},J=(t,e=!0)=>{try{d.mkdirSync(`${p}/${t}`,e)}catch(r){u.debug(`${t} folder already exists`)}},yr=(t,e)=>{try{d.saveFileSync(t,`${p}/${e}`)}catch(r){u.error(`Saving to ${e} failed:`,r)}},mr=(t,e)=>(J(W(e)),new Promise((r,n)=>{wx.downloadFile({url:t,filePath:`${p}/${e}`,success:o=>{o.statusCode===200?(u.info(`${t} saved`),r(o.tempFilePath)):(u.error(`Download ${t} failed with statusCode ${o.statusCode}`),n(o.statusCode))},fail:o=>{u.error(`Download ${t} failed:`,o),n(o)}})})),wr=(t,e,r=e instanceof ArrayBuffer?"binary":"utf-8")=>{J(W(t)),d.writeFileSync(`${p}/${t}`,e instanceof ArrayBuffer?e:JSON.stringify(e),r)},vr=(t,e,r="utf-8")=>{const n=JSON.stringify(e);J(W(t)),d.writeFileSync(`${p}/${t}.json`,n,r)},br=(t,e)=>new Promise((r,n)=>{d.unzip({zipFilePath:`${p}/${t}`,targetPath:`${p}/${e}`,success:()=>{r()},fail:o=>{u.error(`Unzip ${t} failed:`,o),n()}})}),R=new Date().getTime();u.debug(`Current sessionId is ${R}`);const G={},xr=(t,e)=>{G[t]=e},Sr=t=>{const e=G[t];return G[t]=void 0,e},ue=(t,e)=>e?e.expired?e.expired===R||new Date().getTime()<e.expired?e.data:(wx.removeStorageSync(`_cache_${t}`),void 0):e.data:void 0,et=(t,e,r)=>{const n={expired:0,data:e};if(r==="keep"){const o=wx.getStorageSync(`_cache_${t}`);if(!o)return;n.expired=o.expired||0}else r&&(n.expired=r==="once"?R:r+new Date().getTime());return n},kr=(t,e,r=0)=>{wx.setStorageSync(`_cache_${t}`,et(t,e,r))},Or=(t,e,r=0)=>wx.setStorage({key:`_cache_${t}`,data:et(t,e,r)}).catch(()=>{u.error(`set "${t}" fail`)}),Ar=t=>ue(t,wx.getStorageSync(`_cache_${t}`)),jr=t=>wx.getStorage({key:`_cache_${t}`}).then(({data:e})=>ue(t,e)).catch(()=>{u.error(`set "${t}" fail`)}),Cr=t=>{wx.removeStorageSync(`_cache_${t}`),ue(t,null)},Pr=t=>wx.removeStorage({key:`_cache_${t}`}),Er=()=>{wx.getStorageInfoSync().keys.forEach(t=>{if(t.startsWith("_cache_")){const e=wx.getStorageSync(t);(!e||e.expired!==R&&new Date().getTime()>=e.expired)&&wx.removeStorageSync(t)}})},_r=()=>wx.getStorageInfo().then(({keys:t})=>Promise.all(t.filter(e=>e.startsWith("_cache_")).map(e=>wx.getStorage({key:e}).then(({data:r})=>{if(!r||r.expired!==R&&new Date().getTime()>=r.expired)return wx.removeStorage({key:e}).then(()=>{})}))));var V={exports:{}},j={decodeValues:!0,map:!1,silent:!1};function pe(t){return typeof t=="string"&&!!t.trim()}function fe(t,e){var r=t.split(";").filter(pe),n=r.shift(),o=Dr(n),s=o.name,a=o.value;e=e?Object.assign({},j,e):j;try{a=e.decodeValues?decodeURIComponent(a):a}catch(l){console.error("set-cookie-parser encountered an error while decoding a cookie with value '"+a+"'. Set options.decodeValues to false to disable this feature.",l)}var c={name:s,value:a};return r.forEach(function(l){var i=l.split("="),h=i.shift().trimLeft().toLowerCase(),f=i.join("=");h==="expires"?c.expires=new Date(f):h==="max-age"?c.maxAge=parseInt(f,10):h==="secure"?c.secure=!0:h==="httponly"?c.httpOnly=!0:h==="samesite"?c.sameSite=f:c[h]=f}),c}function Dr(t){var e="",r="",n=t.split("=");return n.length>1?(e=n.shift(),r=n.join("=")):r=t,{name:e,value:r}}function tt(t,e){if(e=e?Object.assign({},j,e):j,!t)return e.map?{}:[];if(t.headers)if(typeof t.headers.getSetCookie=="function")t=t.headers.getSetCookie();else if(t.headers["set-cookie"])t=t.headers["set-cookie"];else{var r=t.headers[Object.keys(t.headers).find(function(o){return o.toLowerCase()==="set-cookie"})];!r&&t.headers.cookie&&!e.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),t=r}if(Array.isArray(t)||(t=[t]),e=e?Object.assign({},j,e):j,e.map){var n={};return t.filter(pe).reduce(function(o,s){var a=fe(s,e);return o[a.name]=a,o},n)}else return t.filter(pe).map(function(o){return fe(o,e)})}function Rr(t){if(Array.isArray(t))return t;if(typeof t!="string")return[];var e=[],r=0,n,o,s,a,c;function l(){for(;r<t.length&&/\s/.test(t.charAt(r));)r+=1;return r<t.length}function i(){return o=t.charAt(r),o!=="="&&o!==";"&&o!==","}for(;r<t.length;){for(n=r,c=!1;l();)if(o=t.charAt(r),o===","){for(s=r,r+=1,l(),a=r;r<t.length&&i();)r+=1;r<t.length&&t.charAt(r)==="="?(c=!0,r=a,e.push(t.substring(n,s)),n=r):r=s+1}else r+=1;(!c||r>=t.length)&&e.push(t.substring(n,t.length))}return e}V.exports=tt;var Mr=V.exports.parse=tt;V.exports.parseString=fe;var rt=V.exports.splitCookiesString=Rr,Tr=Object.defineProperty,Lr=Object.defineProperties,Ur=Object.getOwnPropertyDescriptors,nt=Object.getOwnPropertySymbols,Ir=Object.prototype.hasOwnProperty,Fr=Object.prototype.propertyIsEnumerable,ot=(t,e,r)=>e in t?Tr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,qr=(t,e)=>{for(var r in e||(e={}))Ir.call(e,r)&&ot(t,r,e[r]);if(nt)for(var r of nt(e))Fr.call(e,r)&&ot(t,r,e[r]);return t},Nr=(t,e)=>Lr(t,Ur(e));const de=(t="")=>t.replace(/^(\.*)?(?=\S)/gi,"."),K=(t="")=>{if(!t)return[];t=t.replace(/^\.+/gi,"");const e=t.split(".").map(r=>[".",t.slice(t.indexOf(r))].join(""));return[t].concat(e)},ge=t=>t.replace(/^https?:\/\//,"").split("/").shift().replace(/:\d+$/,""),st=t=>{const e=ge(t),r=t.split(e)[1].replace(/^:\d+/,"")||"/";return{domain:e,path:r}},$e=t=>{const{domain:e="",path:r="/"}=typeof t=="object"?t:typeof t=="string"?st(t):{};return{domain:e,path:r}},ye=(t,e)=>Mr(rt(t),{decodeValues:!1}).map(r=>new X(Nr(qr({},r),{domain:de(r.domain)||e})));class X{constructor(e){this.expires="session",this.name=e.name||"",this.value=e.value||"",this.domain=e.domain||"",this.path=e.path||"/",this.httpOnly=!!e.httpOnly,this.expires=Number.isInteger(e.maxAge)?e.maxAge>0?new Date(new Date().getTime()+e.maxAge*1e3):"outdate":e.expires?new Date(e.expires):"session"}isExpired(){return this.expires==="outdate"||this.expires instanceof Date&&new Date>this.expires}isPersistence(){return this.expires!=="session"}isDomainMatched(e){return K(e).includes(this.domain)}isPathMatched(e){return e.startsWith(this.path)||this.path.replace(/\/$/,"")===e}toString(){return`${this.name}=${this.value}`}toJSON(){const e={name:this.name,value:this.value,domain:this.domain};return this.path!=="/"&&(e.path=this.path),this.httpOnly&&(e.httpOnly=this.httpOnly),this.expires instanceof Date&&(e.expires=this.expires),e}}for(var at="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Hr=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),Y=0;Y<at.length;Y++)Hr[at.charCodeAt(Y)]=Y;const me=typeof qq=="object",zr=typeof wx=="object"&&!me,C=me||zr;var it;const w=C?((it=wx.getRealtimeLogManager)==null?void 0:it.call(wx))||wx.getLogManager({level:1}):console,we=C&&typeof wx.getRealtimeLogManager=="function",Br=(...t)=>{wx.env.DEBUG&&(we?w.info("debug",...t):w.debug(...t))},Qr=(...t)=>{w.info(...t),w!==console&&console.info(...t)},Wr=(...t)=>{w.warn(...t),w!==console&&console.warn(...t)},Jr=(...t)=>{we?w.error(...t):w.warn("error",...t),w!==console&&console.error(...t)},Gr=t=>{we&&w.setFilterMsg(t)};var ve=Object.freeze({__proto__:null,debug:Br,error:Jr,filter:Gr,info:Qr,warn:Wr});const Vr=/[^a-z0-9\-#$%&'*+.^_`|~]/i,ct=`
2
+ \r `,Kr=new RegExp(`(^[${ct}]|$[${ct}])`,"g"),M=t=>{if(typeof t!="string"||t.length===0||t.length>128)return!1;for(let e=0;e<t.length;e++){const r=t.charCodeAt(e);if(r>127||r===32)return!1}return!0},T=t=>{if(Vr.test(t)||t.trim()==="")throw new TypeError("Invalid character in header field name");return t.trim().toLowerCase()},lt=t=>{if(typeof t!="string"||t.trim()!==t)return!1;for(let e=0;e<t.length;e++){const r=t.charCodeAt(e);if(r===0||r===10||r===13)return!1}return!0},be=t=>t.replace(Kr,"");class L{constructor(e){this.headers={},this.headerNames=new Map,e instanceof L?e.forEach((r,n)=>{this.append(n,r)},this):Array.isArray(e)?e.forEach(([r,n])=>{this.append(r,Array.isArray(n)?n.join(", "):n)}):e&&Object.getOwnPropertyNames(e).forEach(r=>{const n=e[r];this.append(r,Array.isArray(n)?n.join(", "):n)})}append(e,r){if(!M(e)||!lt(r))return;const n=T(e),o=be(r),s=this.has(n)?`${this.get(n)}, ${o}`:o;this.set(e,s)}delete(e){if(!M(e)||!this.has(e))return;const r=T(e);delete this.headers[r],this.headerNames.delete(r)}get(e){var r;if(!M(e))throw TypeError(`Invalid header name "${e}"`);return(r=this.headers[T(e)])!=null?r:null}getSetCookie(){const e=this.get("set-cookie");return e===null?[]:e===""?[""]:rt(e)}has(e){if(!M(e))throw new TypeError(`Invalid header name "${e}"`);return this.headers.hasOwnProperty(T(e))}set(e,r){if(!M(e)||!lt(r))return;const n=T(e),o=be(r);this.headers[n]=be(o),this.headerNames.set(n,e)}forEach(e,r){for(const[n,o]of this.entries())e.call(r,o,n,this)}*keys(){for(const[e]of this.entries())yield e}*values(){for(const[,e]of this.entries())yield e}*entries(){const e=Object.keys(this.headers).sort((r,n)=>r.localeCompare(n));for(const r of e)if(r==="set-cookie")for(const n of this.getSetCookie())yield[r,n];else yield[r,this.get(r)]}toObject(){return this.headers}[Symbol.iterator](){return this.entries()}}class Z{constructor(e="__cookie_store__"){this.key=e,this.store=new Map,this.init()}get(e,r){const{domain:n,path:o}=$e(r),s=K(n);for(const[a,c]of this.store.entries()){if(n&&!s.includes(a))continue;const l=c.get(e);if(l&&l.isPathMatched(o)&&!l.isExpired())return l}return null}getValue(e,r){var n;return(n=this.get(e,r))==null?void 0:n.value}has(e,r){return!!this.get(e,r)}set(e){const{name:r,domain:n}=e,o=new X(e),s=this.store.get(n)||new Map;return s.set(r,o),this.store.set(n,s),this.save(),o}delete(e,r=""){if(r){const n=this.store.get(r);n&&n.delete(e);const o=this.store.get(de(r));o&&o.delete(e)}else for(const n of this.store.values())n.delete(e);this.save()}list(){const e={};for(const r of this.store.keys())e[r]=this.getCookiesMap(r);return e}getCookies(e){const{domain:r,path:n}=$e(e),o=K(r),s=[];for(const[a,c]of this.store.entries())if(!(r&&o.indexOf(a)<0))for(const l of c.values())l.isPathMatched(n)&&!l.isExpired()&&s.push(l);return s}getAllCookies(){const e=[];for(const r of this.store.values())for(const n of r.values())n.isExpired()||e.push(n);return e}getCookiesMap(e){return Object.fromEntries(this.getCookies(e).map(({name:r,value:n})=>[r,n]))}apply(e){e.forEach(r=>{let n=this.store.get(r.domain);n||(n=new Map,this.store.set(r.domain,n)),n.set(r.name,r)}),this.save()}clear(e=""){if(e){const r=this.store.get(e);r&&r.clear()}else this.store.clear();this.save()}applyHeader(e,r){if(C){const n=e["Set-Cookie"]||e["set-cookie"]||"",o=Array.isArray(n)?n.filter(Boolean).join(","):me?n.replace(/;((?!Path|Expires|Max-Age|Domain|Path|SameSite)[^\s;]*?)=/gi,",$1="):n;return this.apply(ye(o,ge(r)))}return this.apply(ye(e.getSetCookie().join(","),r))}applyResponse(e,r){return this.applyHeader(C?e.header:e.headers,r)}getHeader(e){return this.getCookies(e).map(r=>r.toString()).join("; ")}init(){try{const e=C?wx.getStorageSync(this.key)||[]:[];this.apply(e.map(r=>new X(r)))}catch(e){console.warn("Error applying cookie storage",e);return}}save(){try{const e=[];for(const r of this.store.values())for(const n of r.values())n.isExpired()?r.delete(n.name):n.isPersistence()&&e.push(n);C&&wx.setStorageSync(this.key,e)}catch(e){console.warn("Error setting cookies",e)}}}const Xr={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"},ht=t=>encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,e=>Xr[e]),ut=t=>decodeURIComponent(t.replace(/\+/g," "));class U{constructor(e){if(!e)this.params=new Map;else if(e instanceof U)this.params=new Map(e.params);else if(this.params=new Map,typeof e=="string")(e.indexOf("?")===0?e.slice(1):e).split("&").map(r=>{var n;const[,o,s]=(n=/^([^=]+)=?(.*?)$/.exec(r))!=null?n:[];o&&this.append(ut(o),ut(s))});else if(Symbol.iterator in e)for(const r of e){if(r.length!==2)throw new TypeError("Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements");const[n,o]=r;this.append(n,o)}else for(const r of Object.keys(e)){const n=e[r];this.params.set(r,[String(n)])}}get size(){return Array.from(this.params.values()).flat().length}append(e,r){this.params.set(e,this.getAll(e).concat(String(r)))}delete(e){this.params.delete(e)}entries(){const e=new Set;return this.forEach((r,n)=>{e.add([n,r])}),e.values()}forEach(e,r){this.params.forEach((n,o)=>n.forEach(s=>e.bind(r)(s,o,this)))}get(e){var r,n;return(n=(r=this.getAll(e))==null?void 0:r[0])!=null?n:null}getAll(e){return this.has(e)?this.params.get(e).slice(0):[]}has(e){return this.params.has(e)}keys(){return this.params.keys()}set(e,r){this.params.set(e,[r!=null?r:""])}sort(){this.params=new Map(Array.from(this.params.entries()).sort(([e],[r])=>e.localeCompare(r)))}toString(){const e=[];for(const[r,n]of this.params){const o=ht(r);for(let s=0;s<n.length;s++)e.push(`${o}=${ht(n[s])}`)}return e.join("&")}values(){const e=new Set;return this.forEach(r=>{e.add(r)}),e.values()}[Symbol.iterator](){return this.entries()}}var Yr=Object.defineProperty,ee=Object.getOwnPropertySymbols,pt=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable,dt=(t,e,r)=>e in t?Yr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,xe=(t,e)=>{for(var r in e||(e={}))pt.call(e,r)&&dt(t,r,e[r]);if(ee)for(var r of ee(e))ft.call(e,r)&&dt(t,r,e[r]);return t},gt=(t,e)=>{var r={};for(var n in t)pt.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&ee)for(var n of ee(t))e.indexOf(n)<0&&ft.call(t,n)&&(r[n]=t[n]);return r};const Se=new Z("__request_cookie__"),$t=(t,e={})=>{var r=e,{method:n="GET",headers:o,body:s,cookieScope:a=t,cookieStore:c=Se}=r,l=gt(r,["method","headers","body","cookieScope","cookieStore"]);return new Promise((i,h)=>{const f=c.getHeader(a),g=new L(o);g.append("Cookie",f);const O=s instanceof U?s.toString():s!=null?s:void 0;g.has("Content-Type")||(s instanceof U?g.set("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"):s instanceof ArrayBuffer?g.set("Content-Type","application/octet-stream; charset=UTF-8"):Object.prototype.toString.call(s)==="[object Object]"&&g.set("Content-Type","application/json; charset=UTF-8")),ve.debug(`Requesting ${t}:
3
3
  Cookie: ${f}
4
4
  Options:
5
- `,l),wx.request($e({url:e,method:n.toUpperCase(),header:b.toObject(),data:A,enableHttp2:!0,success:({data:x,statusCode:I,header:at})=>(de.debug(`Request ends with ${I}`,x),i({data:x,headers:new M(at),status:I})),fail:({errMsg:x,errno:I})=>{de.warn(`Request ${e} failed: ${x}`),h({errMsg:x,errno:I})}},l)).onHeadersReceived(({header:x})=>{c.applyHeader(x,a)})})},Hr=(e={})=>{var t=e,{cookieStore:r,server:n,responseHandler:o=i=>i,errorHandler:s}=t,a=ot(t,["cookieStore","server","responseHandler","errorHandler"]);const c=n==null?void 0:n.replace(/\/$/g,""),l=r instanceof X?r:typeof r=="string"?new X(r):me;return{cookieStore:l,fetch:(i,h={})=>{if(i.startsWith("/")&&!c)throw{message:"No server provided",errno:-1};const f=i.startsWith("/")?`${c}${i}`:i.match(/^[a-z][a-z-]*:\/\//)?i:`https://${i}`,b=$e($e({cookieStore:l},a),h);return st(f,b).then(A=>o(A,i,b)).catch(A=>{throw s?s(A,i,b):A})}}};exports.$App=St,exports.$Component=Jt,exports.$Config=_t,exports.$Page=Qt,exports.Cookie=V,exports.CookieStore=X,exports.Emitter=U,exports.Headers=M,exports.Queue=ye,exports.URLSearchParams=L,exports.check=wr,exports.checkAsync=vr,exports.createMpFetch=Hr,exports.decodeBase64=ct,exports.dirname=B,exports.emitter=y,exports.encodeBase64=it,exports.exists=ae,exports.fetchCookieStore=me,exports.funcQueue=ut,exports.get=gr,exports.getAsync=$r,exports.getCookieOptions=pe,exports.getCookieScopeDomain=Q,exports.getDomain=ue,exports.isDir=ze,exports.isFile=tr,exports.lock=lt,exports.logger=$,exports.ls=nr,exports.mkdir=W,exports.mpFetch=st,exports.normalizeDomain=he,exports.once=ht,exports.parseCookieHeader=Ve,exports.parseUrl=Qe,exports.put=ur,exports.query=ve,exports.readFile=or,exports.readJSON=sr,exports.remove=mr,exports.removeAsync=yr,exports.rm=rr,exports.saveFile=ar,exports.saveOnlineFile=ir,exports.set=fr,exports.setAsync=dr,exports.storage=G,exports.take=pr,exports.type=wt,exports.unzip=hr,exports.wrapFunction=g,exports.writeFile=cr,exports.writeJSON=lr;
5
+ `,l),wx.request(xe({url:t,method:n.toUpperCase(),header:g.toObject(),data:O,enableHttp2:!0,success:({data:P,statusCode:I,header:E})=>(ve.debug(`Request ends with ${I}`,P),c.applyHeader(E,a),i({data:P,headers:new L(E),status:I})),fail:({errMsg:P,errno:I})=>{const E=new Error(P);ve.warn(`Request ${t} failed: ${P}`),E.errno=I,h(E)}},l))})},Zr=(t={})=>{var e=t,{cookieStore:r,server:n,responseHandler:o=i=>i,errorHandler:s}=e,a=gt(e,["cookieStore","server","responseHandler","errorHandler"]);const c=n==null?void 0:n.replace(/\/$/g,""),l=r instanceof Z?r:typeof r=="string"?new Z(r):Se;return{cookieStore:l,request:(i,h={})=>{if(i.startsWith("/")&&!c)throw new Error("No server provided");const f=i.startsWith("/")?`${c}${i}`:i.match(/^[a-z][a-z-]*:\/\//)?i:`https://${i}`,g=xe(xe({cookieStore:l},a),h);return $t(f,g).then(O=>o(O,i,g)).catch(O=>{throw s?s(O,i,g):O})}}};exports.$App=Rt,exports.$Component=nr,exports.$Config=qt,exports.$Page=or,exports.Cookie=X,exports.CookieStore=Z,exports.Emitter=q,exports.Headers=L,exports.Queue=Ce,exports.URLSearchParams=U,exports.check=Er,exports.checkAsync=_r,exports.createRequest=Zr,exports.decodeBase64=mt,exports.dirname=W,exports.emitter=x,exports.encodeBase64=yt,exports.exists=he,exports.funcQueue=Pt,exports.get=Ar,exports.getAsync=jr,exports.getCookieOptions=$e,exports.getCookieScopeDomain=K,exports.getDomain=ge,exports.isDir=Ze,exports.isFile=pr,exports.isMp=re,exports.isQQ=te,exports.isWx=ke,exports.lock=jt,exports.logger=v,exports.ls=dr,exports.mkdir=J,exports.normalizeDomain=de,exports.once=Ct,exports.parseCookieHeader=ye,exports.parseUrl=st,exports.put=xr,exports.query=je,exports.readFile=gr,exports.readJSON=$r,exports.remove=Cr,exports.removeAsync=Pr,exports.request=$t,exports.requestCookieStore=Se,exports.rm=fr,exports.saveFile=yr,exports.saveOnlineFile=mr,exports.set=kr,exports.setAsync=Or,exports.storage=G,exports.take=Sr,exports.type=At,exports.unzip=br,exports.wrapFunction=y,exports.writeFile=wr,exports.writeJSON=vr;
6
6
  //# sourceMappingURL=index.js.map