@peerbit/document 3.1.11 → 4.0.1

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.
@@ -57,8 +57,12 @@ type QueryDetailedOptions<T> = QueryOptions<T> & {
57
57
  };
58
58
  export type CanSearch = (request: SearchRequest | CollectNextRequest, from: PublicSignKey) => Promise<boolean> | boolean;
59
59
  export type CanRead<T> = (result: T, from: PublicSignKey) => Promise<boolean> | boolean;
60
+ export type IndexedDB<T> = {
61
+ index: DocumentIndex<T>;
62
+ };
60
63
  export type OpenOptions<T> = {
61
64
  type: AbstractType<T>;
65
+ dbType: AbstractType<IndexedDB<T>>;
62
66
  log: SharedLog<Operation<T>>;
63
67
  canRead?: CanRead<T>;
64
68
  canSearch?: CanSearch;
@@ -69,6 +73,7 @@ export type OpenOptions<T> = {
69
73
  export declare class DocumentIndex<T> extends Program<OpenOptions<T>> {
70
74
  _query: RPC<AbstractSearchRequest, AbstractSearchResult<T>>;
71
75
  type: AbstractType<T>;
76
+ dbType: AbstractType<IndexedDB<T>>;
72
77
  private _indexBy;
73
78
  private _indexByArr;
74
79
  indexByResolver: (obj: any) => string | Uint8Array;
@@ -94,7 +99,7 @@ export declare class DocumentIndex<T> extends Program<OpenOptions<T>> {
94
99
  head: string;
95
100
  };
96
101
  }): Promise<T>;
97
- _queryDocuments(filter: (doc: IndexedValue<T>) => boolean): Promise<{
102
+ _queryDocuments(filter: (doc: IndexedValue<T>) => Promise<boolean>): Promise<{
98
103
  context: Context;
99
104
  value: T;
100
105
  }[]>;
@@ -108,6 +113,7 @@ export declare class DocumentIndex<T> extends Program<OpenOptions<T>> {
108
113
  kept: number;
109
114
  }>;
110
115
  processCloseIteratorRequest(query: CloseIteratorRequest, publicKey: PublicSignKey): Promise<void>;
116
+ private handleFieldQuery;
111
117
  private handleQueryObject;
112
118
  private handleStringMatch;
113
119
  /**
@@ -108,12 +108,6 @@ DeleteOperation = __decorate([
108
108
  __metadata("design:paramtypes", [Object])
109
109
  ], DeleteOperation);
110
110
  export { DeleteOperation };
111
- const extractFieldValue = (doc, path) => {
112
- for (let i = 0; i < path.length; i++) {
113
- doc = doc[path[i]];
114
- }
115
- return doc;
116
- };
117
111
  const sortCompare = (av, bv) => {
118
112
  if (typeof av === "string" && typeof bv === "string") {
119
113
  return av.localeCompare(bv);
@@ -126,6 +120,12 @@ const sortCompare = (av, bv) => {
126
120
  }
127
121
  return 0;
128
122
  };
123
+ const extractFieldValue = (doc, path) => {
124
+ for (let i = 0; i < path.length; i++) {
125
+ doc = doc[path[i]];
126
+ }
127
+ return doc;
128
+ };
129
129
  const extractSortCompare = (a, b, sorts) => {
130
130
  for (const sort of sorts) {
131
131
  const av = extractFieldValue(a, sort.key);
@@ -190,6 +190,7 @@ const DEFAULT_REPLICATOR_MIN_AGE = 10 * 1000; // how long, until we consider a p
190
190
  let DocumentIndex = class DocumentIndex extends Program {
191
191
  _query;
192
192
  type;
193
+ dbType;
193
194
  // Index key
194
195
  _indexBy;
195
196
  _indexByArr;
@@ -219,6 +220,7 @@ let DocumentIndex = class DocumentIndex extends Program {
219
220
  this._index = new Map();
220
221
  this._log = properties.log;
221
222
  this.type = properties.type;
223
+ this.dbType = properties.dbType;
222
224
  this._sync = properties.sync;
223
225
  this._toIndex = properties.fields;
224
226
  this._indexBy = properties.indexBy || DEFAULT_INDEX_BY;
@@ -306,7 +308,7 @@ let DocumentIndex = class DocumentIndex extends Program {
306
308
  // Whether we return the full operation data or just the db value
307
309
  const results = [];
308
310
  for (const value of this._index.values()) {
309
- if (filter(value)) {
311
+ if (await filter(value)) {
310
312
  results.push({
311
313
  context: value.context,
312
314
  value: await this.getDocument(value)
@@ -318,6 +320,7 @@ let DocumentIndex = class DocumentIndex extends Program {
318
320
  async processFetchRequest(query, from, options) {
319
321
  // We do special case for querying the id as we can do it faster than iterating
320
322
  if (query instanceof SearchRequest) {
323
+ // Special case querying ids
321
324
  if (query.query.length === 1 &&
322
325
  (query.query[0] instanceof ByteMatchQuery ||
323
326
  query.query[0] instanceof StringMatch) &&
@@ -354,9 +357,10 @@ let DocumentIndex = class DocumentIndex extends Program {
354
357
  : { results: [], kept: 0 };
355
358
  }
356
359
  }
357
- let results = await this._queryDocuments((doc) => {
360
+ // Handle query normally
361
+ let results = await this._queryDocuments(async (doc) => {
358
362
  for (const f of query.query) {
359
- if (!this.handleQueryObject(f, doc)) {
363
+ if (!(await this.handleQueryObject(f, doc))) {
360
364
  return false;
361
365
  }
362
366
  }
@@ -402,56 +406,79 @@ let DocumentIndex = class DocumentIndex extends Program {
402
406
  logger.warn("Received a close iterator request for a iterator that does not belong to the requesting peer");
403
407
  }
404
408
  }
405
- handleQueryObject(f, doc) {
406
- if (f instanceof StateFieldQuery) {
407
- const fv = extractFieldValue(doc.value, f.key);
408
- if (f instanceof StringMatch) {
409
- let compare = f.value;
410
- if (f.caseInsensitive) {
411
- compare = compare.toLowerCase();
412
- }
413
- if (Array.isArray(fv)) {
414
- for (const string of fv) {
415
- if (this.handleStringMatch(f, compare, string)) {
416
- return true;
417
- }
418
- }
419
- return false;
409
+ async handleFieldQuery(f, obj, startIndex) {
410
+ // this clause is needed if we have a field that is of type [][] (we will recursively go through each subarray)
411
+ if (Array.isArray(obj)) {
412
+ for (const element of obj) {
413
+ if (await this.handleFieldQuery(f, element, startIndex)) {
414
+ return true;
420
415
  }
421
- else {
422
- if (this.handleStringMatch(f, compare, fv)) {
416
+ }
417
+ return false;
418
+ }
419
+ // Resolve the field from the key path. If we reach an array or nested Document store,
420
+ // then do a recursive call or a search to look into them
421
+ for (let i = startIndex; i < f.key.length; i++) {
422
+ obj = obj[f.key[i]];
423
+ if (Array.isArray(obj)) {
424
+ for (const element of obj) {
425
+ if (await this.handleFieldQuery(f, element, i + 1)) {
423
426
  return true;
424
427
  }
425
- return false;
426
428
  }
429
+ return false;
427
430
  }
428
- else if (f instanceof ByteMatchQuery) {
429
- if (fv instanceof Uint8Array === false) {
430
- if (stringArraysEquals(f.key, this._indexByArr)) {
431
- return f.valueString === fv;
432
- }
433
- return false;
434
- }
435
- return equals(fv, f.value);
431
+ if (obj instanceof this.dbType) {
432
+ const queryCloned = f.clone();
433
+ queryCloned.key.splice(0, i + 1); // remove key path until the document store
434
+ const results = await obj.index.search(new SearchRequest({ query: [queryCloned] }));
435
+ return results.length > 0 ? true : false; // TODO return INNER HITS?
436
436
  }
437
- else if (f instanceof IntegerCompare) {
438
- const value = fv;
439
- if (typeof value !== "bigint" && typeof value !== "number") {
440
- return false;
441
- }
442
- return compare(value, f.compare, f.value.value);
437
+ }
438
+ // When we reach here, the field value (obj) is comparable
439
+ if (f instanceof StringMatch) {
440
+ let compare = f.value;
441
+ if (f.caseInsensitive) {
442
+ compare = compare.toLowerCase();
443
443
  }
444
- else if (f instanceof MissingField) {
445
- return fv == null; // null or undefined
444
+ if (this.handleStringMatch(f, compare, obj)) {
445
+ return true;
446
446
  }
447
- else if (f instanceof BoolQuery) {
448
- return fv === f.value; // true/false
447
+ return false;
448
+ }
449
+ else if (f instanceof ByteMatchQuery) {
450
+ if (obj instanceof Uint8Array === false) {
451
+ if (stringArraysEquals(f.key, this._indexByArr)) {
452
+ return f.valueString === obj;
453
+ }
454
+ return false;
449
455
  }
456
+ return equals(obj, f.value);
457
+ }
458
+ else if (f instanceof IntegerCompare) {
459
+ const value = obj;
460
+ if (typeof value !== "bigint" && typeof value !== "number") {
461
+ return false;
462
+ }
463
+ return compare(value, f.compare, f.value.value);
464
+ }
465
+ else if (f instanceof MissingField) {
466
+ return obj == null; // null or undefined
467
+ }
468
+ else if (f instanceof BoolQuery) {
469
+ return obj === f.value; // true/false
470
+ }
471
+ logger.warn("Unsupported query type: " + f.constructor.name);
472
+ return false;
473
+ }
474
+ async handleQueryObject(f, doc) {
475
+ if (f instanceof StateFieldQuery) {
476
+ return this.handleFieldQuery(f, doc.value, 0);
450
477
  }
451
478
  else if (f instanceof LogicalQuery) {
452
479
  if (f instanceof And) {
453
480
  for (const and of f.and) {
454
- if (!this.handleQueryObject(and, doc)) {
481
+ if (!(await this.handleQueryObject(and, doc))) {
455
482
  return false;
456
483
  }
457
484
  }
@@ -459,7 +486,7 @@ let DocumentIndex = class DocumentIndex extends Program {
459
486
  }
460
487
  if (f instanceof Or) {
461
488
  for (const or of f.or) {
462
- if (this.handleQueryObject(or, doc)) {
489
+ if (await this.handleQueryObject(or, doc)) {
463
490
  return true;
464
491
  }
465
492
  }
@@ -537,22 +564,22 @@ let DocumentIndex = class DocumentIndex extends Program {
537
564
  }
538
565
  }
539
566
  if (remote) {
540
- const peerMinAge = remote.minAge ?? DEFAULT_REPLICATOR_MIN_AGE;
541
- const replicatorGroups = await this._log.getDiscoveryGroups?.();
567
+ const replicatorGroups = await this._log.getReplicatorUnion(remote.minAge ?? DEFAULT_REPLICATOR_MIN_AGE);
542
568
  if (replicatorGroups) {
543
569
  // Make sure we don't query peers that are "too" new
544
570
  // TODO make this better
545
- const date = +new Date();
546
- const groupHashes = [];
547
- for (let i = 0; i < replicatorGroups.length; i++) {
548
- const filteredGroup = replicatorGroups[i].filter((x) => date - x.timestamp > peerMinAge);
571
+ //const date = +new Date();
572
+ const groupHashes = replicatorGroups.map((x) => [x]);
573
+ /* for (let i = 0; i < replicatorGroups.length; i++) {
574
+ const filteredGroup = replicatorGroups[i].filter(
575
+ (x) => date - x.timestamp > peerMinAge
576
+ );
549
577
  if (filteredGroup.length > 0) {
550
578
  groupHashes.push(filteredGroup.map((x) => x.hash));
551
- }
552
- else {
579
+ } else {
553
580
  groupHashes.push(replicatorGroups[i].map((x) => x.hash));
554
581
  }
555
- }
582
+ } */
556
583
  const fn = async () => {
557
584
  const rs = [];
558
585
  const responseHandler = async (results) => {
@@ -1 +1 @@
1
- {"version":3,"file":"document-index.js","sourceRoot":"","sources":["../../src/document-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-index.js","sourceRoot":"","sources":["../../src/document-index.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import { AbstractType } from "@dao-xyz/borsh";
2
2
  import { Change, Entry, TrimOptions } from "@peerbit/log";
3
3
  import { Program, ProgramEvents } from "@peerbit/program";
4
4
  import { AppendOptions } from "@peerbit/log";
5
- import { Role, Observer, Replicator, SharedLog, SharedLogOptions, SharedAppendOptions } from "@peerbit/shared-log";
5
+ import { Role, Observer, Replicator, SharedLog, SharedLogOptions, SharedAppendOptions, RoleOptions } from "@peerbit/shared-log";
6
6
  export { Role, Observer, Replicator };
7
- import { IndexableFields, DeleteOperation, DocumentIndex, Operation, PutOperation, CanSearch, CanRead } from "./document-index.js";
7
+ import { IndexableFields, DeleteOperation, DocumentIndex, Operation, PutOperation, CanSearch, CanRead, IndexedDB } from "./document-index.js";
8
8
  import { Keyable } from "./utils.js";
9
9
  export declare class OperationError extends Error {
10
10
  constructor(message?: string);
@@ -35,7 +35,7 @@ export type SetupOptions<T> = {
35
35
  trim?: TrimOptions;
36
36
  };
37
37
  } & SharedLogOptions;
38
- export declare class Documents<T extends Record<string, any>> extends Program<SetupOptions<T>, DocumentEvents<T> & ProgramEvents> {
38
+ export declare class Documents<T extends Record<string, any>> extends Program<SetupOptions<T>, DocumentEvents<T> & ProgramEvents> implements IndexedDB<T> {
39
39
  log: SharedLog<Operation<T>>;
40
40
  immutable: boolean;
41
41
  private _index;
@@ -51,7 +51,7 @@ export declare class Documents<T extends Record<string, any>> extends Program<Se
51
51
  open(options: SetupOptions<T>): Promise<void>;
52
52
  recover(): Promise<void>;
53
53
  private _resolveEntry;
54
- updateRole(role: Replicator | Observer): Promise<void>;
54
+ updateRole(role: RoleOptions): Promise<void>;
55
55
  get role(): Replicator | Observer;
56
56
  canAppend(entry: Entry<Operation<T>>): Promise<boolean>;
57
57
  _canAppend(entry: Entry<Operation<T>>): Promise<boolean>;
@@ -12,7 +12,7 @@ import { Entry, EntryType } from "@peerbit/log";
12
12
  import { Program } from "@peerbit/program";
13
13
  import { AccessError, DecryptedThing } from "@peerbit/crypto";
14
14
  import { logger as loggerFn } from "@peerbit/logger";
15
- import { CustomEvent } from "@libp2p/interface/events";
15
+ import { CustomEvent } from "@libp2p/interface";
16
16
  import { Role, Observer, Replicator, SharedLog } from "@peerbit/shared-log";
17
17
  export { Role, Observer, Replicator }; // For convenience (so that consumers does not have to do the import above from shared-log packages)
18
18
  import { BORSH_ENCODING_OPERATION, DeleteOperation, DocumentIndex, PutOperation } from "./document-index.js";
@@ -57,7 +57,8 @@ let Documents = class Documents extends Program {
57
57
  canSearch: options.index?.canSearch,
58
58
  fields: options.index?.fields || ((obj) => obj),
59
59
  indexBy: options.index?.key,
60
- sync: async (result) => this.log.log.join(result.results.map((x) => x.context.head))
60
+ sync: async (result) => this.log.log.join(result.results.map((x) => x.context.head)),
61
+ dbType: this.constructor
61
62
  });
62
63
  await this.log.open({
63
64
  encoding: BORSH_ENCODING_OPERATION,
@@ -65,7 +66,6 @@ let Documents = class Documents extends Program {
65
66
  canAppend: this.canAppend.bind(this),
66
67
  onChange: this.handleChanges.bind(this),
67
68
  trim: options?.log?.trim,
68
- sync: options?.sync,
69
69
  role: options?.role,
70
70
  replicas: options?.replicas
71
71
  });
@@ -76,7 +76,7 @@ let Documents = class Documents extends Program {
76
76
  async _resolveEntry(history) {
77
77
  return typeof history === "string"
78
78
  ? (await this.log.log.get(history)) ||
79
- (await Entry.fromMultihash(this.log.log.storage, history))
79
+ (await Entry.fromMultihash(this.log.log.blocks, history))
80
80
  : history;
81
81
  }
82
82
  async updateRole(role) {
@@ -116,7 +116,7 @@ let Documents = class Documents extends Program {
116
116
  const resolve = async (history) => {
117
117
  return typeof history === "string"
118
118
  ? this.log.log.get(history) ||
119
- (await Entry.fromMultihash(this.log.log.storage, history))
119
+ (await Entry.fromMultihash(this.log.log.blocks, history))
120
120
  : history;
121
121
  };
122
122
  const pointsToHistory = async (history) => {
@@ -136,7 +136,7 @@ let Documents = class Documents extends Program {
136
136
  try {
137
137
  entry.init({
138
138
  encoding: this.log.log.encoding,
139
- keychain: this.node.keychain
139
+ keychain: this.node.services.keychain
140
140
  });
141
141
  const operation = entry._payload instanceof DecryptedThing
142
142
  ? entry.payload.getValue(entry.encoding)
@@ -1 +1 @@
1
- {"version":3,"file":"document-store.js","sourceRoot":"","sources":["../../src/document-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-store.js","sourceRoot":"","sources":["../../src/document-store.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare enum Compare {
8
8
  }
9
9
  export declare const compare: (test: bigint | number, compare: Compare, value: bigint | number) => boolean;
10
10
  export declare abstract class Query {
11
+ clone(): this;
11
12
  }
12
13
  export declare enum SortDirection {
13
14
  ASC = 0,
package/lib/esm/query.js CHANGED
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { deserialize, field, fixedArray, variant, vec } from "@dao-xyz/borsh";
10
+ import { deserialize, field, fixedArray, serialize, variant, vec } from "@dao-xyz/borsh";
11
11
  import { asString } from "./utils.js";
12
12
  import { randomBytes, sha256Base64Sync } from "@peerbit/crypto";
13
13
  export var Compare;
@@ -37,6 +37,9 @@ export const compare = (test, compare, value) => {
37
37
  };
38
38
  /// ----- QUERY -----
39
39
  export class Query {
40
+ clone() {
41
+ return deserialize(serialize(this), this.constructor);
42
+ }
40
43
  }
41
44
  export var SortDirection;
42
45
  (function (SortDirection) {
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAE,EAAE,CACxC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAY,EAAE,EAAE;IAC5C,IAAI,GAAG,IAAI,IAAI,EAAE;QAChB,MAAM,IAAI,KAAK,CACd,6EAA6E,CAC7E,CAAC;KACF;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,YAAY,UAAU,EAAE;QACzD,OAAO;KACP;IAED,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,OAAO,GAAG,CAAC,CAAC;AAC9E,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAE,EAAE,CACxC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAY,EAAE,EAAE;IAC5C,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACd,6EAA6E,CAC7E,CAAC;IACH,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;QAC1D,OAAO;IACR,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,OAAO,GAAG,CAAC,CAAC;AAC9E,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/document",
3
- "version": "3.1.11",
3
+ "version": "4.0.1",
4
4
  "description": "Document Store for orbit-db with binary ser/der",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -33,13 +33,13 @@
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
35
  "@dao-xyz/borsh": "^5.1.8",
36
- "@peerbit/program": "2.4.2",
37
- "@peerbit/rpc": "2.1.17",
38
- "@peerbit/shared-log": "3.1.10"
36
+ "@peerbit/program": "3.0.1",
37
+ "@peerbit/rpc": "3.0.1",
38
+ "@peerbit/shared-log": "4.0.1"
39
39
  },
40
40
  "devDependencies": {
41
- "@peerbit/test-utils": "1.0.33",
42
- "@peerbit/time": "1.0.4"
41
+ "@peerbit/test-utils": "2.0.1",
42
+ "@peerbit/time": "2.0.0"
43
43
  },
44
- "gitHead": "19462994faa962bc5f1adfc938f7396ee25d8c63"
44
+ "gitHead": "c48cb37d237a25b0bcc849482b43f6941d53e3d5"
45
45
  }
@@ -142,13 +142,6 @@ export type IndexableFields<T> = (
142
142
  context: Context
143
143
  ) => Record<string, any> | Promise<Record<string, any>>;
144
144
 
145
- const extractFieldValue = <T>(doc: any, path: string[]): T => {
146
- for (let i = 0; i < path.length; i++) {
147
- doc = doc[path[i]];
148
- }
149
- return doc;
150
- };
151
-
152
145
  export type ResultsIterator<T> = {
153
146
  close: () => Promise<void>;
154
147
  next: (number: number) => Promise<T[]>;
@@ -166,6 +159,14 @@ const sortCompare = (av: any, bv: any) => {
166
159
  }
167
160
  return 0;
168
161
  };
162
+
163
+ const extractFieldValue = <T>(doc: any, path: string[]): T => {
164
+ for (let i = 0; i < path.length; i++) {
165
+ doc = doc[path[i]];
166
+ }
167
+ return doc;
168
+ };
169
+
169
170
  const extractSortCompare = (
170
171
  a: Record<string, any>,
171
172
  b: Record<string, any>,
@@ -274,8 +275,11 @@ export type CanRead<T> = (
274
275
  from: PublicSignKey
275
276
  ) => Promise<boolean> | boolean;
276
277
 
278
+ export type IndexedDB<T> = { index: DocumentIndex<T> };
279
+
277
280
  export type OpenOptions<T> = {
278
281
  type: AbstractType<T>;
282
+ dbType: AbstractType<IndexedDB<T>>;
279
283
  log: SharedLog<Operation<T>>;
280
284
  canRead?: CanRead<T>;
281
285
  canSearch?: CanSearch;
@@ -290,6 +294,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
290
294
  _query: RPC<AbstractSearchRequest, AbstractSearchResult<T>>;
291
295
 
292
296
  type: AbstractType<T>;
297
+ dbType: AbstractType<IndexedDB<T>>;
293
298
 
294
299
  // Index key
295
300
  private _indexBy: string | string[];
@@ -335,6 +340,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
335
340
  this._index = new Map();
336
341
  this._log = properties.log;
337
342
  this.type = properties.type;
343
+ this.dbType = properties.dbType;
338
344
  this._sync = properties.sync;
339
345
  this._toIndex = properties.fields;
340
346
  this._indexBy = properties.indexBy || DEFAULT_INDEX_BY;
@@ -462,12 +468,12 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
462
468
  }
463
469
 
464
470
  async _queryDocuments(
465
- filter: (doc: IndexedValue<T>) => boolean
471
+ filter: (doc: IndexedValue<T>) => Promise<boolean>
466
472
  ): Promise<{ context: Context; value: T }[]> {
467
473
  // Whether we return the full operation data or just the db value
468
474
  const results: { context: Context; value: T }[] = [];
469
475
  for (const value of this._index.values()) {
470
- if (filter(value)) {
476
+ if (await filter(value)) {
471
477
  results.push({
472
478
  context: value.context,
473
479
  value: await this.getDocument(value)
@@ -486,6 +492,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
486
492
  ): Promise<{ results: { context: Context; value: T }[]; kept: number }> {
487
493
  // We do special case for querying the id as we can do it faster than iterating
488
494
  if (query instanceof SearchRequest) {
495
+ // Special case querying ids
489
496
  if (
490
497
  query.query.length === 1 &&
491
498
  (query.query[0] instanceof ByteMatchQuery ||
@@ -504,7 +511,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
504
511
  }
505
512
  ],
506
513
  kept: 0
507
- }
514
+ }
508
515
  : { results: [], kept: 0 };
509
516
  } else if (
510
517
  firstQuery instanceof StringMatch &&
@@ -521,14 +528,15 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
521
528
  }
522
529
  ],
523
530
  kept: 0
524
- }
531
+ }
525
532
  : { results: [], kept: 0 };
526
533
  }
527
534
  }
528
535
 
529
- let results = await this._queryDocuments((doc) => {
536
+ // Handle query normally
537
+ let results = await this._queryDocuments(async (doc) => {
530
538
  for (const f of query.query) {
531
- if (!this.handleQueryObject(f, doc)) {
539
+ if (!(await this.handleQueryObject(f, doc))) {
532
540
  return false;
533
541
  }
534
542
  }
@@ -588,53 +596,85 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
588
596
  }
589
597
  }
590
598
 
591
- private handleQueryObject(f: Query, doc: IndexedValue<T>) {
592
- if (f instanceof StateFieldQuery) {
593
- const fv: any = extractFieldValue(doc.value, f.key);
594
-
595
- if (f instanceof StringMatch) {
596
- let compare = f.value;
597
- if (f.caseInsensitive) {
598
- compare = compare.toLowerCase();
599
+ private async handleFieldQuery(
600
+ f: StateFieldQuery,
601
+ obj: T,
602
+ startIndex: number
603
+ ) {
604
+ // this clause is needed if we have a field that is of type [][] (we will recursively go through each subarray)
605
+ if (Array.isArray(obj)) {
606
+ for (const element of obj) {
607
+ if (await this.handleFieldQuery(f, element, startIndex)) {
608
+ return true;
599
609
  }
610
+ }
611
+ return false;
612
+ }
600
613
 
601
- if (Array.isArray(fv)) {
602
- for (const string of fv) {
603
- if (this.handleStringMatch(f, compare, string)) {
604
- return true;
605
- }
606
- }
607
- return false;
608
- } else {
609
- if (this.handleStringMatch(f, compare, fv)) {
614
+ // Resolve the field from the key path. If we reach an array or nested Document store,
615
+ // then do a recursive call or a search to look into them
616
+ for (let i = startIndex; i < f.key.length; i++) {
617
+ obj = obj[f.key[i]];
618
+ if (Array.isArray(obj)) {
619
+ for (const element of obj) {
620
+ if (await this.handleFieldQuery(f, element, i + 1)) {
610
621
  return true;
611
622
  }
612
- return false;
613
- }
614
- } else if (f instanceof ByteMatchQuery) {
615
- if (fv instanceof Uint8Array === false) {
616
- if (stringArraysEquals(f.key, this._indexByArr)) {
617
- return f.valueString === fv;
618
- }
619
- return false;
620
623
  }
621
- return equals(fv, f.value);
622
- } else if (f instanceof IntegerCompare) {
623
- const value: bigint | number = fv;
624
+ return false;
625
+ }
626
+ if (obj instanceof this.dbType) {
627
+ const queryCloned = f.clone();
628
+ queryCloned.key.splice(0, i + 1); // remove key path until the document store
629
+ const results = await (obj as any as IndexedDB<any>).index.search(
630
+ new SearchRequest({ query: [queryCloned] })
631
+ );
632
+ return results.length > 0 ? true : false; // TODO return INNER HITS?
633
+ }
634
+ }
635
+
636
+ // When we reach here, the field value (obj) is comparable
637
+ if (f instanceof StringMatch) {
638
+ let compare = f.value;
639
+ if (f.caseInsensitive) {
640
+ compare = compare.toLowerCase();
641
+ }
624
642
 
625
- if (typeof value !== "bigint" && typeof value !== "number") {
626
- return false;
643
+ if (this.handleStringMatch(f, compare, obj as string)) {
644
+ return true;
645
+ }
646
+ return false;
647
+ } else if (f instanceof ByteMatchQuery) {
648
+ if (obj instanceof Uint8Array === false) {
649
+ if (stringArraysEquals(f.key, this._indexByArr)) {
650
+ return f.valueString === obj;
627
651
  }
628
- return compare(value, f.compare, f.value.value);
629
- } else if (f instanceof MissingField) {
630
- return fv == null; // null or undefined
631
- } else if (f instanceof BoolQuery) {
632
- return fv === f.value; // true/false
652
+ return false;
653
+ }
654
+ return equals(obj as Uint8Array, f.value);
655
+ } else if (f instanceof IntegerCompare) {
656
+ const value: bigint | number = obj as bigint | number;
657
+
658
+ if (typeof value !== "bigint" && typeof value !== "number") {
659
+ return false;
633
660
  }
661
+ return compare(value, f.compare, f.value.value);
662
+ } else if (f instanceof MissingField) {
663
+ return obj == null; // null or undefined
664
+ } else if (f instanceof BoolQuery) {
665
+ return obj === f.value; // true/false
666
+ }
667
+ logger.warn("Unsupported query type: " + f.constructor.name);
668
+ return false;
669
+ }
670
+
671
+ private async handleQueryObject(f: Query, doc: IndexedValue<T>) {
672
+ if (f instanceof StateFieldQuery) {
673
+ return this.handleFieldQuery(f, doc.value as T, 0);
634
674
  } else if (f instanceof LogicalQuery) {
635
675
  if (f instanceof And) {
636
676
  for (const and of f.and) {
637
- if (!this.handleQueryObject(and, doc)) {
677
+ if (!(await this.handleQueryObject(and, doc))) {
638
678
  return false;
639
679
  }
640
680
  }
@@ -643,7 +683,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
643
683
 
644
684
  if (f instanceof Or) {
645
685
  for (const or of f.or) {
646
- if (this.handleQueryObject(or, doc)) {
686
+ if (await this.handleQueryObject(or, doc)) {
647
687
  return true;
648
688
  }
649
689
  }
@@ -740,14 +780,15 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
740
780
  }
741
781
 
742
782
  if (remote) {
743
- const peerMinAge = remote.minAge ?? DEFAULT_REPLICATOR_MIN_AGE;
744
- const replicatorGroups = await this._log.getDiscoveryGroups?.();
783
+ const replicatorGroups = await this._log.getReplicatorUnion(
784
+ remote.minAge ?? DEFAULT_REPLICATOR_MIN_AGE
785
+ );
745
786
  if (replicatorGroups) {
746
787
  // Make sure we don't query peers that are "too" new
747
788
  // TODO make this better
748
- const date = +new Date();
749
- const groupHashes: string[][] = [];
750
- for (let i = 0; i < replicatorGroups.length; i++) {
789
+ //const date = +new Date();
790
+ const groupHashes: string[][] = replicatorGroups.map((x) => [x]);
791
+ /* for (let i = 0; i < replicatorGroups.length; i++) {
751
792
  const filteredGroup = replicatorGroups[i].filter(
752
793
  (x) => date - x.timestamp > peerMinAge
753
794
  );
@@ -756,7 +797,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
756
797
  } else {
757
798
  groupHashes.push(replicatorGroups[i].map((x) => x.hash));
758
799
  }
759
- }
800
+ } */
760
801
  const fn = async () => {
761
802
  const rs: Results<T>[] = [];
762
803
  const responseHandler = async (
@@ -1087,6 +1128,7 @@ export class DocumentIndex<T> extends Program<OpenOptions<T>> {
1087
1128
  this._toIndex,
1088
1129
  queryRequest.sort
1089
1130
  );
1131
+
1090
1132
  const pendingMoreResults = n < results.length;
1091
1133
 
1092
1134
  const batch = results.splice(0, n);
@@ -8,18 +8,20 @@ import {
8
8
  } from "@dao-xyz/borsh";
9
9
  import { Change, Entry, EntryType, TrimOptions } from "@peerbit/log";
10
10
  import { Program, ProgramEvents } from "@peerbit/program";
11
- import { AccessError, DecryptedThing, PublicSignKey } from "@peerbit/crypto";
11
+ import { AccessError, DecryptedThing } from "@peerbit/crypto";
12
12
  import { logger as loggerFn } from "@peerbit/logger";
13
13
  import { AppendOptions } from "@peerbit/log";
14
- import { CustomEvent } from "@libp2p/interface/events";
14
+ import { CustomEvent } from "@libp2p/interface";
15
15
  import {
16
16
  Role,
17
17
  Observer,
18
18
  Replicator,
19
19
  SharedLog,
20
20
  SharedLogOptions,
21
- SharedAppendOptions
21
+ SharedAppendOptions,
22
+ RoleOptions
22
23
  } from "@peerbit/shared-log";
24
+
23
25
  export { Role, Observer, Replicator }; // For convenience (so that consumers does not have to do the import above from shared-log packages)
24
26
 
25
27
  import {
@@ -30,7 +32,8 @@ import {
30
32
  Operation,
31
33
  PutOperation,
32
34
  CanSearch,
33
- CanRead
35
+ CanRead,
36
+ IndexedDB
34
37
  } from "./document-index.js";
35
38
  import { asString, checkKeyable, Keyable } from "./utils.js";
36
39
  import { Context, Results } from "./query.js";
@@ -77,10 +80,10 @@ export type SetupOptions<T> = {
77
80
  } & SharedLogOptions;
78
81
 
79
82
  @variant("documents")
80
- export class Documents<T extends Record<string, any>> extends Program<
81
- SetupOptions<T>,
82
- DocumentEvents<T> & ProgramEvents
83
- > {
83
+ export class Documents<T extends Record<string, any>>
84
+ extends Program<SetupOptions<T>, DocumentEvents<T> & ProgramEvents>
85
+ implements IndexedDB<T>
86
+ {
84
87
  @field({ type: SharedLog })
85
88
  log: SharedLog<Operation<T>>;
86
89
 
@@ -138,7 +141,8 @@ export class Documents<T extends Record<string, any>> extends Program<
138
141
  fields: options.index?.fields || ((obj) => obj),
139
142
  indexBy: options.index?.key,
140
143
  sync: async (result: Results<T>) =>
141
- this.log.log.join(result.results.map((x) => x.context.head))
144
+ this.log.log.join(result.results.map((x) => x.context.head)),
145
+ dbType: this.constructor
142
146
  });
143
147
 
144
148
  await this.log.open({
@@ -147,7 +151,6 @@ export class Documents<T extends Record<string, any>> extends Program<
147
151
  canAppend: this.canAppend.bind(this),
148
152
  onChange: this.handleChanges.bind(this),
149
153
  trim: options?.log?.trim,
150
- sync: options?.sync,
151
154
  role: options?.role,
152
155
  replicas: options?.replicas
153
156
  });
@@ -161,13 +164,13 @@ export class Documents<T extends Record<string, any>> extends Program<
161
164
  return typeof history === "string"
162
165
  ? (await this.log.log.get(history)) ||
163
166
  (await Entry.fromMultihash<Operation<T>>(
164
- this.log.log.storage,
167
+ this.log.log.blocks,
165
168
  history
166
169
  ))
167
170
  : history;
168
171
  }
169
172
 
170
- async updateRole(role: Replicator | Observer) {
173
+ async updateRole(role: RoleOptions) {
171
174
  await this.log.updateRole(role);
172
175
  }
173
176
  get role(): Replicator | Observer {
@@ -213,7 +216,7 @@ export class Documents<T extends Record<string, any>> extends Program<
213
216
  const resolve = async (history: Entry<Operation<T>> | string) => {
214
217
  return typeof history === "string"
215
218
  ? this.log.log.get(history) ||
216
- (await Entry.fromMultihash(this.log.log.storage, history))
219
+ (await Entry.fromMultihash(this.log.log.blocks, history))
217
220
  : history;
218
221
  };
219
222
  const pointsToHistory = async (history: Entry<Operation<T>> | string) => {
@@ -237,7 +240,7 @@ export class Documents<T extends Record<string, any>> extends Program<
237
240
  try {
238
241
  entry.init({
239
242
  encoding: this.log.log.encoding,
240
- keychain: this.node.keychain
243
+ keychain: this.node.services.keychain
241
244
  });
242
245
  const operation =
243
246
  entry._payload instanceof DecryptedThing
@@ -316,7 +319,7 @@ export class Documents<T extends Record<string, any>> extends Program<
316
319
  local: true,
317
320
  remote: { sync: true } // only query remote if we know they exist
318
321
  })
319
- )?.[0]?.results[0];
322
+ )?.[0]?.results[0];
320
323
 
321
324
  return this.log.append(
322
325
  new PutOperation({
package/src/query.ts CHANGED
@@ -3,6 +3,7 @@ import {
3
3
  deserialize,
4
4
  field,
5
5
  fixedArray,
6
+ serialize,
6
7
  variant,
7
8
  vec
8
9
  } from "@dao-xyz/borsh";
@@ -41,7 +42,11 @@ export const compare = (
41
42
 
42
43
  /// ----- QUERY -----
43
44
 
44
- export abstract class Query {}
45
+ export abstract class Query {
46
+ clone() {
47
+ return deserialize(serialize(this), this.constructor) as this;
48
+ }
49
+ }
45
50
 
46
51
  export enum SortDirection {
47
52
  ASC = 0,