@rool-dev/client 0.3.1-dev.5873a0f → 0.3.1-dev.5aaae9e

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 CHANGED
@@ -1,6 +1,10 @@
1
1
  # Rool Client
2
2
 
3
- TypeScript client library for the Rool server API. Provides authentication, real-time sync, and graph operations.
3
+ The TypeScript client for Rool Spaces, a persistent and collaborative environment for organizing objects and their relationships.
4
+
5
+ Rool Spaces enables you to build applications where AI operates on a structured world model rather than a text conversation. The context for all AI operations is the full object graph, allowing the system to reason about, update, and expand the state of your application directly.
6
+
7
+ Use Rool to programmatically instruct agents to generate content, research topics, or reorganize data. The client manages authentication, real-time synchronization, and media storage, supporting both single-user and multi-user workflows.
4
8
 
5
9
  ## Installation
6
10
 
@@ -13,33 +17,48 @@ npm install @rool-dev/client
13
17
  ```typescript
14
18
  import { RoolClient } from '@rool-dev/client';
15
19
 
16
- const client = new RoolClient({ baseUrl: 'https://use.rool.dev' });
17
- client.initialize(); // Process auth callback if returning from login
20
+ // Initialize client
21
+ const client = new RoolClient({
22
+ baseUrl: 'https://api.rool.dev',
23
+ });
18
24
 
19
25
  if (!client.isAuthenticated()) {
20
26
  client.login(); // Redirects to auth page
21
27
  }
22
28
 
23
- // Subscribe to real-time events
24
- await client.subscribe();
29
+ // Open an existing space
30
+ const space = await client.openSpace('abc1234');
31
+
32
+ // Create a new space
33
+ const newSpace = await client.createSpace('My New Space');
25
34
 
26
- // Open a graph and work with it
27
- const graph = await client.openGraph('my-graph-id');
28
- graph.subscribe(); // Listen for real-time updates
35
+ // Subscribe to real-time updates
36
+ space.subscribe();
29
37
 
30
- // Add a node
31
- graph.checkpoint('Add node');
32
- graph.addNode('node1', { type: 'text', content: 'Hello' });
38
+ // Listen for space changes
39
+ space.on('objectCreated', ({ object }) => {
40
+ console.log('New object:', object);
41
+ });
42
+
43
+ space.on('linked', ({ sourceId, targetId }) => {
44
+ console.log('New link:', sourceId, '->', targetId);
45
+ });
33
46
 
34
- // Link nodes
35
- graph.linkNodes('node1', 'node2', 'connection');
47
+ // Make changes (automatically synced)
48
+ await space.createObject({
49
+ type: 'note',
50
+ fields: { text: 'Hello World' }
51
+ });
52
+
53
+ // Create a link between objects
54
+ await space.link('id', 'object2', 'connection');
36
55
 
37
56
  // Undo/redo support
38
- graph.undo();
39
- graph.redo();
57
+ await space.undo();
58
+ await space.redo();
40
59
 
41
60
  // Clean up
42
- graph.close();
61
+ space.close();
43
62
  ```
44
63
 
45
64
  ## Configuration
