@peerbit/document-interface 1.0.9 → 1.0.10-5fa75cc

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,4 +1,6 @@
1
1
  import { type AbstractType } from "@dao-xyz/borsh";
2
+ import { Entry } from "@peerbit/log";
3
+ import type { SearchRequest, SearchRequestIndexed } from "./request.js";
2
4
  export declare abstract class Result {
3
5
  }
4
6
  export declare class Context {
@@ -13,12 +15,12 @@ export declare class Context {
13
15
  gid: string;
14
16
  });
15
17
  }
16
- export declare class ResultWithSource<T> extends Result {
18
+ export declare class ResultValue<T> extends Result {
17
19
  _source: Uint8Array;
18
20
  context: Context;
19
21
  _type: AbstractType<T>;
20
22
  constructor(opts: {
21
- source: Uint8Array;
23
+ source?: Uint8Array;
22
24
  context: Context;
23
25
  value?: T;
24
26
  indexed?: Record<string, any>;
@@ -28,18 +30,35 @@ export declare class ResultWithSource<T> extends Result {
28
30
  get value(): T;
29
31
  indexed?: Record<string, any>;
30
32
  }
31
- export declare abstract class AbstractSearchResult<T> {
33
+ export declare class ResultIndexedValue<I> extends Result {
34
+ _source: Uint8Array;
35
+ entries: Entry<any>[];
36
+ context: Context;
37
+ _type: AbstractType<I>;
38
+ constructor(opts: {
39
+ source: Uint8Array;
40
+ indexed: I;
41
+ entries: Entry<any>[];
42
+ context: Context;
43
+ });
44
+ init(type: AbstractType<I>): void;
45
+ _value?: I;
46
+ get value(): I;
47
+ indexed?: I;
48
+ }
49
+ export declare abstract class AbstractSearchResult {
32
50
  }
33
- export declare class Results<T> extends AbstractSearchResult<T> {
34
- results: ResultWithSource<T>[];
51
+ export declare class Results<R extends Result> extends AbstractSearchResult {
52
+ results: R[];
35
53
  kept: bigint;
36
54
  constructor(properties: {
37
- results: ResultWithSource<T>[];
55
+ results: R[];
38
56
  kept: bigint;
39
57
  });
40
58
  }
41
- export declare class NoAccess extends AbstractSearchResult<any> {
59
+ export declare class NoAccess extends AbstractSearchResult {
42
60
  }
61
+ export type ResultTypeFromRequest<R> = R extends SearchRequest ? ResultValue<any> : R extends SearchRequestIndexed ? ResultIndexedValue<any> : ResultIndexedValue<any> | ResultValue<any>;
43
62
  /**
44
63
  * Find logs that can be decrypted by certain keys
45
64
  */
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EAKjB,MAAM,gBAAgB,CAAC;AAIxB,8BAAsB,MAAM;CAAG;AAE/B,qBACa,OAAO;IAEnB,OAAO,EAAE,MAAM,CAAC;IAGhB,QAAQ,EAAE,MAAM,CAAC;IAGjB,IAAI,EAAE,MAAM,CAAC;IAGb,GAAG,EAAE,MAAM,CAAC;gBAEA,UAAU,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACZ;CAMD;AAED,qBACa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,MAAM;IAE9C,OAAO,EAAE,UAAU,CAAC;IAGpB,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;gBACX,IAAI,EAAE;QACjB,MAAM,EAAE,UAAU,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B;IAQD,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAI1B,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,KAAK,IAAI,CAAC,CASb;IAGD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAGD,8BAAsB,oBAAoB,CAAC,CAAC;CAAI;AAEhD,qBACa,OAAO,CAAC,CAAC,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAEtD,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAG/B,IAAI,EAAE,MAAM,CAAC;gBAED,UAAU,EAAE;QAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAKxE;AAED,qBACa,QAAS,SAAQ,oBAAoB,CAAC,GAAG,CAAC;CAAG;AAK1D;;GAEG"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EAKjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIxE,8BAAsB,MAAM;CAAG;AAE/B,qBACa,OAAO;IAEnB,OAAO,EAAE,MAAM,CAAC;IAGhB,QAAQ,EAAE,MAAM,CAAC;IAGjB,IAAI,EAAE,MAAM,CAAC;IAGb,GAAG,EAAE,MAAM,CAAC;gBAEA,UAAU,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACZ;CAMD;AAED,qBACa,WAAW,CAAC,CAAC,CAAE,SAAQ,MAAM;IAEzC,OAAO,EAAE,UAAU,CAAC;IAGpB,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;gBACX,IAAI,EAAE;QACjB,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B;IAQD,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAI1B,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,KAAK,IAAI,CAAC,CASb;IAGD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,qBACa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,MAAM;IAEhD,OAAO,EAAE,UAAU,CAAC;IAGpB,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAGtB,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;gBAEX,IAAI,EAAE;QACjB,MAAM,EAAE,UAAU,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,CAAC;KACjB;IASD,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAI1B,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,KAAK,IAAI,CAAC,CASb;IAGD,OAAO,CAAC,EAAE,CAAC,CAAC;CACZ;AAGD,8BAAsB,oBAAoB;CAAG;AAE7C,qBACa,OAAO,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,oBAAoB;IAElE,OAAO,EAAE,CAAC,EAAE,CAAC;IAGb,IAAI,EAAE,MAAM,CAAC;gBAED,UAAU,EAAE;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAKtD;AAED,qBACa,QAAS,SAAQ,oBAAoB;CAAG;AAGrD,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,GAC3D,WAAW,CAAC,GAAG,CAAC,GAChB,CAAC,SAAS,oBAAoB,GAC7B,kBAAkB,CAAC,GAAG,CAAC,GACvB,kBAAkB,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAK/C;;GAEG"}
package/dist/src/query.js CHANGED
@@ -8,6 +8,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
10
  import { deserialize, field, variant, vec, } from "@dao-xyz/borsh";
11
+ import { Entry } from "@peerbit/log";
11
12
  /// ----- RESULTS -----
12
13
  export class Result {
13
14
  }
@@ -44,7 +45,7 @@ Context = __decorate([
44
45
  __metadata("design:paramtypes", [Object])
45
46
  ], Context);
46
47
  export { Context };
47
- let ResultWithSource = class ResultWithSource extends Result {
48
+ let ResultValue = class ResultValue extends Result {
48
49
  _source;
49
50
  context;
50
51
  _type;
@@ -75,16 +76,63 @@ let ResultWithSource = class ResultWithSource extends Result {
75
76
  __decorate([
76
77
  field({ type: Uint8Array }),
77
78
  __metadata("design:type", Uint8Array)
78
- ], ResultWithSource.prototype, "_source", void 0);
79
+ ], ResultValue.prototype, "_source", void 0);
79
80
  __decorate([
80
81
  field({ type: Context }),
81
82
  __metadata("design:type", Context)
82
- ], ResultWithSource.prototype, "context", void 0);
83
- ResultWithSource = __decorate([
83
+ ], ResultValue.prototype, "context", void 0);
84
+ ResultValue = __decorate([
84
85
  variant(0),
85
86
  __metadata("design:paramtypes", [Object])
86
- ], ResultWithSource);
87
- export { ResultWithSource };
87
+ ], ResultValue);
88
+ export { ResultValue };
89
+ let ResultIndexedValue = class ResultIndexedValue extends Result {
90
+ _source;
91
+ entries;
92
+ context;
93
+ _type;
94
+ constructor(opts) {
95
+ super();
96
+ this._source = opts.source;
97
+ this.context = opts.context;
98
+ this.indexed = opts.indexed;
99
+ this.entries = opts.entries;
100
+ this._value = opts.indexed;
101
+ }
102
+ init(type) {
103
+ this._type = type;
104
+ }
105
+ _value;
106
+ get value() {
107
+ if (this._value) {
108
+ return this._value;
109
+ }
110
+ if (!this._source) {
111
+ throw new Error("Missing source binary");
112
+ }
113
+ this._value = deserialize(this._source, this._type);
114
+ return this._value;
115
+ }
116
+ // we never send this over the wire since we can always reconstruct it from value
117
+ indexed;
118
+ };
119
+ __decorate([
120
+ field({ type: Uint8Array }),
121
+ __metadata("design:type", Uint8Array)
122
+ ], ResultIndexedValue.prototype, "_source", void 0);
123
+ __decorate([
124
+ field({ type: vec(Entry) }),
125
+ __metadata("design:type", Array)
126
+ ], ResultIndexedValue.prototype, "entries", void 0);
127
+ __decorate([
128
+ field({ type: Context }),
129
+ __metadata("design:type", Context)
130
+ ], ResultIndexedValue.prototype, "context", void 0);
131
+ ResultIndexedValue = __decorate([
132
+ variant(1),
133
+ __metadata("design:paramtypes", [Object])
134
+ ], ResultIndexedValue);
135
+ export { ResultIndexedValue };
88
136
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
89
137
  export class AbstractSearchResult {
90
138
  }
@@ -98,7 +146,7 @@ let Results = class Results extends AbstractSearchResult {
98
146
  }
99
147
  };
100
148
  __decorate([
101
- field({ type: vec(ResultWithSource) }),
149
+ field({ type: vec(Result) }),
102
150
  __metadata("design:type", Array)
103
151
  ], Results.prototype, "results", void 0);
104
152
  __decorate([
@@ -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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"}
@@ -14,6 +14,21 @@ export declare class SearchRequest extends AbstractSearchRequest {
14
14
  private _idString;
15
15
  get idString(): string;
16
16
  }
17
+ export declare class SearchRequestIndexed extends AbstractSearchRequest {
18
+ id: Uint8Array;
19
+ query: Query[];
20
+ sort: Sort[];
21
+ fetch: number;
22
+ replicate: boolean;
23
+ constructor(props?: {
24
+ query?: Query[] | Query | Record<string, string | number | bigint | Uint8Array | boolean | null | undefined>;
25
+ sort?: Sort[] | Sort;
26
+ fetch?: number;
27
+ replicate?: boolean;
28
+ });
29
+ private _idString;
30
+ get idString(): string;
31
+ }
17
32
  /**
18
33
  * Collect documents from peers using 'collect' session ids. This is used for distributed sorting internally
19
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAW,MAAM,4BAA4B,CAAC;AASlE,8BAAsB,qBAAqB;CAAG;AAE9C,qBACa,aAAc,SAAQ,qBAAqB;IAEvD,EAAE,EAAE,UAAU,CAAC;IAGf,KAAK,EAAE,KAAK,EAAE,CAAC;IAGf,IAAI,EAAE,IAAI,EAAE,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;gBAEF,KAAK,CAAC,EAAE;QACnB,KAAK,CAAC,EACH,KAAK,EAAE,GACP,KAAK,GACL,MAAM,CACN,MAAM,EACN,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CACjE,CAAC;QACL,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf;IAQD,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAI,QAAQ,IAAI,MAAM,CAErB;CACD;AAED;;GAEG;AAEH,qBACa,kBAAmB,SAAQ,qBAAqB;IAE5D,EAAE,EAAE,UAAU,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;gBAEH,UAAU,EAAE;QAAE,EAAE,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAM1D,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAI,QAAQ,IAAI,MAAM,CAErB;CACD;AAED,qBACa,oBAAqB,SAAQ,qBAAqB;IAE9D,EAAE,EAAE,UAAU,CAAC;gBAEH,UAAU,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE;IAK1C,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAI,QAAQ,IAAI,MAAM,CAErB;CACD;AAED,8BAAsB,qBAAqB;CAAG;AAE9C,qBACa,aAAc,SAAQ,qBAAqB;IAEvD,EAAE,EAAE,UAAU,CAAC;IAGf,KAAK,EAAE,KAAK,EAAE,CAAC;gBAEH,KAAK,EAAE;QAClB,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;CAKD;AAED,8BAAsB,0BAA0B;CAAG;AAEnD,qBACa,UAAW,SAAQ,0BAA0B;IAEzD,EAAE,EAAE,UAAU,CAAC;IAGf,KAAK,EAAE,KAAK,EAAE,CAAC;IAGf,GAAG,EAAE,MAAM,EAAE,CAAC;gBAEF,KAAK,EAAE;QAClB,KAAK,CAAC,EACH,KAAK,EAAE,GACP,KAAK,GACL,MAAM,CACN,MAAM,EACN,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CACjE,CAAC;QACL,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;KACvB;CAMD;AAED,8BAAsB,oBAAoB;CAAG;AAE7C,qBACa,YAAa,SAAQ,oBAAoB;IAErD,EAAE,EAAE,UAAU,CAAC;IAGf,KAAK,EAAE,KAAK,EAAE,CAAC;gBAGd,KAAK,GAAE;QACN,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;KACW;CAMlB"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,50 @@ SearchRequest = __decorate([
54
54
  __metadata("design:paramtypes", [Object])
55
55
  ], SearchRequest);
56
56
  export { SearchRequest };
57
+ let SearchRequestIndexed = class SearchRequestIndexed extends AbstractSearchRequest {
58
+ id; // Session id
59
+ query;
60
+ sort;
61
+ fetch;
62
+ replicate; // is the intent to replicate?
63
+ constructor(props) {
64
+ super();
65
+ this.id = randomBytes(32);
66
+ this.query = props?.query ? toQuery(props.query) : [];
67
+ this.sort = toArray(props?.sort);
68
+ this.fetch = props?.fetch ?? 10; // default fetch 10 documents
69
+ this.replicate = props.replicate ?? false;
70
+ }
71
+ _idString;
72
+ get idString() {
73
+ return this._idString || (this._idString = sha256Base64Sync(this.id));
74
+ }
75
+ };
76
+ __decorate([
77
+ field({ type: fixedArray("u8", 32) }),
78
+ __metadata("design:type", Uint8Array)
79
+ ], SearchRequestIndexed.prototype, "id", void 0);
80
+ __decorate([
81
+ field({ type: vec(Query) }),
82
+ __metadata("design:type", Array)
83
+ ], SearchRequestIndexed.prototype, "query", void 0);
84
+ __decorate([
85
+ field({ type: vec(Sort) }),
86
+ __metadata("design:type", Array)
87
+ ], SearchRequestIndexed.prototype, "sort", void 0);
88
+ __decorate([
89
+ field({ type: "u32" }),
90
+ __metadata("design:type", Number)
91
+ ], SearchRequestIndexed.prototype, "fetch", void 0);
92
+ __decorate([
93
+ field({ type: "bool" }),
94
+ __metadata("design:type", Boolean)
95
+ ], SearchRequestIndexed.prototype, "replicate", void 0);
96
+ SearchRequestIndexed = __decorate([
97
+ variant(1),
98
+ __metadata("design:paramtypes", [Object])
99
+ ], SearchRequestIndexed);
100
+ export { SearchRequestIndexed };
57
101
  /**
58
102
  * Collect documents from peers using 'collect' session ids. This is used for distributed sorting internally
59
103
  */
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,65 +1,66 @@
1
1
  {
2
- "name": "@peerbit/document-interface",
3
- "version": "1.0.9",
4
- "description": "Document store interface",
5
- "sideEffects": false,
6
- "type": "module",
7
- "types": "./dist/src/index.d.ts",
8
- "typesVersions": {
9
- "*": {
10
- "*": [
11
- "*",
12
- "dist/*",
13
- "dist/src/*",
14
- "dist/src/*/index"
15
- ],
16
- "src/*": [
17
- "*",
18
- "dist/*",
19
- "dist/src/*",
20
- "dist/src/*/index"
21
- ]
22
- }
23
- },
24
- "files": [
25
- "src",
26
- "dist",
27
- "!dist/e2e",
28
- "!dist/test",
29
- "!**/*.tsbuildinfo"
30
- ],
31
- "exports": {
32
- ".": {
33
- "types": "./dist/src/index.d.ts",
34
- "import": "./dist/src/index.js"
35
- }
36
- },
37
- "eslintConfig": {
38
- "extends": "peerbit",
39
- "parserOptions": {
40
- "project": true,
41
- "sourceType": "module"
42
- },
43
- "ignorePatterns": [
44
- "!.aegir.js",
45
- "test/ts-use",
46
- "*.d.ts"
47
- ]
48
- },
49
- "publishConfig": {
50
- "access": "public"
51
- },
52
- "scripts": {
53
- "clean": "aegir clean",
54
- "build": "aegir build --no-bundle",
55
- "test": "",
56
- "lint": "aegir lint"
57
- },
58
- "author": "dao.xyz",
59
- "license": "MIT",
60
- "dependencies": {
61
- "@dao-xyz/borsh": "^5.2.3",
62
- "@peerbit/crypto": "^2.3.2",
63
- "@peerbit/indexer-interface": "^2.0.2"
64
- }
2
+ "name": "@peerbit/document-interface",
3
+ "version": "1.0.10-5fa75cc",
4
+ "description": "Document store interface",
5
+ "sideEffects": false,
6
+ "type": "module",
7
+ "types": "./dist/src/index.d.ts",
8
+ "typesVersions": {
9
+ "*": {
10
+ "*": [
11
+ "*",
12
+ "dist/*",
13
+ "dist/src/*",
14
+ "dist/src/*/index"
15
+ ],
16
+ "src/*": [
17
+ "*",
18
+ "dist/*",
19
+ "dist/src/*",
20
+ "dist/src/*/index"
21
+ ]
22
+ }
23
+ },
24
+ "files": [
25
+ "src",
26
+ "dist",
27
+ "!dist/e2e",
28
+ "!dist/test",
29
+ "!**/*.tsbuildinfo"
30
+ ],
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/src/index.d.ts",
34
+ "import": "./dist/src/index.js"
35
+ }
36
+ },
37
+ "eslintConfig": {
38
+ "extends": "peerbit",
39
+ "parserOptions": {
40
+ "project": true,
41
+ "sourceType": "module"
42
+ },
43
+ "ignorePatterns": [
44
+ "!.aegir.js",
45
+ "test/ts-use",
46
+ "*.d.ts"
47
+ ]
48
+ },
49
+ "publishConfig": {
50
+ "access": "public"
51
+ },
52
+ "scripts": {
53
+ "clean": "aegir clean",
54
+ "build": "aegir build --no-bundle",
55
+ "test": "",
56
+ "lint": "aegir lint"
57
+ },
58
+ "author": "dao.xyz",
59
+ "license": "MIT",
60
+ "dependencies": {
61
+ "@dao-xyz/borsh": "^5.2.3",
62
+ "@peerbit/crypto": "2.3.3-5fa75cc",
63
+ "@peerbit/indexer-interface": "2.0.3-5fa75cc",
64
+ "@peerbit/log": "4.0.26-5fa75cc"
65
+ }
65
66
  }
package/src/query.ts CHANGED
@@ -5,6 +5,8 @@ import {
5
5
  variant,
6
6
  vec,
7
7
  } from "@dao-xyz/borsh";
8
+ import { Entry } from "@peerbit/log";
9
+ import type { SearchRequest, SearchRequestIndexed } from "./request.js";
8
10
 
9
11
  /// ----- RESULTS -----
10
12
 
@@ -38,7 +40,7 @@ export class Context {
38
40
  }
39
41
 
40
42
  @variant(0)
41
- export class ResultWithSource<T> extends Result {
43
+ export class ResultValue<T> extends Result {
42
44
  @field({ type: Uint8Array })
43
45
  _source: Uint8Array;
44
46
 
@@ -47,7 +49,7 @@ export class ResultWithSource<T> extends Result {
47
49
 
48
50
  _type: AbstractType<T>;
49
51
  constructor(opts: {
50
- source: Uint8Array;
52
+ source?: Uint8Array;
51
53
  context: Context;
52
54
  value?: T;
53
55
  indexed?: Record<string, any>;
@@ -79,18 +81,65 @@ export class ResultWithSource<T> extends Result {
79
81
  indexed?: Record<string, any>;
80
82
  }
81
83
 
84
+ @variant(1)
85
+ export class ResultIndexedValue<I> extends Result {
86
+ @field({ type: Uint8Array })
87
+ _source: Uint8Array;
88
+
89
+ @field({ type: vec(Entry) })
90
+ entries: Entry<any>[];
91
+
92
+ @field({ type: Context })
93
+ context: Context;
94
+
95
+ _type: AbstractType<I>;
96
+
97
+ constructor(opts: {
98
+ source: Uint8Array;
99
+ indexed: I;
100
+ entries: Entry<any>[];
101
+ context: Context;
102
+ }) {
103
+ super();
104
+ this._source = opts.source;
105
+ this.context = opts.context;
106
+ this.indexed = opts.indexed;
107
+ this.entries = opts.entries;
108
+ this._value = opts.indexed;
109
+ }
110
+
111
+ init(type: AbstractType<I>) {
112
+ this._type = type;
113
+ }
114
+
115
+ _value?: I;
116
+ get value(): I {
117
+ if (this._value) {
118
+ return this._value;
119
+ }
120
+ if (!this._source) {
121
+ throw new Error("Missing source binary");
122
+ }
123
+ this._value = deserialize(this._source, this._type);
124
+ return this._value;
125
+ }
126
+
127
+ // we never send this over the wire since we can always reconstruct it from value
128
+ indexed?: I;
129
+ }
130
+
82
131
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
83
- export abstract class AbstractSearchResult<T> {}
132
+ export abstract class AbstractSearchResult {}
84
133
 
85
134
  @variant(0)
86
- export class Results<T> extends AbstractSearchResult<T> {
87
- @field({ type: vec(ResultWithSource) })
88
- results: ResultWithSource<T>[];
135
+ export class Results<R extends Result> extends AbstractSearchResult {
136
+ @field({ type: vec(Result) })
137
+ results: R[];
89
138
 
90
139
  @field({ type: "u64" })
91
140
  kept: bigint; // how many results that were not sent, but can be collected later
92
141
 
93
- constructor(properties: { results: ResultWithSource<T>[]; kept: bigint }) {
142
+ constructor(properties: { results: R[]; kept: bigint }) {
94
143
  super();
95
144
  this.kept = properties.kept;
96
145
  this.results = properties.results;
@@ -98,7 +147,14 @@ export class Results<T> extends AbstractSearchResult<T> {
98
147
  }
99
148
 
100
149
  @variant(1)
101
- export class NoAccess extends AbstractSearchResult<any> {}
150
+ export class NoAccess extends AbstractSearchResult {}
151
+
152
+ // for SearchRequest we wnat to return ResultsWithSource<T> for IndexedSearchRequest we want to return ResultsIndexed<T>
153
+ export type ResultTypeFromRequest<R> = R extends SearchRequest
154
+ ? ResultValue<any>
155
+ : R extends SearchRequestIndexed
156
+ ? ResultIndexedValue<any>
157
+ : ResultIndexedValue<any> | ResultValue<any>;
102
158
 
103
159
  /* @variant(5)
104
160
  export class LogQuery extends Query { } */
package/src/request.ts CHANGED
@@ -49,6 +49,49 @@ export class SearchRequest extends AbstractSearchRequest {
49
49
  }
50
50
  }
51
51
 
52
+ @variant(1)
53
+ export class SearchRequestIndexed extends AbstractSearchRequest {
54
+ @field({ type: fixedArray("u8", 32) })
55
+ id: Uint8Array; // Session id
56
+
57
+ @field({ type: vec(Query) })
58
+ query: Query[];
59
+
60
+ @field({ type: vec(Sort) })
61
+ sort: Sort[];
62
+
63
+ @field({ type: "u32" })
64
+ fetch: number;
65
+
66
+ @field({ type: "bool" })
67
+ replicate: boolean; // is the intent to replicate?
68
+
69
+ constructor(props?: {
70
+ query?:
71
+ | Query[]
72
+ | Query
73
+ | Record<
74
+ string,
75
+ string | number | bigint | Uint8Array | boolean | null | undefined
76
+ >;
77
+ sort?: Sort[] | Sort;
78
+ fetch?: number;
79
+ replicate?: boolean;
80
+ }) {
81
+ super();
82
+ this.id = randomBytes(32);
83
+ this.query = props?.query ? toQuery(props.query) : [];
84
+ this.sort = toArray(props?.sort);
85
+ this.fetch = props?.fetch ?? 10; // default fetch 10 documents
86
+ this.replicate = props.replicate ?? false;
87
+ }
88
+
89
+ private _idString: string;
90
+ get idString(): string {
91
+ return this._idString || (this._idString = sha256Base64Sync(this.id));
92
+ }
93
+ }
94
+
52
95
  /**
53
96
  * Collect documents from peers using 'collect' session ids. This is used for distributed sorting internally
54
97
  */