@may-db/core 0.1.3 → 0.1.4

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 (73) hide show
  1. package/package.json +2 -2
  2. package/dist/Client.d.ts +0 -20
  3. package/dist/Client.d.ts.map +0 -1
  4. package/dist/Client.js +0 -163
  5. package/dist/Client.js.map +0 -1
  6. package/dist/IndexRuntime.d.ts +0 -60
  7. package/dist/IndexRuntime.d.ts.map +0 -1
  8. package/dist/IndexRuntime.js +0 -340
  9. package/dist/IndexRuntime.js.map +0 -1
  10. package/dist/RuntimeIndexHandle.d.ts +0 -29
  11. package/dist/RuntimeIndexHandle.d.ts.map +0 -1
  12. package/dist/RuntimeIndexHandle.js +0 -48
  13. package/dist/RuntimeIndexHandle.js.map +0 -1
  14. package/dist/errors.d.ts +0 -12
  15. package/dist/errors.d.ts.map +0 -1
  16. package/dist/errors.js +0 -15
  17. package/dist/errors.js.map +0 -1
  18. package/dist/hooks/useAllowedRooms.d.ts +0 -12
  19. package/dist/hooks/useAllowedRooms.d.ts.map +0 -1
  20. package/dist/hooks/useAllowedRooms.js +0 -29
  21. package/dist/hooks/useAllowedRooms.js.map +0 -1
  22. package/dist/hooks/useAsync.d.ts +0 -8
  23. package/dist/hooks/useAsync.d.ts.map +0 -1
  24. package/dist/hooks/useAsync.js +0 -29
  25. package/dist/hooks/useAsync.js.map +0 -1
  26. package/dist/hooks/useAuth.d.ts +0 -11
  27. package/dist/hooks/useAuth.d.ts.map +0 -1
  28. package/dist/hooks/useAuth.js +0 -45
  29. package/dist/hooks/useAuth.js.map +0 -1
  30. package/dist/hooks/usePresence.d.ts +0 -30
  31. package/dist/hooks/usePresence.d.ts.map +0 -1
  32. package/dist/hooks/usePresence.js +0 -95
  33. package/dist/hooks/usePresence.js.map +0 -1
  34. package/dist/hooks/useRoom.d.ts +0 -11
  35. package/dist/hooks/useRoom.d.ts.map +0 -1
  36. package/dist/hooks/useRoom.js +0 -37
  37. package/dist/hooks/useRoom.js.map +0 -1
  38. package/dist/hooks/useRoomMembers.d.ts +0 -12
  39. package/dist/hooks/useRoomMembers.d.ts.map +0 -1
  40. package/dist/hooks/useRoomMembers.js +0 -37
  41. package/dist/hooks/useRoomMembers.js.map +0 -1
  42. package/dist/indexing/roomRegistry.d.ts +0 -26
  43. package/dist/indexing/roomRegistry.d.ts.map +0 -1
  44. package/dist/indexing/roomRegistry.js +0 -125
  45. package/dist/indexing/roomRegistry.js.map +0 -1
  46. package/dist/indexing.d.ts +0 -93
  47. package/dist/indexing.d.ts.map +0 -1
  48. package/dist/indexing.js +0 -394
  49. package/dist/indexing.js.map +0 -1
  50. package/dist/indexingErrors.d.ts +0 -9
  51. package/dist/indexingErrors.d.ts.map +0 -1
  52. package/dist/indexingErrors.js +0 -11
  53. package/dist/indexingErrors.js.map +0 -1
  54. package/dist/indexingRoomStore.d.ts +0 -26
  55. package/dist/indexingRoomStore.d.ts.map +0 -1
  56. package/dist/indexingRoomStore.js +0 -125
  57. package/dist/indexingRoomStore.js.map +0 -1
  58. package/dist/indexingRows.d.ts +0 -8
  59. package/dist/indexingRows.d.ts.map +0 -1
  60. package/dist/indexingRows.js +0 -114
  61. package/dist/indexingRows.js.map +0 -1
  62. package/dist/indexingTypes.d.ts +0 -9
  63. package/dist/indexingTypes.d.ts.map +0 -1
  64. package/dist/indexingTypes.js +0 -2
  65. package/dist/indexingTypes.js.map +0 -1
  66. package/dist/matrix-crdt-shim.d.ts +0 -43
  67. package/dist/matrix-crdt-shim.d.ts.map +0 -1
  68. package/dist/matrix-crdt-shim.js +0 -2
  69. package/dist/matrix-crdt-shim.js.map +0 -1
  70. package/dist/singletonRoom.d.ts +0 -3
  71. package/dist/singletonRoom.d.ts.map +0 -1
  72. package/dist/singletonRoom.js +0 -8
  73. package/dist/singletonRoom.js.map +0 -1