@@ -118,24 +137,24 @@ const client = new RoolClient({
118
137
  | `login(): void` | Redirect to login page |
119
138
  | `logout(): void` | Clear tokens and state |
120
139
  | `isAuthenticated(): boolean` | Check auth status |
121
- | `getToken(): Promise<string \| undefined>` | Get current access token |
140
+ | `getToken(): Promise<string | undefined>` | Get current access token |
122
141
  | `getUser(): UserInfo` | Get user info from JWT (`{ email, name }`) |
123
142
 
124
- ### Graph Lifecycle
143
+ ### Space Lifecycle
125
144
 
126
145
  | Method | Description |
127
146
  |--------|-------------|
128
- | `listGraphs(): Promise<RoolGraphInfo[]>` | List accessible graphs |
129
- | `openGraph(graphId): Promise<RoolGraph>` | Open existing graph. Call `graph.subscribe()` after to receive updates. |
130
- | `createGraph(name?): Promise<RoolGraph>` | Create new graph |
131
- | `deleteGraph(graphId): Promise<void>` | Delete a graph |
147
+ | `listSpaces(): Promise<RoolSpaceInfo[]>` | List available spaces |
148
+ | `openSpace(id): Promise<RoolSpace>` | Open a space for editing |
149
+ | `createSpace(name?): Promise<RoolSpace>` | Create a new space |
150
+ | `deleteSpace(id): Promise<void>` | Delete a space |
132
151
 
133
152
  ### Account & Users
134
153
 
135
154
  | Method | Description |
136
155
  |--------|-------------|
137
156
  | `getAccount(): Promise<Account>` | Get account info (plan, credits) |
138
- | `searchUser(email): Promise<UserResult \| null>` | Search user by email |
157
+ | `searchUser(email): Promise<UserResult | null>` | Search user by email |
139
158
 
140
159
  ### Subscriptions
141
160
 
@@ -158,26 +177,26 @@ const client = new RoolClient({
158
177
 
159
178
  ```typescript
160
179
  client.on('authStateChanged', (authenticated: boolean) => void)
161
- client.on('graphCreated', (graphId: string) => void)
162
- client.on('graphDeleted', (graphId: string) => void)
163
- client.on('graphRenamed', (graphId: string, newName: string) => void)
180
+ client.on('spaceCreated', (spaceId: string) => void)
181
+ client.on('spaceDeleted', (spaceId: string) => void)
182
+ client.on('spaceRenamed', (spaceId: string, newName: string) => void)
164
183
  client.on('connectionStateChanged', (state: 'connected' | 'disconnected' | 'reconnecting') => void)
165
184
  client.on('error', (error: Error, context?: string) => void)
166
185
  ```
167
186
 
168
187
  ---
169
188
 
170
- ## RoolGraph API
189
+ ## RoolSpace API
171
190
 
172
- Graphs are first-class objects with built-in undo/redo, event emission, and real-time sync.
191
+ Spaces are first-class objects with built-in undo/redo, event emission, and real-time sync.
173
192
 
174
193
  ### Properties
175
194
 
176
195
  | Property | Description |
177
196
  |----------|-------------|
178
- | `id: string` | Graph ID |
179
- | `name: string` | Graph name |
180
- | `role: RoolGraphRole` | User's role (`'owner' \| 'editor' \| 'viewer'`) |
197
+ | `id: string` | Space ID |
198
+ | `name: string` | Space name |
199
+ | `role: RoolUserRole` | User's role (`'owner' | 'editor' | 'viewer'`) |
181
200
  | `isReadOnly(): boolean` | True if viewer role |
182
201
  | `isSubscribed(): boolean` | True if receiving real-time updates |
183
202
 
@@ -188,7 +207,7 @@ Graphs are first-class objects with built-in undo/redo, event emission, and real
188
207
  | `subscribe(): void` | Call after opening. Start receiving real-time updates from other clients. |
189
208
  | `unsubscribe(): void` | Stop real-time updates |
190
209
  | `close(): void` | Clean up and unsubscribe |
191
- | `rename(newName): Promise<void>` | Rename the graph |
210
+ | `rename(newName): Promise<void>` | Rename the space |
192
211
 
193
212
  ### Undo/Redo
194
213
 
@@ -201,34 +220,70 @@ Graphs are first-class objects with built-in undo/redo, event emission, and real
201
220
  | `redo(): Promise<boolean>` | Redo undone action |
202
221
  | `clearHistory(): void` | Clear undo/redo stack |
203
222
 
204
- ### Node Operations
223
+ ### Object Operations
205
224
 
206
225
  | Method | Description |
207
226
  |--------|-------------|
208
- | `getNode(nodeId): RoolNode` | Get node (throws if not found) |
209
- | `getNodeOrUndefined(nodeId): RoolNode \| undefined` | Get node or undefined |
210
- | `getNodesByType(type): RoolNode[]` | Get all nodes of type |
211
- | `getNodeIds(): string[]` | Get all node IDs |
212
- | `addNode(nodeId, node): void` | Add a node |
213
- | `updateNode(nodeId, updates): void` | Update node fields |
214
- | `deleteNodes(nodeIds): void` | Delete nodes (and connected edges) |
227
+ | `getObject(objectId): RoolObject` | Get object data. Throws if not found. |
228
+ | `getObjectOrUndefined(objectId): RoolObject | undefined` | Get object data, or undefined if not found. |
229
+ | `getObjectsByType(type): RoolObject[]` | Get all objects matching the given type. |
230
+ | `getObjectIds(): string[]` | Get all object IDs in the space. |
231
+ | `getObjectMeta(objectId): Record<string, unknown>` | Get object metadata (position, UI state, etc.) Hidden from AI. |
232
+ | `createObject(options): Promise<{ id, message }>` | Create a new object. Returns the generated ID and AI message. |
233
+ | `updateObject(objectId, options): Promise<string>` | Update an existing object. Returns AI message. |
234
+ | `deleteObjects(objectIds): Promise<void>` | Delete objects. Outbound links are removed automatically. |
235
+
236
+ #### createObject / updateObject Options
237
+
238
+ Both methods accept an options object:
239
+
240
+ | Option | Description |
241
+ |--------|-------------|
242
+ | `type` | Object type (required for create, optional for update). |
243
+ | `fields` | Key-value pairs for object data. Use `{{placeholder}}` for AI-generated content. |
244
+ | `meta` | Client-private metadata (e.g., position). Hidden from AI operations. |
245
+ | `prompt` | Natural language instruction for AI to generate or modify content. |
246
+
247
+ **AI Placeholder Pattern**: Use `{{description}}` in field values to have AI generate content:
248
+
249
+ ```typescript
250
+ // Create with AI-generated content
251
+ await space.createObject({
252
+ type: 'article',
253
+ fields: {
254
+ headline: '{{catchy headline about coffee}}',
255
+ body: '{{informative paragraph}}'
256
+ },
257
+ prompt: 'Write about specialty coffee brewing'
258
+ });
259
+
260
+ // Update existing content with AI
261
+ await space.updateObject('abc123', {
262
+ prompt: 'Make the body shorter and more casual'
263
+ });
264
+
265
+ // Add new AI-generated field to existing object
266
+ await space.updateObject('abc123', {
267
+ fields: { summary: '{{one-sentence summary}}' }
268
+ });
269
+ ```
270
+
271
+ ### Link Operations
215
272
 
216
- ### Edge Operations
273
+ Links connect objects directionally. They are stored on the source object and identified by `sourceId + linkType + targetId`.
217
274
 
218
275
  | Method | Description |
219
276
  |--------|-------------|
220
- | `linkNodes(sourceId, targetId, edgeType): string` | Create edge, returns edge ID |
221
- | `unlinkNodes(sourceId, targetId): boolean` | Remove edges between nodes |
222
- | `getParents(nodeId, edgeType?): string[]` | Get nodes pointing to this node |
223
- | `getChildren(nodeId, edgeType?): string[]` | Get nodes this node points to |
224
- | `getEdge(edgeId): RoolEdge \| undefined` | Get edge by ID |
225
- | `getEdgeIds(): string[]` | Get all edge IDs |
277
+ | `link(sourceId, targetId, linkType): Promise<void>` | Create a link from source to target with the given type. |
278
+ | `unlink(sourceId, targetId, linkType?): Promise<boolean>` | Remove link(s). If `linkType` provided, removes only that type; otherwise removes all links between the objects. |
279
+ | `getParents(objectId, linkType?): string[]` | Get IDs of objects that link TO this object. |
280
+ | `getChildren(objectId, linkType?): string[]` | Get IDs of objects this object links TO. |
226
281
 
227
282
  ### Metadata
228
283
 
229
284
  | Method | Description |
230
285
  |--------|-------------|
231
- | `setMetadata(key, value): void` | Set metadata (hidden from AI) |
286
+ | `setMetadata(key, value): void` | Set space-level metadata (hidden from AI) |
232
287
  | `getMetadata(key): unknown` | Get metadata value |
233
288
  | `getAllMetadata(): Record<string, unknown>` | Get all metadata |
234
289
 
@@ -236,15 +291,41 @@ Graphs are first-class objects with built-in undo/redo, event emission, and real
236
291
 
237
292
  | Method | Description |
238
293
  |--------|-------------|
239
- | `prompt(prompt, options?): Promise<string \| null>` | AI graph manipulation |
294
+ | `prompt(prompt, options?): Promise<string | null>` | AI space manipulation |
295
+
296
+ The `prompt` method lets you invoke the AI agent to manipulate the space, perform research, or query information.
297
+
298
+ **Capabilities:**
299
+ - **Creation**: "Create 3 markdown nodes with haikus about nature"
300
+ - **Modification**: "Make the selected node's text more formal"
301
+ - **Research**: "Create a knowledge graph about the exoplanets orbiting PSR B1257+12" (Agent will search Wikipedia)
302
+ - **Structure**: "Connect the topic node to all created child nodes"
303
+
304
+ **Options:**
305
+ - `objectIds`: Limit context to specific objects ("Update *these* objects")
306
+ - `responseSchema`: Request a structured JSON response instead of a text summary
307
+
308
+ ```typescript
309
+ // Example: Research and expansion
310
+ await space.prompt(
311
+ "Create a topic node for the solar system, then child nodes for each planet.",
312
+ { responseSchema: null } // Returns a text summary
313
+ );
314
+
315
+ // Example: Focused update
316
+ await space.prompt(
317
+ "Summarize this article in the 'summary' field",
318
+ { objectIds: ['article-node-id'] }
319
+ );
320
+ ```
240
321
 
241
322
  ### Collaboration
242
323
 
243
324
  | Method | Description |
244
325
  |--------|-------------|
245
- | `listUsers(): Promise<RoolGraphUser[]>` | List users with access |
246
- | `addUser(userId, role): Promise<void>` | Add user to graph |
247
- | `removeUser(userId): Promise<void>` | Remove user from graph |
326
+ | `listUsers(): Promise<RoolUser[]>` | List users with access |
327
+ | `addUser(userId, role): Promise<void>` | Add user to space |
328
+ | `removeUser(userId): Promise<void>` | Remove user from space |
248
329
 
249
330
  ### Media
250
331
 
@@ -260,74 +341,97 @@ Graphs are first-class objects with built-in undo/redo, event emission, and real
260
341
 
261
342
  | Method | Description |
262
343
  |--------|-------------|
263
- | `getData(): RoolGraphData` | Get full graph data |
264
- | `patch(operations): void` | Apply JSON patch |
344
+ | `getData(): RoolSpaceData` | Get full space data (internal format) |
345
+
346
+ ### Space Events
265
347
 
266
- ### Graph Events
348
+ Semantic events describe what changed. Events fire for both local changes and remote changes.
267
349
 
268
350
  ```typescript
269
- // Incremental change - ops is the raw JSON patch
270
- // source indicates origin: 'local' | 'remote_user' | 'remote_agent' | 'system'
271
- graph.on('patch', ({ ops, source }) => void)
351
+ // source indicates origin:
352
+ // - 'local_user': This client made the change
353
+ // - 'remote_user': Another user/client made the change
354
+ // - 'remote_agent': AI agent made the change
355
+ // - 'system': Resync after error
356
+
357
+ // Object events
358
+ space.on('objectCreated', ({ objectId, object, source }) => void)
359
+ space.on('objectUpdated', ({ objectId, object, source }) => void)
360
+ space.on('objectDeleted', ({ objectId, source }) => void)
361
+
362
+ // Link events
363
+ space.on('linked', ({ sourceId, targetId, linkType, source }) => void)
364
+ space.on('unlinked', ({ sourceId, targetId, linkType, source }) => void)
365
+
366
+ // Space metadata
367
+ space.on('metaUpdated', ({ meta, source }) => void)
272
368
 
273
369
  // Full state replacement (undo/redo, resync after error)
274
- graph.on('reset', ({ source }) => void)
370
+ space.on('reset', ({ source }) => void)
275
371
 
276
- // Sync error occurred, graph resynced from server
277
- graph.on('syncError', (error: Error) => void)
372
+ // Sync error occurred, space resynced from server
373
+ space.on('syncError', (error: Error) => void)
278
374
  ```
279
375
 
280
- **Usage patterns:**
281
- - **Simple (full re-render)**: Listen to both `patch` and `reset`, call `graph.getData()` and re-render
282
- - **Power user (incremental)**: Parse `ops` in `patch` for granular updates, full re-render on `reset`
376
+ **Usage pattern:**
377
+ ```typescript
378
+ // All UI updates happen in one place, regardless of change source
379
+ space.on('objectUpdated', ({ objectId, object, source }) => {
380
+ renderObject(objectId, object);
381
+ if (source === 'remote_agent') {
382
+ doLayout(); // AI might have added content
383
+ }
384
+ });
385
+
386
+ // Caller just makes the change - event handler does the UI work
387
+ space.updateObject(objectId, { prompt: 'expand this' });
388
+ ```
283
389
 
284
390
  ---
285
391
 
286
392
  ## Types
287
393
 
288
- ### Graph Data
394
+ ### Space Data
289
395
 
290
396
  ```typescript
291
- interface RoolGraphData {
292
- nodes: Record<string, RoolNode>;
293
- edges: Record<string, RoolEdge>;
294
- _meta: Record<string, unknown>; // Hidden from AI
295
- }
296
-
297
- interface RoolNode {
397
+ // RoolObject represents the object data you work with
398
+ interface RoolObject {
298
399
  type: string;
299
- _meta: Record<string, unknown>;
300
400
  [key: string]: unknown;
301
401
  }
302
402
 
303
- interface RoolEdge {
304
- sources: string[];
305
- targets: string[];
306
- type: string;
307
- _meta: Record<string, unknown>;
308
- [key: string]: unknown;
403
+ // Internal space data structure
404
+ interface RoolSpaceData {
405
+ objects: Record<string, ObjectEntry>;
406
+ meta: Record<string, unknown>; // Space-level metadata, hidden from AI
407
+ }
408
+
409
+ // Internal: Full stored object structure (you typically don't use this directly)
410
+ interface ObjectEntry {
411
+ meta: Record<string, unknown>; // Object-level metadata
412
+ links: Record<string, Record<string, Record<string, unknown>>>; // linkType -> targetId -> linkData
413
+ data: RoolObject; // The actual object data
309
414
  }
310
415
  ```
311
416
 
312
417
  ### Info Types
313
418
 
314
419
  ```typescript
315
- type RoolGraphRole = 'owner' | 'editor' | 'viewer';
420
+ type RoolUserRole = 'owner' | 'editor' | 'viewer';
316
421
 
317
- interface RoolGraphInfo { id: string; name: string; role: RoolGraphRole; }
318
- interface RoolGraphUser { id: string; email: string; role: RoolGraphRole; }
422
+ interface RoolSpaceInfo { id: string; name: string; role: RoolUserRole; }
423
+ interface RoolUser { id: string; email: string; role: RoolUserRole; }
319
424
  interface UserResult { id: string; email: string; }
320
425
  interface Account { id: string; email: string; plan: string; creditsBalance: number; }
321
426
  interface MediaItem { uuid: string; url: string; contentType: string; size: number; }
322
- type GraphPatchSource = 'local' | 'remote_user' | 'remote_agent' | 'system';
427
+ type ChangeSource = 'local_user' | 'remote_user' | 'remote_agent' | 'system';
323
428
  ```
324
429
 
325
430
  ### Prompt Options
326
431
 
327
432
  ```typescript
328
433
  interface PromptOptions {
329
- nodeIds?: string[]; // Scope to specific nodes
330
- edgeIds?: string[]; // Scope to specific edges
434
+ objectIds?: string[]; // Scope to specific objects
331
435
  responseSchema?: Record<string, unknown>;
332
436
  }
333
437
  ```
package/dist/client.d.ts CHANGED
@@ -1,18 +1,17 @@
1
1
  import { EventEmitter } from './event-emitter.js';
2
- import { RoolGraph } from './graph.js';
3
- import type { RoolClientConfig, RoolClientEvents, RoolGraphInfo, Account, UserResult, UserInfo } from './types.js';
2
+ import { RoolSpace } from './space.js';
3
+ import type { RoolClientConfig, RoolClientEvents, RoolSpaceInfo, Account, UserResult, UserInfo } from './types.js';
4
4
  /**
5
- * Rool Client - Manages authentication, graph lifecycle, and shared infrastructure.
5
+ * Rool Client - Manages authentication, space lifecycle, and shared infrastructure.
6
6
  *
7
- * The client is lightweight - most graph operations happen on Graph instances
8
- * obtained via openGraph() or createGraph().
7
+ * The client is lightweight - most operations happen on Space instances
9
8
  *
10
9
  * Features:
11
10
  * - Authentication (login, logout, token management)
12
- * - Graph lifecycle (list, open, create, delete)
11
+ * - Spaces lifecycle (list, open, create, delete)
13
12
  * - Shared SSE subscription with event routing
14
13
  * - Media operations
15
- * - AI operations (promptGraph, image generation)
14
+ * - AI operations (prompt, image generation)
16
15
  */
17
16
  export declare class RoolClient extends EventEmitter<RoolClientEvents> {
18
17
  private urls;
@@ -20,7 +19,7 @@ export declare class RoolClient extends EventEmitter<RoolClientEvents> {
20
19
  private graphqlClient;
21
20
  private subscriptionManager;
22
21
  private connectionId;
23
- private subscribedGraphs;
22
+ private subscribedSpaces;
24
23
  constructor(config: RoolClientConfig);
25
24
  /**
26
25
  * Initialize the client - should be called on app startup.
@@ -59,24 +58,24 @@ export declare class RoolClient extends EventEmitter<RoolClientEvents> {
59
58
  */
60
59
  getUser(): UserInfo;
61
60
  /**
62
- * List all graphs accessible to the user.
61
+ * List all spaces accessible to the user.
63
62
  */
64
- listGraphs(): Promise<RoolGraphInfo[]>;
63
+ listSpaces(): Promise<RoolSpaceInfo[]>;
65
64
  /**
66
- * Open an existing graph.
67
- * Loads the graph data from the server and returns a Graph instance.
65
+ * Open an existing space.
66
+ * Loads the space data from the server and returns a Space instance.
68
67
  */
69
- openGraph(graphId: string): Promise<RoolGraph>;
68
+ openSpace(spaceId: string): Promise<RoolSpace>;
70
69
  /**
71
- * Create a new graph.
72
- * Creates on server and returns a Graph instance.
70
+ * Create a new space.
71
+ * Creates on server and returns a Space instance.
73
72
  */
74
- createGraph(name?: string): Promise<RoolGraph>;
73
+ createSpace(name?: string): Promise<RoolSpace>;
75
74
  /**
76
- * Delete a graph.
77
- * Note: This does not affect any open Graph instances - they become stale.
75
+ * Delete a space.
76
+ * Note: This does not affect any open Space instances - they become stale.
78
77
  */
79
- deleteGraph(graphId: string): Promise<void>;
78
+ deleteSpace(spaceId: string): Promise<void>;
80
79
  /**
81
80
  * Get account info from server (plan, credits, etc).
82
81
  */
@@ -88,8 +87,8 @@ export declare class RoolClient extends EventEmitter<RoolClientEvents> {
88
87
  private get mediaClient();
89
88
  /**
90
89
  * Subscribe to real-time events.
91
- * Client receives graph lifecycle events; graph-level events are routed
92
- * to subscribed Graph instances.
90
+ * Client receives lifecycle events; space-level events are routed
91
+ * to subscribed Space instances.
93
92
  */
94
93
  subscribe(): Promise<void>;
95
94
  /**
@@ -117,13 +116,17 @@ export declare class RoolClient extends EventEmitter<RoolClientEvents> {
117
116
  *
118
117
  * @example
119
118
  * const result = await client.graphql<{ lastMessages: Message[] }>(
120
- * `query LastMessages($graphId: String!) { lastMessages(graphId: $graphId) }`,
121
- * { graphId: 'abc123' }
119
+ * `query trace($spaceId: String!) { trace(spaceId: $spaceId) }`,
120
+ * { spaceId: 'abc123' }
122
121
  * );
123
122
  */
124
123
  graphql<T>(query: string, variables?: Record<string, unknown>): Promise<T>;
125
- private registerGraphForEvents;
126
- private unregisterGraphFromEvents;
127
- private handleGraphEvent;
124
+ private registerSpaceForEvents;
125
+ private unregisterSpaceFromEvents;
126
+ /**
127
+ * Handle a raw event message from the subscription manager.
128
+ * @internal
129
+ */
130
+ private handleEvent;
128
131
  }
129
132
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAEhB,aAAa,EAEb,OAAO,EACP,UAAU,EACV,QAAQ,EAET,MAAM,YAAY,CAAC;AAUpB;;;;;;;;;;;;GAYG;AACH,qBAAa,UAAW,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,gBAAgB,CAAgC;gBAE5C,MAAM,EAAE,gBAAgB;IA+BpC;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,OAAO,IAAI,IAAI;IAiBf;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,MAAM,IAAI,IAAI;IAWd;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI7C;;OAEG;IACH,OAAO,IAAI,QAAQ;IAQnB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAI5C;;;OAGG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBpD;;;OAGG;IACG,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBpD;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQ3D,OAAO,KAAK,WAAW,GAKtB;IAMD;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBhC;;OAEG;IACH,WAAW,IAAI,IAAI;IAOnB;;OAEG;IACH,YAAY,IAAI,OAAO;IAQvB;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM;IAI3B;;;;;;;;;OASG;IACG,OAAO,CAAC,CAAC,EACb,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC;IAQb,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,gBAAgB;CA8DzB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EAGb,OAAO,EACP,UAAU,EACV,QAAQ,EAET,MAAM,YAAY,CAAC;AAUpB;;;;;;;;;;;GAWG;AACH,qBAAa,UAAW,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,gBAAgB,CAAgC;gBAE5C,MAAM,EAAE,gBAAgB;IA+BpC;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,OAAO,IAAI,IAAI;IAiBf;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,MAAM,IAAI,IAAI;IAWd;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI7C;;OAEG;IACH,OAAO,IAAI,QAAQ;IAQnB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAI5C;;;OAGG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBpD;;;OAGG;IACG,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBpD;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQ3D,OAAO,KAAK,WAAW,GAKtB;IAMD;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBhC;;OAEG;IACH,WAAW,IAAI,IAAI;IAOnB;;OAEG;IACH,YAAY,IAAI,OAAO;IAQvB;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM;IAI3B;;;;;;;;;OASG;IACG,OAAO,CAAC,CAAC,EACb,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC;IAQb,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,yBAAyB;IAQjC;;;OAGG;IACH,OAAO,CAAC,WAAW;CAwDpB"}