@mptool/all 0.6.0-beta.8 → 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;
@@ -1103,12 +1107,10 @@ declare class Cookie {
1103
1107
  toJSON(): CookieType;
1104
1108
  }
1105
1109
 
1106
- declare const NORMALIZED_HEADERS: unique symbol;
1107
- declare const RAW_HEADER_NAMES: unique symbol;
1108
1110
  type HeadersInit = [string, string][] | Record<string, string> | Headers;
1109
1111
  declare class Headers {
1110
- private [NORMALIZED_HEADERS];
1111
- private [RAW_HEADER_NAMES];
1112
+ private headers;
1113
+ private headerNames;
1112
1114
  constructor(init?: HeadersInit);
1113
1115
  /**
1114
1116
  * Appends a new value onto an existing header inside a `Headers` object, or adds the header if it does not already exist.
@@ -1144,6 +1146,7 @@ declare class Headers {
1144
1146
  keys(): IterableIterator<string>;
1145
1147
  values(): IterableIterator<string>;
1146
1148
  entries(): IterableIterator<[string, string]>;
1149
+ toObject(): Record<string, string>;
1147
1150
  [Symbol.iterator](): IterableIterator<[string, string]>;
1148
1151
  }
1149
1152
 
@@ -1158,11 +1161,11 @@ interface UrlInfo {
1158
1161
  }
1159
1162
  declare const getDomain: (domainOrURL: string) => string;
1160
1163
  declare const parseUrl: (url: string) => UrlInfo;
1161
- type CookieStoreOptions = string | {
1164
+ type CookieOptions = string | {
1162
1165
  domain?: string;
1163
1166
  path?: string;
1164
1167
  };
1165
- declare const getCookieOptions: (options?: CookieStoreOptions) => UrlInfo;
1168
+ declare const getCookieOptions: (options: CookieOptions) => UrlInfo;
1166
1169
  declare const parseCookieHeader: (setCookieHeader: string, domain: string) => Cookie[];
1167
1170
 
1168
1171
  type CookieMap = Map<string, Cookie>;
@@ -1193,7 +1196,7 @@ declare class CookieStore {
1193
1196
  * @param options Cookie 选项
1194
1197
  * @return cookie 对象
1195
1198
  */
1196
- get(name: string, options: CookieStoreOptions): Cookie | null;
1199
+ get(name: string, options: CookieOptions): Cookie | null;
1197
1200
  /**
1198
1201
  * 获取 Cookie 值
1199
1202
  *
@@ -1201,7 +1204,7 @@ declare class CookieStore {
1201
1204
  * @param options Cookie 选项
1202
1205
  * @return Cookie 值
1203
1206
  */
1204
- getValue(name: string, options: CookieStoreOptions): string | undefined;
1207
+ getValue(name: string, options: CookieOptions): string | undefined;
1205
1208
  /**
1206
1209
  * 是否有特定的 Cookie
1207
1210
  *
@@ -1209,7 +1212,7 @@ declare class CookieStore {
1209
1212
  * @param options Cookie 选项
1210
1213
  * @return 是否存在
1211
1214
  */
1212
- has(name: string, options: CookieStoreOptions): boolean;
1215
+ has(name: string, options: CookieOptions): boolean;
1213
1216
  /**
1214
1217
  * 设置 cookie
1215
1218
  */
@@ -1231,7 +1234,7 @@ declare class CookieStore {
1231
1234
  * @param options Cookie 选项
1232
1235
  * @return Cookie 对象数组
1233
1236
  */
1234
- getCookies(options?: CookieStoreOptions): Cookie[];
1237
+ getCookies(options: CookieOptions): Cookie[];
1235
1238
  /**
1236
1239
  * 获取所有 cookies 对象
1237
1240
  *
@@ -1243,7 +1246,7 @@ declare class CookieStore {
1243
1246
  *
1244
1247
  * @return 键值 Map
1245
1248
  */
1246
- getCookiesMap(options: CookieStoreOptions): Record<string, string>;
1249
+ getCookiesMap(options: CookieOptions): Record<string, string>;
1247
1250
  /**
1248
1251
  * 应用 Cookies
1249
1252
  *
@@ -1262,21 +1265,21 @@ declare class CookieStore {
1262
1265
  * @param header 小程序 response header
1263
1266
  * @param domainOrURL Url 或域名
1264
1267
  */
1265
- applyHeader(header: WechatMiniprogram.IAnyObject, domainOrURL: string): void;
1268
+ applyHeader(header: unknown, domainOrURL: string): void;
1266
1269
  /**
1267
1270
  * 应用响应 cookies
1268
1271
  *
1269
1272
  * @param response 小程序 response
1270
1273
  * @param domainOrURL Url 或域名
1271
1274
  */
1272
- applyResponse(response: WechatMiniprogram.RequestSuccessCallbackResult, domainOrURL: string): void;
1275
+ applyResponse(response: unknown, domainOrURL: string): void;
1273
1276
  /**
1274
1277
  * 获取 request cookie header
1275
1278
  *
1276
1279
  * @param options Cookie 选项
1277
1280
  * @return request cookie header
1278
1281
  */
1279
- getHeader(options: CookieStoreOptions): string;
1282
+ getHeader(options: CookieOptions): string;
1280
1283
  /**
1281
1284
  * 从 Storage 读取 cookies
1282
1285
  */
@@ -1407,9 +1410,9 @@ declare class URLSearchParams {
1407
1410
  [Symbol.iterator](): IterableIterator<[string, string]>;
1408
1411
  }
1409
1412
 
1410
- declare const fetchCookieStore: CookieStore;
1411
- type FetchBody = WechatMiniprogram.IAnyObject | ArrayBuffer | URLSearchParams | string | null;
1412
- 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"> {
1413
1416
  /**
1414
1417
  * 请求方法
1415
1418
  */
@@ -1421,7 +1424,7 @@ interface FetchOptions<T extends Record<never, never> | unknown[] | string | Arr
1421
1424
  /**
1422
1425
  * 请求主体
1423
1426
  */
1424
- body?: FetchBody;
1427
+ body?: RequestBody;
1425
1428
  /**
1426
1429
  * Cookie 作用域
1427
1430
  */
@@ -1431,7 +1434,7 @@ interface FetchOptions<T extends Record<never, never> | unknown[] | string | Arr
1431
1434
  */
1432
1435
  cookieStore?: CookieStore;
1433
1436
  }
1434
- 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>> {
1435
1438
  /** Status Code */
1436
1439
  status: number;
1437
1440
  /** Response headers */
@@ -1439,15 +1442,13 @@ interface FetchResponse<T extends Record<never, never> | unknown[] | string | Ar
1439
1442
  /** Response data */
1440
1443
  data: T;
1441
1444
  }
1442
- type FetchType = <T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>>(url: string, options?: FetchOptions<T>) => Promise<FetchResponse<T>>;
1443
- interface FetchErrorInfo {
1444
- /** 错误信息 */
1445
- errMsg: string;
1445
+ interface RequestError extends Error {
1446
1446
  /** 错误码 */
1447
- errno: number;
1447
+ errno?: number;
1448
1448
  }
1449
- 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>>;
1450
- 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"> {
1451
1452
  /**
1452
1453
  * 访问的默认域名
1453
1454
  */
@@ -1459,34 +1460,41 @@ interface FetchInitOptions extends Pick<WechatMiniprogram.RequestOption, "redire
1459
1460
  /**
1460
1461
  * 响应处理器
1461
1462
  *
1462
- * @param response 响应
1463
- * @returns 数据
1464
- * @throws {Error} 自定义的错误数据
1463
+ * @throws {RequestError} 自定义的错误数据
1465
1464
  */
1466
1465
  responseHandler?: <T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>>(
1467
1466
  /** 响应数据 */
1468
- response: FetchResponse<T>,
1467
+ response: RequestResponse<T>,
1469
1468
  /** 请求地址 */
1470
1469
  url: string,
1471
1470
  /** 请求配置 */
1472
- options: FetchOptions<T>) => FetchResponse<T>;
1471
+ options: RequestOptions<T>) => RequestResponse<T>;
1472
+ /**
1473
+ * 错误处理器
1474
+ *
1475
+ * @throws {RequestError} 自定义的错误数据
1476
+ */
1473
1477
  errorHandler?: <T extends Record<never, never> | unknown[] | string | ArrayBuffer = Record<string, any>>(
1474
1478
  /** 错误信息 */
1475
- errInfo: FetchErrorInfo,
1479
+ error: RequestError,
1476
1480
  /** 请求地址 */
1477
1481
  url: string,
1478
1482
  /** 请求配置 */
1479
- options: FetchOptions<T>) => FetchResponse<T> | never;
1483
+ options: RequestOptions<T>) => RequestResponse<T> | never;
1480
1484
  }
