@thunderid/browser 1.0.7 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,12 +9,6 @@ export interface BrowserClientConfig {
9
9
  * @default BrowserStorage.SessionStorage
10
10
  */
11
11
  storage?: BrowserStorage | 'sessionStorage' | 'localStorage' | 'browserMemory';
12
- /** Enable OIDC Session Management via RP Iframe. Requires same-domain or third-party cookies. */
13
- syncSession?: boolean;
14
- /** Interval in seconds between session-check polls. @default 3 */
15
- checkSessionInterval?: number;
16
- /** Interval in seconds for silent token refresh. @default 300 */
17
- sessionRefreshInterval?: number;
18
12
  /** Allowed external URL prefixes for `httpRequest` calls. */
19
13
  allowedExternalUrls?: string[];
20
14
  /** Additional query params to append to every authorize request. */
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserConfig.d.ts","sourceRoot":"","sources":["../../src/models/BrowserConfig.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,GAAG,gBAAgB,GAAG,cAAc,GAAG,eAAe,CAAC;IAC/E,iGAAiG;IACjG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kEAAkE;IAClE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2EAA2E;IAC3E,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,+FAA+F;AAC/F,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"BrowserConfig.d.ts","sourceRoot":"","sources":["../../src/models/BrowserConfig.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,GAAG,gBAAgB,GAAG,cAAc,GAAG,eAAe,CAAC;IAC/E,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2EAA2E;IAC3E,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,+FAA+F;AAC/F,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,CAAC"}
@@ -1,14 +1,9 @@
1
- import { User, IsomorphicCrypto, StorageManager, IdToken, ExtendedAuthorizeRequestUrlParams, OIDCEndpoints, TokenResponse, HttpClient, HttpError, HttpRequestConfig, HttpResponse } from '@thunderid/javascript';
1
+ import { User, IsomorphicCrypto, StorageManager, IdToken, OIDCEndpoints, TokenResponse, HttpClient, HttpError, HttpRequestConfig, HttpResponse } from '@thunderid/javascript';
2
2
  import SPAHelper from './SPAHelper';
3
3
  import { SPATokenExchangeConfig } from '../models/TokenExchangeConfig';
4
- interface SessionManagementHelperInterface {
5
- initialize(clientId: string, checkSessionEndpoint: string, getSessionState: () => Promise<string>, interval: number, sessionRefreshInterval: number, redirectURL: string, getSignInUrl: (params?: ExtendedAuthorizeRequestUrlParams) => Promise<string>): void;
6
- receivePromptNoneResponse(setSessionState?: (sessionState: string | null) => Promise<void>): Promise<boolean>;
7
- reset(): void;
8
- }
9
4
  /**
10
5
  * Browser-level authentication helper that orchestrates HTTP requests with token attachment,
11
- * automatic token refresh, session management, and the silent sign-in flow.
6
+ * automatic token refresh, and the silent sign-in flow.
12
7
  *
13
8
  * @typeParam T - The browser client config extension type.
14
9
  */
@@ -59,16 +54,6 @@ declare class AuthenticationHelper<T> {
59
54
  * @param httpClient - The HTTP client to disable.
60
55
  */
61
56
  disableHttpHandler(httpClient: HttpClient): void;
62
- /**
63
- * Initializes OIDC Session Management via an RP iframe.
64
- *
65
- * @param config - The current auth config.
66
- * @param oidcEndpoints - Resolved OIDC provider endpoints.
67
- * @param getSessionState - Returns the current session state from storage.
68
- * @param getAuthzURL - Builds an authorization URL with optional params.
69
- * @param sessionManagementHelper - The session management helper instance.
70
- */
71
- initializeSessionManger(config: any, oidcEndpoints: OIDCEndpoints, getSessionState: () => Promise<string>, getAuthzURL: (params?: ExtendedAuthorizeRequestUrlParams) => Promise<string>, sessionManagementHelper: SessionManagementHelperInterface): void;
72
57
  /**
73
58
  * Executes a custom token exchange grant, enforcing `allowedExternalUrls` rules when applicable.
74
59
  *
@@ -115,29 +100,33 @@ declare class AuthenticationHelper<T> {
115
100
  */
116
101
  httpRequestAll(requestConfigs: HttpRequestConfig[], httpClient: HttpClient, isHttpHandlerEnabled?: boolean, httpErrorCallback?: (error: HttpError) => void | Promise<void>, httpFinishCallback?: () => void): Promise<HttpResponse[] | undefined>;
117
102
  /**
118
- * Executes the silent sign-in flow using a prompt-none request via an iFrame.
103
+ * Executes the silent sign-in flow by loading a `prompt=none` authorize request in a hidden iframe.
119
104
  *
120
105
  * @param constructSilentSignInUrl - Builds the prompt-none authorize URL.
121
106
  * @param requestAccessToken - Exchanges the returned code for tokens.
122
- * @param sessionManagementHelper - Handles the iFrame prompt-none response.
123
107
  * @param additionalParams - Extra authorize request params.
124
108
  * @param tokenRequestConfig - Additional params for the token request.
125
109
  * @returns The user session, or `false` if the user is not signed in.
126
110
  */
127
- signInSilently(constructSilentSignInUrl: (additionalParams?: Record<string, string | boolean>) => Promise<string>, requestAccessToken: (authzCode: string, sessionState: string, state: string, tokenRequestConfig?: {
111
+ signInSilently(constructSilentSignInUrl: (additionalParams?: Record<string, string | boolean>) => Promise<string>, requestAccessToken: (authzCode: string, state: string, tokenRequestConfig?: {
128
112
  params: Record<string, unknown>;
129
- }) => Promise<User>, sessionManagementHelper: SessionManagementHelperInterface, additionalParams?: Record<string, string | boolean>, tokenRequestConfig?: {
113
+ }) => Promise<User>, additionalParams?: Record<string, string | boolean>, tokenRequestConfig?: {
130
114
  params: Record<string, unknown>;
131
115
  }): Promise<User | boolean>;
116
+ /**
117
+ * Handles the page load inside the silent sign-in iframe: relays the authorization response to the
118
+ * parent window and blanks the iframe.
119
+ *
120
+ * @returns `true` if the current page load was a silent sign-in response.
121
+ */
122
+ handleSilentSignInResponse(): Promise<boolean>;
132
123
  /**
133
124
  * Handles the early-return path of `signIn()` when a session already exists
134
- * or the page is handling a prompt-none response.
125
+ * or the page is handling a silent sign-in response.
135
126
  *
136
- * @param shouldStopAuthn - Returns `true` if we should short-circuit and return early.
137
- * @param checkSession - Callback to initialize OIDC session management.
138
127
  * @returns The current user if already signed in, or `undefined` to continue normal sign-in.
139
128
  */
140
- handleSignIn(shouldStopAuthn: () => Promise<boolean>, checkSession: () => Promise<void>): Promise<User | undefined>;
129
+ handleSignIn(): Promise<User | undefined>;
141
130
  /**
142
131
  * Attaches the access token (or IDP token) to an HTTP request config's `Authorization` header.
143
132
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticationHelper.d.ts","sourceRoot":"","sources":["../../src/utils/AuthenticationHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthenticationHelper.d.ts","sourceRoot":"","sources":["../../src/utils/AuthenticationHelper.ts"],"names":[],"mappings":"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"}
@@ -62,10 +62,6 @@ declare class SPAUtils {
62
62
  * (auth code or error is present in the URL, but not a silent flow).
63
63
  */
64
64
  static wasSignInCalled(): boolean;
65
- /**
66
- * Returns `true` if a silent sign-in was previously initialized in this session.
67
- */
68
- static wasSilentSignInCalled(): boolean;
69
65
  /**
70
66
  * Checks whether the current URL indicates a successful sign-out redirect.
71
67
  * Clears the query string and session data if `true`.
@@ -100,16 +96,6 @@ declare class SPAUtils {
100
96
  * @param url - URL to inspect (defaults to `window.location.href`).
101
97
  */
102
98
  static hasErrorInURL(url?: string): boolean;
103
- /**
104
- * Returns `true` if no prompt-none request has been sent yet this session.
105
- */
106
- static canSendPromptNoneRequest(): boolean;
107
- /**
108
- * Records whether a prompt-none request has been sent.
109
- *
110
- * @param canSend - `true` marks the request as sent.
111
- */
112
- static setPromptNoneRequestSent(canSend: boolean): void;
113
99
  /**
114
100
  * Waits until the browser has redirected (non-blocking delay).
115
101
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SPAUtils.d.ts","sourceRoot":"","sources":["../../src/utils/SPAUtils.ts"],"names":[],"mappings":"AAYA,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AAEpD;;;GAGG;AACH,cAAM,QAAQ;IAEZ,OAAO;IAEP;;OAEG;WACW,uBAAuB,IAAI,IAAI;IAM7C;;;;;OAKG;WACW,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI9C;;;;;OAKG;WACW,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1D;;;;;;OAMG;WACW,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAOpF;;;;;;OAMG;WACW,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAQzE;;;;OAIG;WACW,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI/C;;;;;;OAMG;WACW,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO;IAQjG;;OAEG;WACW,yBAAyB,IAAI,OAAO;IAIlD;;;OAGG;WACW,eAAe,IAAI,OAAO;IAUxC;;OAEG;WACW,qBAAqB,IAAI,OAAO;IAM9C;;;;;;;OAOG;WACiB,mBAAmB,CACrC,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,EAC/C,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC;IAYnB;;;;;;OAMG;WACW,cAAc,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,GAAG,YAAY;IAiBhG;;OAEG;WACW,yBAAyB,IAAI,OAAO;IAMlD;;;;OAIG;WACW,wBAAwB,CAAC,MAAM,GAAE,MAA+B,GAAG,OAAO;IAMxF;;;;;OAKG;WACW,aAAa,CAAC,GAAG,GAAE,MAA6B,GAAG,OAAO;IASxE;;OAEG;WACW,wBAAwB,IAAI,OAAO;IAMjD;;;;OAIG;WACW,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI9D;;;;OAIG;WACiB,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtE;;;;;OAKG;IACH,OAAc,KAAK,GAAI,WAAW,MAAM,OAAO,EAAE,gBAAa,KAAG,OAAO,CAAC,IAAI,CAAC,CAU5E;CACH;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"SPAUtils.d.ts","sourceRoot":"","sources":["../../src/utils/SPAUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AAEpD;;;GAGG;AACH,cAAM,QAAQ;IAEZ,OAAO;IAEP;;OAEG;WACW,uBAAuB,IAAI,IAAI;IAM7C;;;;;OAKG;WACW,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI9C;;;;;OAKG;WACW,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1D;;;;;;OAMG;WACW,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAOpF;;;;;;OAMG;WACW,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAQzE;;;;OAIG;WACW,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI/C;;;;;;OAMG;WACW,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO;IAQjG;;OAEG;WACW,yBAAyB,IAAI,OAAO;IAIlD;;;OAGG;WACW,eAAe,IAAI,OAAO;IAUxC;;;;;;;OAOG;WACiB,mBAAmB,CACrC,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,EAC/C,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC;IAYnB;;;;;;OAMG;WACW,cAAc,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,GAAG,YAAY;IAiBhG;;OAEG;WACW,yBAAyB,IAAI,OAAO;IAMlD;;;;OAIG;WACW,wBAAwB,CAAC,MAAM,GAAE,MAA+B,GAAG,OAAO;IAMxF;;;;;OAKG;WACW,aAAa,CAAC,GAAG,GAAE,MAA6B,GAAG,OAAO;IASxE;;;;OAIG;WACiB,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtE;;;;;OAKG;IACH,OAAc,KAAK,GAAI,WAAW,MAAM,OAAO,EAAE,gBAAa,KAAG,OAAO,CAAC,IAAI,CAAC,CAU5E;CACH;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Builds a `fetch`-shaped function backed by the shared `FetchHttpClient` singleton, for
3
+ * framework wrappers (`@thunderid/react`, `@thunderid/vue`) that need to hand a core
4
+ * `@thunderid/javascript` API function a `fetcher` carrying the access token automatically.
5
+ *
6
+ * Unlike a plain `fetch` call, `FetchHttpClient.request` throws on a non-2xx response instead
7
+ * of resolving it. This adapter catches that and reconstructs a `Response`-shaped object from
8
+ * the thrown error's `response`, so the core API function sees the real status and body instead
9
+ * of treating every non-2xx result as a network failure. A genuine network error (no response
10
+ * attached) still propagates.
11
+ *
12
+ * @param instanceId - Which `FetchHttpClient` instance to use, for multi-instance apps. Defaults to `0`.
13
+ * @returns A function matching the `(url, config) => Promise<Response>` shape core API functions expect.
14
+ * @example
15
+ * ```typescript
16
+ * await updateMeCredentials({
17
+ * ...config,
18
+ * fetcher: fetcher ?? createHttpClientFetcher(instanceId),
19
+ * });
20
+ * ```
21
+ */
22
+ declare const createHttpClientFetcher: (instanceId?: number) => ((url: string, config: RequestInit) => Promise<Response>);
23
+ export default createHttpClientFetcher;
24
+ //# sourceMappingURL=createHttpClientFetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createHttpClientFetcher.d.ts","sourceRoot":"","sources":["../../src/utils/createHttpClientFetcher.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,QAAA,MAAM,uBAAuB,GAAI,mBAAc,KAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CA8BzG,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Utility to check if `code` and `session_state` are available in the URL as search params.
2
+ * Utility to check if `code` is available in the URL as a search param.
3
3
  *
4
4
  * @param params - The URL search params to check. Defaults to `window.location.search`.
5
- * @return `true` if the URL contains `code` and `session_state` search params, otherwise `false`.
5
+ * @return `true` if the URL contains a `code` search param, otherwise `false`.
6
6
  */
7
7
  declare const hasAuthParamsInUrl: (params?: string) => boolean;
8
8
  export default hasAuthParamsInUrl;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thunderid/browser",
3
- "version": "1.0.7",
3
+ "version": "1.2.0",
4
4
  "description": "Browser runtime SDK for ThunderID",
5
5
  "keywords": [
6
6
  "thunderid",
@@ -35,7 +35,7 @@
35
35
  "@thunderid/eslint-plugin": "1.0.1",
36
36
  "@thunderid/prettier-config": "1.0.1",
37
37
  "@types/node": "24.7.2",
38
- "@vitest/browser-playwright": "4.1.10",
38
+ "@vitest/browser-playwright": "4.1.11",
39
39
  "eslint": "9.39.4",
40
40
  "jsdom": "27.0.1",
41
41
  "playwright": "1.60.0",
@@ -43,10 +43,10 @@
43
43
  "rimraf": "6.1.3",
44
44
  "rolldown": "1.0.0-beta.45",
45
45
  "typescript": "5.9.3",
46
- "vitest": "4.1.10"
46
+ "vitest": "4.1.11"
47
47
  },
48
48
  "dependencies": {
49
- "@thunderid/javascript": "^1.0.7",
49
+ "@thunderid/javascript": "^1.3.0",
50
50
  "base64url": "3.0.1",
51
51
  "buffer": "6.0.3",
52
52
  "core-js": "3.42.0",
@@ -1,26 +0,0 @@
1
- import { ExtendedAuthorizeRequestUrlParams } from '@thunderid/javascript';
2
- /**
3
- * Interface for the session management helper returned by {@link createSessionManagementHelper}.
4
- */
5
- export interface SessionManagementHelperInterface {
6
- /** Starts session polling and sets up the RP iframe. */
7
- initialize(clientId: string, checkSessionEndpoint: string, getSessionState: () => Promise<string>, interval: number, sessionRefreshInterval: number, redirectURL: string, getSignInUrl: (params?: ExtendedAuthorizeRequestUrlParams) => Promise<string>): void;
8
- /**
9
- * Processes a prompt-none response when the page is loaded inside the prompt-none iframe.
10
- * Returns `true` if the current page load was a prompt-none response.
11
- */
12
- receivePromptNoneResponse(setSessionState?: (sessionState: string | null) => Promise<void>): Promise<boolean>;
13
- /** Clears the session check and refresh intervals. */
14
- reset(): void;
15
- }
16
- /**
17
- * Factory that creates an OIDC Session Management helper using an RP iframe and polling.
18
- * Appends a hidden RP iframe to the document and returns the helper interface.
19
- *
20
- * @param signOut - Returns the sign-out URL for the current session.
21
- * @param setSessionState - Stores a new session state from a prompt-none response.
22
- * @returns A `SessionManagementHelperInterface` instance.
23
- */
24
- export declare const createSessionManagementHelper: (signOut: () => Promise<string>, setSessionState: (sessionState: string) => void) => Promise<SessionManagementHelperInterface>;
25
- export default createSessionManagementHelper;
26
- //# sourceMappingURL=SessionManagementHelper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionManagementHelper.d.ts","sourceRoot":"","sources":["../../src/utils/SessionManagementHelper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,iCAAiC,EAAuB,MAAM,uBAAuB,CAAC;AA0B9F;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,wDAAwD;IACxD,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACtC,QAAQ,EAAE,MAAM,EAChB,sBAAsB,EAAE,MAAM,EAC9B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,iCAAiC,KAAK,OAAO,CAAC,MAAM,CAAC,GAC5E,IAAI,CAAC;IACR;;;OAGG;IACH,yBAAyB,CAAC,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9G,sDAAsD;IACtD,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,MAAM,OAAO,CAAC,MAAM,CAAC,EAC9B,iBAAiB,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,KAC9C,OAAO,CAAC,gCAAgC,CAuO1C,CAAC;AAEF,eAAe,6BAA6B,CAAC"}