@asgardeo/auth-spa 0.3.8 → 0.3.9
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/asgardeo-spa.production.esm.js +13 -13
- package/dist/asgardeo-spa.production.esm.js.map +1 -1
- package/dist/asgardeo-spa.production.js +13 -13
- package/dist/asgardeo-spa.production.js.map +1 -1
- package/dist/asgardeo-spa.production.min.js +1 -1
- package/dist/asgardeo-spa.production.min.js.map +1 -1
- package/dist/polyfilled/asgardeo-spa.production.esm.js +42 -40
- package/dist/polyfilled/asgardeo-spa.production.esm.js.map +1 -1
- package/dist/polyfilled/asgardeo-spa.production.js +42 -40
- package/dist/polyfilled/asgardeo-spa.production.js.map +1 -1
- package/dist/polyfilled/asgardeo-spa.production.min.js +1 -1
- package/dist/polyfilled/asgardeo-spa.production.min.js.map +1 -1
- package/dist/src/client.d.ts +21 -16
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +29 -3
- package/dist/src/client.js.map +1 -1
- package/dist/src/clients/main-thread-client.d.ts +3 -2
- package/dist/src/clients/main-thread-client.d.ts.map +1 -1
- package/dist/src/clients/main-thread-client.js +83 -385
- package/dist/src/clients/main-thread-client.js.map +1 -1
- package/dist/src/clients/web-worker-client.d.ts +3 -2
- package/dist/src/clients/web-worker-client.d.ts.map +1 -1
- package/dist/src/clients/web-worker-client.js +98 -138
- package/dist/src/clients/web-worker-client.js.map +1 -1
- package/dist/src/helpers/authentication-helper.d.ts +50 -0
- package/dist/src/helpers/authentication-helper.d.ts.map +1 -0
- package/dist/src/helpers/authentication-helper.js +482 -0
- package/dist/src/helpers/authentication-helper.js.map +1 -0
- package/dist/src/helpers/index.d.ts +1 -0
- package/dist/src/helpers/index.d.ts.map +1 -1
- package/dist/src/helpers/index.js +1 -0
- package/dist/src/helpers/index.js.map +1 -1
- package/dist/src/public-api.d.ts +3 -0
- package/dist/src/public-api.d.ts.map +1 -1
- package/dist/src/public-api.js +5 -0
- package/dist/src/public-api.js.map +1 -1
- package/dist/src/worker/index.d.ts +1 -1
- package/dist/src/worker/index.d.ts.map +1 -1
- package/dist/src/worker/index.js +1 -1
- package/dist/src/worker/index.js.map +1 -1
- package/dist/src/worker/worker-core.d.ts +3 -2
- package/dist/src/worker/worker-core.d.ts.map +1 -1
- package/dist/src/worker/worker-core.js +23 -202
- package/dist/src/worker/worker-core.js.map +1 -1
- package/dist/src/worker/worker-receiver.d.ts +22 -0
- package/dist/src/worker/worker-receiver.d.ts.map +1 -0
- package/dist/src/worker/worker-receiver.js +233 -0
- package/dist/src/worker/worker-receiver.js.map +1 -0
- package/dist/src/{worker/client.worker.d.ts → worker.d.ts} +2 -2
- package/dist/src/worker.d.ts.map +1 -0
- package/dist/src/worker.js +24 -0
- package/dist/src/worker.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/client.ts +65 -19
- package/src/clients/main-thread-client.ts +137 -486
- package/src/clients/web-worker-client.ts +128 -169
- package/src/helpers/authentication-helper.ts +661 -0
- package/src/helpers/index.ts +1 -0
- package/src/public-api.ts +7 -0
- package/src/worker/index.ts +1 -1
- package/src/worker/worker-core.ts +48 -261
- package/src/worker/worker-receiver.ts +297 -0
- package/src/worker.ts +30 -0
- package/dist/src/worker/client.worker.d.ts.map +0 -1
- package/dist/src/worker/client.worker.js +0 -232
- package/dist/src/worker/client.worker.js.map +0 -1
- package/src/worker/client.worker.ts +0 -286
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* WSO2 Inc. licenses this file to you under the Apache License,
|
|
5
|
+
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
+
* in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing,
|
|
12
|
+
* software distributed under the License is distributed on an
|
|
13
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
* KIND, either express or implied. See the License for the
|
|
15
|
+
* specific language governing permissions and limitations
|
|
16
|
+
* under the License.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import {
|
|
20
|
+
AsgardeoAuthClient,
|
|
21
|
+
AsgardeoAuthException,
|
|
22
|
+
AuthClientConfig,
|
|
23
|
+
BasicUserInfo
|
|
24
|
+
} from "@asgardeo/auth-js";
|
|
25
|
+
import { WebWorkerCore } from "./worker-core";
|
|
26
|
+
import {
|
|
27
|
+
DISABLE_HTTP_HANDLER,
|
|
28
|
+
ENABLE_HTTP_HANDLER,
|
|
29
|
+
GET_AUTH_URL,
|
|
30
|
+
GET_BASIC_USER_INFO,
|
|
31
|
+
GET_CONFIG_DATA,
|
|
32
|
+
GET_DECODED_ID_TOKEN,
|
|
33
|
+
GET_ID_TOKEN,
|
|
34
|
+
GET_OIDC_SERVICE_ENDPOINTS,
|
|
35
|
+
GET_SIGN_OUT_URL,
|
|
36
|
+
HTTP_REQUEST,
|
|
37
|
+
HTTP_REQUEST_ALL,
|
|
38
|
+
INIT,
|
|
39
|
+
IS_AUTHENTICATED,
|
|
40
|
+
REFRESH_ACCESS_TOKEN,
|
|
41
|
+
REQUEST_ACCESS_TOKEN,
|
|
42
|
+
REQUEST_CUSTOM_GRANT,
|
|
43
|
+
REQUEST_FINISH,
|
|
44
|
+
REQUEST_START,
|
|
45
|
+
REQUEST_SUCCESS,
|
|
46
|
+
REVOKE_ACCESS_TOKEN,
|
|
47
|
+
SET_SESSION_STATE,
|
|
48
|
+
SIGN_OUT,
|
|
49
|
+
START_AUTO_REFRESH_TOKEN,
|
|
50
|
+
UPDATE_CONFIG
|
|
51
|
+
} from "../constants";
|
|
52
|
+
import { AuthenticationHelper, SPAHelper } from "../helpers";
|
|
53
|
+
import {
|
|
54
|
+
AuthorizationResponse,
|
|
55
|
+
HttpResponse,
|
|
56
|
+
WebWorkerClass,
|
|
57
|
+
WebWorkerClientConfig,
|
|
58
|
+
WebWorkerCoreInterface
|
|
59
|
+
} from "../models";
|
|
60
|
+
import { MessageUtils } from "../utils";
|
|
61
|
+
|
|
62
|
+
export const workerReceiver = (
|
|
63
|
+
getAuthHelper: (
|
|
64
|
+
authClient: AsgardeoAuthClient<WebWorkerClientConfig>,
|
|
65
|
+
spaHelper: SPAHelper<WebWorkerClientConfig>
|
|
66
|
+
) => AuthenticationHelper<WebWorkerClientConfig>
|
|
67
|
+
) => {
|
|
68
|
+
const ctx: WebWorkerClass<any> = self as any;
|
|
69
|
+
|
|
70
|
+
let webWorker: WebWorkerCoreInterface;
|
|
71
|
+
|
|
72
|
+
ctx.onmessage = async ({ data, ports }) => {
|
|
73
|
+
const port = ports[0];
|
|
74
|
+
if (data.type !== INIT && !webWorker) {
|
|
75
|
+
port.postMessage(
|
|
76
|
+
MessageUtils.generateFailureMessage(
|
|
77
|
+
new AsgardeoAuthException(
|
|
78
|
+
"SPA-CLIENT_WORKER-ONMSG-NF01",
|
|
79
|
+
"The web worker has not been initialized yet.",
|
|
80
|
+
"The initialize method needs to be called before the specified operation can be carried out."
|
|
81
|
+
)
|
|
82
|
+
)
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
switch (data.type) {
|
|
89
|
+
case INIT:
|
|
90
|
+
try {
|
|
91
|
+
const config: AuthClientConfig<WebWorkerClientConfig> = { ...data.data };
|
|
92
|
+
webWorker = await WebWorkerCore(config, getAuthHelper);
|
|
93
|
+
webWorker.setHttpRequestFinishCallback(onRequestFinishCallback);
|
|
94
|
+
webWorker.setHttpRequestStartCallback(onRequestStartCallback);
|
|
95
|
+
webWorker.setHttpRequestSuccessCallback(onRequestSuccessCallback);
|
|
96
|
+
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
97
|
+
} catch (error) {
|
|
98
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
break;
|
|
102
|
+
case GET_AUTH_URL:
|
|
103
|
+
webWorker
|
|
104
|
+
.getAuthorizationURL(data?.data)
|
|
105
|
+
.then((response: AuthorizationResponse) => {
|
|
106
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
107
|
+
})
|
|
108
|
+
.catch((error) => {
|
|
109
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
break;
|
|
113
|
+
case REQUEST_ACCESS_TOKEN:
|
|
114
|
+
webWorker
|
|
115
|
+
.requestAccessToken(data?.data?.code, data?.data?.sessionState, data?.data?.pkce, data?.data?.state)
|
|
116
|
+
.then((response: BasicUserInfo) => {
|
|
117
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
118
|
+
})
|
|
119
|
+
.catch((error) => {
|
|
120
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
break;
|
|
124
|
+
case HTTP_REQUEST:
|
|
125
|
+
webWorker
|
|
126
|
+
.httpRequest(data.data)
|
|
127
|
+
.then((response) => {
|
|
128
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
129
|
+
})
|
|
130
|
+
.catch((error) => {
|
|
131
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
break;
|
|
135
|
+
case HTTP_REQUEST_ALL:
|
|
136
|
+
webWorker
|
|
137
|
+
.httpRequestAll(data.data)
|
|
138
|
+
.then((response) => {
|
|
139
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
140
|
+
})
|
|
141
|
+
.catch((error) => {
|
|
142
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
break;
|
|
146
|
+
case SIGN_OUT:
|
|
147
|
+
try {
|
|
148
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.signOut()));
|
|
149
|
+
} catch (error) {
|
|
150
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
break;
|
|
154
|
+
case REQUEST_CUSTOM_GRANT:
|
|
155
|
+
webWorker
|
|
156
|
+
.requestCustomGrant(data.data)
|
|
157
|
+
.then((response) => {
|
|
158
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
159
|
+
})
|
|
160
|
+
.catch((error) => {
|
|
161
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
break;
|
|
165
|
+
case REVOKE_ACCESS_TOKEN:
|
|
166
|
+
webWorker
|
|
167
|
+
.revokeAccessToken()
|
|
168
|
+
.then((response) => {
|
|
169
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
170
|
+
})
|
|
171
|
+
.catch((error) => {
|
|
172
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
173
|
+
});
|
|
174
|
+
break;
|
|
175
|
+
case GET_OIDC_SERVICE_ENDPOINTS:
|
|
176
|
+
try {
|
|
177
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getOIDCServiceEndpoints()));
|
|
178
|
+
} catch (error) {
|
|
179
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
break;
|
|
183
|
+
case GET_BASIC_USER_INFO:
|
|
184
|
+
try {
|
|
185
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getBasicUserInfo()));
|
|
186
|
+
} catch (error) {
|
|
187
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
break;
|
|
191
|
+
case GET_DECODED_ID_TOKEN:
|
|
192
|
+
try {
|
|
193
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getDecodedIDToken()));
|
|
194
|
+
} catch (error) {
|
|
195
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
break;
|
|
199
|
+
case GET_ID_TOKEN:
|
|
200
|
+
try {
|
|
201
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getIDToken()));
|
|
202
|
+
} catch (error) {
|
|
203
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
break;
|
|
207
|
+
case ENABLE_HTTP_HANDLER:
|
|
208
|
+
webWorker.enableHttpHandler();
|
|
209
|
+
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
210
|
+
|
|
211
|
+
break;
|
|
212
|
+
case DISABLE_HTTP_HANDLER:
|
|
213
|
+
webWorker.disableHttpHandler();
|
|
214
|
+
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
215
|
+
|
|
216
|
+
break;
|
|
217
|
+
case IS_AUTHENTICATED:
|
|
218
|
+
try {
|
|
219
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.isAuthenticated()));
|
|
220
|
+
} catch (error) {
|
|
221
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
break;
|
|
225
|
+
case GET_SIGN_OUT_URL:
|
|
226
|
+
try {
|
|
227
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getSignOutURL()));
|
|
228
|
+
} catch (error) {
|
|
229
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
break;
|
|
233
|
+
case REFRESH_ACCESS_TOKEN:
|
|
234
|
+
try {
|
|
235
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.refreshAccessToken()));
|
|
236
|
+
} catch (error) {
|
|
237
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
break;
|
|
241
|
+
case START_AUTO_REFRESH_TOKEN:
|
|
242
|
+
try {
|
|
243
|
+
port.postMessage(MessageUtils.generateSuccessMessage(webWorker.startAutoRefreshToken()));
|
|
244
|
+
} catch (error) {
|
|
245
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
break;
|
|
249
|
+
case SET_SESSION_STATE:
|
|
250
|
+
try {
|
|
251
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.setSessionState(data?.data)));
|
|
252
|
+
} catch (error) {
|
|
253
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
break;
|
|
257
|
+
case UPDATE_CONFIG:
|
|
258
|
+
try {
|
|
259
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.updateConfig(data?.data)));
|
|
260
|
+
} catch (error) {
|
|
261
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
break;
|
|
265
|
+
case GET_CONFIG_DATA:
|
|
266
|
+
try {
|
|
267
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getConfigData()));
|
|
268
|
+
} catch (error) {
|
|
269
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
break;
|
|
273
|
+
default:
|
|
274
|
+
port?.postMessage(
|
|
275
|
+
MessageUtils.generateFailureMessage(
|
|
276
|
+
new AsgardeoAuthException(
|
|
277
|
+
"SPA-CLIENT_WORKER-ONMSG-IV02",
|
|
278
|
+
"The message type is invalid.",
|
|
279
|
+
`The message type provided, ${data.type}, is invalid.`
|
|
280
|
+
)
|
|
281
|
+
)
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
const onRequestStartCallback = (): void => {
|
|
287
|
+
ctx.postMessage({ type: REQUEST_START });
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
const onRequestSuccessCallback = (response: HttpResponse): void => {
|
|
291
|
+
ctx.postMessage({ data: JSON.stringify(response ?? ""), type: REQUEST_SUCCESS });
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
const onRequestFinishCallback = (): void => {
|
|
295
|
+
ctx.postMessage({ type: REQUEST_FINISH });
|
|
296
|
+
};
|
|
297
|
+
};
|
package/src/worker.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* WSO2 Inc. licenses this file to you under the Apache License,
|
|
5
|
+
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
+
* in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing,
|
|
12
|
+
* software distributed under the License is distributed on an
|
|
13
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
* KIND, either express or implied. See the License for the
|
|
15
|
+
* specific language governing permissions and limitations
|
|
16
|
+
* under the License.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import { AsgardeoAuthClient } from "@asgardeo/auth-js";
|
|
20
|
+
import { AuthenticationHelper, SPAHelper } from "./helpers";
|
|
21
|
+
import { WebWorkerClientConfig } from "./models";
|
|
22
|
+
import { workerReceiver } from "./worker/worker-receiver";
|
|
23
|
+
|
|
24
|
+
workerReceiver(
|
|
25
|
+
(authClient: AsgardeoAuthClient<WebWorkerClientConfig>, spaHelper: SPAHelper<WebWorkerClientConfig>) => {
|
|
26
|
+
return new AuthenticationHelper(authClient, spaHelper);
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
export default {} as typeof Worker & { new (): Worker };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.worker.d.ts","sourceRoot":"","sources":["../../../src/worker/client.worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;;;;eA6Q4C,MAAM;AAArD,wBAAwD"}
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2020, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
3
|
-
*
|
|
4
|
-
* WSO2 Inc. licenses this file to you under the Apache License,
|
|
5
|
-
* Version 2.0 (the "License"); you may not use this file except
|
|
6
|
-
* in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing,
|
|
12
|
-
* software distributed under the License is distributed on an
|
|
13
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
* KIND, either express or implied. See the License for the
|
|
15
|
-
* specific language governing permissions and limitations
|
|
16
|
-
* under the License.
|
|
17
|
-
*/
|
|
18
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
19
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
20
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
21
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
22
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
23
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
24
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
import { AsgardeoAuthException } from "@asgardeo/auth-js";
|
|
28
|
-
import { WebWorkerCore } from "./worker-core";
|
|
29
|
-
import { DISABLE_HTTP_HANDLER, ENABLE_HTTP_HANDLER, GET_AUTH_URL, GET_BASIC_USER_INFO, GET_CONFIG_DATA, GET_DECODED_ID_TOKEN, GET_ID_TOKEN, GET_OIDC_SERVICE_ENDPOINTS, GET_SIGN_OUT_URL, HTTP_REQUEST, HTTP_REQUEST_ALL, INIT, IS_AUTHENTICATED, REFRESH_ACCESS_TOKEN, REQUEST_ACCESS_TOKEN, REQUEST_CUSTOM_GRANT, REQUEST_FINISH, REQUEST_START, REQUEST_SUCCESS, REVOKE_ACCESS_TOKEN, SET_SESSION_STATE, SIGN_OUT, START_AUTO_REFRESH_TOKEN, UPDATE_CONFIG } from "../constants";
|
|
30
|
-
import { MessageUtils } from "../utils";
|
|
31
|
-
const ctx = self;
|
|
32
|
-
let webWorker;
|
|
33
|
-
ctx.onmessage = ({ data, ports }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
-
var _a, _b, _c, _d;
|
|
35
|
-
const port = ports[0];
|
|
36
|
-
if (data.type !== INIT && !webWorker) {
|
|
37
|
-
port.postMessage(MessageUtils.generateFailureMessage(new AsgardeoAuthException("SPA-CLIENT_WORKER-ONMSG-NF01", "The web worker has not been initialized yet.", "The initialize method needs to be called before the specified operation can be carried out.")));
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
switch (data.type) {
|
|
41
|
-
case INIT:
|
|
42
|
-
try {
|
|
43
|
-
const config = Object.assign({}, data.data);
|
|
44
|
-
webWorker = yield WebWorkerCore(config);
|
|
45
|
-
webWorker.setHttpRequestFinishCallback(onRequestFinishCallback);
|
|
46
|
-
webWorker.setHttpRequestStartCallback(onRequestStartCallback);
|
|
47
|
-
webWorker.setHttpRequestSuccessCallback(onRequestSuccessCallback);
|
|
48
|
-
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
49
|
-
}
|
|
50
|
-
catch (error) {
|
|
51
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
52
|
-
}
|
|
53
|
-
break;
|
|
54
|
-
case GET_AUTH_URL:
|
|
55
|
-
webWorker
|
|
56
|
-
.getAuthorizationURL(data === null || data === void 0 ? void 0 : data.data)
|
|
57
|
-
.then((response) => {
|
|
58
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
59
|
-
})
|
|
60
|
-
.catch((error) => {
|
|
61
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
62
|
-
});
|
|
63
|
-
break;
|
|
64
|
-
case REQUEST_ACCESS_TOKEN:
|
|
65
|
-
webWorker
|
|
66
|
-
.requestAccessToken((_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.code, (_b = data === null || data === void 0 ? void 0 : data.data) === null || _b === void 0 ? void 0 : _b.sessionState, (_c = data === null || data === void 0 ? void 0 : data.data) === null || _c === void 0 ? void 0 : _c.pkce, (_d = data === null || data === void 0 ? void 0 : data.data) === null || _d === void 0 ? void 0 : _d.state)
|
|
67
|
-
.then((response) => {
|
|
68
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
69
|
-
})
|
|
70
|
-
.catch((error) => {
|
|
71
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
72
|
-
});
|
|
73
|
-
break;
|
|
74
|
-
case HTTP_REQUEST:
|
|
75
|
-
webWorker
|
|
76
|
-
.httpRequest(data.data)
|
|
77
|
-
.then((response) => {
|
|
78
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
79
|
-
})
|
|
80
|
-
.catch((error) => {
|
|
81
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
82
|
-
});
|
|
83
|
-
break;
|
|
84
|
-
case HTTP_REQUEST_ALL:
|
|
85
|
-
webWorker
|
|
86
|
-
.httpRequestAll(data.data)
|
|
87
|
-
.then((response) => {
|
|
88
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
89
|
-
})
|
|
90
|
-
.catch((error) => {
|
|
91
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
92
|
-
});
|
|
93
|
-
break;
|
|
94
|
-
case SIGN_OUT:
|
|
95
|
-
try {
|
|
96
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.signOut()));
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
100
|
-
}
|
|
101
|
-
break;
|
|
102
|
-
case REQUEST_CUSTOM_GRANT:
|
|
103
|
-
webWorker
|
|
104
|
-
.requestCustomGrant(data.data)
|
|
105
|
-
.then((response) => {
|
|
106
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
107
|
-
})
|
|
108
|
-
.catch((error) => {
|
|
109
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
110
|
-
});
|
|
111
|
-
break;
|
|
112
|
-
case REVOKE_ACCESS_TOKEN:
|
|
113
|
-
webWorker
|
|
114
|
-
.revokeAccessToken()
|
|
115
|
-
.then((response) => {
|
|
116
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
117
|
-
})
|
|
118
|
-
.catch((error) => {
|
|
119
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
120
|
-
});
|
|
121
|
-
break;
|
|
122
|
-
case GET_OIDC_SERVICE_ENDPOINTS:
|
|
123
|
-
try {
|
|
124
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.getOIDCServiceEndpoints()));
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
128
|
-
}
|
|
129
|
-
break;
|
|
130
|
-
case GET_BASIC_USER_INFO:
|
|
131
|
-
try {
|
|
132
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.getBasicUserInfo()));
|
|
133
|
-
}
|
|
134
|
-
catch (error) {
|
|
135
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
136
|
-
}
|
|
137
|
-
break;
|
|
138
|
-
case GET_DECODED_ID_TOKEN:
|
|
139
|
-
try {
|
|
140
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.getDecodedIDToken()));
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
144
|
-
}
|
|
145
|
-
break;
|
|
146
|
-
case GET_ID_TOKEN:
|
|
147
|
-
try {
|
|
148
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.getIDToken()));
|
|
149
|
-
}
|
|
150
|
-
catch (error) {
|
|
151
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
152
|
-
}
|
|
153
|
-
break;
|
|
154
|
-
case ENABLE_HTTP_HANDLER:
|
|
155
|
-
webWorker.enableHttpHandler();
|
|
156
|
-
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
157
|
-
break;
|
|
158
|
-
case DISABLE_HTTP_HANDLER:
|
|
159
|
-
webWorker.disableHttpHandler();
|
|
160
|
-
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
161
|
-
break;
|
|
162
|
-
case IS_AUTHENTICATED:
|
|
163
|
-
try {
|
|
164
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.isAuthenticated()));
|
|
165
|
-
}
|
|
166
|
-
catch (error) {
|
|
167
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
168
|
-
}
|
|
169
|
-
break;
|
|
170
|
-
case GET_SIGN_OUT_URL:
|
|
171
|
-
try {
|
|
172
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.getSignOutURL()));
|
|
173
|
-
}
|
|
174
|
-
catch (error) {
|
|
175
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
176
|
-
}
|
|
177
|
-
break;
|
|
178
|
-
case REFRESH_ACCESS_TOKEN:
|
|
179
|
-
try {
|
|
180
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.refreshAccessToken()));
|
|
181
|
-
}
|
|
182
|
-
catch (error) {
|
|
183
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
184
|
-
}
|
|
185
|
-
break;
|
|
186
|
-
case START_AUTO_REFRESH_TOKEN:
|
|
187
|
-
try {
|
|
188
|
-
port.postMessage(MessageUtils.generateSuccessMessage(webWorker.startAutoRefreshToken()));
|
|
189
|
-
}
|
|
190
|
-
catch (error) {
|
|
191
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
192
|
-
}
|
|
193
|
-
break;
|
|
194
|
-
case SET_SESSION_STATE:
|
|
195
|
-
try {
|
|
196
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.setSessionState(data === null || data === void 0 ? void 0 : data.data)));
|
|
197
|
-
}
|
|
198
|
-
catch (error) {
|
|
199
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
200
|
-
}
|
|
201
|
-
break;
|
|
202
|
-
case UPDATE_CONFIG:
|
|
203
|
-
try {
|
|
204
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.updateConfig(data === null || data === void 0 ? void 0 : data.data)));
|
|
205
|
-
}
|
|
206
|
-
catch (error) {
|
|
207
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
208
|
-
}
|
|
209
|
-
break;
|
|
210
|
-
case GET_CONFIG_DATA:
|
|
211
|
-
try {
|
|
212
|
-
port.postMessage(MessageUtils.generateSuccessMessage(yield webWorker.getConfigData()));
|
|
213
|
-
}
|
|
214
|
-
catch (error) {
|
|
215
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
216
|
-
}
|
|
217
|
-
break;
|
|
218
|
-
default:
|
|
219
|
-
port === null || port === void 0 ? void 0 : port.postMessage(MessageUtils.generateFailureMessage(new AsgardeoAuthException("SPA-CLIENT_WORKER-ONMSG-IV02", "The message type is invalid.", `The message type provided, ${data.type}, is invalid.`)));
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
const onRequestStartCallback = () => {
|
|
223
|
-
ctx.postMessage({ type: REQUEST_START });
|
|
224
|
-
};
|
|
225
|
-
const onRequestSuccessCallback = (response) => {
|
|
226
|
-
ctx.postMessage({ data: JSON.stringify(response !== null && response !== void 0 ? response : ""), type: REQUEST_SUCCESS });
|
|
227
|
-
};
|
|
228
|
-
const onRequestFinishCallback = () => {
|
|
229
|
-
ctx.postMessage({ type: REQUEST_FINISH });
|
|
230
|
-
};
|
|
231
|
-
export default {};
|
|
232
|
-
//# sourceMappingURL=client.worker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.worker.js","sourceRoot":"","sources":["../../../src/worker/client.worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;AAEH,OAAO,EAAE,qBAAqB,EAAmC,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACH,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,IAAI,EACJ,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,wBAAwB,EACxB,aAAa,EAChB,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,GAAG,GAAwB,IAAW,CAAC;AAE7C,IAAI,SAAiC,CAAC;AAEtC,GAAG,CAAC,SAAS,GAAG,CAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;QAClC,IAAI,CAAC,WAAW,CACZ,YAAY,CAAC,sBAAsB,CAC/B,IAAI,qBAAqB,CACrB,8BAA8B,EAC9B,8CAA8C,EAC9C,6FAA6F,CAChG,CACJ,CACJ,CAAC;QAEF,OAAO;KACV;IAED,QAAQ,IAAI,CAAC,IAAI,EAAE;QACf,KAAK,IAAI;YACL,IAAI;gBACA,MAAM,MAAM,qBAAiD,IAAI,CAAC,IAAI,CAAE,CAAC;gBACzE,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;gBACxC,SAAS,CAAC,4BAA4B,CAAC,uBAAuB,CAAC,CAAC;gBAChE,SAAS,CAAC,2BAA2B,CAAC,sBAAsB,CAAC,CAAC;gBAC9D,SAAS,CAAC,6BAA6B,CAAC,wBAAwB,CAAC,CAAC;gBAClE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC,CAAC;aAC3D;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,YAAY;YACb,SAAS;iBACJ,mBAAmB,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC;iBAC/B,IAAI,CAAC,CAAC,QAA+B,EAAE,EAAE;gBACtC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEP,MAAM;QACV,KAAK,oBAAoB;YACrB,SAAS;iBACJ,kBAAkB,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,IAAI,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,YAAY,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,IAAI,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,KAAK,CAAC;iBACnG,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;gBAC9B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEP,MAAM;QACV,KAAK,YAAY;YACb,SAAS;iBACJ,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;iBACtB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACf,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEP,MAAM;QACV,KAAK,gBAAgB;YACjB,SAAS;iBACJ,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;iBACzB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACf,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEP,MAAM;QACV,KAAK,QAAQ;YACT,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;aACpF;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,oBAAoB;YACrB,SAAS;iBACJ,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC7B,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACf,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEP,MAAM;QACV,KAAK,mBAAmB;YACpB,SAAS;iBACJ,iBAAiB,EAAE;iBACnB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACf,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YACP,MAAM;QACV,KAAK,0BAA0B;YAC3B,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;aACpG;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,mBAAmB;YACpB,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;aAC7F;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,oBAAoB;YACrB,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;aAC9F;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,YAAY;YACb,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aACvF;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,mBAAmB;YACpB,SAAS,CAAC,iBAAiB,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC,CAAC;YAExD,MAAM;QACV,KAAK,oBAAoB;YACrB,SAAS,CAAC,kBAAkB,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC,CAAC;YAExD,MAAM;QACV,KAAK,gBAAgB;YACjB,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;aAC5F;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,gBAAgB;YACjB,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;aAC1F;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,oBAAoB;YACrB,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;aAC/F;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,wBAAwB;YACzB,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;aAC5F;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,iBAAiB;YAClB,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,eAAe,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aACtG;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,aAAa;YACd,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aACnG;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV,KAAK,eAAe;YAChB,IAAI;gBACA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;aAC1F;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;YAED,MAAM;QACV;YACI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CACb,YAAY,CAAC,sBAAsB,CAC/B,IAAI,qBAAqB,CACrB,8BAA8B,EAC9B,8BAA8B,EAC9B,8BAA8B,IAAI,CAAC,IAAI,eAAe,CACzD,CACJ,CACJ,CAAC;KACT;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,sBAAsB,GAAG,GAAS,EAAE;IACtC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,QAAsB,EAAQ,EAAE;IAC9D,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,GAAS,EAAE;IACvC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,eAAe,EAAwC,CAAC"}
|