@may-db/react 0.1.1 → 0.1.3

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.
@@ -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"}
@@ -1,7 +1,8 @@
1
- import { MayDb } from "@may-db/core";
1
+ import { MayDb, type MayDbSchema } from "@may-db/core";
2
2
  type UseMayDbStatus = "loading" | "signed_out" | "ready" | "error";
3
3
  export declare function useMayDb(options: {
4
4
  namespace: string;
5
+ schema: MayDbSchema;
5
6
  }): {
6
7
  status: UseMayDbStatus;
7
8
  db: MayDb | null;
@@ -1 +1 @@
1
- {"version":3,"file":"useMayDb.d.ts","sourceRoot":"","sources":["../../src/hooks/useMayDb.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,EAAE,MAAM,cAAc,CAAC;AAE3C,KAAK,cAAc,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnE,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE;;;;;;;EAiDtD"}
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,29 +1,43 @@
1
1
  import { useState, useEffect, useCallback } from "react";
2
2
  import { Auth, MayDb } from "@may-db/core";
3
3
  export function useMayDb(options) {
4
- const { namespace } = options;
4
+ const { namespace, schema } = options;
5
5
  const [status, setStatus] = useState("loading");
6
6
  const [db, setDb] = useState(null);
7
7
  const [error, setError] = useState(null);
8
8
  useEffect(() => {
9
+ let cancelled = false;
10
+ let createdDb = null;
9
11
  async function init() {
10
12
  try {
11
13
  const session = (await Auth.completeSsoLogin()) ?? Auth.getStoredSession();
14
+ if (cancelled)
15
+ return;
12
16
  if (!session) {
13
17
  setStatus("signed_out");
14
18
  return;
15
19
  }
16
- setDb(new MayDb({ session, namespace }));
20
+ createdDb = new MayDb({ session, namespace, schema });
21
+ setDb(createdDb);
17
22
  setStatus("ready");
18
23
  setError(null);
19
24
  }
20
25
  catch (err) {
26
+ if (cancelled)
27
+ return;
21
28
  setError(err instanceof Error ? err : new Error("Initialization failed"));
22
29
  setStatus("error");
23
30
  }
24
31
  }
25
32
  void init();
26
- }, [namespace]);
33
+ return () => {
34
+ cancelled = true;
35
+ if (createdDb) {
36
+ createdDb.disposeAll();
37
+ createdDb = null;
38
+ }
39
+ };
40
+ }, [namespace, schema]);
27
41
  const login = useCallback(() => {
28
42
  Auth.startSsoLogin();
29
43
  }, []);
@@ -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,IAAI,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,UAAU,QAAQ,CAAC,OAA8B;IACrD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,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,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,CAAC,OAAO,EAAE,CAAC;oBACb,SAAS,CAAC,YAAY,CAAC,CAAC;oBACxB,OAAO;gBACT,CAAC;gBAED,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBACzC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,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;IACd,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,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"}
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"}
@@ -8,9 +8,9 @@ export function useRoom(options) {
8
8
  if (!autoConnect || room.isConnected)
9
9
  return;
10
10
  let stopped = false;
11
- void room.connect().catch((err) => {
11
+ void room.ensureReady().catch((err) => {
12
12
  if (!stopped) {
13
- setError(err instanceof Error ? err : new Error("Failed to connect"));
13
+ setError(err instanceof Error ? err : new Error("Failed to ready room"));
14
14
  }
15
15
  });
16
16
  return () => {
@@ -21,10 +21,10 @@ export function useRoom(options) {
21
21
  setError(null);
22
22
  try {
23
23
  room.disconnect();
24
- await room.connect();
24
+ await room.ensureReady();
25
25
  }
26
26
  catch (err) {
27
- setError(err instanceof Error ? err : new Error("Failed to connect"));
27
+ setError(err instanceof Error ? err : new Error("Failed to ready room"));
28
28
  }
29
29
  }, [room]);
30
30
  return {
@@ -1 +1 @@
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
+ {"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,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC3E,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,WAAW,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC3E,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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export { useMayDb } from "./hooks/useMayDb";
2
+ export { useMayDbIndex } from "./hooks/useMayDbIndex";
3
+ export { useMayDbQuery } from "./hooks/useMayDbQuery";
2
4
  export { useRoom } from "./hooks/useRoom";
3
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,OAAO,EAAE,MAAM,iBAAiB,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,3 +1,5 @@
1
1
  export { useMayDb } from "./hooks/useMayDb";
2
+ export { useMayDbIndex } from "./hooks/useMayDbIndex";
3
+ export { useMayDbQuery } from "./hooks/useMayDbQuery";
2
4
  export { useRoom } from "./hooks/useRoom";
3
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,OAAO,EAAE,MAAM,iBAAiB,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@may-db/react",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -27,7 +27,7 @@
27
27
  "dist"
28
28
  ],
29
29
  "dependencies": {
30
- "@may-db/core": "0.1.1"
30
+ "@may-db/core": "0.1.3"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "react": "^18.0.0 || ^19.0.0"