@rool-dev/sdk 0.1.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.
- package/README.md +1070 -0
- package/dist/apps.d.ts +29 -0
- package/dist/apps.d.ts.map +1 -0
- package/dist/apps.js +88 -0
- package/dist/apps.js.map +1 -0
- package/dist/auth-browser.d.ts +80 -0
- package/dist/auth-browser.d.ts.map +1 -0
- package/dist/auth-browser.js +370 -0
- package/dist/auth-browser.js.map +1 -0
- package/dist/auth-node.d.ts +46 -0
- package/dist/auth-node.d.ts.map +1 -0
- package/dist/auth-node.js +316 -0
- package/dist/auth-node.js.map +1 -0
- package/dist/auth.d.ts +56 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +96 -0
- package/dist/auth.js.map +1 -0
- package/dist/client.d.ts +202 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +472 -0
- package/dist/client.js.map +1 -0
- package/dist/event-emitter.d.ts +38 -0
- package/dist/event-emitter.d.ts.map +1 -0
- package/dist/event-emitter.js +80 -0
- package/dist/event-emitter.js.map +1 -0
- package/dist/graphql.d.ts +71 -0
- package/dist/graphql.d.ts.map +1 -0
- package/dist/graphql.js +487 -0
- package/dist/graphql.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/jsonld.d.ts +47 -0
- package/dist/jsonld.d.ts.map +1 -0
- package/dist/jsonld.js +137 -0
- package/dist/jsonld.js.map +1 -0
- package/dist/media.d.ts +52 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +173 -0
- package/dist/media.js.map +1 -0
- package/dist/space.d.ts +358 -0
- package/dist/space.d.ts.map +1 -0
- package/dist/space.js +1121 -0
- package/dist/space.js.map +1 -0
- package/dist/subscription.d.ts +57 -0
- package/dist/subscription.d.ts.map +1 -0
- package/dist/subscription.js +296 -0
- package/dist/subscription.js.map +1 -0
- package/dist/types.d.ts +409 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +65 -0
package/dist/space.d.ts
ADDED
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import { EventEmitter } from './event-emitter.js';
|
|
2
|
+
import type { GraphQLClient } from './graphql.js';
|
|
3
|
+
import type { MediaClient } from './media.js';
|
|
4
|
+
import type { AuthManager } from './auth.js';
|
|
5
|
+
import { type JsonLdDocument } from './jsonld.js';
|
|
6
|
+
import type { RoolSpaceData, RoolObject, RoolObjectStat, SpaceEvents, RoolUserRole, SpaceMember, PromptOptions, FindObjectsOptions, MediaInfo, MediaResponse, Interaction, ConversationInfo } from './types.js';
|
|
7
|
+
export declare function generateEntityId(): string;
|
|
8
|
+
export interface SpaceConfig {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
role: RoolUserRole;
|
|
12
|
+
/** Current user's ID (for identifying own interactions) */
|
|
13
|
+
userId: string;
|
|
14
|
+
initialData: RoolSpaceData;
|
|
15
|
+
/** Optional conversation ID for AI context continuity. If not provided, a new conversation is created. */
|
|
16
|
+
conversationId?: string;
|
|
17
|
+
graphqlClient: GraphQLClient;
|
|
18
|
+
mediaClient: MediaClient;
|
|
19
|
+
graphqlUrl: string;
|
|
20
|
+
authManager: AuthManager;
|
|
21
|
+
onClose: (spaceId: string) => void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* First-class Space object.
|
|
25
|
+
*
|
|
26
|
+
* Features:
|
|
27
|
+
* - High-level object/link operations
|
|
28
|
+
* - Built-in undo/redo with checkpoints
|
|
29
|
+
* - Metadata management
|
|
30
|
+
* - Event emission for state changes
|
|
31
|
+
* - Real-time updates via space-specific subscription
|
|
32
|
+
*/
|
|
33
|
+
export declare class RoolSpace extends EventEmitter<SpaceEvents> {
|
|
34
|
+
private _id;
|
|
35
|
+
private _name;
|
|
36
|
+
private _role;
|
|
37
|
+
private _userId;
|
|
38
|
+
private _conversationId;
|
|
39
|
+
private _data;
|
|
40
|
+
private graphqlClient;
|
|
41
|
+
private mediaClient;
|
|
42
|
+
private subscriptionManager;
|
|
43
|
+
private onCloseCallback;
|
|
44
|
+
constructor(config: SpaceConfig);
|
|
45
|
+
get id(): string;
|
|
46
|
+
get name(): string;
|
|
47
|
+
get role(): RoolUserRole;
|
|
48
|
+
/** Current user's ID (for identifying own interactions) */
|
|
49
|
+
get userId(): string;
|
|
50
|
+
/**
|
|
51
|
+
* Get the conversation ID for this space instance.
|
|
52
|
+
* Used for AI context tracking and echo suppression.
|
|
53
|
+
*/
|
|
54
|
+
get conversationId(): string;
|
|
55
|
+
/**
|
|
56
|
+
* Set the conversation ID for AI context tracking.
|
|
57
|
+
* Emits 'conversationIdChanged' event.
|
|
58
|
+
*/
|
|
59
|
+
set conversationId(value: string);
|
|
60
|
+
get isReadOnly(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Get interactions for this space's current conversationId.
|
|
63
|
+
* Returns the interactions array.
|
|
64
|
+
*/
|
|
65
|
+
getInteractions(): Interaction[];
|
|
66
|
+
/**
|
|
67
|
+
* Get interactions for a specific conversation ID.
|
|
68
|
+
* Useful for viewing other conversations in the space.
|
|
69
|
+
*/
|
|
70
|
+
getInteractionsById(conversationId: string): Interaction[];
|
|
71
|
+
/**
|
|
72
|
+
* Get all conversation IDs that have conversations in this space.
|
|
73
|
+
*/
|
|
74
|
+
getConversationIds(): string[];
|
|
75
|
+
/**
|
|
76
|
+
* Rename this space.
|
|
77
|
+
*/
|
|
78
|
+
rename(newName: string): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Close this space and clean up resources.
|
|
81
|
+
* Stops real-time subscription and unregisters from client.
|
|
82
|
+
*/
|
|
83
|
+
close(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Create a checkpoint (seal current batch of changes).
|
|
86
|
+
* Patches accumulate automatically - this seals them with a label.
|
|
87
|
+
* @returns The checkpoint ID
|
|
88
|
+
*/
|
|
89
|
+
checkpoint(label?: string): Promise<string>;
|
|
90
|
+
/**
|
|
91
|
+
* Check if undo is available.
|
|
92
|
+
*/
|
|
93
|
+
canUndo(): Promise<boolean>;
|
|
94
|
+
/**
|
|
95
|
+
* Check if redo is available.
|
|
96
|
+
*/
|
|
97
|
+
canRedo(): Promise<boolean>;
|
|
98
|
+
/**
|
|
99
|
+
* Undo the most recent batch of changes.
|
|
100
|
+
* Reverses your most recent batch (sealed or open).
|
|
101
|
+
* Conflicting patches (modified by others) are silently skipped.
|
|
102
|
+
* @returns true if undo was performed
|
|
103
|
+
*/
|
|
104
|
+
undo(): Promise<boolean>;
|
|
105
|
+
/**
|
|
106
|
+
* Redo a previously undone batch of changes.
|
|
107
|
+
* @returns true if redo was performed
|
|
108
|
+
*/
|
|
109
|
+
redo(): Promise<boolean>;
|
|
110
|
+
/**
|
|
111
|
+
* Clear checkpoint history for this conversation.
|
|
112
|
+
*/
|
|
113
|
+
clearHistory(): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Get an object's data by ID.
|
|
116
|
+
* Returns just the data portion (RoolObject), not the full entry with meta/links.
|
|
117
|
+
*/
|
|
118
|
+
getObject(objectId: string): Promise<RoolObject | undefined>;
|
|
119
|
+
/**
|
|
120
|
+
* Get an object's stat (audit information).
|
|
121
|
+
* Returns modification timestamp and author, or undefined if object not found.
|
|
122
|
+
*/
|
|
123
|
+
stat(objectId: string): Promise<RoolObjectStat | undefined>;
|
|
124
|
+
/**
|
|
125
|
+
* Find objects using structured filters and natural language.
|
|
126
|
+
* @param options.where - Structured field requirements (exact match). Use {{placeholder}} for semantic matching.
|
|
127
|
+
* @param options.prompt - Natural language query/refinement
|
|
128
|
+
* @param options.limit - Maximum number of results to return
|
|
129
|
+
* @param options.objectIds - Scope search to specific objects
|
|
130
|
+
* @returns The matching objects and a message from the AI
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* // Exact match
|
|
134
|
+
* const { objects } = await space.findObjects({ where: { type: 'article' } });
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* // Natural language
|
|
138
|
+
* const { objects, message } = await space.findObjects({
|
|
139
|
+
* prompt: 'articles about space exploration'
|
|
140
|
+
* });
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* // Combined - structured + semantic
|
|
144
|
+
* const { objects } = await space.findObjects({
|
|
145
|
+
* where: { type: 'article', category: '{{something about food}}' },
|
|
146
|
+
* prompt: 'published in the last month',
|
|
147
|
+
* limit: 10
|
|
148
|
+
* });
|
|
149
|
+
*/
|
|
150
|
+
findObjects(options: FindObjectsOptions): Promise<{
|
|
151
|
+
objects: RoolObject[];
|
|
152
|
+
message: string;
|
|
153
|
+
}>;
|
|
154
|
+
/**
|
|
155
|
+
* Get all object IDs.
|
|
156
|
+
* @param options.limit - Maximum number of IDs to return
|
|
157
|
+
* @param options.order - Sort order by modifiedAt ('asc' or 'desc', default: 'desc')
|
|
158
|
+
*/
|
|
159
|
+
getObjectIds(options?: {
|
|
160
|
+
limit?: number;
|
|
161
|
+
order?: 'asc' | 'desc';
|
|
162
|
+
}): string[];
|
|
163
|
+
/**
|
|
164
|
+
* Create a new object with optional AI generation.
|
|
165
|
+
* @param options.data - Object data fields (any key-value pairs). Optionally include `id` to use a custom ID. Use {{placeholder}} for AI-generated content. Fields prefixed with _ are hidden from AI.
|
|
166
|
+
* @param options.prompt - AI prompt for content generation (optional).
|
|
167
|
+
* @param options.ephemeral - If true, the operation won't be recorded in conversation history.
|
|
168
|
+
* @returns The created object (with AI-filled content) and message
|
|
169
|
+
*/
|
|
170
|
+
createObject(options: {
|
|
171
|
+
data: Record<string, unknown>;
|
|
172
|
+
prompt?: string;
|
|
173
|
+
ephemeral?: boolean;
|
|
174
|
+
}): Promise<{
|
|
175
|
+
object: RoolObject;
|
|
176
|
+
message: string;
|
|
177
|
+
}>;
|
|
178
|
+
/**
|
|
179
|
+
* Update an existing object.
|
|
180
|
+
* @param objectId - The ID of the object to update
|
|
181
|
+
* @param options.data - Fields to add or update. Pass null or undefined to delete a field. Use {{placeholder}} for AI-generated content. Fields prefixed with _ are hidden from AI.
|
|
182
|
+
* @param options.prompt - AI prompt for content editing (optional).
|
|
183
|
+
* @param options.ephemeral - If true, the operation won't be recorded in conversation history.
|
|
184
|
+
* @returns The updated object (with AI-filled content) and message
|
|
185
|
+
*/
|
|
186
|
+
updateObject(objectId: string, options: {
|
|
187
|
+
data?: Record<string, unknown>;
|
|
188
|
+
prompt?: string;
|
|
189
|
+
ephemeral?: boolean;
|
|
190
|
+
}): Promise<{
|
|
191
|
+
object: RoolObject;
|
|
192
|
+
message: string;
|
|
193
|
+
}>;
|
|
194
|
+
/**
|
|
195
|
+
* Delete objects by IDs.
|
|
196
|
+
* Outbound links are automatically deleted with the object.
|
|
197
|
+
* Inbound links become orphans (tolerated).
|
|
198
|
+
*/
|
|
199
|
+
deleteObjects(objectIds: string[]): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* Delete a conversation and its interaction history.
|
|
202
|
+
* Defaults to the current conversation if no conversationId is provided.
|
|
203
|
+
*/
|
|
204
|
+
deleteConversation(conversationId?: string): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Rename a conversation.
|
|
207
|
+
* If the conversation doesn't exist, it will be created with the given name.
|
|
208
|
+
*/
|
|
209
|
+
renameConversation(conversationId: string, name: string): Promise<void>;
|
|
210
|
+
/**
|
|
211
|
+
* List all conversations in this space with summary info.
|
|
212
|
+
*/
|
|
213
|
+
listConversations(): Promise<ConversationInfo[]>;
|
|
214
|
+
/**
|
|
215
|
+
* Create a link between objects.
|
|
216
|
+
* Links are stored on the source object.
|
|
217
|
+
*/
|
|
218
|
+
link(sourceId: string, relation: string, targetId: string): Promise<void>;
|
|
219
|
+
/**
|
|
220
|
+
* Remove links from a source object.
|
|
221
|
+
* Three forms:
|
|
222
|
+
* - unlink(source, relation, target): remove one specific link
|
|
223
|
+
* - unlink(source, relation): clear all targets for that relation
|
|
224
|
+
* - unlink(source): clear ALL relations on the source
|
|
225
|
+
* @returns true if any links were removed
|
|
226
|
+
*/
|
|
227
|
+
unlink(sourceId: string, relation?: string, targetId?: string): Promise<boolean>;
|
|
228
|
+
/**
|
|
229
|
+
* Get parent objects (objects that have links pointing TO this object).
|
|
230
|
+
* @param relation - Optional filter by relation name
|
|
231
|
+
* @param options.limit - Maximum number of parents to return
|
|
232
|
+
* @param options.order - Sort order by modifiedAt ('asc' or 'desc', default: 'desc')
|
|
233
|
+
*/
|
|
234
|
+
getParents(objectId: string, relation?: string, options?: {
|
|
235
|
+
limit?: number;
|
|
236
|
+
order?: 'asc' | 'desc';
|
|
237
|
+
}): Promise<RoolObject[]>;
|
|
238
|
+
/**
|
|
239
|
+
* Get child objects (objects that this object has links pointing TO).
|
|
240
|
+
* Filters out orphan targets (targets that don't exist).
|
|
241
|
+
* @param relation - Optional filter by relation name
|
|
242
|
+
* @param options.limit - Maximum number of children to return
|
|
243
|
+
* @param options.order - Sort order by modifiedAt ('asc' or 'desc', default: 'desc')
|
|
244
|
+
*/
|
|
245
|
+
getChildren(objectId: string, relation?: string, options?: {
|
|
246
|
+
limit?: number;
|
|
247
|
+
order?: 'asc' | 'desc';
|
|
248
|
+
}): Promise<RoolObject[]>;
|
|
249
|
+
/**
|
|
250
|
+
* Get all child object IDs including orphans (targets that may not exist).
|
|
251
|
+
* @param relation - Optional filter by relation name
|
|
252
|
+
*/
|
|
253
|
+
getChildrenIncludingOrphans(objectId: string, relation?: string): string[];
|
|
254
|
+
/**
|
|
255
|
+
* Set a space-level metadata value.
|
|
256
|
+
* Metadata is stored in meta and hidden from AI operations.
|
|
257
|
+
*/
|
|
258
|
+
setMetadata(key: string, value: unknown): void;
|
|
259
|
+
/**
|
|
260
|
+
* Get a space-level metadata value.
|
|
261
|
+
*/
|
|
262
|
+
getMetadata(key: string): unknown;
|
|
263
|
+
/**
|
|
264
|
+
* Get all space-level metadata.
|
|
265
|
+
*/
|
|
266
|
+
getAllMetadata(): Record<string, unknown>;
|
|
267
|
+
/**
|
|
268
|
+
* Send a prompt to the AI agent for space manipulation.
|
|
269
|
+
* @returns The message from the AI and the list of objects that were created or modified
|
|
270
|
+
*/
|
|
271
|
+
prompt(prompt: string, options?: PromptOptions): Promise<{
|
|
272
|
+
message: string;
|
|
273
|
+
objects: RoolObject[];
|
|
274
|
+
}>;
|
|
275
|
+
/**
|
|
276
|
+
* List users with access to this space.
|
|
277
|
+
*/
|
|
278
|
+
listUsers(): Promise<SpaceMember[]>;
|
|
279
|
+
/**
|
|
280
|
+
* Add a user to this space with specified role.
|
|
281
|
+
*/
|
|
282
|
+
addUser(userId: string, role: RoolUserRole): Promise<void>;
|
|
283
|
+
/**
|
|
284
|
+
* Remove a user from this space.
|
|
285
|
+
*/
|
|
286
|
+
removeUser(userId: string): Promise<void>;
|
|
287
|
+
/**
|
|
288
|
+
* List all media files for this space.
|
|
289
|
+
*/
|
|
290
|
+
listMedia(): Promise<MediaInfo[]>;
|
|
291
|
+
/**
|
|
292
|
+
* Upload a file to this space. Returns the URL.
|
|
293
|
+
*/
|
|
294
|
+
uploadMedia(file: File | Blob | {
|
|
295
|
+
data: string;
|
|
296
|
+
contentType: string;
|
|
297
|
+
}): Promise<string>;
|
|
298
|
+
/**
|
|
299
|
+
* Fetch any URL, returning headers and a blob() method (like fetch Response).
|
|
300
|
+
* Adds auth headers for backend media URLs, fetches external URLs via server proxy if CORS blocks.
|
|
301
|
+
*/
|
|
302
|
+
fetchMedia(url: string): Promise<MediaResponse>;
|
|
303
|
+
/**
|
|
304
|
+
* Delete a media file by URL.
|
|
305
|
+
*/
|
|
306
|
+
deleteMedia(url: string): Promise<void>;
|
|
307
|
+
/**
|
|
308
|
+
* Get the full space data.
|
|
309
|
+
* Use sparingly - prefer specific operations.
|
|
310
|
+
*/
|
|
311
|
+
getData(): RoolSpaceData;
|
|
312
|
+
/**
|
|
313
|
+
* Export space data as JSON-LD.
|
|
314
|
+
* Returns a JSON-LD document with all objects and their relations.
|
|
315
|
+
* Space metadata and interaction history are not included.
|
|
316
|
+
*/
|
|
317
|
+
export(): JsonLdDocument;
|
|
318
|
+
/**
|
|
319
|
+
* Import JSON-LD data into the space.
|
|
320
|
+
* Creates objects and links from the JSON-LD graph.
|
|
321
|
+
* Space must be empty (throws if objects exist).
|
|
322
|
+
*/
|
|
323
|
+
import(data: unknown): Promise<void>;
|
|
324
|
+
/**
|
|
325
|
+
* Export space data and media as a zip archive.
|
|
326
|
+
* Media URLs are rewritten to relative paths within the archive.
|
|
327
|
+
* @returns A Blob containing the zip archive
|
|
328
|
+
*/
|
|
329
|
+
exportArchive(): Promise<Blob>;
|
|
330
|
+
/**
|
|
331
|
+
* Import from a zip archive containing data.json and media files.
|
|
332
|
+
* Space must be empty (throws if objects exist).
|
|
333
|
+
*/
|
|
334
|
+
importArchive(archive: Blob): Promise<void>;
|
|
335
|
+
/**
|
|
336
|
+
* Handle a space event from the subscription.
|
|
337
|
+
* @internal
|
|
338
|
+
*/
|
|
339
|
+
private handleSpaceEvent;
|
|
340
|
+
/**
|
|
341
|
+
* Check if a patch would actually change the current data.
|
|
342
|
+
* Used to deduplicate events when patches don't change anything (e.g., optimistic updates).
|
|
343
|
+
* @internal
|
|
344
|
+
*/
|
|
345
|
+
private didPatchChangeAnything;
|
|
346
|
+
/**
|
|
347
|
+
* Handle a patch event from another client.
|
|
348
|
+
* @internal
|
|
349
|
+
*/
|
|
350
|
+
private handleRemotePatch;
|
|
351
|
+
/**
|
|
352
|
+
* Parse JSON patch operations and emit semantic events.
|
|
353
|
+
* @internal
|
|
354
|
+
*/
|
|
355
|
+
private emitSemanticEventsFromPatch;
|
|
356
|
+
private resyncFromServer;
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=space.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAwD,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EAEV,cAAc,EAEd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,aAAa,EAIb,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AA+CD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,aAAa,CAAC;IAC3B,0GAA0G;IAC1G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,qBAAa,SAAU,SAAQ,YAAY,CAAC,WAAW,CAAC;IACtD,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,eAAe,CAA4B;gBAEvC,MAAM,EAAE,WAAW;IAmC/B,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,YAAY,CAEvB;IAED,2DAA2D;IAC3D,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;OAGG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED;;;OAGG;IACH,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAQ/B;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAMD;;;OAGG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;;OAGG;IACH,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,EAAE;IAI1D;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAQ9B;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5C;;;OAGG;IACH,KAAK,IAAI,IAAI;IAUb;;;;OAIG;IACG,UAAU,CAAC,KAAK,GAAE,MAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAS3D;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAKjC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAKjC;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAM9B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAM9B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAQnC;;;OAGG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAIlE;;;OAGG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAWjE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAiDnG;;;;OAIG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE;IAqB5E;;;;;;OAMG;IACG,YAAY,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA2CpD;;;;;;;OAOG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GACA,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAsDnD;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDvD;;;OAGG;IACG,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBhE;;;OAGG;IACG,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7E;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQtD;;;OAGG;IACG,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IA0BhB;;;;;;;OAOG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsDtF;;;;;OAKG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,GACnD,OAAO,CAAC,UAAU,EAAE,CAAC;IA6BxB;;;;;;OAMG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,GACnD,OAAO,CAAC,UAAU,EAAE,CAAC;IAmCxB;;;OAGG;IACH,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAiB1E;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAe9C;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQzC;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAkB1G;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAIzC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIvC;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GACxD,OAAO,CAAC,MAAM,CAAC;IAIlB;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrD;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C;;;OAGG;IACH,OAAO,IAAI,aAAa;IAQxB;;;;OAIG;IACH,MAAM,IAAI,cAAc;IAIxB;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAkDpC;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDjD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;OAGG;IACH,OAAO,CAAC,2BAA2B;YAmErB,gBAAgB;CAkB/B"}
|