@fluxyte/sdk 0.2.2 → 0.2.3
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/README.md +19 -0
- package/dist/core/client.d.ts +20 -1
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +90 -5
- package/dist/core/client.js.map +1 -1
- package/dist/generated/openapi.d.ts +14 -3
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/react/useChat.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,6 +39,20 @@ import { OnboardingAIClient } from "@fluxyte/sdk/node";
|
|
|
39
39
|
const client = new OnboardingAIClient(process.env.FLUXYTE_API_KEY!);
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
+
### Client Options (Session Handling)
|
|
43
|
+
|
|
44
|
+
The SDK now enforces stable identity for chat/events (`sessionId` or `context.userId`).
|
|
45
|
+
|
|
46
|
+
- By default, it auto-generates and reuses `sessionId` when missing.
|
|
47
|
+
- You can disable this with `autoSessionId: false`.
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
const client = new OnboardingAIClient(process.env.FLUXYTE_API_KEY!, {
|
|
51
|
+
autoSessionId: true, // default
|
|
52
|
+
sessionStorageKey: "fluxyte_onboarding_session_id", // browser storage key
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
42
56
|
## Chat Completions (Non-Streaming)
|
|
43
57
|
|
|
44
58
|
```ts
|
|
@@ -109,8 +123,13 @@ Best practices:
|
|
|
109
123
|
- Use stable `product` identifiers
|
|
110
124
|
- Always pass `userTarget`
|
|
111
125
|
- Include `flowSlug` / `stepSlug` when available
|
|
126
|
+
- Provide at least one stable identity: `sessionId` or `context.userId`
|
|
112
127
|
- Treat context like application state (update it as the user moves)
|
|
113
128
|
|
|
129
|
+
Identity guidance:
|
|
130
|
+
- Anonymous visitors: let SDK auto-manage `sessionId` or pass your own persisted ID.
|
|
131
|
+
- Logged-in users: pass stable `context.userId`.
|
|
132
|
+
|
|
114
133
|
## Onboarding Events
|
|
115
134
|
|
|
116
135
|
```ts
|
package/dist/core/client.d.ts
CHANGED
|
@@ -4,10 +4,29 @@ type ChatCompletionRequest = components["schemas"]["ChatCompletionRequest"];
|
|
|
4
4
|
type ChatCompletionResponse = components["schemas"]["ChatCompletionResponse"];
|
|
5
5
|
type FeedbackRequest = components["schemas"]["FeedbackRequest"];
|
|
6
6
|
type OnboardingEventRequest = components["schemas"]["OnboardingEventRequest"];
|
|
7
|
+
type ClientOptions = {
|
|
8
|
+
baseUrl?: string;
|
|
9
|
+
autoSessionId?: boolean;
|
|
10
|
+
sessionStorageKey?: string;
|
|
11
|
+
getSessionId?: () => string | null | undefined;
|
|
12
|
+
setSessionId?: (sessionId: string) => void;
|
|
13
|
+
generateSessionId?: () => string;
|
|
14
|
+
};
|
|
7
15
|
export declare class OnboardingAIClient {
|
|
8
16
|
private readonly apiKey;
|
|
9
17
|
private readonly baseUrl;
|
|
10
|
-
|
|
18
|
+
private readonly autoSessionId;
|
|
19
|
+
private readonly sessionStorageKey;
|
|
20
|
+
private readonly getSessionIdHook;
|
|
21
|
+
private readonly setSessionIdHook;
|
|
22
|
+
private readonly generateSessionIdHook;
|
|
23
|
+
private inMemorySessionId;
|
|
24
|
+
constructor(apiKey: string, options?: ClientOptions);
|
|
25
|
+
private generateSessionId;
|
|
26
|
+
private readSessionIdFromStorage;
|
|
27
|
+
private persistSessionId;
|
|
28
|
+
private resolveStableSessionId;
|
|
29
|
+
private assertStableIdentity;
|
|
11
30
|
chat(payload: ChatCompletionRequest): Promise<ChatCompletionResponse>;
|
|
12
31
|
streamChat(payload: Omit<ChatCompletionRequest, "stream">, onEvent: (event: ChatSSEEvent) => void, onError?: (err: Error) => void): () => void;
|
|
13
32
|
sendEvent(payload: OnboardingEventRequest): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,KAAK,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAC5E,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC9E,KAAK,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAChE,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,KAAK,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAC5E,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC9E,KAAK,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAChE,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAK9E,KAAK,aAAa,GAAG;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;CAClC,CAAC;AAEF,qBAAa,kBAAkB;IASjB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgD;IACjF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4C;IAC7E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA6B;IACnE,OAAO,CAAC,iBAAiB,CAAuB;gBAEnB,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB;IAUxE,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,oBAAoB;IAYtB,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAyB3E,UAAU,CACR,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,EAC9C,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACtC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAC7B,MAAM,IAAI;IAqBP,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BzD,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAY9D"}
|
package/dist/core/client.js
CHANGED
|
@@ -1,34 +1,119 @@
|
|
|
1
1
|
import { handleResponse } from "./utils.js";
|
|
2
2
|
import { streamSSE } from "./sse.js";
|
|
3
3
|
const DEFAULT_BASE_URL = "https://api.fluxyte.com/v1";
|
|
4
|
+
const DEFAULT_SESSION_STORAGE_KEY = "fluxyte_onboarding_session_id";
|
|
4
5
|
export class OnboardingAIClient {
|
|
5
|
-
constructor(apiKey) {
|
|
6
|
+
constructor(apiKey, options = {}) {
|
|
6
7
|
this.apiKey = apiKey;
|
|
7
|
-
this.
|
|
8
|
+
this.inMemorySessionId = null;
|
|
9
|
+
this.baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;
|
|
10
|
+
this.autoSessionId = options.autoSessionId !== false;
|
|
11
|
+
this.sessionStorageKey =
|
|
12
|
+
options.sessionStorageKey ?? DEFAULT_SESSION_STORAGE_KEY;
|
|
13
|
+
this.getSessionIdHook = options.getSessionId;
|
|
14
|
+
this.setSessionIdHook = options.setSessionId;
|
|
15
|
+
this.generateSessionIdHook = options.generateSessionId;
|
|
16
|
+
}
|
|
17
|
+
generateSessionId() {
|
|
18
|
+
if (this.generateSessionIdHook)
|
|
19
|
+
return this.generateSessionIdHook();
|
|
20
|
+
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
21
|
+
return crypto.randomUUID();
|
|
22
|
+
}
|
|
23
|
+
return `sess_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;
|
|
24
|
+
}
|
|
25
|
+
readSessionIdFromStorage() {
|
|
26
|
+
if (this.getSessionIdHook) {
|
|
27
|
+
const fromHook = this.getSessionIdHook();
|
|
28
|
+
if (typeof fromHook === "string" && fromHook.trim())
|
|
29
|
+
return fromHook;
|
|
30
|
+
}
|
|
31
|
+
if (this.inMemorySessionId)
|
|
32
|
+
return this.inMemorySessionId;
|
|
33
|
+
if (typeof window !== "undefined" && window.localStorage) {
|
|
34
|
+
const raw = window.localStorage.getItem(this.sessionStorageKey);
|
|
35
|
+
if (raw?.trim())
|
|
36
|
+
return raw;
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
persistSessionId(sessionId) {
|
|
41
|
+
this.inMemorySessionId = sessionId;
|
|
42
|
+
if (this.setSessionIdHook) {
|
|
43
|
+
this.setSessionIdHook(sessionId);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (typeof window !== "undefined" && window.localStorage) {
|
|
47
|
+
window.localStorage.setItem(this.sessionStorageKey, sessionId);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
resolveStableSessionId(explicitSessionId, contextUserId) {
|
|
51
|
+
if (explicitSessionId?.trim())
|
|
52
|
+
return explicitSessionId;
|
|
53
|
+
if (contextUserId?.trim())
|
|
54
|
+
return undefined;
|
|
55
|
+
if (!this.autoSessionId)
|
|
56
|
+
return undefined;
|
|
57
|
+
const existing = this.readSessionIdFromStorage();
|
|
58
|
+
if (existing)
|
|
59
|
+
return existing;
|
|
60
|
+
const generated = this.generateSessionId();
|
|
61
|
+
this.persistSessionId(generated);
|
|
62
|
+
return generated;
|
|
63
|
+
}
|
|
64
|
+
assertStableIdentity(args) {
|
|
65
|
+
if (args.sessionId?.trim() || args.contextUserId?.trim())
|
|
66
|
+
return;
|
|
67
|
+
throw new Error(`Missing stable identity for ${args.surface}. Provide sessionId or context.userId.`);
|
|
8
68
|
}
|
|
9
69
|
async chat(payload) {
|
|
70
|
+
const sessionId = this.resolveStableSessionId(payload.sessionId, payload.context?.userId);
|
|
71
|
+
this.assertStableIdentity({
|
|
72
|
+
sessionId,
|
|
73
|
+
contextUserId: payload.context?.userId,
|
|
74
|
+
surface: "chat",
|
|
75
|
+
});
|
|
10
76
|
const res = await fetch(`${this.baseUrl}/chat/completions`, {
|
|
11
77
|
method: "POST",
|
|
12
78
|
headers: {
|
|
13
79
|
"Content-Type": "application/json",
|
|
14
80
|
"X-API-Key": this.apiKey,
|
|
15
81
|
},
|
|
16
|
-
body: JSON.stringify({ ...payload, stream: false }),
|
|
82
|
+
body: JSON.stringify({ ...payload, sessionId, stream: false }),
|
|
17
83
|
});
|
|
18
84
|
await handleResponse(res);
|
|
19
85
|
return res.json();
|
|
20
86
|
}
|
|
21
87
|
streamChat(payload, onEvent, onError) {
|
|
22
|
-
|
|
88
|
+
const sessionId = this.resolveStableSessionId(payload.sessionId, payload.context?.userId);
|
|
89
|
+
this.assertStableIdentity({
|
|
90
|
+
sessionId,
|
|
91
|
+
contextUserId: payload.context?.userId,
|
|
92
|
+
surface: "chat",
|
|
93
|
+
});
|
|
94
|
+
return streamSSE(`${this.baseUrl}/chat/completions`, this.apiKey, { ...payload, sessionId, stream: true }, onEvent, onError);
|
|
23
95
|
}
|
|
24
96
|
async sendEvent(payload) {
|
|
97
|
+
const context = payload.context ?? {};
|
|
98
|
+
const sessionId = this.resolveStableSessionId(context.sessionId, context.userId);
|
|
99
|
+
this.assertStableIdentity({
|
|
100
|
+
sessionId,
|
|
101
|
+
contextUserId: context.userId,
|
|
102
|
+
surface: "events",
|
|
103
|
+
});
|
|
25
104
|
const res = await fetch(`${this.baseUrl}/events`, {
|
|
26
105
|
method: "POST",
|
|
27
106
|
headers: {
|
|
28
107
|
"Content-Type": "application/json",
|
|
29
108
|
"X-API-Key": this.apiKey,
|
|
30
109
|
},
|
|
31
|
-
body: JSON.stringify(
|
|
110
|
+
body: JSON.stringify({
|
|
111
|
+
...payload,
|
|
112
|
+
context: {
|
|
113
|
+
...context,
|
|
114
|
+
sessionId: context.sessionId ?? sessionId,
|
|
115
|
+
},
|
|
116
|
+
}),
|
|
32
117
|
});
|
|
33
118
|
await handleResponse(res);
|
|
34
119
|
}
|
package/dist/core/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQrC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
* This file was auto-generated by openapi-typescript.
|
|
3
3
|
* Do not make direct changes to the file.
|
|
4
4
|
*/
|
|
5
|
+
/** WithRequired type helpers */
|
|
6
|
+
type WithRequired<T, K extends keyof T> = T & {
|
|
7
|
+
[P in K]-?: T[P];
|
|
8
|
+
};
|
|
5
9
|
export interface paths {
|
|
6
10
|
"/chat/completions": {
|
|
7
11
|
post: operations["createChatCompletion"];
|
|
@@ -56,6 +60,8 @@ export interface components {
|
|
|
56
60
|
userTarget: string;
|
|
57
61
|
/** @description Human-readable onboarding flow identifier */
|
|
58
62
|
flowSlug?: string;
|
|
63
|
+
/** @description Stable end-user session identifier for anonymous visitors */
|
|
64
|
+
sessionId?: string;
|
|
59
65
|
/** @description Human-readable onboarding step identifier */
|
|
60
66
|
stepSlug?: string;
|
|
61
67
|
endpoint?: string;
|
|
@@ -68,9 +74,10 @@ export interface components {
|
|
|
68
74
|
userId?: string;
|
|
69
75
|
[key: string]: unknown;
|
|
70
76
|
};
|
|
77
|
+
/** @description Provide at least one stable identifier: sessionId or context.userId. */
|
|
71
78
|
ChatCompletionRequest: {
|
|
72
79
|
message: string;
|
|
73
|
-
/** @description
|
|
80
|
+
/** @description Stable session identifier. Required when context.userId is not provided. */
|
|
74
81
|
sessionId?: string;
|
|
75
82
|
context: components["schemas"]["OnboardingContext"];
|
|
76
83
|
/** @default false */
|
|
@@ -112,13 +119,16 @@ export interface components {
|
|
|
112
119
|
ChatStreamEvent: components["schemas"]["ChatStreamMeta"] | components["schemas"]["ChatStreamDelta"] | components["schemas"]["ChatStreamDone"];
|
|
113
120
|
/** @enum {string} */
|
|
114
121
|
OnboardingEventType: "FLOW_STARTED" | "STEP_VIEWED" | "STEP_COMPLETED" | "FLOW_COMPLETED" | "ABANDONED";
|
|
115
|
-
|
|
122
|
+
/** @description Event context must include at least one stable identifier: context.sessionId or context.userId. */
|
|
123
|
+
OnboardingEventRequest: WithRequired<({
|
|
116
124
|
type: components["schemas"]["OnboardingEventType"];
|
|
117
125
|
context: components["schemas"]["OnboardingContext"];
|
|
118
126
|
meta?: {
|
|
119
127
|
[key: string]: unknown;
|
|
120
128
|
} | null;
|
|
121
|
-
}
|
|
129
|
+
}) & {
|
|
130
|
+
context?: Record<string, never>;
|
|
131
|
+
}, "type" | "context">;
|
|
122
132
|
/** @enum {string} */
|
|
123
133
|
FeedbackRating: "VERY_BAD" | "BAD" | "OK" | "GOOD" | "EXCELLENT";
|
|
124
134
|
FeedbackRequest: {
|
|
@@ -183,4 +193,5 @@ export interface operations {
|
|
|
183
193
|
};
|
|
184
194
|
};
|
|
185
195
|
}
|
|
196
|
+
export {};
|
|
186
197
|
//# sourceMappingURL=openapi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/generated/openapi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,KAAK;IACpB,mBAAmB,EAAE;QACnB,IAAI,EAAE,UAAU,CAAC,sBAAsB,CAAC,CAAC;KAC1C,CAAC;IACF,SAAS,EAAE;QACT,IAAI,EAAE,UAAU,CAAC,sBAAsB,CAAC,CAAC;KAC1C,CAAC;IACF,WAAW,EAAE;QACX,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;KACpC,CAAC;CACH;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QACP,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF;;;WAGG;QACH,cAAc,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;QACtD,qBAAqB;QACrB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;QACnD,qBAAqB;QACrB,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,eAAe,CAAC;QAC9F;;;;;;;;WAQG;QACH,iBAAiB,EAAE;YACjB;;;;;;eAMG;YACH,OAAO,EAAE,MAAM,CAAC;YAChB;;;;;;eAMG;YACH,UAAU,EAAE,MAAM,CAAC;YACnB,6DAA6D;YAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,6DAA6D;YAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,kBAAkB;YAClB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;QACF,qBAAqB,EAAE;YACrB,OAAO,EAAE,MAAM,CAAC;YAChB,
|
|
1
|
+
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/generated/openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/react/useChat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,KAAK,WAAW,GAAG,IAAI,CACrB,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,EAC9C,QAAQ,CACT,CAAC;AAGF,wBAAgB,OAAO;oBAOH,WAAW;;;
|
|
1
|
+
{"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/react/useChat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,KAAK,WAAW,GAAG,IAAI,CACrB,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,EAC9C,QAAQ,CACT,CAAC;AAGF,wBAAgB,OAAO;oBAOH,WAAW;;;gBAmB6wD,qBAAsB;eAAgC,qBAAsB;;kBAAoE,qBAAsB;;;;;gBAAtK,qBAAsB;eAAgC,qBAAsB;;kBAAoE,qBAAsB;;;;EADj9D"}
|