@rool-dev/client 0.1.0-dev.1a6a7a3
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 +186 -0
- package/dist/auth.d.ts +75 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +375 -0
- package/dist/auth.js.map +1 -0
- package/dist/client.d.ts +129 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +343 -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/graph.d.ts +240 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +573 -0
- package/dist/graph.js.map +1 -0
- package/dist/graphql.d.ts +33 -0
- package/dist/graphql.d.ts.map +1 -0
- package/dist/graphql.js +269 -0
- package/dist/graphql.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/media.d.ts +36 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +105 -0
- package/dist/media.js.map +1 -0
- package/dist/subscription.d.ts +30 -0
- package/dist/subscription.d.ts.map +1 -0
- package/dist/subscription.js +161 -0
- package/dist/subscription.js.map +1 -0
- package/dist/types.d.ts +180 -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 +54 -0
package/dist/graph.d.ts
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { EventEmitter } from './event-emitter.js';
|
|
2
|
+
import type { GraphQLClient } from './graphql.js';
|
|
3
|
+
import type { MediaClient } from './media.js';
|
|
4
|
+
import type { RoolGraphData, RoolNode, RoolEdge, JSONPatchOp, GraphEvents, RoolGraphRole, RoolGraphUser, PromptOptions, ImageResult, ImageAspectRatio, MediaItem } from './types.js';
|
|
5
|
+
export declare function generateEntityId(): string;
|
|
6
|
+
interface GraphConfig {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
role: RoolGraphRole;
|
|
10
|
+
initialData: RoolGraphData;
|
|
11
|
+
graphqlClient: GraphQLClient;
|
|
12
|
+
mediaClient: MediaClient;
|
|
13
|
+
onRegisterForEvents: (graphId: string, graph: RoolGraph) => void;
|
|
14
|
+
onUnregisterFromEvents: (graphId: string) => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* First-class Graph object.
|
|
18
|
+
*
|
|
19
|
+
* Features:
|
|
20
|
+
* - High-level node/edge operations
|
|
21
|
+
* - Built-in undo/redo with checkpoints
|
|
22
|
+
* - Metadata management
|
|
23
|
+
* - Event emission for state changes
|
|
24
|
+
* - Real-time subscription support
|
|
25
|
+
*/
|
|
26
|
+
export declare class RoolGraph extends EventEmitter<GraphEvents> {
|
|
27
|
+
private _id;
|
|
28
|
+
private _name;
|
|
29
|
+
private _role;
|
|
30
|
+
private _data;
|
|
31
|
+
private graphqlClient;
|
|
32
|
+
private mediaClient;
|
|
33
|
+
private onRegisterForEvents;
|
|
34
|
+
private onUnregisterFromEvents;
|
|
35
|
+
private undoStack;
|
|
36
|
+
private redoStack;
|
|
37
|
+
private pendingPatch;
|
|
38
|
+
private patchScheduled;
|
|
39
|
+
private _isSubscribed;
|
|
40
|
+
constructor(config: GraphConfig);
|
|
41
|
+
get id(): string;
|
|
42
|
+
get name(): string;
|
|
43
|
+
get role(): RoolGraphRole;
|
|
44
|
+
get isReadOnly(): boolean;
|
|
45
|
+
get isSubscribed(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Rename this graph.
|
|
48
|
+
*/
|
|
49
|
+
rename(newName: string): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Subscribe to real-time updates for this graph.
|
|
52
|
+
* Registers with the client for event routing.
|
|
53
|
+
*/
|
|
54
|
+
subscribe(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Unsubscribe from real-time updates.
|
|
57
|
+
*/
|
|
58
|
+
unsubscribe(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Close this graph and clean up resources.
|
|
61
|
+
*/
|
|
62
|
+
close(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Create a checkpoint for undo.
|
|
65
|
+
* Call this before a user action to capture the current state.
|
|
66
|
+
*/
|
|
67
|
+
checkpoint(label?: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* Check if undo is available.
|
|
70
|
+
*/
|
|
71
|
+
canUndo(): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Check if redo is available.
|
|
74
|
+
*/
|
|
75
|
+
canRedo(): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Undo to the previous checkpoint.
|
|
78
|
+
* @returns true if undo was performed
|
|
79
|
+
*/
|
|
80
|
+
undo(): Promise<boolean>;
|
|
81
|
+
/**
|
|
82
|
+
* Redo a previously undone action.
|
|
83
|
+
* @returns true if redo was performed
|
|
84
|
+
*/
|
|
85
|
+
redo(): Promise<boolean>;
|
|
86
|
+
/**
|
|
87
|
+
* Clear undo/redo history.
|
|
88
|
+
* Called when external changes invalidate local history.
|
|
89
|
+
*/
|
|
90
|
+
clearHistory(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Get a node by ID.
|
|
93
|
+
* @throws Error if node not found
|
|
94
|
+
*/
|
|
95
|
+
getNode(nodeId: string): RoolNode;
|
|
96
|
+
/**
|
|
97
|
+
* Get a node by ID, or undefined if not found.
|
|
98
|
+
*/
|
|
99
|
+
getNodeOrUndefined(nodeId: string): RoolNode | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Get all nodes of a specific type.
|
|
102
|
+
*/
|
|
103
|
+
getNodesByType(type: string): RoolNode[];
|
|
104
|
+
/**
|
|
105
|
+
* Get all node IDs.
|
|
106
|
+
*/
|
|
107
|
+
getNodeIds(): string[];
|
|
108
|
+
/**
|
|
109
|
+
* Add a new node.
|
|
110
|
+
*/
|
|
111
|
+
addNode(nodeId: string, node: RoolNode): void;
|
|
112
|
+
/**
|
|
113
|
+
* Update an existing node.
|
|
114
|
+
* @param updates - Partial node data to merge
|
|
115
|
+
* @param persist - If false, update local state only (for drag/animation)
|
|
116
|
+
*/
|
|
117
|
+
updateNode(nodeId: string, updates: Partial<RoolNode>, persist?: boolean): void;
|
|
118
|
+
/**
|
|
119
|
+
* Delete nodes by IDs.
|
|
120
|
+
* Also removes any edges connected to the deleted nodes.
|
|
121
|
+
*/
|
|
122
|
+
deleteNodes(nodeIds: string[]): void;
|
|
123
|
+
/**
|
|
124
|
+
* Create an edge between nodes.
|
|
125
|
+
* @returns The generated edge ID
|
|
126
|
+
*/
|
|
127
|
+
linkNodes(sourceId: string, targetId: string, edgeType: string): string;
|
|
128
|
+
/**
|
|
129
|
+
* Remove edges between two nodes.
|
|
130
|
+
* @returns true if any edges were removed
|
|
131
|
+
*/
|
|
132
|
+
unlinkNodes(sourceId: string, targetId: string): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Get parent node IDs (nodes that have edges pointing TO this node).
|
|
135
|
+
* @param edgeType - Optional filter by edge type
|
|
136
|
+
*/
|
|
137
|
+
getParents(nodeId: string, edgeType?: string): string[];
|
|
138
|
+
/**
|
|
139
|
+
* Get child node IDs (nodes that this node has edges pointing TO).
|
|
140
|
+
* @param edgeType - Optional filter by edge type
|
|
141
|
+
*/
|
|
142
|
+
getChildren(nodeId: string, edgeType?: string): string[];
|
|
143
|
+
/**
|
|
144
|
+
* Get an edge by ID.
|
|
145
|
+
*/
|
|
146
|
+
getEdge(edgeId: string): RoolEdge | undefined;
|
|
147
|
+
/**
|
|
148
|
+
* Get all edge IDs.
|
|
149
|
+
*/
|
|
150
|
+
getEdgeIds(): string[];
|
|
151
|
+
/**
|
|
152
|
+
* Set a metadata value.
|
|
153
|
+
* Metadata is stored in _meta and hidden from AI operations.
|
|
154
|
+
*/
|
|
155
|
+
setMetadata(key: string, value: unknown): void;
|
|
156
|
+
/**
|
|
157
|
+
* Get a metadata value.
|
|
158
|
+
*/
|
|
159
|
+
getMetadata(key: string): unknown;
|
|
160
|
+
/**
|
|
161
|
+
* Get all metadata.
|
|
162
|
+
*/
|
|
163
|
+
getAllMetadata(): Record<string, unknown>;
|
|
164
|
+
/**
|
|
165
|
+
* Send a prompt to the AI agent for graph manipulation.
|
|
166
|
+
*/
|
|
167
|
+
prompt(prompt: string, options?: PromptOptions): Promise<string | null>;
|
|
168
|
+
/**
|
|
169
|
+
* Generate an AI image.
|
|
170
|
+
*/
|
|
171
|
+
generateImage(prompt: string, aspectRatio?: ImageAspectRatio): Promise<ImageResult>;
|
|
172
|
+
/**
|
|
173
|
+
* Edit an existing image using AI.
|
|
174
|
+
*/
|
|
175
|
+
editImage(prompt: string, url: string): Promise<ImageResult>;
|
|
176
|
+
/**
|
|
177
|
+
* List users with access to this graph.
|
|
178
|
+
*/
|
|
179
|
+
listUsers(): Promise<RoolGraphUser[]>;
|
|
180
|
+
/**
|
|
181
|
+
* Add a user to this graph with specified role.
|
|
182
|
+
*/
|
|
183
|
+
addUser(userId: string, role: RoolGraphRole): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Remove a user from this graph.
|
|
186
|
+
*/
|
|
187
|
+
removeUser(userId: string): Promise<void>;
|
|
188
|
+
/**
|
|
189
|
+
* List all media files for this graph.
|
|
190
|
+
*/
|
|
191
|
+
listMedia(): Promise<MediaItem[]>;
|
|
192
|
+
/**
|
|
193
|
+
* Upload a file to this graph.
|
|
194
|
+
*/
|
|
195
|
+
uploadMedia(file: File | Blob | {
|
|
196
|
+
data: string;
|
|
197
|
+
contentType: string;
|
|
198
|
+
}): Promise<MediaItem>;
|
|
199
|
+
/**
|
|
200
|
+
* Get the URL for a media file.
|
|
201
|
+
*/
|
|
202
|
+
getMediaUrl(uuid: string): string;
|
|
203
|
+
/**
|
|
204
|
+
* Download a media file as a Blob.
|
|
205
|
+
*/
|
|
206
|
+
downloadMedia(uuid: string): Promise<Blob>;
|
|
207
|
+
/**
|
|
208
|
+
* Delete a media file.
|
|
209
|
+
*/
|
|
210
|
+
deleteMedia(uuid: string): Promise<void>;
|
|
211
|
+
/**
|
|
212
|
+
* Get the full graph data.
|
|
213
|
+
* Use sparingly - prefer specific operations.
|
|
214
|
+
*/
|
|
215
|
+
getData(): RoolGraphData;
|
|
216
|
+
/**
|
|
217
|
+
* Apply a raw JSON patch.
|
|
218
|
+
* Use sparingly - prefer semantic operations.
|
|
219
|
+
*/
|
|
220
|
+
patch(operations: JSONPatchOp[]): void;
|
|
221
|
+
/**
|
|
222
|
+
* Handle a patch event from another client.
|
|
223
|
+
* @internal
|
|
224
|
+
*/
|
|
225
|
+
handleRemotePatch(patch: JSONPatchOp[]): void;
|
|
226
|
+
/**
|
|
227
|
+
* Handle a full graph reload from server.
|
|
228
|
+
* @internal
|
|
229
|
+
*/
|
|
230
|
+
handleRemoteChange(newData: RoolGraphData): void;
|
|
231
|
+
/**
|
|
232
|
+
* Update the name from external source.
|
|
233
|
+
* @internal
|
|
234
|
+
*/
|
|
235
|
+
handleRemoteRename(newName: string): void;
|
|
236
|
+
private sendPatch;
|
|
237
|
+
private resyncFromServer;
|
|
238
|
+
}
|
|
239
|
+
export {};
|
|
240
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAMA,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,EACV,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,SAAS,EACV,MAAM,YAAY,CAAC;AAOpB,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAQD,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,aAAa,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACjE,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED;;;;;;;;;GASG;AACH,qBAAa,SAAU,SAAQ,YAAY,CAAC,WAAW,CAAC;IACtD,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,mBAAmB,CAA8C;IACzE,OAAO,CAAC,sBAAsB,CAA4B;IAG1D,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAsB;IAGvC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,aAAa,CAAS;gBAElB,MAAM,EAAE,WAAW;IAgB/B,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,aAAa,CAExB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAMD;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5C;;;OAGG;IACH,SAAS,IAAI,IAAI;IAMjB;;OAEG;IACH,WAAW,IAAI,IAAI;IAMnB;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;;OAGG;IACH,UAAU,CAAC,KAAK,GAAE,MAAiB,GAAG,IAAI;IAkB1C;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IA2B9B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IA2B9B;;;OAGG;IACH,YAAY,IAAI,IAAI;IASpB;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAQjC;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIxD;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIxC;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI;IAM7C;;;;OAIG;IACH,UAAU,CACR,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,OAAO,GAAE,OAAc,GACtB,IAAI;IAgBP;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAgCpC;;;OAGG;IACH,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM;IAgBT;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAuBxD;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IASvD;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IASxD;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI7C;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAQtB;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAQ9C;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQzC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI7E;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,gBAAgB,GAC7B,OAAO,CAAC,WAAW,CAAC;IAIvB;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQlE;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAI3C;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE;;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,SAAS,CAAC;IAIrB;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIjC;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C;;;OAGG;IACH,OAAO,IAAI,aAAa;IAIxB;;;OAGG;IACH,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI;IAetC;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;IAa7C;;;OAGG;IACH,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMhD;;;OAGG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQzC,OAAO,CAAC,SAAS;YAoBH,gBAAgB;CAc/B"}
|