@xyo-network/boundwitness-builder 2.64.10 → 2.65.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.
- package/dist/cjs/Builder.js.map +1 -1
- package/dist/cjs/Query/QueryBoundWitness.js +8 -0
- package/dist/cjs/Query/QueryBoundWitness.js.map +1 -0
- package/dist/cjs/Query/QueryBoundWitnessBuilder.js +31 -0
- package/dist/cjs/Query/QueryBoundWitnessBuilder.js.map +1 -0
- package/dist/cjs/Query/QueryBoundWitnessValidator.js +58 -0
- package/dist/cjs/Query/QueryBoundWitnessValidator.js.map +1 -0
- package/dist/cjs/Query/QueryBoundWitnessWrapper.js +62 -0
- package/dist/cjs/Query/QueryBoundWitnessWrapper.js.map +1 -0
- package/dist/cjs/Query/index.js +8 -0
- package/dist/cjs/Query/index.js.map +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +17066 -627
- package/dist/esm/Builder.js.map +1 -1
- package/dist/esm/Query/QueryBoundWitness.js +4 -0
- package/dist/esm/Query/QueryBoundWitness.js.map +1 -0
- package/dist/esm/Query/QueryBoundWitnessBuilder.js +26 -0
- package/dist/esm/Query/QueryBoundWitnessBuilder.js.map +1 -0
- package/dist/esm/Query/QueryBoundWitnessValidator.js +47 -0
- package/dist/esm/Query/QueryBoundWitnessValidator.js.map +1 -0
- package/dist/esm/Query/QueryBoundWitnessWrapper.js +46 -0
- package/dist/esm/Query/QueryBoundWitnessWrapper.js.map +1 -0
- package/dist/esm/Query/index.js +5 -0
- package/dist/esm/Query/index.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/types/Builder.d.ts +1 -2
- package/dist/types/Builder.d.ts.map +1 -1
- package/dist/types/Query/QueryBoundWitness.d.ts +17 -0
- package/dist/types/Query/QueryBoundWitness.d.ts.map +1 -0
- package/dist/types/Query/QueryBoundWitnessBuilder.d.ts +12 -0
- package/dist/types/Query/QueryBoundWitnessBuilder.d.ts.map +1 -0
- package/dist/types/Query/QueryBoundWitnessValidator.d.ts +11 -0
- package/dist/types/Query/QueryBoundWitnessValidator.d.ts.map +1 -0
- package/dist/types/Query/QueryBoundWitnessWrapper.d.ts +18 -0
- package/dist/types/Query/QueryBoundWitnessWrapper.d.ts.map +1 -0
- package/dist/types/Query/index.d.ts +5 -0
- package/dist/types/Query/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +15 -12
- package/src/Builder.ts +1 -2
- package/src/Query/QueryBoundWitness.ts +13 -0
- package/src/Query/QueryBoundWitnessBuilder.ts +34 -0
- package/src/Query/QueryBoundWitnessValidator.ts +51 -0
- package/src/Query/QueryBoundWitnessWrapper.ts +65 -0
- package/src/Query/index.ts +4 -0
- package/src/index.ts +1 -0
package/dist/esm/Builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAAgB,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAQ,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
+
export const QueryBoundWitnessSchema = BoundWitnessSchema;
|
|
3
|
+
export const isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== undefined;
|
|
4
|
+
//# sourceMappingURL=QueryBoundWitness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitness.js","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,kBAAkB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAIlG,MAAM,CAAC,MAAM,uBAAuB,GAA4B,kBAAkB,CAAA;AAQlF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAkB,EAA0B,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAK,CAAuB,EAAE,KAAK,KAAK,SAAS,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert';
|
|
2
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
3
|
+
import { BoundWitnessBuilder } from '../Builder';
|
|
4
|
+
import { QueryBoundWitnessSchema } from './QueryBoundWitness';
|
|
5
|
+
export class QueryBoundWitnessBuilder extends BoundWitnessBuilder {
|
|
6
|
+
_query;
|
|
7
|
+
_resultSet;
|
|
8
|
+
async hashableFields() {
|
|
9
|
+
return {
|
|
10
|
+
...(await super.hashableFields()),
|
|
11
|
+
query: assertEx(await this._query?.hashAsync(), 'No Query Specified'),
|
|
12
|
+
schema: QueryBoundWitnessSchema,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
query(query) {
|
|
16
|
+
this._query = PayloadWrapper.wrap(query);
|
|
17
|
+
this.payload(this._query.payload());
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
resultSet(payloadSet) {
|
|
21
|
+
this._resultSet = PayloadWrapper.wrap(payloadSet);
|
|
22
|
+
this.payload(this._resultSet.payload());
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=QueryBoundWitnessBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitnessBuilder.js","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAqB,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAEhF,MAAM,OAAO,wBAGX,SAAQ,mBAAkC;IAClC,MAAM,CAAoC;IAC1C,UAAU,CAA+C;IAExD,KAAK,CAAC,cAAc;QAC3B,OAAO;YACL,GAAG,CAAC,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;YACjC,KAAK,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,oBAAoB,CAAC;YACrE,MAAM,EAAE,uBAAuB;SAChC,CAAA;IACH,CAAC;IAED,KAAK,CAA4C,KAAQ;QACvD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,SAAS,CAAkE,UAAa;QACtF,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;QACvC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert';
|
|
2
|
+
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
|
|
3
|
+
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
4
|
+
import { handleError } from '@xyo-network/error';
|
|
5
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
6
|
+
import { QueryBoundWitnessSchema } from './QueryBoundWitness';
|
|
7
|
+
export class QueryBoundWitnessValidator extends BoundWitnessValidator {
|
|
8
|
+
_query;
|
|
9
|
+
get expectedSchema() {
|
|
10
|
+
return QueryBoundWitnessSchema;
|
|
11
|
+
}
|
|
12
|
+
static isQueryBoundWitnessValidator(obj) {
|
|
13
|
+
return obj?.constructor === QueryBoundWitnessValidator;
|
|
14
|
+
}
|
|
15
|
+
async validate() {
|
|
16
|
+
return [
|
|
17
|
+
...(await super.validate()),
|
|
18
|
+
// ...this.validateResultSet()
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
async validateResultSet() {
|
|
22
|
+
const errors = [];
|
|
23
|
+
try {
|
|
24
|
+
const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet');
|
|
25
|
+
const wrapper = BoundWitnessWrapper.parse(this.obj);
|
|
26
|
+
const resultSet = PayloadWrapper.wrap((await wrapper.payloadMap())[resultSetHash]);
|
|
27
|
+
const required = resultSet?.payload().required;
|
|
28
|
+
if (required) {
|
|
29
|
+
Object.entries(required).forEach(([key, value]) => {
|
|
30
|
+
const found = wrapper.payloadSchemas.reduce((count, schema) => {
|
|
31
|
+
return count + (schema === key ? 1 : 0);
|
|
32
|
+
}, 0);
|
|
33
|
+
if (found !== value) {
|
|
34
|
+
errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`));
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (ex) {
|
|
40
|
+
handleError(ex, (error) => {
|
|
41
|
+
errors.push(error);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return errors;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=QueryBoundWitnessValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitnessValidator.js","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAqB,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAChF,MAAM,OAAO,0BAAoD,SAAQ,qBAAwC;IACvG,MAAM,CAA+B;IAE7C,IAAuB,cAAc;QACnC,OAAO,uBAAuB,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAY;QAC9C,OAAQ,GAAkC,EAAE,WAAW,KAAK,0BAA0B,CAAA;IACxF,CAAC;IAEQ,KAAK,CAAC,QAAQ;QACrB,OAAO;YACL,GAAG,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,8BAA8B;SAC/B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,MAAM,GAAY,EAAE,CAAA;QAC1B,IAAI;YACF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;YACvE,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnD,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAoB,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa,CAAsB,CAAC,CAAA;YAC1H,MAAM,QAAQ,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAA;YAC9C,IAAI,QAAQ,EAAE;gBACZ,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBAChD,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;wBAC5D,OAAO,KAAK,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBACzC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACL,IAAI,KAAK,KAAK,KAAK,EAAE;wBACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,sCAAsC,GAAG,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;qBACnF;gBACH,CAAC,CAAC,CAAA;aACH;SACF;QAAC,OAAO,EAAE,EAAE;YACX,WAAW,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;SACH;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert';
|
|
2
|
+
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
3
|
+
import { PayloadHasher } from '@xyo-network/core';
|
|
4
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
|
+
import compact from 'lodash/compact';
|
|
6
|
+
import { QueryBoundWitnessValidator } from './QueryBoundWitnessValidator';
|
|
7
|
+
export class QueryBoundWitnessWrapper extends BoundWitnessWrapper {
|
|
8
|
+
_payloadsWithoutQuery;
|
|
9
|
+
_query;
|
|
10
|
+
_resultSet;
|
|
11
|
+
isQueryBoundWitnessWrapper = true;
|
|
12
|
+
static parseQuery(obj, payloads) {
|
|
13
|
+
assertEx(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper');
|
|
14
|
+
switch (typeof obj) {
|
|
15
|
+
case 'object': {
|
|
16
|
+
const castWrapper = obj;
|
|
17
|
+
const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper(obj, payloads);
|
|
18
|
+
/*if (!wrapper.valid) {
|
|
19
|
+
console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)
|
|
20
|
+
}*/
|
|
21
|
+
return wrapper;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
throw Error(`Unable to parse [${typeof obj}]`);
|
|
25
|
+
}
|
|
26
|
+
getErrors() {
|
|
27
|
+
return new QueryBoundWitnessValidator(this.boundwitness).validate();
|
|
28
|
+
}
|
|
29
|
+
async getQuery() {
|
|
30
|
+
const payloadMap = await this.allPayloadMap();
|
|
31
|
+
this._query = this._query ?? payloadMap[this.boundwitness.query];
|
|
32
|
+
return assertEx(this._query, `Missing Query [${this.boundwitness}]`);
|
|
33
|
+
}
|
|
34
|
+
async getResultSet() {
|
|
35
|
+
const resultSetHash = this.boundwitness.resultSet;
|
|
36
|
+
const payloadMap = await this.payloadMap();
|
|
37
|
+
return assertEx((this._resultSet = this._resultSet ?? (resultSetHash ? payloadMap[resultSetHash] : undefined)), `Missing resultSet [${resultSetHash}]`);
|
|
38
|
+
}
|
|
39
|
+
async getWrappedPayloads() {
|
|
40
|
+
this._payloadsWithoutQuery =
|
|
41
|
+
this._payloadsWithoutQuery ??
|
|
42
|
+
compact((await PayloadHasher.filterExclude((await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()), this.payload().query)).map((payload) => PayloadWrapper.wrap(payload)));
|
|
43
|
+
return this._payloadsWithoutQuery;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=QueryBoundWitnessWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitnessWrapper.js","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAEzE,MAAM,OAAO,wBAAkD,SAAQ,mBAAsC;IACnG,qBAAqB,CAAuC;IAC5D,MAAM,CAAe;IACrB,UAAU,CAA+B;IAEzC,0BAA0B,GAAG,IAAI,CAAA;IAEzC,MAAM,CAAC,UAAU,CAA0B,GAAY,EAAE,QAAoB;QAC3E,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,wDAAwD,CAAC,CAAA;QACvF,QAAQ,OAAO,GAAG,EAAE;YAClB,KAAK,QAAQ,CAAC,CAAC;gBACb,MAAM,WAAW,GAAG,GAAkC,CAAA;gBACtD,MAAM,OAAO,GAAG,WAAW,EAAE,0BAA0B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,wBAAwB,CAAI,GAAwB,EAAE,QAAQ,CAAC,CAAA;gBAC3I;;mBAEG;gBACH,OAAO,OAAO,CAAA;aACf;SACF;QACD,MAAM,KAAK,CAAC,oBAAoB,OAAO,GAAG,GAAG,CAAC,CAAA;IAChD,CAAC;IAEQ,SAAS;QAChB,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAmB,CAAA;QACnF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAA;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QAC1C,OAAO,QAAQ,CACb,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,UAAU,CAAC,aAAa,CAAmC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACjI,sBAAsB,aAAa,GAAG,CACvC,CAAA;IACH,CAAC;IAEQ,KAAK,CAAC,kBAAkB;QAC/B,IAAI,CAAC,qBAAqB;YACxB,IAAI,CAAC,qBAAqB;gBAC1B,OAAO,CACL,CACE,MAAM,aAAa,CAAC,aAAa,CAC/B,CAAC,MAAM,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EACtE,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACrB,CACF,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CACjD,CAAA;QACH,OAAO,IAAI,CAAC,qBAAqB,CAAA;IACnC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Query/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
|
package/dist/types/Builder.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
2
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
3
|
import { Data } from '@xyo-network/core';
|
|
4
|
-
import { ModuleError } from '@xyo-network/
|
|
5
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
4
|
+
import { ModuleError, Payload } from '@xyo-network/payload-model';
|
|
6
5
|
import { Logger } from '@xyo-network/shared';
|
|
7
6
|
export interface BoundWitnessBuilderConfig {
|
|
8
7
|
/** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAAE,IAAI,EAA6B,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAAE,IAAI,EAA6B,MAAM,mBAAmB,CAAA;AAEnE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAG5C,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAU5H,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAA8B,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAT9G,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAa;gBAEV,MAAM,GAAE,yBAAqD,EAAqB,MAAM,CAAC,oBAAQ;IAEtH,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6B9E,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IA0B9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IASvC,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;YAOzE,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;CAG7B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model';
|
|
2
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
3
|
+
export type QueryBoundWitnessSchema = BoundWitnessSchema;
|
|
4
|
+
export declare const QueryBoundWitnessSchema: QueryBoundWitnessSchema;
|
|
5
|
+
export type QueryBoundWitness = BoundWitness<{
|
|
6
|
+
query: string;
|
|
7
|
+
resultSet?: string;
|
|
8
|
+
schema: BoundWitnessSchema;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const isQueryBoundWitness: (x?: Payload | null) => x is import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
11
|
+
query: string;
|
|
12
|
+
resultSet?: string | undefined;
|
|
13
|
+
schema: BoundWitnessSchema;
|
|
14
|
+
} & {
|
|
15
|
+
schema: "network.xyo.boundwitness";
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=QueryBoundWitness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAkB,MAAM,iCAAiC,CAAA;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAA;AACxD,eAAO,MAAM,uBAAuB,EAAE,uBAA4C,CAAA;AAElF,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,kBAAkB,CAAA;CAC3B,CAAC,CAAA;AAEF,eAAO,MAAM,mBAAmB,OAAQ,OAAO,GAAG,IAAI;WAL7C,MAAM;;YAEL,kBAAkB;;;CAGyH,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PayloadSetPayload, Query } from '@xyo-network/payload-model';
|
|
2
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
3
|
+
import { BoundWitnessBuilder } from '../Builder';
|
|
4
|
+
import { QueryBoundWitness } from './QueryBoundWitness';
|
|
5
|
+
export declare class QueryBoundWitnessBuilder<TBoundWitness extends QueryBoundWitness = QueryBoundWitness, TQuery extends Query = Query> extends BoundWitnessBuilder<TBoundWitness> {
|
|
6
|
+
private _query;
|
|
7
|
+
private _resultSet;
|
|
8
|
+
hashableFields(): Promise<TBoundWitness>;
|
|
9
|
+
query<T extends TQuery | PayloadWrapper<TQuery>>(query: T): this;
|
|
10
|
+
resultSet<T extends PayloadSetPayload | PayloadWrapper<PayloadSetPayload>>(payloadSet: T): this;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=QueryBoundWitnessBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAA;AAEhF,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,UAAU,CAA+C;IAElD,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IAMzD,SAAS,CAAC,CAAC,SAAS,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC;CAKzF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
|
|
2
|
+
import { Query } from '@xyo-network/payload-model';
|
|
3
|
+
import { QueryBoundWitness } from './QueryBoundWitness';
|
|
4
|
+
export declare class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
|
|
5
|
+
private _query;
|
|
6
|
+
protected get expectedSchema(): string;
|
|
7
|
+
static isQueryBoundWitnessValidator(obj: unknown): boolean;
|
|
8
|
+
validate(): Promise<Error[]>;
|
|
9
|
+
validateResultSet(): Promise<Error[]>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=QueryBoundWitnessValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitnessValidator.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessValidator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAG3E,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGrE,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAA;AAChF,qBAAa,0BAA0B,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,qBAAqB,CAAC,iBAAiB,CAAC;IAC/G,OAAO,CAAC,MAAM,CAA+B;IAE7C,cAAuB,cAAc,IAAI,MAAM,CAE9C;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO;IAIjC,QAAQ;IAOjB,iBAAiB;CAwBxB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
2
|
+
import { Payload, Query } from '@xyo-network/payload-model';
|
|
3
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
4
|
+
import { QueryBoundWitness } from './QueryBoundWitness';
|
|
5
|
+
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
|
+
private _payloadsWithoutQuery;
|
|
7
|
+
private _query;
|
|
8
|
+
private _resultSet;
|
|
9
|
+
private isQueryBoundWitnessWrapper;
|
|
10
|
+
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
|
|
11
|
+
getErrors(): Promise<Error[]>;
|
|
12
|
+
getQuery(): Promise<T>;
|
|
13
|
+
getResultSet(): Promise<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/payload-model").PayloadSet & {
|
|
14
|
+
schema: "network.xyo.payload.set";
|
|
15
|
+
}>;
|
|
16
|
+
getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAGvD,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,0BAA0B,CAAO;IAEzC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC;IAelG,SAAS;IAIZ,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMtB,YAAY;;;IASH,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAaxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Query/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
|
package/package.json
CHANGED
|
@@ -12,20 +12,23 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.9.3",
|
|
14
14
|
"@xylabs/buffer": "^2.9.3",
|
|
15
|
-
"@xyo-network/account-model": "^2.
|
|
16
|
-
"@xyo-network/boundwitness-model": "^2.
|
|
17
|
-
"@xyo-network/boundwitness-
|
|
18
|
-
"@xyo-network/
|
|
19
|
-
"@xyo-network/
|
|
20
|
-
"@xyo-network/
|
|
21
|
-
"@xyo-network/payload
|
|
22
|
-
"@xyo-network/
|
|
23
|
-
"
|
|
15
|
+
"@xyo-network/account-model": "^2.65.1",
|
|
16
|
+
"@xyo-network/boundwitness-model": "^2.65.1",
|
|
17
|
+
"@xyo-network/boundwitness-validator": "^2.65.1",
|
|
18
|
+
"@xyo-network/boundwitness-wrapper": "^2.65.1",
|
|
19
|
+
"@xyo-network/core": "^2.65.1",
|
|
20
|
+
"@xyo-network/error": "^2.65.1",
|
|
21
|
+
"@xyo-network/payload": "^2.65.1",
|
|
22
|
+
"@xyo-network/payload-model": "^2.65.1",
|
|
23
|
+
"@xyo-network/payload-wrapper": "^2.65.1",
|
|
24
|
+
"@xyo-network/shared": "^2.65.1",
|
|
25
|
+
"async-mutex": "^0.4.0",
|
|
26
|
+
"lodash": "^4.17.21"
|
|
24
27
|
},
|
|
25
28
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
26
29
|
"devDependencies": {
|
|
27
|
-
"@xylabs/ts-scripts-yarn3": "^2.18.
|
|
28
|
-
"@xylabs/tsconfig": "^2.18.
|
|
30
|
+
"@xylabs/ts-scripts-yarn3": "^2.18.10",
|
|
31
|
+
"@xylabs/tsconfig": "^2.18.10",
|
|
29
32
|
"typescript": "^5.1.6"
|
|
30
33
|
},
|
|
31
34
|
"browser": "dist/esm/index.js",
|
|
@@ -60,5 +63,5 @@
|
|
|
60
63
|
},
|
|
61
64
|
"sideEffects": false,
|
|
62
65
|
"types": "dist/types/index.d.ts",
|
|
63
|
-
"version": "2.
|
|
66
|
+
"version": "2.65.1"
|
|
64
67
|
}
|
package/src/Builder.ts
CHANGED
|
@@ -4,9 +4,8 @@ import { AccountInstance } from '@xyo-network/account-model'
|
|
|
4
4
|
import { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'
|
|
5
5
|
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
6
6
|
import { Data, PayloadHasher, sortFields } from '@xyo-network/core'
|
|
7
|
-
import { ModuleError } from '@xyo-network/module-model'
|
|
8
7
|
import { PayloadWrapper } from '@xyo-network/payload'
|
|
9
|
-
import { Payload } from '@xyo-network/payload-model'
|
|
8
|
+
import { ModuleError, Payload } from '@xyo-network/payload-model'
|
|
10
9
|
import { Logger } from '@xyo-network/shared'
|
|
11
10
|
import { Mutex } from 'async-mutex'
|
|
12
11
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'
|
|
2
|
+
import { Payload } from '@xyo-network/payload-model'
|
|
3
|
+
|
|
4
|
+
export type QueryBoundWitnessSchema = BoundWitnessSchema
|
|
5
|
+
export const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema
|
|
6
|
+
|
|
7
|
+
export type QueryBoundWitness = BoundWitness<{
|
|
8
|
+
query: string
|
|
9
|
+
resultSet?: string
|
|
10
|
+
schema: BoundWitnessSchema
|
|
11
|
+
}>
|
|
12
|
+
|
|
13
|
+
export const isQueryBoundWitness = (x?: Payload | null): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { PayloadSetPayload, Query } from '@xyo-network/payload-model'
|
|
3
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
4
|
+
|
|
5
|
+
import { BoundWitnessBuilder } from '../Builder'
|
|
6
|
+
import { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'
|
|
7
|
+
|
|
8
|
+
export class QueryBoundWitnessBuilder<
|
|
9
|
+
TBoundWitness extends QueryBoundWitness = QueryBoundWitness,
|
|
10
|
+
TQuery extends Query = Query,
|
|
11
|
+
> extends BoundWitnessBuilder<TBoundWitness> {
|
|
12
|
+
private _query: PayloadWrapper<TQuery> | undefined
|
|
13
|
+
private _resultSet: PayloadWrapper<PayloadSetPayload> | undefined
|
|
14
|
+
|
|
15
|
+
override async hashableFields(): Promise<TBoundWitness> {
|
|
16
|
+
return {
|
|
17
|
+
...(await super.hashableFields()),
|
|
18
|
+
query: assertEx(await this._query?.hashAsync(), 'No Query Specified'),
|
|
19
|
+
schema: QueryBoundWitnessSchema,
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
query<T extends TQuery | PayloadWrapper<TQuery>>(query: T) {
|
|
24
|
+
this._query = PayloadWrapper.wrap(query)
|
|
25
|
+
this.payload(this._query.payload())
|
|
26
|
+
return this
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
resultSet<T extends PayloadSetPayload | PayloadWrapper<PayloadSetPayload>>(payloadSet: T) {
|
|
30
|
+
this._resultSet = PayloadWrapper.wrap(payloadSet)
|
|
31
|
+
this.payload(this._resultSet.payload())
|
|
32
|
+
return this
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'
|
|
3
|
+
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
4
|
+
import { handleError } from '@xyo-network/error'
|
|
5
|
+
import { PayloadSetPayload, Query } from '@xyo-network/payload-model'
|
|
6
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
7
|
+
|
|
8
|
+
import { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'
|
|
9
|
+
export class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
|
|
10
|
+
private _query: PayloadWrapper<T> | undefined
|
|
11
|
+
|
|
12
|
+
protected override get expectedSchema(): string {
|
|
13
|
+
return QueryBoundWitnessSchema
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static isQueryBoundWitnessValidator(obj: unknown) {
|
|
17
|
+
return (obj as QueryBoundWitnessValidator)?.constructor === QueryBoundWitnessValidator
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
override async validate() {
|
|
21
|
+
return [
|
|
22
|
+
...(await super.validate()),
|
|
23
|
+
// ...this.validateResultSet()
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async validateResultSet() {
|
|
28
|
+
const errors: Error[] = []
|
|
29
|
+
try {
|
|
30
|
+
const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet')
|
|
31
|
+
const wrapper = BoundWitnessWrapper.parse(this.obj)
|
|
32
|
+
const resultSet = PayloadWrapper.wrap<PayloadSetPayload>((await wrapper.payloadMap())[resultSetHash] as PayloadSetPayload)
|
|
33
|
+
const required = resultSet?.payload().required
|
|
34
|
+
if (required) {
|
|
35
|
+
Object.entries(required).forEach(([key, value]) => {
|
|
36
|
+
const found = wrapper.payloadSchemas.reduce((count, schema) => {
|
|
37
|
+
return count + (schema === key ? 1 : 0)
|
|
38
|
+
}, 0)
|
|
39
|
+
if (found !== value) {
|
|
40
|
+
errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`))
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
} catch (ex) {
|
|
45
|
+
handleError(ex, (error) => {
|
|
46
|
+
errors.push(error)
|
|
47
|
+
})
|
|
48
|
+
}
|
|
49
|
+
return errors
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
3
|
+
import { PayloadHasher } from '@xyo-network/core'
|
|
4
|
+
import { Payload, PayloadSetPayload, Query } from '@xyo-network/payload-model'
|
|
5
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
6
|
+
import compact from 'lodash/compact'
|
|
7
|
+
|
|
8
|
+
import { QueryBoundWitness } from './QueryBoundWitness'
|
|
9
|
+
import { QueryBoundWitnessValidator } from './QueryBoundWitnessValidator'
|
|
10
|
+
|
|
11
|
+
export class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
12
|
+
private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined
|
|
13
|
+
private _query: T | undefined
|
|
14
|
+
private _resultSet: PayloadSetPayload | undefined
|
|
15
|
+
|
|
16
|
+
private isQueryBoundWitnessWrapper = true
|
|
17
|
+
|
|
18
|
+
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {
|
|
19
|
+
assertEx(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper')
|
|
20
|
+
switch (typeof obj) {
|
|
21
|
+
case 'object': {
|
|
22
|
+
const castWrapper = obj as QueryBoundWitnessWrapper<T>
|
|
23
|
+
const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper<T>(obj as QueryBoundWitness, payloads)
|
|
24
|
+
/*if (!wrapper.valid) {
|
|
25
|
+
console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)
|
|
26
|
+
}*/
|
|
27
|
+
return wrapper
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
throw Error(`Unable to parse [${typeof obj}]`)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
override getErrors() {
|
|
34
|
+
return new QueryBoundWitnessValidator(this.boundwitness).validate()
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async getQuery(): Promise<T> {
|
|
38
|
+
const payloadMap = await this.allPayloadMap()
|
|
39
|
+
this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)
|
|
40
|
+
return assertEx(this._query, `Missing Query [${this.boundwitness}]`)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async getResultSet() {
|
|
44
|
+
const resultSetHash = this.boundwitness.resultSet
|
|
45
|
+
const payloadMap = await this.payloadMap()
|
|
46
|
+
return assertEx(
|
|
47
|
+
(this._resultSet = this._resultSet ?? (resultSetHash ? (payloadMap[resultSetHash] as PayloadSetPayload | undefined) : undefined)),
|
|
48
|
+
`Missing resultSet [${resultSetHash}]`,
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {
|
|
53
|
+
this._payloadsWithoutQuery =
|
|
54
|
+
this._payloadsWithoutQuery ??
|
|
55
|
+
compact(
|
|
56
|
+
(
|
|
57
|
+
await PayloadHasher.filterExclude(
|
|
58
|
+
(await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),
|
|
59
|
+
this.payload().query,
|
|
60
|
+
)
|
|
61
|
+
).map((payload) => PayloadWrapper.wrap(payload)),
|
|
62
|
+
)
|
|
63
|
+
return this._payloadsWithoutQuery
|
|
64
|
+
}
|
|
65
|
+
}
|
package/src/index.ts
CHANGED