@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.
@@ -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 {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# 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,51 @@
1
+ export function saveToBrowserSession(key, value) {
2
+ try {
3
+ sessionStorage.setItem(key, JSON.stringify(value));
4
+ }
5
+ catch (error) {
6
+ console.error('Failed to save to browser session:', error);
7
+ }
8
+ }
9
+ export function getBrowserSession(key) {
10
+ try {
11
+ var data = JSON.parse(sessionStorage.getItem(key));
12
+ return data;
13
+ }
14
+ catch (error) {
15
+ console.error('Failed to get browser session:', error);
16
+ return null;
17
+ }
18
+ }
19
+ export function removeBrowserSession(key) {
20
+ try {
21
+ sessionStorage.removeItem(key);
22
+ return true;
23
+ }
24
+ catch (error) {
25
+ console.error('Failed to remove browser session:', error);
26
+ return null;
27
+ }
28
+ }
29
+ export function addUrlSearch(search, hash) {
30
+ if (search === undefined)
31
+ return;
32
+ var url = new URL(window.location.href);
33
+ url.search = search;
34
+ url.hash = hash || url.hash;
35
+ window.history.replaceState({}, '', url.href);
36
+ }
37
+ export function removeUrlParams(params) {
38
+ if (typeof window === 'undefined')
39
+ return;
40
+ try {
41
+ var url_1 = new URL(window.location.href);
42
+ params.forEach(function (param) {
43
+ url_1.searchParams.delete(param);
44
+ });
45
+ window.history.replaceState({}, '', url_1.href);
46
+ }
47
+ catch (error) {
48
+ console.error('Failed to remove URL params:', error);
49
+ }
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQVcsRUFBRSxLQUEwQjtJQUMxRSxJQUFJO1FBQ0YsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0tBQ25EO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxFQUFFLEtBQUssQ0FBQyxDQUFBO0tBQzNEO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxHQUFXO0lBQzNDLElBQUk7UUFDRixJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNwRCxPQUFPLElBQUksQ0FBQTtLQUNaO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3RELE9BQU8sSUFBSSxDQUFBO0tBQ1o7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQVc7SUFDOUMsSUFBSTtRQUNGLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDOUIsT0FBTyxJQUFJLENBQUE7S0FDWjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUN6RCxPQUFPLElBQUksQ0FBQTtLQUNaO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBMEIsRUFBRSxJQUF1QjtJQUM5RSxJQUFJLE1BQU0sS0FBSyxTQUFTO1FBQUUsT0FBTTtJQUdoQyxJQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBR3pDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO0lBRW5CLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUE7SUFHM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDL0MsQ0FBQztBQU1ELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBZ0I7SUFDOUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1FBQUUsT0FBTTtJQUV6QyxJQUFJO1FBQ0YsSUFBTSxLQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUd6QyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUNuQixLQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNoQyxDQUFDLENBQUMsQ0FBQTtRQUdGLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0tBQzlDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFBO0tBQ3JEO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog5a2Y5YKo5Y+C5pWw5Yiw5rWP6KeI5Zmoc2Vzc2lvblN0b3JhZ2VcbiAqIEBwYXJhbSBrZXlcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2F2ZVRvQnJvd3NlclNlc3Npb24oa2V5OiBzdHJpbmcsIHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gIHRyeSB7XG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc2F2ZSB0byBicm93c2VyIHNlc3Npb246JywgZXJyb3IpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJyb3dzZXJTZXNzaW9uKGtleTogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShrZXkpKVxuICAgIHJldHVybiBkYXRhXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGdldCBicm93c2VyIHNlc3Npb246JywgZXJyb3IpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlQnJvd3NlclNlc3Npb24oa2V5OiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGtleSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byByZW1vdmUgYnJvd3NlciBzZXNzaW9uOicsIGVycm9yKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFVybFNlYXJjaChzZWFyY2g6IExvY2F0aW9uWydzZWFyY2gnXSwgaGFzaD86IExvY2F0aW9uWydoYXNoJ10pIHtcbiAgaWYgKHNlYXJjaCA9PT0gdW5kZWZpbmVkKSByZXR1cm5cblxuICAvLyAxLiDop6PmnpDlvZPliY0gVVJMXG4gIGNvbnN0IHVybCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpXG5cbiAgLy8gMi4g5pON5L2c5p+l6K+i5Y+C5pWwXG4gIHVybC5zZWFyY2ggPSBzZWFyY2ggLy8g6KaG55uW5bey5pyJ5Y+C5pWw5oiW5paw5aKe5Y+C5pWwXG5cbiAgdXJsLmhhc2ggPSBoYXNoIHx8IHVybC5oYXNoXG5cbiAgLy8gMy4g5pu05paw5Zyw5Z2A5qCP77yI5L+d55WZ5ZOI5biM5YC877yJXG4gIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwgJycsIHVybC5ocmVmKVxufVxuXG4vKipcbiAqIOS7jiBVUkwg5Lit56e76Zmk5oyH5a6a55qE5p+l6K+i5Y+C5pWwXG4gKiBAcGFyYW0gcGFyYW1zIOimgeenu+mZpOeahOWPguaVsOWQjeaVsOe7hFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVXJsUGFyYW1zKHBhcmFtczogc3RyaW5nW10pIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm5cblxuICB0cnkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpXG5cbiAgICAvLyDnp7vpmaTmjIflrprnmoTlj4LmlbBcbiAgICBwYXJhbXMuZm9yRWFjaCgocGFyYW0pID0+IHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuZGVsZXRlKHBhcmFtKVxuICAgIH0pXG5cbiAgICAvLyDkvb/nlKggcmVwbGFjZVN0YXRlIOabtOaWsCBVUkzvvIzkuI3kvJrlnKjmtY/op4jlmajljoblj7LkuK3nlZnkuIvorrDlvZVcbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sICcnLCB1cmwuaHJlZilcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcmVtb3ZlIFVSTCBwYXJhbXM6JywgZXJyb3IpXG4gIH1cbn1cbiJdfQ==