@peerbit/indexer-interface 1.0.3 → 1.1.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.
@@ -1,22 +1,33 @@
1
1
  import type { AbstractType } from "@dao-xyz/borsh";
2
2
  import { type IdKey } from "./id.js";
3
- import { CloseIteratorRequest, CollectNextRequest, type CountRequest, type DeleteRequest, type SearchRequest, type SumRequest } from "./query.js";
3
+ import type { QueryLike, Sort } from "./query.js";
4
4
  type MaybePromise<T = void> = Promise<T> | T;
5
5
  export interface IndexedResult<T extends Record<string, any> = Record<string, any>> {
6
6
  id: IdKey;
7
7
  value: T;
8
8
  }
9
- export interface IndexedResults<T extends Record<string, any> = Record<string, any>> {
10
- results: IndexedResult<T>[];
11
- kept: number;
12
- }
9
+ export type IndexedResults<T extends Record<string, any> = Record<string, any>> = IndexedResult<T>[];
13
10
  export interface IndexedValue<T = Record<string, any>> {
14
11
  id: IdKey;
15
12
  value: T;
16
13
  }
14
+ export interface IterateOptions {
15
+ query?: QueryLike;
16
+ sort?: Sort | Sort[];
17
+ }
18
+ export interface DeleteOptions {
19
+ query: QueryLike;
20
+ }
21
+ export interface SumOptions {
22
+ query?: QueryLike;
23
+ key: string | string[];
24
+ }
25
+ export interface CountOptions {
26
+ query?: QueryLike;
27
+ }
17
28
  export type NestedProperties<T> = {
18
29
  match: (obj: any) => obj is T;
19
- query: (nested: T, query: SearchRequest) => Promise<Record<string, any>[]>;
30
+ iterate: (nested: T, query: IterateOptions) => Promise<Record<string, any>[]>;
20
31
  };
21
32
  export type IteratorBatchProperties = {
22
33
  maxSize: number;
@@ -28,7 +39,18 @@ export type IndexEngineInitProperties<T, N> = {
28
39
  schema: AbstractType<T>;
29
40
  };
30
41
  export type Shape = {
31
- [key: string]: true | Shape;
42
+ [key: string]: true | Shape | Shape[];
43
+ };
44
+ export type ShapeReturnType<T> = T extends true ? any : T extends Shape[] ? ShapeReturnType<T[number]>[] : T extends Shape ? {
45
+ [K in keyof T]: ShapeReturnType<T[K]>;
46
+ } : never;
47
+ export type ReturnTypeFromShape<T, S> = S extends Shape ? ShapeReturnType<S> : T;
48
+ export type IndexIterator<T, S extends Shape | undefined> = {
49
+ next: (amount: number) => MaybePromise<IndexedResults<ReturnTypeFromShape<T, S>>>;
50
+ all: () => MaybePromise<IndexedResults<ReturnTypeFromShape<T, S>>>;
51
+ done: () => boolean | undefined;
52
+ pending: () => MaybePromise<number>;
53
+ close: () => MaybePromise<void>;
32
54
  };
33
55
  export interface Index<T extends Record<string, any>, NestedType = any> {
34
56
  init(properties: IndexEngineInitProperties<T, NestedType>): MaybePromise<Index<T, NestedType>>;
@@ -37,41 +59,18 @@ export interface Index<T extends Record<string, any>, NestedType = any> {
37
59
  shape: Shape;
38
60
  }): MaybePromise<IndexedResult<T> | undefined>;
39
61
  put(value: T, id?: IdKey): MaybePromise<void>;
40
- del(query: DeleteRequest): MaybePromise<IdKey[]>;
41
- sum(query: SumRequest): MaybePromise<bigint | number>;
42
- count(query: CountRequest): MaybePromise<number>;
43
- query(query: SearchRequest, options?: {
44
- shape?: Shape;
62
+ del(query: DeleteOptions): MaybePromise<IdKey[]>;
63
+ sum(query: SumOptions): MaybePromise<bigint | number>;
64
+ count(query?: CountOptions): MaybePromise<number>;
65
+ iterate<S extends Shape | undefined = undefined>(request?: IterateOptions, options?: {
66
+ shape?: S;
45
67
  reference?: boolean;
46
- }): MaybePromise<IndexedResults<T>>;
47
- next(query: CollectNextRequest, options?: {
48
- shape?: Shape;
49
- }): MaybePromise<IndexedResults<T>>;
50
- close(query: CloseIteratorRequest): MaybePromise<void>;
68
+ }): IndexIterator<T, S>;
51
69
  getSize(): MaybePromise<number>;
52
- getPending(cursorId: string): number | undefined;
53
70
  start(): MaybePromise<void>;
54
71
  stop(): MaybePromise<void>;
55
- get cursorCount(): number;
56
72
  }
