@xyo-network/module-abstract 2.75.0 → 2.75.2
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/AbstractModule.d.cts +84 -0
- package/dist/browser/AbstractModule.d.cts.map +1 -0
- package/dist/browser/AbstractModule.js +16 -182
- package/dist/browser/AbstractModule.js.map +1 -1
- package/dist/browser/AbstractModuleInstance.d.cts +14 -0
- package/dist/browser/AbstractModuleInstance.d.cts.map +1 -0
- package/dist/browser/AbstractModuleInstance.js +4 -738
- package/dist/browser/AbstractModuleInstance.js.map +1 -1
- package/dist/browser/BaseEmitter.d.cts +17 -0
- package/dist/browser/BaseEmitter.d.cts.map +1 -0
- package/dist/browser/BaseEmitter.js +2 -4
- package/dist/browser/BaseEmitter.js.map +1 -1
- package/dist/browser/Error.d.cts +15 -0
- package/dist/browser/Error.d.cts.map +1 -0
- package/dist/browser/Error.js +2 -4
- package/dist/browser/Error.js.map +1 -1
- package/dist/browser/QueryValidator/ModuleConfigQueryValidator.d.cts +15 -0
- package/dist/browser/QueryValidator/ModuleConfigQueryValidator.d.cts.map +1 -0
- package/dist/browser/QueryValidator/ModuleConfigQueryValidator.js +4 -6
- package/dist/browser/QueryValidator/ModuleConfigQueryValidator.js.map +1 -1
- package/dist/browser/QueryValidator/QueryValidator.d.cts +8 -0
- package/dist/browser/QueryValidator/QueryValidator.d.cts.map +1 -0
- package/dist/browser/QueryValidator/SupportedQueryValidator.d.cts +22 -0
- package/dist/browser/QueryValidator/SupportedQueryValidator.d.cts.map +1 -0
- package/dist/browser/QueryValidator/SupportedQueryValidator.js +3 -5
- package/dist/browser/QueryValidator/SupportedQueryValidator.js.map +1 -1
- package/dist/browser/QueryValidator/index.d.cts +4 -0
- package/dist/browser/QueryValidator/index.d.cts.map +1 -0
- package/dist/browser/QueryValidator/index.js +3 -86
- package/dist/browser/QueryValidator/index.js.map +1 -1
- package/dist/browser/index.d.cts +6 -0
- package/dist/browser/index.d.cts.map +1 -0
- package/dist/browser/index.js +5 -782
- package/dist/browser/index.js.map +1 -1
- package/dist/docs.json +42701 -0
- package/dist/node/AbstractModule.d.cts +84 -0
- package/dist/node/AbstractModule.d.cts.map +1 -0
- package/dist/node/AbstractModule.js +240 -56
- package/dist/node/AbstractModule.js.map +1 -1
- package/dist/node/AbstractModule.mjs +232 -48
- package/dist/node/AbstractModule.mjs.map +1 -1
- package/dist/node/AbstractModuleInstance.d.cts +14 -0
- package/dist/node/AbstractModuleInstance.d.cts.map +1 -0
- package/dist/node/AbstractModuleInstance.js +757 -6
- package/dist/node/AbstractModuleInstance.js.map +1 -1
- package/dist/node/AbstractModuleInstance.mjs +757 -6
- package/dist/node/AbstractModuleInstance.mjs.map +1 -1
- package/dist/node/BaseEmitter.d.cts +17 -0
- package/dist/node/BaseEmitter.d.cts.map +1 -0
- package/dist/node/BaseEmitter.js +6 -5
- package/dist/node/BaseEmitter.js.map +1 -1
- package/dist/node/BaseEmitter.mjs +6 -5
- package/dist/node/BaseEmitter.mjs.map +1 -1
- package/dist/node/Error.d.cts +15 -0
- package/dist/node/Error.d.cts.map +1 -0
- package/dist/node/Error.js +6 -5
- package/dist/node/Error.js.map +1 -1
- package/dist/node/Error.mjs +6 -5
- package/dist/node/Error.mjs.map +1 -1
- package/dist/node/QueryValidator/ModuleConfigQueryValidator.d.cts +15 -0
- package/dist/node/QueryValidator/ModuleConfigQueryValidator.d.cts.map +1 -0
- package/dist/node/QueryValidator/ModuleConfigQueryValidator.js +23 -14
- package/dist/node/QueryValidator/ModuleConfigQueryValidator.js.map +1 -1
- package/dist/node/QueryValidator/ModuleConfigQueryValidator.mjs +23 -14
- package/dist/node/QueryValidator/ModuleConfigQueryValidator.mjs.map +1 -1
- package/dist/node/QueryValidator/QueryValidator.d.cts +8 -0
- package/dist/node/QueryValidator/QueryValidator.d.cts.map +1 -0
- package/dist/node/QueryValidator/QueryValidator.js +2 -0
- package/dist/node/QueryValidator/QueryValidator.js.map +1 -1
- package/dist/node/QueryValidator/SupportedQueryValidator.d.cts +22 -0
- package/dist/node/QueryValidator/SupportedQueryValidator.d.cts.map +1 -0
- package/dist/node/QueryValidator/SupportedQueryValidator.js +7 -6
- package/dist/node/QueryValidator/SupportedQueryValidator.js.map +1 -1
- package/dist/node/QueryValidator/SupportedQueryValidator.mjs +7 -6
- package/dist/node/QueryValidator/SupportedQueryValidator.mjs.map +1 -1
- package/dist/node/QueryValidator/index.d.cts +4 -0
- package/dist/node/QueryValidator/index.d.cts.map +1 -0
- package/dist/node/QueryValidator/index.js +100 -7
- package/dist/node/QueryValidator/index.js.map +1 -1
- package/dist/node/QueryValidator/index.mjs +92 -3
- package/dist/node/QueryValidator/index.mjs.map +1 -1
- package/dist/node/index.d.cts +6 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.js +811 -11
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.mjs +799 -5
- package/dist/node/index.mjs.map +1 -1
- package/package.json +26 -26
|
@@ -1,32 +1,201 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
2
3
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
4
|
+
var __publicField = (obj, key, value) => {
|
|
5
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
6
|
+
return value;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
// src/AbstractModule.ts
|
|
3
10
|
import { assertEx } from "@xylabs/assert";
|
|
4
11
|
import { exists } from "@xylabs/exists";
|
|
5
12
|
import { compact } from "@xylabs/lodash";
|
|
6
13
|
import { HDWallet } from "@xyo-network/account";
|
|
7
14
|
import { AddressSchema } from "@xyo-network/address-payload-plugin";
|
|
8
15
|
import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
9
|
-
import { BoundWitnessBuilder, QueryBoundWitnessBuilder, QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-builder";
|
|
16
|
+
import { BoundWitnessBuilder, QueryBoundWitnessBuilder, QueryBoundWitnessWrapper as QueryBoundWitnessWrapper3 } from "@xyo-network/boundwitness-builder";
|
|
10
17
|
import { ConfigSchema } from "@xyo-network/config-payload-plugin";
|
|
11
18
|
import { PayloadHasher } from "@xyo-network/core";
|
|
12
19
|
import { handleError, handleErrorAsync } from "@xyo-network/error";
|
|
13
20
|
import { ModuleManifestPayloadSchema } from "@xyo-network/manifest-model";
|
|
14
21
|
import { AddressPreviousHashSchema, duplicateModules, ModuleAddressQuerySchema, ModuleDescribeQuerySchema, ModuleDescriptionSchema, ModuleDiscoverQuerySchema, ModuleFactory, ModuleManifestQuerySchema, ModuleSubscribeQuerySchema, serializableField } from "@xyo-network/module-model";
|
|
15
22
|
import { CompositeModuleResolver } from "@xyo-network/module-resolver";
|
|
16
|
-
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
23
|
+
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
17
24
|
import { PromiseEx } from "@xyo-network/promise";
|
|
18
25
|
import { QuerySchema } from "@xyo-network/query-payload-plugin";
|
|
19
26
|
import { IdLogger } from "@xyo-network/shared";
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
|
|
28
|
+
// src/BaseEmitter.ts
|
|
29
|
+
import { Base } from "@xyo-network/core";
|
|
30
|
+
import { Events } from "@xyo-network/module-events";
|
|
31
|
+
var _BaseEmitter = class _BaseEmitter extends Base {
|
|
32
|
+
//just here to query types
|
|
33
|
+
eventData = {};
|
|
34
|
+
events;
|
|
35
|
+
constructor(params) {
|
|
36
|
+
super(params);
|
|
37
|
+
this.events = new Events();
|
|
38
|
+
}
|
|
39
|
+
clearListeners(eventNames) {
|
|
40
|
+
return this.events.clearListeners(eventNames);
|
|
41
|
+
}
|
|
42
|
+
emit(eventName, eventArgs) {
|
|
43
|
+
return this.events.emit(eventName, eventArgs);
|
|
44
|
+
}
|
|
45
|
+
emitSerial(eventName, eventArgs) {
|
|
46
|
+
return this.events.emitSerial(eventName, eventArgs);
|
|
47
|
+
}
|
|
48
|
+
listenerCount(eventNames) {
|
|
49
|
+
return this.events.listenerCount(eventNames);
|
|
50
|
+
}
|
|
51
|
+
off(eventNames, listener) {
|
|
52
|
+
return this.events.off(eventNames, listener);
|
|
53
|
+
}
|
|
54
|
+
offAny(listener) {
|
|
55
|
+
return this.events.offAny(listener);
|
|
56
|
+
}
|
|
57
|
+
on(eventNames, listener) {
|
|
58
|
+
return this.events.on(eventNames, listener);
|
|
59
|
+
}
|
|
60
|
+
onAny(listener) {
|
|
61
|
+
return this.events.onAny(listener);
|
|
62
|
+
}
|
|
63
|
+
once(eventName, listener) {
|
|
64
|
+
return this.events.once(eventName, listener);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
__name(_BaseEmitter, "BaseEmitter");
|
|
68
|
+
var BaseEmitter = _BaseEmitter;
|
|
69
|
+
|
|
70
|
+
// src/Error.ts
|
|
71
|
+
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
72
|
+
import { ModuleErrorSchema } from "@xyo-network/payload-model";
|
|
73
|
+
var _ModuleErrorBuilder = class _ModuleErrorBuilder extends PayloadBuilder {
|
|
74
|
+
_message;
|
|
75
|
+
_name;
|
|
76
|
+
_query;
|
|
77
|
+
_sources;
|
|
78
|
+
constructor() {
|
|
79
|
+
super({
|
|
80
|
+
schema: ModuleErrorSchema
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
build() {
|
|
84
|
+
return {
|
|
85
|
+
message: this._message,
|
|
86
|
+
name: this._name,
|
|
87
|
+
query: this._query,
|
|
88
|
+
schema: ModuleErrorSchema,
|
|
89
|
+
sources: this._sources
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
message(message) {
|
|
93
|
+
this._message = message;
|
|
94
|
+
return this;
|
|
95
|
+
}
|
|
96
|
+
name(name) {
|
|
97
|
+
this._name = name;
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
100
|
+
query(query) {
|
|
101
|
+
this._query = query;
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
sources(sources) {
|
|
105
|
+
this._sources = sources;
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
__name(_ModuleErrorBuilder, "ModuleErrorBuilder");
|
|
110
|
+
var ModuleErrorBuilder = _ModuleErrorBuilder;
|
|
111
|
+
|
|
112
|
+
// src/QueryValidator/ModuleConfigQueryValidator.ts
|
|
113
|
+
import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-builder";
|
|
114
|
+
var delimiter = "";
|
|
115
|
+
var _ModuleConfigQueryValidator = class _ModuleConfigQueryValidator {
|
|
116
|
+
allowed = {};
|
|
117
|
+
disallowed = {};
|
|
118
|
+
hasAllowedRules;
|
|
119
|
+
hasDisallowedRules;
|
|
120
|
+
hasRules;
|
|
121
|
+
constructor(config) {
|
|
122
|
+
var _a, _b, _c, _d;
|
|
123
|
+
if ((_a = config == null ? void 0 : config.security) == null ? void 0 : _a.allowed) {
|
|
124
|
+
Object.entries((_b = config.security) == null ? void 0 : _b.allowed).forEach(([schema, addresses]) => {
|
|
125
|
+
this.allowed[schema] = addresses.map(toAddressesString);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
if ((_c = config == null ? void 0 : config.security) == null ? void 0 : _c.disallowed) {
|
|
129
|
+
Object.entries((_d = config.security) == null ? void 0 : _d.disallowed).forEach(([schema, addresses]) => {
|
|
130
|
+
this.disallowed[schema] = addresses.map(toAddressesString);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
this.hasAllowedRules = Object.keys(this.allowed).length > 0;
|
|
134
|
+
this.hasDisallowedRules = Object.keys(this.disallowed).length > 0;
|
|
135
|
+
this.hasRules = this.hasAllowedRules || this.hasDisallowedRules;
|
|
136
|
+
}
|
|
137
|
+
queryable = async (query, payloads) => {
|
|
138
|
+
if (!this.hasRules)
|
|
139
|
+
return true;
|
|
140
|
+
const addresses = query.addresses;
|
|
141
|
+
if (!addresses.length)
|
|
142
|
+
return false;
|
|
143
|
+
const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
|
|
144
|
+
const schema = (await wrapper.getQuery()).schema;
|
|
145
|
+
return this.queryAllowed(schema, addresses) && !this.queryDisallowed(schema, addresses);
|
|
146
|
+
};
|
|
147
|
+
queryAllowed = (schema, addresses) => {
|
|
148
|
+
var _a, _b;
|
|
149
|
+
if (!this.hasAllowedRules)
|
|
150
|
+
return true;
|
|
151
|
+
if (addresses.length > 1) {
|
|
152
|
+
const signatories = toAddressesString(addresses);
|
|
153
|
+
const validCosigners = (_b = (_a = this.allowed) == null ? void 0 : _a[schema]) == null ? void 0 : _b.includes(signatories);
|
|
154
|
+
if (validCosigners)
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
return addresses.every((address) => {
|
|
158
|
+
var _a2, _b2;
|
|
159
|
+
return ((_b2 = (_a2 = this.allowed) == null ? void 0 : _a2[schema]) == null ? void 0 : _b2.includes(address)) || false;
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
queryDisallowed = (schema, addresses) => {
|
|
163
|
+
if (!this.hasDisallowedRules)
|
|
164
|
+
return false;
|
|
165
|
+
return addresses.some((address) => {
|
|
166
|
+
var _a, _b;
|
|
167
|
+
return (_b = (_a = this.disallowed) == null ? void 0 : _a[schema]) == null ? void 0 : _b.includes(address);
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
__name(_ModuleConfigQueryValidator, "ModuleConfigQueryValidator");
|
|
172
|
+
var ModuleConfigQueryValidator = _ModuleConfigQueryValidator;
|
|
173
|
+
var toAddressesString = /* @__PURE__ */ __name((addresses) => {
|
|
174
|
+
return Array.isArray(addresses) ? addresses.sort().map((address) => address.toLowerCase()).join(delimiter) : addresses.toLowerCase();
|
|
175
|
+
}, "toAddressesString");
|
|
176
|
+
|
|
177
|
+
// src/QueryValidator/SupportedQueryValidator.ts
|
|
178
|
+
import { QueryBoundWitnessWrapper as QueryBoundWitnessWrapper2 } from "@xyo-network/boundwitness-builder";
|
|
179
|
+
var isQuerySupportedByModule = /* @__PURE__ */ __name(async (mod, query, payloads) => {
|
|
180
|
+
const wrapper = QueryBoundWitnessWrapper2.parseQuery(query, payloads);
|
|
181
|
+
const schema = (await wrapper.getQuery()).schema;
|
|
182
|
+
return mod.queries.includes(schema);
|
|
183
|
+
}, "isQuerySupportedByModule");
|
|
184
|
+
var _SupportedQueryValidator = class _SupportedQueryValidator {
|
|
185
|
+
mod;
|
|
186
|
+
constructor(mod) {
|
|
187
|
+
this.mod = mod;
|
|
188
|
+
this.queryable = (query, payloads) => {
|
|
189
|
+
return isQuerySupportedByModule(this.mod, query, payloads);
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
queryable;
|
|
193
|
+
};
|
|
194
|
+
__name(_SupportedQueryValidator, "SupportedQueryValidator");
|
|
195
|
+
var SupportedQueryValidator = _SupportedQueryValidator;
|
|
196
|
+
|
|
197
|
+
// src/AbstractModule.ts
|
|
198
|
+
var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
30
199
|
downResolver = new CompositeModuleResolver();
|
|
31
200
|
upResolver = new CompositeModuleResolver();
|
|
32
201
|
_account = void 0;
|
|
@@ -50,14 +219,14 @@ class AbstractModule extends BaseEmitter {
|
|
|
50
219
|
supportedQueryValidator;
|
|
51
220
|
_busyCount = 0;
|
|
52
221
|
constructor(privateConstructorKey, params, account) {
|
|
53
|
-
assertEx(
|
|
222
|
+
assertEx(_AbstractModule.privateConstructorKey === privateConstructorKey, "Use create function instead of constructor");
|
|
54
223
|
const mutatedParams = {
|
|
55
224
|
...params
|
|
56
225
|
};
|
|
57
226
|
super(mutatedParams);
|
|
58
227
|
this._account = account;
|
|
59
228
|
this.supportedQueryValidator = new SupportedQueryValidator(this).queryable;
|
|
60
|
-
this.moduleConfigQueryValidator = new ModuleConfigQueryValidator(mutatedParams
|
|
229
|
+
this.moduleConfigQueryValidator = new ModuleConfigQueryValidator(mutatedParams == null ? void 0 : mutatedParams.config).queryable;
|
|
61
230
|
}
|
|
62
231
|
static get configSchema() {
|
|
63
232
|
return this.configSchemas[0];
|
|
@@ -69,7 +238,8 @@ class AbstractModule extends BaseEmitter {
|
|
|
69
238
|
return this.account.address;
|
|
70
239
|
}
|
|
71
240
|
get allowAnonymous() {
|
|
72
|
-
|
|
241
|
+
var _a;
|
|
242
|
+
return !!((_a = this.config.security) == null ? void 0 : _a.allowAnonymous);
|
|
73
243
|
}
|
|
74
244
|
get config() {
|
|
75
245
|
return this.params.config;
|
|
@@ -111,36 +281,37 @@ class AbstractModule extends BaseEmitter {
|
|
|
111
281
|
assertEx(thisFunc === rootFunc, `Override not allowed for [${functionName}] - override ${functionName}Handler instead`);
|
|
112
282
|
}
|
|
113
283
|
static async create(params) {
|
|
284
|
+
var _a, _b, _c, _d;
|
|
114
285
|
this._noOverride("create");
|
|
115
286
|
if (!this.configSchemas || this.configSchemas.length === 0) {
|
|
116
|
-
throw Error(`Missing configSchema [${params
|
|
287
|
+
throw Error(`Missing configSchema [${(_a = params == null ? void 0 : params.config) == null ? void 0 : _a.schema}][${this.name}]`);
|
|
117
288
|
}
|
|
118
289
|
const { account, config, wallet } = params ?? {};
|
|
119
290
|
const { accountDerivationPath } = config ?? {};
|
|
120
|
-
assertEx(!(!!account && !!wallet), `Specifying both {account} and {wallet} are not allowed [${config
|
|
121
|
-
const schema = params
|
|
291
|
+
assertEx(!(!!account && !!wallet), `Specifying both {account} and {wallet} are not allowed [${config == null ? void 0 : config.schema}] [${account === "random" ? "random" : account == null ? void 0 : account.address}, ${wallet == null ? void 0 : wallet.address}]`);
|
|
292
|
+
const schema = ((_b = params == null ? void 0 : params.config) == null ? void 0 : _b.schema) ?? this.configSchema;
|
|
122
293
|
const allowedSchemas = this.configSchemas;
|
|
123
294
|
assertEx(allowedSchemas.filter((allowedSchema) => allowedSchema === schema).length > 0, `Bad Config Schema [Received ${schema}] [Expected ${JSON.stringify(allowedSchemas)}]`);
|
|
124
295
|
const mutatedConfig = {
|
|
125
|
-
...params
|
|
296
|
+
...params == null ? void 0 : params.config,
|
|
126
297
|
schema
|
|
127
298
|
};
|
|
128
|
-
params
|
|
299
|
+
(_c = params == null ? void 0 : params.logger) == null ? void 0 : _c.debug(`config: ${JSON.stringify(mutatedConfig, null, 2)}`);
|
|
129
300
|
const mutatedParams = {
|
|
130
301
|
...params,
|
|
131
302
|
config: mutatedConfig
|
|
132
303
|
};
|
|
133
|
-
const activeLogger = params
|
|
134
|
-
const generatedAccount = await
|
|
304
|
+
const activeLogger = (params == null ? void 0 : params.logger) ?? _AbstractModule.defaultLogger;
|
|
305
|
+
const generatedAccount = await _AbstractModule.determineAccount({
|
|
135
306
|
account,
|
|
136
307
|
accountDerivationPath,
|
|
137
308
|
wallet
|
|
138
309
|
});
|
|
139
310
|
const address = generatedAccount.address;
|
|
140
311
|
mutatedParams.logger = activeLogger ? new IdLogger(activeLogger, () => `0x${address}`) : void 0;
|
|
141
|
-
const newModule = new this(
|
|
142
|
-
if (!
|
|
143
|
-
await newModule.start
|
|
312
|
+
const newModule = new this(_AbstractModule.privateConstructorKey, mutatedParams, generatedAccount);
|
|
313
|
+
if (!_AbstractModule.enableLazyLoad) {
|
|
314
|
+
await ((_d = newModule.start) == null ? void 0 : _d.call(newModule));
|
|
144
315
|
}
|
|
145
316
|
return newModule;
|
|
146
317
|
}
|
|
@@ -214,7 +385,7 @@ class AbstractModule extends BaseEmitter {
|
|
|
214
385
|
throw Error(`Anonymous Queries not allowed, but running anyway [${this.config.name}], [${this.address}]`);
|
|
215
386
|
}
|
|
216
387
|
}
|
|
217
|
-
resultPayloads.push(...await this.queryHandler(assertEx(
|
|
388
|
+
resultPayloads.push(...await this.queryHandler(assertEx(QueryBoundWitnessWrapper3.unwrap(query)), payloads, queryConfig));
|
|
218
389
|
} catch (ex) {
|
|
219
390
|
await handleErrorAsync(ex, async (error) => {
|
|
220
391
|
errorPayloads.push(new ModuleErrorBuilder().sources([
|
|
@@ -253,7 +424,7 @@ class AbstractModule extends BaseEmitter {
|
|
|
253
424
|
return validators.every((validator) => validator(query, payloads));
|
|
254
425
|
}
|
|
255
426
|
async resolve(nameOrAddressOrFilter, options) {
|
|
256
|
-
const direction = options
|
|
427
|
+
const direction = (options == null ? void 0 : options.direction) ?? "all";
|
|
257
428
|
const up = direction === "up" || direction === "all";
|
|
258
429
|
const down = direction === "down" || direction === "all";
|
|
259
430
|
switch (typeof nameOrAddressOrFilter) {
|
|
@@ -280,13 +451,15 @@ class AbstractModule extends BaseEmitter {
|
|
|
280
451
|
}
|
|
281
452
|
if (!started) {
|
|
282
453
|
this._started = (async () => {
|
|
454
|
+
var _a, _b, _c;
|
|
283
455
|
if (tryStart) {
|
|
284
456
|
try {
|
|
285
457
|
await this.start();
|
|
286
458
|
return true;
|
|
287
459
|
} catch (ex) {
|
|
288
460
|
handleError(ex, (error) => {
|
|
289
|
-
|
|
461
|
+
var _a2;
|
|
462
|
+
(_a2 = this.logger) == null ? void 0 : _a2.warn(`Autostart of Module Failed: ${error.message})`);
|
|
290
463
|
this._started = void 0;
|
|
291
464
|
});
|
|
292
465
|
}
|
|
@@ -295,16 +468,16 @@ class AbstractModule extends BaseEmitter {
|
|
|
295
468
|
case "throw":
|
|
296
469
|
throw Error(`Module not Started [${this.address}]`);
|
|
297
470
|
case "warn":
|
|
298
|
-
this.logger
|
|
471
|
+
(_a = this.logger) == null ? void 0 : _a.warn("Module not started");
|
|
299
472
|
break;
|
|
300
473
|
case "error":
|
|
301
|
-
this.logger
|
|
474
|
+
(_b = this.logger) == null ? void 0 : _b.error("Module not started");
|
|
302
475
|
break;
|
|
303
476
|
case "none":
|
|
304
477
|
break;
|
|
305
478
|
case "log":
|
|
306
479
|
default: {
|
|
307
|
-
this.logger
|
|
480
|
+
(_c = this.logger) == null ? void 0 : _c.log("Module not started");
|
|
308
481
|
break;
|
|
309
482
|
}
|
|
310
483
|
}
|
|
@@ -327,21 +500,22 @@ class AbstractModule extends BaseEmitter {
|
|
|
327
500
|
bindHashes(hashes, schema, account) {
|
|
328
501
|
const promise = new PromiseEx((resolve) => {
|
|
329
502
|
const result = this.bindHashesInternal(hashes, schema, account);
|
|
330
|
-
resolve
|
|
503
|
+
resolve == null ? void 0 : resolve(result);
|
|
331
504
|
return result;
|
|
332
505
|
}, account);
|
|
333
506
|
return promise;
|
|
334
507
|
}
|
|
335
508
|
async bindHashesInternal(hashes, schema, account) {
|
|
509
|
+
var _a;
|
|
336
510
|
const builder = new BoundWitnessBuilder().hashes(hashes, schema).witness(this.account);
|
|
337
511
|
const result = (await (account ? builder.witness(account) : builder).build())[0];
|
|
338
|
-
this.logger
|
|
512
|
+
(_a = this.logger) == null ? void 0 : _a.debug(`result: ${JSON.stringify(result, null, 2)}`);
|
|
339
513
|
return result;
|
|
340
514
|
}
|
|
341
515
|
bindQuery(query, payloads, account) {
|
|
342
516
|
const promise = new PromiseEx(async (resolve) => {
|
|
343
517
|
const result = await this.bindQueryInternal(query, payloads, account);
|
|
344
|
-
resolve
|
|
518
|
+
resolve == null ? void 0 : resolve(result);
|
|
345
519
|
return result;
|
|
346
520
|
}, account);
|
|
347
521
|
return promise;
|
|
@@ -369,31 +543,33 @@ class AbstractModule extends BaseEmitter {
|
|
|
369
543
|
}
|
|
370
544
|
commitArchivist = () => this.getArchivist("commit");
|
|
371
545
|
async describeHandler() {
|
|
546
|
+
var _a;
|
|
372
547
|
const description = {
|
|
373
548
|
address: this.address,
|
|
374
549
|
queries: this.queries,
|
|
375
550
|
schema: ModuleDescriptionSchema
|
|
376
551
|
};
|
|
377
|
-
if (this.config
|
|
552
|
+
if ((_a = this.config) == null ? void 0 : _a.name) {
|
|
378
553
|
description.name = this.config.name;
|
|
379
554
|
}
|
|
380
555
|
const discover = await this.discoverHandler();
|
|
381
|
-
description.children = compact(discover
|
|
556
|
+
description.children = compact((discover == null ? void 0 : discover.map((payload) => {
|
|
382
557
|
const address = payload.schema === AddressSchema ? payload.address : void 0;
|
|
383
558
|
return address != this.address ? address : void 0;
|
|
384
|
-
}) ?? []);
|
|
559
|
+
})) ?? []);
|
|
385
560
|
return description;
|
|
386
561
|
}
|
|
387
562
|
discoverHandler() {
|
|
563
|
+
var _a;
|
|
388
564
|
const config = this.config;
|
|
389
|
-
const address = new
|
|
565
|
+
const address = new PayloadBuilder2({
|
|
390
566
|
schema: AddressSchema
|
|
391
567
|
}).fields({
|
|
392
568
|
address: this.address,
|
|
393
|
-
name: this.config
|
|
569
|
+
name: (_a = this.config) == null ? void 0 : _a.name
|
|
394
570
|
}).build();
|
|
395
571
|
const queries = this.queries.map((query) => {
|
|
396
|
-
return new
|
|
572
|
+
return new PayloadBuilder2({
|
|
397
573
|
schema: QuerySchema
|
|
398
574
|
}).fields({
|
|
399
575
|
query
|
|
@@ -411,24 +587,26 @@ class AbstractModule extends BaseEmitter {
|
|
|
411
587
|
]);
|
|
412
588
|
}
|
|
413
589
|
async getArchivist(kind) {
|
|
590
|
+
var _a, _b;
|
|
414
591
|
if (!this.config.archivist)
|
|
415
592
|
return void 0;
|
|
416
|
-
const filter = typeof this.config.archivist === "string" || this.config.archivist instanceof String ? this.config.archivist : this.config
|
|
593
|
+
const filter = typeof this.config.archivist === "string" || this.config.archivist instanceof String ? this.config.archivist : (_b = (_a = this.config) == null ? void 0 : _a.archivist) == null ? void 0 : _b[kind];
|
|
417
594
|
const resolved = await this.upResolver.resolve(filter);
|
|
418
595
|
return asArchivistInstance(resolved);
|
|
419
596
|
}
|
|
420
597
|
async initializeQueryAccounts() {
|
|
598
|
+
var _a, _b;
|
|
421
599
|
const paths = Object.values(this.queryAccountPaths).filter(exists);
|
|
422
600
|
const distinctPaths = new Set(paths);
|
|
423
|
-
assertEx(distinctPaths.size === paths.length, `${this.config
|
|
601
|
+
assertEx(distinctPaths.size === paths.length, `${((_a = this.config) == null ? void 0 : _a.name) ? this.config.name + ": " : ""}Duplicate query account paths`);
|
|
424
602
|
const wallet = this.account;
|
|
425
|
-
if (wallet
|
|
603
|
+
if (wallet == null ? void 0 : wallet.derivePath) {
|
|
426
604
|
for (const key in this.queryAccountPaths) {
|
|
427
605
|
if (Object.prototype.hasOwnProperty.call(this.queryAccountPaths, key)) {
|
|
428
606
|
const query = key;
|
|
429
607
|
const queryAccountPath = this.queryAccountPaths[query];
|
|
430
608
|
if (queryAccountPath) {
|
|
431
|
-
this._queryAccounts[query] = await wallet.derivePath
|
|
609
|
+
this._queryAccounts[query] = await ((_b = wallet.derivePath) == null ? void 0 : _b.call(wallet, queryAccountPath));
|
|
432
610
|
}
|
|
433
611
|
}
|
|
434
612
|
}
|
|
@@ -490,7 +668,7 @@ class AbstractModule extends BaseEmitter {
|
|
|
490
668
|
}
|
|
491
669
|
async queryHandler(query, payloads, queryConfig) {
|
|
492
670
|
await this.started("throw");
|
|
493
|
-
const wrapper =
|
|
671
|
+
const wrapper = QueryBoundWitnessWrapper3.parseQuery(query, payloads);
|
|
494
672
|
const queryPayload = await wrapper.getQuery();
|
|
495
673
|
assertEx(this.queryable(query, payloads, queryConfig));
|
|
496
674
|
const resultPayloads = [];
|
|
@@ -536,9 +714,10 @@ class AbstractModule extends BaseEmitter {
|
|
|
536
714
|
}
|
|
537
715
|
validateConfig(config, parents = []) {
|
|
538
716
|
return Object.entries(config ?? this.config ?? {}).reduce((valid, [key, value]) => {
|
|
717
|
+
var _a, _b;
|
|
539
718
|
switch (typeof value) {
|
|
540
719
|
case "function":
|
|
541
|
-
this.logger
|
|
720
|
+
(_a = this.logger) == null ? void 0 : _a.warn(`Fields of type function not allowed in config [${parents == null ? void 0 : parents.join(".")}.${key}]`);
|
|
542
721
|
return false;
|
|
543
722
|
case "object": {
|
|
544
723
|
if (Array.isArray(value)) {
|
|
@@ -550,7 +729,7 @@ class AbstractModule extends BaseEmitter {
|
|
|
550
729
|
}, true) && valid;
|
|
551
730
|
}
|
|
552
731
|
if (!serializableField(value)) {
|
|
553
|
-
this.logger
|
|
732
|
+
(_b = this.logger) == null ? void 0 : _b.warn(`Fields that are not serializable to JSON are not allowed in config [${parents == null ? void 0 : parents.join(".")}.${key}]`);
|
|
554
733
|
return false;
|
|
555
734
|
}
|
|
556
735
|
return value ? this.validateConfig(value, [
|
|
@@ -564,7 +743,12 @@ class AbstractModule extends BaseEmitter {
|
|
|
564
743
|
}, true);
|
|
565
744
|
}
|
|
566
745
|
writeArchivist = () => this.getArchivist("write");
|
|
567
|
-
}
|
|
746
|
+
};
|
|
747
|
+
__name(_AbstractModule, "AbstractModule");
|
|
748
|
+
__publicField(_AbstractModule, "configSchemas");
|
|
749
|
+
__publicField(_AbstractModule, "enableLazyLoad", false);
|
|
750
|
+
__publicField(_AbstractModule, "privateConstructorKey", Date.now().toString());
|
|
751
|
+
var AbstractModule = _AbstractModule;
|
|
568
752
|
export {
|
|
569
753
|
AbstractModule
|
|
570
754
|
};
|