@peerbit/react 0.0.31 → 0.0.33

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 @@
1
+ export {};
@@ -0,0 +1,433 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { describe, it, beforeEach, afterEach, expect } from "vitest";
11
+ import { Peerbit } from "peerbit";
12
+ import { field, variant } from "@dao-xyz/borsh";
13
+ import { Documents } from "@peerbit/document";
14
+ import { Program } from "@peerbit/program";
15
+ import React, { useEffect } from "react";
16
+ import { render, act, waitFor } from "@testing-library/react";
17
+ import { useQuery } from "../useQuery.js";
18
+ import sodium from "libsodium-wrappers";
19
+ // Minimal Post model and Program with Documents for integration-like tests
20
+ let Post = class Post {
21
+ id;
22
+ message;
23
+ constructor(props) {
24
+ if (!props)
25
+ return; // borsh
26
+ this.id = props.id ?? `${Date.now()}-${Math.random()}`;
27
+ this.message = props.message ?? "";
28
+ }
29
+ };
30
+ __decorate([
31
+ field({ type: "string" }),
32
+ __metadata("design:type", String)
33
+ ], Post.prototype, "id", void 0);
34
+ __decorate([
35
+ field({ type: "string" }),
36
+ __metadata("design:type", String)
37
+ ], Post.prototype, "message", void 0);
38
+ Post = __decorate([
39
+ variant(0),
40
+ __metadata("design:paramtypes", [Object])
41
+ ], Post);
42
+ let PostIndexed = class PostIndexed {
43
+ id;
44
+ indexedMessage;
45
+ constructor(props) {
46
+ if (!props)
47
+ return; // borsh
48
+ this.id = props.id ?? `${Date.now()}-${Math.random()}`;
49
+ this.indexedMessage = props.message ?? "";
50
+ }
51
+ };
52
+ __decorate([
53
+ field({ type: "string" }),
54
+ __metadata("design:type", String)
55
+ ], PostIndexed.prototype, "id", void 0);
56
+ __decorate([
57
+ field({ type: "string" }),
58
+ __metadata("design:type", String)
59
+ ], PostIndexed.prototype, "indexedMessage", void 0);
60
+ PostIndexed = __decorate([
61
+ variant(0),
62
+ __metadata("design:paramtypes", [Post])
63
+ ], PostIndexed);
64
+ let PostsDB = class PostsDB extends Program {
65
+ posts;
66
+ constructor() {
67
+ super();
68
+ this.posts = new Documents();
69
+ }
70
+ async open(args) {
71
+ await this.posts.open({
72
+ type: Post,
73
+ index: { type: PostIndexed },
74
+ replicate: args?.replicate ? { factor: 1 } : false,
75
+ });
76
+ }
77
+ };
78
+ __decorate([
79
+ field({ type: Documents }),
80
+ __metadata("design:type", Documents)
81
+ ], PostsDB.prototype, "posts", void 0);
82
+ PostsDB = __decorate([
83
+ variant("posts-db"),
84
+ __metadata("design:paramtypes", [])
85
+ ], PostsDB);
86
+ describe("useQuery (integration with Documents)", () => {
87
+ let peerWriter;
88
+ let peerReader;
89
+ let peerReader2;
90
+ let dbWriter;
91
+ let dbReader;
92
+ let dbReader2;
93
+ let autoUnmount;
94
+ beforeEach(async () => {
95
+ await sodium.ready;
96
+ peerWriter = await Peerbit.create();
97
+ peerReader = await Peerbit.create();
98
+ peerReader2 = undefined;
99
+ dbReader2 = undefined;
100
+ });
101
+ const setupConnected = async () => {
102
+ await peerWriter.dial(peerReader);
103
+ dbWriter = await peerWriter.open(new PostsDB(), {
104
+ existing: "reuse",
105
+ args: { replicate: true },
106
+ });
107
+ dbReader = await peerReader.open(dbWriter.address, {
108
+ args: { replicate: false },
109
+ });
110
+ // ensure reader knows about writer as replicator for the log
111
+ await dbReader.posts.log.waitForReplicator(peerWriter.identity.publicKey);
112
+ };
113
+ const setupDisconnected = async () => {
114
+ dbWriter = await peerWriter.open(new PostsDB(), {
115
+ existing: "reuse",
116
+ args: { replicate: true },
117
+ });
118
+ dbReader = await peerReader.open(dbWriter.clone(), {
119
+ args: { replicate: false },
120
+ });
121
+ };
122
+ afterEach(async () => {
123
+ // Unmount React trees before tearing down peers
124
+ autoUnmount?.();
125
+ autoUnmount = undefined;
126
+ await peerWriter?.stop();
127
+ await peerReader?.stop();
128
+ await peerReader2?.stop();
129
+ });
130
+ function renderUseQuery(db, options) {
131
+ const result = {};
132
+ function HookCmp({ opts, }) {
133
+ const hook = useQuery(db.posts, opts);
134
+ useEffect(() => {
135
+ result.current = hook;
136
+ }, [hook]);
137
+ return null;
138
+ }
139
+ const api = render(React.createElement(HookCmp, { opts: options }));
140
+ const rerender = (opts) => api.rerender(React.createElement(HookCmp, { opts }));
141
+ let hasUnmounted = false;
142
+ const doUnmount = () => {
143
+ if (hasUnmounted)
144
+ return;
145
+ hasUnmounted = true;
146
+ api.unmount();
147
+ if (autoUnmount === doUnmount) {
148
+ // clear outer reference if we still own it
149
+ autoUnmount = undefined;
150
+ }
151
+ };
152
+ // Expose to outer afterEach so tests don't need to remember calling unmount
153
+ autoUnmount = doUnmount;
154
+ return { result, rerender, unmount: doUnmount };
155
+ }
156
+ it("local query", async () => {
157
+ await setupConnected();
158
+ await dbWriter.posts.put(new Post({ message: "hello" }));
159
+ const { result } = renderUseQuery(dbWriter, {
160
+ query: {},
161
+ resolve: true,
162
+ local: true,
163
+ prefetch: true,
164
+ });
165
+ await waitFor(() => expect(result.current?.items?.length ?? 0).toBe(1));
166
+ await act(async () => {
167
+ expect(result.current.items.length).toBe(1);
168
+ expect(result.current.items[0].message).toBe("hello");
169
+ });
170
+ });
171
+ it("does not mutate the options object passed in", async () => {
172
+ await setupConnected();
173
+ const cfg = {
174
+ query: {},
175
+ resolve: true,
176
+ local: true,
177
+ remote: { reach: { eager: true }, wait: { timeout: 10_000 } },
178
+ prefetch: false,
179
+ batchSize: 10,
180
+ };
181
+ const cfgOrg = { ...cfg };
182
+ renderUseQuery(dbReader, cfg);
183
+ // expect that cfg has not been modified
184
+ expect(cfg).to.deep.equal(cfgOrg);
185
+ });
186
+ it("respects remote warmup before iterating", async () => {
187
+ await setupConnected();
188
+ await dbWriter.posts.put(new Post({ message: "hello" }));
189
+ const cfg = {
190
+ query: {},
191
+ resolve: true,
192
+ local: true,
193
+ remote: { reach: { eager: true }, wait: { timeout: 10_000 } },
194
+ prefetch: false,
195
+ batchSize: 10,
196
+ };
197
+ const { result, rerender } = renderUseQuery(dbReader, cfg);
198
+ await waitFor(() => {
199
+ if (!result.current)
200
+ throw new Error("no result yet");
201
+ return true;
202
+ });
203
+ expect(result.current.items.length).toBe(0);
204
+ await act(async () => {
205
+ await result.current.loadMore();
206
+ });
207
+ expect(result.current.items.length).toBe(1);
208
+ expect(result.current.items[0].message).toBe("hello");
209
+ await act(async () => {
210
+ rerender(cfg);
211
+ });
212
+ await act(async () => {
213
+ await result.current.loadMore();
214
+ });
215
+ await waitFor(() => expect(result.current.items.length).toBe(1));
216
+ });
217
+ it("honors remote.wait.timeout by resolving after connection", async () => {
218
+ // create isolated peers not connected yet
219
+ await setupDisconnected();
220
+ const { result } = renderUseQuery(dbReader, {
221
+ query: {},
222
+ resolve: true,
223
+ local: false,
224
+ remote: {
225
+ reach: { eager: true },
226
+ wait: { behavior: "block", timeout: 5_000 },
227
+ },
228
+ prefetch: true,
229
+ });
230
+ await waitFor(() => expect(result.current).toBeDefined());
231
+ // Now connect and write
232
+ await act(async () => {
233
+ await dbReader.node.dial(dbWriter.node.getMultiaddrs());
234
+ await dbWriter.posts.put(new Post({ message: "late" }));
235
+ await dbReader.posts.log.waitForReplicator(dbWriter.node.identity.publicKey);
236
+ });
237
+ await waitFor(() => expect(result.current.items.length).toBe(1));
238
+ expect(result.current.items[0].message).toBe("late");
239
+ });
240
+ it("pushes remote writes from replicator to non-replicator", async () => {
241
+ await setupConnected();
242
+ const { result } = renderUseQuery(dbReader, {
243
+ query: {},
244
+ resolve: true,
245
+ local: false,
246
+ remote: { reach: { eager: true } },
247
+ updates: { merge: true },
248
+ prefetch: false,
249
+ });
250
+ await waitFor(() => {
251
+ expect(result.current).toBeDefined();
252
+ });
253
+ expect(result.current.items.length).toBe(0);
254
+ await act(async () => {
255
+ await dbWriter.posts.put(new Post({ message: "replicator-push" }));
256
+ });
257
+ await act(async () => {
258
+ await result.current.loadMore();
259
+ });
260
+ await waitFor(() => expect(result.current.items.map((p) => p.message)).toContain("replicator-push"), { timeout: 10_000 });
261
+ });
262
+ it("fanouts pushed updates to multiple observers", async () => {
263
+ await setupConnected();
264
+ peerReader2 = await Peerbit.create();
265
+ await peerReader2.dial(peerWriter);
266
+ dbReader2 = await peerReader2.open(dbWriter.address, {
267
+ args: { replicate: false },
268
+ });
269
+ await dbReader2.posts.log.waitForReplicator(peerWriter.identity.publicKey);
270
+ const hookOne = renderUseQuery(dbReader, {
271
+ query: {},
272
+ resolve: true,
273
+ local: false,
274
+ remote: { reach: { eager: true } },
275
+ updates: { merge: true },
276
+ prefetch: false,
277
+ });
278
+ const hookTwo = renderUseQuery(dbReader2, {
279
+ query: {},
280
+ resolve: true,
281
+ local: false,
282
+ remote: { reach: { eager: true } },
283
+ updates: { merge: true },
284
+ prefetch: false,
285
+ });
286
+ await waitFor(() => {
287
+ expect(hookOne.result.current).toBeDefined();
288
+ expect(hookTwo.result.current).toBeDefined();
289
+ });
290
+ await act(async () => {
291
+ await dbWriter.posts.put(new Post({ message: "broadcast" }));
292
+ });
293
+ await act(async () => {
294
+ await hookOne.result.current.loadMore();
295
+ await hookTwo.result.current.loadMore();
296
+ });
297
+ await waitFor(() => expect(hookOne.result.current.items.some((p) => p.message === "broadcast")).toBe(true), { timeout: 10_000 });
298
+ await waitFor(() => expect(hookTwo.result.current.items.some((p) => p.message === "broadcast")).toBe(true), { timeout: 10_000 });
299
+ await act(async () => {
300
+ await dbReader.posts.put(new Post({ message: "observer-origin" }));
301
+ });
302
+ await act(async () => {
303
+ await hookOne.result.current.loadMore();
304
+ await hookTwo.result.current.loadMore();
305
+ });
306
+ await waitFor(() => expect(hookTwo.result.current.items.some((p) => p.message === "observer-origin")).toBe(true), { timeout: 10_000 });
307
+ hookOne.unmount();
308
+ hookTwo.unmount();
309
+ });
310
+ describe("merge", () => {
311
+ const checkAsResolvedResults = async (out, resolved) => {
312
+ const { result } = out;
313
+ await waitFor(() => expect(result.current).toBeDefined());
314
+ // Initially empty
315
+ expect(result.current.items.length).toBe(0);
316
+ // Create a post on writer and expect reader hook to merge it automatically
317
+ const id = `${Date.now()}-merge`;
318
+ await act(async () => {
319
+ // the reader actually does the put (a user)
320
+ await dbReader.posts.put(new Post({ id, message: "first" }));
321
+ });
322
+ await waitFor(() => expect(result.current.items.length).toBe(1), {
323
+ timeout: 1e4,
324
+ });
325
+ if (resolved) {
326
+ expect(result.current.items[0].message).toBe("first");
327
+ expect(result.current.items[0]).to.be.instanceOf(Post);
328
+ }
329
+ else {
330
+ expect(result.current.items[0].indexedMessage).toBe("first");
331
+ expect(result.current.items[0]).to.be.instanceOf(PostIndexed);
332
+ }
333
+ };
334
+ it("updates.merge merges new writes into state without manual iteration, as resolved", async () => {
335
+ await setupConnected();
336
+ // resolved undefined means we should resolve
337
+ await checkAsResolvedResults(renderUseQuery(dbReader, {
338
+ query: {},
339
+ local: false,
340
+ remote: { reach: { eager: true } },
341
+ prefetch: false,
342
+ updates: { merge: true },
343
+ }), true);
344
+ // resolved true means we should resolve
345
+ await checkAsResolvedResults(renderUseQuery(dbReader, {
346
+ query: {},
347
+ local: false,
348
+ resolve: true,
349
+ remote: { reach: { eager: true } },
350
+ prefetch: false,
351
+ updates: { merge: true },
352
+ }), true);
353
+ // resolved false means we should NOT resolve
354
+ await checkAsResolvedResults(renderUseQuery(dbReader, {
355
+ query: {},
356
+ local: false,
357
+ resolve: false,
358
+ remote: { reach: { eager: true } },
359
+ prefetch: false,
360
+ updates: { merge: true },
361
+ }), false);
362
+ });
363
+ });
364
+ /*
365
+ it("updates.merge reflects document mutation in hook state", async () => {
366
+ await setupConnected();
367
+
368
+ const id = `${Date.now()}-mut`;
369
+ await dbWriter.posts.put(new Post({ id, message: "v1" }));
370
+
371
+ const { result } = renderUseQuery(dbReader, {
372
+ query: {},
373
+ resolve: true,
374
+ local: false,
375
+ remote: { reach: { eager: true } },
376
+ prefetch: true,
377
+ updates: { merge: true },
378
+ });
379
+
380
+ await waitFor(() => expect(result.current.items.length).toBe(1), {
381
+ timeout: 1e4,
382
+ });
383
+ expect(result.current.items[0].message).toBe("v1");
384
+
385
+ // Mutate by putting a new version with the same id
386
+ await act(async () => {
387
+ // the reader actually does the put (a user)
388
+ await dbReader.posts.put(new Post({ id, message: "v2" }));
389
+ });
390
+
391
+ // Expect the hook state to reflect the updated content
392
+ await waitFor(
393
+ () => {
394
+ const found = result.current.items.find((p) => p.id === id);
395
+ expect(found?.message).toBe("v2");
396
+ },
397
+ { timeout: 1e4 }
398
+ );
399
+ });
400
+ */
401
+ it("clears results when props change (e.g. reverse toggled)", async () => {
402
+ await setupConnected();
403
+ await dbWriter.posts.put(new Post({ message: "one" }));
404
+ await dbWriter.posts.put(new Post({ message: "two" }));
405
+ const { result, rerender } = renderUseQuery(dbReader, {
406
+ query: {},
407
+ resolve: true,
408
+ local: true,
409
+ remote: false,
410
+ prefetch: true,
411
+ reverse: false,
412
+ });
413
+ await waitFor(() => expect(result.current.items.length).toBeGreaterThan(0));
414
+ // Toggle a prop that triggers iterator rebuild
415
+ await act(async () => {
416
+ rerender({
417
+ query: {},
418
+ resolve: true,
419
+ local: true,
420
+ remote: false,
421
+ prefetch: false,
422
+ reverse: true,
423
+ });
424
+ });
425
+ // After reset we expect cleared results until re-fetched
426
+ await waitFor(() => expect(result.current.items.length).toBe(0));
427
+ await act(async () => {
428
+ await result.current.loadMore();
429
+ });
430
+ await waitFor(() => expect(result.current.items.length).toBeGreaterThan(0));
431
+ });
432
+ });
433
+ //# sourceMappingURL=useQuery.dom.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQuery.dom.test.js","sourceRoot":"","sources":["../../../src/__tests__/useQuery.dom.test.ts"],"names":[],"mappings":"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"}
@@ -52,7 +52,7 @@ export type NetworkOption = {
52
52
  type NodeOptions = {
53
53
  type?: "node";
54
54
  network: "local" | "remote" | NetworkOption;
55
- waitForConnnected?: boolean;
55
+ waitForConnnected?: boolean | "in-flight";
56
56
  keypair?: Ed25519Keypair;
57
57
  host?: boolean;
58
58
  singleton?: boolean;
@@ -9,8 +9,8 @@ import sodium from "libsodium-wrappers";
9
9
  import { useMount } from "./useMount.js";
10
10
  import { createClient, createHost } from "@peerbit/proxy-window";
11
11
  import { webSockets } from "@libp2p/websockets";
12
- import * as filters from "@libp2p/websockets/filters";
13
12
  import { detectIncognito } from "detectincognitojs";
13
+ import { waitFor } from "@testing-library/dom";
14
14
  const isInStandaloneMode = () => window.matchMedia("(display-mode: standalone)").matches ||
15
15
  window.navigator["standalone"] ||
16
16
  document.referrer.includes("android-app://");
@@ -183,21 +183,24 @@ export const PeerProvider = (options) => {
183
183
  denyDialMultiaddr: () => false,
184
184
  },
185
185
  transports: [
186
- webSockets({ filter: filters.all }) /* ,
187
- circuitRelayTransport(), */,
186
+ webSockets({}) /* ,
187
+ circuitRelayTransport(), */,
188
188
  ],
189
189
  }
190
190
  : {
191
+ connectionGater: {
192
+ denyDialMultiaddr: () => false, // TODO do right here, dont allow local dials except bootstrap
193
+ },
191
194
  transports: [
192
195
  webSockets() /* ,
193
- circuitRelayTransport(), */,
196
+ circuitRelayTransport(), */,
194
197
  ],
195
198
  }) /*
196
- services: {
197
- pubsub: (c) =>
198
- new DirectSub(c, { canRelayMessage: true }),
199
- identify: identify(),
200
- }, */,
199
+ services: {
200
+ pubsub: (c) =>
201
+ new DirectSub(c, { canRelayMessage: true }),
202
+ identify: identify(),
203
+ }, */,
201
204
  },
