@cloudbase/auth 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/adapter.js +19 -16
- package/dist/cjs/index.d.ts +107 -33
- package/dist/cjs/index.js +1529 -428
- package/dist/cjs/type.d.ts +242 -0
- package/dist/cjs/type.js +3 -0
- package/dist/cjs/utils.d.ts +5 -0
- package/dist/cjs/utils.js +59 -0
- package/dist/esm/adapter.js +19 -16
- package/dist/esm/index.d.ts +107 -33
- package/dist/esm/index.js +1527 -426
- package/dist/esm/type.d.ts +242 -0
- package/dist/esm/type.js +2 -0
- package/dist/esm/utils.d.ts +5 -0
- package/dist/esm/utils.js +51 -0
- package/dist/miniprogram/index.js +1 -1
- package/package.json +6 -6
- package/src/adapter.ts +13 -8
- package/src/index.ts +1606 -363
- package/src/type.ts +306 -0
- package/src/utils.ts +69 -0
- package/tsconfig.json +1 -1
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import type { authModels, OAUTH_TYPE } from '@cloudbase/oauth';
|
|
2
|
+
import { AuthError } from '@cloudbase/oauth';
|
|
3
|
+
export interface SignInAnonymouslyReq {
|
|
4
|
+
provider_token?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare type User = {
|
|
7
|
+
id: any;
|
|
8
|
+
aud: string;
|
|
9
|
+
role: string[];
|
|
10
|
+
email: any;
|
|
11
|
+
email_confirmed_at: string;
|
|
12
|
+
phone: any;
|
|
13
|
+
phone_confirmed_at: string;
|
|
14
|
+
confirmed_at: string;
|
|
15
|
+
last_sign_in_at: string;
|
|
16
|
+
app_metadata: {
|
|
17
|
+
provider: any;
|
|
18
|
+
providers: any[];
|
|
19
|
+
};
|
|
20
|
+
user_metadata: {
|
|
21
|
+
name: any;
|
|
22
|
+
picture: any;
|
|
23
|
+
username: any;
|
|
24
|
+
gender: any;
|
|
25
|
+
locale: any;
|
|
26
|
+
uid: any;
|
|
27
|
+
nickName: any;
|
|
28
|
+
avatarUrl: any;
|
|
29
|
+
location: any;
|
|
30
|
+
hasPassword: any;
|
|
31
|
+
};
|
|
32
|
+
identities: any;
|
|
33
|
+
created_at: string;
|
|
34
|
+
updated_at: string;
|
|
35
|
+
is_anonymous: boolean;
|
|
36
|
+
};
|
|
37
|
+
export declare type Session = {
|
|
38
|
+
access_token?: string;
|
|
39
|
+
refresh_token?: string;
|
|
40
|
+
expires_in?: number;
|
|
41
|
+
token_type?: string;
|
|
42
|
+
user: User;
|
|
43
|
+
};
|
|
44
|
+
export interface SignInWithPasswordReq {
|
|
45
|
+
username?: string;
|
|
46
|
+
email?: string;
|
|
47
|
+
phone?: string;
|
|
48
|
+
password: string;
|
|
49
|
+
is_encrypt?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface CommonRes {
|
|
52
|
+
data: {};
|
|
53
|
+
error: AuthError | null;
|
|
54
|
+
}
|
|
55
|
+
export interface SignInRes {
|
|
56
|
+
data: {
|
|
57
|
+
user?: User;
|
|
58
|
+
session?: Session;
|
|
59
|
+
};
|
|
60
|
+
error: AuthError | null;
|
|
61
|
+
}
|
|
62
|
+
export interface GetUserRes {
|
|
63
|
+
data: {
|
|
64
|
+
user?: User;
|
|
65
|
+
};
|
|
66
|
+
error: AuthError | null;
|
|
67
|
+
}
|
|
68
|
+
export interface UpdateUserVerifyOtpParams {
|
|
69
|
+
email?: string;
|
|
70
|
+
phone?: string;
|
|
71
|
+
token: string;
|
|
72
|
+
}
|
|
73
|
+
declare type UpdateUserVerifyCallback = (params: UpdateUserVerifyOtpParams) => Promise<GetUserRes>;
|
|
74
|
+
export interface UpdateUserWithVerificationRes {
|
|
75
|
+
data: {
|
|
76
|
+
verifyOtp?: UpdateUserVerifyCallback;
|
|
77
|
+
messageId?: string;
|
|
78
|
+
};
|
|
79
|
+
error: AuthError | null;
|
|
80
|
+
}
|
|
81
|
+
export interface SignInWithIdTokenReq {
|
|
82
|
+
provider?: string;
|
|
83
|
+
token: string;
|
|
84
|
+
}
|
|
85
|
+
export interface SignInWithOAuthReq {
|
|
86
|
+
provider: string;
|
|
87
|
+
options?: {
|
|
88
|
+
redirectTo?: string;
|
|
89
|
+
skipBrowserRedirect?: boolean;
|
|
90
|
+
state?: string;
|
|
91
|
+
queryParams?: Record<string, string>;
|
|
92
|
+
type?: (typeof OAUTH_TYPE)[keyof typeof OAUTH_TYPE];
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export interface SignInOAuthRes {
|
|
96
|
+
data: {
|
|
97
|
+
url?: string;
|
|
98
|
+
provider?: string;
|
|
99
|
+
scopes?: string;
|
|
100
|
+
};
|
|
101
|
+
error: AuthError | null;
|
|
102
|
+
}
|
|
103
|
+
export interface GetClaimsRes {
|
|
104
|
+
data: {
|
|
105
|
+
claims?: {
|
|
106
|
+
iss: string;
|
|
107
|
+
sub: string;
|
|
108
|
+
aud: string;
|
|
109
|
+
exp: number;
|
|
110
|
+
iat: number;
|
|
111
|
+
at_hash: string;
|
|
112
|
+
name: string;
|
|
113
|
+
picture?: string;
|
|
114
|
+
email?: string;
|
|
115
|
+
phone_number?: string;
|
|
116
|
+
scope: string;
|
|
117
|
+
project_id: string;
|
|
118
|
+
provider?: string;
|
|
119
|
+
provider_type?: string;
|
|
120
|
+
groups?: string[];
|
|
121
|
+
meta?: {
|
|
122
|
+
wxOpenId?: string;
|
|
123
|
+
wxUnionId?: string;
|
|
124
|
+
};
|
|
125
|
+
user_id: string;
|
|
126
|
+
roles: string[];
|
|
127
|
+
user_type: string;
|
|
128
|
+
client_type: string;
|
|
129
|
+
is_system_admin: boolean;
|
|
130
|
+
};
|
|
131
|
+
header?: {
|
|
132
|
+
alg: string;
|
|
133
|
+
kid: string;
|
|
134
|
+
};
|
|
135
|
+
signature?: string;
|
|
136
|
+
};
|
|
137
|
+
error: AuthError | null;
|
|
138
|
+
}
|
|
139
|
+
export interface UpdateUserReq extends authModels.ModifyUserBasicInfoRequest {
|
|
140
|
+
email?: string;
|
|
141
|
+
phone?: string;
|
|
142
|
+
username?: string;
|
|
143
|
+
description?: string;
|
|
144
|
+
avatar_url?: string;
|
|
145
|
+
nickname?: string;
|
|
146
|
+
gender?: 'MALE' | 'FEMALE';
|
|
147
|
+
}
|
|
148
|
+
export interface GetUserIdentitiesRes {
|
|
149
|
+
data: {
|
|
150
|
+
identities?: Array<{
|
|
151
|
+
id: string;
|
|
152
|
+
name: string;
|
|
153
|
+
picture: string;
|
|
154
|
+
}>;
|
|
155
|
+
};
|
|
156
|
+
error: AuthError | null;
|
|
157
|
+
}
|
|
158
|
+
export interface LinkIdentityReq {
|
|
159
|
+
provider: string;
|
|
160
|
+
}
|
|
161
|
+
export interface UnlinkIdentityReq {
|
|
162
|
+
provider: string;
|
|
163
|
+
}
|
|
164
|
+
export interface LinkIdentityRes {
|
|
165
|
+
data: {
|
|
166
|
+
provider?: string;
|
|
167
|
+
type?: (typeof OAUTH_TYPE)[keyof typeof OAUTH_TYPE];
|
|
168
|
+
};
|
|
169
|
+
error: AuthError | null;
|
|
170
|
+
}
|
|
171
|
+
export declare type OnAuthStateChangeEvent = 'SIGNED_OUT' | 'SIGNED_IN' | 'INITIAL_SESSION' | 'PASSWORD_RECOVERY' | 'TOKEN_REFRESHED' | 'USER_UPDATED' | 'BIND_IDENTITY';
|
|
172
|
+
export declare type OnAuthStateChangeCallback = (event: OnAuthStateChangeEvent, session: Session, info?: Record<string, any>) => void;
|
|
173
|
+
type MobileOtpType = 'sms' | 'phone_change';
|
|
174
|
+
type EmailOtpType = 'signup' | 'invite' | 'magiclink' | 'recovery' | 'email_change' | 'email';
|
|
175
|
+
export interface VerifyOtpReq {
|
|
176
|
+
type?: MobileOtpType | EmailOtpType;
|
|
177
|
+
email?: string;
|
|
178
|
+
phone?: string;
|
|
179
|
+
token: string;
|
|
180
|
+
messageId?: string;
|
|
181
|
+
}
|
|
182
|
+
export interface SignInWithOtpReq {
|
|
183
|
+
email?: string;
|
|
184
|
+
phone?: string;
|
|
185
|
+
}
|
|
186
|
+
declare type OtpCallback = (params: VerifyOtpReq) => Promise<SignInRes>;
|
|
187
|
+
export interface SignInWithOtpRes {
|
|
188
|
+
data: SignInRes['data'] & {
|
|
189
|
+
verifyOtp?: OtpCallback;
|
|
190
|
+
};
|
|
191
|
+
error: AuthError | null;
|
|
192
|
+
}
|
|
193
|
+
export interface SignUpRes {
|
|
194
|
+
data: {
|
|
195
|
+
verifyOtp?: OtpCallback;
|
|
196
|
+
};
|
|
197
|
+
error: AuthError | null;
|
|
198
|
+
}
|
|
199
|
+
export interface ResendReq {
|
|
200
|
+
email?: string;
|
|
201
|
+
phone?: string;
|
|
202
|
+
type?: 'signup' | 'email_change' | 'phone_change' | 'sms';
|
|
203
|
+
}
|
|
204
|
+
export interface ResendRes {
|
|
205
|
+
data: {
|
|
206
|
+
messageId?: string;
|
|
207
|
+
};
|
|
208
|
+
error: AuthError | null;
|
|
209
|
+
}
|
|
210
|
+
export interface VerifyOAuthReq {
|
|
211
|
+
code?: string;
|
|
212
|
+
state?: string;
|
|
213
|
+
provider?: string;
|
|
214
|
+
}
|
|
215
|
+
export interface UpdateUserAttributes {
|
|
216
|
+
nonce: string;
|
|
217
|
+
password: string;
|
|
218
|
+
}
|
|
219
|
+
export interface ResetPasswordForEmailRes {
|
|
220
|
+
data: {
|
|
221
|
+
updateUser?: (attributes: UpdateUserAttributes) => Promise<SignInRes>;
|
|
222
|
+
};
|
|
223
|
+
error: AuthError | null;
|
|
224
|
+
}
|
|
225
|
+
export interface ReauthenticateRes {
|
|
226
|
+
data: {
|
|
227
|
+
updateUser?: (attributes: UpdateUserAttributes) => Promise<SignInRes>;
|
|
228
|
+
};
|
|
229
|
+
error: AuthError | null;
|
|
230
|
+
}
|
|
231
|
+
export interface SetSessionReq {
|
|
232
|
+
access_token: string;
|
|
233
|
+
refresh_token: string;
|
|
234
|
+
}
|
|
235
|
+
export interface DeleteMeReq {
|
|
236
|
+
password: string;
|
|
237
|
+
}
|
|
238
|
+
export interface ResetPasswordForOldReq {
|
|
239
|
+
old_password: string;
|
|
240
|
+
new_password: string;
|
|
241
|
+
}
|
|
242
|
+
export {};
|
package/dist/cjs/type.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGF1dGhNb2RlbHMsIE9BVVRIX1RZUEUgfSBmcm9tICdAY2xvdWRiYXNlL29hdXRoJ1xuaW1wb3J0IHsgQXV0aEVycm9yIH0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aCdcblxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbkFub255bW91c2x5UmVxIHtcbiAgcHJvdmlkZXJfdG9rZW4/OiBzdHJpbmcgLy8g5o+Q5L6b5Luk54mMXG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgVXNlciA9IHtcbiAgaWQ6IGFueSAvLyDnlKjmiLdJRFxuICBhdWQ6IHN0cmluZyAvLyDlj5fkvJdcbiAgcm9sZTogc3RyaW5nW10gLy8g55So5oi36KeS6ImyXG4gIGVtYWlsOiBhbnkgLy8g6YKu566xXG4gIGVtYWlsX2NvbmZpcm1lZF9hdDogc3RyaW5nIC8vIOmCrueuseehruiupOaXtumXtFxuICBwaG9uZTogYW55IC8vIOaJi+acuuWPt1xuICBwaG9uZV9jb25maXJtZWRfYXQ6IHN0cmluZyAvLyDmiYvmnLrlj7fnoa7orqTml7bpl7RcbiAgY29uZmlybWVkX2F0OiBzdHJpbmcgLy8g56Gu6K6k5pe26Ze0XG4gIGxhc3Rfc2lnbl9pbl9hdDogc3RyaW5nIC8vIOacgOWQjueZu+W9leaXtumXtFxuICBhcHBfbWV0YWRhdGE6IHtcbiAgICAvLyDlupTnlKjlhYPmlbDmja5cbiAgICBwcm92aWRlcjogYW55IC8vIOaPkOS+m+WVhlxuICAgIHByb3ZpZGVyczogYW55W10gLy8g5o+Q5L6b5ZWG5YiX6KGoXG4gIH1cbiAgdXNlcl9tZXRhZGF0YToge1xuICAgIC8vIOeUqOaIt+WFg+aVsOaNrlxuICAgIG5hbWU6IGFueSAvLyDlp5PlkI1cbiAgICBwaWN0dXJlOiBhbnkgLy8g5aS05YOPXG4gICAgdXNlcm5hbWU6IGFueSAvLyDnlKjmiLflkI1cbiAgICBnZW5kZXI6IGFueSAvLyDmgKfliKtcbiAgICBsb2NhbGU6IGFueSAvLyDlnLDljLpcbiAgICB1aWQ6IGFueSAvLyDnlKjmiLdJRFxuICAgIG5pY2tOYW1lOiBhbnkgLy8g5pi156ewXG4gICAgYXZhdGFyVXJsOiBhbnkgLy8g5aS05YOPVVJMXG4gICAgbG9jYXRpb246IGFueSAvLyDkvY3nva5cbiAgICBoYXNQYXNzd29yZDogYW55IC8vIOaYr+WQpuacieWvhueggVxuICB9XG4gIGlkZW50aXRpZXM6IGFueSAvLyDouqvku73kv6Hmga9cbiAgY3JlYXRlZF9hdDogc3RyaW5nIC8vIOWIm+W7uuaXtumXtFxuICB1cGRhdGVkX2F0OiBzdHJpbmcgLy8g5pu05paw5pe26Ze0XG4gIGlzX2Fub255bW91czogYm9vbGVhbiAvLyDmmK/lkKbljL/lkI3nlKjmiLdcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTZXNzaW9uID0ge1xuICBhY2Nlc3NfdG9rZW4/OiBzdHJpbmcgLy8g6K6/6Zeu5Luk54mMXG4gIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmcgLy8g5Yi35paw5Luk54mMXG4gIGV4cGlyZXNfaW4/OiBudW1iZXIgLy8g6L+H5pyf5pe26Ze077yI56eS77yJXG4gIHRva2VuX3R5cGU/OiBzdHJpbmcgLy8g5Luk54mM57G75Z6LXG4gIHVzZXI6IFVzZXIgLy8g55So5oi35L+h5oGvXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aFBhc3N3b3JkUmVxIHtcbiAgdXNlcm5hbWU/OiBzdHJpbmcgLy8g55So5oi35ZCN56ew77yI5Y+v6YCJ77yM5LiO6YKu566x44CB5omL5py65Y+35LiJ6YCJ5LiA77yJ77yM6ZW/5bqmIDUtMjQg5L2N77yM5pSv5oyB5a2X56ym5Lit6Iux5paH44CB5pWw5a2X44CB54m55q6K5a2X56ym77yI5LuF5pSv5oyBXy3vvInvvIzkuI3mlK/mjIHkuK3mlodcbiAgZW1haWw/OiBzdHJpbmcgLy8g6YKu566x77yI5Y+v6YCJ77yM5LiO55So5oi35ZCN44CB5omL5py65Y+35LiJ6YCJ5LiA77yJXG4gIHBob25lPzogc3RyaW5nIC8vIOaJi+acuuWPt++8iOWPr+mAie+8jOS4jueUqOaIt+WQjeOAgemCrueuseS4iemAieS4gO+8iVxuICBwYXNzd29yZDogc3RyaW5nIC8vIOWvhuegge+8iOW/heWhq++8iVxuICBpc19lbmNyeXB0PzogYm9vbGVhbiAvLyDmmK/lkKbliqDlr4bvvIzpu5jorqTkuLpmYWxzZVxufVxuXG4vLyDpgJrnlKjlk43lupTnsbvlnotcbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uUmVzIHtcbiAgZGF0YToge30gLy8g5oiQ5Yqf5pe25Li656m65a+56LGhXG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduSW5SZXMge1xuICBkYXRhOiB7XG4gICAgdXNlcj86IFVzZXIgLy8g55So5oi35L+h5oGvXG4gICAgc2Vzc2lvbj86IFNlc3Npb24gLy8g5Lya6K+d5L+h5oGvXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFVzZXJSZXMge1xuICBkYXRhOiB7XG4gICAgdXNlcj86IFVzZXIgLy8g55So5oi36K+m57uG5L+h5oGvXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG4vLyDmm7TmlrDnlKjmiLfpqozor4Hlm57osIPlj4LmlbBcbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlVXNlclZlcmlmeU90cFBhcmFtcyB7XG4gIGVtYWlsPzogc3RyaW5nIC8vIOmCrueuse+8iOWPr+mAie+8jOS4juaJi+acuuWPt+S6jOmAieS4gO+8iVxuICBwaG9uZT86IHN0cmluZyAvLyDmiYvmnLrlj7fvvIjlj6/pgInvvIzkuI7pgq7nrrHkuozpgInkuIDvvIlcbiAgdG9rZW46IHN0cmluZyAvLyDpqozor4HnoIHvvIjlv4XloavvvIlcbn1cblxuLy8g5pu05paw55So5oi36aqM6K+B5Zue6LCD57G75Z6LXG5kZWNsYXJlIHR5cGUgVXBkYXRlVXNlclZlcmlmeUNhbGxiYWNrID0gKHBhcmFtczogVXBkYXRlVXNlclZlcmlmeU90cFBhcmFtcykgPT4gUHJvbWlzZTxHZXRVc2VyUmVzPlxuXG4vLyDmm7TmlrDnlKjmiLflk43lupTnsbvlnovvvIjlvZPpnIDopoHpqozor4Hml7bvvIlcbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlVXNlcldpdGhWZXJpZmljYXRpb25SZXMge1xuICBkYXRhOiB7XG4gICAgdmVyaWZ5T3RwPzogVXBkYXRlVXNlclZlcmlmeUNhbGxiYWNrIC8vIOmqjOivgeeggeWbnuiwg+WHveaVsFxuICAgIG1lc3NhZ2VJZD86IHN0cmluZyAvLyDpqozor4HnoIFJRFxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduSW5XaXRoSWRUb2tlblJlcSB7XG4gIHByb3ZpZGVyPzogc3RyaW5nIC8vIOesrOS4ieaWueW5s+WPsOagh+ivhu+8iOWPr+mAie+8iVxuICB0b2tlbjogc3RyaW5nIC8vIOesrOS4ieaWueW5s+WPsOeahOi6q+S7veS7pOeJjO+8iOW/heWhq++8iVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbldpdGhPQXV0aFJlcSB7XG4gIHByb3ZpZGVyOiBzdHJpbmcgLy8g56ys5LiJ5pa55bmz5Y+w5qCH6K+G77yI5b+F5aGr77yJXG4gIG9wdGlvbnM/OiB7XG4gICAgLy8g6YWN572u6YCJ6aG577yI5Y+v6YCJ77yJXG4gICAgcmVkaXJlY3RUbz86IHN0cmluZyAvLyDlm57osIPlnLDlnYDvvIzpu5jorqTkuLrlvZPliY3pobXpnaJcbiAgICBza2lwQnJvd3NlclJlZGlyZWN0PzogYm9vbGVhbiAvLyDmmK/lkKbot7Povazoh7PmjojmnYPpobXpnaLvvIzpu5jorqTkuLpmYWxzZVxuICAgIHN0YXRlPzogc3RyaW5nIC8vIOeKtuaAgeWPguaVsO+8jOeUqOS6juWuieWFqOmqjOivge+8jOm7mOiupOS4uumaj+acuuWtl+espuS4su+8iOagvOW8j++8mnByZC17cHJvdmlkZXJ9LXvpmo/mnLrlrZfnrKbkuLJ977yJXG4gICAgcXVlcnlQYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IC8vIOmineWklueahOafpeivouWPguaVsO+8jOWwhuWQiOW5tuWIsOaOiOadgyBVUkkg5LitXG4gICAgdHlwZT86ICh0eXBlb2YgT0FVVEhfVFlQRSlba2V5b2YgdHlwZW9mIE9BVVRIX1RZUEVdIC8vIOexu+Wei++8iOWPr+mAie+8ie+8jOm7mOiupOS4uidzaWduX2luJywgc2lnbl9pbjog55m75b2V77yMYmluZF9pZGVudGl0eTog57uR5a6a6Lqr5Lu9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduSW5PQXV0aFJlcyB7XG4gIGRhdGE6IHtcbiAgICB1cmw/OiBzdHJpbmcgLy8g5o6I5p2D6aG16Z2iVVJMXG4gICAgcHJvdmlkZXI/OiBzdHJpbmcgLy8g56ys5LiJ5pa55bmz5Y+w5qCH6K+GXG4gICAgc2NvcGVzPzogc3RyaW5nIC8vIOaOiOadg+iMg+WbtFxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRDbGFpbXNSZXMge1xuICBkYXRhOiB7XG4gICAgLy8g5Luk54mM5aOw5piO5L+h5oGvXG4gICAgY2xhaW1zPzoge1xuICAgICAgaXNzOiBzdHJpbmcgLy8gaXNzdWVyXG4gICAgICBzdWI6IHN0cmluZyAvLyBzdWJqZWN0XG4gICAgICBhdWQ6IHN0cmluZyAvLyAgYXVkaWVuY2VcbiAgICAgIGV4cDogbnVtYmVyIC8vICBleHBpcmF0aW9uIHRpbWVcbiAgICAgIGlhdDogbnVtYmVyIC8vIGlzc3VlZCBhdFxuICAgICAgYXRfaGFzaDogc3RyaW5nIC8vIGFjY2VzcyB0b2tlbiBoYXNoXG4gICAgICBuYW1lOiBzdHJpbmcgLy8g5ZCN56ewXG4gICAgICBwaWN0dXJlPzogc3RyaW5nIC8vIOWktOWDj1VSTFxuICAgICAgZW1haWw/OiBzdHJpbmcgLy8g6YKu566xXG4gICAgICBwaG9uZV9udW1iZXI/OiBzdHJpbmcgLy8g5omL5py65Y+3XG4gICAgICBzY29wZTogc3RyaW5nIC8vIOaOiOadg+iMg+WbtFxuICAgICAgcHJvamVjdF9pZDogc3RyaW5nIC8vIOmhueebrklEXG4gICAgICBwcm92aWRlcj86IHN0cmluZyAvLyDnrKzkuInmlrnlubPlj7DmoIfor4ZcbiAgICAgIHByb3ZpZGVyX3R5cGU/OiBzdHJpbmcgLy8g56ys5LiJ5pa55bmz5Y+w57G75Z6LXG4gICAgICBncm91cHM/OiBzdHJpbmdbXSAvLyDnlKjmiLfnu4RcbiAgICAgIG1ldGE/OiB7XG4gICAgICAgIHd4T3BlbklkPzogc3RyaW5nXG4gICAgICAgIHd4VW5pb25JZD86IHN0cmluZ1xuICAgICAgfVxuICAgICAgdXNlcl9pZDogc3RyaW5nIC8vIOeUqOaIt0lEXG4gICAgICByb2xlczogc3RyaW5nW10gLy8g6KeS6ImyXG4gICAgICB1c2VyX3R5cGU6IHN0cmluZyAvLyDnlKjmiLfnsbvlnotcbiAgICAgIGNsaWVudF90eXBlOiBzdHJpbmcgLy8g5a6i5oi356uv57G75Z6LXG4gICAgICBpc19zeXN0ZW1fYWRtaW46IGJvb2xlYW4gLy8g5piv5ZCm57O757uf566h55CG5ZGYXG4gICAgfVxuICAgIC8vIOS7pOeJjOWktOmDqOS/oeaBr1xuICAgIGhlYWRlcj86IHtcbiAgICAgIGFsZzogc3RyaW5nIC8vIOWKoOWvhueul+azlVxuICAgICAga2lkOiBzdHJpbmcgLy8g5Luk54mMSURcbiAgICB9XG4gICAgc2lnbmF0dXJlPzogc3RyaW5nIC8vIOS7pOeJjOetvuWQjVxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVVc2VyUmVxIGV4dGVuZHMgYXV0aE1vZGVscy5Nb2RpZnlVc2VyQmFzaWNJbmZvUmVxdWVzdCB7XG4gIGVtYWlsPzogc3RyaW5nIC8vIOmCrueuse+8iOWPr+mAie+8iVxuICBwaG9uZT86IHN0cmluZyAvLyDmiYvmnLrlj7fvvIjlj6/pgInvvIlcbiAgdXNlcm5hbWU/OiBzdHJpbmcgLy8g55So5oi35ZCN56ew77yI5Y+v6YCJ77yJ77yM6ZW/5bqmIDUtMjQg5L2N77yM5pSv5oyB5a2X56ym5Lit6Iux5paH44CB5pWw5a2X44CB54m55q6K5a2X56ym77yI5LuF5pSv5oyBXy3vvInvvIzkuI3mlK/mjIHkuK3mlodcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmcgLy8g5o+P6L+w77yI5Y+v6YCJ77yJXG4gIGF2YXRhcl91cmw/OiBzdHJpbmcgLy8g5aS05YOPVVJM77yI5Y+v6YCJ77yJXG4gIG5pY2tuYW1lPzogc3RyaW5nIC8vIOaYteensO+8iOWPr+mAie+8iVxuICBnZW5kZXI/OiAnTUFMRScgfCAnRkVNQUxFJyAvLyDmgKfliKvvvIjlj6/pgInvvIlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRVc2VySWRlbnRpdGllc1JlcyB7XG4gIGRhdGE6IHtcbiAgICBpZGVudGl0aWVzPzpcbiAgICB8IEFycmF5PHtcbiAgICAgIGlkOiBzdHJpbmcgLy8g6Lqr5Lu95rqQ5qCH6K+GXG4gICAgICBuYW1lOiBzdHJpbmcgLy8g6Lqr5Lu95rqQ5ZCN56ewXG4gICAgICBwaWN0dXJlOiBzdHJpbmcgLy8g5aS05YOPVVJMXG4gICAgfT5cbiAgfVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua0lkZW50aXR5UmVxIHtcbiAgcHJvdmlkZXI6IHN0cmluZyAvLyDouqvku73mupDmoIfor4bvvIjlv4XloavvvIlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbmxpbmtJZGVudGl0eVJlcSB7XG4gIHByb3ZpZGVyOiBzdHJpbmcgLy8g6Lqr5Lu95rqQ5qCH6K+G77yI5b+F5aGr77yJXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua0lkZW50aXR5UmVzIHtcbiAgZGF0YToge1xuICAgIHByb3ZpZGVyPzogc3RyaW5nIC8vIOe7keWumueahOi6q+S7vea6kOagh+ivhlxuICAgIHR5cGU/OiAodHlwZW9mIE9BVVRIX1RZUEUpW2tleW9mIHR5cGVvZiBPQVVUSF9UWVBFXSAvLyDnsbvlnovvvIjlj6/pgInvvInvvIzpu5jorqTkuLonc2lnbl9pbicsIHNpZ25faW46IOeZu+W9le+8jGJpbmRfaWRlbnRpdHk6IOe7keWumui6q+S7vVxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBPbkF1dGhTdGF0ZUNoYW5nZUV2ZW50ID1cbiAgfCAnU0lHTkVEX09VVCcgLy8g55So5oi35bey55m75Ye6XG4gIHwgJ1NJR05FRF9JTicgLy8g55So5oi355m75b2V5oiQ5YqfXG4gIHwgJ0lOSVRJQUxfU0VTU0lPTicgLy8g5Yid5aeL5Lya6K+d5bey5bu656uLXG4gIHwgJ1BBU1NXT1JEX1JFQ09WRVJZJyAvLyDlr4bnoIHlt7Lph43nva5cbiAgfCAnVE9LRU5fUkVGUkVTSEVEJyAvLyDku6TniYzlt7LliLfmlrBcbiAgfCAnVVNFUl9VUERBVEVEJyAvLyDnlKjmiLfkv6Hmga/lt7Lmm7TmlrBcbiAgfCAnQklORF9JREVOVElUWScgLy8g6Lqr5Lu95rqQ57uR5a6a57uT5p6cXG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgT25BdXRoU3RhdGVDaGFuZ2VDYWxsYmFjayA9IChcbiAgZXZlbnQ6IE9uQXV0aFN0YXRlQ2hhbmdlRXZlbnQsXG4gIHNlc3Npb246IFNlc3Npb24sXG4gIGluZm8/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuKSA9PiB2b2lkXG5cbnR5cGUgTW9iaWxlT3RwVHlwZSA9ICdzbXMnIHwgJ3Bob25lX2NoYW5nZSdcbnR5cGUgRW1haWxPdHBUeXBlID0gJ3NpZ251cCcgfCAnaW52aXRlJyB8ICdtYWdpY2xpbmsnIHwgJ3JlY292ZXJ5JyB8ICdlbWFpbF9jaGFuZ2UnIHwgJ2VtYWlsJ1xuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlPdHBSZXEge1xuICB0eXBlPzogTW9iaWxlT3RwVHlwZSB8IEVtYWlsT3RwVHlwZVxuICBlbWFpbD86IHN0cmluZyAvLyDpgq7nrrHvvIjlj6/pgInvvIzkuI7miYvmnLrlj7fkuozpgInkuIDvvIlcbiAgcGhvbmU/OiBzdHJpbmcgLy8g5omL5py65Y+377yI5Y+v6YCJ77yM5LiO6YKu566x5LqM6YCJ5LiA77yJXG4gIHRva2VuOiBzdHJpbmcgLy8g6aqM6K+B56CB77yI5b+F5aGr77yJXG4gIG1lc3NhZ2VJZD86IHN0cmluZyAvLyDpqozor4HnoIHlr7nlupRJRO+8iOWPr+mAie+8iVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbldpdGhPdHBSZXEge1xuICBlbWFpbD86IHN0cmluZyAvLyDpgq7nrrHvvIjlj6/pgInvvIzkuI7miYvmnLrlj7fkuozpgInkuIDvvIlcbiAgcGhvbmU/OiBzdHJpbmcgLy8g5omL5py65Y+377yI5Y+v6YCJ77yM5LiO6YKu566x5LqM6YCJ5LiA77yJXG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBjb2RlIOmqjOivgeeggVxuICogQHBhcmFtIG1lc3NhZ2VJZCDlj6/pgInvvIxSZXNlbmRSZXMuZGF0YS5tZXNzYWdlSWRcbiAqIEByZXR1cm5zXG4gKi9cbmRlY2xhcmUgdHlwZSBPdHBDYWxsYmFjayA9IChwYXJhbXM6IFZlcmlmeU90cFJlcSkgPT4gUHJvbWlzZTxTaWduSW5SZXM+XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aE90cFJlcyB7XG4gIGRhdGE6IFNpZ25JblJlc1snZGF0YSddICYge1xuICAgIHZlcmlmeU90cD86IE90cENhbGxiYWNrIC8vIOmqjOivgeeggeWbnuiwg+WHveaVsO+8jOaUr+aMgW1lc3NhZ2VJZOWPguaVsFxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXMge1xuICBkYXRhOiB7XG4gICAgdmVyaWZ5T3RwPzogT3RwQ2FsbGJhY2sgLy8g6aqM6K+B56CB5Zue6LCD5Ye95pWw77yM5pSv5oyBbWVzc2FnZUlk5Y+C5pWwXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNlbmRSZXEge1xuICBlbWFpbD86IHN0cmluZyAvLyDpgq7nrrHvvIjlj6/pgInvvIzkuI7miYvmnLrlj7fkuozpgInkuIDvvIlcbiAgcGhvbmU/OiBzdHJpbmcgLy8g5omL5py65Y+377yI5Y+v6YCJ77yM5LiO6YKu566x5LqM6YCJ5LiA77yJXG4gIHR5cGU/OiAnc2lnbnVwJyB8ICdlbWFpbF9jaGFuZ2UnIHwgJ3Bob25lX2NoYW5nZScgfCAnc21zJyAvLyDnsbvlnovvvIjlj6/pgInvvIlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNlbmRSZXMge1xuICBkYXRhOiB7XG4gICAgbWVzc2FnZUlkPzogc3RyaW5nIC8vIOa2iOaBr0lE77yI6aqM6K+B56CBSUTvvIlcbiAgfVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5T0F1dGhSZXEge1xuICBjb2RlPzogc3RyaW5nIC8vIOaOiOadg+egge+8iOWPr+mAie+8jOm7mOiupOS7jlVSTOWPguaVsOiOt+WPlu+8iVxuICBzdGF0ZT86IHN0cmluZyAvLyDnirbmgIHlj4LmlbDvvIjlj6/pgInvvIzpu5jorqTku45VUkzlj4LmlbDojrflj5bvvIlcbiAgcHJvdmlkZXI/OiBzdHJpbmcgLy8g56ys5LiJ5pa55bmz5Y+w5qCH6K+G77yI5Y+v6YCJ77yM6buY6K6k5LuOc2Vzc2lvbuiOt+WPlu+8iVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVVzZXJBdHRyaWJ1dGVzIHtcbiAgbm9uY2U6IHN0cmluZyAvLyDpqozor4HnoIFcbiAgcGFzc3dvcmQ6IHN0cmluZyAvLyDmlrDlr4bnoIFcbn1cblxuLy8g6YeN572u5a+G56CB5ZON5bqU57G75Z6LXG5leHBvcnQgaW50ZXJmYWNlIFJlc2V0UGFzc3dvcmRGb3JFbWFpbFJlcyB7XG4gIGRhdGE6IHtcbiAgICB1cGRhdGVVc2VyPzogKGF0dHJpYnV0ZXM6IFVwZGF0ZVVzZXJBdHRyaWJ1dGVzKSA9PiBQcm9taXNlPFNpZ25JblJlcz4gLy8g6aqM6K+B56CB5Zue6LCD5Ye95pWw77yM5pSv5oyB5paw5a+G56CB5Y+C5pWwXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG4vLyDph43mlrDorqTor4Hlk43lupTnsbvlnotcbmV4cG9ydCBpbnRlcmZhY2UgUmVhdXRoZW50aWNhdGVSZXMge1xuICBkYXRhOiB7XG4gICAgdXBkYXRlVXNlcj86IChhdHRyaWJ1dGVzOiBVcGRhdGVVc2VyQXR0cmlidXRlcykgPT4gUHJvbWlzZTxTaWduSW5SZXM+IC8vIOmqjOivgeeggeWbnuiwg+WHveaVsO+8jOaUr+aMgeaWsOWvhueggeWPguaVsFxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXRTZXNzaW9uUmVxIHtcbiAgYWNjZXNzX3Rva2VuOiBzdHJpbmcgLy8g6K6/6Zeu5Luk54mMXG4gIHJlZnJlc2hfdG9rZW46IHN0cmluZyAvLyDliLfmlrDku6TniYxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVNZVJlcSB7XG4gIHBhc3N3b3JkOiBzdHJpbmcgLy8g55So5oi35a+G56CBXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZEZvck9sZFJlcSB7XG4gIG9sZF9wYXNzd29yZDogc3RyaW5nIC8vIOaXp+WvhueggVxuICBuZXdfcGFzc3dvcmQ6IHN0cmluZyAvLyDmlrDlr4bnoIFcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function saveToBrowserSession(key: string, value: Record<string, any>): void;
|
|
2
|
+
export declare function getBrowserSession(key: string): any;
|
|
3
|
+
export declare function removeBrowserSession(key: string): boolean;
|
|
4
|
+
export declare function addUrlSearch(search: Location['search'], hash?: Location['hash']): void;
|
|
5
|
+
export declare function removeUrlParams(params: string[]): void;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeUrlParams = exports.addUrlSearch = exports.removeBrowserSession = exports.getBrowserSession = exports.saveToBrowserSession = void 0;
|
|
4
|
+
function saveToBrowserSession(key, value) {
|
|
5
|
+
try {
|
|
6
|
+
sessionStorage.setItem(key, JSON.stringify(value));
|
|
7
|
+
}
|
|
8
|
+
catch (error) {
|
|
9
|
+
console.error('Failed to save to browser session:', error);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.saveToBrowserSession = saveToBrowserSession;
|
|
13
|
+
function getBrowserSession(key) {
|
|
14
|
+
try {
|
|
15
|
+
var data = JSON.parse(sessionStorage.getItem(key));
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error('Failed to get browser session:', error);
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.getBrowserSession = getBrowserSession;
|
|
24
|
+
function removeBrowserSession(key) {
|
|
25
|
+
try {
|
|
26
|
+
sessionStorage.removeItem(key);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.error('Failed to remove browser session:', error);
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.removeBrowserSession = removeBrowserSession;
|
|
35
|
+
function addUrlSearch(search, hash) {
|
|
36
|
+
if (search === undefined)
|
|
37
|
+
return;
|
|
38
|
+
var url = new URL(window.location.href);
|
|
39
|
+
url.search = search;
|
|
40
|
+
url.hash = hash || url.hash;
|
|
41
|
+
window.history.replaceState({}, '', url.href);
|
|
42
|
+
}
|
|
43
|
+
exports.addUrlSearch = addUrlSearch;
|
|
44
|
+
function removeUrlParams(params) {
|
|
45
|
+
if (typeof window === 'undefined')
|
|
46
|
+
return;
|
|
47
|
+
try {
|
|
48
|
+
var url_1 = new URL(window.location.href);
|
|
49
|
+
params.forEach(function (param) {
|
|
50
|
+
url_1.searchParams.delete(param);
|
|
51
|
+
});
|
|
52
|
+
window.history.replaceState({}, '', url_1.href);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.error('Failed to remove URL params:', error);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.removeUrlParams = removeUrlParams;
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsU0FBZ0Isb0JBQW9CLENBQUMsR0FBVyxFQUFFLEtBQTBCO0lBQzFFLElBQUk7UUFDRixjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7S0FDbkQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxDQUFDLENBQUE7S0FDM0Q7QUFDSCxDQUFDO0FBTkQsb0RBTUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxHQUFXO0lBQzNDLElBQUk7UUFDRixJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNwRCxPQUFPLElBQUksQ0FBQTtLQUNaO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3RELE9BQU8sSUFBSSxDQUFBO0tBQ1o7QUFDSCxDQUFDO0FBUkQsOENBUUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxHQUFXO0lBQzlDLElBQUk7UUFDRixjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzlCLE9BQU8sSUFBSSxDQUFBO0tBQ1o7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDekQsT0FBTyxJQUFJLENBQUE7S0FDWjtBQUNILENBQUM7QUFSRCxvREFRQztBQUVELFNBQWdCLFlBQVksQ0FBQyxNQUEwQixFQUFFLElBQXVCO0lBQzlFLElBQUksTUFBTSxLQUFLLFNBQVM7UUFBRSxPQUFNO0lBR2hDLElBQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFHekMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFFbkIsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQTtJQUczQixNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUMvQyxDQUFDO0FBYkQsb0NBYUM7QUFNRCxTQUFnQixlQUFlLENBQUMsTUFBZ0I7SUFDOUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1FBQUUsT0FBTTtJQUV6QyxJQUFJO1FBQ0YsSUFBTSxLQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUd6QyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUNuQixLQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNoQyxDQUFDLENBQUMsQ0FBQTtRQUdGLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0tBQzlDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFBO0tBQ3JEO0FBQ0gsQ0FBQztBQWhCRCwwQ0FnQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIOWtmOWCqOWPguaVsOWIsOa1j+iniOWZqHNlc3Npb25TdG9yYWdlXG4gKiBAcGFyYW0ga2V5XG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhdmVUb0Jyb3dzZXJTZXNzaW9uKGtleTogc3RyaW5nLCB2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICB0cnkge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHNhdmUgdG8gYnJvd3NlciBzZXNzaW9uOicsIGVycm9yKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCcm93c2VyU2Vzc2lvbihrZXk6IHN0cmluZykge1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5KSlcbiAgICByZXR1cm4gZGF0YVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBnZXQgYnJvd3NlciBzZXNzaW9uOicsIGVycm9yKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUJyb3dzZXJTZXNzaW9uKGtleTogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcmVtb3ZlIGJyb3dzZXIgc2Vzc2lvbjonLCBlcnJvcilcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRVcmxTZWFyY2goc2VhcmNoOiBMb2NhdGlvblsnc2VhcmNoJ10sIGhhc2g/OiBMb2NhdGlvblsnaGFzaCddKSB7XG4gIGlmIChzZWFyY2ggPT09IHVuZGVmaW5lZCkgcmV0dXJuXG5cbiAgLy8gMS4g6Kej5p6Q5b2T5YmNIFVSTFxuICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKVxuXG4gIC8vIDIuIOaTjeS9nOafpeivouWPguaVsFxuICB1cmwuc2VhcmNoID0gc2VhcmNoIC8vIOimhuebluW3suacieWPguaVsOaIluaWsOWinuWPguaVsFxuXG4gIHVybC5oYXNoID0gaGFzaCB8fCB1cmwuaGFzaFxuXG4gIC8vIDMuIOabtOaWsOWcsOWdgOagj++8iOS/neeVmeWTiOW4jOWAvO+8iVxuICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sICcnLCB1cmwuaHJlZilcbn1cblxuLyoqXG4gKiDku44gVVJMIOS4reenu+mZpOaMh+WumueahOafpeivouWPguaVsFxuICogQHBhcmFtIHBhcmFtcyDopoHnp7vpmaTnmoTlj4LmlbDlkI3mlbDnu4RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVVybFBhcmFtcyhwYXJhbXM6IHN0cmluZ1tdKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuXG5cbiAgdHJ5IHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKVxuXG4gICAgLy8g56e76Zmk5oyH5a6a55qE5Y+C5pWwXG4gICAgcGFyYW1zLmZvckVhY2goKHBhcmFtKSA9PiB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmRlbGV0ZShwYXJhbSlcbiAgICB9KVxuXG4gICAgLy8g5L2/55SoIHJlcGxhY2VTdGF0ZSDmm7TmlrAgVVJM77yM5LiN5Lya5Zyo5rWP6KeI5Zmo5Y6G5Y+y5Lit55WZ5LiL6K6w5b2VXG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCAnJywgdXJsLmhyZWYpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHJlbW92ZSBVUkwgcGFyYW1zOicsIGVycm9yKVxuICB9XG59XG4iXX0=
|
package/dist/esm/adapter.js
CHANGED
|
@@ -183,34 +183,34 @@ var dealUserAdapter = function (config, adapter) {
|
|
|
183
183
|
};
|
|
184
184
|
var adapterReq_1 = new adapter.reqClass(reqClassParams);
|
|
185
185
|
data.baseRequest = function (url, options) {
|
|
186
|
-
var _a;
|
|
186
|
+
var _a, _b, _c, _d, _e;
|
|
187
187
|
return __awaiter(this, void 0, void 0, function () {
|
|
188
188
|
var res, requestType, func, error_1;
|
|
189
|
-
return __generator(this, function (
|
|
190
|
-
switch (
|
|
189
|
+
return __generator(this, function (_f) {
|
|
190
|
+
switch (_f.label) {
|
|
191
191
|
case 0:
|
|
192
192
|
res = {};
|
|
193
|
-
requestType = ((_a = options.method) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) || '
|
|
194
|
-
func = adapterReq_1 === null || adapterReq_1 === void 0 ? void 0 : adapterReq_1[requestType];
|
|
193
|
+
requestType = ((_a = options.method) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) || 'post';
|
|
194
|
+
func = (_c = (_b = adapterReq_1 === null || adapterReq_1 === void 0 ? void 0 : adapterReq_1[requestType]) === null || _b === void 0 ? void 0 : _b.bind) === null || _c === void 0 ? void 0 : _c.call(_b, adapterReq_1);
|
|
195
195
|
if (typeof func !== 'function') {
|
|
196
196
|
throw new Error("invalid \u3010".concat(requestType, "\u3011 request method"));
|
|
197
197
|
}
|
|
198
|
-
|
|
198
|
+
_f.label = 1;
|
|
199
199
|
case 1:
|
|
200
|
-
|
|
201
|
-
if ((!options.headers['content-type'] || options.headers['content-type'].includes('application/json')) && typeof options.body
|
|
200
|
+
_f.trys.push([1, 3, , 4]);
|
|
201
|
+
if ((!((_d = options.headers) === null || _d === void 0 ? void 0 : _d['content-type']) || ((_e = options.headers) === null || _e === void 0 ? void 0 : _e['content-type'].includes('application/json'))) && !['string', 'undefined'].includes(typeof options.body)) {
|
|
202
202
|
options.data = options.data || options.body;
|
|
203
203
|
options.body = JSON.stringify(options.body);
|
|
204
204
|
}
|
|
205
205
|
return [4, func(__assign({ url: url }, options))];
|
|
206
206
|
case 2:
|
|
207
|
-
res =
|
|
207
|
+
res = _f.sent();
|
|
208
208
|
res = dealAdapterRequestData(res, __assign(__assign({}, options), { url: url }));
|
|
209
209
|
return [3, 4];
|
|
210
210
|
case 3:
|
|
211
|
-
error_1 =
|
|
212
|
-
res = error_1;
|
|
213
|
-
throw
|
|
211
|
+
error_1 = _f.sent();
|
|
212
|
+
res = __assign(__assign({}, error_1 === null || error_1 === void 0 ? void 0 : error_1.data), error_1);
|
|
213
|
+
throw res;
|
|
214
214
|
case 4:
|
|
215
215
|
if (res === null || res === void 0 ? void 0 : res.error) {
|
|
216
216
|
throw res;
|
|
@@ -228,12 +228,15 @@ var dealUserAdapter = function (config, adapter) {
|
|
|
228
228
|
return data;
|
|
229
229
|
};
|
|
230
230
|
var dealAuthAdapter = function (config, adapter) {
|
|
231
|
-
if (!adapterForWxMp.isMatch() || (config.storage && config.baseRequest))
|
|
232
|
-
return config;
|
|
233
231
|
var data = __assign({}, config);
|
|
234
232
|
var authOptions = {};
|
|
233
|
+
if (adapter === null || adapter === void 0 ? void 0 : adapter.captchaOptions) {
|
|
234
|
+
data.captchaOptions = adapter.captchaOptions;
|
|
235
|
+
}
|
|
236
|
+
if (!adapterForWxMp.isMatch() || (config.storage && config.baseRequest))
|
|
237
|
+
return data;
|
|
235
238
|
try {
|
|
236
|
-
var _a = adapterForWxMp.genAdapter(), localStorage_1 = _a.localStorage, ReqClass = _a.reqClass;
|
|
239
|
+
var _a = adapterForWxMp.genAdapter({}), localStorage_1 = _a.localStorage, ReqClass = _a.reqClass;
|
|
237
240
|
if (localStorage_1) {
|
|
238
241
|
authOptions.storage = new OauthClientStorageBase({ localStorage: localStorage_1, adapter: adapter });
|
|
239
242
|
}
|
|
@@ -261,4 +264,4 @@ export var useAuthAdapter = function (config) {
|
|
|
261
264
|
}
|
|
262
265
|
return dealAuthAdapter(config, config.adapter);
|
|
263
266
|
};
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUs1QztJQUVFLGdDQUFZLE1BQW1GOztRQUM3RixJQUFJO1lBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLEtBQUksQ0FBQyxDQUFBLE1BQUEsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTywwQ0FBRSxJQUFJLDBDQUFFLFVBQVUsS0FBSSxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUE7U0FDM0c7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWSxLQUFJLEVBQUUsQ0FBQTtTQUMvQztJQUNILENBQUM7SUFNSyx3Q0FBTyxHQUFiLFVBQWMsR0FBVzs7O2dCQUN2QixXQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFBOzs7S0FDdEM7SUFPSywyQ0FBVSxHQUFoQixVQUFpQixHQUFXOzs7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBOzs7O0tBQ2xDO0lBUUssd0NBQU8sR0FBYixVQUFjLEdBQVcsRUFBRSxLQUFhOzs7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTs7OztLQUN0QztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFD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QyxJQUFNLGNBQWMsR0FBRyxVQUFDLE1BQW1CO0lBRWhELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSyxNQUFNLENBQUMsT0FBZSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDaEUsT0FBTyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtLQUMvQztJQUVELE9BQU8sZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDaEQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU0RLQWRhcHRlckludGVyZmFjZSB9IGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci1pbnRlcmZhY2UnXG5pbXBvcnQgeyBhZGFwdGVyRm9yV3hNcCB9IGZyb20gJy4vdXRpbGl0aWVzJ1xuaW1wb3J0IHR5cGUgeyBBdXRoT3B0aW9ucyB9IGZyb20gJ0BjbG91ZGJhc2Uvb2F1dGgnXG5cbmRlY2xhcmUgY29uc3Qgd3g6IGFueVxuXG5jbGFzcyBPYXV0aENsaWVudFN0b3JhZ2VCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGxvY2FsU3RvcmFnZVxuICBjb25zdHJ1Y3Rvcihjb25maWc/OiB7IGxvY2FsU3RvcmFnZTogYW55IC8qIFN0b3JhZ2VJbnRlcmZhY2UgKi87IGFkYXB0ZXI6IFNES0FkYXB0ZXJJbnRlcmZhY2UgfSkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZSA9IGNvbmZpZz8ubG9jYWxTdG9yYWdlIHx8IChjb25maWc/LmFkYXB0ZXI/LnJvb3Q/Lmdsb2JhbFRoaXMgfHwgZ2xvYmFsVGhpcykubG9jYWxTdG9yYWdlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlID0gY29uZmlnPy5sb2NhbFN0b3JhZ2UgfHwge31cbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIEdldCBJdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHJldHVybiB7UHJvbWlzZTxzdHJpbmcgfCBudWxsPn1cbiAgICovXG4gIGFzeW5jIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIEl0ZW0uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgSXRlbS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpXG4gIH1cblxuICBnZXRJdGVtU3luYyhrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSlcbiAgfVxuXG4gIHNldEl0ZW1TeW5jKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKVxuICB9XG5cbiAgcmVtb3ZlSXRlbVN5bmMoa2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSlcbiAgfVxufVxuXG4vKipcbiAqIGNvcHkgdG8gZ2l0QGdpdC53b2EuY29tOlFCYXNlL2xjYXAvZGF0YXNvdXJjZS5naXQvcGFja2FnZXMvY2xvdWQtc2RrL2NvbW1vblxuICog5ZCM5q2l5L+u5pS5XG4gKi9cbmNvbnN0IFVSTF9SRUcgPSAvXlteOl0rOlxcL1xcL1teL10rKFxcL1tePyNdKykvXG5cbmNvbnN0IGRlYWxBZGFwdGVyUmVxdWVzdERhdGEgPSAocmVzLCBvcHRpb25zKSA9PiB7XG4gIGNvbnN0IHJlcXVlc3RJZCA9IG9wdGlvbnM/LmhlYWRlcnM/LlsneC1yZXF1ZXN0LWlkJ11cblxuICBpZiAoIXJlcykge1xuICAgIHJlcyA9IHt9XG4gIH1cblxuICBpZiAocmVzPy5jb2RlIHx8IHJlcz8uZGF0YT8uZXJyb3JfY29kZSkge1xuICAgIHJlcyA9IHtcbiAgICAgIGVycm9yOiByZXMuY29kZSB8fCByZXMuZGF0YS5lcnJvcixcbiAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiByZXMuZGF0YS5lcnJvcl9kZXNjcmlwdGlvbiB8fCByZXMubWVzc2FnZSB8fCByZXMuY29kZSB8fCByZXMuZGF0YS5lcnJvcl9jb2RlLFxuICAgICAgcmVxdWVzdF9pZDogcmVzLnJlcXVlc3RJZCxcbiAgICAgIGVycm9yX2NvZGU6IHJlcy5kYXRhPy5lcnJvcl9jb2RlLFxuICAgIH1cbiAgfVxuXG4gIGlmICghcmVzPy5yZXF1ZXN0X2lkKSB7XG4gICAgcmVzLnJlcXVlc3RfaWQgPSByZXMucmVxdWVzdF9pZCB8fCByZXF1ZXN0SWRcbiAgfVxuXG4gIGlmIChyZXM/LmVycm9yKSB7XG4gICAgcmVzLmVycm9yX3VyaSA9IGdldFVybFBhdGgob3B0aW9ucz8udXJsKVxuICAgIHJldHVybiByZXNcbiAgfVxuXG4gIHJldHVybiByZXM/LmRhdGEgfHwge31cbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVPYXV0aENsaWVudFJlcXVlc3QocmVxQ2xhc3MpIHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgYm9keT86IGFueSB8IG51bGxcbiAgICAgIGhlYWRlcnM/OiBhbnkgfCBudWxsXG4gICAgICBtZXRob2Q/OiBzdHJpbmdcbiAgICAgIFtrZXk6IHN0cmluZ106IGFueVxuICAgIH0sXG4gICkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAvLyBPYmplY3RzIG11c3QgYmUgY29waWVkIHRvIHByZXZlbnQgbW9kaWZpY2F0aW9uIG9mIGRhdGEgc3VjaCBhcyBib2R5LlxuICAgICAgY29uc3QgY29weU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKVxuICAgICAgaWYgKGNvcHlPcHRpb25zLmJvZHkgJiYgdHlwZW9mIGNvcHlPcHRpb25zLmJvZHkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvcHlPcHRpb25zLmJvZHkgPSBKU09OLnN0cmluZ2lmeShjb3B5T3B0aW9ucy5ib2R5KVxuICAgICAgfVxuXG4gICAgICBjb25zdCB0YXNrID0gd3gucmVxdWVzdCh7XG4gICAgICAgIHVybCxcbiAgICAgICAgZGF0YTogY29weU9wdGlvbnMuYm9keSxcbiAgICAgICAgdGltZW91dDogcmVxQ2xhc3MuX3RpbWVvdXQsXG4gICAgICAgIG1ldGhvZDogY29weU9wdGlvbnMubWV0aG9kIHx8ICdHRVQnLFxuICAgICAgICBoZWFkZXI6IGNvcHlPcHRpb25zLmhlYWRlcnMsXG4gICAgICAgIHN1Y2Nlc3MocmVzKSB7XG4gICAgICAgICAgcmVzID0gZGVhbEFkYXB0ZXJSZXF1ZXN0RGF0YShyZXMsIHsgLi4ub3B0aW9ucywgdXJsIH0pXG5cbiAgICAgICAgICBpZiAocmVzLmVycm9yKSB7XG4gICAgICAgICAgICByZWplY3QocmVzKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKHJlcylcbiAgICAgICAgfSxcbiAgICAgICAgZmFpbChlcnIpIHtcbiAgICAgICAgICByZWplY3Qoe1xuICAgICAgICAgICAgZXJyb3I6ICd1bnJlYWNoYWJsZScsXG4gICAgICAgICAgICBlcnJvcl9kZXNjcmlwdGlvbjogKGVyciBhcyBFcnJvcikubWVzc2FnZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZShlcnIpIHtcbiAgICAgICAgICBpZiAoIWVyciB8fCAhZXJyLmVyck1zZykge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghcmVxQ2xhc3MuX3RpbWVvdXQgfHwgcmVxQ2xhc3MuX3Jlc3RyaWN0ZWRNZXRob2RzLmluZGV4T2YoJ3JlcXVlc3QnKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB7IGVyck1zZyB9ID0gZXJyXG4gICAgICAgICAgaWYgKGVyck1zZyA9PT0gJ3JlcXVlc3Q6ZmFpbCB0aW1lb3V0Jykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHJlcUNsYXNzLl90aW1lb3V0TXNnKVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdGFzay5hYm9ydCgpXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIEdldCB1cmwgcGF0aC5cbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmxcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZ2V0VXJsUGF0aCh1cmw6IHN0cmluZykge1xuICAvLyByZXR1cm4gcGF0aCBpZiBtYXRjaGVkLCBvciBvcmlnaW5hbCB1cmxcbiAgcmV0dXJuIFVSTF9SRUcudGVzdCh1cmwpID8gUmVnRXhwLiQxIDogdXJsXG59XG5cbi8qKlxuICog55So5oi36Ieq5a6a5LmJYWRhcHRlcuWkhOeQhlxuICogQHBhcmFtIGNvbmZpZ1xuICogQHBhcmFtIGFkYXB0ZXJcbiAqIEByZXR1cm5zXG4gKi9cbmNvbnN0IGRlYWxVc2VyQWRhcHRlciA9IChjb25maWc6IEF1dGhPcHRpb25zLCBhZGFwdGVyOiBTREtBZGFwdGVySW50ZXJmYWNlKSA9PiB7XG4gIGNvbnN0IGRhdGEgPSB7IC4uLmNvbmZpZyB9XG5cbiAgdHJ5IHtcbiAgICBpZiAoIWNvbmZpZz8uc3RvcmFnZSAmJiBhZGFwdGVyPy5sb2NhbFN0b3JhZ2UpIHtcbiAgICAgIGRhdGEuc3RvcmFnZSA9IG5ldyBPYXV0aENsaWVudFN0b3JhZ2VCYXNlKHsgbG9jYWxTdG9yYWdlOiBhZGFwdGVyLmxvY2FsU3RvcmFnZSwgYWRhcHRlciB9KVxuICAgIH1cblxuICAgIGlmICghY29uZmlnLmNhcHRjaGFPcHRpb25zICYmIGFkYXB0ZXI/LmNhcHRjaGFPcHRpb25zKSB7XG4gICAgICBkYXRhLmNhcHRjaGFPcHRpb25zID0gYWRhcHRlci5jYXB0Y2hhT3B0aW9uc1xuICAgIH1cblxuICAgIC8vIOeUqOaIt+acquS8oOWFpWJhc2VSZXF1ZXN05ZKMcmVxdWVzdOaXtuWkhOeQhlxuICAgIC8vIE9BdXRoMkNsaWVudOS8mOWFiOS7pSBiYXNlUmVxdWVzdCDkuLrlh4ZcbiAgICAvLyBBdXRoIOWcqOayoeaciSByZXF1ZXN0IOeahOaXtuWAmeS8muWIneWni+WMliBDYXB0Y2hh77yM5LuO6ICM5L2/55SoIENhcHRjaGEg55qEIHJlcXVlc3RcbiAgICBpZiAoIWNvbmZpZy5iYXNlUmVxdWVzdCAmJiAhY29uZmlnLnJlcXVlc3QgJiYgYWRhcHRlcj8ucmVxQ2xhc3MpIHtcbiAgICAgIGNvbnN0IHJlcUNsYXNzUGFyYW1zID0ge1xuICAgICAgICB0aW1lb3V0OiAxMDAwMCxcbiAgICAgICAgcmVzdHJpY3RlZE1ldGhvZHM6IFsnZ2V0JywgJ3Bvc3QnLCAndXBsb2FkJywgJ2Rvd25sb2FkJywgJ3JlcXVlc3QnXSxcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFkYXB0ZXJSZXEgPSBuZXcgYWRhcHRlci5yZXFDbGFzcyhyZXFDbGFzc1BhcmFtcylcbiAgICAgIGRhdGEuYmFzZVJlcXVlc3QgPSBhc3luYyBmdW5jdGlvbiAodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiB7IG1ldGhvZD86IHN0cmluZzsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICAgICAgbGV0IHJlczogYW55ID0ge31cblxuICAgICAgICBjb25zdCByZXF1ZXN0VHlwZSA9IG9wdGlvbnMubWV0aG9kPy50b0xvY2FsZUxvd2VyQ2FzZSgpIHx8ICdnZXQnXG5cbiAgICAgICAgY29uc3QgZnVuYyA9IGFkYXB0ZXJSZXE/LltyZXF1ZXN0VHlwZV1cblxuICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQg44CQJHtyZXF1ZXN0VHlwZX3jgJEgcmVxdWVzdCBtZXRob2RgKVxuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyDlhbzlrrnpnZ7lsI/nqIvluo/nmoRhZGFwdGVyXG4gICAgICAgICAgaWYgKCghb3B0aW9ucy5oZWFkZXJzWydjb250ZW50LXR5cGUnXSB8fCBvcHRpb25zLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddLmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykpICYmIHR5cGVvZiBvcHRpb25zLmJvZHkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBvcHRpb25zLmRhdGEgPSBvcHRpb25zLmRhdGEgfHwgb3B0aW9ucy5ib2R5XG4gICAgICAgICAgICBvcHRpb25zLmJvZHkgPSBKU09OLnN0cmluZ2lmeShvcHRpb25zLmJvZHkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJlcyA9IGF3YWl0IGZ1bmMoeyB1cmwsIC4uLm9wdGlvbnMgfSlcbiAgICAgICAgICByZXMgPSBkZWFsQWRhcHRlclJlcXVlc3REYXRhKHJlcywgeyAuLi5vcHRpb25zLCB1cmwgfSlcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXMgPSBlcnJvclxuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzPy5lcnJvcikge1xuICAgICAgICAgIHRocm93IHJlc1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ3VzZXIgYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG4vKipcbiAqIOWGhee9rum7mOiupGFkYXB0ZXLlpITnkIZcbiAqIEBwYXJhbSBjb25maWdcbiAqIEByZXR1cm5zXG4gKi9cbmNvbnN0IGRlYWxBdXRoQWRhcHRlciA9IChjb25maWc6IEF1dGhPcHRpb25zLCBhZGFwdGVyOiBTREtBZGFwdGVySW50ZXJmYWNlKSA9PiB7XG4gIGlmICghYWRhcHRlckZvcld4TXAuaXNNYXRjaCgpIHx8IChjb25maWcuc3RvcmFnZSAmJiBjb25maWcuYmFzZVJlcXVlc3QpKSByZXR1cm4gY29uZmlnXG5cbiAgY29uc3QgZGF0YSA9IHsgLi4uY29uZmlnIH1cbiAgY29uc3QgYXV0aE9wdGlvbnM6IGFueSA9IHt9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7IGxvY2FsU3RvcmFnZSwgcmVxQ2xhc3M6IFJlcUNsYXNzIH0gPSBhZGFwdGVyRm9yV3hNcC5nZW5BZGFwdGVyKClcbiAgICBpZiAobG9jYWxTdG9yYWdlKSB7XG4gICAgICBhdXRoT3B0aW9ucy5zdG9yYWdlID0gbmV3IE9hdXRoQ2xpZW50U3RvcmFnZUJhc2UoeyBsb2NhbFN0b3JhZ2UsIGFkYXB0ZXIgfSlcbiAgICB9XG4gICAgaWYgKFJlcUNsYXNzKSB7XG4gICAgICBjb25zdCByZXFDbGFzcyA9IG5ldyBSZXFDbGFzcyh7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgICByZXN0cmljdGVkTWV0aG9kczogWydnZXQnLCAncG9zdCcsICd1cGxvYWQnLCAnZG93bmxvYWQnLCAncmVxdWVzdCddLFxuICAgICAgfSlcbiAgICAgIGF1dGhPcHRpb25zLnJlcXVlc3QgPSBnZW5lcmF0ZU9hdXRoQ2xpZW50UmVxdWVzdChyZXFDbGFzcylcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5jYXB0Y2hhT3B0aW9ucykge1xuICAgICAgYXV0aE9wdGlvbnMuYmFzZVJlcXVlc3QgPSBhdXRoT3B0aW9ucy5yZXF1ZXN0XG4gICAgICBhdXRoT3B0aW9ucy5yZXF1ZXN0ID0gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgLi4uZGF0YSwgLi4uYXV0aE9wdGlvbnMgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG5leHBvcnQgY29uc3QgdXNlQXV0aEFkYXB0ZXIgPSAoY29uZmlnOiBBdXRoT3B0aW9ucykgPT4ge1xuICAvLyDlhbzlrrnlvq7mkK1jbG91ZC1zZGvvvIxhdXRo5LitanMtc2Rr6buY6K6k55qEYWRhcHRlcuS4jei/m+ihjOmFjee9rlxuICBpZiAoY29uZmlnLmFkYXB0ZXIgJiYgKGNvbmZpZy5hZGFwdGVyIGFzIGFueSkudHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgcmV0dXJuIGRlYWxVc2VyQWRhcHRlcihjb25maWcsIGNvbmZpZy5hZGFwdGVyKVxuICB9XG5cbiAgcmV0dXJuIGRlYWxBdXRoQWRhcHRlcihjb25maWcsIGNvbmZpZy5hZGFwdGVyKVxufVxuIl19
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUs1QztJQUVFLGdDQUFZLE1BQW1GOztRQUM3RixJQUFJO1lBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLEtBQUksQ0FBQyxDQUFBLE1BQUEsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTywwQ0FBRSxJQUFJLDBDQUFFLFVBQVUsS0FBSSxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUE7U0FDM0c7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWSxLQUFJLEVBQUUsQ0FBQTtTQUMvQztJQUNILENBQUM7SUFNSyx3Q0FBTyxHQUFiLFVBQWMsR0FBVzs7O2dCQUN2QixXQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFBOzs7S0FDdEM7SUFPSywyQ0FBVSxHQUFoQixVQUFpQixHQUFXOzs7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBOzs7O0tBQ2xDO0lBUUssd0NBQU8sR0FBYixVQUFjLEdBQVcsRUFBRSxLQUFhOzs7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTs7OztLQUN0QztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFD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QUFjLEVBQUU7WUFDdkIsV0FBVyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFBO1lBQzdDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFBO1NBQ2hDO1FBRUQsNkJBQVksSUFBSSxHQUFLLFdBQVcsRUFBRTtLQUNuQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQTtLQUMzQztJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLFVBQUMsTUFBbUI7SUFFaEQsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFLLE1BQU0sQ0FBQyxPQUFlLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUNoRSxPQUFPLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQy9DO0lBRUQsT0FBTyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUNoRCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTREtBZGFwdGVySW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IGFkYXB0ZXJGb3JXeE1wIH0gZnJvbSAnLi91dGlsaXRpZXMnXG5pbXBvcnQgdHlwZSB7IEF1dGhPcHRpb25zIH0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aCdcblxuZGVjbGFyZSBjb25zdCB3eDogYW55XG5cbmNsYXNzIE9hdXRoQ2xpZW50U3RvcmFnZUJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWxTdG9yYWdlXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IHsgbG9jYWxTdG9yYWdlOiBhbnkgLyogU3RvcmFnZUludGVyZmFjZSAqLzsgYWRhcHRlcjogU0RLQWRhcHRlckludGVyZmFjZSB9KSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlID0gY29uZmlnPy5sb2NhbFN0b3JhZ2UgfHwgKGNvbmZpZz8uYWRhcHRlcj8ucm9vdD8uZ2xvYmFsVGhpcyB8fCBnbG9iYWxUaGlzKS5sb2NhbFN0b3JhZ2VcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UgPSBjb25maWc/LmxvY2FsU3RvcmFnZSB8fCB7fVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogR2V0IEl0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHN0cmluZyB8IG51bGw+fVxuICAgKi9cbiAgYXN5bmMgZ2V0SXRlbShrZXk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgSXRlbS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZykge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBJdGVtLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSlcbiAgfVxuXG4gIGdldEl0ZW1TeW5jKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KVxuICB9XG5cbiAgc2V0SXRlbVN5bmMoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpXG4gIH1cblxuICByZW1vdmVJdGVtU3luYyhrZXk6IHN0cmluZykge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICB9XG59XG5cbi8qKlxuICogY29weSB0byBnaXRAZ2l0LndvYS5jb206UUJhc2UvbGNhcC9kYXRhc291cmNlLmdpdC9wYWNrYWdlcy9jbG91ZC1zZGsvY29tbW9uXG4gKiDlkIzmraXkv67mlLlcbiAqL1xuY29uc3QgVVJMX1JFRyA9IC9eW146XSs6XFwvXFwvW14vXSsoXFwvW14/I10rKS9cblxuY29uc3QgZGVhbEFkYXB0ZXJSZXF1ZXN0RGF0YSA9IChyZXMsIG9wdGlvbnMpID0+IHtcbiAgY29uc3QgcmVxdWVzdElkID0gb3B0aW9ucz8uaGVhZGVycz8uWyd4LXJlcXVlc3QtaWQnXVxuXG4gIGlmICghcmVzKSB7XG4gICAgcmVzID0ge31cbiAgfVxuXG4gIGlmIChyZXM/LmNvZGUgfHwgcmVzPy5kYXRhPy5lcnJvcl9jb2RlKSB7XG4gICAgcmVzID0ge1xuICAgICAgZXJyb3I6IHJlcy5jb2RlIHx8IHJlcy5kYXRhLmVycm9yLFxuICAgICAgZXJyb3JfZGVzY3JpcHRpb246IHJlcy5kYXRhLmVycm9yX2Rlc2NyaXB0aW9uIHx8IHJlcy5tZXNzYWdlIHx8IHJlcy5jb2RlIHx8IHJlcy5kYXRhLmVycm9yX2NvZGUsXG4gICAgICByZXF1ZXN0X2lkOiByZXMucmVxdWVzdElkLFxuICAgICAgZXJyb3JfY29kZTogcmVzLmRhdGE/LmVycm9yX2NvZGUsXG4gICAgfVxuICB9XG5cbiAgaWYgKCFyZXM/LnJlcXVlc3RfaWQpIHtcbiAgICByZXMucmVxdWVzdF9pZCA9IHJlcy5yZXF1ZXN0X2lkIHx8IHJlcXVlc3RJZFxuICB9XG5cbiAgaWYgKHJlcz8uZXJyb3IpIHtcbiAgICByZXMuZXJyb3JfdXJpID0gZ2V0VXJsUGF0aChvcHRpb25zPy51cmwpXG4gICAgcmV0dXJuIHJlc1xuICB9XG5cbiAgcmV0dXJuIHJlcz8uZGF0YSB8fCB7fVxufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZU9hdXRoQ2xpZW50UmVxdWVzdChyZXFDbGFzcykge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBib2R5PzogYW55IHwgbnVsbFxuICAgICAgaGVhZGVycz86IGFueSB8IG51bGxcbiAgICAgIG1ldGhvZD86IHN0cmluZ1xuICAgICAgW2tleTogc3RyaW5nXTogYW55XG4gICAgfSxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIE9iamVjdHMgbXVzdCBiZSBjb3BpZWQgdG8gcHJldmVudCBtb2RpZmljYXRpb24gb2YgZGF0YSBzdWNoIGFzIGJvZHkuXG4gICAgICBjb25zdCBjb3B5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpXG4gICAgICBpZiAoY29weU9wdGlvbnMuYm9keSAmJiB0eXBlb2YgY29weU9wdGlvbnMuYm9keSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29weU9wdGlvbnMuYm9keSA9IEpTT04uc3RyaW5naWZ5KGNvcHlPcHRpb25zLmJvZHkpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhc2sgPSB3eC5yZXF1ZXN0KHtcbiAgICAgICAgdXJsLFxuICAgICAgICBkYXRhOiBjb3B5T3B0aW9ucy5ib2R5LFxuICAgICAgICB0aW1lb3V0OiByZXFDbGFzcy5fdGltZW91dCxcbiAgICAgICAgbWV0aG9kOiBjb3B5T3B0aW9ucy5tZXRob2QgfHwgJ0dFVCcsXG4gICAgICAgIGhlYWRlcjogY29weU9wdGlvbnMuaGVhZGVycyxcbiAgICAgICAgc3VjY2VzcyhyZXMpIHtcbiAgICAgICAgICByZXMgPSBkZWFsQWRhcHRlclJlcXVlc3REYXRhKHJlcywgeyAuLi5vcHRpb25zLCB1cmwgfSlcblxuICAgICAgICAgIGlmIChyZXMuZXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdChyZXMpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgICB9LFxuICAgICAgICBmYWlsKGVycikge1xuICAgICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgICBlcnJvcjogJ3VucmVhY2hhYmxlJyxcbiAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiAoZXJyIGFzIEVycm9yKS5tZXNzYWdlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlKGVycikge1xuICAgICAgICAgIGlmICghZXJyIHx8ICFlcnIuZXJyTXNnKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFyZXFDbGFzcy5fdGltZW91dCB8fCByZXFDbGFzcy5fcmVzdHJpY3RlZE1ldGhvZHMuaW5kZXhPZigncmVxdWVzdCcpID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHsgZXJyTXNnIH0gPSBlcnJcbiAgICAgICAgICBpZiAoZXJyTXNnID09PSAncmVxdWVzdDpmYWlsIHRpbWVvdXQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4ocmVxQ2xhc3MuX3RpbWVvdXRNc2cpXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB0YXNrLmFib3J0KClcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogR2V0IHVybCBwYXRoLlxuICogQHBhcmFtIHtzdHJpbmd9IHVybFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBnZXRVcmxQYXRoKHVybDogc3RyaW5nKSB7XG4gIC8vIHJldHVybiBwYXRoIGlmIG1hdGNoZWQsIG9yIG9yaWdpbmFsIHVybFxuICByZXR1cm4gVVJMX1JFRy50ZXN0KHVybCkgPyBSZWdFeHAuJDEgOiB1cmxcbn1cblxuLyoqXG4gKiDnlKjmiLfoh6rlrprkuYlhZGFwdGVy5aSE55CGXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcGFyYW0gYWRhcHRlclxuICogQHJldHVybnNcbiAqL1xuY29uc3QgZGVhbFVzZXJBZGFwdGVyID0gKGNvbmZpZzogQXV0aE9wdGlvbnMsIGFkYXB0ZXI6IFNES0FkYXB0ZXJJbnRlcmZhY2UpID0+IHtcbiAgY29uc3QgZGF0YSA9IHsgLi4uY29uZmlnIH1cblxuICB0cnkge1xuICAgIGlmICghY29uZmlnPy5zdG9yYWdlICYmIGFkYXB0ZXI/LmxvY2FsU3RvcmFnZSkge1xuICAgICAgZGF0YS5zdG9yYWdlID0gbmV3IE9hdXRoQ2xpZW50U3RvcmFnZUJhc2UoeyBsb2NhbFN0b3JhZ2U6IGFkYXB0ZXIubG9jYWxTdG9yYWdlLCBhZGFwdGVyIH0pXG4gICAgfVxuXG4gICAgaWYgKCFjb25maWcuY2FwdGNoYU9wdGlvbnMgJiYgYWRhcHRlcj8uY2FwdGNoYU9wdGlvbnMpIHtcbiAgICAgIGRhdGEuY2FwdGNoYU9wdGlvbnMgPSBhZGFwdGVyLmNhcHRjaGFPcHRpb25zXG4gICAgfVxuXG4gICAgLy8g55So5oi35pyq5Lyg5YWlYmFzZVJlcXVlc3TlkoxyZXF1ZXN05pe25aSE55CGXG4gICAgLy8gT0F1dGgyQ2xpZW505LyY5YWI5LulIGJhc2VSZXF1ZXN0IOS4uuWHhlxuICAgIC8vIEF1dGgg5Zyo5rKh5pyJIHJlcXVlc3Qg55qE5pe25YCZ5Lya5Yid5aeL5YyWIENhcHRjaGHvvIzku47ogIzkvb/nlKggQ2FwdGNoYSDnmoQgcmVxdWVzdFxuICAgIGlmICghY29uZmlnLmJhc2VSZXF1ZXN0ICYmICFjb25maWcucmVxdWVzdCAmJiBhZGFwdGVyPy5yZXFDbGFzcykge1xuICAgICAgY29uc3QgcmVxQ2xhc3NQYXJhbXMgPSB7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgICByZXN0cmljdGVkTWV0aG9kczogWydnZXQnLCAncG9zdCcsICd1cGxvYWQnLCAnZG93bmxvYWQnLCAncmVxdWVzdCddLFxuICAgICAgfVxuICAgICAgY29uc3QgYWRhcHRlclJlcSA9IG5ldyBhZGFwdGVyLnJlcUNsYXNzKHJlcUNsYXNzUGFyYW1zKVxuICAgICAgZGF0YS5iYXNlUmVxdWVzdCA9IGFzeW5jIGZ1bmN0aW9uICh1cmw6IHN0cmluZywgb3B0aW9ucz86IHsgbWV0aG9kPzogc3RyaW5nOyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgICAgICBsZXQgcmVzOiBhbnkgPSB7fVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3RUeXBlID0gb3B0aW9ucy5tZXRob2Q/LnRvTG9jYWxlTG93ZXJDYXNlKCkgfHwgJ3Bvc3QnXG5cbiAgICAgICAgY29uc3QgZnVuYyA9IGFkYXB0ZXJSZXE/LltyZXF1ZXN0VHlwZV0/LmJpbmQ/LihhZGFwdGVyUmVxKVxuXG4gICAgICAgIGlmICh0eXBlb2YgZnVuYyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCDjgJAke3JlcXVlc3RUeXBlfeOAkSByZXF1ZXN0IG1ldGhvZGApXG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIOWFvOWuuemdnuWwj+eoi+W6j+eahGFkYXB0ZXJcbiAgICAgICAgICBpZiAoKCFvcHRpb25zLmhlYWRlcnM/LlsnY29udGVudC10eXBlJ10gfHwgb3B0aW9ucy5oZWFkZXJzPy5bJ2NvbnRlbnQtdHlwZSddLmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykpICYmICFbJ3N0cmluZycsICd1bmRlZmluZWQnXS5pbmNsdWRlcyh0eXBlb2Ygb3B0aW9ucy5ib2R5KSkge1xuICAgICAgICAgICAgb3B0aW9ucy5kYXRhID0gb3B0aW9ucy5kYXRhIHx8IG9wdGlvbnMuYm9keVxuICAgICAgICAgICAgb3B0aW9ucy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5ib2R5KVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXMgPSBhd2FpdCBmdW5jKHsgdXJsLCAuLi5vcHRpb25zIH0pXG4gICAgICAgICAgcmVzID0gZGVhbEFkYXB0ZXJSZXF1ZXN0RGF0YShyZXMsIHsgLi4ub3B0aW9ucywgdXJsIH0pXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcmVzID0geyAuLi5lcnJvcj8uZGF0YSwgLi4uZXJyb3IgfVxuICAgICAgICAgIHRocm93IHJlc1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlcz8uZXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyByZXNcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXNcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKCd1c2VyIGFkYXB0ZXIgZ2VuZXJhdGUgZmFpbDonLCBlKVxuICB9XG5cbiAgcmV0dXJuIGRhdGFcbn1cblxuLyoqXG4gKiDlhoXnva7pu5jorqRhZGFwdGVy5aSE55CGXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcmV0dXJuc1xuICovXG5jb25zdCBkZWFsQXV0aEFkYXB0ZXIgPSAoY29uZmlnOiBBdXRoT3B0aW9ucywgYWRhcHRlcjogU0RLQWRhcHRlckludGVyZmFjZSkgPT4ge1xuICBjb25zdCBkYXRhID0geyAuLi5jb25maWcgfVxuICBjb25zdCBhdXRoT3B0aW9uczogYW55ID0ge31cblxuICBpZiAoYWRhcHRlcj8uY2FwdGNoYU9wdGlvbnMpIHtcbiAgICBkYXRhLmNhcHRjaGFPcHRpb25zID0gYWRhcHRlci5jYXB0Y2hhT3B0aW9uc1xuICB9XG5cbiAgaWYgKCFhZGFwdGVyRm9yV3hNcC5pc01hdGNoKCkgfHwgKGNvbmZpZy5zdG9yYWdlICYmIGNvbmZpZy5iYXNlUmVxdWVzdCkpIHJldHVybiBkYXRhXG5cbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgY29uc3QgeyBsb2NhbFN0b3JhZ2UsIHJlcUNsYXNzOiBSZXFDbGFzcyB9ID0gYWRhcHRlckZvcld4TXAuZ2VuQWRhcHRlcih7fSlcbiAgICBpZiAobG9jYWxTdG9yYWdlKSB7XG4gICAgICBhdXRoT3B0aW9ucy5zdG9yYWdlID0gbmV3IE9hdXRoQ2xpZW50U3RvcmFnZUJhc2UoeyBsb2NhbFN0b3JhZ2UsIGFkYXB0ZXIgfSlcbiAgICB9XG4gICAgaWYgKFJlcUNsYXNzKSB7XG4gICAgICBjb25zdCByZXFDbGFzcyA9IG5ldyBSZXFDbGFzcyh7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgICByZXN0cmljdGVkTWV0aG9kczogWydnZXQnLCAncG9zdCcsICd1cGxvYWQnLCAnZG93bmxvYWQnLCAncmVxdWVzdCddLFxuICAgICAgfSlcbiAgICAgIGF1dGhPcHRpb25zLnJlcXVlc3QgPSBnZW5lcmF0ZU9hdXRoQ2xpZW50UmVxdWVzdChyZXFDbGFzcylcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5jYXB0Y2hhT3B0aW9ucykge1xuICAgICAgYXV0aE9wdGlvbnMuYmFzZVJlcXVlc3QgPSBhdXRoT3B0aW9ucy5yZXF1ZXN0XG4gICAgICBhdXRoT3B0aW9ucy5yZXF1ZXN0ID0gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgLi4uZGF0YSwgLi4uYXV0aE9wdGlvbnMgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG5leHBvcnQgY29uc3QgdXNlQXV0aEFkYXB0ZXIgPSAoY29uZmlnOiBBdXRoT3B0aW9ucykgPT4ge1xuICAvLyDlhbzlrrnlvq7mkK1jbG91ZC1zZGvvvIxhdXRo5LitanMtc2Rr6buY6K6k55qEYWRhcHRlcuS4jei/m+ihjOmFjee9rlxuICBpZiAoY29uZmlnLmFkYXB0ZXIgJiYgKGNvbmZpZy5hZGFwdGVyIGFzIGFueSkudHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgcmV0dXJuIGRlYWxVc2VyQWRhcHRlcihjb25maWcsIGNvbmZpZy5hZGFwdGVyKVxuICB9XG5cbiAgcmV0dXJuIGRlYWxBdXRoQWRhcHRlcihjb25maWcsIGNvbmZpZy5hZGFwdGVyKVxufVxuIl19
|