@xyo-network/module-abstract 2.51.10
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/LICENSE +165 -0
- package/README.md +13 -0
- package/dist/cjs/AbstractModule.js +253 -0
- package/dist/cjs/AbstractModule.js.map +1 -0
- package/dist/cjs/BaseEmitter.js +40 -0
- package/dist/cjs/BaseEmitter.js.map +1 -0
- package/dist/cjs/Error.js +21 -0
- package/dist/cjs/Error.js.map +1 -0
- package/dist/cjs/IdLogger.js +38 -0
- package/dist/cjs/IdLogger.js.map +1 -0
- package/dist/cjs/ModuleWrapper.js +226 -0
- package/dist/cjs/ModuleWrapper.js.map +1 -0
- package/dist/cjs/Query/QueryBoundWitnessBuilder.js +25 -0
- package/dist/cjs/Query/QueryBoundWitnessBuilder.js.map +1 -0
- package/dist/cjs/Query/QueryBoundWitnessValidator.js +38 -0
- package/dist/cjs/Query/QueryBoundWitnessValidator.js.map +1 -0
- package/dist/cjs/Query/QueryBoundWitnessWrapper.js +47 -0
- package/dist/cjs/Query/QueryBoundWitnessWrapper.js.map +1 -0
- package/dist/cjs/Query/index.js +7 -0
- package/dist/cjs/Query/index.js.map +1 -0
- package/dist/cjs/QueryValidator/ModuleConfigQueryValidator.js +65 -0
- package/dist/cjs/QueryValidator/ModuleConfigQueryValidator.js.map +1 -0
- package/dist/cjs/QueryValidator/QueryValidator.js +3 -0
- package/dist/cjs/QueryValidator/QueryValidator.js.map +1 -0
- package/dist/cjs/QueryValidator/SupportedQueryValidator.js +20 -0
- package/dist/cjs/QueryValidator/SupportedQueryValidator.js.map +1 -0
- package/dist/cjs/QueryValidator/index.js +7 -0
- package/dist/cjs/QueryValidator/index.js.map +1 -0
- package/dist/cjs/Resolver/CompositeModuleResolver.js +66 -0
- package/dist/cjs/Resolver/CompositeModuleResolver.js.map +1 -0
- package/dist/cjs/Resolver/ResolverEventEmitter.js +38 -0
- package/dist/cjs/Resolver/ResolverEventEmitter.js.map +1 -0
- package/dist/cjs/Resolver/SimpleModuleResolver.js +91 -0
- package/dist/cjs/Resolver/SimpleModuleResolver.js.map +1 -0
- package/dist/cjs/Resolver/index.js +12 -0
- package/dist/cjs/Resolver/index.js.map +1 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/duplicateModules.js +17 -0
- package/dist/cjs/lib/duplicateModules.js.map +1 -0
- package/dist/cjs/lib/index.js +6 -0
- package/dist/cjs/lib/index.js.map +1 -0
- package/dist/cjs/lib/serializable.js +38 -0
- package/dist/cjs/lib/serializable.js.map +1 -0
- package/dist/docs.json +70567 -0
- package/dist/esm/AbstractModule.js +241 -0
- package/dist/esm/AbstractModule.js.map +1 -0
- package/dist/esm/BaseEmitter.js +37 -0
- package/dist/esm/BaseEmitter.js.map +1 -0
- package/dist/esm/Error.js +19 -0
- package/dist/esm/Error.js.map +1 -0
- package/dist/esm/IdLogger.js +31 -0
- package/dist/esm/IdLogger.js.map +1 -0
- package/dist/esm/ModuleWrapper.js +209 -0
- package/dist/esm/ModuleWrapper.js.map +1 -0
- package/dist/esm/Query/QueryBoundWitnessBuilder.js +22 -0
- package/dist/esm/Query/QueryBoundWitnessBuilder.js.map +1 -0
- package/dist/esm/Query/QueryBoundWitnessValidator.js +35 -0
- package/dist/esm/Query/QueryBoundWitnessValidator.js.map +1 -0
- package/dist/esm/Query/QueryBoundWitnessWrapper.js +41 -0
- package/dist/esm/Query/QueryBoundWitnessWrapper.js.map +1 -0
- package/dist/esm/Query/index.js +4 -0
- package/dist/esm/Query/index.js.map +1 -0
- package/dist/esm/QueryValidator/ModuleConfigQueryValidator.js +62 -0
- package/dist/esm/QueryValidator/ModuleConfigQueryValidator.js.map +1 -0
- package/dist/esm/QueryValidator/QueryValidator.js +2 -0
- package/dist/esm/QueryValidator/QueryValidator.js.map +1 -0
- package/dist/esm/QueryValidator/SupportedQueryValidator.js +16 -0
- package/dist/esm/QueryValidator/SupportedQueryValidator.js.map +1 -0
- package/dist/esm/QueryValidator/index.js +4 -0
- package/dist/esm/QueryValidator/index.js.map +1 -0
- package/dist/esm/Resolver/CompositeModuleResolver.js +60 -0
- package/dist/esm/Resolver/CompositeModuleResolver.js.map +1 -0
- package/dist/esm/Resolver/ResolverEventEmitter.js +33 -0
- package/dist/esm/Resolver/ResolverEventEmitter.js.map +1 -0
- package/dist/esm/Resolver/SimpleModuleResolver.js +84 -0
- package/dist/esm/Resolver/SimpleModuleResolver.js.map +1 -0
- package/dist/esm/Resolver/index.js +8 -0
- package/dist/esm/Resolver/index.js.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/duplicateModules.js +13 -0
- package/dist/esm/lib/duplicateModules.js.map +1 -0
- package/dist/esm/lib/index.js +3 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/lib/serializable.js +32 -0
- package/dist/esm/lib/serializable.js.map +1 -0
- package/dist/types/AbstractModule.d.ts +42 -0
- package/dist/types/AbstractModule.d.ts.map +1 -0
- package/dist/types/BaseEmitter.d.ts +16 -0
- package/dist/types/BaseEmitter.d.ts.map +1 -0
- package/dist/types/Error.d.ts +16 -0
- package/dist/types/Error.d.ts.map +1 -0
- package/dist/types/IdLogger.d.ts +14 -0
- package/dist/types/IdLogger.d.ts.map +1 -0
- package/dist/types/ModuleWrapper.d.ts +73 -0
- package/dist/types/ModuleWrapper.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 +10 -0
- package/dist/types/Query/QueryBoundWitnessValidator.d.ts.map +1 -0
- package/dist/types/Query/QueryBoundWitnessWrapper.d.ts +16 -0
- package/dist/types/Query/QueryBoundWitnessWrapper.d.ts.map +1 -0
- package/dist/types/Query/index.d.ts +4 -0
- package/dist/types/Query/index.d.ts.map +1 -0
- package/dist/types/QueryValidator/ModuleConfigQueryValidator.d.ts +15 -0
- package/dist/types/QueryValidator/ModuleConfigQueryValidator.d.ts.map +1 -0
- package/dist/types/QueryValidator/QueryValidator.d.ts +7 -0
- package/dist/types/QueryValidator/QueryValidator.d.ts.map +1 -0
- package/dist/types/QueryValidator/SupportedQueryValidator.d.ts +18 -0
- package/dist/types/QueryValidator/SupportedQueryValidator.d.ts.map +1 -0
- package/dist/types/QueryValidator/index.d.ts +4 -0
- package/dist/types/QueryValidator/index.d.ts.map +1 -0
- package/dist/types/Resolver/CompositeModuleResolver.d.ts +16 -0
- package/dist/types/Resolver/CompositeModuleResolver.d.ts.map +1 -0
- package/dist/types/Resolver/ResolverEventEmitter.d.ts +10 -0
- package/dist/types/Resolver/ResolverEventEmitter.d.ts.map +1 -0
- package/dist/types/Resolver/SimpleModuleResolver.d.ts +19 -0
- package/dist/types/Resolver/SimpleModuleResolver.d.ts.map +1 -0
- package/dist/types/Resolver/index.d.ts +7 -0
- package/dist/types/Resolver/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/duplicateModules.d.ts +32 -0
- package/dist/types/lib/duplicateModules.d.ts.map +1 -0
- package/dist/types/lib/index.d.ts +3 -0
- package/dist/types/lib/index.d.ts.map +1 -0
- package/dist/types/lib/serializable.d.ts +3 -0
- package/dist/types/lib/serializable.d.ts.map +1 -0
- package/package.json +73 -0
- package/src/AbstractModule.ts +307 -0
- package/src/BaseEmitter.ts +47 -0
- package/src/Error.ts +25 -0
- package/src/IdLogger.ts +37 -0
- package/src/ModuleWrapper.ts +330 -0
- package/src/Query/QueryBoundWitnessBuilder.ts +29 -0
- package/src/Query/QueryBoundWitnessValidator.ts +41 -0
- package/src/Query/QueryBoundWitnessWrapper.ts +55 -0
- package/src/Query/index.ts +3 -0
- package/src/QueryValidator/ModuleConfigQueryValidator.ts +67 -0
- package/src/QueryValidator/QueryValidator.ts +8 -0
- package/src/QueryValidator/SupportedQueryValidator.ts +22 -0
- package/src/QueryValidator/index.ts +3 -0
- package/src/Resolver/CompositeModuleResolver.ts +70 -0
- package/src/Resolver/ResolverEventEmitter.ts +46 -0
- package/src/Resolver/SimpleModuleResolver.ts +118 -0
- package/src/Resolver/index.ts +8 -0
- package/src/index.ts +8 -0
- package/src/lib/duplicateModules.ts +14 -0
- package/src/lib/index.ts +2 -0
- package/src/lib/serializable.ts +41 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimpleModuleResolver = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
|
|
6
|
+
const flatten_1 = tslib_1.__importDefault(require("lodash/flatten"));
|
|
7
|
+
//This class is now package private (not exported from index.ts)
|
|
8
|
+
class SimpleModuleResolver {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.addressToName = {};
|
|
11
|
+
this.modules = {};
|
|
12
|
+
}
|
|
13
|
+
get isModuleResolver() {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
add(module) {
|
|
17
|
+
if (Array.isArray(module)) {
|
|
18
|
+
module.forEach((module) => this.addSingleModule(module));
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
this.addSingleModule(module);
|
|
22
|
+
}
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
addResolver(_resolver) {
|
|
26
|
+
throw 'Adding resolvers not supported';
|
|
27
|
+
}
|
|
28
|
+
remove(address) {
|
|
29
|
+
if (Array.isArray(address)) {
|
|
30
|
+
address.forEach((address) => this.removeSingleModule(address));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.removeSingleModule(address);
|
|
34
|
+
}
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
removeResolver(_resolver) {
|
|
38
|
+
throw 'Removing resolvers not supported';
|
|
39
|
+
}
|
|
40
|
+
resolve(filter) {
|
|
41
|
+
const filteredByName = this.resolveByName(Object.values(this.modules), filter === null || filter === void 0 ? void 0 : filter.name);
|
|
42
|
+
const filteredByAddress = (filter === null || filter === void 0 ? void 0 : filter.address)
|
|
43
|
+
? this.resolveByAddress(filteredByName, filter === null || filter === void 0 ? void 0 : filter.address)
|
|
44
|
+
: filteredByName;
|
|
45
|
+
const filteredByQuery = (filter === null || filter === void 0 ? void 0 : filter.query)
|
|
46
|
+
? this.resolveByQuery(filteredByAddress, filter === null || filter === void 0 ? void 0 : filter.query)
|
|
47
|
+
: filteredByAddress;
|
|
48
|
+
return filteredByQuery;
|
|
49
|
+
}
|
|
50
|
+
addSingleModule(module) {
|
|
51
|
+
if (module) {
|
|
52
|
+
this.modules[module.address] = module;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
removeSingleModule(address) {
|
|
56
|
+
if (address) {
|
|
57
|
+
if (this.modules[address]) {
|
|
58
|
+
delete this.modules[address];
|
|
59
|
+
const name = this.addressToName[address];
|
|
60
|
+
if (name) {
|
|
61
|
+
delete this.addressToName[address];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
resolveByAddress(modules, address) {
|
|
67
|
+
return address
|
|
68
|
+
? (0, compact_1.default)((0, flatten_1.default)(address === null || address === void 0 ? void 0 : address.map((address) => {
|
|
69
|
+
return modules.filter((module) => module.address === address);
|
|
70
|
+
})))
|
|
71
|
+
: modules;
|
|
72
|
+
}
|
|
73
|
+
resolveByName(modules, name) {
|
|
74
|
+
if (name) {
|
|
75
|
+
return (0, compact_1.default)(name.map((name) => modules.filter((module) => module.config.name === name)).flat());
|
|
76
|
+
}
|
|
77
|
+
return modules;
|
|
78
|
+
}
|
|
79
|
+
resolveByQuery(modules, query) {
|
|
80
|
+
return query
|
|
81
|
+
? (0, compact_1.default)(modules.filter((module) => query === null || query === void 0 ? void 0 : query.reduce((supported, queryList) => {
|
|
82
|
+
return (queryList.reduce((supported, query) => {
|
|
83
|
+
const queryable = module.queries.includes(query);
|
|
84
|
+
return supported && queryable;
|
|
85
|
+
}, true) || supported);
|
|
86
|
+
}, false)))
|
|
87
|
+
: modules;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.SimpleModuleResolver = SimpleModuleResolver;
|
|
91
|
+
//# sourceMappingURL=SimpleModuleResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleModuleResolver.js","sourceRoot":"","sources":["../../../src/Resolver/SimpleModuleResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimpleModuleResolver = exports.CompositeModuleResolver = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const CompositeModuleResolver_1 = require("./CompositeModuleResolver");
|
|
6
|
+
Object.defineProperty(exports, "CompositeModuleResolver", { enumerable: true, get: function () { return CompositeModuleResolver_1.CompositeModuleResolver; } });
|
|
7
|
+
tslib_1.__exportStar(require("./ResolverEventEmitter"), exports);
|
|
8
|
+
/** @deprecated use ModuleResolver */
|
|
9
|
+
class SimpleModuleResolver extends CompositeModuleResolver_1.CompositeModuleResolver {
|
|
10
|
+
}
|
|
11
|
+
exports.SimpleModuleResolver = SimpleModuleResolver;
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Resolver/index.ts"],"names":[],"mappings":";;;;AAAA,uEAAmE;AAO1D,wGAPA,iDAAuB,OAOA;AANhC,iEAAsC;AAEtC,qCAAqC;AACrC,MAAM,oBAAqB,SAAQ,iDAAuB;CAAG;AAG3B,oDAAoB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./AbstractModule"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./BaseEmitter"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./Error"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./lib"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./ModuleWrapper"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./Query"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./QueryValidator"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./Resolver"), exports);
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAgC;AAChC,wDAA6B;AAC7B,kDAAuB;AACvB,gDAAqB;AACrB,0DAA+B;AAC/B,kDAAuB;AACvB,2DAAgC;AAChC,qDAA0B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duplicateModules.js","sourceRoot":"","sources":["../../../src/lib/duplicateModules.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,KAAe,EAAmB,EAAE;IACjG,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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,6DAAkC;AAClC,yDAA8B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|