@xyo-network/boundwitness-builder 2.74.5 → 2.75.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/browser/Builder.cjs +161 -0
- package/dist/browser/Builder.cjs.map +1 -0
- package/dist/browser/Builder.d.cts.map +1 -0
- package/dist/browser/Builder.d.mts.map +1 -0
- package/dist/browser/Builder.d.ts +41 -0
- package/dist/browser/Builder.d.ts.map +1 -0
- package/dist/browser/Builder.js +139 -0
- package/dist/browser/Builder.js.map +1 -0
- package/dist/browser/Query/QueryBoundWitness.cjs +30 -0
- package/dist/browser/Query/QueryBoundWitness.cjs.map +1 -0
- package/dist/browser/Query/QueryBoundWitness.d.cts.map +1 -0
- package/dist/browser/Query/QueryBoundWitness.d.mts.map +1 -0
- package/dist/browser/Query/QueryBoundWitness.d.ts +17 -0
- package/dist/browser/Query/QueryBoundWitness.d.ts.map +1 -0
- package/dist/browser/Query/QueryBoundWitness.js +8 -0
- package/dist/browser/Query/QueryBoundWitness.js.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessBuilder.cjs +192 -0
- package/dist/browser/Query/QueryBoundWitnessBuilder.cjs.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessBuilder.d.cts.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessBuilder.d.mts.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts +11 -0
- package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessBuilder.js +29 -0
- package/dist/browser/Query/QueryBoundWitnessBuilder.js.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessValidator.cjs +76 -0
- package/dist/browser/Query/QueryBoundWitnessValidator.cjs.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessValidator.d.cts.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessValidator.d.mts.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessValidator.d.ts +11 -0
- package/dist/browser/Query/QueryBoundWitnessValidator.d.ts.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessValidator.js +49 -0
- package/dist/browser/Query/QueryBoundWitnessValidator.js.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessWrapper.cjs +127 -0
- package/dist/browser/Query/QueryBoundWitnessWrapper.cjs.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.cts.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.mts.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts +18 -0
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts.map +1 -0
- package/dist/browser/Query/QueryBoundWitnessWrapper.js +52 -0
- package/dist/browser/Query/QueryBoundWitnessWrapper.js.map +1 -0
- package/dist/browser/Query/index.cjs +294 -0
- package/dist/browser/Query/index.cjs.map +1 -0
- package/dist/browser/Query/index.d.cts.map +1 -0
- package/dist/browser/Query/index.d.mts.map +1 -0
- package/dist/browser/Query/index.d.ts +5 -0
- package/dist/browser/Query/index.d.ts.map +1 -0
- package/dist/browser/Query/index.js +5 -0
- package/dist/browser/Query/index.js.map +1 -0
- package/dist/{index.js → browser/index.cjs} +1 -10
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.cts.map +1 -0
- package/dist/browser/index.d.mts.map +1 -0
- package/dist/browser/index.d.ts +3 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +3 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/docs.json +478 -478
- package/dist/node/Builder.d.cts +41 -0
- package/dist/node/Builder.d.cts.map +1 -0
- package/dist/node/Builder.d.mts +41 -0
- package/dist/node/Builder.d.mts.map +1 -0
- package/dist/node/Builder.d.ts +41 -0
- package/dist/node/Builder.d.ts.map +1 -0
- package/dist/node/Builder.js +169 -0
- package/dist/node/Builder.js.map +1 -0
- package/dist/node/Builder.mjs +144 -0
- package/dist/node/Builder.mjs.map +1 -0
- package/dist/node/Query/QueryBoundWitness.d.cts +17 -0
- package/dist/node/Query/QueryBoundWitness.d.cts.map +1 -0
- package/dist/node/Query/QueryBoundWitness.d.mts +17 -0
- package/dist/node/Query/QueryBoundWitness.d.mts.map +1 -0
- package/dist/node/Query/QueryBoundWitness.d.ts +17 -0
- package/dist/node/Query/QueryBoundWitness.d.ts.map +1 -0
- package/dist/node/Query/QueryBoundWitness.js +35 -0
- package/dist/node/Query/QueryBoundWitness.js.map +1 -0
- package/dist/node/Query/QueryBoundWitness.mjs +9 -0
- package/dist/node/Query/QueryBoundWitness.mjs.map +1 -0
- package/dist/node/Query/QueryBoundWitnessBuilder.d.cts +11 -0
- package/dist/node/Query/QueryBoundWitnessBuilder.d.cts.map +1 -0
- package/dist/node/Query/QueryBoundWitnessBuilder.d.mts +11 -0
- package/dist/node/Query/QueryBoundWitnessBuilder.d.mts.map +1 -0
- package/dist/node/Query/QueryBoundWitnessBuilder.d.ts +11 -0
- package/dist/node/Query/QueryBoundWitnessBuilder.d.ts.map +1 -0
- package/dist/node/Query/QueryBoundWitnessBuilder.js +201 -0
- package/dist/node/Query/QueryBoundWitnessBuilder.js.map +1 -0
- package/dist/node/Query/QueryBoundWitnessBuilder.mjs +176 -0
- package/dist/node/Query/QueryBoundWitnessBuilder.mjs.map +1 -0
- package/dist/node/Query/QueryBoundWitnessValidator.d.cts +11 -0
- package/dist/node/Query/QueryBoundWitnessValidator.d.cts.map +1 -0
- package/dist/node/Query/QueryBoundWitnessValidator.d.mts +11 -0
- package/dist/node/Query/QueryBoundWitnessValidator.d.mts.map +1 -0
- package/dist/node/Query/QueryBoundWitnessValidator.d.ts +11 -0
- package/dist/node/Query/QueryBoundWitnessValidator.d.ts.map +1 -0
- package/dist/node/Query/QueryBoundWitnessValidator.js +80 -0
- package/dist/node/Query/QueryBoundWitnessValidator.js.map +1 -0
- package/dist/node/Query/QueryBoundWitnessValidator.mjs +55 -0
- package/dist/node/Query/QueryBoundWitnessValidator.mjs.map +1 -0
- package/dist/node/Query/QueryBoundWitnessWrapper.d.cts +18 -0
- package/dist/node/Query/QueryBoundWitnessWrapper.d.cts.map +1 -0
- package/dist/node/Query/QueryBoundWitnessWrapper.d.mts +18 -0
- package/dist/node/Query/QueryBoundWitnessWrapper.d.mts.map +1 -0
- package/dist/node/Query/QueryBoundWitnessWrapper.d.ts +18 -0
- package/dist/node/Query/QueryBoundWitnessWrapper.d.ts.map +1 -0
- package/dist/node/Query/QueryBoundWitnessWrapper.js +131 -0
- package/dist/node/Query/QueryBoundWitnessWrapper.js.map +1 -0
- package/dist/node/Query/QueryBoundWitnessWrapper.mjs +106 -0
- package/dist/node/Query/QueryBoundWitnessWrapper.mjs.map +1 -0
- package/dist/node/Query/index.d.cts +5 -0
- package/dist/node/Query/index.d.cts.map +1 -0
- package/dist/node/Query/index.d.mts +5 -0
- package/dist/node/Query/index.d.mts.map +1 -0
- package/dist/node/Query/index.d.ts +5 -0
- package/dist/node/Query/index.d.ts.map +1 -0
- package/dist/node/Query/index.js +307 -0
- package/dist/node/Query/index.js.map +1 -0
- package/dist/node/Query/index.mjs +276 -0
- package/dist/node/Query/index.mjs.map +1 -0
- package/dist/node/index.d.cts +3 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.d.mts +3 -0
- package/dist/node/index.d.mts.map +1 -0
- package/dist/node/index.d.ts +3 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +307 -0
- package/dist/node/index.js.map +1 -0
- package/dist/{index.mjs → node/index.mjs} +16 -11
- package/dist/node/index.mjs.map +1 -0
- package/package.json +37 -34
- package/dist/Builder.d.mts.map +0 -1
- package/dist/Builder.d.ts.map +0 -1
- package/dist/Query/QueryBoundWitness.d.mts.map +0 -1
- package/dist/Query/QueryBoundWitness.d.ts.map +0 -1
- package/dist/Query/QueryBoundWitnessBuilder.d.mts.map +0 -1
- package/dist/Query/QueryBoundWitnessBuilder.d.ts.map +0 -1
- package/dist/Query/QueryBoundWitnessValidator.d.mts.map +0 -1
- package/dist/Query/QueryBoundWitnessValidator.d.ts.map +0 -1
- package/dist/Query/QueryBoundWitnessWrapper.d.mts.map +0 -1
- package/dist/Query/QueryBoundWitnessWrapper.d.ts.map +0 -1
- package/dist/Query/index.d.mts.map +0 -1
- package/dist/Query/index.d.ts.map +0 -1
- package/dist/index.d.mts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- /package/dist/{Builder.d.mts → browser/Builder.d.cts} +0 -0
- /package/dist/{Builder.d.ts → browser/Builder.d.mts} +0 -0
- /package/dist/{Query/QueryBoundWitness.d.mts → browser/Query/QueryBoundWitness.d.cts} +0 -0
- /package/dist/{Query/QueryBoundWitness.d.ts → browser/Query/QueryBoundWitness.d.mts} +0 -0
- /package/dist/{Query/QueryBoundWitnessBuilder.d.mts → browser/Query/QueryBoundWitnessBuilder.d.cts} +0 -0
- /package/dist/{Query/QueryBoundWitnessBuilder.d.ts → browser/Query/QueryBoundWitnessBuilder.d.mts} +0 -0
- /package/dist/{Query/QueryBoundWitnessValidator.d.mts → browser/Query/QueryBoundWitnessValidator.d.cts} +0 -0
- /package/dist/{Query/QueryBoundWitnessValidator.d.ts → browser/Query/QueryBoundWitnessValidator.d.mts} +0 -0
- /package/dist/{Query/QueryBoundWitnessWrapper.d.mts → browser/Query/QueryBoundWitnessWrapper.d.cts} +0 -0
- /package/dist/{Query/QueryBoundWitnessWrapper.d.ts → browser/Query/QueryBoundWitnessWrapper.d.mts} +0 -0
- /package/dist/{Query/index.d.mts → browser/Query/index.d.cts} +0 -0
- /package/dist/{Query/index.d.ts → browser/Query/index.d.mts} +0 -0
- /package/dist/{index.d.mts → browser/index.d.cts} +0 -0
- /package/dist/{index.d.ts → browser/index.d.mts} +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// src/Query/QueryBoundWitnessValidator.ts
|
|
2
|
+
import { assertEx } from "@xylabs/assert";
|
|
3
|
+
import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
|
|
4
|
+
import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
5
|
+
import { handleError } from "@xyo-network/error";
|
|
6
|
+
import { PayloadWrapper } from "@xyo-network/payload-wrapper";
|
|
7
|
+
|
|
8
|
+
// src/Query/QueryBoundWitness.ts
|
|
9
|
+
import { BoundWitnessSchema, isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
10
|
+
var QueryBoundWitnessSchema = BoundWitnessSchema;
|
|
11
|
+
|
|
12
|
+
// src/Query/QueryBoundWitnessValidator.ts
|
|
13
|
+
var QueryBoundWitnessValidator = class _QueryBoundWitnessValidator extends BoundWitnessValidator {
|
|
14
|
+
_query;
|
|
15
|
+
get expectedSchema() {
|
|
16
|
+
return QueryBoundWitnessSchema;
|
|
17
|
+
}
|
|
18
|
+
static isQueryBoundWitnessValidator(obj) {
|
|
19
|
+
return (obj == null ? void 0 : obj.constructor) === _QueryBoundWitnessValidator;
|
|
20
|
+
}
|
|
21
|
+
async validate() {
|
|
22
|
+
return [
|
|
23
|
+
...await super.validate()
|
|
24
|
+
// ...this.validateResultSet()
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
async validateResultSet() {
|
|
28
|
+
const errors = [];
|
|
29
|
+
try {
|
|
30
|
+
const resultSetHash = assertEx(this.obj.resultSet, "Missing ResultSet");
|
|
31
|
+
const wrapper = BoundWitnessWrapper.parse(this.obj);
|
|
32
|
+
const resultSet = PayloadWrapper.wrap((await wrapper.payloadMap())[resultSetHash]);
|
|
33
|
+
const required = resultSet == null ? void 0 : 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
|
+
};
|
|
52
|
+
export {
|
|
53
|
+
QueryBoundWitnessValidator
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=QueryBoundWitnessValidator.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Query/QueryBoundWitnessValidator.ts","../../../src/Query/QueryBoundWitness.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { handleError } from '@xyo-network/error'\nimport { PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'\nexport class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {\n private _query: PayloadWrapper<T> | undefined\n\n protected override get expectedSchema(): string {\n return QueryBoundWitnessSchema\n }\n\n static isQueryBoundWitnessValidator(obj: unknown) {\n return (obj as QueryBoundWitnessValidator)?.constructor === QueryBoundWitnessValidator\n }\n\n override async validate() {\n return [\n ...(await super.validate()),\n // ...this.validateResultSet()\n ]\n }\n\n async validateResultSet() {\n const errors: Error[] = []\n try {\n const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet')\n const wrapper = BoundWitnessWrapper.parse(this.obj)\n const resultSet = PayloadWrapper.wrap<PayloadSetPayload>((await wrapper.payloadMap())[resultSetHash] as PayloadSetPayload)\n const required = resultSet?.payload().required\n if (required) {\n Object.entries(required).forEach(([key, value]) => {\n const found = wrapper.payloadSchemas.reduce((count, schema) => {\n return count + (schema === key ? 1 : 0)\n }, 0)\n if (found !== value) {\n errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`))\n }\n })\n }\n } catch (ex) {\n handleError(ex, (error) => {\n errors.push(error)\n })\n }\n return errors\n }\n}\n","import { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type QueryBoundWitness = BoundWitness<{\n query: string\n resultSet?: string\n schema: BoundWitnessSchema\n}>\n\nexport const isQueryBoundWitness = (x?: Payload | null): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,6BAA6B;AACtC,SAAS,2BAA2B;AACpC,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB;;;ACL/B,SAAuB,oBAAoB,sBAAsB;AAI1D,IAAM,0BAAmD;;;ADIzD,IAAM,6BAAN,MAAM,oCAA4D,sBAAyC;AAAA,EACxG;AAAA,EAER,IAAuB,iBAAyB;AAC9C,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,6BAA6B,KAAc;AAChD,YAAQ,2BAAoC,iBAAgB;AAAA,EAC9D;AAAA,EAEA,MAAe,WAAW;AACxB,WAAO;AAAA,MACL,GAAI,MAAM,MAAM,SAAS;AAAA;AAAA,IAE3B;AAAA,EACF;AAAA,EAEA,MAAM,oBAAoB;AACxB,UAAM,SAAkB,CAAC;AACzB,QAAI;AACF,YAAM,gBAAgB,SAAS,KAAK,IAAI,WAAW,mBAAmB;AACtE,YAAM,UAAU,oBAAoB,MAAM,KAAK,GAAG;AAClD,YAAM,YAAY,eAAe,MAAyB,MAAM,QAAQ,WAAW,GAAG,aAAa,CAAsB;AACzH,YAAM,WAAW,uCAAW,UAAU;AACtC,UAAI,UAAU;AACZ,eAAO,QAAQ,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACjD,gBAAM,QAAQ,QAAQ,eAAe,OAAO,CAAC,OAAO,WAAW;AAC7D,mBAAO,SAAS,WAAW,MAAM,IAAI;AAAA,UACvC,GAAG,CAAC;AACJ,cAAI,UAAU,OAAO;AACnB,mBAAO,KAAK,MAAM,sCAAsC,GAAG,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC;AAAA,UACnF;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF,SAAS,IAAI;AACX,kBAAY,IAAI,CAAC,UAAU;AACzB,eAAO,KAAK,KAAK;AAAA,MACnB,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -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":"AAEA,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;AAE7D,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,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":"AAEA,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;AAE7D,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,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":"AAEA,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;AAE7D,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,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/Query/QueryBoundWitnessWrapper.ts
|
|
21
|
+
var QueryBoundWitnessWrapper_exports = {};
|
|
22
|
+
__export(QueryBoundWitnessWrapper_exports, {
|
|
23
|
+
QueryBoundWitnessWrapper: () => QueryBoundWitnessWrapper
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(QueryBoundWitnessWrapper_exports);
|
|
26
|
+
var import_assert2 = require("@xylabs/assert");
|
|
27
|
+
var import_lodash = require("@xylabs/lodash");
|
|
28
|
+
var import_boundwitness_wrapper2 = require("@xyo-network/boundwitness-wrapper");
|
|
29
|
+
var import_core = require("@xyo-network/core");
|
|
30
|
+
var import_payload_wrapper2 = require("@xyo-network/payload-wrapper");
|
|
31
|
+
|
|
32
|
+
// src/Query/QueryBoundWitnessValidator.ts
|
|
33
|
+
var import_assert = require("@xylabs/assert");
|
|
34
|
+
var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
|
|
35
|
+
var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
|
|
36
|
+
var import_error = require("@xyo-network/error");
|
|
37
|
+
var import_payload_wrapper = require("@xyo-network/payload-wrapper");
|
|
38
|
+
|
|
39
|
+
// src/Query/QueryBoundWitness.ts
|
|
40
|
+
var import_boundwitness_model = require("@xyo-network/boundwitness-model");
|
|
41
|
+
var QueryBoundWitnessSchema = import_boundwitness_model.BoundWitnessSchema;
|
|
42
|
+
|
|
43
|
+
// src/Query/QueryBoundWitnessValidator.ts
|
|
44
|
+
var QueryBoundWitnessValidator = class _QueryBoundWitnessValidator extends import_boundwitness_validator.BoundWitnessValidator {
|
|
45
|
+
_query;
|
|
46
|
+
get expectedSchema() {
|
|
47
|
+
return QueryBoundWitnessSchema;
|
|
48
|
+
}
|
|
49
|
+
static isQueryBoundWitnessValidator(obj) {
|
|
50
|
+
return (obj == null ? void 0 : obj.constructor) === _QueryBoundWitnessValidator;
|
|
51
|
+
}
|
|
52
|
+
async validate() {
|
|
53
|
+
return [
|
|
54
|
+
...await super.validate()
|
|
55
|
+
// ...this.validateResultSet()
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
async validateResultSet() {
|
|
59
|
+
const errors = [];
|
|
60
|
+
try {
|
|
61
|
+
const resultSetHash = (0, import_assert.assertEx)(this.obj.resultSet, "Missing ResultSet");
|
|
62
|
+
const wrapper = import_boundwitness_wrapper.BoundWitnessWrapper.parse(this.obj);
|
|
63
|
+
const resultSet = import_payload_wrapper.PayloadWrapper.wrap((await wrapper.payloadMap())[resultSetHash]);
|
|
64
|
+
const required = resultSet == null ? void 0 : resultSet.payload().required;
|
|
65
|
+
if (required) {
|
|
66
|
+
Object.entries(required).forEach(([key, value]) => {
|
|
67
|
+
const found = wrapper.payloadSchemas.reduce((count, schema) => {
|
|
68
|
+
return count + (schema === key ? 1 : 0);
|
|
69
|
+
}, 0);
|
|
70
|
+
if (found !== value) {
|
|
71
|
+
errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`));
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
} catch (ex) {
|
|
76
|
+
(0, import_error.handleError)(ex, (error) => {
|
|
77
|
+
errors.push(error);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return errors;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
// src/Query/QueryBoundWitnessWrapper.ts
|
|
85
|
+
var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends import_boundwitness_wrapper2.BoundWitnessWrapper {
|
|
86
|
+
_payloadsWithoutQuery;
|
|
87
|
+
_query;
|
|
88
|
+
_resultSet;
|
|
89
|
+
isQueryBoundWitnessWrapper = true;
|
|
90
|
+
static parseQuery(obj, payloads) {
|
|
91
|
+
(0, import_assert2.assertEx)(!Array.isArray(obj), "Array can not be converted to QueryBoundWitnessWrapper");
|
|
92
|
+
switch (typeof obj) {
|
|
93
|
+
case "object": {
|
|
94
|
+
const castWrapper = obj;
|
|
95
|
+
const wrapper = (castWrapper == null ? void 0 : castWrapper.isQueryBoundWitnessWrapper) ? castWrapper : new _QueryBoundWitnessWrapper(obj, payloads);
|
|
96
|
+
return wrapper;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
throw Error(`Unable to parse [${typeof obj}]`);
|
|
100
|
+
}
|
|
101
|
+
getErrors() {
|
|
102
|
+
return new QueryBoundWitnessValidator(this.boundwitness).validate();
|
|
103
|
+
}
|
|
104
|
+
async getQuery() {
|
|
105
|
+
const payloadMap = await this.allPayloadMap();
|
|
106
|
+
this._query = this._query ?? payloadMap[this.boundwitness.query];
|
|
107
|
+
return (0, import_assert2.assertEx)(this._query, `Missing Query [${this.boundwitness}]`);
|
|
108
|
+
}
|
|
109
|
+
async getResultSet() {
|
|
110
|
+
const resultSetHash = this.boundwitness.resultSet;
|
|
111
|
+
const payloadMap = await this.payloadMap();
|
|
112
|
+
return (0, import_assert2.assertEx)(
|
|
113
|
+
this._resultSet = this._resultSet ?? (resultSetHash ? payloadMap[resultSetHash] : void 0),
|
|
114
|
+
`Missing resultSet [${resultSetHash}]`
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
async getWrappedPayloads() {
|
|
118
|
+
this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? (0, import_lodash.compact)(
|
|
119
|
+
(await import_core.PayloadHasher.filterExclude(
|
|
120
|
+
(await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),
|
|
121
|
+
this.payload().query
|
|
122
|
+
)).map((payload) => import_payload_wrapper2.PayloadWrapper.wrap(payload))
|
|
123
|
+
);
|
|
124
|
+
return this._payloadsWithoutQuery;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
128
|
+
0 && (module.exports = {
|
|
129
|
+
QueryBoundWitnessWrapper
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=QueryBoundWitnessWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Query/QueryBoundWitnessWrapper.ts","../../../src/Query/QueryBoundWitnessValidator.ts","../../../src/Query/QueryBoundWitness.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadHasher } from '@xyo-network/core'\nimport { Payload, PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { QueryBoundWitness } from './QueryBoundWitness'\nimport { QueryBoundWitnessValidator } from './QueryBoundWitnessValidator'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n private _resultSet: PayloadSetPayload | undefined\n\n private isQueryBoundWitnessWrapper = true\n\n static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {\n assertEx(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper<T>(obj as QueryBoundWitness, payloads)\n /*if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n }*/\n return wrapper\n }\n }\n throw Error(`Unable to parse [${typeof obj}]`)\n }\n\n override getErrors() {\n return new QueryBoundWitnessValidator(this.boundwitness).validate()\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.allPayloadMap()\n this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)\n return assertEx(this._query, `Missing Query [${this.boundwitness}]`)\n }\n\n async getResultSet() {\n const resultSetHash = this.boundwitness.resultSet\n const payloadMap = await this.payloadMap()\n return assertEx(\n (this._resultSet = this._resultSet ?? (resultSetHash ? (payloadMap[resultSetHash] as PayloadSetPayload | undefined) : undefined)),\n `Missing resultSet [${resultSetHash}]`,\n )\n }\n\n override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n compact(\n (\n await PayloadHasher.filterExclude(\n (await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),\n this.payload().query,\n )\n ).map((payload) => PayloadWrapper.wrap(payload)),\n )\n return this._payloadsWithoutQuery\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { handleError } from '@xyo-network/error'\nimport { PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'\nexport class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {\n private _query: PayloadWrapper<T> | undefined\n\n protected override get expectedSchema(): string {\n return QueryBoundWitnessSchema\n }\n\n static isQueryBoundWitnessValidator(obj: unknown) {\n return (obj as QueryBoundWitnessValidator)?.constructor === QueryBoundWitnessValidator\n }\n\n override async validate() {\n return [\n ...(await super.validate()),\n // ...this.validateResultSet()\n ]\n }\n\n async validateResultSet() {\n const errors: Error[] = []\n try {\n const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet')\n const wrapper = BoundWitnessWrapper.parse(this.obj)\n const resultSet = PayloadWrapper.wrap<PayloadSetPayload>((await wrapper.payloadMap())[resultSetHash] as PayloadSetPayload)\n const required = resultSet?.payload().required\n if (required) {\n Object.entries(required).forEach(([key, value]) => {\n const found = wrapper.payloadSchemas.reduce((count, schema) => {\n return count + (schema === key ? 1 : 0)\n }, 0)\n if (found !== value) {\n errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`))\n }\n })\n }\n } catch (ex) {\n handleError(ex, (error) => {\n errors.push(error)\n })\n }\n return errors\n }\n}\n","import { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type QueryBoundWitness = BoundWitness<{\n query: string\n resultSet?: string\n schema: BoundWitnessSchema\n}>\n\nexport const isQueryBoundWitness = (x?: Payload | null): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\n"],"mappings":"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","names":["import_assert","import_boundwitness_wrapper","import_payload_wrapper"]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// src/Query/QueryBoundWitnessWrapper.ts
|
|
2
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
3
|
+
import { compact } from "@xylabs/lodash";
|
|
4
|
+
import { BoundWitnessWrapper as BoundWitnessWrapper2 } from "@xyo-network/boundwitness-wrapper";
|
|
5
|
+
import { PayloadHasher } from "@xyo-network/core";
|
|
6
|
+
import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
|
|
7
|
+
|
|
8
|
+
// src/Query/QueryBoundWitnessValidator.ts
|
|
9
|
+
import { assertEx } from "@xylabs/assert";
|
|
10
|
+
import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
|
|
11
|
+
import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
12
|
+
import { handleError } from "@xyo-network/error";
|
|
13
|
+
import { PayloadWrapper } from "@xyo-network/payload-wrapper";
|
|
14
|
+
|
|
15
|
+
// src/Query/QueryBoundWitness.ts
|
|
16
|
+
import { BoundWitnessSchema, isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
17
|
+
var QueryBoundWitnessSchema = BoundWitnessSchema;
|
|
18
|
+
|
|
19
|
+
// src/Query/QueryBoundWitnessValidator.ts
|
|
20
|
+
var QueryBoundWitnessValidator = class _QueryBoundWitnessValidator extends BoundWitnessValidator {
|
|
21
|
+
_query;
|
|
22
|
+
get expectedSchema() {
|
|
23
|
+
return QueryBoundWitnessSchema;
|
|
24
|
+
}
|
|
25
|
+
static isQueryBoundWitnessValidator(obj) {
|
|
26
|
+
return (obj == null ? void 0 : obj.constructor) === _QueryBoundWitnessValidator;
|
|
27
|
+
}
|
|
28
|
+
async validate() {
|
|
29
|
+
return [
|
|
30
|
+
...await super.validate()
|
|
31
|
+
// ...this.validateResultSet()
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
async validateResultSet() {
|
|
35
|
+
const errors = [];
|
|
36
|
+
try {
|
|
37
|
+
const resultSetHash = assertEx(this.obj.resultSet, "Missing ResultSet");
|
|
38
|
+
const wrapper = BoundWitnessWrapper.parse(this.obj);
|
|
39
|
+
const resultSet = PayloadWrapper.wrap((await wrapper.payloadMap())[resultSetHash]);
|
|
40
|
+
const required = resultSet == null ? void 0 : resultSet.payload().required;
|
|
41
|
+
if (required) {
|
|
42
|
+
Object.entries(required).forEach(([key, value]) => {
|
|
43
|
+
const found = wrapper.payloadSchemas.reduce((count, schema) => {
|
|
44
|
+
return count + (schema === key ? 1 : 0);
|
|
45
|
+
}, 0);
|
|
46
|
+
if (found !== value) {
|
|
47
|
+
errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`));
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
} catch (ex) {
|
|
52
|
+
handleError(ex, (error) => {
|
|
53
|
+
errors.push(error);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return errors;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// src/Query/QueryBoundWitnessWrapper.ts
|
|
61
|
+
var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitnessWrapper2 {
|
|
62
|
+
_payloadsWithoutQuery;
|
|
63
|
+
_query;
|
|
64
|
+
_resultSet;
|
|
65
|
+
isQueryBoundWitnessWrapper = true;
|
|
66
|
+
static parseQuery(obj, payloads) {
|
|
67
|
+
assertEx2(!Array.isArray(obj), "Array can not be converted to QueryBoundWitnessWrapper");
|
|
68
|
+
switch (typeof obj) {
|
|
69
|
+
case "object": {
|
|
70
|
+
const castWrapper = obj;
|
|
71
|
+
const wrapper = (castWrapper == null ? void 0 : castWrapper.isQueryBoundWitnessWrapper) ? castWrapper : new _QueryBoundWitnessWrapper(obj, payloads);
|
|
72
|
+
return wrapper;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
throw Error(`Unable to parse [${typeof obj}]`);
|
|
76
|
+
}
|
|
77
|
+
getErrors() {
|
|
78
|
+
return new QueryBoundWitnessValidator(this.boundwitness).validate();
|
|
79
|
+
}
|
|
80
|
+
async getQuery() {
|
|
81
|
+
const payloadMap = await this.allPayloadMap();
|
|
82
|
+
this._query = this._query ?? payloadMap[this.boundwitness.query];
|
|
83
|
+
return assertEx2(this._query, `Missing Query [${this.boundwitness}]`);
|
|
84
|
+
}
|
|
85
|
+
async getResultSet() {
|
|
86
|
+
const resultSetHash = this.boundwitness.resultSet;
|
|
87
|
+
const payloadMap = await this.payloadMap();
|
|
88
|
+
return assertEx2(
|
|
89
|
+
this._resultSet = this._resultSet ?? (resultSetHash ? payloadMap[resultSetHash] : void 0),
|
|
90
|
+
`Missing resultSet [${resultSetHash}]`
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
async getWrappedPayloads() {
|
|
94
|
+
this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? compact(
|
|
95
|
+
(await PayloadHasher.filterExclude(
|
|
96
|
+
(await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),
|
|
97
|
+
this.payload().query
|
|
98
|
+
)).map((payload) => PayloadWrapper2.wrap(payload))
|
|
99
|
+
);
|
|
100
|
+
return this._payloadsWithoutQuery;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
export {
|
|
104
|
+
QueryBoundWitnessWrapper
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=QueryBoundWitnessWrapper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Query/QueryBoundWitnessWrapper.ts","../../../src/Query/QueryBoundWitnessValidator.ts","../../../src/Query/QueryBoundWitness.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadHasher } from '@xyo-network/core'\nimport { Payload, PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { QueryBoundWitness } from './QueryBoundWitness'\nimport { QueryBoundWitnessValidator } from './QueryBoundWitnessValidator'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n private _resultSet: PayloadSetPayload | undefined\n\n private isQueryBoundWitnessWrapper = true\n\n static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {\n assertEx(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper<T>(obj as QueryBoundWitness, payloads)\n /*if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n }*/\n return wrapper\n }\n }\n throw Error(`Unable to parse [${typeof obj}]`)\n }\n\n override getErrors() {\n return new QueryBoundWitnessValidator(this.boundwitness).validate()\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.allPayloadMap()\n this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)\n return assertEx(this._query, `Missing Query [${this.boundwitness}]`)\n }\n\n async getResultSet() {\n const resultSetHash = this.boundwitness.resultSet\n const payloadMap = await this.payloadMap()\n return assertEx(\n (this._resultSet = this._resultSet ?? (resultSetHash ? (payloadMap[resultSetHash] as PayloadSetPayload | undefined) : undefined)),\n `Missing resultSet [${resultSetHash}]`,\n )\n }\n\n override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n compact(\n (\n await PayloadHasher.filterExclude(\n (await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),\n this.payload().query,\n )\n ).map((payload) => PayloadWrapper.wrap(payload)),\n )\n return this._payloadsWithoutQuery\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { handleError } from '@xyo-network/error'\nimport { PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'\nexport class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {\n private _query: PayloadWrapper<T> | undefined\n\n protected override get expectedSchema(): string {\n return QueryBoundWitnessSchema\n }\n\n static isQueryBoundWitnessValidator(obj: unknown) {\n return (obj as QueryBoundWitnessValidator)?.constructor === QueryBoundWitnessValidator\n }\n\n override async validate() {\n return [\n ...(await super.validate()),\n // ...this.validateResultSet()\n ]\n }\n\n async validateResultSet() {\n const errors: Error[] = []\n try {\n const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet')\n const wrapper = BoundWitnessWrapper.parse(this.obj)\n const resultSet = PayloadWrapper.wrap<PayloadSetPayload>((await wrapper.payloadMap())[resultSetHash] as PayloadSetPayload)\n const required = resultSet?.payload().required\n if (required) {\n Object.entries(required).forEach(([key, value]) => {\n const found = wrapper.payloadSchemas.reduce((count, schema) => {\n return count + (schema === key ? 1 : 0)\n }, 0)\n if (found !== value) {\n errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`))\n }\n })\n }\n } catch (ex) {\n handleError(ex, (error) => {\n errors.push(error)\n })\n }\n return errors\n }\n}\n","import { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type QueryBoundWitness = BoundWitness<{\n query: string\n resultSet?: string\n schema: BoundWitnessSchema\n}>\n\nexport const isQueryBoundWitness = (x?: Payload | null): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\n"],"mappings":"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","names":["assertEx","BoundWitnessWrapper","PayloadWrapper","BoundWitnessWrapper","assertEx","PayloadWrapper"]}
|
|
@@ -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"}
|
|
@@ -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"}
|
|
@@ -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"}
|