@mptool/all 0.6.0-beta.12 → 0.6.0-beta.14
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.mts +98 -94
- package/lib/index.d.ts +98 -94
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +3 -3
- package/lib/index.mjs.map +1 -1
- package/package.json +4 -4
package/lib/index.d.mts
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;
|
|
@@ -1493,4 +1497,4 @@ interface RequestFactory {
|
|
|
1493
1497
|
*/
|
|
1494
1498
|
declare const createRequest: ({ cookieStore, server, responseHandler, errorHandler, ...defaultOptions }?: RequestInitOptions) => RequestFactory;
|
|
1495
1499
|
|
|
1496
|
-
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, 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 };
|
|
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.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;
|
|
@@ -1493,4 +1497,4 @@ interface RequestFactory {
|
|
|
1493
1497
|
*/
|
|
1494
1498
|
declare const createRequest: ({ cookieStore, server, responseHandler, errorHandler, ...defaultOptions }?: RequestInitOptions) => RequestFactory;
|
|
1495
1499
|
|
|
1496
|
-
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, 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 };
|
|
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 A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",E=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),I=0;I<A.length;I++)E[A.charCodeAt(I)]=I;var it=function(e){var t=new Uint8Array(e),r,n=t.length,o="";for(r=0;r<n;r+=3)o+=A[t[r]>>2],o+=A[(t[r]&3)<<4|t[r+1]>>4],o+=A[(t[r+1]&15)<<2|t[r+2]>>6],o+=A[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=E[e.charCodeAt(n)],a=E[e.charCodeAt(n+1)],c=E[e.charCodeAt(n+2)],l=E[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 $(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 we=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 we(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 m=typeof wx=="object"?wx.getRealtimeLogManager?wx.getRealtimeLogManager():wx.getLogManager({level:1}):console,ee=!!wx.getRealtimeLogManager,pt=(...e)=>{wx.env.DEBUG&&(ee?m.info("debug",...e):m.debug(...e))},ft=(...e)=>{m.info(...e),m!==console&&console.info(...e)},dt=(...e)=>{m.warn(...e),m!==console&&console.warn(...e)},gt=(...e)=>{ee?m.error(...e):m.warn("error",...e),m!==console&&console.error(...e)},$t=e=>{ee&&m.setFilterMsg(e)};var v=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},ve=(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=ve(t,"&",r);return n?`${e}${/[?&]$/u.test(e)?"":e.indexOf("?")===-1?"?":"&"}${n}`:e};var be=Object.freeze({__proto__:null,join:yt,parse:mt,stringify:ve});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},te="a",xe="al",Se="n",ke="p",Oe="r",Ae="u",b=F(),N=F(),x=F(),S={launch:!1,lOpt:{},hide:0},vt=e=>{S.launch=!0,S.lOpt=e,b.emit(xe,e)},bt=()=>{S.hide&&(b.emit(te,new Date().getTime()-S.hide),S.hide=0)},xt=()=>{S.hide=new Date().getTime()},St=e=>{e.onLaunch=$(e.onLaunch,vt),e.onShow=$(e.onShow,bt),e.onHide=$(e.onHide,xt),e.onAwake&&(b.on(te,t=>{v.debug(`App: awake after ${t}ms`),e.onAwake(t)}),v.debug("App: registered onAwake")),e.$on=x.on,e.$off=x.off,e.$emit=x.emit,e.$emitAsync=x.emitAsync,App(e)};var kt=Object.defineProperty,Ot=Object.defineProperties,At=Object.getOwnPropertyDescriptors,q=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,Ce=Object.prototype.propertyIsEnumerable,Pe=(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={}))je.call(t,r)&&Pe(e,r,t[r]);if(q)for(var r of q(t))Ce.call(t,r)&&Pe(e,r,t[r]);return e},Ct=(e,t)=>Ot(e,At(t)),Pt=(e,t)=>{var r={};for(var n in e)je.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&q)for(var n of q(e))t.indexOf(n)<0&&Ce.call(e,n)&&(r[n]=e[n]);return r};let Ee;const Et=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\\-]+")}`);Ee=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"}})},k=()=>Ee||v.error("$Config is not called"),re={},_e=e=>re[e],_t=(e,t)=>{re[e]=t},Dt=e=>{delete re[e]};let _=!0;const De=e=>{const t=k(),[r,n]=e.split("?"),o=r.startsWith("/")?r:t.getRoute(r);return{name:t.getName(o),url:`${o}${n?`?${n}`:""}`,query:be.parse(n)}};function H(e){return t=>{if(_){_=!1;const{name:r,url:n,query:o}=De(t);return Promise.race([N.emitAsync(`${Se}:${r}`,o),new Promise(s=>{setTimeout(()=>s(),k().maxDelay||200)})]).then(()=>(_=!0,wx[e]({url:n})))}}}b.on(Oe,()=>{setTimeout(()=>{_=!0},k().minInterval||100)}),b.on(Ae,()=>{_=!0});const Re=H("navigateTo"),Me=H("redirectTo"),Le=H("switchTab"),ne=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(Re),Mt=z(Me),Lt=z(Le),Tt=z(ne),Te=(e=1)=>{const{home:t}=k();return getCurrentPages().length<=e&&t?ne(t):wx.navigateBack({delta:e})},Ut=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)})}},It=()=>getCurrentPages().slice(0).pop(),Ft=e=>{const{name:t,query:r}=De(e);N.emit(`${ke}:${t}`,r)};function Ue(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 Ie(e){e.$=Ue,e.$refs={},e.$on=x.on,e.$off=x.off,e.$emit=x.emit,e.$emitAsync=x.emitAsync,e.$go=Re,e.$redirect=Me,e.$switch=Le,e.$reLaunch=ne,e.$back=Te,e.$preload=Ft,e.$currentPage=It,e.$getName=k().getName,e.$getPath=k().getRoute,e.$bindGo=Rt,e.$bindRedirect=Mt,e.$bindSwitch=Lt,e.$bindRelaunch=Tt,e.$bindBack=Ut}var Nt=Object.defineProperty,qt=Object.defineProperties,Ht=Object.getOwnPropertyDescriptors,Fe=Object.getOwnPropertySymbols,zt=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable,Ne=(e,t,r)=>t in e?Nt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,oe=(e,t)=>{for(var r in t||(t={}))zt.call(t,r)&&Ne(e,r,t[r]);if(Fe)for(var r of Fe(t))Bt.call(t,r)&&Ne(e,r,t[r]);return e},se=(e,t)=>qt(e,Ht(t));let Gt=0;const Jt=(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:""}})},Qt=e=>{const{extendComponent:t,injectComponent:r}=k();return t&&t(e),e.lifetimes||(e.lifetimes={}),e.lifetimes.created=$(e.lifetimes.created,function(){Ie(this),r&&r(e)}),e.lifetimes.attached=$(e.lifetimes.attached,function(){const n=Gt+=1;this.$id=n,_t(n,this),this.$refID=this.properties.ref,this.triggerEvent("ing",{id:this.$id,event:"_$attached"})}),e.lifetimes.detached=$(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=se(oe({},e.methods),{$call(n,...o){v.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},$: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,v.debug(`Component ${this.$id} ref: ${n}`))}}),e.properties=Jt(e.properties),Component(e)};let qe=!1;const Wt=(e,t)=>{const{extendPage:r,injectPage:n}=k(),o=(a,c)=>v.debug(`Page ${e}: ${a} has been invoked`,c||""),s=a=>v.debug(`Page ${e}: registered ${a}`);if(r&&r(e,t),t.$name=e,t.$state={firstOpen:!1},t.onAppLaunch){if(S.launch){const{lOpt:a}=S;o("onAppLaunch"),t.onAppLaunch(a)}else b.on(xe,a=>{o("onAppLaunch"),t.onAppLaunch(a)});s("onAppLaunch")}t.onNavigate&&(N.on(`${Se}:${e}`,a=>(o("onNavigate",a),t.onNavigate(a))),s("onNavigate")),t.onPreload&&(N.on(`${ke}:${e}`,a=>(o("onPreload",a),t.onPreload(a))),s("onPreload")),t.onLoad=$(t.onLoad,()=>{t.onAwake&&(b.on(te,a=>{o("onAwake"),t.onAwake(a)}),s("onAwake")),qe||(qe=!0,t.$state.firstOpen=!0)}),t.onReady=$(t.onReady,()=>b.emit(Oe)),t.onUnload=$(t.onUnload,()=>b.emit(Ae)),Ie(t),n&&n(e,t),t.onRegister&&(o("onRegister"),t.onRegister()),Page(t),v.debug(`Registered: Page ${e}`)};for(var He="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Vt=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),B=0;B<He.length;B++)Vt[He.charCodeAt(B)]=B;const y=typeof wx=="object"?wx.getRealtimeLogManager?wx.getRealtimeLogManager():wx.getLogManager({level:1}):console,ae=!!wx.getRealtimeLogManager,Kt=(...e)=>{wx.env.DEBUG&&(ae?y.info("debug",...e):y.debug(...e))},Xt=(...e)=>{y.info(...e),y!==console&&console.info(...e)},Yt=(...e)=>{y.warn(...e),y!==console&&console.warn(...e)},Zt=(...e)=>{ae?y.error(...e):y.warn("error",...e),y!==console&&console.error(...e)},er=e=>{ae&&y.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,G=e=>e.split("/").slice(0,-1).join("/"),ie=e=>{try{return d.statSync(`${p}/${e}`,!1),!0}catch(t){return!1}},tr=e=>ie(e)&&d.statSync(`${p}/${e}`).isFile(),ze=e=>ie(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},J=(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)=>(J(G(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")=>{J(G(e)),d.writeFileSync(`${p}/${e}`,t instanceof ArrayBuffer?t:JSON.stringify(t),r)},lr=(e,t,r="utf-8")=>{const n=JSON.stringify(t);J(G(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()}})}),D=new Date().getTime();u.debug(`Current sessionId is ${D}`);const Q={},ur=(e,t)=>{Q[e]=t},pr=e=>{const t=Q[e];return Q[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,Be=(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},fr=(e,t,r=0)=>{wx.setStorageSync(`_cache_${e}`,Be(e,t,r))},dr=(e,t,r=0)=>wx.setStorage({key:`_cache_${e}`,data:Be(e,t,r)}).catch(()=>{u.error(`set "${e}" fail`)}),gr=e=>ce(e,wx.getStorageSync(`_cache_${e}`)),$r=e=>wx.getStorage({key:`_cache_${e}`}).then(({data:t})=>ce(e,t)).catch(()=>{u.error(`set "${e}" fail`)}),mr=e=>{wx.removeStorageSync(`_cache_${e}`),ce(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!==D&&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!==D&&new Date().getTime()>=r.expired)return wx.removeStorage({key:t}).then(()=>{})}))));var W={exports:{}},j={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=br(n),s=o.name,a=o.value;t=t?Object.assign({},j,t):j;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 Ge(e,t){if(t=t?Object.assign({},j,t):j,!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({},j,t):j,t.map){var n={};return e.filter(le).reduce(function(o,s){var a=he(s,t);return o[a.name]=a,o},n)}else return e.filter(le).map(function(o){return he(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}W.exports=Ge;var Sr=W.exports.parse=Ge;W.exports.parseString=he;var Je=W.exports.splitCookiesString=xr,kr=Object.defineProperty,Or=Object.defineProperties,Ar=Object.getOwnPropertyDescriptors,Qe=Object.getOwnPropertySymbols,jr=Object.prototype.hasOwnProperty,Cr=Object.prototype.propertyIsEnumerable,We=(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)&&We(e,r,t[r]);if(Qe)for(var r of Qe(t))Cr.call(t,r)&&We(e,r,t[r]);return e},Er=(e,t)=>Or(e,Ar(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+$/,""),Ve=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"?Ve(e):{};return{domain:t,path:r}},Ke=(e,t)=>Sr(Je(e),{decodeValues:!1}).map(r=>new K(Er(Pr({},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 Xe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_r=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),X=0;X<Xe.length;X++)_r[Xe.charCodeAt(X)]=X;const w=typeof wx=="object"?wx.getRealtimeLogManager?wx.getRealtimeLogManager():wx.getLogManager({level:1}):console,de=!!wx.getRealtimeLogManager,Dr=(...e)=>{wx.env.DEBUG&&(de?w.info("debug",...e):w.debug(...e))},Rr=(...e)=>{w.info(...e),w!==console&&console.info(...e)},Mr=(...e)=>{w.warn(...e),w!==console&&console.warn(...e)},Lr=(...e)=>{de?w.error(...e):w.warn("error",...e),w!==console&&console.error(...e)},Tr=e=>{de&&w.setFilterMsg(e)};var ge=Object.freeze({__proto__:null,debug:Dr,error:Lr,filter:Tr,info:Rr,warn:Mr});const Ur=/[^a-z0-9\-#$%&'*+.^_`|~]/i,Ye=`
|
|
2
|
-
\r `,
|
|
1
|
+
"use strict";for(var A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",E=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),q=0;q<A.length;q++)E[A.charCodeAt(q)]=q;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=E[t.charCodeAt(n)],a=E[t.charCodeAt(n+1)],c=E[t.charCodeAt(n+2)],l=E[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",xe=typeof wx=="object"&&!te,re=te||xe;function I(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 Se;const $=re?((Se=wx.getRealtimeLogManager)==null?void 0:Se.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},ke=(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=ke(e,"&",r);return n?`${t}${/[?&]$/u.test(t)?"":t.indexOf("?")===-1?"?":"&"}${n}`:t};var Oe=Object.freeze({__proto__:null,join:Ot,parse:kt,stringify:ke});function y(t,e){return function(...r){if(e.apply(this,r),t)return t.apply(this,r)}}const At=(t,e)=>{let r;return function(...n){if(!r)return r=!0,t.apply(e||this,[()=>{r=!1},...n])}},jt=(t,e)=>{let r;return function(...n){if(!(r||!t))return r=!0,t.apply(e||null,n)}};let Ae=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 Ct=(t,e=1)=>{const r=new Ae(e);return function(...n){r.add(t,this,...n)}},oe="a",je="al",Ce="n",Pe="p",Ee="r",_e="u",b=I(),F=I(),x=I(),S={launch:!1,lOpt:{},hide:0},Pt=t=>{S.launch=!0,S.lOpt=t,b.emit(je,t)},Et=()=>{S.hide&&(b.emit(oe,new Date().getTime()-S.hide),S.hide=0)},_t=()=>{S.hide=new Date().getTime()},Dt=t=>{t.onLaunch=y(t.onLaunch,Pt),t.onShow=y(t.onShow,Et),t.onHide=y(t.onHide,_t),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 Rt=Object.defineProperty,Mt=Object.defineProperties,Tt=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,De=Object.prototype.hasOwnProperty,Re=Object.prototype.propertyIsEnumerable,Me=(t,e,r)=>e in t?Rt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Lt=(t,e)=>{for(var r in e||(e={}))De.call(e,r)&&Me(t,r,e[r]);if(N)for(var r of N(e))Re.call(e,r)&&Me(t,r,e[r]);return t},Ut=(t,e)=>Mt(t,Tt(e)),qt=(t,e)=>{var r={};for(var n in t)De.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&N)for(var n of N(t))e.indexOf(n)<0&&Re.call(t,n)&&(r[n]=t[n]);return r};let Te;const It=t=>{const e=t,{defaultRoute:r,routes:n=[]}=e,o=qt(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\\-]+")}`);Te=Ut(Lt({},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=()=>Te||v.error("$Config is not called"),se={},Le=t=>se[t],Ft=(t,e)=>{se[t]=e},Nt=t=>{delete se[t]};let _=!0;const Ue=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:Oe.parse(n)}};function H(t){return e=>{if(_){_=!1;const{name:r,url:n,query:o}=Ue(e);return Promise.race([F.emitAsync(`${Ce}:${r}`,o),new Promise(s=>{setTimeout(()=>s(),k().maxDelay||200)})]).then(()=>(_=!0,wx[t]({url:n})))}}}b.on(Ee,()=>{setTimeout(()=>{_=!0},k().minInterval||100)}),b.on(_e,()=>{_=!0});const qe=H("navigateTo"),Ie=H("redirectTo"),Fe=H("switchTab"),ae=H("reLaunch");function z(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 Ht=z(qe),zt=z(Ie),Bt=z(Fe),Qt=z(ae),Ne=(t=1)=>{const{home:e}=k();return getCurrentPages().length<=t&&e?ae(e):wx.navigateBack({delta:t})},Wt=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(Ne(Number(n))).then(()=>{this&&r&&typeof this[r]=="function"&&this[r](t)})}},Gt=()=>getCurrentPages().slice(0).pop(),Jt=t=>{const{name:e,query:r}=Ue(t);F.emit(`${Pe}:${e}`,r)};function He(t){const{args:e,event:r,id:n}=t.detail;switch(r){case"_$attached":{const o=Le(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 ze(t){t.$=He,t.$refs={},t.$on=x.on,t.$off=x.off,t.$emit=x.emit,t.$emitAsync=x.emitAsync,t.$go=qe,t.$redirect=Ie,t.$switch=Fe,t.$reLaunch=ae,t.$back=Ne,t.$preload=Jt,t.$currentPage=Gt,t.$getName=k().getName,t.$getPath=k().getRoute,t.$bindGo=Ht,t.$bindRedirect=zt,t.$bindSwitch=Bt,t.$bindRelaunch=Qt,t.$bindBack=Wt}var Vt=Object.defineProperty,Kt=Object.defineProperties,Xt=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Yt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable,Qe=(t,e,r)=>e in t?Vt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ie=(t,e)=>{for(var r in e||(e={}))Yt.call(e,r)&&Qe(t,r,e[r]);if(Be)for(var r of Be(e))Zt.call(e,r)&&Qe(t,r,e[r]);return t},ce=(t,e)=>Kt(t,Xt(e));let er=0;const tr=(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:""}})},rr=t=>{const{extendComponent:e,injectComponent:r}=k();return e&&e(t),t.lifetimes||(t.lifetimes={}),t.lifetimes.created=y(t.lifetimes.created,function(){ze(this),r&&r(t)}),t.lifetimes.attached=y(t.lifetimes.attached,function(){const n=er+=1;this.$id=n,Ft(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;Nt(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:Le,_$attached(n){this.$root=n.$root||n,this.$parent=n},$:He}),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=tr(t.properties),Component(t)};let We=!1;const nr=(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(je,a=>{o("onAppLaunch"),e.onAppLaunch(a)});s("onAppLaunch")}e.onNavigate&&(F.on(`${Ce}:${t}`,a=>(o("onNavigate",a),e.onNavigate(a))),s("onNavigate")),e.onPreload&&(F.on(`${Pe}:${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")),We||(We=!0,e.$state.firstOpen=!0)}),e.onReady=y(e.onReady,()=>b.emit(Ee)),e.onUnload=y(e.onUnload,()=>b.emit(_e)),ze(e),n&&n(t,e),e.onRegister&&(o("onRegister"),e.onRegister()),Page(e),v.debug(`Registered: Page ${t}`)};for(var Ge="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",or=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),B=0;B<Ge.length;B++)or[Ge.charCodeAt(B)]=B;const Je=typeof qq=="object",sr=typeof wx=="object"&&!Je,Ve=Je||sr;var Ke;const m=Ve?((Ke=wx.getRealtimeLogManager)==null?void 0:Ke.call(wx))||wx.getLogManager({level:1}):console,le=Ve&&typeof wx.getRealtimeLogManager=="function",ar=(...t)=>{wx.env.DEBUG&&(le?m.info("debug",...t):m.debug(...t))},ir=(...t)=>{m.info(...t),m!==console&&console.info(...t)},cr=(...t)=>{m.warn(...t),m!==console&&console.warn(...t)},lr=(...t)=>{le?m.error(...t):m.warn("error",...t),m!==console&&console.error(...t)},hr=t=>{le&&m.setFilterMsg(t)};var u=Object.freeze({__proto__:null,debug:ar,error:lr,filter:hr,info:ir,warn:cr});const d=wx.getFileSystemManager(),p=wx.env.USER_DATA_PATH,Q=t=>t.split("/").slice(0,-1).join("/"),he=t=>{try{return d.statSync(`${p}/${t}`,!1),!0}catch(e){return!1}},ur=t=>he(t)&&d.statSync(`${p}/${t}`).isFile(),Xe=t=>he(t)&&d.statSync(`${p}/${t}`).isDirectory(),pr=(t,e=Xe(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)}},fr=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),[]}},dr=(t,e="utf-8")=>{try{return d.readFileSync(`${p}/${t}`,e)}catch(r){u.warn(`${t} don't exist`);return}},gr=(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},W=(t,e=!0)=>{try{d.mkdirSync(`${p}/${t}`,e)}catch(r){u.debug(`${t} folder already exists`)}},$r=(t,e)=>{try{d.saveFileSync(t,`${p}/${e}`)}catch(r){u.error(`Saving to ${e} failed:`,r)}},yr=(t,e)=>(W(Q(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)}})})),mr=(t,e,r=e instanceof ArrayBuffer?"binary":"utf-8")=>{W(Q(t)),d.writeFileSync(`${p}/${t}`,e instanceof ArrayBuffer?e:JSON.stringify(e),r)},wr=(t,e,r="utf-8")=>{const n=JSON.stringify(e);W(Q(t)),d.writeFileSync(`${p}/${t}.json`,n,r)},vr=(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()}})}),D=new Date().getTime();u.debug(`Current sessionId is ${D}`);const G={},br=(t,e)=>{G[t]=e},xr=t=>{const e=G[t];return G[t]=void 0,e},ue=(t,e)=>e?e.expired?e.expired===D||new Date().getTime()<e.expired?e.data:(wx.removeStorageSync(`_cache_${t}`),void 0):e.data:void 0,Ye=(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"?D:r+new Date().getTime());return n},Sr=(t,e,r=0)=>{wx.setStorageSync(`_cache_${t}`,Ye(t,e,r))},kr=(t,e,r=0)=>wx.setStorage({key:`_cache_${t}`,data:Ye(t,e,r)}).catch(()=>{u.error(`set "${t}" fail`)}),Or=t=>ue(t,wx.getStorageSync(`_cache_${t}`)),Ar=t=>wx.getStorage({key:`_cache_${t}`}).then(({data:e})=>ue(t,e)).catch(()=>{u.error(`set "${t}" fail`)}),jr=t=>{wx.removeStorageSync(`_cache_${t}`),ue(t,null)},Cr=t=>wx.removeStorage({key:`_cache_${t}`}),Pr=()=>{wx.getStorageInfoSync().keys.forEach(t=>{if(t.startsWith("_cache_")){const e=wx.getStorageSync(t);(!e||e.expired!==D&&new Date().getTime()>=e.expired)&&wx.removeStorageSync(t)}})},Er=()=>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!==D&&new Date().getTime()>=r.expired)return wx.removeStorage({key:e}).then(()=>{})}))));var J={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=_r(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 _r(t){var e="",r="",n=t.split("=");return n.length>1?(e=n.shift(),r=n.join("=")):r=t,{name:e,value:r}}function Ze(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 Dr(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}J.exports=Ze;var Rr=J.exports.parse=Ze;J.exports.parseString=fe;var et=J.exports.splitCookiesString=Dr,Mr=Object.defineProperty,Tr=Object.defineProperties,Lr=Object.getOwnPropertyDescriptors,tt=Object.getOwnPropertySymbols,Ur=Object.prototype.hasOwnProperty,qr=Object.prototype.propertyIsEnumerable,rt=(t,e,r)=>e in t?Mr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ir=(t,e)=>{for(var r in e||(e={}))Ur.call(e,r)&&rt(t,r,e[r]);if(tt)for(var r of tt(e))qr.call(e,r)&&rt(t,r,e[r]);return t},Fr=(t,e)=>Tr(t,Lr(e));const de=(t="")=>t.replace(/^(\.*)?(?=\S)/gi,"."),V=(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+$/,""),nt=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"?nt(t):{};return{domain:e,path:r}},ot=(t,e)=>Rr(et(t),{decodeValues:!1}).map(r=>new K(Fr(Ir({},r),{domain:de(r.domain)||e})));class K{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 V(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 st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Nr=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),X=0;X<st.length;X++)Nr[st.charCodeAt(X)]=X;const at=typeof qq=="object",Hr=typeof wx=="object"&&!at,Y=at||Hr;var it;const w=Y?((it=wx.getRealtimeLogManager)==null?void 0:it.call(wx))||wx.getLogManager({level:1}):console,ye=Y&&typeof wx.getRealtimeLogManager=="function",zr=(...t)=>{wx.env.DEBUG&&(ye?w.info("debug",...t):w.debug(...t))},Br=(...t)=>{w.info(...t),w!==console&&console.info(...t)},Qr=(...t)=>{w.warn(...t),w!==console&&console.warn(...t)},Wr=(...t)=>{ye?w.error(...t):w.warn("error",...t),w!==console&&console.error(...t)},Gr=t=>{ye&&w.setFilterMsg(t)};var me=Object.freeze({__proto__:null,debug:zr,error:Wr,filter:Gr,info:Br,warn:Qr});const Jr=/[^a-z0-9\-#$%&'*+.^_`|~]/i,ct=`
|
|
2
|
+
\r `,Vr=new RegExp(`(^[${ct}]|$[${ct}])`,"g"),R=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},M=t=>{if(Jr.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},we=t=>t.replace(Vr,"");class T{constructor(e){this.headers={},this.headerNames=new Map,e instanceof T?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(!R(e)||!lt(r))return;const n=M(e),o=we(r),s=this.has(n)?`${this.get(n)}, ${o}`:o;this.set(e,s)}delete(e){if(!R(e)||!this.has(e))return;const r=M(e);delete this.headers[r],this.headerNames.delete(r)}get(e){var r;if(!R(e))throw TypeError(`Invalid header name "${e}"`);return(r=this.headers[M(e)])!=null?r:null}getSetCookie(){const e=this.get("set-cookie");return e===null?[]:e===""?[""]:et(e)}has(e){if(!R(e))throw new TypeError(`Invalid header name "${e}"`);return this.headers.hasOwnProperty(M(e))}set(e,r){if(!R(e)||!lt(r))return;const n=M(e),o=we(r);this.headers[n]=we(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=V(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 K(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=V(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){const n=e["Set-Cookie"]||e["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(ot(o,ge(r)))}applyResponse(e,r){return this.applyHeader(e.header,r)}getHeader(e){return this.getCookies(e).map(r=>r.toString()).join("; ")}init(){try{const e=Y?wx.getStorageSync(this.key)||[]:[];this.apply(e.map(r=>new K(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);Y&&wx.setStorageSync(this.key,e)}catch(e){console.warn("Error setting cookies",e)}}}const Kr={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"},ht=t=>encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,e=>Kr[e]),ut=t=>decodeURIComponent(t.replace(/\+/g," "));class L{constructor(e){if(!e)this.params=new Map;else if(e instanceof L)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 Xr=Object.defineProperty,ee=Object.getOwnPropertySymbols,pt=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable,dt=(t,e,r)=>e in t?Xr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ve=(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 be=new Z("__request_cookie__"),$t=(t,e={})=>{var r=e,{method:n="GET",headers:o,body:s,cookieScope:a=t,cookieStore:c=be}=r,l=gt(r,["method","headers","body","cookieScope","cookieStore"]);return new Promise((i,h)=>{const f=c.getHeader(a),g=new T(o);g.append("Cookie",f);const O=s instanceof L?s.toString():s!=null?s:void 0;g.has("Content-Type")||(s instanceof L?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")),me.debug(`Requesting ${t}:
|
|
3
3
|
Cookie: ${f}
|
|
4
4
|
Options:
|
|
5
|
-
`,l),wx.request(
|
|
5
|
+
`,l),wx.request(ve({url:t,method:n.toUpperCase(),header:g.toObject(),data:O,enableHttp2:!0,success:({data:C,statusCode:U,header:P})=>(me.debug(`Request ends with ${U}`,C),c.applyHeader(P,a),i({data:C,headers:new T(P),status:U})),fail:({errMsg:C,errno:U})=>{const P=new Error(C);me.warn(`Request ${t} failed: ${C}`),P.errno=U,h(P)}},l))})},Yr=(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):be;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=ve(ve({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=Dt,exports.$Component=rr,exports.$Config=It,exports.$Page=nr,exports.Cookie=K,exports.CookieStore=Z,exports.Emitter=I,exports.Headers=T,exports.Queue=Ae,exports.URLSearchParams=L,exports.check=Pr,exports.checkAsync=Er,exports.createRequest=Yr,exports.decodeBase64=mt,exports.dirname=Q,exports.emitter=x,exports.encodeBase64=yt,exports.exists=he,exports.funcQueue=Ct,exports.get=Or,exports.getAsync=Ar,exports.getCookieOptions=$e,exports.getCookieScopeDomain=V,exports.getDomain=ge,exports.isDir=Xe,exports.isFile=ur,exports.isMp=re,exports.isQQ=te,exports.isWx=xe,exports.lock=At,exports.logger=v,exports.ls=fr,exports.mkdir=W,exports.normalizeDomain=de,exports.once=jt,exports.parseCookieHeader=ot,exports.parseUrl=nt,exports.put=br,exports.query=Oe,exports.readFile=dr,exports.readJSON=gr,exports.remove=jr,exports.removeAsync=Cr,exports.request=$t,exports.requestCookieStore=be,exports.rm=pr,exports.saveFile=$r,exports.saveOnlineFile=yr,exports.set=Sr,exports.setAsync=kr,exports.storage=G,exports.take=xr,exports.unzip=vr,exports.wrapFunction=y,exports.writeFile=mr,exports.writeJSON=wr;
|
|
6
6
|
//# sourceMappingURL=index.js.map
|