202
205
  directory,
203
206
  });
@@ -242,7 +245,7 @@ export const PeerProvider = (options) => {
242
245
  }
243
246
  // 3) Remote default: use bootstrap service (no explicit bootstrap provided)
244
247
  else {
245
- await newPeer["bootstrap"]?.();
248
+ await newPeer.bootstrap?.();
246
249
  }
247
250
  setConnectionState("connected");
248
251
  }
@@ -277,9 +280,30 @@ export const PeerProvider = (options) => {
277
280
  }
278
281
  catch { }
279
282
  });
280
- if (nodeOptions.waitForConnnected !== false) {
283
+ if (nodeOptions.waitForConnnected === true) {
281
284
  await promise;
282
285
  }
286
+ else if (nodeOptions.waitForConnnected === "in-flight") {
287
+ // wait for dialQueue to not be empty or connections to contains the peerId
288
+ // or done
289
+ let isDone = false;
290
+ promise.finally(() => {
291
+ isDone = true;
292
+ });
293
+ await waitFor(() => {
294
+ if (isDone) {
295
+ return true;
296
+ }
297
+ const libp2p = newPeer;
298
+ if (libp2p.getDialQueue().length > 0) {
299
+ return true;
300
+ }
301
+ if (libp2p.getConnections().length > 0) {
302
+ return true;
303
+ }
304
+ return false;
305
+ });
306
+ }
283
307
  }