@@ -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"}
@@ -1,30 +0,0 @@
1
- import type { Room } from '../Room';
2
- export declare const PRESENCE_EVENT = "com.matrixsheets.presence";
3
- export interface PresenceContent {
4
- roomId: string;
5
- focus: string | null;
6
- timestamp: number;
7
- user: {
8
- id: string;
9
- name: string;
10
- color: string;
11
- };
12
- }
13
- export interface RemotePresence {
14
- userId: string;
15
- name: string;
16
- color: string;
17
- focus: string;
18
- }
19
- export interface UsePresenceOptions {
20
- room: Room;
21
- }
22
- /**
23
- * Hook for managing presence via Matrix to-device messages.
24
- * Broadcasts local focus changes to room members and receives their presence updates.
25
- */
26
- export declare function usePresence({ room }: UsePresenceOptions): {
27
- remotePresences: RemotePresence[];
28
- setLocalFocus: (focus: string | null) => void;
29
- };
30
- //# sourceMappingURL=usePresence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePresence.d.ts","sourceRoot":"","sources":["../../src/hooks/usePresence.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAKpC,eAAO,MAAM,cAAc,8BAA8B,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB;;2BAsC5C,MAAM,GAAG,IAAI;EA6DxB"}
@@ -1,95 +0,0 @@
1
- import { useState, useEffect, useCallback, useMemo, useRef } from 'react';
2
- import { getUserColor } from '../utils/presenceColors';
3
- const PRESENCE_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
4
- const SYNC_POLL_INTERVAL_MS = 2500; // Poll every 2.5 seconds
5
- export const PRESENCE_EVENT = "com.matrixsheets.presence";
6
- /**
7
- * Hook for managing presence via Matrix to-device messages.
8
- * Broadcasts local focus changes to room members and receives their presence updates.
9
- */
10
- export function usePresence({ room }) {
11
- const roomId = room.roomId;
12
- const localUserId = room.userId;
13
- const localUserName = room.userDisplayName || localUserId;
14
- const localColor = useMemo(() => getUserColor(localUserId), [localUserId]);
15
- const [remotePresences, setRemotePresences] = useState([]);
16
- // Track sync token for incremental sync
17
- const syncTokenRef = useRef(null);
18
- // Track current local focus to avoid duplicate sends
19
- const localFocusRef = useRef(null);
20
- const sendPresence = useCallback(async (focus) => {
21
- const presence = {
22
- roomId,
23
- focus,
24
- timestamp: Date.now(),
25
- user: {
26
- id: localUserId,
27
- name: localUserName,
28
- color: localColor,
29
- },
30
- };
31
- try {
32
- await room.sendToDevice(PRESENCE_EVENT, presence);
33
- }
34
- catch (err) {
35
- console.error('Failed to send presence:', err);
36
- }
37
- }, [room, roomId, localUserId, localUserName, localColor]);
38
- const setLocalFocus = useCallback((focus) => {
39
- if (localFocusRef.current === focus)
40
- return;
41
- localFocusRef.current = focus;
42
- sendPresence(focus);
43
- }, [sendPresence]);
44
- useEffect(() => {
45
- let stopped = false;
46
- const poll = async () => {
47
- try {
48
- const { events, nextBatch } = await room.pollToDeviceEvents(syncTokenRef.current);
49
- syncTokenRef.current = nextBatch;
50
- const now = Date.now();
51
- for (const event of events) {
52
- if (event.type !== PRESENCE_EVENT)
53
- continue;
54
- const content = event.content;
55
- if (content.roomId !== roomId)
56
- continue;
57
- if (content.user.id === localUserId)
58
- continue;
59
- if (now - content.timestamp >= PRESENCE_TIMEOUT_MS)
60
- continue;
61
- const userId = content.user.id;
62
- if (content.focus === null) {
63
- setRemotePresences(prev => prev.filter(p => p.userId !== userId));
64
- }
65
- else {
66
- setRemotePresences(prev => [
67
- ...prev.filter(p => p.userId !== userId),
68
- { userId, name: content.user.name, color: content.user.color, focus: content.focus },
69
- ]);
70
- }
71
- }
72
- }
73
- catch (err) {
74
- console.error('Presence poll error:', err);
75
- }
76
- };
77
- poll();
78
- const interval = setInterval(() => {
79
- if (!stopped)
80
- poll();
81
- }, SYNC_POLL_INTERVAL_MS);
82
- return () => {
83
- stopped = true;
84
- clearInterval(interval);
85
- };
86
- }, [room, roomId, localUserId]);
87
- // Send null presence when unmounting (leaving room)
88
- useEffect(() => {
89
- return () => {
90
- sendPresence(null);
91
- };
92
- }, [sendPresence]);
93
- return { remotePresences, setLocalFocus };
94
- }
95
- //# sourceMappingURL=usePresence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePresence.js","sourceRoot":"","sources":["../../src/hooks/usePresence.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import type { Room } from "../Room";
2
- import type { RoomStatus, RoomMetadata } from "../types";
3
- export declare function useRoom(room: Room): {
4
- room: Room;
5
- status: RoomStatus;
6
- isConnected: boolean;
7
- canWrite: boolean;
8
- metadata: RoomMetadata | null;
9
- error: Error | null;
10
- };
11
- //# sourceMappingURL=useRoom.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRoom.d.ts","sourceRoot":"","sources":["../../src/hooks/useRoom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEzD,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI;;;;;;;EAqCjC"}
@@ -1,37 +0,0 @@
1
- import { useState, useEffect } from "react";
2
- export function useRoom(room) {
3
- const [status, setStatus] = useState(room.status);
4
- const [canWrite, setCanWrite] = useState(room.canWrite);
5
- const [metadata, setMetadata] = useState(room.metadata);
6
- const [error, setError] = useState(null);
7
- useEffect(() => {
8
- const unsubscribe = room.subscribe({
9
- onStatusChange: setStatus,
10
- onCanWriteChange: setCanWrite,
11
- onMetadataChange: setMetadata,
12
- });
13
- return unsubscribe;
14
- }, [room]);
15
- // Auto-connect effect (no cleanup - rooms are cached and stay connected)
16
- useEffect(() => {
17
- if (room.isConnected)
18
- return;
19
- (async () => {
20
- try {
21
- await room.connect();
22
- }
23
- catch (err) {
24
- setError(err instanceof Error ? err : new Error("Failed to connect"));
25
- }
26
- })();
27
- }, [room]);
28
- return {
29
- room,
30
- status,
31
- isConnected: status === "connected",
32
- canWrite,
33
- metadata,
34
- error,
35
- };
36
- }
37
- //# sourceMappingURL=useRoom.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRoom.js","sourceRoot":"","sources":["../../src/hooks/useRoom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI5C,MAAM,UAAU,OAAO,CAAC,IAAU;IAChC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAa,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,cAAc,EAAE,SAAS;YACzB,gBAAgB,EAAE,WAAW;YAC7B,gBAAgB,EAAE,WAAW;SAC9B,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,yEAAyE;IACzE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO;QACL,IAAI;QACJ,MAAM;QACN,WAAW,EAAE,MAAM,KAAK,WAAW;QACnC,QAAQ;QACR,QAAQ;QACR,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { Room } from "../Room";
2
- import type { RoomMember, AccessLevel } from "../types";
3
- export declare function useRoomMembers(room: Room): {
4
- members: RoomMember[];
5
- loading: boolean;
6
- error: Error | null;
7
- refresh: () => Promise<void>;
8
- invite: (userId: string, access: AccessLevel) => Promise<void>;
9
- setAccess: (userId: string, access: AccessLevel) => Promise<void>;
10
- kick: (userId: string) => Promise<void>;
11
- };
12
- //# sourceMappingURL=useRoomMembers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRoomMembers.d.ts","sourceRoot":"","sources":["../../src/hooks/useRoomMembers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI;;;;;qBA0BO,MAAM,UAAU,WAAW;wBAQ3B,MAAM,UAAU,WAAW;mBAQ3B,MAAM;EAQxB"}
@@ -1,37 +0,0 @@
1
- import { useState, useEffect, useCallback } from "react";
2
- export function useRoomMembers(room) {
3
- const [members, setMembers] = 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 memberList = await room.getMembers();
11
- setMembers(memberList);
12
- }
13
- catch (err) {
14
- setError(err instanceof Error ? err : new Error("Failed to load members"));
15
- }
16
- finally {
17
- setLoading(false);
18
- }
19
- }, [room]);
20
- useEffect(() => {
21
- refresh();
22
- }, [refresh]);
23
- const invite = useCallback(async (userId, access) => {
24
- await room.invite(userId, access);
25
- await refresh();
26
- }, [room, refresh]);
27
- const setAccess = useCallback(async (userId, access) => {
28
- await room.setAccess(userId, access);
29
- await refresh();
30
- }, [room, refresh]);
31
- const kick = useCallback(async (userId) => {
32
- await room.kick(userId);
33
- await refresh();
34
- }, [room, refresh]);
35
- return { members, loading, error, refresh, invite, setAccess, kick };
36
- }
37
- //# sourceMappingURL=useRoomMembers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRoomMembers.js","sourceRoot":"","sources":["../../src/hooks/useRoomMembers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAIzD,MAAM,UAAU,cAAc,CAC5B,IAAU;IAEV,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAe,EAAE,CAAC,CAAC;IACzD,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,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,UAAU,CAAC,UAAU,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,wBAAwB,CAAC,CACjE,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,MAAM,MAAM,GAAG,WAAW,CACxB,KAAK,EAAE,MAAc,EAAE,MAAmB,EAAE,EAAE;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC,EACD,CAAC,IAAI,EAAE,OAAO,CAAC,CAChB,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAC3B,KAAK,EAAE,MAAc,EAAE,MAAmB,EAAE,EAAE;QAC5C,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC,EACD,CAAC,IAAI,EAAE,OAAO,CAAC,CAChB,CAAC;IAEF,MAAM,IAAI,GAAG,WAAW,CACtB,KAAK,EAAE,MAAc,EAAE,EAAE;QACvB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC,EACD,CAAC,IAAI,EAAE,OAAO,CAAC,CAChB,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC"}
@@ -1,26 +0,0 @@
1
- import { Room } from "../Room";
2
- import type { MatrixClient, MayDbIndexScope } from "../types";
3
- export declare class IndexRoomStore {
4
- private readonly namespace;
5
- private readonly matrixClient;
6
- private readonly openRoom;
7
- constructor(options: {
8
- namespace: string;
9
- matrixClient: MatrixClient;
10
- openRoom: (roomId: string) => Room;
11
- });
12
- resolveIndexRoomId(options: {
13
- indexName: string;
14
- scope: MayDbIndexScope;
15
- ownerRoomId: string | null;
16
- }): Promise<string>;
17
- private resolvePrivateIndexRoomId;
18
- private resolveCollaborativeIndexRoomId;
19
- private ensureJoined;
20
- private getAccountDataMapping;
21
- private getOwnerRoomIndexMapping;
22
- private createIndexMatrixRoom;
23
- private privateIndexAccountDataType;
24
- private ownerIndexMappingStateType;
25
- }
26
- //# sourceMappingURL=roomRegistry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"roomRegistry.d.ts","sourceRoot":"","sources":["../../src/indexing/roomRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE9D,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;gBAExC,OAAO,EAAE;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,YAAY,CAAC;QAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;KACpC;IAMK,kBAAkB,CAAC,OAAO,EAAE;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,eAAe,CAAC;QACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,GAAG,OAAO,CAAC,MAAM,CAAC;YAOL,yBAAyB;YAoBzB,+BAA+B;YA4C/B,YAAY;YAKZ,qBAAqB;YAcrB,wBAAwB;YAiBxB,qBAAqB;IAgCnC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,0BAA0B;CAGnC"}