@rpcbase/client 0.416.0 → 0.418.0

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/dist/rts/index.js CHANGED
@@ -1,14 +1,14 @@
1
- import { f as computeRtsQueryKey, g as useRtsSsrRuntime, p as peekHydratedRtsCount, a as consumeHydratedRtsCount, r as registerCount } from "../useQuery-NQNva6kg.js";
2
- import { R, S, i, c, j, k, l, m, n, o, q, s, t, h, v, w, b, d, e, x, y, z, A, B, C, D, E, F, u } from "../useQuery-NQNva6kg.js";
1
+ import { s as serializeRtsQueryValue, f as computeRtsQueryKey, g as useRtsSsrRuntime, p as peekHydratedRtsCount, a as consumeHydratedRtsCount, r as registerCount } from "../useQuery-CPx0Im8Z.js";
2
+ import { R, S, i, c, j, k, l, m, n, o, q, t, v, h, w, x, b, d, e, y, z, A, B, C, D, E, F, G, u } from "../useQuery-CPx0Im8Z.js";
3
3
  import { c as c2 } from "react/compiler-runtime";
4
- import { useId, useState, useRef, useEffect } from "react";
4
+ import { useState, useRef, useEffect } from "react";
5
5
  const normalizeCount = (value) => {
6
6
  if (typeof value !== "number") return void 0;
7
7
  if (!Number.isFinite(value) || value < 0) return void 0;
8
8
  return Math.floor(value);
9
9
  };
