@xyo-network/module-abstract 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/AbstractIndirectModule.js +44 -18
- package/dist/cjs/AbstractIndirectModule.js.map +1 -1
- package/dist/cjs/AbstractModule.js +12 -4
- package/dist/cjs/AbstractModule.js.map +1 -1
- package/dist/cjs/Error.js +3 -3
- package/dist/cjs/Error.js.map +1 -1
- package/dist/cjs/QueryValidator/ModuleConfigQueryValidator.js +2 -2
- package/dist/cjs/QueryValidator/ModuleConfigQueryValidator.js.map +1 -1
- package/dist/cjs/QueryValidator/SupportedQueryValidator.js +2 -2
- package/dist/cjs/QueryValidator/SupportedQueryValidator.js.map +1 -1
- package/dist/cjs/Resolver/CompositeModuleResolver.js +15 -20
- package/dist/cjs/Resolver/CompositeModuleResolver.js.map +1 -1
- package/dist/cjs/Resolver/SimpleModuleResolver.js +19 -18
- package/dist/cjs/Resolver/SimpleModuleResolver.js.map +1 -1
- package/dist/cjs/index.js +1 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +16382 -20093
- package/dist/esm/AbstractIndirectModule.js +39 -16
- package/dist/esm/AbstractIndirectModule.js.map +1 -1
- package/dist/esm/AbstractModule.js +12 -4
- package/dist/esm/AbstractModule.js.map +1 -1
- package/dist/esm/Error.js +1 -1
- package/dist/esm/Error.js.map +1 -1
- package/dist/esm/QueryValidator/ModuleConfigQueryValidator.js +1 -1
- package/dist/esm/QueryValidator/ModuleConfigQueryValidator.js.map +1 -1
- package/dist/esm/QueryValidator/SupportedQueryValidator.js +1 -1
- package/dist/esm/QueryValidator/SupportedQueryValidator.js.map +1 -1
- package/dist/esm/Resolver/CompositeModuleResolver.js +15 -18
- package/dist/esm/Resolver/CompositeModuleResolver.js.map +1 -1
- package/dist/esm/Resolver/SimpleModuleResolver.js +19 -18
- package/dist/esm/Resolver/SimpleModuleResolver.js.map +1 -1
- package/dist/esm/index.js +1 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/types/AbstractIndirectModule.d.ts +11 -7
- package/dist/types/AbstractIndirectModule.d.ts.map +1 -1
- package/dist/types/AbstractModule.d.ts.map +1 -1
- package/dist/types/Error.d.ts +1 -1
- package/dist/types/Error.d.ts.map +1 -1
- package/dist/types/QueryValidator/ModuleConfigQueryValidator.d.ts.map +1 -1
- package/dist/types/QueryValidator/QueryValidator.d.ts +1 -1
- package/dist/types/QueryValidator/QueryValidator.d.ts.map +1 -1
- package/dist/types/QueryValidator/SupportedQueryValidator.d.ts.map +1 -1
- package/dist/types/Resolver/CompositeModuleResolver.d.ts +2 -2
- package/dist/types/Resolver/CompositeModuleResolver.d.ts.map +1 -1
- package/dist/types/Resolver/SimpleModuleResolver.d.ts +2 -2
- package/dist/types/Resolver/SimpleModuleResolver.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -3
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +22 -24
- package/src/AbstractIndirectModule.ts +46 -22
- package/src/AbstractModule.ts +12 -4
- package/src/Error.ts +1 -1
- package/src/QueryValidator/ModuleConfigQueryValidator.ts +1 -1
- package/src/QueryValidator/QueryValidator.ts +1 -1
- package/src/QueryValidator/SupportedQueryValidator.ts +2 -2
- package/src/Resolver/CompositeModuleResolver.ts +22 -19
- package/src/Resolver/SimpleModuleResolver.ts +21 -21
- package/src/index.ts +1 -3
- package/dist/cjs/ModuleFactory.js +0 -30
- package/dist/cjs/ModuleFactory.js.map +0 -1
- package/dist/cjs/Query/QueryBoundWitnessBuilder.js +0 -31
- package/dist/cjs/Query/QueryBoundWitnessBuilder.js.map +0 -1
- package/dist/cjs/Query/QueryBoundWitnessValidator.js +0 -58
- package/dist/cjs/Query/QueryBoundWitnessValidator.js.map +0 -1
- package/dist/cjs/Query/QueryBoundWitnessWrapper.js +0 -62
- package/dist/cjs/Query/QueryBoundWitnessWrapper.js.map +0 -1
- package/dist/cjs/Query/index.js +0 -7
- package/dist/cjs/Query/index.js.map +0 -1
- package/dist/cjs/lib/duplicateModules.js +0 -17
- package/dist/cjs/lib/duplicateModules.js.map +0 -1
- package/dist/cjs/lib/index.js +0 -6
- package/dist/cjs/lib/index.js.map +0 -1
- package/dist/cjs/lib/serializable.js +0 -38
- package/dist/cjs/lib/serializable.js.map +0 -1
- package/dist/esm/ModuleFactory.js +0 -28
- package/dist/esm/ModuleFactory.js.map +0 -1
- package/dist/esm/Query/QueryBoundWitnessBuilder.js +0 -26
- package/dist/esm/Query/QueryBoundWitnessBuilder.js.map +0 -1
- package/dist/esm/Query/QueryBoundWitnessValidator.js +0 -47
- package/dist/esm/Query/QueryBoundWitnessValidator.js.map +0 -1
- package/dist/esm/Query/QueryBoundWitnessWrapper.js +0 -46
- package/dist/esm/Query/QueryBoundWitnessWrapper.js.map +0 -1
- package/dist/esm/Query/index.js +0 -4
- package/dist/esm/Query/index.js.map +0 -1
- package/dist/esm/lib/duplicateModules.js +0 -13
- package/dist/esm/lib/duplicateModules.js.map +0 -1
- package/dist/esm/lib/index.js +0 -3
- package/dist/esm/lib/index.js.map +0 -1
- package/dist/esm/lib/serializable.js +0 -32
- package/dist/esm/lib/serializable.js.map +0 -1
- package/dist/types/ModuleFactory.d.ts +0 -17
- package/dist/types/ModuleFactory.d.ts.map +0 -1
- package/dist/types/Query/QueryBoundWitnessBuilder.d.ts +0 -12
- package/dist/types/Query/QueryBoundWitnessBuilder.d.ts.map +0 -1
- package/dist/types/Query/QueryBoundWitnessValidator.d.ts +0 -10
- package/dist/types/Query/QueryBoundWitnessValidator.d.ts.map +0 -1
- package/dist/types/Query/QueryBoundWitnessWrapper.d.ts +0 -18
- package/dist/types/Query/QueryBoundWitnessWrapper.d.ts.map +0 -1
- package/dist/types/Query/index.d.ts +0 -4
- package/dist/types/Query/index.d.ts.map +0 -1
- package/dist/types/lib/duplicateModules.d.ts +0 -12
- package/dist/types/lib/duplicateModules.d.ts.map +0 -1
- package/dist/types/lib/index.d.ts +0 -3
- package/dist/types/lib/index.d.ts.map +0 -1
- package/dist/types/lib/serializable.d.ts +0 -3
- package/dist/types/lib/serializable.d.ts.map +0 -1
- package/src/ModuleFactory.ts +0 -42
- package/src/Query/QueryBoundWitnessBuilder.ts +0 -33
- package/src/Query/QueryBoundWitnessValidator.ts +0 -50
- package/src/Query/QueryBoundWitnessWrapper.ts +0 -65
- package/src/Query/index.ts +0 -3
- package/src/lib/duplicateModules.ts +0 -14
- package/src/lib/index.ts +0 -2
- package/src/lib/serializable.ts +0 -41
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QueryBoundWitnessWrapper = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const assert_1 = require("@xylabs/assert");
|
|
6
|
-
const boundwitness_wrapper_1 = require("@xyo-network/boundwitness-wrapper");
|
|
7
|
-
const core_1 = require("@xyo-network/core");
|
|
8
|
-
const payload_wrapper_1 = require("@xyo-network/payload-wrapper");
|
|
9
|
-
const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
|
|
10
|
-
const QueryBoundWitnessValidator_1 = require("./QueryBoundWitnessValidator");
|
|
11
|
-
class QueryBoundWitnessWrapper extends boundwitness_wrapper_1.BoundWitnessWrapper {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.isQueryBoundWitnessWrapper = true;
|
|
15
|
-
}
|
|
16
|
-
static parseQuery(obj, payloads) {
|
|
17
|
-
(0, assert_1.assertEx)(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper');
|
|
18
|
-
switch (typeof obj) {
|
|
19
|
-
case 'object': {
|
|
20
|
-
const castWrapper = obj;
|
|
21
|
-
const wrapper = (castWrapper === null || castWrapper === void 0 ? void 0 : castWrapper.isQueryBoundWitnessWrapper) ? castWrapper : new QueryBoundWitnessWrapper(obj, payloads);
|
|
22
|
-
/*if (!wrapper.valid) {
|
|
23
|
-
console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)
|
|
24
|
-
}*/
|
|
25
|
-
return wrapper;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
throw Error(`Unable to parse [${typeof obj}]`);
|
|
29
|
-
}
|
|
30
|
-
getErrors() {
|
|
31
|
-
return new QueryBoundWitnessValidator_1.QueryBoundWitnessValidator(this.boundwitness).validate();
|
|
32
|
-
}
|
|
33
|
-
getQuery() {
|
|
34
|
-
var _a;
|
|
35
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
const payloadMap = yield this.allPayloadMap();
|
|
37
|
-
this._query = (_a = this._query) !== null && _a !== void 0 ? _a : payloadMap[this.boundwitness.query];
|
|
38
|
-
return (0, assert_1.assertEx)(this._query, `Missing Query [${this.boundwitness}]`);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
getResultSet() {
|
|
42
|
-
var _a;
|
|
43
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
const resultSetHash = this.boundwitness.resultSet;
|
|
45
|
-
const payloadMap = yield this.payloadMap();
|
|
46
|
-
return (0, assert_1.assertEx)((this._resultSet = (_a = this._resultSet) !== null && _a !== void 0 ? _a : (resultSetHash ? payloadMap[resultSetHash] : undefined)), `Missing resultSet [${resultSetHash}]`);
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
getWrappedPayloads() {
|
|
50
|
-
const _super = Object.create(null, {
|
|
51
|
-
getWrappedPayloads: { get: () => super.getWrappedPayloads }
|
|
52
|
-
});
|
|
53
|
-
var _a;
|
|
54
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
this._payloadsWithoutQuery =
|
|
56
|
-
(_a = this._payloadsWithoutQuery) !== null && _a !== void 0 ? _a : (0, compact_1.default)((yield core_1.PayloadHasher.filterExclude((yield _super.getWrappedPayloads.call(this)).map((wrapper) => wrapper.payload()), this.payload().query)).map((payload) => payload_wrapper_1.PayloadWrapper.wrap(payload)));
|
|
57
|
-
return this._payloadsWithoutQuery;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.QueryBoundWitnessWrapper = QueryBoundWitnessWrapper;
|
|
62
|
-
//# sourceMappingURL=QueryBoundWitnessWrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessWrapper.js","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,4EAAuE;AACvE,4CAAiD;AAGjD,kEAA6D;AAC7D,qEAAoC;AAEpC,6EAAyE;AAEzE,MAAa,wBAAkD,SAAQ,0CAAsC;IAA7G;;QAKU,+BAA0B,GAAG,IAAI,CAAA;IAiD3C,CAAC;IA/CC,MAAM,CAAC,UAAU,CAA0B,GAAY,EAAE,QAAoB;QAC3E,IAAA,iBAAQ,EAAC,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,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,0BAA0B,EAAC,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,uDAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAA;IACrE,CAAC;IAEK,QAAQ;;;YACZ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;YAC7C,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAmB,CAAA;YACnF,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;;KACrE;IAEK,YAAY;;;YAChB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAA;YACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;YAC1C,OAAO,IAAA,iBAAQ,EACb,CAAC,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,CAAC,aAAa,CAAC,CAAC,CAAE,UAAU,CAAC,aAAa,CAAmC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACjI,sBAAsB,aAAa,GAAG,CACvC,CAAA;;KACF;IAEc,kBAAkB;;;;;;YAC/B,IAAI,CAAC,qBAAqB;gBACxB,MAAA,IAAI,CAAC,qBAAqB,mCAC1B,IAAA,iBAAO,EACL,CACE,MAAM,oBAAa,CAAC,aAAa,CAC/B,CAAC,MAAM,OAAM,kBAAkB,WAAE,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,gCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CACjD,CAAA;YACH,OAAO,IAAI,CAAC,qBAAqB,CAAA;;KAClC;CACF;AAtDD,4DAsDC"}
|
package/dist/cjs/Query/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./QueryBoundWitnessBuilder"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./QueryBoundWitnessValidator"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./QueryBoundWitnessWrapper"), exports);
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Query/index.ts"],"names":[],"mappings":";;;AAAA,qEAA0C;AAC1C,uEAA4C;AAC5C,qEAA0C"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.duplicateModules = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Used to filter duplicates from an array of modules
|
|
6
|
-
* @example: modulesArray.filter(duplicateModules)
|
|
7
|
-
* @param value Current Module
|
|
8
|
-
* @param index Current Module's index
|
|
9
|
-
* @param array Module Array
|
|
10
|
-
* @returns True if the Module's address is the first occurrence of
|
|
11
|
-
* that address in the array, false otherwise
|
|
12
|
-
*/
|
|
13
|
-
const duplicateModules = (value, index, array) => {
|
|
14
|
-
return array.findIndex((v) => v.address === value.address) === index;
|
|
15
|
-
};
|
|
16
|
-
exports.duplicateModules = duplicateModules;
|
|
17
|
-
//# sourceMappingURL=duplicateModules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"duplicateModules.js","sourceRoot":"","sources":["../../../src/lib/duplicateModules.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAqB,EAAE,KAAa,EAAE,KAAuB,EAA2B,EAAE;IACzH,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,CAAA;AACtE,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B"}
|
package/dist/cjs/lib/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./duplicateModules"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./serializable"), exports);
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,6DAAkC;AAClC,yDAA8B"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Inspired by https://stackoverflow.com/a/49079549/2803259
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.serializableField = exports.serializable = void 0;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const every_1 = tslib_1.__importDefault(require("lodash/every"));
|
|
7
|
-
const isArray_1 = tslib_1.__importDefault(require("lodash/isArray"));
|
|
8
|
-
const isBoolean_1 = tslib_1.__importDefault(require("lodash/isBoolean"));
|
|
9
|
-
const isNull_1 = tslib_1.__importDefault(require("lodash/isNull"));
|
|
10
|
-
const isNumber_1 = tslib_1.__importDefault(require("lodash/isNumber"));
|
|
11
|
-
const isPlainObject_1 = tslib_1.__importDefault(require("lodash/isPlainObject"));
|
|
12
|
-
const isString_1 = tslib_1.__importDefault(require("lodash/isString"));
|
|
13
|
-
const isUndefined_1 = tslib_1.__importDefault(require("lodash/isUndefined"));
|
|
14
|
-
const overSome_1 = tslib_1.__importDefault(require("lodash/overSome"));
|
|
15
|
-
const JSONPrimitiveChecks = [isUndefined_1.default, isNull_1.default, isBoolean_1.default, isNumber_1.default, isString_1.default];
|
|
16
|
-
const JSONComplexChecks = [isPlainObject_1.default, isArray_1.default];
|
|
17
|
-
const serializable = (field, depth) => {
|
|
18
|
-
let depthExceeded = false;
|
|
19
|
-
const decrementDepth = () => (depth ? depth-- : undefined);
|
|
20
|
-
const recursiveSerializable = (field) => {
|
|
21
|
-
if (depth !== undefined && depth < 1) {
|
|
22
|
-
depthExceeded = true;
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
// decrement during every recursion
|
|
26
|
-
decrementDepth();
|
|
27
|
-
const nestedSerializable = (field) => (0, overSome_1.default)(JSONComplexChecks)(field) && (0, every_1.default)(field, recursiveSerializable);
|
|
28
|
-
return (0, overSome_1.default)([...JSONPrimitiveChecks, nestedSerializable])(field);
|
|
29
|
-
};
|
|
30
|
-
const valid = recursiveSerializable(field);
|
|
31
|
-
return depthExceeded ? null : valid;
|
|
32
|
-
};
|
|
33
|
-
exports.serializable = serializable;
|
|
34
|
-
const serializableField = (field) => {
|
|
35
|
-
return (0, overSome_1.default)([...JSONPrimitiveChecks, ...JSONComplexChecks])(field);
|
|
36
|
-
};
|
|
37
|
-
exports.serializableField = serializableField;
|
|
38
|
-
//# sourceMappingURL=serializable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializable.js","sourceRoot":"","sources":["../../../src/lib/serializable.ts"],"names":[],"mappings":";AAAA,2DAA2D;;;;AAE3D,iEAAgC;AAChC,qEAAoC;AACpC,yEAAwC;AACxC,mEAAkC;AAClC,uEAAsC;AACtC,iFAAgD;AAChD,uEAAsC;AACtC,6EAA4C;AAC5C,uEAAsC;AAEtC,MAAM,mBAAmB,GAAG,CAAC,qBAAW,EAAE,gBAAM,EAAE,mBAAS,EAAE,kBAAQ,EAAE,kBAAQ,CAAC,CAAA;AAChF,MAAM,iBAAiB,GAAG,CAAC,uBAAa,EAAE,iBAAO,CAAC,CAAA;AAE3C,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,KAAc,EAAkB,EAAE;IAC7E,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAE1D,MAAM,qBAAqB,GAAG,CAAC,KAAc,EAAE,EAAE;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE;YACpC,aAAa,GAAG,IAAI,CAAA;YACpB,OAAO,KAAK,CAAA;SACb;QAED,mCAAmC;QACnC,cAAc,EAAE,CAAA;QAEhB,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,IAAA,kBAAQ,EAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,IAAI,IAAA,eAAK,EAAC,KAAe,EAAE,qBAAqB,CAAC,CAAA;QAE3I,OAAO,IAAA,kBAAQ,EAAC,CAAC,GAAG,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAE1C,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;AACrC,CAAC,CAAA;AArBY,QAAA,YAAY,gBAqBxB;AAEM,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAE,EAAE;IAClD,OAAO,IAAA,kBAAQ,EAAC,CAAC,GAAG,mBAAmB,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACxE,CAAC,CAAA;AAFY,QAAA,iBAAiB,qBAE7B"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import merge from 'lodash/merge';
|
|
2
|
-
export class ModuleFactory {
|
|
3
|
-
configSchemas;
|
|
4
|
-
creatableModule;
|
|
5
|
-
defaultLogger;
|
|
6
|
-
defaultParams;
|
|
7
|
-
constructor(creatableModule, params) {
|
|
8
|
-
this.creatableModule = creatableModule;
|
|
9
|
-
this.defaultParams = params;
|
|
10
|
-
this.configSchemas = creatableModule.configSchemas;
|
|
11
|
-
}
|
|
12
|
-
get configSchema() {
|
|
13
|
-
return this.configSchemas[0];
|
|
14
|
-
}
|
|
15
|
-
static withParams(creatableModule, params) {
|
|
16
|
-
return new ModuleFactory(creatableModule, params);
|
|
17
|
-
}
|
|
18
|
-
create(params) {
|
|
19
|
-
const factory = this;
|
|
20
|
-
const schema = factory.creatableModule.configSchema;
|
|
21
|
-
const mergedParams = merge(factory.defaultParams ?? {}, params, { config: { schema } });
|
|
22
|
-
return factory.creatableModule.create(mergedParams);
|
|
23
|
-
}
|
|
24
|
-
factory(_params) {
|
|
25
|
-
throw new Error('Method not implemented.');
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=ModuleFactory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleFactory.js","sourceRoot":"","sources":["../../src/ModuleFactory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,cAAc,CAAA;AAMhC,MAAM,OAAO,aAAa;IACxB,aAAa,CAAkD;IAE/D,eAAe,CAA0B;IAEzC,aAAa,CAAqB;IAElC,aAAa,CAAoB;IAEjC,YAAY,eAAyC,EAAE,MAA0B;QAC/E,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa,CAAA;IACpD,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,CAAC,UAAU,CAAmB,eAAmC,EAAE,MAAoB;QAC3F,OAAO,IAAI,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,CAAoD,MAAsC;QAC9F,MAAM,OAAO,GAAG,IAAwB,CAAA;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,YAAY,CAAA;QACnD,MAAM,YAAY,GAAsB,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QAC1G,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,CAAI,YAAY,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,CAA6C,OAAiC;QACnF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;CACF"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/assert';
|
|
2
|
-
import { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder';
|
|
3
|
-
import { QueryBoundWitnessSchema } from '@xyo-network/module-model';
|
|
4
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessBuilder.js","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAA4B,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAE7F,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
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 { QueryBoundWitnessSchema } from '@xyo-network/module-model';
|
|
6
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;AAChD,OAAO,EAA4B,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAE7F,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,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"}
|
package/dist/esm/Query/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Query/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Used to filter duplicates from an array of modules
|
|
3
|
-
* @example: modulesArray.filter(duplicateModules)
|
|
4
|
-
* @param value Current Module
|
|
5
|
-
* @param index Current Module's index
|
|
6
|
-
* @param array Module Array
|
|
7
|
-
* @returns True if the Module's address is the first occurrence of
|
|
8
|
-
* that address in the array, false otherwise
|
|
9
|
-
*/
|
|
10
|
-
export const duplicateModules = (value, index, array) => {
|
|
11
|
-
return array.findIndex((v) => v.address === value.address) === index;
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=duplicateModules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"duplicateModules.js","sourceRoot":"","sources":["../../../src/lib/duplicateModules.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAqB,EAAE,KAAa,EAAE,KAAuB,EAA2B,EAAE;IACzH,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,CAAA;AACtE,CAAC,CAAA"}
|
package/dist/esm/lib/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// Inspired by https://stackoverflow.com/a/49079549/2803259
|
|
2
|
-
import every from 'lodash/every';
|
|
3
|
-
import isArray from 'lodash/isArray';
|
|
4
|
-
import isBoolean from 'lodash/isBoolean';
|
|
5
|
-
import isNull from 'lodash/isNull';
|
|
6
|
-
import isNumber from 'lodash/isNumber';
|
|
7
|
-
import isPlainObject from 'lodash/isPlainObject';
|
|
8
|
-
import isString from 'lodash/isString';
|
|
9
|
-
import isUndefined from 'lodash/isUndefined';
|
|
10
|
-
import overSome from 'lodash/overSome';
|
|
11
|
-
const JSONPrimitiveChecks = [isUndefined, isNull, isBoolean, isNumber, isString];
|
|
12
|
-
const JSONComplexChecks = [isPlainObject, isArray];
|
|
13
|
-
export const serializable = (field, depth) => {
|
|
14
|
-
let depthExceeded = false;
|
|
15
|
-
const decrementDepth = () => (depth ? depth-- : undefined);
|
|
16
|
-
const recursiveSerializable = (field) => {
|
|
17
|
-
if (depth !== undefined && depth < 1) {
|
|
18
|
-
depthExceeded = true;
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
// decrement during every recursion
|
|
22
|
-
decrementDepth();
|
|
23
|
-
const nestedSerializable = (field) => overSome(JSONComplexChecks)(field) && every(field, recursiveSerializable);
|
|
24
|
-
return overSome([...JSONPrimitiveChecks, nestedSerializable])(field);
|
|
25
|
-
};
|
|
26
|
-
const valid = recursiveSerializable(field);
|
|
27
|
-
return depthExceeded ? null : valid;
|
|
28
|
-
};
|
|
29
|
-
export const serializableField = (field) => {
|
|
30
|
-
return overSome([...JSONPrimitiveChecks, ...JSONComplexChecks])(field);
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=serializable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializable.js","sourceRoot":"","sources":["../../../src/lib/serializable.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAE3D,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,SAAS,MAAM,kBAAkB,CAAA;AACxC,OAAO,MAAM,MAAM,eAAe,CAAA;AAClC,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AACtC,OAAO,aAAa,MAAM,sBAAsB,CAAA;AAChD,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AACtC,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAC5C,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AAEtC,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAChF,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,KAAc,EAAkB,EAAE;IAC7E,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAE1D,MAAM,qBAAqB,GAAG,CAAC,KAAc,EAAE,EAAE;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE;YACpC,aAAa,GAAG,IAAI,CAAA;YACpB,OAAO,KAAK,CAAA;SACb;QAED,mCAAmC;QACnC,cAAc,EAAE,CAAA;QAEhB,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAe,EAAE,qBAAqB,CAAC,CAAA;QAE3I,OAAO,QAAQ,CAAC,CAAC,GAAG,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAE1C,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;AACrC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAE,EAAE;IAClD,OAAO,QAAQ,CAAC,CAAC,GAAG,mBAAmB,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACxE,CAAC,CAAA"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Logger } from '@xyo-network/core';
|
|
2
|
-
import { CreatableModule, CreatableModuleFactory, Module } from '@xyo-network/module-model';
|
|
3
|
-
export interface CreatableModuleDictionary {
|
|
4
|
-
[key: string]: CreatableModuleFactory;
|
|
5
|
-
}
|
|
6
|
-
export declare class ModuleFactory<TModule extends Module> implements CreatableModuleFactory<TModule> {
|
|
7
|
-
configSchemas: CreatableModuleFactory<TModule>['configSchemas'];
|
|
8
|
-
creatableModule: CreatableModule<TModule>;
|
|
9
|
-
defaultLogger?: Logger | undefined;
|
|
10
|
-
defaultParams?: TModule['params'];
|
|
11
|
-
constructor(creatableModule: CreatableModule<TModule>, params?: TModule['params']);
|
|
12
|
-
get configSchema(): string;
|
|
13
|
-
static withParams<T extends Module>(creatableModule: CreatableModule<T>, params?: T['params']): ModuleFactory<T>;
|
|
14
|
-
create<T extends Module>(this: CreatableModuleFactory<T>, params?: TModule['params'] | undefined): Promise<T>;
|
|
15
|
-
factory<T extends Module>(this: CreatableModule<T>, _params?: T['params'] | undefined): CreatableModuleFactory<T>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=ModuleFactory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleFactory.d.ts","sourceRoot":"","sources":["../../src/ModuleFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAG3F,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAA;CACtC;AAED,qBAAa,aAAa,CAAC,OAAO,SAAS,MAAM,CAAE,YAAW,sBAAsB,CAAC,OAAO,CAAC;IAC3F,aAAa,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAA;IAE/D,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAEzC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAElC,aAAa,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;gBAErB,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IAMjF,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;IAI7F,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;IAO7G,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,GAAG,sBAAsB,CAAC,CAAC,CAAC;CAGlH"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder';
|
|
2
|
-
import { Query, QueryBoundWitness } from '@xyo-network/module-model';
|
|
3
|
-
import { PayloadSetPayload } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAA2B,MAAM,2BAA2B,CAAA;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
|
|
2
|
-
import { Query, QueryBoundWitness } from '@xyo-network/module-model';
|
|
3
|
-
export declare class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
|
|
4
|
-
private _query;
|
|
5
|
-
protected get expectedSchema(): string;
|
|
6
|
-
static isQueryBoundWitnessValidator(obj: unknown): boolean;
|
|
7
|
-
validate(): Promise<Error[]>;
|
|
8
|
-
validateResultSet(): Promise<Error[]>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=QueryBoundWitnessValidator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,EAAE,KAAK,EAAE,iBAAiB,EAA2B,MAAM,2BAA2B,CAAA;AAG7F,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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
2
|
-
import { Query, QueryBoundWitness } from '@xyo-network/module-model';
|
|
3
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,OAAO,EAAqB,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAK7D,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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Query/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { IndirectModule } from '@xyo-network/module-model';
|
|
2
|
-
/**
|
|
3
|
-
* Used to filter duplicates from an array of modules
|
|
4
|
-
* @example: modulesArray.filter(duplicateModules)
|
|
5
|
-
* @param value Current Module
|
|
6
|
-
* @param index Current Module's index
|
|
7
|
-
* @param array Module Array
|
|
8
|
-
* @returns True if the Module's address is the first occurrence of
|
|
9
|
-
* that address in the array, false otherwise
|
|
10
|
-
*/
|
|
11
|
-
export declare const duplicateModules: (value: IndirectModule, index: number, array: IndirectModule[]) => value is IndirectModule;
|
|
12
|
-
//# sourceMappingURL=duplicateModules.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"duplicateModules.d.ts","sourceRoot":"","sources":["../../../src/lib/duplicateModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,UAAW,cAAc,SAAS,MAAM,SAAS,cAAc,EAAE,4BAE7F,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializable.d.ts","sourceRoot":"","sources":["../../../src/lib/serializable.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,YAAY,UAAW,OAAO,UAAU,MAAM,KAAG,OAAO,GAAG,IAqBvE,CAAA;AAED,eAAO,MAAM,iBAAiB,UAAW,OAAO,YAE/C,CAAA"}
|
package/src/ModuleFactory.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Logger } from '@xyo-network/core'
|
|
2
|
-
import { CreatableModule, CreatableModuleFactory, Module } from '@xyo-network/module-model'
|
|
3
|
-
import merge from 'lodash/merge'
|
|
4
|
-
|
|
5
|
-
export interface CreatableModuleDictionary {
|
|
6
|
-
[key: string]: CreatableModuleFactory
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export class ModuleFactory<TModule extends Module> implements CreatableModuleFactory<TModule> {
|
|
10
|
-
configSchemas: CreatableModuleFactory<TModule>['configSchemas']
|
|
11
|
-
|
|
12
|
-
creatableModule: CreatableModule<TModule>
|
|
13
|
-
|
|
14
|
-
defaultLogger?: Logger | undefined
|
|
15
|
-
|
|
16
|
-
defaultParams?: TModule['params']
|
|
17
|
-
|
|
18
|
-
constructor(creatableModule: CreatableModule<TModule>, params?: TModule['params']) {
|
|
19
|
-
this.creatableModule = creatableModule
|
|
20
|
-
this.defaultParams = params
|
|
21
|
-
this.configSchemas = creatableModule.configSchemas
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
get configSchema(): string {
|
|
25
|
-
return this.configSchemas[0]
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
static withParams<T extends Module>(creatableModule: CreatableModule<T>, params?: T['params']) {
|
|
29
|
-
return new ModuleFactory(creatableModule, params)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
create<T extends Module>(this: CreatableModuleFactory<T>, params?: TModule['params'] | undefined): Promise<T> {
|
|
33
|
-
const factory = this as ModuleFactory<T>
|
|
34
|
-
const schema = factory.creatableModule.configSchema
|
|
35
|
-
const mergedParams: TModule['params'] = merge(factory.defaultParams ?? {}, params, { config: { schema } })
|
|
36
|
-
return factory.creatableModule.create<T>(mergedParams)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
factory<T extends Module>(this: CreatableModule<T>, _params?: T['params'] | undefined): CreatableModuleFactory<T> {
|
|
40
|
-
throw new Error('Method not implemented.')
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'
|
|
3
|
-
import { Query, QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/module-model'
|
|
4
|
-
import { PayloadSetPayload } from '@xyo-network/payload-model'
|
|
5
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
6
|
-
|
|
7
|
-
export class QueryBoundWitnessBuilder<
|
|
8
|
-
TBoundWitness extends QueryBoundWitness = QueryBoundWitness,
|
|
9
|
-
TQuery extends Query = Query,
|
|
10
|
-
> extends BoundWitnessBuilder<TBoundWitness> {
|
|
11
|
-
private _query: PayloadWrapper<TQuery> | undefined
|
|
12
|
-
private _resultSet: PayloadWrapper<PayloadSetPayload> | undefined
|
|
13
|
-
|
|
14
|
-
override async hashableFields(): Promise<TBoundWitness> {
|
|
15
|
-
return {
|
|
16
|
-
...(await super.hashableFields()),
|
|
17
|
-
query: assertEx(await this._query?.hashAsync(), 'No Query Specified'),
|
|
18
|
-
schema: QueryBoundWitnessSchema,
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
query<T extends TQuery | PayloadWrapper<TQuery>>(query: T) {
|
|
23
|
-
this._query = PayloadWrapper.wrap(query)
|
|
24
|
-
this.payload(this._query.payload())
|
|
25
|
-
return this
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
resultSet<T extends PayloadSetPayload | PayloadWrapper<PayloadSetPayload>>(payloadSet: T) {
|
|
29
|
-
this._resultSet = PayloadWrapper.wrap(payloadSet)
|
|
30
|
-
this.payload(this._resultSet.payload())
|
|
31
|
-
return this
|
|
32
|
-
}
|
|
33
|
-
}
|