@rool-dev/sdk 0.11.3 → 0.11.4-dev.e9877cb

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.
Files changed (65) hide show
  1. package/README.md +165 -105
  2. package/dist/auth-base.d.ts +100 -0
  3. package/dist/auth-base.d.ts.map +1 -0
  4. package/dist/auth-base.js +377 -0
  5. package/dist/auth-base.js.map +1 -0
  6. package/dist/auth-browser.d.ts +6 -77
  7. package/dist/auth-browser.d.ts.map +1 -1
  8. package/dist/auth-browser.js +32 -328
  9. package/dist/auth-browser.js.map +1 -1
  10. package/dist/auth-native.d.ts +72 -0
  11. package/dist/auth-native.d.ts.map +1 -0
  12. package/dist/auth-native.js +260 -0
  13. package/dist/auth-native.js.map +1 -0
  14. package/dist/auth.d.ts +17 -1
  15. package/dist/auth.d.ts.map +1 -1
  16. package/dist/auth.js +36 -5
  17. package/dist/auth.js.map +1 -1
  18. package/dist/client-info.d.ts +18 -0
  19. package/dist/client-info.d.ts.map +1 -0
  20. package/dist/client-info.js +25 -0
  21. package/dist/client-info.js.map +1 -0
  22. package/dist/client.d.ts +34 -8
  23. package/dist/client.d.ts.map +1 -1
  24. package/dist/client.js +79 -26
  25. package/dist/client.js.map +1 -1
  26. package/dist/graphql.d.ts +15 -19
  27. package/dist/graphql.d.ts.map +1 -1
  28. package/dist/graphql.js +43 -77
  29. package/dist/graphql.js.map +1 -1
  30. package/dist/index.d.ts +5 -2
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +5 -2
  33. package/dist/index.js.map +1 -1
  34. package/dist/reroute.d.ts.map +1 -1
  35. package/dist/reroute.js +9 -0
  36. package/dist/reroute.js.map +1 -1
  37. package/dist/rest.d.ts +3 -0
  38. package/dist/rest.d.ts.map +1 -1
  39. package/dist/rest.js +4 -0
  40. package/dist/rest.js.map +1 -1
  41. package/dist/router.d.ts +3 -0
  42. package/dist/router.d.ts.map +1 -1
  43. package/dist/router.js +8 -5
  44. package/dist/router.js.map +1 -1
  45. package/dist/{channel.d.ts → space-session.d.ts} +44 -139
  46. package/dist/space-session.d.ts.map +1 -0
  47. package/dist/{channel.js → space-session.js} +111 -325
  48. package/dist/space-session.js.map +1 -0
  49. package/dist/space.d.ts +21 -48
  50. package/dist/space.d.ts.map +1 -1
  51. package/dist/space.js +88 -223
  52. package/dist/space.js.map +1 -1
  53. package/dist/subscription.d.ts +5 -2
  54. package/dist/subscription.d.ts.map +1 -1
  55. package/dist/subscription.js +13 -33
  56. package/dist/subscription.js.map +1 -1
  57. package/dist/types.d.ts +80 -83
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/webdav.d.ts +3 -0
  60. package/dist/webdav.d.ts.map +1 -1
  61. package/dist/webdav.js +4 -0
  62. package/dist/webdav.js.map +1 -1
  63. package/package.json +1 -1
  64. package/dist/channel.d.ts.map +0 -1
  65. package/dist/channel.js.map +0 -1
package/dist/space.js CHANGED
@@ -1,102 +1,82 @@
1
- import { EventEmitter } from './event-emitter.js';
2
1
  import { SpaceSubscriptionManager } from './subscription.js';
3
- import { RoolChannel } from './channel.js';
2
+ import { SpaceOperations } from './space-session.js';
4
3
  import { RoolWebDAV } from './webdav.js';
5
4
  import { machinePath } from './path.js';