10
10
  const useCountQuery = (modelName, t0, t1) => {
11
- const $ = c2(53);
11
+ const $ = c2(54);
12
12
  const query = t0 === void 0 ? {} : t0;
13
13
  let t2;
14
14
  if ($[0] !== t1) {
@@ -22,17 +22,16 @@ const useCountQuery = (modelName, t0, t1) => {
22
22
  if (typeof modelName !== "string" || modelName.trim().length === 0) {
23
23
  throw new Error("useCountQuery: modelName must be a non-empty string");
24
24
  }
25
- const id = useId();
26
25
  const enabled = options.enabled ?? true;
27
26
  const ssrEnabled = options.ssr !== false;
28
27
  const refreshOnMount = options.refreshOnMount === true;
29
- const key = options.key ?? id;
30
- const queryJson = JSON.stringify(query);
28
+ const key = options.key;
29
+ const queryJson = serializeRtsQueryValue(query);
31
30
  let t3;
32
31
  if ($[2] !== key) {
33
- t3 = {
32
+ t3 = key ? {
34
33
  key
35
- };
34
+ } : {};
36
35
  $[2] = key;
37
36
  $[3] = t3;
38
37
  } else {
@@ -146,7 +145,7 @@ const useCountQuery = (modelName, t0, t1) => {
146
145
  }
147
146
  useEffect(t8, t9);
148
147
  let t10;
149
- if ($[33] !== enabled || $[34] !== hasSeedCount || $[35] !== modelName || $[36] !== query || $[37] !== refreshOnMount || $[38] !== runtimeOptions) {
148
+ if ($[33] !== enabled || $[34] !== hasSeedCount || $[35] !== modelName || $[36] !== query || $[37] !== refreshOnMount || $[38] !== runtimeOptions || $[39] !== seedCount) {
150
149
  t10 = () => {
151
150
  if (!enabled) {
152
151
  return;
@@ -169,7 +168,17 @@ const useCountQuery = (modelName, t0, t1) => {
169
168
  setCount(nextCount);
170
169
  setSource(context.source);
171
170
  }, {
172
- runInitialNetworkQuery: refreshOnMount || !hasSeedCount
171
+ runInitialNetworkQuery: refreshOnMount || !hasSeedCount,
172
+ forceRefreshOnMount: refreshOnMount,
173
+ ...hasSeedCount ? {
174
+ seedSnapshot: {
175
+ error: null,
176
+ count: seedCount,
177
+ context: {
178
+ source: "cache"
179
+ }
180
+ }
181
+ } : {}
173
182
  });
174
183
  return () => {
175
184
  unsubscribe?.();
@@ -181,40 +190,41 @@ const useCountQuery = (modelName, t0, t1) => {
181
190
  $[36] = query;
182
191
  $[37] = refreshOnMount;
183
192
  $[38] = runtimeOptions;
184
- $[39] = t10;
193
+ $[39] = seedCount;
194
+ $[40] = t10;
185
195
  } else {
186
- t10 = $[39];
196
+ t10 = $[40];
187
197
  }
188
198
  let t11;
189
- if ($[40] !== enabled || $[41] !== hasSeedCount || $[42] !== modelName || $[43] !== queryJson || $[44] !== queryKey || $[45] !== refreshOnMount || $[46] !== runtimeOptions) {
199
+ if ($[41] !== enabled || $[42] !== hasSeedCount || $[43] !== modelName || $[44] !== queryJson || $[45] !== queryKey || $[46] !== refreshOnMount || $[47] !== runtimeOptions) {
190
200
  t11 = [enabled, modelName, queryJson, queryKey, runtimeOptions, hasSeedCount, refreshOnMount];
191
- $[40] = enabled;
192
- $[41] = hasSeedCount;
193
- $[42] = modelName;
194
- $[43] = queryJson;
195
- $[44] = queryKey;
196
- $[45] = refreshOnMount;
197
- $[46] = runtimeOptions;
198
- $[47] = t11;
201
+ $[41] = enabled;
202
+ $[42] = hasSeedCount;
203
+ $[43] = modelName;
204
+ $[44] = queryJson;
205
+ $[45] = queryKey;
206
+ $[46] = refreshOnMount;
207
+ $[47] = runtimeOptions;
208
+ $[48] = t11;
199
209
  } else {
200
- t11 = $[47];
210
+ t11 = $[48];
201
211
  }
202
212
  useEffect(t10, t11);
203
213
  let t12;
204
- if ($[48] !== count || $[49] !== error || $[50] !== loading || $[51] !== source) {
214
+ if ($[49] !== count || $[50] !== error || $[51] !== loading || $[52] !== source) {
205
215
  t12 = {
206
216
  count,
207
217
  source,
208
218
  error,
209
219
  loading
210
220
  };
211
- $[48] = count;
212
- $[49] = error;
213
- $[50] = loading;
214
- $[51] = source;
215
- $[52] = t12;
221
+ $[49] = count;
222
+ $[50] = error;
223
+ $[51] = loading;
224
+ $[52] = source;
225
+ $[53] = t12;
216
226
  } else {
217
- t12 = $[52];
227
+ t12 = $[53];
218
228
  }
219
229
  return t12;
220
230
  };
@@ -231,25 +241,25 @@ export {
231
241
  n as destroyCollection,
232
242
  o as disconnect,
233
243
  q as getCollection,
234
- s as getConnectionError,
235
- t as getConnectionStatus,
244
+ t as getConnectionError,
245
+ v as getConnectionStatus,
236
246
  h as hydrateRtsFromWindow,
237
- v as onConnectionStatusChange,
238
- w as onMessage,
247
+ w as onConnectionStatusChange,
248
+ x as onMessage,
239
249
  peekHydratedRtsCount,
240
250
  b as peekHydratedRtsQueryData,
241
251
  d as peekHydratedRtsQueryPageInfo,
242
252
  e as peekHydratedRtsQueryTotalCount,
243
- x as reconnect,
253
+ y as reconnect,
244
254
  registerCount,
245
- y as registerQuery,
246
- z as resetRtsPouchStore,
247
- A as runNetworkCount,
248
- B as runNetworkQuery,
249
- C as runQuery,
250
- D as sendMessage,
251
- E as syncRtsChanges,
252
- F as updateDocs,
255
+ z as registerQuery,
256
+ A as resetRtsPouchStore,
257
+ B as runNetworkCount,
258
+ C as runNetworkQuery,
259
+ D as runQuery,
260
+ E as sendMessage,
261
+ F as syncRtsChanges,
262
+ G as updateDocs,
253
263
  useCountQuery,
254
264
  u as useQuery
255
265
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/rts/useCountQuery.ts"],"sourcesContent":["import { useEffect, useId, useMemo, useRef, useState } from \"react\"\n\nimport type { RtsModelName } from \"./modelTypes\"\nimport { computeRtsQueryKey } from \"./queryKey\"\nimport { consumeHydratedRtsCount, peekHydratedRtsCount, useRtsSsrRuntime } from \"./ssrHydration\"\nimport { registerCount, type RtsCountContext, type RtsCountQueryOptions } from \"./wsClient\"\n\n\ntype JsonObject = Record<string, unknown>\n\nconst normalizeCount = (value: unknown): number | undefined => {\n if (typeof value !== \"number\") return undefined\n if (!Number.isFinite(value) || value < 0) return undefined\n return Math.floor(value)\n}\n\nexport type UseRtsCountQueryOptions = {\n key?: string\n enabled?: boolean\n ssr?: \"auto\" | boolean\n refreshOnMount?: boolean\n}\n\nexport type UseRtsCountQueryResult = {\n count: number | undefined\n source: \"cache\" | RtsCountContext[\"source\"] | undefined\n error: unknown | undefined\n loading: boolean\n}\n\nexport const useCountQuery = (\n modelName: RtsModelName,\n query: JsonObject = {},\n options: UseRtsCountQueryOptions = {},\n): UseRtsCountQueryResult => {\n if (typeof modelName !== \"string\" || modelName.trim().length === 0) {\n throw new Error(\"useCountQuery: modelName must be a non-empty string\")\n }\n\n const id = useId()\n\n const enabled = options.enabled ?? true\n const ssrEnabled = options.ssr !== false\n const refreshOnMount = options.refreshOnMount === true\n const key = options.key ?? id\n const queryJson = JSON.stringify(query)\n const runtimeOptions = useMemo<RtsCountQueryOptions>(() => ({ key }), [key])\n const queryKey = computeRtsQueryKey(query, runtimeOptions)\n\n const ssrRuntime = useRtsSsrRuntime()\n if (enabled && ssrEnabled && ssrRuntime) {\n ssrRuntime.registerCount({\n modelName,\n query,\n options: runtimeOptions,\n queryKey,\n })\n }\n\n const seedCountRaw = useMemo(\n () => (\n enabled && ssrEnabled\n ? ssrRuntime\n ? ssrRuntime.getCount(modelName, queryKey)\n : peekHydratedRtsCount(modelName, queryKey)\n : undefined\n ),\n [enabled, ssrEnabled, ssrRuntime, modelName, queryKey],\n )\n\n const seedCount = normalizeCount(seedCountRaw)\n const seedCountStr = seedCount !== undefined ? String(seedCount) : \"\"\n const hasSeedCount = seedCount !== undefined\n\n const [count, setCount] = useState<number | undefined>(() => seedCount)\n const [source, setSource] = useState<\"cache\" | RtsCountContext[\"source\"] | undefined>(() => (hasSeedCount ? \"cache\" : undefined))\n const [error, setError] = useState<unknown | undefined>(undefined)\n const [loading, setLoading] = useState<boolean>(enabled && !hasSeedCount)\n\n const lastCountRef = useRef<number | undefined>(seedCount)\n\n useEffect(() => {\n if (!ssrRuntime && enabled && ssrEnabled && hasSeedCount) {\n consumeHydratedRtsCount(modelName, queryKey)\n }\n\n lastCountRef.current = seedCount\n setError(undefined)\n\n if (!enabled) {\n setCount(undefined)\n setSource(undefined)\n setLoading(false)\n return\n }\n\n if (hasSeedCount) {\n setCount(seedCount)\n setSource(\"cache\")\n setLoading(false)\n return\n }\n\n setCount(undefined)\n setSource(undefined)\n setLoading(true)\n }, [enabled, ssrEnabled, ssrRuntime, modelName, queryKey, hasSeedCount, seedCount, seedCountStr])\n\n useEffect(() => {\n if (!enabled) return\n\n const unsubscribe = registerCount(\n modelName,\n query,\n runtimeOptions,\n (err, nextCount, context) => {\n setLoading(false)\n\n if (err) {\n setError(err)\n return\n }\n\n if (nextCount === undefined) return\n setError(undefined)\n if (lastCountRef.current === nextCount) {\n setSource(context.source)\n return\n }\n\n lastCountRef.current = nextCount\n setCount(nextCount)\n setSource(context.source)\n },\n {\n runInitialNetworkQuery: refreshOnMount || !hasSeedCount,\n },\n )\n\n return () => {\n unsubscribe?.()\n }\n }, [\n enabled,\n modelName,\n queryJson,\n queryKey,\n runtimeOptions,\n hasSeedCount,\n refreshOnMount,\n ])\n\n return useMemo(\n () => ({\n count,\n source,\n error,\n loading,\n }),\n [count, error, loading, source],\n )\n}\n"],"names":["normalizeCount","value","undefined","Number","isFinite","Math","floor","useCountQuery","modelName","t0","t1","$","_c","query","t2","options","trim","length","Error","id","useId","enabled","ssrEnabled","ssr","refreshOnMount","key","queryJson","JSON","stringify","t3","runtimeOptions","queryKey","computeRtsQueryKey","ssrRuntime","useRtsSsrRuntime","registerCount","t4","getCount","peekHydratedRtsCount","seedCountRaw","t5","seedCount","seedCountStr","String","hasSeedCount","t6","count","setCount","useState","t7","source","setSource","error","setError","loading","setLoading","lastCountRef","useRef","t8","consumeHydratedRtsCount","current","t9","useEffect","t10","unsubscribe","err","nextCount","context","runInitialNetworkQuery","t11","t12"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/rts/useCountQuery.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\"\n\nimport type { RtsModelName } from \"./modelTypes\"\nimport { computeRtsQueryKey, serializeRtsQueryValue } from \"./queryKey\"\nimport { consumeHydratedRtsCount, peekHydratedRtsCount, useRtsSsrRuntime } from \"./ssrHydration\"\nimport { registerCount, type RtsCountContext, type RtsCountQueryOptions } from \"./wsClient\"\n\n\ntype JsonObject = Record<string, unknown>\n\nconst normalizeCount = (value: unknown): number | undefined => {\n if (typeof value !== \"number\") return undefined\n if (!Number.isFinite(value) || value < 0) return undefined\n return Math.floor(value)\n}\n\nexport type UseRtsCountQueryOptions = {\n key?: string\n enabled?: boolean\n ssr?: \"auto\" | boolean\n refreshOnMount?: boolean\n}\n\nexport type UseRtsCountQueryResult = {\n count: number | undefined\n source: \"cache\" | RtsCountContext[\"source\"] | undefined\n error: unknown | undefined\n loading: boolean\n}\n\nexport const useCountQuery = (\n modelName: RtsModelName,\n query: JsonObject = {},\n options: UseRtsCountQueryOptions = {},\n): UseRtsCountQueryResult => {\n if (typeof modelName !== \"string\" || modelName.trim().length === 0) {\n throw new Error(\"useCountQuery: modelName must be a non-empty string\")\n }\n\n const enabled = options.enabled ?? true\n const ssrEnabled = options.ssr !== false\n const refreshOnMount = options.refreshOnMount === true\n const key = options.key\n const queryJson = serializeRtsQueryValue(query)\n const runtimeOptions = useMemo<RtsCountQueryOptions>(() => (key ? { key } : {}), [key])\n const queryKey = computeRtsQueryKey(query, runtimeOptions)\n\n const ssrRuntime = useRtsSsrRuntime()\n if (enabled && ssrEnabled && ssrRuntime) {\n ssrRuntime.registerCount({\n modelName,\n query,\n options: runtimeOptions,\n queryKey,\n })\n }\n\n const seedCountRaw = useMemo(\n () => (\n enabled && ssrEnabled\n ? ssrRuntime\n ? ssrRuntime.getCount(modelName, queryKey)\n : peekHydratedRtsCount(modelName, queryKey)\n : undefined\n ),\n [enabled, ssrEnabled, ssrRuntime, modelName, queryKey],\n )\n\n const seedCount = normalizeCount(seedCountRaw)\n const seedCountStr = seedCount !== undefined ? String(seedCount) : \"\"\n const hasSeedCount = seedCount !== undefined\n\n const [count, setCount] = useState<number | undefined>(() => seedCount)\n const [source, setSource] = useState<\"cache\" | RtsCountContext[\"source\"] | undefined>(() => (hasSeedCount ? \"cache\" : undefined))\n const [error, setError] = useState<unknown | undefined>(undefined)\n const [loading, setLoading] = useState<boolean>(enabled && !hasSeedCount)\n\n const lastCountRef = useRef<number | undefined>(seedCount)\n\n useEffect(() => {\n if (!ssrRuntime && enabled && ssrEnabled && hasSeedCount) {\n consumeHydratedRtsCount(modelName, queryKey)\n }\n\n lastCountRef.current = seedCount\n setError(undefined)\n\n if (!enabled) {\n setCount(undefined)\n setSource(undefined)\n setLoading(false)\n return\n }\n\n if (hasSeedCount) {\n setCount(seedCount)\n setSource(\"cache\")\n setLoading(false)\n return\n }\n\n setCount(undefined)\n setSource(undefined)\n setLoading(true)\n }, [enabled, ssrEnabled, ssrRuntime, modelName, queryKey, hasSeedCount, seedCount, seedCountStr])\n\n useEffect(() => {\n if (!enabled) return\n\n const unsubscribe = registerCount(\n modelName,\n query,\n runtimeOptions,\n (err, nextCount, context) => {\n setLoading(false)\n\n if (err) {\n setError(err)\n return\n }\n\n if (nextCount === undefined) return\n setError(undefined)\n if (lastCountRef.current === nextCount) {\n setSource(context.source)\n return\n }\n\n lastCountRef.current = nextCount\n setCount(nextCount)\n setSource(context.source)\n },\n {\n runInitialNetworkQuery: refreshOnMount || !hasSeedCount,\n forceRefreshOnMount: refreshOnMount,\n ...(hasSeedCount\n ? {\n seedSnapshot: {\n error: null,\n count: seedCount,\n context: { source: \"cache\" },\n },\n }\n : {}),\n },\n )\n\n return () => {\n unsubscribe?.()\n }\n }, [\n enabled,\n modelName,\n queryJson,\n queryKey,\n runtimeOptions,\n hasSeedCount,\n refreshOnMount,\n ])\n\n return useMemo(\n () => ({\n count,\n source,\n error,\n loading,\n }),\n [count, error, loading, source],\n )\n}\n"],"names":["normalizeCount","value","undefined","Number","isFinite","Math","floor","useCountQuery","modelName","t0","t1","$","_c","query","t2","options","trim","length","Error","enabled","ssrEnabled","ssr","refreshOnMount","key","queryJson","serializeRtsQueryValue","t3","runtimeOptions","queryKey","computeRtsQueryKey","ssrRuntime","useRtsSsrRuntime","registerCount","t4","getCount","peekHydratedRtsCount","seedCountRaw","t5","seedCount","seedCountStr","String","hasSeedCount","t6","count","setCount","useState","t7","source","setSource","error","setError","loading","setLoading","lastCountRef","useRef","t8","consumeHydratedRtsCount","current","t9","useEffect","t10","unsubscribe","err","nextCount","context","runInitialNetworkQuery","forceRefreshOnMount","seedSnapshot","t11","t12"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  type JsonObject = Record<string, unknown>;
2
+ export declare const serializeRtsQueryValue: (value: unknown) => string;
2
3
  export type RtsQueryKeyOptions = {
3
4
  key?: string;
4
5
  projection?: Record<string, 0 | 1>;
@@ -1 +1 @@
1
- {"version":3,"file":"queryKey.d.ts","sourceRoot":"","sources":["../../src/rts/queryKey.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,UAAU,EAAE,SAAS,kBAAkB,KAAG,MAQnF,CAAA"}
1
+ {"version":3,"file":"queryKey.d.ts","sourceRoot":"","sources":["../../src/rts/queryKey.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAQzC,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,MAWvD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,UAAU,EAAE,SAAS,kBAAkB,KAAG,MAQnF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCountQuery.d.ts","sourceRoot":"","sources":["../../src/rts/useCountQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD,OAAO,EAAiB,KAAK,eAAe,EAA6B,MAAM,YAAY,CAAA;AAG3F,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAQzC,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,MAAM,EAAE,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IACvD,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,aAAa,GACxB,WAAW,YAAY,EACvB,QAAO,UAAe,EACtB,UAAS,uBAA4B,KACpC,sBA+HF,CAAA"}
1
+ {"version":3,"file":"useCountQuery.d.ts","sourceRoot":"","sources":["../../src/rts/useCountQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD,OAAO,EAAiB,KAAK,eAAe,EAA6B,MAAM,YAAY,CAAA;AAG3F,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAQzC,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,MAAM,EAAE,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IACvD,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,aAAa,GACxB,WAAW,YAAY,EACvB,QAAO,UAAe,EACtB,UAAS,uBAA4B,KACpC,sBAuIF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../src/rts/useQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAIhD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAIlE,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAkFzC,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IACjD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IAC7C,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACjC,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACrC,eAAe,EAAE,MAAM,IAAI,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClF,WAAW,YAAY,EACvB,QAAO,UAAe,EACtB,UAAS,kBAAuB,KAC/B,iBAAiB,CAAC,CAAC,CAudrB,CAAA"}
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../src/rts/useQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAIhD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAIlE,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAkFzC,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IACjD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IAC7C,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACjC,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACrC,eAAe,EAAE,MAAM,IAAI,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClF,WAAW,YAAY,EACvB,QAAO,UAAe,EACtB,UAAS,kBAAuB,KAC/B,iBAAiB,CAAC,CAAC,CAmerB,CAAA"}
@@ -22,6 +22,8 @@ export type RtsNetworkQueryContext = {
22
22
  };
23
23
  export type RtsCacheQueryContext = {
24
24
  source: "cache";
25
+ pageInfo?: PaginationPageInfo;
26
+ totalCount?: number;
25
27
  };
26
28
  export type RtsQueryContext = RtsNetworkQueryContext | RtsCacheQueryContext;
27
29
  export type RtsNetworkCountContext = {
@@ -29,7 +31,10 @@ export type RtsNetworkCountContext = {
29
31
  isLocal: boolean;
30
32
  txnId?: string;
31
33
  };
32
- export type RtsCountContext = RtsNetworkCountContext;
34
+ export type RtsCacheCountContext = {
35
+ source: "cache";
36
+ };
37
+ export type RtsCountContext = RtsNetworkCountContext | RtsCacheCountContext;
33
38
  export type RtsQueryOptions = {
34
39
  key?: string;
35
40
  projection?: Record<string, 0 | 1>;
@@ -56,6 +61,16 @@ export type RtsConnectOptions = {
56
61
  export type RtsConnectionStatus = "idle" | "connecting" | "connected" | "error";
57
62
  type QueryCallback = (error: unknown | null, data: unknown, context: RtsQueryContext) => void;
58
63
  type CountCallback = (error: unknown | null, count: number | undefined, context: RtsCountContext) => void;
64
+ type QuerySnapshot = {
65
+ error: unknown | null;
66
+ data: unknown;
67
+ context: RtsQueryContext;
68
+ };
69
+ type CountSnapshot = {
70
+ error: unknown | null;
71
+ count: number | undefined;
72
+ context: RtsCountContext;
73
+ };
59
74
  export declare const addLocalTxn: (txnId: string) => void;
60
75
  export declare const syncRtsChanges: (tenantId: string, uid: string, options?: Pick<RtsConnectOptions, "appName" | "url">) => Promise<void>;
61
76
  export declare const connect: (tenantId: string, uid: string, options?: RtsConnectOptions) => Promise<void>;
@@ -67,9 +82,13 @@ export declare const onConnectionStatusChange: (callback: (status: RtsConnection
67
82
  export declare const registerQuery: (modelName: RtsModelName, query: JsonObject, optionsOrCallback?: RtsQueryOptions | QueryCallback, callbackMaybe?: QueryCallback, behavior?: {
68
83
  runInitialNetworkQuery?: boolean;
69
84
  runInitialLocalQuery?: boolean;
85
+ forceRefreshOnMount?: boolean;
86
+ seedSnapshot?: QuerySnapshot;
70
87
  }) => (() => void) | undefined;
71
88
  export declare const registerCount: (modelName: RtsModelName, query: JsonObject, optionsOrCallback?: RtsCountQueryOptions | CountCallback, callbackMaybe?: CountCallback, behavior?: {
72
89
  runInitialNetworkQuery?: boolean;
90
+ forceRefreshOnMount?: boolean;
91
+ seedSnapshot?: CountSnapshot;
73
92
  }) => (() => void) | undefined;
74
93
  export declare const runNetworkQuery: ({ modelName, query, options, timeoutMs, }: {
75
94
  modelName: RtsModelName;
@@ -1 +1 @@
1
- {"version":3,"file":"wsClient.d.ts","sourceRoot":"","sources":["../../src/rts/wsClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wsClient.d.ts","sourceRoot":"","sources":["../../src/rts/wsClient.ts"],"names":[],"mappings":"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"}