@may-db/react 0.1.0 → 0.1.2

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 (47) hide show
  1. package/dist/debugRecents.d.ts +2 -0
  2. package/dist/debugRecents.d.ts.map +1 -0
  3. package/dist/debugRecents.js +14 -0
  4. package/dist/debugRecents.js.map +1 -0
  5. package/dist/delegates/index.d.ts +2 -0
  6. package/dist/delegates/index.d.ts.map +1 -0
  7. package/dist/delegates/index.js +2 -0
  8. package/dist/delegates/index.js.map +1 -0
  9. package/dist/hooks/useMayDb.d.ts +10 -5
  10. package/dist/hooks/useMayDb.d.ts.map +1 -1
  11. package/dist/hooks/useMayDb.js +40 -13
  12. package/dist/hooks/useMayDb.js.map +1 -1
  13. package/dist/hooks/useMayDbIndex.d.ts +11 -0
  14. package/dist/hooks/useMayDbIndex.d.ts.map +1 -0
  15. package/dist/hooks/useMayDbIndex.js +38 -0
  16. package/dist/hooks/useMayDbIndex.js.map +1 -0
  17. package/dist/hooks/useMayDbQuery.d.ts +14 -0
  18. package/dist/hooks/useMayDbQuery.d.ts.map +1 -0
  19. package/dist/hooks/useMayDbQuery.js +53 -0
  20. package/dist/hooks/useMayDbQuery.js.map +1 -0
  21. package/dist/hooks/usePresence.d.ts +2 -2
  22. package/dist/hooks/usePresence.d.ts.map +1 -1
  23. package/dist/hooks/usePresence.js +4 -4
  24. package/dist/hooks/usePresence.js.map +1 -1
  25. package/dist/hooks/useRoom.d.ts +13 -7
  26. package/dist/hooks/useRoom.d.ts.map +1 -1
  27. package/dist/hooks/useRoom.js +29 -25
  28. package/dist/hooks/useRoom.js.map +1 -1
  29. package/dist/hooks/useRoomDelegates.d.ts +2 -2
  30. package/dist/hooks/useRoomDelegates.d.ts.map +1 -1
  31. package/dist/hooks/useRoomDelegates.js +4 -8
  32. package/dist/hooks/useRoomDelegates.js.map +1 -1
  33. package/dist/hooks/useRoomMembers.js +4 -4
  34. package/dist/hooks/useRoomMembers.js.map +1 -1
  35. package/dist/index.d.ts +2 -4
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/presence/index.d.ts +3 -0
  40. package/dist/presence/index.d.ts.map +1 -0
  41. package/dist/presence/index.js +3 -0
  42. package/dist/presence/index.js.map +1 -0
  43. package/dist/sharing/index.d.ts +2 -0
  44. package/dist/sharing/index.d.ts.map +1 -0
  45. package/dist/sharing/index.js +2 -0
  46. package/dist/sharing/index.js.map +1 -0
  47. package/package.json +14 -2
