@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.
- package/package.json +2 -2
- package/dist/Client.d.ts +0 -20
- package/dist/Client.d.ts.map +0 -1
- package/dist/Client.js +0 -163
- package/dist/Client.js.map +0 -1
- package/dist/IndexRuntime.d.ts +0 -60
- package/dist/IndexRuntime.d.ts.map +0 -1
- package/dist/IndexRuntime.js +0 -340
- package/dist/IndexRuntime.js.map +0 -1
- package/dist/RuntimeIndexHandle.d.ts +0 -29
- package/dist/RuntimeIndexHandle.d.ts.map +0 -1
- package/dist/RuntimeIndexHandle.js +0 -48
- package/dist/RuntimeIndexHandle.js.map +0 -1
- package/dist/errors.d.ts +0 -12
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -15
- package/dist/errors.js.map +0 -1
- package/dist/hooks/useAllowedRooms.d.ts +0 -12
- package/dist/hooks/useAllowedRooms.d.ts.map +0 -1
- package/dist/hooks/useAllowedRooms.js +0 -29
- package/dist/hooks/useAllowedRooms.js.map +0 -1
- package/dist/hooks/useAsync.d.ts +0 -8
- package/dist/hooks/useAsync.d.ts.map +0 -1
- package/dist/hooks/useAsync.js +0 -29
- package/dist/hooks/useAsync.js.map +0 -1
- package/dist/hooks/useAuth.d.ts +0 -11
- package/dist/hooks/useAuth.d.ts.map +0 -1
- package/dist/hooks/useAuth.js +0 -45
- package/dist/hooks/useAuth.js.map +0 -1
- package/dist/hooks/usePresence.d.ts +0 -30
- package/dist/hooks/usePresence.d.ts.map +0 -1
- package/dist/hooks/usePresence.js +0 -95
- package/dist/hooks/usePresence.js.map +0 -1
- package/dist/hooks/useRoom.d.ts +0 -11
- package/dist/hooks/useRoom.d.ts.map +0 -1
- package/dist/hooks/useRoom.js +0 -37
- package/dist/hooks/useRoom.js.map +0 -1
- package/dist/hooks/useRoomMembers.d.ts +0 -12
- package/dist/hooks/useRoomMembers.d.ts.map +0 -1
- package/dist/hooks/useRoomMembers.js +0 -37
- package/dist/hooks/useRoomMembers.js.map +0 -1
- package/dist/indexing/roomRegistry.d.ts +0 -26
- package/dist/indexing/roomRegistry.d.ts.map +0 -1
- package/dist/indexing/roomRegistry.js +0 -125
- package/dist/indexing/roomRegistry.js.map +0 -1
- package/dist/indexing.d.ts +0 -93
- package/dist/indexing.d.ts.map +0 -1
- package/dist/indexing.js +0 -394
- package/dist/indexing.js.map +0 -1
- package/dist/indexingErrors.d.ts +0 -9
- package/dist/indexingErrors.d.ts.map +0 -1
- package/dist/indexingErrors.js +0 -11
- package/dist/indexingErrors.js.map +0 -1
- package/dist/indexingRoomStore.d.ts +0 -26
- package/dist/indexingRoomStore.d.ts.map +0 -1
- package/dist/indexingRoomStore.js +0 -125
- package/dist/indexingRoomStore.js.map +0 -1
- package/dist/indexingRows.d.ts +0 -8
- package/dist/indexingRows.d.ts.map +0 -1
- package/dist/indexingRows.js +0 -114
- package/dist/indexingRows.js.map +0 -1
- package/dist/indexingTypes.d.ts +0 -9
- package/dist/indexingTypes.d.ts.map +0 -1
- package/dist/indexingTypes.js +0 -2
- package/dist/indexingTypes.js.map +0 -1
- package/dist/matrix-crdt-shim.d.ts +0 -43
- package/dist/matrix-crdt-shim.d.ts.map +0 -1
- package/dist/matrix-crdt-shim.js +0 -2
- package/dist/matrix-crdt-shim.js.map +0 -1
- package/dist/singletonRoom.d.ts +0 -3
- package/dist/singletonRoom.d.ts.map +0 -1
- package/dist/singletonRoom.js +0 -8
- 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
|
package/dist/errors.d.ts.map
DELETED
|
@@ -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
|
package/dist/errors.js.map
DELETED
|
@@ -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"}
|
package/dist/hooks/useAsync.d.ts
DELETED
|
@@ -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"}
|
package/dist/hooks/useAsync.js
DELETED
|
@@ -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"}
|
package/dist/hooks/useAuth.d.ts
DELETED
|
@@ -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"}
|
package/dist/hooks/useAuth.js
DELETED
|
@@ -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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"}
|
package/dist/hooks/useRoom.d.ts
DELETED
|
@@ -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"}
|
package/dist/hooks/useRoom.js
DELETED
|
@@ -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"}
|