@may-db/core 0.1.3 → 0.1.5

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 (90) hide show
  1. package/README.md +5 -0
  2. package/dist/MayDb.d.ts +1 -0
  3. package/dist/MayDb.d.ts.map +1 -1
  4. package/dist/MayDb.js +1 -0
  5. package/dist/MayDb.js.map +1 -1
  6. package/dist/Room.d.ts +2 -0
  7. package/dist/Room.d.ts.map +1 -1
  8. package/dist/Room.js +18 -0
  9. package/dist/Room.js.map +1 -1
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/matrixRuntimeShim.d.ts +2 -0
  15. package/dist/matrixRuntimeShim.d.ts.map +1 -0
  16. package/dist/matrixRuntimeShim.js +28 -0
  17. package/dist/matrixRuntimeShim.js.map +1 -0
  18. package/package.json +3 -2
  19. package/dist/Client.d.ts +0 -20
  20. package/dist/Client.d.ts.map +0 -1
  21. package/dist/Client.js +0 -163
  22. package/dist/Client.js.map +0 -1
  23. package/dist/IndexRuntime.d.ts +0 -60
  24. package/dist/IndexRuntime.d.ts.map +0 -1
  25. package/dist/IndexRuntime.js +0 -340
  26. package/dist/IndexRuntime.js.map +0 -1
  27. package/dist/RuntimeIndexHandle.d.ts +0 -29
  28. package/dist/RuntimeIndexHandle.d.ts.map +0 -1
  29. package/dist/RuntimeIndexHandle.js +0 -48
  30. package/dist/RuntimeIndexHandle.js.map +0 -1
  31. package/dist/errors.d.ts +0 -12
  32. package/dist/errors.d.ts.map +0 -1
  33. package/dist/errors.js +0 -15
  34. package/dist/errors.js.map +0 -1
  35. package/dist/hooks/useAllowedRooms.d.ts +0 -12
  36. package/dist/hooks/useAllowedRooms.d.ts.map +0 -1
  37. package/dist/hooks/useAllowedRooms.js +0 -29
  38. package/dist/hooks/useAllowedRooms.js.map +0 -1
  39. package/dist/hooks/useAsync.d.ts +0 -8
  40. package/dist/hooks/useAsync.d.ts.map +0 -1
  41. package/dist/hooks/useAsync.js +0 -29
  42. package/dist/hooks/useAsync.js.map +0 -1
  43. package/dist/hooks/useAuth.d.ts +0 -11
  44. package/dist/hooks/useAuth.d.ts.map +0 -1
  45. package/dist/hooks/useAuth.js +0 -45
  46. package/dist/hooks/useAuth.js.map +0 -1
  47. package/dist/hooks/usePresence.d.ts +0 -30
  48. package/dist/hooks/usePresence.d.ts.map +0 -1
  49. package/dist/hooks/usePresence.js +0 -95
  50. package/dist/hooks/usePresence.js.map +0 -1
  51. package/dist/hooks/useRoom.d.ts +0 -11
  52. package/dist/hooks/useRoom.d.ts.map +0 -1
  53. package/dist/hooks/useRoom.js +0 -37
  54. package/dist/hooks/useRoom.js.map +0 -1
  55. package/dist/hooks/useRoomMembers.d.ts +0 -12
  56. package/dist/hooks/useRoomMembers.d.ts.map +0 -1
  57. package/dist/hooks/useRoomMembers.js +0 -37
  58. package/dist/hooks/useRoomMembers.js.map +0 -1
  59. package/dist/indexing/roomRegistry.d.ts +0 -26
  60. package/dist/indexing/roomRegistry.d.ts.map +0 -1
  61. package/dist/indexing/roomRegistry.js +0 -125
  62. package/dist/indexing/roomRegistry.js.map +0 -1
  63. package/dist/indexing.d.ts +0 -93
  64. package/dist/indexing.d.ts.map +0 -1
  65. package/dist/indexing.js +0 -394
  66. package/dist/indexing.js.map +0 -1
  67. package/dist/indexingErrors.d.ts +0 -9
  68. package/dist/indexingErrors.d.ts.map +0 -1
  69. package/dist/indexingErrors.js +0 -11
  70. package/dist/indexingErrors.js.map +0 -1
  71. package/dist/indexingRoomStore.d.ts +0 -26
  72. package/dist/indexingRoomStore.d.ts.map +0 -1
  73. package/dist/indexingRoomStore.js +0 -125
  74. package/dist/indexingRoomStore.js.map +0 -1
  75. package/dist/indexingRows.d.ts +0 -8
  76. package/dist/indexingRows.d.ts.map +0 -1
  77. package/dist/indexingRows.js +0 -114
  78. package/dist/indexingRows.js.map +0 -1
  79. package/dist/indexingTypes.d.ts +0 -9
  80. package/dist/indexingTypes.d.ts.map +0 -1
  81. package/dist/indexingTypes.js +0 -2
  82. package/dist/indexingTypes.js.map +0 -1
  83. package/dist/matrix-crdt-shim.d.ts +0 -43
  84. package/dist/matrix-crdt-shim.d.ts.map +0 -1
  85. package/dist/matrix-crdt-shim.js +0 -2
  86. package/dist/matrix-crdt-shim.js.map +0 -1
  87. package/dist/singletonRoom.d.ts +0 -3
  88. package/dist/singletonRoom.d.ts.map +0 -1
  89. package/dist/singletonRoom.js +0 -8
  90. package/dist/singletonRoom.js.map +0 -1