284
308
  else {
285
309
  // When in proxy mode (iframe), use the provided targetOrigin.
@@ -1 +1 @@
1
- {"version":3,"file":"usePeer.js","sourceRoot":"","sources":["../../src/usePeer.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAO,UAAU,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EACH,cAAc,EACd,WAAW,EACX,QAAQ,EACR,0BAA0B,GAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAC5B,MAAM,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,OAAO;IACvD,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAEjD,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACtC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACpC,CAAC;CACJ;AAkCD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACf,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAe,EAAS,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAqCrD,MAAM,iBAAiB,GAAG,CAAC,EAAa,EAAE,EAAE;IACxC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAoB,EAAE,EAAE;IACjD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAClC,SAAS,CACZ,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CACxC,SAAS,CACZ,CAAC;IACF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IACjE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GACvC,KAAK,CAAC,QAAQ,CAAmB,cAAc,CAAC,CAAC;IAErD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAoB,SAAS,CAAC,CAAC,CAAC,kBAAkB;IAE1F,mEAAmE;IACnE,mFAAmF;IACnF,MAAM,WAAW,GACb,OACH,CAAC,GAAG;QACD,CAAC,CAAC,QAAQ,EAAE;YACR,CAAC,CAAE,OAA+B,CAAC,MAAM;YACzC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAI,OAA+B,CAAC,GAAG,EAAE,CAAC,mHAAmH;QACjL,CAAC,CAAE,OAAsB,CAAC;IAE9B,yDAAyD;IACzD,MAAM,oBAAoB,GACtB,WAAW,CAAC,IAAI,KAAK,OAAO;QACxB,CAAC,CAAE,WAA6B,CAAC,YAAY;QAC7C,CAAC,CAAC,SAAS,CAAC;IAEpB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAe,GAAG,EAAE;QAC1C,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO;gBACH,IAAI,EAAE,OAAO;gBACb,IAAI;gBACJ,OAAO;gBACP,OAAO;gBACP,MAAM,EAAE,eAAe;gBACvB,SAAS;gBACT,YAAY,EAAE,oBAA8B;gBAC5C,KAAK;aACR,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO;gBACH,IAAI,EAAE,MAAM;gBACZ,IAAI;gBACJ,OAAO;gBACP,OAAO;gBACP,MAAM,EAAE,eAAe;gBACvB,SAAS;gBACT,QAAQ;gBACR,KAAK;aACR,CAAC;QACN,CAAC;IACL,CAAC,EAAE;QACC,OAAO;QACP,OAAO;QACP,eAAe;QACf,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,oBAAoB;QACpB,KAAK;KACR,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACV,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,KAAK,IAAI,EAAE;YAClB,MAAM,MAAM,CAAC,KAAK,CAAC;YACnB,IAAI,OAAsB,CAAC;YAC3B,2DAA2D;YAC3D,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,0EAA0E;YAC1E,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,IAAI,EAA0B,CAAC;YAE/D,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC/B,MAAM,gBAAgB,GAAG,0BAA0B,EAAE,CAAC;gBAEtD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;gBACzC,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC;oBACxB,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,GAAG;iBACf,CAAC,CAAC;gBACH,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;oBACxB,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;oBACrC,IAAI,CAAC;wBACD,MAAM,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC;wBACvC,iBAAiB,CAAC;4BACd,kCAAkC;4BAClC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;4BAC7B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC3B,CAAC,CAAC,CAAC;wBACH,gFAAgF;wBAChF,MAAM,YAAY,GAAG,GAAG,EAAE;4BACtB,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;gCACxC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;gCAC7B,sCAAsC;gCACtC,IAAI,CAAC;oCACD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gCAC3B,CAAC;gCAAC,MAAM,CAAC,CAAA,CAAC;4BACd,CAAC;wBACL,CAAC,CAAC;wBACF,QAAQ,CAAC,gBAAgB,CACrB,kBAAkB,EAClB,YAAY,CACf,CAAC;wBACF,IAAI,kBAAkB,EAAE,EAAE,CAAC;4BACvB,yCAAyC;4BACzC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;4BAC7B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC3B,CAAC;wBACD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE;4BAClD,mBAAmB,EAAE,IAAI;yBAC5B,CAAC,CAAC;oBACP,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;wBACxD,MAAM,IAAI,eAAe,CACrB,8BAA8B,CACjC,CAAC;oBACN,CAAC;gBACL,CAAC;gBAED,IAAI,MAAsB,CAAC;gBAC3B,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACtB,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACJ,MAAM,EAAE,GAAG,MAAM,cAAc,CAC3B,EAAE,EACF,KAAK,EACL,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAC1B;wBACI,gBAAgB;wBAChB,mBAAmB,EAAE,IAAI;qBAC5B,CACJ,CAAC;oBACF,iBAAiB,CAAC;wBACd,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;wBAC7B,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC,CAAC,CAAC;oBACH,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC;oBAChB,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAEjC,IAAI,SAAS,GAAuB,SAAS,CAAC;gBAC9C,IACI,CAAE,WAA0B,CAAC,QAAQ;oBACrC,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,SAAS,EACtC,CAAC;oBACC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpD,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,iBAAiB,GAAG,SAAS,CAAC;oBAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;wBACb,YAAY,CAAC,KAAK,CAAC,CAAC;wBACpB,OAAO,CAAC,KAAK,CACT,gEAAgE,CACnE,CAAC;oBACN,CAAC;yBAAM,CAAC;wBACJ,SAAS,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC;oBAC/C,CAAC;gBACL,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;oBAC3B,MAAM,EAAE;wBACJ,SAAS,EAAE;4BACP,MAAM,EAAE;4BACJ,oBAAoB;6BACvB;yBACJ;wBACD,oBAAoB,EAAE,CAAC,KAAK,EAAE,CAAC;wBAC/B,MAAM;wBACN,iBAAiB,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE;wBAC1C,iBAAiB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;wBACrC,GAAG,CAAC,WAAW,CAAC,OAAO,KAAK,OAAO;4BAC/B,CAAC,CAAC;gCACI,eAAe,EAAE;oCACb,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;iCACjC;gCACD,UAAU,EAAE;oCACR,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;6DACX;iCAC5B;6BACJ;4BACH,CAAC,CAAC;gCACI,UAAU,EAAE;oCACR,UAAU,EAAE,CAAC;6DACY;iCAC5B;6BACJ,CAAC,CAAC;;;;;uBAKJ;qBACR;oBACD,SAAS;iBACZ,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;oBAC1B,SAAS;oBACT,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE;oBAChD,OAAO,EACH,WAAW,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;iBAC3D,CAAC,CAAC;gBAEF,MAAc,CAAC,UAAU,GAAG;oBACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE;oBAChD,SAAS,EAAE,iBAAiB;iBAC/B,CAAC;gBACF,MAAM,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,YAAY,EAAE;oBAC1B,MAAM,EAAG,MAAc,CAAC,UAAU;iBACrC,CAAC,CACL,CAAC;gBAEF,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBAEjC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;oBACzB,IAAI,CAAC;wBACD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;wBAEpC,kDAAkD;wBAClD,IACI,OAAO,OAAO,KAAK,QAAQ;4BAC1B,OAAe,EAAE,SAAS,KAAK,SAAS,EAC3C,CAAC;4BACC,MAAM,IAAI,GAAI,OAAe,CAAC,SAG3B,CAAC;4BACJ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCACpB,wEAAwE;gCACxE,OAAO,CAAC,GAAG,CACP,2CAA2C,CAC9C,CAAC;4BACN,CAAC;iCAAM,CAAC;gCACJ,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;oCACtB,MAAM,OAAO,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC;gCACpC,CAAC;4BACL,CAAC;wBACL,CAAC;wBACD,iDAAiD;6BAC5C,IACD,OAAO,KAAK,OAAO;4BACnB,CAAC,OAAO,OAAO,KAAK,QAAQ;gCACvB,OAAe,EAAE,IAAI,KAAK,OAAO,CAAC,EACzC,CAAC;4BACC,MAAM,YAAY,GACd,iCAAiC;gCACjC,CAAC,MAAM,CACH,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAC/C,CAAC,IAAI,EAAE,CAAC,CAAC;4BACd,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;4BACnD,MAAM,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACrC,CAAC;wBACD,4EAA4E;6BACvE,CAAC;4BACF,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;wBACnC,CAAC;wBACD,kBAAkB,CAAC,WAAW,CAAC,CAAC;oBACpC,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,CACT,qCAAqC,GAAG,GAAG,EAAE,OAAO,CACvD,CAAC;wBACF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBACjC,CAAC;oBAED,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;wBACnB,OAAO,GAAG,MAAM,UAAU,CAAC,OAAkB,CAAC,CAAC;oBACnD,CAAC;gBACL,CAAC,CAAC;gBAEF,MAAM,WAAW,GAAG,IAAI,eAAe,CACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,CACzB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACd,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAA2B,EAAE,CAAC;gBACzC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;oBAC/B,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC1C,CAAC,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;oBAClC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAC7B,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACd,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;oBAC9B,IAAI,CAAC;wBACD,IAAI,WAAW,EAAE,CAAC;4BACd,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,EAAS,CAAC;4BACpC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;4BAC/C,MAAM,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,WAAW,EAAE;gCACzB,MAAM,EAAE,OAAO;6BAClB,CAAC,CACL,CAAC;wBACN,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,IAAI,WAAW,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;oBAC1C,MAAM,OAAO,CAAC;gBAClB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,8DAA8D;gBAC9D,OAAO,GAAG,MAAM,YAAY,CACvB,WAA6B,CAAC,YAAY,CAC9C,CAAC;gBACF,IAAI,CAAC;oBACA,MAAc,CAAC,UAAU,GAAG;wBACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE;wBAChD,SAAS,EAAE,KAAK;qBACnB,CAAC;oBACF,MAAM,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,YAAY,EAAE;wBAC1B,MAAM,EAAG,MAAc,CAAC,UAAU;qBACrC,CAAC,CACL,CAAC;gBACN,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACd,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,CAAC;YACjB,UAAU,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC;gBACD,MAAM,EAAE,EAAE,CAAC;YACf,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChB,UAAU,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACL,CAAC,CAAC;QACF,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,YAC5B,OAAO,CAAC,QAAQ,GACE,CAC1B,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"usePeer.js","sourceRoot":"","sources":["../../src/usePeer.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { Documents, DocumentsChange, WithContext } from "@peerbit/document";
1
+ import { AbstractSearchRequest, AbstractSearchResult, Documents, RemoteQueryOptions, WithContext } from "@peerbit/document";
2
2
  import * as indexerTypes from "@peerbit/indexer-interface";
3
3
  import { WithIndexedContext } from "@peerbit/document";
4
+ import { UpdateOptions } from "@peerbit/document";
4
5
  type QueryOptions = {
5
6
  query: QueryLike;
6
7
  id?: string;
@@ -15,29 +16,17 @@ export type QueryLike = {
15
16
  * All the non-DB-specific options supported by the original single-DB hook.
16
17
  * They stay fully backward-compatible.
17
18
  */
18
- export type UseQuerySharedOptions<T, I, R extends boolean | undefined, RT> = {
19
+ export type UseQuerySharedOptions<T, I, R extends boolean | undefined, RT = R extends false ? WithContext<I> : WithIndexedContext<T, I>> = {
19
20
  resolve?: R;
20
21
  transform?: (r: RT) => Promise<RT>;
21
22
  debounce?: number;
22
- debug?: boolean | {
23
- id: string;
24
- };
23
+ debug?: boolean | string;
25
24
  reverse?: boolean;
26
25
  batchSize?: number;
27
26
  prefetch?: boolean;
28
- ignoreUpdates?: boolean;
29
- onChange?: {
30
- merge?: boolean | ((c: DocumentsChange<T, I>) => DocumentsChange<T, I> | Promise<DocumentsChange<T, I>> | undefined);
31
- update?: (prev: RT[], change: DocumentsChange<T, I>) => RT[] | Promise<RT[]>;
32
- };
27
+ updates?: UpdateOptions<T, I, R>;
33
28
  local?: boolean;
34
- remote?: boolean | {
35
- warmup?: number;
36
- joining?: {
37
- waitFor?: number;
38
- };
39
- eager?: boolean;
40
- };
29
+ remote?: boolean | RemoteQueryOptions<AbstractSearchRequest, AbstractSearchResult, any>;
41
30
  } & QueryOptions;
42
31
  /**
43
32
  * `useQuery` – unified hook that accepts **either**