@@ -0,0 +1,2 @@
1
+ export declare function logRecentsDebug(source: string, event: string, payload?: Record<string, unknown>): void;
2
+ //# sourceMappingURL=debugRecents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugRecents.d.ts","sourceRoot":"","sources":["../src/debugRecents.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAaN"}
@@ -0,0 +1,14 @@
1
+ const DEBUG_FLAG = "__MAY_DB_DEBUG_RECENTS__";
2
+ export function logRecentsDebug(source, event, payload) {
3
+ const root = globalThis;
4
+ if (root[DEBUG_FLAG] !== true) {
5
+ return;
6
+ }
7
+ const timestamp = new Date().toISOString();
8
+ if (payload) {
9
+ console.debug(`[may-db][recents][react][${timestamp}] ${source}:${event}`, payload);
10
+ return;
11
+ }
12
+ console.debug(`[may-db][recents][react][${timestamp}] ${source}:${event}`);
13
+ }
14
+ //# sourceMappingURL=debugRecents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugRecents.js","sourceRoot":"","sources":["../src/debugRecents.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,0BAAmC,CAAC;AAEvD,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,KAAa,EACb,OAAiC;IAEjC,MAAM,IAAI,GAAG,UACmC,CAAC;IACjD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,4BAA4B,SAAS,KAAK,MAAM,IAAI,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,4BAA4B,SAAS,KAAK,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useRoomDelegates, type RoomDelegateInfo } from "../hooks/useRoomDelegates";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delegates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useRoomDelegates } from "../hooks/useRoomDelegates";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delegates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,2BAA2B,CAAC"}
@@ -1,9 +1,14 @@
1
- import { MayDb } from "@may-db/core";
2
- type AuthStatus = "loading" | "unauthenticated" | "authenticated";
3
- export declare function useMayDb(namespace: string): {
4
- status: AuthStatus;
1
+ import { MayDb, type MayDbSchema } from "@may-db/core";
2
+ type UseMayDbStatus = "loading" | "signed_out" | "ready" | "error";
3
+ export declare function useMayDb(options: {
4
+ namespace: string;
5
+ schema: MayDbSchema;
6
+ }): {
7
+ status: UseMayDbStatus;
5
8
  db: MayDb | null;
6
- error: string | null;
9
+ userId: string | null;
10
+ error: Error | null;
11
+ login: () => void;
7
12
  logout: () => Promise<void>;
8
13
  };
9
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"useMayDb.d.ts","sourceRoot":"","sources":["../../src/hooks/useMayDb.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAA0B,MAAM,cAAc,CAAC;AAE7D,KAAK,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAElE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM;;;;;EAgCzC"}
1
+ {"version":3,"file":"useMayDb.d.ts","sourceRoot":"","sources":["../../src/hooks/useMayDb.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE7D,KAAK,cAAc,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnE,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE;;;;;;;EA+D3E"}
@@ -1,32 +1,59 @@
1
1
  import { useState, useEffect, useCallback } from "react";
2
- import { MayDb, completeLogin, getAuth } from "@may-db/core";
3
- export function useMayDb(namespace) {
2
+ import { Auth, MayDb } from "@may-db/core";
3
+ export function useMayDb(options) {
4
+ const { namespace, schema } = options;
4
5
  const [status, setStatus] = useState("loading");
5
6
  const [db, setDb] = useState(null);
6
7
  const [error, setError] = useState(null);
7
8
  useEffect(() => {
9
+ let cancelled = false;
10
+ let createdDb = null;
8
11
  async function init() {
9
12
  try {
10
- const auth = (await completeLogin()) ?? getAuth();
11
- if (!auth) {
12
- setStatus("unauthenticated");
13
+ const session = (await Auth.completeSsoLogin()) ?? Auth.getStoredSession();
14
+ if (cancelled)
15
+ return;
16
+ if (!session) {
17
+ setStatus("signed_out");
13
18
  return;
14
19
  }
15
- setDb(new MayDb(auth, namespace));
16
- setStatus("authenticated");
20
+ createdDb = new MayDb({ session, namespace, schema });
21
+ setDb(createdDb);
22
+ setStatus("ready");
23
+ setError(null);
17
24
  }
18
25
  catch (err) {
19
- setError(err instanceof Error ? err.message : "Initialization failed");
20
- setStatus("unauthenticated");
26
+ if (cancelled)
27
+ return;
28
+ setError(err instanceof Error ? err : new Error("Initialization failed"));
29
+ setStatus("error");
21
30
  }
22
31
  }
23
- init();
24
- }, [namespace]);
32
+ void init();
33
+ return () => {
34
+ cancelled = true;
35
+ if (createdDb) {
36
+ createdDb.disposeAll();
37
+ createdDb = null;
38
+ }
39
+ };
40
+ }, [namespace, schema]);
41
+ const login = useCallback(() => {
42
+ Auth.startSsoLogin();
43
+ }, []);
25
44
  const logout = useCallback(async () => {
26
45
  await db?.logout();
27
46
  setDb(null);
28
- setStatus("unauthenticated");
47
+ setStatus("signed_out");
48
+ setError(null);
29
49
  }, [db]);
30
- return { status, db, error, logout };
50
+ return {
51
+ status,
52
+ db,
53
+ userId: db?.userId ?? null,
54
+ error,
55
+ login,
56
+ logout,
57
+ };
31
58
  }
32
59
  //# sourceMappingURL=useMayDb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMayDb.js","sourceRoot":"","sources":["../../src/hooks/useMayDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAI7D,MAAM,UAAU,QAAQ,CAAC,SAAiB;IACxC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAa,SAAS,CAAC,CAAC;IAC5D,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACjD,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,IAAI,GAAG,CAAC,MAAM,aAAa,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,SAAS,CAAC,iBAAiB,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBAED,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAClC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC7B,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,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACpC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAET,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"useMayDb.js","sourceRoot":"","sources":["../../src/hooks/useMayDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAoB,MAAM,cAAc,CAAC;AAI7D,MAAM,UAAU,QAAQ,CAAC,OAAmD;IAC1E,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAiB,SAAS,CAAC,CAAC;IAChE,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,SAAS,GAAiB,IAAI,CAAC;QAEnC,KAAK,UAAU,IAAI;YACjB,IAAI,CAAC;gBACH,MAAM,OAAO,GACX,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC7D,IAAI,SAAS;oBAAE,OAAO;gBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,SAAS,CAAC,YAAY,CAAC,CAAC;oBACxB,OAAO;gBACT,CAAC;gBAED,SAAS,GAAG,IAAI,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;gBACtD,KAAK,CAAC,SAAS,CAAC,CAAC;gBACjB,SAAS,CAAC,OAAO,CAAC,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,SAAS;oBAAE,OAAO;gBACtB,QAAQ,CACN,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAChE,CAAC;gBACF,SAAS,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,KAAK,IAAI,EAAE,CAAC;QAEZ,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,UAAU,EAAE,CAAC;gBACvB,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAExB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACpC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,SAAS,CAAC,YAAY,CAAC,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAET,OAAO;QACL,MAAM;QACN,EAAE;QACF,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,IAAI;QAC1B,KAAK;QACL,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { MayDb, MayDbIndexHandle } from "@may-db/core";
2
+ export declare function useMayDbIndex(options: {
3
+ db: MayDb;
4
+ indexName: string;
5
+ indexRoomId?: string;
6
+ }): {
7
+ index: MayDbIndexHandle;
8
+ ready: boolean;
9
+ error: Error | null;
10
+ };
11
+ //# sourceMappingURL=useMayDbIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMayDbIndex.d.ts","sourceRoot":"","sources":["../../src/hooks/useMayDbIndex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE5D,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,EAAE,EAAE,KAAK,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG;IACF,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CA+CA"}
@@ -0,0 +1,38 @@
1
+ import { useEffect, useMemo, useState } from "react";
2
+ export function useMayDbIndex(options) {
3
+ const { db, indexName, indexRoomId } = options;
4
+ const index = useMemo(() => db.indexes.open({ indexName, indexRoomId }), [db, indexName, indexRoomId]);
5
+ const [readyIndex, setReadyIndex] = useState(null);
6
+ const [errorState, setErrorState] = useState(null);
7
+ useEffect(() => {
8
+ let cancelled = false;
9
+ const deactivate = index.activate();
10
+ void index
11
+ .ensureReady()
12
+ .then(() => {
13
+ if (!cancelled) {
14
+ setReadyIndex(index);
15
+ }
16
+ })
17
+ .catch((err) => {
18
+ if (!cancelled) {
19
+ setErrorState({
20
+ index,
21
+ error: err instanceof Error ? err : new Error(String(err)),
22
+ });
23
+ }
24
+ });
25
+ return () => {
26
+ cancelled = true;
27
+ deactivate();
28
+ };
29
+ }, [index]);
30
+ const ready = readyIndex === index;
31
+ const error = errorState?.index === index ? errorState.error : null;
32
+ return {
33
+ index,
34
+ ready,
35
+ error,
36
+ };
37
+ }
38
+ //# sourceMappingURL=useMayDbIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMayDbIndex.js","sourceRoot":"","sources":["../../src/hooks/useMayDbIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGrD,MAAM,UAAU,aAAa,CAAC,OAI7B;IAKC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EACjD,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAC7B,CAAC;IAEF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAA0B,IAAI,CAAC,CAAC;IAC5E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAGlC,IAAI,CAAC,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEpC,KAAK,KAAK;aACP,WAAW,EAAE;aACb,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,aAAa,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,aAAa,CAAC;oBACZ,KAAK;oBACL,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBAC3D,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,UAAU,EAAE,CAAC;QACf,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,KAAK,GAAG,UAAU,KAAK,KAAK,CAAC;IACnC,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpE,OAAO;QACL,KAAK;QACL,KAAK;QACL,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { MayDbIndexHandle, MayDbIndexItem, MayDbIndexOrderBy, MayDbIndexPrimitive } from "@may-db/core";
2
+ export declare function useMayDbQuery(options: {
3
+ index: MayDbIndexHandle;
4
+ where: Record<string, MayDbIndexPrimitive>;
5
+ orderBy: MayDbIndexOrderBy;
6
+ limit: number;
7
+ after: MayDbIndexItem | null;
8
+ }): {
9
+ items: MayDbIndexItem[];
10
+ hasMore: boolean;
11
+ loading: boolean;
12
+ error: Error | null;
13
+ };
14
+ //# sourceMappingURL=useMayDbQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMayDbQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useMayDbQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;CAC9B,GAAG;IACF,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CA+DA"}
@@ -0,0 +1,53 @@
1
+ import { useEffect, useMemo, useState } from "react";
2
+ export function useMayDbQuery(options) {
3
+ const { index, where, orderBy, limit, after } = options;
4
+ const [items, setItems] = useState([]);
5
+ const [hasMore, setHasMore] = useState(false);
6
+ const [loading, setLoading] = useState(true);
7
+ const [error, setError] = useState(null);
8
+ const queryKey = useMemo(() => JSON.stringify({ where, orderBy, limit, after }), [where, orderBy, limit, after]);
9
+ const parsedQuery = useMemo(() => JSON.parse(queryKey), [queryKey]);
10
+ useEffect(() => {
11
+ let cancelled = false;
12
+ const runQuery = async () => {
13
+ if (!cancelled) {
14
+ setLoading(true);
15
+ setError(null);
16
+ }
17
+ try {
18
+ const result = await index.queryPage({
19
+ where: parsedQuery.where,
20
+ orderBy: parsedQuery.orderBy,
21
+ limit: parsedQuery.limit,
22
+ after: parsedQuery.after,
23
+ });
24
+ if (!cancelled) {
25
+ setItems(result.items);
26
+ setHasMore(result.hasMore);
27
+ setLoading(false);
28
+ }
29
+ }
30
+ catch (err) {
31
+ if (!cancelled) {
32
+ setError(err instanceof Error ? err : new Error(String(err)));
33
+ setLoading(false);
34
+ }
35
+ }
36
+ };
37
+ void runQuery();
38
+ const unsubscribe = index.subscribe(() => {
39
+ void runQuery();
40
+ });
41
+ return () => {
42
+ cancelled = true;
43
+ unsubscribe();
44
+ };
45
+ }, [index, parsedQuery]);
46
+ return {
47
+ items,
48
+ hasMore,
49
+ loading,
50
+ error,
51
+ };
52
+ }
53
+ //# sourceMappingURL=useMayDbQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMayDbQuery.js","sourceRoot":"","sources":["../../src/hooks/useMayDbQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQrD,MAAM,UAAU,aAAa,CAAC,OAM7B;IAMC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,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,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EACtD,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAC/B,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CAKxB,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;oBACnC,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,KAAK,EAAE,WAAW,CAAC,KAAK;iBACzB,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC3B,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC9D,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,QAAQ,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;YACvC,KAAK,QAAQ,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAEzB,OAAO;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -3,11 +3,11 @@ import { type RemotePresence, type Room } from "@may-db/core";
3
3
  * Hook for managing presence via Matrix to-device messages.
4
4
  * Broadcasts local focus changes to room members and receives their presence updates.
5
5
  */
6
- export declare function usePresence({ room }: {
6
+ export declare function useRoomPresence({ room }: {
7
7
  room: Room;
8
8
  }): {
9
9
  remotePresences: RemotePresence[];
10
10
  setLocalFocus: (focus: string | null) => void;
11
11
  };
12
- export type UsePresenceOptions = Parameters<typeof usePresence>[0];
12
+ export type UseRoomPresenceOptions = Parameters<typeof useRoomPresence>[0];
13
13
  //# sourceMappingURL=usePresence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePresence.d.ts","sourceRoot":"","sources":["../../src/hooks/usePresence.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAItB;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE;;2BAsCxC,MAAM,GAAG,IAAI;EAkDxB;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"usePresence.d.ts","sourceRoot":"","sources":["../../src/hooks/usePresence.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAItB;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE;;2BAsC5C,MAAM,GAAG,IAAI;EAkDxB;AAED,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -5,8 +5,8 @@ const SYNC_POLL_INTERVAL_MS = 2500;
5
5
  * Hook for managing presence via Matrix to-device messages.
6
6
  * Broadcasts local focus changes to room members and receives their presence updates.
7
7
  */
8
- export function usePresence({ room }) {
9
- const roomId = room.roomId;
8
+ export function useRoomPresence({ room }) {
9
+ const roomId = room.id;
10
10
  const localUserId = room.userId;
11
11
  const localUserName = room.userDisplayName || localUserId;
12
12
  const localColor = useMemo(() => getUserColor(localUserId), [localUserId]);
@@ -27,7 +27,7 @@ export function usePresence({ room }) {
27
27
  },
28
28
  };
29
29
  try {
30
- await room.sendToDevice(PRESENCE_EVENT, presence);
30
+ await room.toDevice.send(PRESENCE_EVENT, presence);
31
31
  }
32
32
  catch (err) {
33
33
  console.error("Failed to send presence:", err);
@@ -43,7 +43,7 @@ export function usePresence({ room }) {
43
43
  let stopped = false;
44
44
  const poll = async () => {
45
45
  try {
46
- const { events, nextBatch } = await room.pollToDeviceEvents(syncTokenRef.current);
46
+ const { events, nextBatch } = await room.toDevice.poll(syncTokenRef.current);
47
47
  syncTokenRef.current = nextBatch;
48
48
  const updates = filterRelevantPresenceEvents(events, {
49
49
  roomId,
@@ -1 +1 @@
1
- {"version":3,"file":"usePresence.js","sourceRoot":"","sources":["../../src/hooks/usePresence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePresence.js","sourceRoot":"","sources":["../../src/hooks/usePresence.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
- import type { Room, RoomStatus, RoomMetadata } from "@may-db/core";
2
- export declare function useRoom(room: Room): {
3
- room: Room;
4
- status: RoomStatus;
5
- isConnected: boolean;
6
- canWrite: boolean;
7
- metadata: RoomMetadata | null;
1
+ import type { MayDb } from "@may-db/core";
2
+ export declare function useRoom(options: {
3
+ db: MayDb;
4
+ roomId: string;
5
+ autoConnect?: boolean;
6
+ }): {
7
+ room: import("@may-db/core").Room;
8
+ doc: import("yjs").Doc;
9
+ status: import("@may-db/core").RoomStatus;
10
+ ready: boolean;
11
+ canEdit: boolean;
12
+ name: string | null;
8
13
  error: Error | null;
14
+ reconnect: () => Promise<void>;
9
15
  };
10
16
  //# sourceMappingURL=useRoom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRoom.d.ts","sourceRoot":"","sources":["../../src/hooks/useRoom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEnE,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI;;;;;;;EAqCjC"}
1
+ {"version":3,"file":"useRoom.d.ts","sourceRoot":"","sources":["../../src/hooks/useRoom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,wBAAgB,OAAO,CAAC,OAAO,EAAE;IAC/B,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;;;;;;;;;EA+CA"}
@@ -1,37 +1,41 @@
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);
1
+ import { useState, useEffect, useMemo, useCallback, useSyncExternalStore } from "react";
2
+ export function useRoom(options) {
3
+ const { db, roomId, autoConnect = true } = options;
4
+ const room = useMemo(() => db.rooms.open(roomId), [db, roomId]);
5
+ const state = useSyncExternalStore(useCallback((onStoreChange) => room.subscribe(onStoreChange), [room]), useCallback(() => room.state, [room]), useCallback(() => room.state, [room]));
6
6
  const [error, setError] = useState(null);
7
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)
8
+ if (!autoConnect || room.isConnected)
18
9
  return;
19
- (async () => {
20
- try {
21
- await room.connect();
22
- }
23
- catch (err) {
10
+ let stopped = false;
11
+ void room.connect().catch((err) => {
12
+ if (!stopped) {
24
13
  setError(err instanceof Error ? err : new Error("Failed to connect"));
25
14
  }
26
- })();
15
+ });
16
+ return () => {
17
+ stopped = true;
18
+ };
19
+ }, [autoConnect, room]);
20
+ const reconnect = useCallback(async () => {
21
+ setError(null);
22
+ try {
23
+ room.disconnect();
24
+ await room.connect();
25
+ }
26
+ catch (err) {
27
+ setError(err instanceof Error ? err : new Error("Failed to connect"));
28
+ }
27
29
  }, [room]);
28
30
  return {
29
31
  room,
30
- status,
31
- isConnected: status === "connected",
32
- canWrite,
33
- metadata,
32
+ doc: room.doc,
33
+ status: state.status,
34
+ ready: state.status === "connected",
35
+ canEdit: state.canEdit,
36
+ name: state.name,
34
37
  error,
38
+ reconnect,
35
39
  };
36
40
  }
37
41
  //# sourceMappingURL=useRoom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRoom.js","sourceRoot":"","sources":["../../src/hooks/useRoom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5C,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
+ {"version":3,"file":"useRoom.js","sourceRoot":"","sources":["../../src/hooks/useRoom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAGxF,MAAM,UAAU,OAAO,CAAC,OAIvB;IACC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,oBAAoB,CAChC,WAAW,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EACrE,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,EACrC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CACtC,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,IAAI,CAAC,OAAO,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,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAExB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACvC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO;QACL,IAAI;QACJ,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,WAAW;QACnC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK;QACL,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import type { Room } from "@may-db/core";
2
2
  export interface RoomDelegateInfo {
3
3
  roomId: string;
4
- title: string;
4
+ name: string;
5
5
  }
6
6
  export declare function useRoomDelegates(room: Room): {
7
- roomDelegates: RoomDelegateInfo[];
7
+ delegates: RoomDelegateInfo[];
8
8
  loading: boolean;
9
9
  error: Error | null;
10
10
  refresh: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"useRoomDelegates.d.ts","sourceRoot":"","sources":["../../src/hooks/useRoomDelegates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI;;;;;EA+B1C"}
1
+ {"version":3,"file":"useRoomDelegates.d.ts","sourceRoot":"","sources":["../../src/hooks/useRoomDelegates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI;;;;;EAyB1C"}
@@ -1,18 +1,14 @@
1
1
  import { useState, useEffect, useCallback } from "react";
2
2
  export function useRoomDelegates(room) {
3
- const [roomDelegates, setRoomDelegates] = useState([]);
3
+ const [delegates, setDelegates] = useState([]);
4
4
  const [loading, setLoading] = useState(true);
5
5
  const [error, setError] = useState(null);
6
6
  const refresh = useCallback(async () => {
7
7
  setLoading(true);
8
8
  setError(null);
9
9
  try {
10
- const ids = await room.getDelegateRoomIds();
11
- const rooms = await Promise.all(ids.map(async (roomId) => ({
12
- roomId,
13
- title: await room.getRoomName(roomId),
14
- })));
15
- setRoomDelegates(rooms);
10
+ const rooms = await room.delegates.list();
11
+ setDelegates(rooms);
16
12
  }
17
13
  catch (err) {
18
14
  setError(err instanceof Error ? err : new Error("Failed to fetch room delegates"));
@@ -24,6 +20,6 @@ export function useRoomDelegates(room) {
24
20
  useEffect(() => {
25
21
  refresh();
26
22
  }, [refresh]);
27
- return { roomDelegates, loading, error, refresh };
23
+ return { delegates, loading, error, refresh };
28
24
  }
29
25
  //# sourceMappingURL=useRoomDelegates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRoomDelegates.js","sourceRoot":"","sources":["../../src/hooks/useRoomDelegates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAQzD,MAAM,UAAU,gBAAgB,CAAC,IAAU;IACzC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAqB,EAAE,CAAC,CAAC;IAC3E,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,kBAAkB,EAAE,CAAC;YAC5C,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,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CACN,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CACzE,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,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"useRoomDelegates.js","sourceRoot":"","sources":["../../src/hooks/useRoomDelegates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAQzD,MAAM,UAAU,gBAAgB,CAAC,IAAU;IACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAqB,EAAE,CAAC,CAAC;IACnE,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,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC1C,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CACN,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CACzE,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,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
@@ -7,7 +7,7 @@ export function useRoomMembers(room) {
7
7
  setLoading(true);
8
8
  setError(null);
9
9
  try {
10
- const memberList = await room.getMembers();
10
+ const memberList = await room.members.list();
11
11
  setMembers(memberList);
12
12
  }
13
13
  catch (err) {
@@ -21,15 +21,15 @@ export function useRoomMembers(room) {
21
21
  refresh();
22
22
  }, [refresh]);
23
23
  const invite = useCallback(async (userId, access) => {
24
- await room.invite(userId, access);
24
+ await room.members.invite(userId, access);
25
25
  await refresh();
26
26
  }, [room, refresh]);
27
27
  const setAccess = useCallback(async (userId, access) => {
28
- await room.setAccess(userId, access);
28
+ await room.members.setAccess(userId, access);
29
29
  await refresh();
30
30
  }, [room, refresh]);
31
31
  const kick = useCallback(async (userId) => {
32
- await room.kick(userId);
32
+ await room.members.remove(userId);
33
33
  await refresh();
34
34
  }, [room, refresh]);
35
35
  return { members, loading, error, refresh, invite, setAccess, kick };
@@ -1 +1 @@
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;AAGzD,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,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
+ {"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;AAGzD,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,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,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7C,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,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,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,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,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,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
1
  export { useMayDb } from "./hooks/useMayDb";
2
- export { useRoomDelegates, type RoomDelegateInfo } from "./hooks/useRoomDelegates";
3
- export { usePresence, type UsePresenceOptions } from "./hooks/usePresence";
2
+ export { useMayDbIndex } from "./hooks/useMayDbIndex";
3
+ export { useMayDbQuery } from "./hooks/useMayDbQuery";
4
4
  export { useRoom } from "./hooks/useRoom";
5
- export { useRoomMembers } from "./hooks/useRoomMembers";
6
- export { PRESENCE_EVENT, type PresenceContent, type RemotePresence, } from "@may-db/core";
7
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
  export { useMayDb } from "./hooks/useMayDb";
2
- export { useRoomDelegates } from "./hooks/useRoomDelegates";
3
- export { usePresence } from "./hooks/usePresence";
2
+ export { useMayDbIndex } from "./hooks/useMayDbIndex";
3
+ export { useMayDbQuery } from "./hooks/useMayDbQuery";
4
4
  export { useRoom } from "./hooks/useRoom";
5
- export { useRoomMembers } from "./hooks/useRoomMembers";
6
- export { PRESENCE_EVENT, } from "@may-db/core";
7
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAyB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,WAAW,EAA2B,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,cAAc,GAGf,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { useRoomPresence, type UseRoomPresenceOptions, } from "../hooks/usePresence";
2
+ export { type RemotePresence, type PresenceContent, PRESENCE_EVENT } from "@may-db/core";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presence/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { useRoomPresence, } from "../hooks/usePresence";
2
+ export { PRESENCE_EVENT } from "@may-db/core";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presence/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA6C,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useRoomMembers } from "../hooks/useRoomMembers";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useRoomMembers } from "../hooks/useRoomMembers";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@may-db/react",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -9,13 +9,25 @@
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js"
12
+ },
13
+ "./presence": {
14
+ "types": "./dist/presence/index.d.ts",
15
+ "import": "./dist/presence/index.js"
16
+ },
17
+ "./sharing": {
18
+ "types": "./dist/sharing/index.d.ts",
19
+ "import": "./dist/sharing/index.js"
20
+ },
21
+ "./delegates": {
22
+ "types": "./dist/delegates/index.d.ts",
23
+ "import": "./dist/delegates/index.js"
12
24
  }
13
25
  },
14
26
  "files": [
15
27
  "dist"
16
28
  ],
17
29
  "dependencies": {
18
- "@may-db/core": "0.1.0"
30
+ "@may-db/core": "0.1.2"
19
31
  },
20
32
  "peerDependencies": {
21
33
  "react": "^18.0.0 || ^19.0.0"