57
- export type IndexIterator<T> = ReturnType<typeof iterate<T>>;
58
- export declare const iterate: <T>(index: Index<T, any>, query: SearchRequest) => {
59
- next: (count: number, options?: {
60
- shape?: Shape;
61
- }) => Promise<IndexedResults<T>>;
62
- done: () => boolean;
63
- close: () => MaybePromise<void>;
64
- all: (options?: {
65
- shape: Shape;
66
- }) => Promise<IndexedResult<T>[]>;
67
- };
68
- export type ResultsIterator<T> = ReturnType<typeof iterate<T>>;
69
- export declare const iteratorInSeries: <T>(...iterators: IndexIterator<T>[]) => {
70
- next: (count: number) => Promise<IndexedResults<T>>;
71
- done: () => boolean;
72
- close: () => Promise<void>;
73
- all: () => Promise<IndexedResult<T>[]>;
74
- };
73
+ export declare const iteratorInSeries: <T, S extends Shape | undefined>(...iterators: IndexIterator<T, S>[]) => IndexIterator<T, S>;
75
74
  export interface Indices {
76
75
  init<T extends Record<string, any>, NestedType>(properties: IndexEngineInitProperties<T, NestedType>): MaybePromise<Index<T, NestedType>>;
77
76
  scope(name: string): MaybePromise<Indices>;
@@ -1 +1 @@
1
- {"version":3,"file":"index-engine.d.ts","sourceRoot":"","sources":["../../src/index-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,MAAM,YAAY,CAAC;AAEpB,KAAK,YAAY,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,aAAa,CAC7B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAEnD,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,CAAC,CAAC;CACT;AAED,MAAM,WAAW,cAAc,CAC9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAEnD,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACpD,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,CAAC,CAAC;CACT;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IACjC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,yBAAyB,CAAC,CAAC,EAAE,CAAC,IAAI;IAC7C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CAExB,CAAC;AAOF,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAA;CAAE,CAAC;AACpD,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,GAAG;IACrE,IAAI,CACH,UAAU,EAAE,yBAAyB,CAAC,CAAC,EAAE,UAAU,CAAC,GAClD,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3B,GAAG,CACF,EAAE,EAAE,KAAK,EACT,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,GACxB,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC9C,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;IACjD,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACtD,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACjD,KAAK,CACJ,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9C,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CACH,KAAK,EAAE,kBAAkB,EACzB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GACzB,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAOvD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACjD,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,WAAW,IAAI,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,aAAa;kBAGzC,MAAM,YAAY;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;;;oBAuBvC;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE;CAWvC,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/D,eAAO,MAAM,gBAAgB,GAAI,CAAC,gBAAgB,aAAa,CAAC,CAAC,CAAC,EAAE;kBAIxC,MAAM;;;;CA4CjC,CAAC;AAEF,MAAM,WAAW,OAAO;IACvB,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,EAC7C,UAAU,EAAE,yBAAyB,CAAC,CAAC,EAAE,UAAU,CAAC,GAClD,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;CAC3B"}
1
+ {"version":3,"file":"index-engine.d.ts","sourceRoot":"","sources":["../../src/index-engine.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,20 @@
1
1
  import {} from "./id.js";
2
- import { CloseIteratorRequest, CollectNextRequest, } from "./query.js";
3
- export const iterate = (index, query) => {
2
+ /*
3
+ export type IndexIterator<T> = ReturnType<typeof iterate<T>>;
4
+ export const iterate = <T>(index: Index<T, any>, query: SearchRequest) => {
4
5
  let isDone = false;
5
6
  let fetchedOnce = false;
6
- const next = async (count, options) => {
7
- let res;
7
+ const next = async (count: number, options?: { shape?: Shape }) => {
8
+ let res: IndexedResults<T>;
8
9
  if (!fetchedOnce) {
9
10
  fetchedOnce = true;
10
11
  query.fetch = count;
11
12
  res = await index.query(query, options);
12
- }
13
- else {
14
- res = await index.next(new CollectNextRequest({ id: query.id, amount: count }), options);
13
+ } else {
14
+ res = await index.next(
15
+ new CollectNextRequest({ id: query.id, amount: count }),
16
+ options,
17
+ );
15
18
  }
16
19
  isDone = res.kept === 0;
17
20
  return res;
@@ -24,8 +27,8 @@ export const iterate = (index, query) => {
24
27
  next,
25
28
  done,
26
29
  close,
27
- all: async (options) => {
28
- const results = [];
30
+ all: async (options?: { shape: Shape }) => {
31
+ const results: IndexedResult<T>[] = [];
29
32
  while (!done()) {
30
33
  for (const element of (await next(100, options)).results) {
31
34
  results.push(element);
@@ -36,19 +39,17 @@ export const iterate = (index, query) => {
36
39
  },
37
40
  };
38
41
  };
42
+
43
+ export type ResultsIterator<T> = ReturnType<typeof iterate<T>>; */
39
44
  export const iteratorInSeries = (...iterators) => {
40
45
  let i = 0;
41
46
  const done = () => i >= iterators.length;
42
47
  let current = iterators[i];
43
48
  const next = async (count) => {
44
- let acc = {
45
- kept: 0,
46
- results: [],
47
- };
49
+ let acc = [];
48
50
  while (!current.done() && i < iterators.length) {
49
51
  const next = await current.next(count);
50
- acc.kept += next.kept;
51
- acc.results.push(...next.results);
52
+ acc.push(...next);
52
53
  if (current.done()) {
53
54
  i++;
54
55
  if (i >= iterators.length) {
@@ -56,7 +57,7 @@ export const iteratorInSeries = (...iterators) => {
56
57
  }
57
58
  current = iterators[i];
58
59
  }
59
- if (acc.results.length >= count) {
60
+ if (acc.length >= count) {
60
61
  break;
61
62
  }
62
63
  }
@@ -73,12 +74,16 @@ export const iteratorInSeries = (...iterators) => {
73
74
  all: async () => {
74
75
  const results = [];
75
76
  while (!done()) {
76
- for (const element of (await next(100)).results) {
77
+ for (const element of await next(100)) {
77
78
  results.push(element);
78
79
  }
79
80
  }
80
81
  return results;
81
82
  },
83
+ pending: async () => {
84
+ let allPendings = await Promise.all(iterators.map((iterator) => iterator.pending()));
85
+ return allPendings.reduce((acc, pending) => acc + pending, 0);
86
+ },
82
87
  };
83
88
  };
84
89
  /* export interface IndexEngine<T extends Record<string, any> = Record<string, any>, NestedType = any> {
@@ -1 +1 @@
1
- {"version":3,"file":"index-engine.js","sourceRoot":"","sources":["../../src/index-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-engine.js","sourceRoot":"","sources":["../../src/index-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,MAAM,SAAS,CAAC;AA6HrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEAyCkE;AAElE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,GAAG,SAAgC,EACb,EAAE;IACxB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC;IACzC,IAAI,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;QACpC,IAAI,GAAG,GAA8C,EAAE,CAAC;QAExD,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAElB,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpB,CAAC,EAAE,CAAC;gBACJ,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC3B,MAAM;gBACP,CAAC;gBACD,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM;YACP,CAAC;QACF,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC,CAAC;IACF,OAAO;QACN,IAAI;QACJ,IAAI;QACJ,KAAK,EAAE,KAAK,IAAI,EAAE;YACjB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAClC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;QACF,CAAC;QACD,GAAG,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChB,KAAK,MAAM,OAAO,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC;YACF,CAAC;YACD,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YACnB,IAAI,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAC/C,CAAC;YACF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;KACD,CAAC;AACH,CAAC,CAAC;AAYF;;;;;;;;;;;;;;;;;;;;;gIAqBgI"}
@@ -1,6 +1,5 @@
1
1
  export * from "./id.js";
2
2
  export * from "./query.js";
3
3
  export * from "./index-engine.js";
4
- export * from "./store.js";
5
4
  export * from "./utils.js";
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from "./id.js";
2
2
  export * from "./query.js";
3
3
  export * from "./index-engine.js";
4
- export * from "./store.js";
5
4
  export * from "./utils.js";
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
@@ -22,42 +22,6 @@ export declare class Sort {
22
22
  direction?: SortDirection | "asc" | "desc";
23
23
  });
24
24
  }
25
- export declare abstract class AbstractSearchRequest {
26
- }
27
- export declare class SearchRequest extends AbstractSearchRequest {
28
- id: Uint8Array;
29
- query: Query[];
30
- sort: Sort[];
31
- fetch: number;
32
- constructor(props?: {
33
- query?: Query[] | Query | Record<string, string | number | bigint | Uint8Array | boolean | null | undefined>;
34
- sort?: Sort[] | Sort;
35
- fetch?: number;
36
- });
37
- private _idString;
38
- get idString(): string;
39
- }
40
- /**
41
- * Collect documents from peers using 'collect' session ids. This is used for distributed sorting internally
42
- */
43
- export declare class CollectNextRequest extends AbstractSearchRequest {
44
- id: Uint8Array;
45
- amount: number;
46
- constructor(properties: {
47
- id: Uint8Array;
48
- amount: number;
49
- });
50
- private _idString;
51
- get idString(): string;
52
- }
53
- export declare class CloseIteratorRequest extends AbstractSearchRequest {
54
- id: Uint8Array;
55
- constructor(properties: {
56
- id: Uint8Array;
57
- });
58
- private _idString;
59
- get idString(): string;
60
- }
61
25
  export declare abstract class LogicalQuery extends Query {
62
26
  }
63
27
  export declare class And extends LogicalQuery {
@@ -137,34 +101,7 @@ export declare class Nested extends Query {
137
101
  query: Query[] | Query | Record<string, string | number | bigint | Uint8Array | boolean | null | undefined>;
138
102
  });
139
103
  }
140
- export declare abstract class AbstractAggregationRequest {
141
- }
142
- export declare class SumRequest extends AbstractAggregationRequest {
143
- id: Uint8Array;
144
- query: Query[];
145
- key: string[];
146
- constructor(props: {
147
- query?: Query[] | Query | Record<string, string | number | bigint | Uint8Array | boolean | null | undefined>;
148
- key: string[] | string;
149
- });
150
- }
151
- export declare abstract class AbstractCountRequest {
152
- }
153
- export declare class CountRequest extends AbstractCountRequest {
154
- id: Uint8Array;
155
- query: Query[];
156
- constructor(props?: {
157
- query: Query[] | Query | Record<string, string | number | bigint | Uint8Array | boolean | null | undefined>;
158
- });
159
- }
160
- export declare abstract class AbstractDeleteRequest {
161
- }
162
- export declare class DeleteRequest extends AbstractDeleteRequest {
163
- id: Uint8Array;
164
- query: Query[];
165
- constructor(props: {
166
- query: Query[] | Query | Record<string, string | number | bigint | Uint8Array | boolean | null | undefined>;
167
- });
168
- }
104
+ export type QueryLike = Query[] | Query | Record<string, string | number | bigint | Uint8Array | boolean | null | undefined>;
105
+ export declare const toQuery: (query?: QueryLike) => Query[];
169
106
  export declare const getMatcher: (key: string[], value: string | number | bigint | Uint8Array | boolean | null | undefined) => ByteMatchQuery | StringMatch | IntegerCompare | IsNull | BoolQuery;
170
107
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,YAAY,EAEZ,MAAM,SAAS,CAAC;AAEjB,oBAAY,OAAO;IAClB,KAAK,IAAI;IACT,OAAO,IAAI;IACX,cAAc,IAAI;IAClB,IAAI,IAAI;IACR,WAAW,IAAI;CACf;AACD,eAAO,MAAM,OAAO,SACb,MAAM,GAAG,MAAM,WACZ,OAAO,SACT,MAAM,GAAG,MAAM,YAmBtB,CAAC;AAIF,8BAAsB,KAAK;IAC1B,KAAK,IACqD,IAAI;CAE9D;AAED,oBAAY,aAAa;IACxB,GAAG,IAAI;IACP,IAAI,IAAI;CACR;AAED,qBACa,IAAI;IAEhB,GAAG,EAAE,MAAM,EAAE,CAAC;IAGd,SAAS,EAAE,aAAa,CAAC;gBAEb,UAAU,EAAE;QACvB,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;KAC3C;CAgBD;AAED,8BACsB,YAAa,SAAQ,KAAK;CAAG;AAEnD,qBACa,GAAI,SAAQ,YAAY;IAEpC,GAAG,EAAE,KAAK,EAAE,CAAC;gBAED,GAAG,EAAE,KAAK,EAAE;CAQxB;AAED,qBACa,EAAG,SAAQ,YAAY;IAEnC,EAAE,EAAE,KAAK,EAAE,CAAC;gBAEA,EAAE,EAAE,KAAK,EAAE;CAQvB;AAED,qBACa,GAAI,SAAQ,YAAY;IAEpC,GAAG,EAAE,KAAK,CAAC;gBAEC,GAAG,EAAE,KAAK;CAItB;AAED,8BACsB,UAAW,SAAQ,KAAK;CAAG;AAEjD,qBACa,eAAgB,SAAQ,UAAU;IAE9C,GAAG,EAAE,MAAM,EAAE,CAAC;gBAEF,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;KAAE;CAI7C;AAED,qBACa,cAAe,SAAQ,eAAe;IAElD,KAAK,EAAE,UAAU,CAAC;IAIlB,OAAO,CAAC,SAAS,CAAS;gBAEd,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE;IAMhE,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,WAAW,WAEd;CACD;AAED,oBAAY,iBAAiB;IAC5B,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,UAAU,IAAI;CACd;AAED,qBACa,WAAY,SAAQ,eAAe;IAE/C,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,iBAAiB,CAAC;IAG1B,eAAe,EAAE,OAAO,CAAC;gBAEb,KAAK,EAAE;QAClB,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;KAC1B;CAMD;AAED,qBACa,cAAe,SAAQ,eAAe;IAElD,OAAO,EAAE,OAAO,CAAC;IAGjB,KAAK,EAAE,YAAY,CAAC;gBAER,KAAK,EAAE;QAClB,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;QACtC,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC;KACtD;CA8BD;AAED,qBACa,MAAO,SAAQ,eAAe;CAAG;AAE9C,qBACa,SAAU,SAAQ,eAAe;IAE7C,KAAK,EAAE,OAAO,CAAC;gBAEH,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE;CAI7D;AAGD,qBACa,MAAO,SAAQ,KAAK;IAEhC,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,KAAK,EAAE,CAAC;gBAEH,KAAK,EAAE;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EACF,KAAK,EAAE,GACP,KAAK,GACL,MAAM,CACN,MAAM,EACN,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CACjE,CAAC;KACL;CAMD;AAgCD,MAAM,MAAM,SAAS,GAClB,KAAK,EAAE,GACP,KAAK,GACL,MAAM,CACN,MAAM,EACN,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CACjE,CAAC;AACL,eAAO,MAAM,OAAO,WAAY,SAAS,KAAG,KAAK,EAYhD,CAAC;AA6BF,eAAO,MAAM,UAAU,QACjB,MAAM,EAAE,SACN,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,uEAezE,CAAC"}
package/dist/src/query.js CHANGED
@@ -7,8 +7,8 @@ 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, serialize, variant, vec, } from "@dao-xyz/borsh";
11
- import { randomBytes, sha256Base64Sync, toBase64 } from "@peerbit/crypto";
10
+ import { deserialize, field, serialize, variant, vec } from "@dao-xyz/borsh";
11
+ import { toBase64 } from "@peerbit/crypto";
12
12
  import { v4 as uuid } from "uuid";
13
13
  import { BigUnsignedIntegerValue, IntegerValue, UnsignedIntegerValue, } from "./id.js";
14
14
  export var Compare;
@@ -85,99 +85,6 @@ Sort = __decorate([
85
85
  __metadata("design:paramtypes", [Object])
86
86
  ], Sort);
87
87
  export { Sort };
88
- export class AbstractSearchRequest {
89
- }
90
- /**
91
- * Search with query and collect with sort conditionss
92
- */
93
- const toArray = (arr) => (arr ? (Array.isArray(arr) ? arr : [arr]) : undefined) || [];
94
- let SearchRequest = class SearchRequest extends AbstractSearchRequest {
95
- id; // Session id
96
- query;
97
- sort;
98
- fetch;
99
- constructor(props) {
100
- super();
101
- this.id = randomBytes(32);
102
- this.query = props?.query ? toQuery(props.query) : [];
103
- this.sort = toArray(props?.sort);
104
- this.fetch = props?.fetch ?? 10; // default fetch 10 documents
105
- }
106
- _idString;
107
- get idString() {
108
- return this._idString || (this._idString = sha256Base64Sync(this.id));
109
- }
110
- };
111
- __decorate([
112
- field({ type: fixedArray("u8", 32) }),
113
- __metadata("design:type", Uint8Array)
114
- ], SearchRequest.prototype, "id", void 0);
115
- __decorate([
116
- field({ type: vec(Query) }),
117
- __metadata("design:type", Array)
118
- ], SearchRequest.prototype, "query", void 0);
119
- __decorate([
120
- field({ type: vec(Sort) }),
121
- __metadata("design:type", Array)
122
- ], SearchRequest.prototype, "sort", void 0);
123
- __decorate([
124
- field({ type: "u32" }),
125
- __metadata("design:type", Number)
126
- ], SearchRequest.prototype, "fetch", void 0);
127
- SearchRequest = __decorate([
128
- variant(0),
129
- __metadata("design:paramtypes", [Object])
130
- ], SearchRequest);
131
- export { SearchRequest };
132
- /**
133
- * Collect documents from peers using 'collect' session ids. This is used for distributed sorting internally
134
- */
135
- let CollectNextRequest = class CollectNextRequest extends AbstractSearchRequest {
136
- id; // collect with id
137
- amount; // number of documents to ask for
138
- constructor(properties) {
139
- super();
140
- this.id = properties.id;
141
- this.amount = properties.amount;
142
- }
143
- _idString;
144
- get idString() {
145
- return this._idString || (this._idString = sha256Base64Sync(this.id));
146
- }
147
- };
148
- __decorate([
149
- field({ type: fixedArray("u8", 32) }),
150
- __metadata("design:type", Uint8Array)
151
- ], CollectNextRequest.prototype, "id", void 0);
152
- __decorate([
153
- field({ type: "u32" }),
154
- __metadata("design:type", Number)
155
- ], CollectNextRequest.prototype, "amount", void 0);
156
- CollectNextRequest = __decorate([
157
- variant(2),
158
- __metadata("design:paramtypes", [Object])
159
- ], CollectNextRequest);
160
- export { CollectNextRequest };
161
- let CloseIteratorRequest = class CloseIteratorRequest extends AbstractSearchRequest {
162
- id; // collect with id
163
- constructor(properties) {
164
- super();
165
- this.id = properties.id;
166
- }
167
- _idString;
168
- get idString() {
169
- return this._idString || (this._idString = sha256Base64Sync(this.id));
170
- }
171
- };
172
- __decorate([
173
- field({ type: fixedArray("u8", 32) }),
174
- __metadata("design:type", Uint8Array)
175
- ], CloseIteratorRequest.prototype, "id", void 0);
176
- CloseIteratorRequest = __decorate([
177
- variant(3),
178
- __metadata("design:paramtypes", [Object])
179
- ], CloseIteratorRequest);
180
- export { CloseIteratorRequest };
181
88
  let LogicalQuery = class LogicalQuery extends Query {
182
89
  };
183
90
  LogicalQuery = __decorate([
@@ -430,114 +337,10 @@ Nested = __decorate([
430
337
  __metadata("design:paramtypes", [Object])
431
338
  ], Nested);
432
339
  export { Nested };
433
- // TODO MemoryCompareQuery can be replaces with ByteMatchQuery? Or Nesteed Queries + ByteMatchQuery?
434
- /* @variant(0)
435
- export class MemoryCompare {
436
- @field({ type: Uint8Array })
437
- bytes: Uint8Array;
438
-
439
- @field({ type: "u64" })
440
- offset: bigint;
441
-
442
- constructor(opts?: { bytes: Uint8Array; offset: bigint }) {
443
- if (opts) {
444
- this.bytes = opts.bytes;
445
- this.offset = opts.offset;
446
- }
340
+ export const toQuery = (query) => {
341
+ if (!query) {
342
+ return [];
447
343
  }
448
- }
449
-
450
- @variant(4)
451
- export class MemoryCompareQuery extends Query {
452
- @field({ type: vec(MemoryCompare) })
453
- compares: MemoryCompare[];
454
-
455
- constructor(opts?: { compares: MemoryCompare[] }) {
456
- super();
457
- if (opts) {
458
- this.compares = opts.compares;
459
- }
460
- }
461
- } */
462
- export class AbstractAggregationRequest {
463
- }
464
- let SumRequest = class SumRequest extends AbstractAggregationRequest {
465
- id;
466
- query;
467
- key;
468
- constructor(props) {
469
- super();
470
- this.id = randomBytes(32);
471
- this.query = props.query ? toQuery(props.query) : [];
472
- this.key = Array.isArray(props.key) ? props.key : [props.key];
473
- }
474
- };
475
- __decorate([
476
- field({ type: fixedArray("u8", 32) }),
477
- __metadata("design:type", Uint8Array)
478
- ], SumRequest.prototype, "id", void 0);
479
- __decorate([
480
- field({ type: vec(Query) }),
481
- __metadata("design:type", Array)
482
- ], SumRequest.prototype, "query", void 0);
483
- __decorate([
484
- field({ type: vec("string") }),
485
- __metadata("design:type", Array)
486
- ], SumRequest.prototype, "key", void 0);
487
- SumRequest = __decorate([
488
- variant(0),
489
- __metadata("design:paramtypes", [Object])
490
- ], SumRequest);
491
- export { SumRequest };
492
- export class AbstractCountRequest {
493
- }
494
- let CountRequest = class CountRequest extends AbstractCountRequest {
495
- id; // Session id
496
- query;
497
- constructor(props = { query: [] }) {
498
- super();
499
- this.id = randomBytes(32);
500
- this.query = toQuery(props.query);
501
- }
502
- };
503
- __decorate([
504
- field({ type: fixedArray("u8", 32) }),
505
- __metadata("design:type", Uint8Array)
506
- ], CountRequest.prototype, "id", void 0);
507
- __decorate([
508
- field({ type: vec(Query) }),
509
- __metadata("design:type", Array)
510
- ], CountRequest.prototype, "query", void 0);
511
- CountRequest = __decorate([
512
- variant(0),
513
- __metadata("design:paramtypes", [Object])
514
- ], CountRequest);
515
- export { CountRequest };
516
- export class AbstractDeleteRequest {
517
- }
518
- let DeleteRequest = class DeleteRequest extends AbstractDeleteRequest {
519
- id; // Session id
520
- query;
521
- constructor(props) {
522
- super();
523
- this.id = randomBytes(32);
524
- this.query = toQuery(props.query);
525
- }
526
- };
527
- __decorate([
528
- field({ type: fixedArray("u8", 32) }),
529
- __metadata("design:type", Uint8Array)
530
- ], DeleteRequest.prototype, "id", void 0);
531
- __decorate([
532
- field({ type: vec(Query) }),
533
- __metadata("design:type", Array)
534
- ], DeleteRequest.prototype, "query", void 0);
535
- DeleteRequest = __decorate([
536
- variant(0),
537
- __metadata("design:paramtypes", [Object])
538
- ], DeleteRequest);
539
- export { DeleteRequest };
540
- const toQuery = (query) => {
541
344
  if (Array.isArray(query)) {
542
345
  return query;
543
346
  }
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/indexer-interface",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "Indexer store interface",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -58,8 +58,8 @@
58
58
  "author": "dao.xyz",
59
59
  "license": "MIT",
60
60
  "dependencies": {
61
- "uuid": "^9.0.0",
61
+ "uuid": "^10.0.0",
62
62
  "@dao-xyz/borsh": "^5.2.3",
63
- "@peerbit/crypto": "^2.3.1"
63
+ "@peerbit/crypto": "^2.3.2"
64
64
  }
65
65
  }
@@ -1,13 +1,6 @@
1
1
  import type { AbstractType } from "@dao-xyz/borsh";
2
2
  import { type IdKey } from "./id.js";
3
- import {
4
- CloseIteratorRequest,
5
- CollectNextRequest,
6
- type CountRequest,
7
- type DeleteRequest,
8
- type SearchRequest,
9
- type SumRequest,
10
- } from "./query.js";
3
+ import type { QueryLike, Sort } from "./query.js";
11
4
 
12
5
  type MaybePromise<T = void> = Promise<T> | T;
13
6
 
@@ -18,21 +11,36 @@ export interface IndexedResult<
18
11
  value: T;
19
12
  }
20
13
 
21
- export interface IndexedResults<
14
+ export type IndexedResults<
22
15
  T extends Record<string, any> = Record<string, any>,
23
- > {
24
- results: IndexedResult<T>[];
25
- kept: number;
26
- }
16
+ > = IndexedResult<T>[];
27
17
 
28
18
  export interface IndexedValue<T = Record<string, any>> {
29
19
  id: IdKey;
30
20
  value: T;
31
21
  }
32
22
 
23
+ export interface IterateOptions {
24
+ query?: QueryLike;
25
+ sort?: Sort | Sort[];
26
+ }
27
+
28
+ export interface DeleteOptions {
29
+ query: QueryLike;
30
+ }
31
+
32
+ export interface SumOptions {
33
+ query?: QueryLike;
34
+ key: string | string[];
35
+ }
36
+
37
+ export interface CountOptions {
38
+ query?: QueryLike;
39
+ }
40
+
33
41
  export type NestedProperties<T> = {
34
42
  match: (obj: any) => obj is T;
35
- query: (nested: T, query: SearchRequest) => Promise<Record<string, any>[]>;
43
+ iterate: (nested: T, query: IterateOptions) => Promise<Record<string, any>[]>;
36
44
  };
37
45
 
38
46
  export type IteratorBatchProperties = {
@@ -51,7 +59,35 @@ export type QueryOptions = { resolve: ResolveOptions };
51
59
  export type ReturnTypeFromQueryOptions<T, O> = O extends { resolve: 'full' } ? T : Partial<T>;
52
60
  */
53
61
 
54
- export type Shape = { [key: string]: true | Shape };
62
+ /* export type Shape = { [key: string]: true | Shape }; */
63
+ /* export type ShapeReturnType<T extends Shape> = {
64
+ [K in keyof T]: T[K] extends true ? any : T[K] extends Shape ? ShapeReturnType<T[K]> : never;
65
+ }; */
66
+
67
+ export type Shape = { [key: string]: true | Shape | Shape[] };
68
+
69
+ export type ShapeReturnType<T> = T extends true
70
+ ? any
71
+ : T extends Shape[]
72
+ ? ShapeReturnType<T[number]>[]
73
+ : T extends Shape
74
+ ? { [K in keyof T]: ShapeReturnType<T[K]> }
75
+ : never;
76
+
77
+ export type ReturnTypeFromShape<T, S> = S extends Shape
78
+ ? ShapeReturnType<S>
79
+ : T;
80
+
81
+ export type IndexIterator<T, S extends Shape | undefined> = {
82
+ next: (
83
+ amount: number,
84
+ ) => MaybePromise<IndexedResults<ReturnTypeFromShape<T, S>>>;
85
+ all: () => MaybePromise<IndexedResults<ReturnTypeFromShape<T, S>>>;
86
+ done: () => boolean | undefined;
87
+ pending: () => MaybePromise<number>;
88
+ close: () => MaybePromise<void>;
89
+ };
90
+
55
91
  export interface Index<T extends Record<string, any>, NestedType = any> {
56
92
  init(
57
93
  properties: IndexEngineInitProperties<T, NestedType>,
@@ -62,18 +98,22 @@ export interface Index<T extends Record<string, any>, NestedType = any> {
62
98
  options?: { shape: Shape },
63
99
  ): MaybePromise<IndexedResult<T> | undefined>;
64
100
  put(value: T, id?: IdKey): MaybePromise<void>;
65
- del(query: DeleteRequest): MaybePromise<IdKey[]>;
66
- sum(query: SumRequest): MaybePromise<bigint | number>;
67
- count(query: CountRequest): MaybePromise<number>;
68
- query(
101
+ del(query: DeleteOptions): MaybePromise<IdKey[]>;
102
+ sum(query: SumOptions): MaybePromise<bigint | number>;
103
+ count(query?: CountOptions): MaybePromise<number>;
104
+ iterate<S extends Shape | undefined = undefined>(
105
+ request?: IterateOptions,
106
+ options?: { shape?: S; reference?: boolean },
107
+ ): IndexIterator<T, S>;
108
+ /* query<O extends { shape?: Shape } | undefined>(
69
109
  query: SearchRequest,
70
- options?: { shape?: Shape; reference?: boolean },
71
- ): MaybePromise<IndexedResults<T>>;
72
- next(
110
+ options?: O & { reference?: boolean },
111
+ ): MaybePromise<IndexedResults<O extends { shape: infer S extends Shape } ? ShapeReturnType<S> : T>>;
112
+ next<O extends { shape?: Shape } | undefined>(
73
113
  query: CollectNextRequest,
74
- options?: { shape?: Shape },
75
- ): MaybePromise<IndexedResults<T>>;
76
- close(query: CloseIteratorRequest): MaybePromise<void>;
114
+ options?: O
115
+ ): MaybePromise<IndexedResults<O extends { shape: infer S extends Shape } ? ShapeReturnType<S> : T>>
116
+ close(query: CloseIteratorRequest): MaybePromise<void>;; */
77
117
 
78
118
  /*
79
119
  query<O extends QueryOptions>(query: SearchRequest, options?: O): MaybePromise<IndexedResults<ReturnTypeFromQueryOptions<T, O>>>;
@@ -81,12 +121,10 @@ export interface Index<T extends Record<string, any>, NestedType = any> {
81
121
  */
82
122
 
83
123
  getSize(): MaybePromise<number>;
84
- getPending(cursorId: string): number | undefined;
85
124
  start(): MaybePromise<void>;
86
125
  stop(): MaybePromise<void>;
87
- get cursorCount(): number;
88
126
  }
89
-
127
+ /*
90
128
  export type IndexIterator<T> = ReturnType<typeof iterate<T>>;
91
129
  export const iterate = <T>(index: Index<T, any>, query: SearchRequest) => {
92
130
  let isDone = false;
@@ -127,22 +165,20 @@ export const iterate = <T>(index: Index<T, any>, query: SearchRequest) => {
127
165
  };
128
166
  };
129
167
 
130
- export type ResultsIterator<T> = ReturnType<typeof iterate<T>>;
168
+ export type ResultsIterator<T> = ReturnType<typeof iterate<T>>; */
131
169
 
132
- export const iteratorInSeries = <T>(...iterators: IndexIterator<T>[]) => {
170
+ export const iteratorInSeries = <T, S extends Shape | undefined>(
171
+ ...iterators: IndexIterator<T, S>[]
172
+ ): IndexIterator<T, S> => {
133
173
  let i = 0;
134
174
  const done = () => i >= iterators.length;
135
175
  let current = iterators[i];
136
176
  const next = async (count: number) => {
137
- let acc: IndexedResults<T> = {
138
- kept: 0,
139
- results: [],
140
- };
177
+ let acc: IndexedResults<ReturnTypeFromShape<T, S>> = [];
141
178
 
142
179
  while (!current.done() && i < iterators.length) {
143
180
  const next = await current.next(count);
144
- acc.kept += next.kept;
145
- acc.results.push(...next.results);
181
+ acc.push(...next);
146
182
 
147
183
  if (current.done()) {
148
184
  i++;
@@ -152,7 +188,7 @@ export const iteratorInSeries = <T>(...iterators: IndexIterator<T>[]) => {
152
188
  current = iterators[i];
153
189
  }
154
190
 
155
- if (acc.results.length >= count) {
191
+ if (acc.length >= count) {
156
192
  break;
157
193
  }
158
194
  }
@@ -170,12 +206,18 @@ export const iteratorInSeries = <T>(...iterators: IndexIterator<T>[]) => {
170
206
  all: async () => {
171
207
  const results = [];
172
208
  while (!done()) {
173
- for (const element of (await next(100)).results) {
209
+ for (const element of await next(100)) {
174
210
  results.push(element);
175
211
  }
176
212
  }
177
213
  return results;
178
214
  },
215
+ pending: async () => {
216
+ let allPendings = await Promise.all(
217
+ iterators.map((iterator) => iterator.pending()),
218
+ );
219
+ return allPendings.reduce((acc, pending) => acc + pending, 0);
220
+ },
179
221
  };
180
222
  };
181
223
 
package/src/index.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from "./id.js";
2
2
  export * from "./query.js";
3
3
  export * from "./index-engine.js";
4
- export * from "./store.js";
5
4
  export * from "./utils.js";
package/src/query.ts CHANGED
@@ -1,12 +1,5 @@
1
- import {
2
- deserialize,
3
- field,
4
- fixedArray,
5
- serialize,
6
- variant,
7
- vec,
8
- } from "@dao-xyz/borsh";
9
- import { randomBytes, sha256Base64Sync, toBase64 } from "@peerbit/crypto";
1
+ import { deserialize, field, serialize, variant, vec } from "@dao-xyz/borsh";
2
+ import { toBase64 } from "@peerbit/crypto";
10
3
  import { v4 as uuid } from "uuid";
11
4
  import {
12
5
  BigUnsignedIntegerValue,
@@ -87,92 +80,6 @@ export class Sort {
87
80
  }
88
81
  }
89
82
 
90
- export abstract class AbstractSearchRequest {}
91
-
92
- /**
93
- * Search with query and collect with sort conditionss
94
- */
95
-
96
- const toArray = <T>(arr: T | T[] | undefined) =>
97
- (arr ? (Array.isArray(arr) ? arr : [arr]) : undefined) || [];
98
-
99
- @variant(0)
100
- export class SearchRequest extends AbstractSearchRequest {
101
- @field({ type: fixedArray("u8", 32) })
102
- id: Uint8Array; // Session id
103
-
104
- @field({ type: vec(Query) })
105
- query: Query[];
106
-
107
- @field({ type: vec(Sort) })
108
- sort: Sort[];
109
-
110
- @field({ type: "u32" })
111
- fetch: number;
112
-
113
- constructor(props?: {
114
- query?:
115
- | Query[]
116
- | Query
117
- | Record<
118
- string,
119
- string | number | bigint | Uint8Array | boolean | null | undefined
120
- >;
121
- sort?: Sort[] | Sort;
122
- fetch?: number;
123
- }) {
124
- super();
125
- this.id = randomBytes(32);
126
- this.query = props?.query ? toQuery(props.query) : [];
127
- this.sort = toArray(props?.sort);
128
- this.fetch = props?.fetch ?? 10; // default fetch 10 documents
129
- }
130
-
131
- private _idString: string;
132
- get idString(): string {
133
- return this._idString || (this._idString = sha256Base64Sync(this.id));
134
- }
135
- }
136
-
137
- /**
138
- * Collect documents from peers using 'collect' session ids. This is used for distributed sorting internally
139
- */
140
- @variant(2)
141
- export class CollectNextRequest extends AbstractSearchRequest {
142
- @field({ type: fixedArray("u8", 32) })
143
- id: Uint8Array; // collect with id
144
-
145
- @field({ type: "u32" })
146
- amount: number; // number of documents to ask for
147
-
148
- constructor(properties: { id: Uint8Array; amount: number }) {
149
- super();
150
- this.id = properties.id;
151
- this.amount = properties.amount;
152
- }
153
-
154
- private _idString: string;
155
- get idString(): string {
156
- return this._idString || (this._idString = sha256Base64Sync(this.id));
157
- }
158
- }
159
-
160
- @variant(3)
161
- export class CloseIteratorRequest extends AbstractSearchRequest {
162
- @field({ type: fixedArray("u8", 32) })
163
- id: Uint8Array; // collect with id
164
-
165
- constructor(properties: { id: Uint8Array }) {
166
- super();
167
- this.id = properties.id;
168
- }
169
-
170
- private _idString: string;
171
- get idString(): string {
172
- return this._idString || (this._idString = sha256Base64Sync(this.id));
173
- }
174
- }
175
-
176
83
  @variant(1)
177
84
  export abstract class LogicalQuery extends Query {}
178
85
 
@@ -403,97 +310,17 @@ export class MemoryCompareQuery extends Query {
403
310
  }
404
311
  } */
405
312
 
406
- export abstract class AbstractAggregationRequest {}
407
-
408
- @variant(0)
409
- export class SumRequest extends AbstractAggregationRequest {
410
- @field({ type: fixedArray("u8", 32) })
411
- id: Uint8Array;
412
-
413
- @field({ type: vec(Query) })
414
- query: Query[];
415
-
416
- @field({ type: vec("string") })
417
- key: string[];
418
-
419
- constructor(props: {
420
- query?:
421
- | Query[]
422
- | Query
423
- | Record<
424
- string,
425
- string | number | bigint | Uint8Array | boolean | null | undefined
426
- >;
427
- key: string[] | string;
428
- }) {
429
- super();
430
- this.id = randomBytes(32);
431
- this.query = props.query ? toQuery(props.query) : [];
432
- this.key = Array.isArray(props.key) ? props.key : [props.key];
433
- }
434
- }
435
-
436
- export abstract class AbstractCountRequest {}
437
-
438
- @variant(0)
439
- export class CountRequest extends AbstractCountRequest {
440
- @field({ type: fixedArray("u8", 32) })
441
- id: Uint8Array; // Session id
442
-
443
- @field({ type: vec(Query) })
444
- query: Query[];
445
-
446
- constructor(
447
- props: {
448
- query:
449
- | Query[]
450
- | Query
451
- | Record<
452
- string,
453
- string | number | bigint | Uint8Array | boolean | null | undefined
454
- >;
455
- } = { query: [] },
456
- ) {
457
- super();
458
- this.id = randomBytes(32);
459
- this.query = toQuery(props.query);
460
- }
461
- }
462
-
463
- export abstract class AbstractDeleteRequest {}
464
-
465
- @variant(0)
466
- export class DeleteRequest extends AbstractDeleteRequest {
467
- @field({ type: fixedArray("u8", 32) })
468
- id: Uint8Array; // Session id
469
-
470
- @field({ type: vec(Query) })
471
- query: Query[];
472
-
473
- constructor(props: {
474
- query:
475
- | Query[]
476
- | Query
477
- | Record<
478
- string,
479
- string | number | bigint | Uint8Array | boolean | null | undefined
480
- >;
481
- }) {
482
- super();
483
- this.id = randomBytes(32);
484
- this.query = toQuery(props.query);
313
+ export type QueryLike =
314
+ | Query[]
315
+ | Query
316
+ | Record<
317
+ string,
318
+ string | number | bigint | Uint8Array | boolean | null | undefined
319
+ >;
320
+ export const toQuery = (query?: QueryLike): Query[] => {
321
+ if (!query) {
322
+ return [];
485
323
  }
486
- }
487
-
488
- const toQuery = (
489
- query:
490
- | Query[]
491
- | Query
492
- | Record<
493
- string,
494
- string | number | bigint | Uint8Array | boolean | null | undefined
495
- >,
496
- ) => {
497
324
  if (Array.isArray(query)) {
498
325
  return query;
499
326
  }
@@ -503,6 +330,7 @@ const toQuery = (
503
330
 
504
331
  return convertQueryRecordToObject(query);
505
332
  };
333
+
506
334
  const convertQueryRecordToObject = (
507
335
  obj: Record<
508
336
  string,
@@ -1,7 +0,0 @@
1
- import { type SearchRequest } from "./query.js";
2
- export type IDocumentStore<T> = {
3
- index: {
4
- search: (query: SearchRequest) => Promise<T[]>;
5
- };
6
- };
7
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC/B,KAAK,EAAE;QAAE,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;KAAE,CAAC;CAC1D,CAAC"}
package/dist/src/store.js DELETED
@@ -1,2 +0,0 @@
1
- import {} from "./query.js";
2
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,YAAY,CAAC"}
package/src/store.ts DELETED
@@ -1,5 +0,0 @@
1
- import { type SearchRequest } from "./query.js";
2
-
3
- export type IDocumentStore<T> = {
4
- index: { search: (query: SearchRequest) => Promise<T[]> };
5
- };