1481
- interface FetchFactory {
1485
+ interface RequestFactory {
1486
+ /**
1487
+ * Cookie 存储
1488
+ */
1482
1489
  cookieStore: CookieStore;
1483
- fetch: FetchType;
1490
+ /**
1491
+ * 请求方法
1492
+ */
1493
+ request: RequestType;
1484
1494
  }
1485
1495
  /**
1486
- *
1487
- * @param options fetch 配置选项
1488
- * @returns fetch 函数
1496
+ * @param options request 配置选项
1489
1497
  */
1490
- declare const createMpFetch: ({ cookieStore, server, responseHandler, errorHandler, ...defaultOptions }?: FetchInitOptions) => FetchFactory;
1498
+ declare const createRequest: ({ cookieStore, server, responseHandler, errorHandler, ...defaultOptions }?: RequestInitOptions) => RequestFactory;
1491
1499
 
1492
- 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+/",_=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),U=0;U<j.length;U++)_[j.charCodeAt(U)]=U;var pt=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},ft=function(e){var t=e.length*.75,r=e.length,n,o=0,s,i,c,l;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);var a=new ArrayBuffer(t),h=new Uint8Array(a);for(n=0;n<r;n+=4)s=_[e.charCodeAt(n)],i=_[e.charCodeAt(n+1)],c=_[e.charCodeAt(n+2)],l=_[e.charCodeAt(n+3)],h[o++]=s<<2|i>>4,h[o++]=(i&15)<<4|c>>2,h[o++]=(c&3)<<6|l&63;return a};function g(e,t){return function(...r){if(t.apply(this,r),e)return e.apply(this,r)}}const dt=(e,t)=>{let r;return function(...n){if(!r)return r=!0,e.apply(t||this,[()=>{r=!1},...n])}},gt=(e,t)=>{let r;return function(...n){if(!(r||!e))return r=!0,e.apply(t||null,n)}};let ve=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 $t=(e,t=1)=>{const r=new ve(t);return function(...n){r.add(e,this,...n)}};function F(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}),ee=!!wx.getRealtimeLogManager,mt=(...e)=>{wx.env.DEBUG&&(ee?S.info("debug",...e):S.debug(...e))},yt=(...e)=>{console.info(...e),S.info(...e)},wt=(...e)=>{console.warn(...e),S.warn(...e)},vt=(...e)=>{console.error(...e),ee?S.error(...e):S.warn("error",...e)},bt=e=>{ee&&S.setFilterMsg(e)};var $=Object.freeze({__proto__:null,debug:mt,error:vt,filter:bt,info:yt,warn:wt});const xt=(e="",t="&")=>{const r={},n=e?e.split(t):void 0;return n&&n.length>0&&n.forEach(o=>{const[s,i]=o.split("=");r[s]=i}),r},be=(e={},t="&",r=!1)=>Object.keys(e).map(n=>{const o=e[n];return`${n}=${r?o:encodeURIComponent(o)}`}).join(t),St=(e,t,r=!1)=>{const n=be(t,"&",r);return n?`${e}${/[?&]$/u.test(e)?"":e.indexOf("?")===-1?"?":"&"}${n}`:e};var xe=Object.freeze({__proto__:null,join:St,parse:xt,stringify:be});const kt=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},te="a",Se="al",ke="n",Oe="p",Ae="r",je="u",m=F(),N=F(),y=F(),w={launch:!1,lOpt:{},hide:0},Ot=e=>{w.launch=!0,w.lOpt=e,m.emit(Se,e)},At=()=>{w.hide&&(m.emit(te,new Date().getTime()-w.hide),w.hide=0)},jt=()=>{w.hide=new Date().getTime()},Ct=e=>{e.onLaunch=g(e.onLaunch,Ot),e.onShow=g(e.onShow,At),e.onHide=g(e.onHide,jt),e.onAwake&&(m.on(te,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 Pt=Object.defineProperty,_t=Object.defineProperties,Et=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,_e=(e,t,r)=>t in e?Pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Dt=(e,t)=>{for(var r in t||(t={}))Ce.call(t,r)&&_e(e,r,t[r]);if(H)for(var r of H(t))Pe.call(t,r)&&_e(e,r,t[r]);return e},Rt=(e,t)=>_t(e,Et(t)),Mt=(e,t)=>{var r={};for(var n in e)Ce.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&H)for(var n of H(e))t.indexOf(n)<0&&Pe.call(e,n)&&(r[n]=e[n]);return r};let Ee;const Lt=e=>{const t=e,{defaultRoute:r,routes:n=[]}=t,o=Mt(t,["defaultRoute","routes"]);let s={},i={};const c=(a,h)=>{const f=h.replace(/\$name/g,a);s[a]=f,i[f]=a};Array.isArray(n)?n.forEach(([a,h])=>{typeof a=="string"?c(a,h):a.forEach(f=>c(f,h))}):typeof n=="object"&&(s=n,i=Object.fromEntries(Object.keys(n).map(a=>[n[a],a])));const l=new RegExp(`^${r.replace(/^\/?/,"/?").replace(/[.]/g,"\\.").replace("$name","([\\w\\-]+)").replace(/\$name/g,"[\\w\\-]+")}`);Ee=Rt(Dt({},o),{getRoute:a=>s[a]||r.replace(/\$name/g,a),getName:a=>{var h;return i[a]||((h=l.exec(a))==null?void 0:h[1])||"Unknown"}})},v=()=>Ee||$.error("$Config is not called"),re={},De=e=>re[e],It=(e,t)=>{re[e]=t},Tt=e=>{delete re[e]};let E=!0;const Re=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:xe.parse(n)}};function z(e){return t=>{if(E){E=!1;const{name:r,url:n,query:o}=Re(t);return Promise.race([N.emitAsync(`${ke}:${r}`,o),new Promise(s=>{setTimeout(()=>s(),v().maxDelay||200)})]).then(()=>(E=!0,wx[e]({url:n})))}}}m.on(Ae,()=>{setTimeout(()=>{E=!0},v().minInterval||100)}),m.on(je,()=>{E=!0});const Me=z("navigateTo"),Le=z("redirectTo"),Ie=z("switchTab"),ne=z("reLaunch");function q(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 Ut=q(Me),Ft=q(Le),Nt=q(Ie),Ht=q(ne),Te=(e=1)=>{const{home:t}=v();return getCurrentPages().length<=e&&t?ne(t):wx.navigateBack({delta:e})},zt=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(Te(Number(n))).then(()=>{this&&r&&typeof this[r]=="function"&&this[r](e)})}},qt=()=>getCurrentPages().slice(0).pop(),Bt=e=>{const{name:t,query:r}=Re(e);N.emit(`${Oe}:${t}`,r)};function Ue(e){const{args:t,event:r,id:n}=e.detail;switch(r){case"_$attached":{const o=De(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 Fe(e){e.$=Ue,e.$refs={},e.$on=y.on,e.$off=y.off,e.$emit=y.emit,e.$emitAsync=y.emitAsync,e.$go=Me,e.$redirect=Le,e.$switch=Ie,e.$reLaunch=ne,e.$back=Te,e.$preload=Bt,e.$currentPage=qt,e.$getName=v().getName,e.$getPath=v().getRoute,e.$bindGo=Ut,e.$bindRedirect=Ft,e.$bindSwitch=Nt,e.$bindRelaunch=Ht,e.$bindBack=zt}var Wt=Object.defineProperty,Gt=Object.defineProperties,Jt=Object.getOwnPropertyDescriptors,Ne=Object.getOwnPropertySymbols,Qt=Object.prototype.hasOwnProperty,Vt=Object.prototype.propertyIsEnumerable,He=(e,t,r)=>t in e?Wt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,oe=(e,t)=>{for(var r in t||(t={}))Qt.call(t,r)&&He(e,r,t[r]);if(Ne)for(var r of Ne(t))Vt.call(t,r)&&He(e,r,t[r]);return e},se=(e,t)=>Gt(e,Jt(t));let Kt=0;const Xt=(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}}}),se(oe({},t),{ref:{type:String,value:""}})},Yt=e=>{const{extendComponent:t,injectComponent:r}=v();return t&&t(e),e.lifetimes||(e.lifetimes={}),e.lifetimes.created=g(e.lifetimes.created,function(){Fe(this),r&&r(e)}),e.lifetimes.attached=g(e.lifetimes.attached,function(){const n=Kt+=1;this.$id=n,It(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;Tt(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=se(oe({},e.methods),{$call(n,...o){$.debug(`Component ${this.$id} call ${n}:`,o),this.triggerEvent("ing",{id:this.$id,event:n,args:o})},$getRef:De,_$attached(n){this.$root=n.$root||n,this.$parent=n},$:Ue}),e.observers=se(oe({},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=Xt(e.properties),Component(e)};let ze=!1;const Zt=(e,t)=>{const{extendPage:r,injectPage:n}=v(),o=(i,c)=>$.debug(`Page ${e}: ${i} has been invoked`,c||""),s=i=>$.debug(`Page ${e}: registered ${i}`);if(r&&r(e,t),t.$name=e,t.$state={firstOpen:!1},t.onAppLaunch){if(w.launch){const{lOpt:i}=w;o("onAppLaunch"),t.onAppLaunch(i)}else m.on(Se,i=>{o("onAppLaunch"),t.onAppLaunch(i)});s("onAppLaunch")}t.onNavigate&&(N.on(`${ke}:${e}`,i=>(o("onNavigate",i),t.onNavigate(i))),s("onNavigate")),t.onPreload&&(N.on(`${Oe}:${e}`,i=>(o("onPreload",i),t.onPreload(i))),s("onPreload")),t.onLoad=g(t.onLoad,()=>{t.onAwake&&(m.on(te,i=>{o("onAwake"),t.onAwake(i)}),s("onAwake")),ze||(ze=!0,t.$state.firstOpen=!0)}),t.onReady=g(t.onReady,()=>m.emit(Ae)),t.onUnload=g(t.onUnload,()=>m.emit(je)),Fe(t),n&&n(e,t),t.onRegister&&(o("onRegister"),t.onRegister()),Page(t),$.debug(`Registered: Page ${e}`)};for(var qe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",er=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),B=0;B<qe.length;B++)er[qe.charCodeAt(B)]=B;const k=wx.getRealtimeLogManager?wx.getRealtimeLogManager():wx.getLogManager({level:1}),ie=!!wx.getRealtimeLogManager,tr=(...e)=>{wx.env.DEBUG&&(ie?k.info("debug",...e):k.debug(...e))},rr=(...e)=>{console.info(...e),k.info(...e)},nr=(...e)=>{console.warn(...e),k.warn(...e)},or=(...e)=>{console.error(...e),ie?k.error(...e):k.warn("error",...e)},sr=e=>{ie&&k.setFilterMsg(e)};var u=Object.freeze({__proto__:null,debug:tr,error:or,filter:sr,info:rr,warn:nr});const d=wx.getFileSystemManager(),p=wx.env.USER_DATA_PATH,W=e=>e.split("/").slice(0,-1).join("/"),ae=e=>{try{return d.statSync(`${p}/${e}`,!1),!0}catch(t){return!1}},ir=e=>ae(e)&&d.statSync(`${p}/${e}`).isFile(),Be=e=>ae(e)&&d.statSync(`${p}/${e}`).isDirectory(),ar=(e,t=Be(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)}},cr=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),[]}},lr=(e,t="utf-8")=>{try{return d.readFileSync(`${p}/${e}`,t)}catch(r){u.warn(`${e} don't exist`);return}},hr=(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},G=(e,t=!0)=>{try{d.mkdirSync(`${p}/${e}`,t)}catch(r){u.debug(`${e} folder already exists`)}},ur=(e,t)=>{try{d.saveFileSync(e,`${p}/${t}`)}catch(r){u.error(`Saving to ${t} failed:`,r)}},pr=(e,t)=>(G(W(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)}})})),fr=(e,t,r=t instanceof ArrayBuffer?"binary":"utf-8")=>{G(W(e)),d.writeFileSync(`${p}/${e}`,t instanceof ArrayBuffer?t:JSON.stringify(t),r)},dr=(e,t,r="utf-8")=>{const n=JSON.stringify(t);G(W(e)),d.writeFileSync(`${p}/${e}.json`,n,r)},gr=(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()}})}),D=new Date().getTime();u.debug(`Current sessionId is ${D}`);const J={},$r=(e,t)=>{J[e]=t},mr=e=>{const t=J[e];return J[e]=void 0,t},ce=(e,t)=>t?t.expired?t.expired===D||new Date().getTime()<t.expired?t.data:(wx.removeStorageSync(`_cache_${e}`),void 0):t.data:void 0,We=(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"?D:r+new Date().getTime());return n},yr=(e,t,r=0)=>{wx.setStorageSync(`_cache_${e}`,We(e,t,r))},wr=(e,t,r=0)=>wx.setStorage({key:`_cache_${e}`,data:We(e,t,r)}).catch(()=>{u.error(`set "${e}" fail`)}),vr=e=>ce(e,wx.getStorageSync(`_cache_${e}`)),br=e=>wx.getStorage({key:`_cache_${e}`}).then(({data:t})=>ce(e,t)).catch(()=>{u.error(`set "${e}" fail`)}),xr=e=>{wx.removeStorageSync(`_cache_${e}`),ce(e,null)},Sr=e=>wx.removeStorage({key:`_cache_${e}`}),kr=()=>{wx.getStorageInfoSync().keys.forEach(e=>{if(e.startsWith("_cache_")){const t=wx.getStorageSync(e);(!t||t.expired!==D&&new Date().getTime()>=t.expired)&&wx.removeStorageSync(e)}})},Or=()=>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!==D&&new Date().getTime()>=r.expired)return wx.removeStorage({key:t}).then(()=>{})}))));var Q={exports:{}},C={decodeValues:!0,map:!1,silent:!1};function le(e){return typeof e=="string"&&!!e.trim()}function he(e,t){var r=e.split(";").filter(le),n=r.shift(),o=Ar(n),s=o.name,i=o.value;t=t?Object.assign({},C,t):C;try{i=t.decodeValues?decodeURIComponent(i):i}catch(l){console.error("set-cookie-parser encountered an error while decoding a cookie with value '"+i+"'. Set options.decodeValues to false to disable this feature.",l)}var c={name:s,value:i};return r.forEach(function(l){var a=l.split("="),h=a.shift().trimLeft().toLowerCase(),f=a.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 Ar(e){var t="",r="",n=e.split("=");return n.length>1?(t=n.shift(),r=n.join("=")):r=e,{name:t,value:r}}function Ge(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(le).reduce(function(o,s){var i=he(s,t);return o[i.name]=i,o},n)}else return e.filter(le).map(function(o){return he(o,t)})}function jr(e){if(Array.isArray(e))return e;if(typeof e!="string")return[];var t=[],r=0,n,o,s,i,c;function l(){for(;r<e.length&&/\s/.test(e.charAt(r));)r+=1;return r<e.length}function a(){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(),i=r;r<e.length&&a();)r+=1;r<e.length&&e.charAt(r)==="="?(c=!0,r=i,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}Q.exports=Ge;var Cr=Q.exports.parse=Ge;Q.exports.parseString=he;var Je=Q.exports.splitCookiesString=jr,Pr=Object.defineProperty,_r=Object.defineProperties,Er=Object.getOwnPropertyDescriptors,Qe=Object.getOwnPropertySymbols,Dr=Object.prototype.hasOwnProperty,Rr=Object.prototype.propertyIsEnumerable,Ve=(e,t,r)=>t in e?Pr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Mr=(e,t)=>{for(var r in t||(t={}))Dr.call(t,r)&&Ve(e,r,t[r]);if(Qe)for(var r of Qe(t))Rr.call(t,r)&&Ve(e,r,t[r]);return e},Lr=(e,t)=>_r(e,Er(t));const ue=(e="")=>e.replace(/^(\.*)?(?=\S)/gi,"."),V=(e="")=>{if(!e)return[];e=e.replace(/^\.+/gi,"");const t=e.split(".").map(r=>[".",e.slice(e.indexOf(r))].join(""));return[e].concat(t)},pe=e=>e.replace(/^https?:\/\//,"").split("/").shift().replace(/:\d+$/,""),Ke=e=>{const t=pe(e),r=e.split(t)[1].replace(/^:\d+/,"")||"/";return{domain:t,path:r}},fe=e=>{const{domain:t="",path:r="/"}=typeof e=="object"?e:typeof e=="string"?Ke(e):{};return{domain:t,path:r}},Xe=(e,t)=>Cr(Je(e),{decodeValues:!1}).map(r=>new K(Lr(Mr({},r),{domain:ue(r.domain)||t})));class K{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 V(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 Ye="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ir=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),X=0;X<Ye.length;X++)Ir[Ye.charCodeAt(X)]=X;const O=wx.getRealtimeLogManager?wx.getRealtimeLogManager():wx.getLogManager({level:1}),de=!!wx.getRealtimeLogManager,Tr=(...e)=>{wx.env.DEBUG&&(de?O.info("debug",...e):O.debug(...e))},Ur=(...e)=>{console.info(...e),O.info(...e)},Fr=(...e)=>{console.warn(...e),O.warn(...e)},Nr=(...e)=>{console.error(...e),de?O.error(...e):O.warn("error",...e)},Hr=e=>{de&&O.setFilterMsg(e)};var ge=Object.freeze({__proto__:null,debug:Tr,error:Nr,filter:Hr,info:Ur,warn:Fr}),Ze,et;const zr=/[^a-z0-9\-#$%&'*+.^_`|~]/i,qr=[127,32,"(",")","<",">","@",",",";",":","\\",'"',"/","[","]","?","=","{","}"],P=Symbol("normalizedHeaders"),$e=Symbol("rawHeaderNames"),tt=", ",rt=[`
2
- `,"\r"," "," "],Br=new RegExp(`(^[${rt.join("")}]|$[${rt.join("")}])`,"g"),Wr=e=>!qr.includes(e),R=e=>{if(typeof e!="string"||e.length===0)return!1;for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r>127||!Wr(r))return!1}return!0},M=e=>{if(zr.test(e)||e.trim()==="")throw new TypeError("Invalid character in header field name");return e.trim().toLowerCase()},nt=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},me=e=>e.replace(Br,"");class L{constructor(t){this[Ze]={},this[et]=new Map,t instanceof L?t.forEach((r,n)=>{this.append(n,r)},this):Array.isArray(t)?t.forEach(([r,n])=>{this.append(r,Array.isArray(n)?n.join(tt):n)}):t&&Object.getOwnPropertyNames(t).forEach(r=>{const n=t[r];this.append(r,Array.isArray(n)?n.join(tt):n)})}append(t,r){if(!R(t)||!nt(r))return;const n=M(t),o=me(r),s=this.has(n)?`${this.get(n)}, ${o}`:o;this.set(t,s)}delete(t){if(!R(t)||!this.has(t))return;const r=M(t);delete this[P][r],this[$e].delete(r)}get(t){var r;if(!R(t))throw TypeError(`Invalid header name "${t}"`);return(r=this[P][M(t)])!=null?r:null}getSetCookie(){const t=this.get("set-cookie");return t===null?[]:t===""?[""]:Je(t)}has(t){if(!R(t))throw new TypeError(`Invalid header name "${t}"`);return this[P].hasOwnProperty(M(t))}set(t,r){if(!R(t)||!nt(r))return;const n=M(t),o=me(r);this[P][n]=me(o),this[$e].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[P]).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)]}[(Ze=P,et=$e,Symbol.iterator)](){return this.entries()}}class Y{constructor(t="__cookie_store__"){this.key=t,this.store=new Map,this.init()}get(t,r){const{domain:n,path:o}=fe(r),s=V(n);for(const[i,c]of this.store.entries()){if(n&&!s.includes(i))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 K(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(ue(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}=fe(t),o=V(r),s=[];for(const[i,c]of this.store.entries())if(!(r&&o.indexOf(i)<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(Xe(o,pe(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 K(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 Gr={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"},ot=e=>encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,t=>Gr[t]),st=e=>decodeURIComponent(e.replace(/\+/g," "));class I{constructor(t){if(!t)this.params=new Map;else if(t instanceof I)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(st(o),st(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=ot(r);for(let s=0;s<n.length;s++)t.push(`${o}=${ot(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 Jr=Object.defineProperty,Z=Object.getOwnPropertySymbols,it=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,ct=(e,t,r)=>t in e?Jr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ye=(e,t)=>{for(var r in t||(t={}))it.call(t,r)&&ct(e,r,t[r]);if(Z)for(var r of Z(t))at.call(t,r)&&ct(e,r,t[r]);return e},lt=(e,t)=>{var r={};for(var n in e)it.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Z)for(var n of Z(e))t.indexOf(n)<0&&at.call(e,n)&&(r[n]=e[n]);return r};const we=new Y("__fetch_cookie__"),ht=(e,t={})=>{var r=t,{method:n="GET",headers:o,body:s,cookieScope:i=e,cookieStore:c=we}=r,l=lt(r,["method","headers","body","cookieScope","cookieStore"]);return new Promise((a,h)=>{const f=c.getHeader(i),b=new L(o);b.append("Cookie",f);const A=s instanceof I?s.toString():s!=null?s:void 0;s instanceof I&&b.set("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),ge.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(ye({url:e,method:n.toUpperCase(),header:b,data:A,enableHttp2:!0,success:({data:x,statusCode:T,header:ut})=>(ge.debug(`Request ends with ${T}`,x),a({data:x,headers:new L(ut),status:T})),fail:({errMsg:x,errno:T})=>{ge.warn(`Request ${e} failed: ${x}`),h({errMsg:x,errno:T})}},l)).onHeadersReceived(({header:x})=>{c.applyHeader(x,i)})})},Qr=(e={})=>{var t=e,{cookieStore:r,server:n,responseHandler:o=a=>a,errorHandler:s}=t,i=lt(t,["cookieStore","server","responseHandler","errorHandler"]);const c=n==null?void 0:n.replace(/\/$/g,""),l=r instanceof Y?r:typeof r=="string"?new Y(r):we;return{cookieStore:l,fetch:(a,h={})=>{if(a.startsWith("/")&&!c)throw{message:"No server provided",errno:-1};const f=a.startsWith("/")?`${c}${a}`:a.match(/^[a-z][a-z-]*:\/\//)?a:`https://${a}`,b=ye(ye({cookieStore:l},i),h);return ht(f,b).then(A=>o(A,a,b)).catch(A=>{throw s?s(A,a,b):A})}}};exports.$App=Ct,exports.$Component=Yt,exports.$Config=Lt,exports.$Page=Zt,exports.Cookie=K,exports.CookieStore=Y,exports.Emitter=F,exports.Headers=L,exports.Queue=ve,exports.URLSearchParams=I,exports.check=kr,exports.checkAsync=Or,exports.createMpFetch=Qr,exports.decodeBase64=ft,exports.dirname=W,exports.emitter=y,exports.encodeBase64=pt,exports.exists=ae,exports.fetchCookieStore=we,exports.funcQueue=$t,exports.get=vr,exports.getAsync=br,exports.getCookieOptions=fe,exports.getCookieScopeDomain=V,exports.getDomain=pe,exports.isDir=Be,exports.isFile=ir,exports.lock=dt,exports.logger=$,exports.ls=cr,exports.mkdir=G,exports.mpFetch=ht,exports.normalizeDomain=ue,exports.once=gt,exports.parseCookieHeader=Xe,exports.parseUrl=Ke,exports.put=$r,exports.query=xe,exports.readFile=lr,exports.readJSON=hr,exports.remove=xr,exports.removeAsync=Sr,exports.rm=ar,exports.saveFile=ur,exports.saveOnlineFile=pr,exports.set=yr,exports.setAsync=wr,exports.storage=J,exports.take=mr,exports.type=kt,exports.unzip=gr,exports.wrapFunction=g,exports.writeFile=fr,exports.writeJSON=dr;
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