@@ -1,340 +0,0 @@
1
- import * as Y from "yjs";
2
- import { Room } from "./Room";
3
- import { IndexRoomStore } from "./indexingRoomStore";
4
- import { buildIndexItem, compareIndexItems, pageRows, readQueryRows, } from "./indexingRows";
5
- import { IndexCapacityError } from "./indexingErrors";
6
- import { RuntimeIndexHandle } from "./RuntimeIndexHandle";
7
- const INDEX_ROWS_MAP_KEY = "rows";
8
- const DEFAULT_ROOM_NAME = "Untitled";
9
- const ROOM_NAME_EVENT_TYPE = "m.room.name";
10
- export class IndexRuntime {
11
- namespace;
12
- matrixClient;
13
- schema;
14
- openRoom;
15
- roomStore;
16
- indexEntries;
17
- roomDescriptors = new Map();
18
- trackedRooms = new Map();
19
- handles = new Map();
20
- activeHandles = new Set();
21
- roomTypesInIndexes = new Set();
22
- constructor(options) {
23
- this.namespace = options.namespace;
24
- this.matrixClient = options.matrixClient;
25
- this.schema = options.schema;
26
- this.openRoom = options.openRoom;
27
- this.roomStore = new IndexRoomStore({
28
- namespace: this.namespace,
29
- matrixClient: this.matrixClient,
30
- openRoom: this.openRoom,
31
- });
32
- this.indexEntries = Object.entries(this.schema.indexes);
33
- this.validateSchemaIndexes();
34
- }
35
- // Public runtime API (used by MayDb and index handles)
36
- hasIndexes() {
37
- return this.indexEntries.length > 0;
38
- }
39
- isRoomTypeIndexed(roomType) {
40
- return this.roomTypesInIndexes.has(roomType);
41
- }
42
- validateRoomType(roomType) {
43
- if (!(roomType in this.schema.roomTypes)) {
44
- throw new Error(`Unknown roomType "${roomType}"`);
45
- }
46
- }
47
- openIndex(options) {
48
- const indexDefinition = this.getIndexDefinition(options.indexName);
49
- const ownerRoomId = options.ownerRoomId ?? null;
50
- this.validateIndexScopeOptions(options.indexName, indexDefinition, ownerRoomId);
51
- return this.getOrCreateHandle(options.indexName, ownerRoomId);
52
- }
53
- dispose() {
54
- for (const tracked of this.trackedRooms.values()) {
55
- if (tracked.transactionListener) {
56
- tracked.room.doc.off("afterTransaction", tracked.transactionListener);
57
- }
58
- }
59
- this.trackedRooms.clear();
60
- for (const handle of this.handles.values()) {
61
- if (handle.roomObserverCleanup) {
62
- handle.roomObserverCleanup();
63
- }
64
- handle.activeCount = 0;
65
- }
66
- this.activeHandles.clear();
67
- }
68
- registerRoom(room) {
69
- const tracked = this.trackedRooms.get(room.id);
70
- if (tracked)
71
- return;
72
- this.trackedRooms.set(room.id, {
73
- room,
74
- transactionListener: null,
75
- });
76
- if (this.activeHandles.size > 0) {
77
- void this.maybeAttachRoomActivityListener(room.id);
78
- }
79
- }
80
- async onRoomAcquired(options) {
81
- this.validateRoomType(options.roomType);
82
- const now = options.activityAt ?? this.nowIso();
83
- const descriptor = {
84
- roomId: options.roomId,
85
- roomName: options.roomName,
86
- roomType: options.roomType,
87
- ownerRoomId: options.ownerRoomId ?? null,
88
- joinedAt: now,
89
- lastActivityAt: now,
90
- };
91
- this.roomDescriptors.set(options.roomId, descriptor);
92
- this.registerRoom(this.openRoom(options.roomId));
93
- await this.upsertRoomAcrossAllRelevantIndexes(descriptor, now);
94
- }
95
- onHandleActivated(handle) {
96
- this.activeHandles.add(handle);
97
- void handle.ensureReady().catch((error) => {
98
- console.error(`Failed to initialize index "${handle.indexName}"`, error);
99
- });
100
- for (const roomId of this.trackedRooms.keys()) {
101
- void this.maybeAttachRoomActivityListener(roomId);
102
- }
103
- }
104
- onHandleDeactivated(handle) {
105
- if (handle.activeCount > 0)
106
- return;
107
- this.activeHandles.delete(handle);
108
- }
109
- async ensureHandleReady(handle) {
110
- if (handle.rowsMap && handle.indexRoom) {
111
- return;
112
- }
113
- if (handle.readyPromise) {
114
- return handle.readyPromise;
115
- }
116
- handle.readyPromise = this.initializeHandle(handle);
117
- try {
118
- await handle.readyPromise;
119
- }
120
- catch (error) {
121
- handle.readyPromise = null;
122
- throw error;
123
- }
124
- }
125
- async queryHandlePage(handle, options) {
126
- await this.ensureHandleReady(handle);
127
- const rowsMap = handle.rowsMap;
128
- if (!rowsMap) {
129
- return { items: [], hasMore: false };
130
- }
131
- const rows = readQueryRows(rowsMap, options.where);
132
- rows.sort((a, b) => compareIndexItems(a, b, options.orderBy));
133
- return pageRows(rows, options.limit, options.after?.roomId ?? null);
134
- }
135
- // Handle lifecycle and validation helpers
136
- validateSchemaIndexes() {
137
- for (const [indexName, definition] of this.indexEntries) {
138
- if (definition.maxEntries <= 0) {
139
- throw new Error(`Index "${indexName}" maxEntries must be > 0`);
140
- }
141
- if (!(definition.defaultOrderBy.column in definition.columns)) {
142
- throw new Error(`Index "${indexName}" defaultOrderBy column must be in columns`);
143
- }
144
- for (const roomType of definition.roomTypes) {
145
- if (!(roomType in this.schema.roomTypes)) {
146
- throw new Error(`Index "${indexName}" references unknown roomType "${roomType}"`);
147
- }
148
- this.roomTypesInIndexes.add(roomType);
149
- }
150
- }
151
- }
152
- getIndexDefinition(indexName) {
153
- const definition = this.schema.indexes[indexName];
154
- if (!definition) {
155
- throw new Error(`Unknown index "${indexName}"`);
156
- }
157
- return definition;
158
- }
159
- validateIndexScopeOptions(indexName, definition, ownerRoomId) {
160
- if (definition.scope === "collaborative" && !ownerRoomId) {
161
- throw new Error(`Index "${indexName}" requires ownerRoomId`);
162
- }
163
- if (definition.scope === "private" && ownerRoomId) {
164
- throw new Error(`Private index "${indexName}" must not set ownerRoomId`);
165
- }
166
- }
167
- getOrCreateHandle(indexName, ownerRoomId) {
168
- const key = this.handleKey(indexName, ownerRoomId);
169
- let handle = this.handles.get(key);
170
- if (!handle) {
171
- const definition = this.schema.indexes[indexName];
172
- handle = new RuntimeIndexHandle({
173
- runtime: this,
174
- indexName,
175
- ownerRoomId,
176
- definition,
177
- });
178
- this.handles.set(key, handle);
179
- }
180
- return handle;
181
- }
182
- async initializeHandle(handle) {
183
- const roomId = await this.roomStore.resolveIndexRoomId({
184
- indexName: handle.indexName,
185
- scope: handle.definition.scope,
186
- ownerRoomId: handle.ownerRoomId,
187
- });
188
- const room = this.openRoom(roomId);
189
- this.registerRoom(room);
190
- await room.ensureJoined();
191
- await room.connect();
192
- handle.indexRoom = room;
193
- const rowsMap = room.doc.getMap(INDEX_ROWS_MAP_KEY);
194
- handle.rowsMap = rowsMap;
195
- if (handle.roomObserverCleanup) {
196
- handle.roomObserverCleanup();
197
- }
198
- const observer = () => handle.notifyChange();
199
- rowsMap.observe(observer);
200
- handle.roomObserverCleanup = () => rowsMap.unobserve(observer);
201
- handle.notifyChange();
202
- }
203
- // Room activity ingestion and index updates
204
- async maybeAttachRoomActivityListener(roomId) {
205
- const tracked = this.trackedRooms.get(roomId);
206
- if (!tracked || tracked.transactionListener)
207
- return;
208
- const descriptor = await this.getRoomDescriptor(roomId);
209
- if (!descriptor)
210
- return;
211
- const hasActiveRelevantHandle = Array.from(this.activeHandles).some((handle) => this.isDescriptorRelevantForHandle(descriptor, handle));
212
- if (!hasActiveRelevantHandle)
213
- return;
214
- const onTransaction = (tx) => {
215
- if (!tx.local)
216
- return;
217
- const activityAt = this.nowIso();
218
- void this.onRoomActivity(roomId, activityAt);
219
- };
220
- tracked.room.doc.on("afterTransaction", onTransaction);
221
- tracked.transactionListener = onTransaction;
222
- await this.upsertRoomAcrossActiveIndexes(descriptor, this.nowIso());
223
- }
224
- async onRoomActivity(roomId, activityAt) {
225
- const descriptor = await this.getRoomDescriptor(roomId);
226
- if (!descriptor)
227
- return;
228
- descriptor.lastActivityAt = activityAt;
229
- descriptor.roomName = await this.resolveRoomName(roomId, descriptor.roomName);
230
- await this.upsertRoomAcrossActiveIndexes(descriptor, activityAt);
231
- }
232
- async upsertRoomAcrossAllRelevantIndexes(roomDescriptor, activityAt) {
233
- const room = this.openRoom(roomDescriptor.roomId);
234
- for (const [indexName, definition] of this.indexEntries) {
235
- if (!definition.roomTypes.includes(roomDescriptor.roomType))
236
- continue;
237
- const ownerRoomId = definition.scope === "collaborative" ? roomDescriptor.ownerRoomId : null;
238
- if (definition.scope === "collaborative" && !ownerRoomId)
239
- continue;
240
- const handle = this.getOrCreateHandle(indexName, ownerRoomId);
241
- await this.upsertRoomToIndex(handle, roomDescriptor, room, activityAt);
242
- }
243
- }
244
- async upsertRoomAcrossActiveIndexes(roomDescriptor, activityAt) {
245
- const room = this.openRoom(roomDescriptor.roomId);
246
- for (const handle of this.activeHandles) {
247
- if (!this.isDescriptorRelevantForHandle(roomDescriptor, handle))
248
- continue;
249
- await this.upsertRoomToIndex(handle, roomDescriptor, room, activityAt);
250
- }
251
- }
252
- isDescriptorRelevantForHandle(roomDescriptor, indexHandle) {
253
- if (!indexHandle.definition.roomTypes.includes(roomDescriptor.roomType))
254
- return false;
255
- if (indexHandle.definition.scope === "private")
256
- return true;
257
- return indexHandle.ownerRoomId === roomDescriptor.ownerRoomId;
258
- }
259
- async upsertRoomToIndex(indexHandle, roomDescriptor, sourceRoom, activityAt) {
260
- if (indexHandle.paused) {
261
- throw new IndexCapacityError({
262
- indexName: indexHandle.indexName,
263
- ownerRoomId: indexHandle.ownerRoomId,
264
- });
265
- }
266
- await this.ensureHandleReady(indexHandle);
267
- const rowsMap = indexHandle.rowsMap;
268
- if (!rowsMap)
269
- return;
270
- roomDescriptor.lastActivityAt = activityAt;
271
- const item = buildIndexItem(indexHandle.definition, roomDescriptor, sourceRoom.doc);
272
- const encoded = JSON.stringify(item);
273
- const alreadyPresent = rowsMap.has(roomDescriptor.roomId);
274
- if (!alreadyPresent && rowsMap.size >= indexHandle.definition.maxEntries) {
275
- indexHandle.paused = true;
276
- throw new IndexCapacityError({
277
- indexName: indexHandle.indexName,
278
- ownerRoomId: indexHandle.ownerRoomId,
279
- });
280
- }
281
- if (rowsMap.get(roomDescriptor.roomId) !== encoded) {
282
- rowsMap.set(roomDescriptor.roomId, encoded);
283
- }
284
- }
285
- async getRoomDescriptor(roomId) {
286
- const existing = this.roomDescriptors.get(roomId);
287
- if (existing)
288
- return existing;
289
- const descriptor = await this.readRoomDescriptorFromState(roomId);
290
- if (!descriptor)
291
- return null;
292
- this.roomDescriptors.set(roomId, descriptor);
293
- return descriptor;
294
- }
295
- async readRoomDescriptorFromState(roomId) {
296
- try {
297
- const state = await this.matrixClient.roomState(roomId);
298
- const appState = state.find((event) => event.type === this.namespace && event.state_key === "");
299
- const content = (appState?.content ?? {});
300
- const roomType = typeof content.roomType === "string" ? content.roomType : null;
301
- if (!roomType)
302
- return null;
303
- const roomName = this.readRoomNameFromState(state, DEFAULT_ROOM_NAME);
304
- const now = this.nowIso();
305
- return {
306
- roomId,
307
- roomName,
308
- roomType,
309
- ownerRoomId: typeof content.ownerRoomId === "string" ? content.ownerRoomId : null,
310
- joinedAt: now,
311
- lastActivityAt: now,
312
- };
313
- }
314
- catch {
315
- return null;
316
- }
317
- }
318
- async resolveRoomName(roomId, fallback) {
319
- try {
320
- const state = await this.matrixClient.roomState(roomId);
321
- return this.readRoomNameFromState(state, fallback);
322
- }
323
- catch {
324
- return fallback;
325
- }
326
- }
327
- readRoomNameFromState(state, fallback) {
328
- const nameEvent = state.find((event) => event.type === ROOM_NAME_EVENT_TYPE);
329
- return typeof nameEvent?.content?.name === "string"
330
- ? nameEvent.content.name
331
- : fallback;
332
- }
333
- nowIso() {
334
- return new Date().toISOString();
335
- }
336
- handleKey(indexName, ownerRoomId) {
337
- return ownerRoomId ? `${indexName}::${ownerRoomId}` : `${indexName}::private`;
338
- }
339
- }
340
- //# sourceMappingURL=IndexRuntime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IndexRuntime.js","sourceRoot":"","sources":["../src/IndexRuntime.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import * as Y from "yjs";
2
- import type { IndexRuntime } from "./IndexRuntime";
3
- import type { Room } from "./Room";
4
- import type { MayDbIndexDefinition, MayDbIndexHandle, MayDbIndexQueryPageOptions, MayDbIndexQueryPageResult } from "./types";
5
- export declare class RuntimeIndexHandle implements MayDbIndexHandle {
6
- readonly indexName: string;
7
- readonly ownerRoomId: string | null;
8
- readonly definition: MayDbIndexDefinition;
9
- activeCount: number;
10
- paused: boolean;
11
- indexRoom: Room | null;
12
- rowsMap: Y.Map<string> | null;
13
- roomObserverCleanup: (() => void) | null;
14
- readyPromise: Promise<void> | null;
15
- private readonly runtime;
16
- private readonly listeners;
17
- constructor(options: {
18
- runtime: IndexRuntime;
19
- indexName: string;
20
- ownerRoomId: string | null;
21
- definition: MayDbIndexDefinition;
22
- });
23
- activate(): () => void;
24
- ensureReady(): Promise<void>;
25
- queryPage(options: MayDbIndexQueryPageOptions): Promise<MayDbIndexQueryPageResult>;
26
- subscribe(listener: () => void): () => void;
27
- notifyChange(): void;
28
- }
29
- //# sourceMappingURL=RuntimeIndexHandle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimeIndexHandle.d.ts","sourceRoot":"","sources":["../src/RuntimeIndexHandle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAEjB,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,WAAW,SAAK;IAChB,MAAM,UAAS;IAEf,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC9B,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAQ;IACrC,mBAAmB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChD,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAQ;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;gBAEvC,OAAO,EAAE;QACnB,OAAO,EAAE,YAAY,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,oBAAoB,CAAC;KAClC;IAOD,QAAQ,IAAI,MAAM,IAAI;IAahB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,SAAS,CACb,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,yBAAyB,CAAC;IAIrC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAK3C,YAAY,IAAI,IAAI;CAKrB"}
@@ -1,48 +0,0 @@
1
- import * as Y from "yjs";
2
- export class RuntimeIndexHandle {
3
- indexName;
4
- ownerRoomId;
5
- definition;
6
- activeCount = 0;
7
- paused = false;
8
- indexRoom = null;
9
- rowsMap = null;
10
- roomObserverCleanup = null;
11
- readyPromise = null;
12
- runtime;
13
- listeners = new Set();
14
- constructor(options) {
15
- this.runtime = options.runtime;
16
- this.indexName = options.indexName;
17
- this.ownerRoomId = options.ownerRoomId;
18
- this.definition = options.definition;
19
- }
20
- activate() {
21
- this.activeCount += 1;
22
- this.runtime.onHandleActivated(this);
23
- let disposed = false;
24
- return () => {
25
- if (disposed)
26
- return;
27
- disposed = true;
28
- this.activeCount = Math.max(0, this.activeCount - 1);
29
- this.runtime.onHandleDeactivated(this);
30
- };
31
- }
32
- async ensureReady() {
33
- await this.runtime.ensureHandleReady(this);
34
- }
35
- async queryPage(options) {
36
- return this.runtime.queryHandlePage(this, options);
37
- }
38
- subscribe(listener) {
39
- this.listeners.add(listener);
40
- return () => this.listeners.delete(listener);
41
- }
42
- notifyChange() {
43
- for (const listener of this.listeners) {
44
- listener();
45
- }
46
- }
47
- }
48
- //# sourceMappingURL=RuntimeIndexHandle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimeIndexHandle.js","sourceRoot":"","sources":["../src/RuntimeIndexHandle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAUzB,MAAM,OAAO,kBAAkB;IACpB,SAAS,CAAS;IAClB,WAAW,CAAgB;IAC3B,UAAU,CAAuB;IAC1C,WAAW,GAAG,CAAC,CAAC;IAChB,MAAM,GAAG,KAAK,CAAC;IAEf,SAAS,GAAgB,IAAI,CAAC;IAC9B,OAAO,GAAyB,IAAI,CAAC;IACrC,mBAAmB,GAAwB,IAAI,CAAC;IAChD,YAAY,GAAyB,IAAI,CAAC;IAEzB,OAAO,CAAe;IACtB,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAEnD,YAAY,OAKX;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAErC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,SAAS,CACb,OAAmC;QAEnC,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,QAAoB;QAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY;QACV,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF"}
package/dist/errors.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import type { RoomSource } from "./types";
2
- export declare class RoomIndexWriteError extends Error {
3
- readonly roomId: string;
4
- readonly source: RoomSource;
5
- readonly cause: unknown;
6
- constructor(options: {
7
- roomId: string;
8
- source: RoomSource;
9
- cause: unknown;
10
- });
11
- }
12
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;gBAEZ,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE;CAW5E"}
package/dist/errors.js DELETED
@@ -1,15 +0,0 @@
1
- export class RoomIndexWriteError extends Error {
2
- roomId;
3
- source;
4
- cause;
5
- constructor(options) {
6
- const { roomId, source, cause } = options;
7
- const detail = cause instanceof Error ? cause.message : String(cause);
8
- super(`Failed to persist room ${roomId} in SDK index during ${source}: ${detail}`);
9
- this.name = "RoomIndexWriteError";
10
- this.roomId = roomId;
11
- this.source = source;
12
- this.cause = cause;
13
- }
14
- }
15
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,MAAM,CAAS;IACf,MAAM,CAAa;IACnB,KAAK,CAAU;IAExB,YAAY,OAA+D;QACzE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAC1C,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,KAAK,CACH,0BAA0B,MAAM,wBAAwB,MAAM,KAAK,MAAM,EAAE,CAC5E,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
@@ -1,12 +0,0 @@
1
- import type { Room } from "../Room";
2
- export interface AllowedRoomInfo {
3
- roomId: string;
4
- title: string;
5
- }
6
- export declare function useAllowedRooms(room: Room): {
7
- allowedRooms: AllowedRoomInfo[];
8
- loading: boolean;
9
- error: Error | null;
10
- refresh: () => Promise<void>;
11
- };
12
- //# sourceMappingURL=useAllowedRooms.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAllowedRooms.d.ts","sourceRoot":"","sources":["../../src/hooks/useAllowedRooms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI;;;;;EA+BzC"}
@@ -1,29 +0,0 @@
1
- import { useState, useEffect, useCallback } from "react";
2
- export function useAllowedRooms(room) {
3
- const [allowedRooms, setAllowedRooms] = useState([]);
4
- const [loading, setLoading] = useState(true);
5
- const [error, setError] = useState(null);
6
- const refresh = useCallback(async () => {
7
- setLoading(true);
8
- setError(null);
9
- try {
10
- const ids = await room.getAllowedRoomIds();
11
- const rooms = await Promise.all(ids.map(async (roomId) => ({
12
- roomId,
13
- title: await room.getRoomName(roomId),
14
- })));
15
- setAllowedRooms(rooms);
16
- }
17
- catch (err) {
18
- setError(err instanceof Error ? err : new Error("Failed to fetch allowed rooms"));
19
- }
20
- finally {
21
- setLoading(false);
22
- }
23
- }, [room]);
24
- useEffect(() => {
25
- refresh();
26
- }, [refresh]);
27
- return { allowedRooms, loading, error, refresh };
28
- }
29
- //# sourceMappingURL=useAllowedRooms.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAllowedRooms.js","sourceRoot":"","sources":["../../src/hooks/useAllowedRooms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAQzD,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;gBACzB,MAAM;gBACN,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;aACtC,CAAC,CAAC,CACJ,CAAC;YACF,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CACN,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CACxE,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACnD,CAAC"}
@@ -1,8 +0,0 @@
1
- import { type DependencyList } from "react";
2
- export interface AsyncState<T> {
3
- data: T | null;
4
- loading: boolean;
5
- error: Error | null;
6
- }
7
- export declare function useAsync<T>(factory: () => Promise<T>, deps: DependencyList): AsyncState<T>;
8
- //# sourceMappingURL=useAsync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsync.d.ts","sourceRoot":"","sources":["../../src/hooks/useAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EACxB,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,cAAc,GACnB,UAAU,CAAC,CAAC,CAAC,CAgCf"}
@@ -1,29 +0,0 @@
1
- import { useState, useEffect } from "react";
2
- export function useAsync(factory, deps) {
3
- const [state, setState] = useState({
4
- data: null,
5
- loading: true,
6
- error: null,
7
- });
8
- useEffect(() => {
9
- let mounted = true;
10
- setState({ data: null, loading: true, error: null });
11
- factory().then((data) => {
12
- if (mounted)
13
- setState({ data, loading: false, error: null });
14
- }, (err) => {
15
- if (mounted)
16
- setState({
17
- data: null,
18
- loading: false,
19
- error: err instanceof Error ? err : new Error(String(err)),
20
- });
21
- });
22
- return () => {
23
- mounted = false;
24
- };
25
- // eslint-disable-next-line react-hooks/exhaustive-deps
26
- }, deps);
27
- return state;
28
- }
29
- //# sourceMappingURL=useAsync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsync.js","sourceRoot":"","sources":["../../src/hooks/useAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAQjE,MAAM,UAAU,QAAQ,CACtB,OAAyB,EACzB,IAAoB;IAEpB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB;QAChD,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAErD,OAAO,EAAE,CAAC,IAAI,CACZ,CAAC,IAAI,EAAE,EAAE;YACP,IAAI,OAAO;gBAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,IAAI,OAAO;gBACT,QAAQ,CAAC;oBACP,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBAC3D,CAAC,CAAC;QACP,CAAC,CACF,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC,CAAC;QACF,uDAAuD;IACzD,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Client } from "../Client";
2
- import type { RoomConfig } from "../types";
3
- type AuthState = "loading" | "unauthenticated" | "authenticated";
4
- export declare function useAuth(config: RoomConfig): {
5
- state: AuthState;
6
- client: Client | null;
7
- error: string | null;
8
- logout: () => Promise<void>;
9
- };
10
- export {};
11
- //# sourceMappingURL=useAuth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../src/hooks/useAuth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,KAAK,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEjE,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU;;;;;EA2CzC"}
@@ -1,45 +0,0 @@
1
- import { useState, useEffect, useCallback } from "react";
2
- import { Client } from "../Client";
3
- import { getAuth } from "../authStorage";
4
- import { completeLogin } from "../loginFlow";
5
- export function useAuth(config) {
6
- const [state, setState] = useState("loading");
7
- const [client, setClient] = useState(null);
8
- const [error, setError] = useState(null);
9
- useEffect(() => {
10
- async function init() {
11
- try {
12
- const callbackAuth = await completeLogin();
13
- if (callbackAuth) {
14
- setClient(new Client(callbackAuth, config));
15
- setState("authenticated");
16
- return;
17
- }
18
- const storedAuth = getAuth();
19
- if (storedAuth) {
20
- try {
21
- setClient(new Client(storedAuth, config));
22
- setState("authenticated");
23
- return;
24
- }
25
- catch {
26
- // Stored auth invalid, continue to login
27
- }
28
- }
29
- setState("unauthenticated");
30
- }
31
- catch (err) {
32
- setError(err instanceof Error ? err.message : "Initialization failed");
33
- setState("unauthenticated");
34
- }
35
- }
36
- init();
37
- }, [config]);
38
- const logout = useCallback(async () => {
39
- await client?.logout();
40
- setClient(null);
41
- setState("unauthenticated");
42
- }, [client]);
43
- return { state, client, error, logout };
44
- }
45
- //# sourceMappingURL=useAuth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../src/hooks/useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAK7C,MAAM,UAAU,OAAO,CAAC,MAAkB;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAY,SAAS,CAAC,CAAC;IACzD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,UAAU,IAAI;YACjB,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,aAAa,EAAE,CAAC;gBAC3C,IAAI,YAAY,EAAE,CAAC;oBACjB,SAAS,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC5C,QAAQ,CAAC,eAAe,CAAC,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBAED,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC;gBAC7B,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,CAAC;wBACH,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;wBAC1C,QAAQ,CAAC,eAAe,CAAC,CAAC;wBAC1B,OAAO;oBACT,CAAC;oBAAC,MAAM,CAAC;wBACP,yCAAyC;oBAC3C,CAAC;gBACH,CAAC;gBAED,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;gBACvE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACpC,MAAM,MAAM,EAAE,MAAM,EAAE,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC"}