6
- /** Convert a full Channel object to a ChannelInfo summary. */
7
- function channelToInfo(id, ch) {
8
- return {
9
- id,
10
- name: ch.name ?? null,
11
- createdAt: ch.createdAt,
12
- createdBy: ch.createdBy,
13
- createdByName: ch.createdByName ?? null,
14
- interactionCount: Object.values(ch.conversations ?? {}).reduce((sum, conv) => sum + (conv.interactions ? Object.keys(conv.interactions).length : 0), 0),
15
- };
16
- }
17
5
  /**
18
- * A space is a container for objects, schema, metadata, and channels.
6
+ * A space is a container for objects, schema, metadata, and conversations.
19
7
  *
20
- * RoolSpace owns the real-time SSE subscription for the space. All channel
21
- * lifecycle events (created, updated, deleted) are emitted here. Open channels
22
- * on a space to work with objects and AI.
8
+ * RoolSpace owns the real-time SSE subscription for the space and exposes
9
+ * space-level object, schema, metadata, and AI operations.
23
10
  *
24
11
  * Call close() when done to stop the subscription.
25
12
  */
26
- export class RoolSpace extends EventEmitter {
27
- _id;
28
- _name;
29
- _role;
30
- _userId;
13
+ export class RoolSpace extends SpaceOperations {
31
14
  _memberCount;
32
- _channels;
33
- _knownChannelIds;
34
- graphqlClient;
35
- restClient;
15
+ _conversationInfos;
36
16
  authManager;
37
17
  router;
38
18
  _route;
39
- _webdav;
40
- logger;
41
19
  onCloseCallback;
20
+ clientInfo;
42
21
  // Subscription
43
22
  subscriptionManager = null;
44
- _closed = false;
45
23
  _resyncing = false;
46
24
  _resyncPending = false;
47
25
  _resyncTimer = null;
48
26
  _subscriptionReady = null;
49
- // Open channels on this space
50
- openChannels = new Map();
51
- // Full space data (for channel creation)
52
- _objectStats;
53
- _schema;
54
- _meta;
55
- _channelData;
56
27
  constructor(config) {
57
- super();
58
- this._emitterLogger = config.logger;
59
- this._id = config.id;
60
- this._name = config.name;
61
- this._role = config.role;
62
- this._userId = config.userId;
28
+ let self;
29
+ const webdav = new RoolWebDAV({
30
+ webdavUrl: config.initialRoute.server,
31
+ spaceId: config.id,
32
+ authManager: config.authManager,
33
+ clientInfo: config.clientInfo,
34
+ onRefused: async () => {
35
+ await self.reroute();
36
+ return self._route.server;
37
+ },
38
+ });
39
+ super({
40
+ id: config.id,
41
+ name: config.name,
42
+ role: config.role,
43
+ userId: config.userId,
44
+ objectStats: config.fullData.objectStats,
45
+ schema: config.fullData.schema,
46
+ meta: config.fullData.meta,
47
+ conversations: config.fullData.conversations,
48
+ graphqlClient: config.graphqlClient,
49
+ restClient: config.restClient,
50
+ webdav,
51
+ logger: config.logger,
52
+ onClose: () => { },
53
+ });
54
+ this.clientInfo = config.clientInfo;
55
+ self = this;
63
56
  this._memberCount = config.memberCount;
64
- this.graphqlClient = config.graphqlClient;
65
- this.restClient = config.restClient;
66
57
  this.authManager = config.authManager;
67
58
  this.router = config.router;
68
59
  this._route = config.initialRoute;
69
- this._webdav = new RoolWebDAV({
70
- webdavUrl: this._route.server,
71
- spaceId: this._id,
72
- authManager: this.authManager,
73
- onRefused: async () => {
74
- await this.reroute();
75
- return this._route.server;
76
- },
77
- });
78
- this.logger = config.logger;
79
60
  this.onCloseCallback = config.onClose;
80
- this.graphqlClient.setOnRefused(() => this.reroute());
81
- this.restClient.setOnRefused(async () => {
61
+ this._conversationInfos = this.getConversations();
62
+ this.on('conversationUpdated', () => {
63
+ this._conversationInfos = this.getConversations();
64
+ });
65
+ this._graphqlClient.setOnRefused(() => this.reroute());
66
+ this._restClient.setOnRefused(async () => {
82
67
  await this.reroute();
83
68
  return this._route.server;
84
69
  });
85
- // Store full space data
86
- const fd = config.fullData;
87
- this._objectStats = fd.objectStats;
88
- this._schema = fd.schema;
89
- this._meta = fd.meta;
90
- this._channelData = fd.channels;
91
- // Build channel list from full data
92
- this._channels = Object.entries(fd.channels).map(([id, ch]) => channelToInfo(id, ch));
93
- this._knownChannelIds = new Set(this._channels.map(c => c.id));
94
70
  // Start subscription
95
71
  this.startSubscription();
96
72
  }
97
73
  get id() { return this._id; }
98
74
  get name() { return this._name; }
99
75
  get role() { return this._role; }
76
+ get userId() { return this._userId; }
77
+ get spaceId() { return this._id; }
78
+ get spaceName() { return this._name; }
79
+ get isReadOnly() { return this._role === 'viewer'; }
100
80
  get memberCount() { return this._memberCount; }
101
81
  get route() { return this._route; }
102
82
  /** WebDAV client for this space's user-visible files and object filesystem. */
@@ -114,30 +94,28 @@ export class RoolSpace extends EventEmitter {
114
94
  throw new Error('Path is not a fetchable file');
115
95
  return this.webdav.get(canonical, options);
116
96
  }
117
- /**
118
- * Live list of channels in this space.
119
- * Auto-updates via SSE when channels are created, updated, or deleted.
120
- */
121
- get channels() { return this._channels; }
97
+ /** Live list of conversations in this space. */
98
+ get conversations() { return this._conversationInfos; }
122
99
  startSubscription() {
123
100
  let firstProbe = true;
124
101
  this.subscriptionManager = new SpaceSubscriptionManager({
125
102
  getGraphqlUrl: async () => {
126
103
  if (firstProbe) {
127
104
  firstProbe = false;
128
- return this.graphqlClient.graphqlUrl;
105
+ return this._graphqlClient.graphqlUrl;
129
106
  }
130
107
  return this.reroute();
131
108
  },
132
109
  authManager: this.authManager,
133
- logger: this.logger,
110
+ logger: this._logger,
111
+ clientInfo: this.clientInfo,
134
112
  spaceId: this._id,
135
113
  onEvent: (event) => this.handleSpaceEvent(event),
136
114
  onConnectionStateChanged: (state) => {
137
115
  this.emit('connectionStateChanged', state);
138
116
  },
139
117
  onError: (error) => {
140
- this.logger.error(`[RoolSpace] Space ${this._id} subscription error:`, error);
118
+ this._logger.error(`[RoolSpace] Space ${this._id} subscription error:`, error);
141
119
  },
142
120
  });
143
121
  this._subscriptionReady = this.subscriptionManager.subscribe();
@@ -148,93 +126,48 @@ export class RoolSpace extends EventEmitter {
148
126
  const route = await this.router.resolve(this._id);
149
127
  this._route = route;
150
128
  this._webdav.setWebDAVUrl(route.server);
151
- this.restClient.setApiUrl(route.server);
129
+ this._restClient.setApiUrl(route.server);
152
130
  const url = `${route.server.replace(/\/+$/, '')}/graphql`;
153
- this.graphqlClient.setGraphqlUrl(url);
131
+ this._graphqlClient.setGraphqlUrl(url);
154
132
  return url;
155
133
  }
156
- /** Wait for the subscription to be connected. */
157
- ensureSubscribed() {
158
- return this._subscriptionReady ?? Promise.resolve();
159
- }
160
- /**
161
- * Open a channel on this space.
162
- * If the channel doesn't exist, the server creates it.
163
- */
164
- async openChannel(channelId) {
165
- if (!channelId || channelId.length > 32 || !/^[a-zA-Z0-9_-]+$/.test(channelId)) {
166
- throw new Error('channelId must be 1–32 characters containing only alphanumeric characters, hyphens, and underscores');
134
+ /** Get a handle for a conversation in this space. */
135
+ conversation(conversationId) {
136
+ if (!conversationId || conversationId.length > 32 || !/^[a-zA-Z0-9_-]+$/.test(conversationId)) {
137
+ throw new Error('conversationId must be 1–32 characters containing only alphanumeric characters, hyphens, and underscores');
167
138
  }
168
- // Ensure channel exists — create if missing
169
- let channelData = this._channelData[channelId];
170
- if (!channelData) {
171
- try {
172
- channelData = await this.graphqlClient.createChannel(this._id, channelId);
173
- this._channelData[channelId] = channelData;
174
- }
175
- catch {
176
- // Race: another client may have created it. Re-fetch.
177
- const refreshed = await this.graphqlClient.openSpaceFull(this._id);
178
- this.applyFullData(refreshed);
179
- channelData = this._channelData[channelId];
180
- if (!channelData)
181
- throw new Error(`Failed to create channel "${channelId}"`);
182
- }
183
- }
184
- const channel = new RoolChannel({
185
- id: this._id,
186
- name: this._name,
187
- role: this._role,
188
- userId: this._userId,
189
- objectStats: this._objectStats,
190
- schema: this._schema,
191
- meta: this._meta,
192
- channel: channelData,
193
- channelId,
194
- graphqlClient: this.graphqlClient,
195
- restClient: this.restClient,
196
- webdav: this.webdav,
197
- logger: this.logger,
198
- onClose: () => this.unregisterChannel(channelId),
199
- });
200
- this.openChannels.set(channelId, channel);
201
- // Ensure subscription is connected before returning
202
- await this.ensureSubscribed();
203
- return channel;
204
- }
205
- unregisterChannel(channelId) {
206
- this.openChannels.delete(channelId);
139
+ return super.conversation(conversationId);
207
140
  }
208
141
  /**
209
142
  * Rename this space.
210
143
  */
211
144
  async rename(newName) {
212
- await this.graphqlClient.renameSpace(this._id, newName);
145
+ await this._graphqlClient.renameSpace(this._id, newName);
213
146
  this._name = newName;
214
147
  }
215
148
  /**
216
149
  * Delete this space permanently. Cannot be undone.
217
150
  */
218
151
  async delete() {
219
- await this.graphqlClient.deleteSpace(this._id);
152
+ await this._graphqlClient.deleteSpace(this._id);
220
153
  }
221
154
  /**
222
155
  * List users with access to this space.
223
156
  */
224
157
  async listUsers() {
225
- return this.graphqlClient.listSpaceUsers(this._id);
158
+ return this._graphqlClient.listSpaceUsers(this._id);
226
159
  }
227
160
  /**
228
161
  * Change an existing member's role. New members join via invites.
229
162
  */
230
163
  async setUserRole(userId, role) {
231
- return this.graphqlClient.setSpaceUserRole(this._id, userId, role);
164
+ return this._graphqlClient.setSpaceUserRole(this._id, userId, role);
232
165
  }
233
166
  /**
234
167
  * Remove a user from this space.
235
168
  */
236
169
  async removeUser(userId) {
237
- return this.graphqlClient.removeSpaceUser(this._id, userId);
170
+ return this._graphqlClient.removeSpaceUser(this._id, userId);
238
171
  }
239
172
  /**
240
173
  * Mint an invite link for this space. Requires owner or admin role.
@@ -243,35 +176,19 @@ export class RoolSpace extends EventEmitter {
243
176
  * and is only available here.
244
177
  */
245
178
  async createInvite(role, options) {
246
- return this.graphqlClient.createSpaceInvite(this._id, role, options);
179
+ return this._graphqlClient.createSpaceInvite(this._id, role, options);
247
180
  }
248
181
  /**
249
182
  * List this space's currently redeemable invites. Requires owner or admin role.
250
183
  */
251
184
  async listInvites() {
252
- return this.graphqlClient.listSpaceInvites(this._id);
185
+ return this._graphqlClient.listSpaceInvites(this._id);
253
186
  }
254
187
  /**
255
188
  * Revoke an invite so its link stops working. Requires owner or admin role.
256
189
  */
257
190
  async revokeInvite(inviteId) {
258
- return this.graphqlClient.revokeSpaceInvite(this._id, inviteId);
259
- }
260
- /**
261
- * Rename a channel in this space.
262
- */
263
- async renameChannel(channelId, name) {
264
- await this.graphqlClient.renameChannel(this._id, channelId, name);
265
- }
266
- /**
267
- * Delete a channel from this space.
268
- */
269
- async deleteChannel(channelId) {
270
- await this.graphqlClient.deleteChannel(this._id, channelId);
271
- // SSE will update the channel list; also update optimistically
272
- this._channels = this._channels.filter(c => c.id !== channelId);
273
- this._knownChannelIds.delete(channelId);
274
- delete this._channelData[channelId];
191
+ return this._graphqlClient.revokeSpaceInvite(this._id, inviteId);
275
192
  }
276
193
  // Targets the owning shard
277
194
  async exportArchive() {
@@ -297,14 +214,14 @@ export class RoolSpace extends EventEmitter {
297
214
  }
298
215
  /**
299
216
  * Refresh space data from the server.
300
- * Updates name, role, channel list, and all cached data.
217
+ * Updates name, role, conversation list, and all cached data.
301
218
  */
302
219
  async refresh() {
303
- const data = await this.graphqlClient.openSpaceFull(this._id);
220
+ const data = await this._graphqlClient.openSpaceFull(this._id);
304
221
  this.applyFullData(data);
305
222
  }
306
223
  /**
307
- * Close the space subscription and all open channels.
224
+ * Close the space subscription.
308
225
  */
309
226
  close() {
310
227
  this._closed = true;
@@ -312,11 +229,6 @@ export class RoolSpace extends EventEmitter {
312
229
  clearTimeout(this._resyncTimer);
313
230
  this._resyncTimer = null;
314
231
  }
315
- // Close all open channels
316
- for (const channel of this.openChannels.values()) {
317
- channel.close();
318
- }
319
- this.openChannels.clear();
320
232
  // Stop subscription
321
233
  if (this.subscriptionManager) {
322
234
  this.subscriptionManager.destroy();
@@ -328,71 +240,34 @@ export class RoolSpace extends EventEmitter {
328
240
  }
329
241
  /**
330
242
  * Handle a space event from the SSE subscription.
331
- * Routes to channels and emits channel lifecycle events.
243
+ * Applies bounded space-state events and emits space events.
332
244
  */
333
245
  handleSpaceEvent(event) {
334
- // Reconnect or full state change: single fetch, distribute to all channels
335
- if (event.type === 'connected' || event.type === 'space_changed') {
246
+ // Reconnect: fetch the current full state once and apply it locally.
247
+ if (event.type === 'connected') {
336
248
  this.handleResync();
337
249
  return;
338
250
  }
339
251
  if (event.type === 'space_files_changed') {
340
252
  this.emit('filesChanged', { spaceId: event.spaceId, source: event.source, timestamp: event.timestamp });
253
+ // WebDAV is now the source of truth for object/schema/meta writes. Keep
254
+ // the SDK's bounded caches (schema, metadata, object stats, conversations)
255
+ // coherent with remote/local file mutations; the file tree still handles
256
+ // path-level reconciliation via this event.
257
+ this.handleResync();
341
258
  return;
342
259
  }
343
260
  if (event.type === 'space_files_reset') {
344
261
  this.emit('filesReset', { spaceId: event.spaceId, source: event.source, timestamp: event.timestamp });
262
+ this.handleResync();
345
263
  return;
346
264
  }
347
- // Channel lifecycle events: derive channelCreated/channelUpdated/channelDeleted
348
- if (event.type === 'channel_updated' && event.channelId && event.channel) {
349
- const info = channelToInfo(event.channelId, event.channel);
350
- // Update internal channel data
351
- this._channelData[event.channelId] = event.channel;
352
- if (this._knownChannelIds.has(event.channelId)) {
353
- // Known channel — update in list
354
- this._channels = this._channels.map(c => c.id === event.channelId ? info : c);
355
- this.emit('channelUpdated', info);
356
- }
357
- else {
358
- // New channel
359
- this._knownChannelIds.add(event.channelId);
360
- this._channels = [...this._channels, info];
361
- this.emit('channelCreated', info);
362
- }
363
- // Also route to the open channel for channel-internal handling.
364
- const channel = this.openChannels.get(event.channelId);
365
- if (channel)
366
- channel._handleEvent(event);
367
- return;
368
- }
369
- if (event.type === 'channel_deleted' && event.channelId) {
370
- this._knownChannelIds.delete(event.channelId);
371
- this._channels = this._channels.filter(c => c.id !== event.channelId);
372
- delete this._channelData[event.channelId];
373
- this.emit('channelDeleted', event.channelId);
374
- // Route to the open channel (so it can clean up)
375
- const channel = this.openChannels.get(event.channelId);
376
- if (channel)
377
- channel._handleEvent(event);
378
- return;
379
- }
380
- // Channel-specific events (conversation_updated): route to the matching channel only
381
- if ('channelId' in event && event.channelId) {
382
- const channel = this.openChannels.get(event.channelId);
383
- if (channel)
384
- channel._handleEvent(event);
385
- return;
386
- }
387
- // Space-wide non-file events (schema, metadata): broadcast to all channels on this space
388
- for (const channel of this.openChannels.values()) {
389
- channel._handleEvent(event);
390
- }
265
+ this._handleEvent(event);
391
266
  }
392
267
  // Reconnect resync: fetch full state and distribute. Retries until it lands —
393
268
  // a single failure used to leave the client empty until reload. Single-flight:
394
269
  // an event arriving mid-resync sets _resyncPending so we re-run once afterward,
395
- // ensuring the final state reflects the latest space_changed.
270
+ // ensuring the final state reflects the latest server-side file change.
396
271
  handleResync() {
397
272
  if (this._resyncing) {
398
273
  this._resyncPending = true;
@@ -407,24 +282,13 @@ export class RoolSpace extends EventEmitter {
407
282
  this._resyncing = false;
408
283
  return;
409
284
  }
410
- void this.graphqlClient.openSpaceFull(this._id).then((result) => {
285
+ void this._graphqlClient.openSpaceFull(this._id).then((result) => {
411
286
  if (this._closed) {
412
287
  this._resyncing = false;
413
288
  return;
414
289
  }
415
290
  this.applyFullData(result);
416
- for (const [channelId, channel] of this.openChannels) {
417
- const channelData = result.channels[channelId];
418
- if (!channelData)
419
- continue; // Channel deleted between fetch and distribution
420
- channel._applyResyncData({
421
- meta: result.meta,
422
- schema: result.schema,
423
- objectStats: result.objectStats,
424
- channel: channelData,
425
- });
426
- }
427
- this.logger.info(`[RoolSpace] Space ${this._id} resync complete`);
291
+ this._logger.info(`[RoolSpace] Space ${this._id} resync complete`);
428
292
  this._finishResync();
429
293
  }).catch((error) => {
430
294
  if (this._closed) {
@@ -432,7 +296,7 @@ export class RoolSpace extends EventEmitter {
432
296
  return;
433
297
  }
434
298
  const ms = Math.min(1000 * 2 ** attempt, 30000);
435
- this.logger.error(`[RoolSpace] Space ${this._id} resync failed (attempt ${attempt + 1}), retrying in ${ms}ms:`, error);
299
+ this._logger.error(`[RoolSpace] Space ${this._id} resync failed (attempt ${attempt + 1}), retrying in ${ms}ms:`, error);
436
300
  this._resyncTimer = setTimeout(() => this._resyncWithRetry(attempt + 1), ms);
437
301
  });
438
302
  }
@@ -451,12 +315,13 @@ export class RoolSpace extends EventEmitter {
451
315
  this._name = data.name;
452
316
  this._role = data.role;
453
317
  this._memberCount = data.memberCount;
454
- this._objectStats = data.objectStats;
455
318
  this._schema = data.schema;
456
319
  this._meta = data.meta;
457
- this._channelData = data.channels;
458
- this._channels = Object.entries(data.channels).map(([id, ch]) => channelToInfo(id, ch));
459
- this._knownChannelIds = new Set(this._channels.map(c => c.id));
320
+ this._conversations = data.conversations;
321
+ this._objectStats = new Map(Object.entries(data.objectStats));
322
+ this._activeLeaves.clear();
323
+ this._conversationInfos = this.getConversations();
324
+ this.emit('reset', { source: 'system' });
460
325
  }
461
326
  }
462
327
  //# sourceMappingURL=space.js.map
package/dist/space.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"space.js","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"space.js","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import type { ConnectionState, ClientEvent, ChannelEvent } from './types.js';
1
+ import type { ConnectionState, ClientEvent, SpaceEvent } from './types.js';
2
2
  import type { AuthManager } from './auth.js';
3
3
  import type { Logger } from './logger.js';
4
+ import { type RoolClientInfo } from './client-info.js';
4
5
  export interface ClientSubscriptionConfig {
5
6
  graphqlUrl: string;
6
7
  authManager: AuthManager;
7
8
  logger: Logger;
9
+ clientInfo: RoolClientInfo;
8
10
  onEvent: (event: ClientEvent) => void;
9
11
  onConnectionStateChanged: (state: ConnectionState) => void;
10
12
  onError: (error: Error) => void;
@@ -19,8 +21,9 @@ export interface SpaceSubscriptionConfig {
19
21
  getGraphqlUrl: () => Promise<string>;
20
22
  authManager: AuthManager;
21
23
  logger: Logger;
24
+ clientInfo: RoolClientInfo;
22
25
  spaceId: string;
23
- onEvent: (event: ChannelEvent) => void;
26
+ onEvent: (event: SpaceEvent) => void;
24
27
  onConnectionStateChanged: (state: ConnectionState) => void;
25
28
  onError: (error: Error) => void;
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAuD,MAAM,YAAY,CAAC;AAClI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAoX1C,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,wBAAwB,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3D,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,qBAAa,yBAAyB;IACpC,OAAO,CAAC,YAAY,CAA4B;gBAEpC,MAAM,EAAE,wBAAwB;IAoBtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,OAAO,IAAI,IAAI;CAGhB;AA2DD,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,wBAAwB,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3D,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,YAAY,CAA6B;gBAErC,MAAM,EAAE,uBAAuB;IAqBrC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAuB,UAAU,EAAiC,MAAM,YAAY,CAAC;AAC/H,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAuX/E,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,wBAAwB,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3D,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,qBAAa,yBAAyB;IACpC,OAAO,CAAC,YAAY,CAA4B;gBAEpC,MAAM,EAAE,wBAAwB;IAqBtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,OAAO,IAAI,IAAI;CAGhB;AA8CD,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,wBAAwB,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3D,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,YAAY,CAA2B;gBAEnC,MAAM,EAAE,uBAAuB;IAsBrC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,OAAO,IAAI,IAAI;CAGhB"}