@xyo-network/module-abstract 2.84.2 → 2.84.3
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/node/{index.mjs → index.cjs} +139 -108
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.js +107 -138
- package/dist/node/index.js.map +1 -1
- package/package.json +26 -26
- package/dist/node/index.mjs.map +0 -1
package/dist/node/index.js
CHANGED
|
@@ -1,70 +1,40 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
3
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
4
|
var __publicField = (obj, key, value) => {
|
|
22
5
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
23
6
|
return value;
|
|
24
7
|
};
|
|
25
8
|
|
|
26
|
-
// src/index.ts
|
|
27
|
-
var src_exports = {};
|
|
28
|
-
__export(src_exports, {
|
|
29
|
-
AbstractModule: () => AbstractModule,
|
|
30
|
-
AbstractModuleInstance: () => AbstractModuleInstance,
|
|
31
|
-
BaseEmitter: () => BaseEmitter,
|
|
32
|
-
ModuleConfigQueryValidator: () => ModuleConfigQueryValidator,
|
|
33
|
-
ModuleErrorBuilder: () => ModuleErrorBuilder,
|
|
34
|
-
SupportedQueryValidator: () => SupportedQueryValidator,
|
|
35
|
-
isQuerySupportedByModule: () => isQuerySupportedByModule
|
|
36
|
-
});
|
|
37
|
-
module.exports = __toCommonJS(src_exports);
|
|
38
|
-
|
|
39
9
|
// src/AbstractModule.ts
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
10
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
11
|
+
import { handleError, handleErrorAsync } from "@xylabs/error";
|
|
12
|
+
import { exists } from "@xylabs/exists";
|
|
13
|
+
import { compact } from "@xylabs/lodash";
|
|
14
|
+
import { IdLogger } from "@xylabs/logger";
|
|
15
|
+
import { PromiseEx } from "@xylabs/promise";
|
|
16
|
+
import { Account as Account2 } from "@xyo-network/account";
|
|
17
|
+
import { AddressSchema } from "@xyo-network/address-payload-plugin";
|
|
18
|
+
import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
19
|
+
import { BoundWitnessBuilder, QueryBoundWitnessBuilder, QueryBoundWitnessWrapper as QueryBoundWitnessWrapper3 } from "@xyo-network/boundwitness-builder";
|
|
20
|
+
import { ConfigSchema } from "@xyo-network/config-payload-plugin";
|
|
21
|
+
import { PayloadHasher } from "@xyo-network/hash";
|
|
22
|
+
import { ModuleManifestPayloadSchema } from "@xyo-network/manifest-model";
|
|
23
|
+
import { AddressPreviousHashSchema, duplicateModules, ModuleAddressQuerySchema, ModuleDescribeQuerySchema, ModuleDescriptionSchema, ModuleDiscoverQuerySchema, ModuleFactory, ModuleManifestQuerySchema, ModuleSubscribeQuerySchema, serializableField } from "@xyo-network/module-model";
|
|
24
|
+
import { CompositeModuleResolver } from "@xyo-network/module-resolver";
|
|
25
|
+
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
26
|
+
import { QuerySchema } from "@xyo-network/query-payload-plugin";
|
|
57
27
|
|
|
58
28
|
// src/BaseEmitter.ts
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
var _BaseEmitter = class _BaseEmitter extends
|
|
29
|
+
import { Events } from "@xyo-network/module-events";
|
|
30
|
+
import { Base } from "@xyo-network/object";
|
|
31
|
+
var _BaseEmitter = class _BaseEmitter extends Base {
|
|
62
32
|
//just here to query types
|
|
63
33
|
eventData = {};
|
|
64
34
|
events;
|
|
65
35
|
constructor(params) {
|
|
66
36
|
super(params);
|
|
67
|
-
this.events = new
|
|
37
|
+
this.events = new Events();
|
|
68
38
|
}
|
|
69
39
|
clearListeners(eventNames) {
|
|
70
40
|
return this.events.clearListeners(eventNames);
|
|
@@ -98,10 +68,10 @@ __name(_BaseEmitter, "BaseEmitter");
|
|
|
98
68
|
var BaseEmitter = _BaseEmitter;
|
|
99
69
|
|
|
100
70
|
// src/determineAccount.ts
|
|
101
|
-
|
|
102
|
-
|
|
71
|
+
import { assertEx } from "@xylabs/assert";
|
|
72
|
+
import { Account } from "@xyo-network/account";
|
|
103
73
|
var isDetermineAccountFromAccountParams = /* @__PURE__ */ __name((params) => {
|
|
104
|
-
|
|
74
|
+
assertEx(!params.accountDerivationPath, "accountDerivationPath may not be provided when account is provided");
|
|
105
75
|
return !!params.account;
|
|
106
76
|
}, "isDetermineAccountFromAccountParams");
|
|
107
77
|
var isDetermineAccountFromWalletParams = /* @__PURE__ */ __name((params) => {
|
|
@@ -109,27 +79,27 @@ var isDetermineAccountFromWalletParams = /* @__PURE__ */ __name((params) => {
|
|
|
109
79
|
}, "isDetermineAccountFromWalletParams");
|
|
110
80
|
async function determineAccount(params) {
|
|
111
81
|
if (isDetermineAccountFromAccountParams(params)) {
|
|
112
|
-
return params.account === "random" ?
|
|
82
|
+
return params.account === "random" ? Account.randomSync() : params.account;
|
|
113
83
|
}
|
|
114
84
|
if (isDetermineAccountFromWalletParams(params)) {
|
|
115
|
-
return
|
|
85
|
+
return assertEx(params.accountDerivationPath ? await params.wallet.derivePath(params.accountDerivationPath) : params.wallet, "Failed to derive account from path");
|
|
116
86
|
}
|
|
117
87
|
console.warn("AbstractModule.determineAccount: No account or wallet provided - Creating Random account");
|
|
118
|
-
return
|
|
88
|
+
return Account.randomSync();
|
|
119
89
|
}
|
|
120
90
|
__name(determineAccount, "determineAccount");
|
|
121
91
|
|
|
122
92
|
// src/Error.ts
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
var _ModuleErrorBuilder = class _ModuleErrorBuilder extends
|
|
93
|
+
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
94
|
+
import { ModuleErrorSchema } from "@xyo-network/payload-model";
|
|
95
|
+
var _ModuleErrorBuilder = class _ModuleErrorBuilder extends PayloadBuilder {
|
|
126
96
|
_message;
|
|
127
97
|
_name;
|
|
128
98
|
_query;
|
|
129
99
|
_sources;
|
|
130
100
|
constructor() {
|
|
131
101
|
super({
|
|
132
|
-
schema:
|
|
102
|
+
schema: ModuleErrorSchema
|
|
133
103
|
});
|
|
134
104
|
}
|
|
135
105
|
build() {
|
|
@@ -137,7 +107,7 @@ var _ModuleErrorBuilder = class _ModuleErrorBuilder extends import_payload_build
|
|
|
137
107
|
message: this._message,
|
|
138
108
|
name: this._name,
|
|
139
109
|
query: this._query,
|
|
140
|
-
schema:
|
|
110
|
+
schema: ModuleErrorSchema,
|
|
141
111
|
sources: this._sources
|
|
142
112
|
});
|
|
143
113
|
}
|
|
@@ -162,7 +132,7 @@ __name(_ModuleErrorBuilder, "ModuleErrorBuilder");
|
|
|
162
132
|
var ModuleErrorBuilder = _ModuleErrorBuilder;
|
|
163
133
|
|
|
164
134
|
// src/QueryValidator/ModuleConfigQueryValidator.ts
|
|
165
|
-
|
|
135
|
+
import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-builder";
|
|
166
136
|
var delimiter = "";
|
|
167
137
|
var _ModuleConfigQueryValidator = class _ModuleConfigQueryValidator {
|
|
168
138
|
allowed = {};
|
|
@@ -192,7 +162,7 @@ var _ModuleConfigQueryValidator = class _ModuleConfigQueryValidator {
|
|
|
192
162
|
const addresses = query.addresses;
|
|
193
163
|
if (!addresses.length)
|
|
194
164
|
return false;
|
|
195
|
-
const wrapper =
|
|
165
|
+
const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
|
|
196
166
|
const schema = (await wrapper.getQuery()).schema;
|
|
197
167
|
return this.queryAllowed(schema, addresses) && !this.queryDisallowed(schema, addresses);
|
|
198
168
|
};
|
|
@@ -227,9 +197,9 @@ var toAddressesString = /* @__PURE__ */ __name((addresses) => {
|
|
|
227
197
|
}, "toAddressesString");
|
|
228
198
|
|
|
229
199
|
// src/QueryValidator/SupportedQueryValidator.ts
|
|
230
|
-
|
|
200
|
+
import { QueryBoundWitnessWrapper as QueryBoundWitnessWrapper2 } from "@xyo-network/boundwitness-builder";
|
|
231
201
|
var isQuerySupportedByModule = /* @__PURE__ */ __name(async (mod, query, payloads) => {
|
|
232
|
-
const wrapper =
|
|
202
|
+
const wrapper = QueryBoundWitnessWrapper2.parseQuery(query, payloads);
|
|
233
203
|
const schema = (await wrapper.getQuery()).schema;
|
|
234
204
|
return mod.queries.includes(schema);
|
|
235
205
|
}, "isQuerySupportedByModule");
|
|
@@ -248,22 +218,22 @@ var SupportedQueryValidator = _SupportedQueryValidator;
|
|
|
248
218
|
|
|
249
219
|
// src/AbstractModule.ts
|
|
250
220
|
var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
251
|
-
downResolver = new
|
|
252
|
-
upResolver = new
|
|
221
|
+
downResolver = new CompositeModuleResolver();
|
|
222
|
+
upResolver = new CompositeModuleResolver();
|
|
253
223
|
_account = void 0;
|
|
254
224
|
_baseModuleQueryAccountPaths = {
|
|
255
|
-
[
|
|
256
|
-
[
|
|
257
|
-
[
|
|
258
|
-
[
|
|
259
|
-
[
|
|
225
|
+
[ModuleAddressQuerySchema]: "1",
|
|
226
|
+
[ModuleDescribeQuerySchema]: "4",
|
|
227
|
+
[ModuleDiscoverQuerySchema]: "2",
|
|
228
|
+
[ModuleManifestQuerySchema]: "5",
|
|
229
|
+
[ModuleSubscribeQuerySchema]: "3"
|
|
260
230
|
};
|
|
261
231
|
_queryAccounts = {
|
|
262
|
-
[
|
|
263
|
-
[
|
|
264
|
-
[
|
|
265
|
-
[
|
|
266
|
-
[
|
|
232
|
+
[ModuleAddressQuerySchema]: void 0,
|
|
233
|
+
[ModuleDescribeQuerySchema]: void 0,
|
|
234
|
+
[ModuleDiscoverQuerySchema]: void 0,
|
|
235
|
+
[ModuleManifestQuerySchema]: void 0,
|
|
236
|
+
[ModuleSubscribeQuerySchema]: void 0
|
|
267
237
|
};
|
|
268
238
|
_startPromise = void 0;
|
|
269
239
|
_started = void 0;
|
|
@@ -271,7 +241,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
271
241
|
supportedQueryValidator;
|
|
272
242
|
_busyCount = 0;
|
|
273
243
|
constructor(privateConstructorKey, params, account) {
|
|
274
|
-
(
|
|
244
|
+
assertEx2(_AbstractModule.privateConstructorKey === privateConstructorKey, "Use create function instead of constructor");
|
|
275
245
|
const mutatedParams = {
|
|
276
246
|
...params
|
|
277
247
|
};
|
|
@@ -284,7 +254,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
284
254
|
return this.configSchemas[0];
|
|
285
255
|
}
|
|
286
256
|
get account() {
|
|
287
|
-
return (
|
|
257
|
+
return assertEx2(this._account, "Missing account");
|
|
288
258
|
}
|
|
289
259
|
get address() {
|
|
290
260
|
return this.account.address;
|
|
@@ -301,11 +271,11 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
301
271
|
}
|
|
302
272
|
get queries() {
|
|
303
273
|
return [
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
274
|
+
ModuleDiscoverQuerySchema,
|
|
275
|
+
ModuleAddressQuerySchema,
|
|
276
|
+
ModuleSubscribeQuerySchema,
|
|
277
|
+
ModuleDescribeQuerySchema,
|
|
278
|
+
ModuleManifestQuerySchema
|
|
309
279
|
];
|
|
310
280
|
}
|
|
311
281
|
get queryAccountPaths() {
|
|
@@ -330,7 +300,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
330
300
|
static _noOverride(functionName) {
|
|
331
301
|
const thisFunc = this[functionName];
|
|
332
302
|
const rootFunc = this._getRootFunction(functionName);
|
|
333
|
-
(
|
|
303
|
+
assertEx2(thisFunc === rootFunc, `Override not allowed for [${functionName}] - override ${functionName}Handler instead`);
|
|
334
304
|
}
|
|
335
305
|
static async create(params) {
|
|
336
306
|
var _a, _b, _c, _d;
|
|
@@ -340,10 +310,10 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
340
310
|
}
|
|
341
311
|
const { account, config, wallet } = params ?? {};
|
|
342
312
|
const { accountDerivationPath } = config ?? {};
|
|
343
|
-
(
|
|
313
|
+
assertEx2(!(!!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}]`);
|
|
344
314
|
const schema = ((_b = params == null ? void 0 : params.config) == null ? void 0 : _b.schema) ?? this.configSchema;
|
|
345
315
|
const allowedSchemas = this.configSchemas;
|
|
346
|
-
(
|
|
316
|
+
assertEx2(allowedSchemas.filter((allowedSchema) => allowedSchema === schema).length > 0, `Bad Config Schema [Received ${schema}] [Expected ${JSON.stringify(allowedSchemas)}]`);
|
|
347
317
|
const mutatedConfig = {
|
|
348
318
|
...params == null ? void 0 : params.config,
|
|
349
319
|
schema
|
|
@@ -360,7 +330,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
360
330
|
wallet
|
|
361
331
|
});
|
|
362
332
|
const address = generatedAccount.address;
|
|
363
|
-
mutatedParams.logger = activeLogger ? new
|
|
333
|
+
mutatedParams.logger = activeLogger ? new IdLogger(activeLogger, () => `0x${address}`) : void 0;
|
|
364
334
|
const newModule = new this(_AbstractModule.privateConstructorKey, mutatedParams, generatedAccount);
|
|
365
335
|
if (!_AbstractModule.enableLazyLoad) {
|
|
366
336
|
await ((_d = newModule.start) == null ? void 0 : _d.call(newModule));
|
|
@@ -371,7 +341,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
371
341
|
return await determineAccount(params);
|
|
372
342
|
}
|
|
373
343
|
static factory(params) {
|
|
374
|
-
return
|
|
344
|
+
return ModuleFactory.withParams(this, params);
|
|
375
345
|
}
|
|
376
346
|
_getRootFunction(funcName) {
|
|
377
347
|
let anyThis = this;
|
|
@@ -383,7 +353,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
383
353
|
_noOverride(functionName) {
|
|
384
354
|
const thisFunc = this[functionName];
|
|
385
355
|
const rootFunc = this._getRootFunction(functionName);
|
|
386
|
-
(
|
|
356
|
+
assertEx2(thisFunc === rootFunc, `Override not allowed for [${functionName}] - override ${functionName}Handler instead`);
|
|
387
357
|
}
|
|
388
358
|
async busy(closure) {
|
|
389
359
|
if (this._busyCount <= 0) {
|
|
@@ -417,11 +387,11 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
417
387
|
}
|
|
418
388
|
async query(query, payloads, queryConfig) {
|
|
419
389
|
this._noOverride("query");
|
|
420
|
-
const sourceQuery = await
|
|
390
|
+
const sourceQuery = await PayloadHasher.hashAsync(query);
|
|
421
391
|
return await this.busy(async () => {
|
|
422
392
|
const resultPayloads = [];
|
|
423
393
|
const errorPayloads = [];
|
|
424
|
-
const queryAccount = this.ephemeralQueryAccountEnabled ?
|
|
394
|
+
const queryAccount = this.ephemeralQueryAccountEnabled ? Account2.randomSync() : void 0;
|
|
425
395
|
try {
|
|
426
396
|
await this.started("throw");
|
|
427
397
|
if (!this.allowAnonymous) {
|
|
@@ -429,11 +399,11 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
429
399
|
throw Error(`Anonymous Queries not allowed, but running anyway [${this.config.name}], [${this.address}]`);
|
|
430
400
|
}
|
|
431
401
|
}
|
|
432
|
-
resultPayloads.push(...await this.queryHandler((
|
|
402
|
+
resultPayloads.push(...await this.queryHandler(assertEx2(QueryBoundWitnessWrapper3.unwrap(query)), payloads, queryConfig));
|
|
433
403
|
} catch (ex) {
|
|
434
|
-
await
|
|
404
|
+
await handleErrorAsync(ex, async (error) => {
|
|
435
405
|
errorPayloads.push(await new ModuleErrorBuilder().sources([
|
|
436
|
-
await
|
|
406
|
+
await PayloadHasher.hashAsync(query)
|
|
437
407
|
]).name(this.config.name ?? "<Unknown>").query(query.schema).message(error.message).build());
|
|
438
408
|
});
|
|
439
409
|
}
|
|
@@ -480,7 +450,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
480
450
|
return [
|
|
481
451
|
...down ? await this.downResolver.resolve(filter, options) : [],
|
|
482
452
|
...up ? await this.upResolver.resolve(filter, options) : []
|
|
483
|
-
].filter(
|
|
453
|
+
].filter(duplicateModules);
|
|
484
454
|
}
|
|
485
455
|
}
|
|
486
456
|
}
|
|
@@ -501,7 +471,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
501
471
|
await this.start();
|
|
502
472
|
return true;
|
|
503
473
|
} catch (ex) {
|
|
504
|
-
|
|
474
|
+
handleError(ex, (error) => {
|
|
505
475
|
var _a2;
|
|
506
476
|
(_a2 = this.logger) == null ? void 0 : _a2.warn(`Autostart of Module Failed: ${error.message})`);
|
|
507
477
|
this._started = void 0;
|
|
@@ -542,7 +512,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
542
512
|
});
|
|
543
513
|
}
|
|
544
514
|
bindHashes(hashes, schema, account) {
|
|
545
|
-
const promise = new
|
|
515
|
+
const promise = new PromiseEx((resolve) => {
|
|
546
516
|
const result = this.bindHashesInternal(hashes, schema, account);
|
|
547
517
|
resolve == null ? void 0 : resolve(result);
|
|
548
518
|
return result;
|
|
@@ -551,13 +521,13 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
551
521
|
}
|
|
552
522
|
async bindHashesInternal(hashes, schema, account) {
|
|
553
523
|
var _a;
|
|
554
|
-
const builder = new
|
|
524
|
+
const builder = new BoundWitnessBuilder().hashes(hashes, schema).witness(this.account);
|
|
555
525
|
const result = (await (account ? builder.witness(account) : builder).build())[0];
|
|
556
526
|
(_a = this.logger) == null ? void 0 : _a.debug(`result: ${JSON.stringify(result, null, 2)}`);
|
|
557
527
|
return result;
|
|
558
528
|
}
|
|
559
529
|
bindQuery(query, payloads, account) {
|
|
560
|
-
const promise = new
|
|
530
|
+
const promise = new PromiseEx(async (resolve) => {
|
|
561
531
|
const result = await this.bindQueryInternal(query, payloads, account);
|
|
562
532
|
resolve == null ? void 0 : resolve(result);
|
|
563
533
|
return result;
|
|
@@ -565,18 +535,18 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
565
535
|
return promise;
|
|
566
536
|
}
|
|
567
537
|
async bindQueryInternal(query, payloads, account) {
|
|
568
|
-
const builder = new
|
|
538
|
+
const builder = new QueryBoundWitnessBuilder().payloads(payloads).witness(this.account).query(query);
|
|
569
539
|
const result = await (account ? builder.witness(account) : builder).build();
|
|
570
540
|
return result;
|
|
571
541
|
}
|
|
572
542
|
async bindQueryResult(query, payloads, sourceQuery, additionalWitnesses = [], errors) {
|
|
573
|
-
const builder = new
|
|
543
|
+
const builder = new BoundWitnessBuilder().payloads(payloads).errors(errors).sourceQuery(sourceQuery);
|
|
574
544
|
const queryWitnessAccount = this.queryAccounts[query.schema];
|
|
575
545
|
const witnesses = [
|
|
576
546
|
this.account,
|
|
577
547
|
queryWitnessAccount,
|
|
578
548
|
...additionalWitnesses
|
|
579
|
-
].filter(
|
|
549
|
+
].filter(exists);
|
|
580
550
|
builder.witnesses(witnesses);
|
|
581
551
|
const result = [
|
|
582
552
|
(await builder.build())[0],
|
|
@@ -594,14 +564,14 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
594
564
|
const description = {
|
|
595
565
|
address: this.address,
|
|
596
566
|
queries: this.queries,
|
|
597
|
-
schema:
|
|
567
|
+
schema: ModuleDescriptionSchema
|
|
598
568
|
};
|
|
599
569
|
if ((_a = this.config) == null ? void 0 : _a.name) {
|
|
600
570
|
description.name = this.config.name;
|
|
601
571
|
}
|
|
602
572
|
const discover = await this.discoverHandler();
|
|
603
|
-
description.children =
|
|
604
|
-
const address = payload.schema ===
|
|
573
|
+
description.children = compact((discover == null ? void 0 : discover.map((payload) => {
|
|
574
|
+
const address = payload.schema === AddressSchema ? payload.address : void 0;
|
|
605
575
|
return address != this.address ? address : void 0;
|
|
606
576
|
})) ?? []);
|
|
607
577
|
return description;
|
|
@@ -609,24 +579,24 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
609
579
|
async discoverHandler(_maxDepth) {
|
|
610
580
|
var _a;
|
|
611
581
|
const config = this.config;
|
|
612
|
-
const address = await new
|
|
613
|
-
schema:
|
|
582
|
+
const address = await new PayloadBuilder2({
|
|
583
|
+
schema: AddressSchema
|
|
614
584
|
}).fields({
|
|
615
585
|
address: this.address,
|
|
616
586
|
name: (_a = this.config) == null ? void 0 : _a.name
|
|
617
587
|
}).build();
|
|
618
588
|
const queries = await Promise.all(this.queries.map(async (query) => {
|
|
619
|
-
return await new
|
|
620
|
-
schema:
|
|
589
|
+
return await new PayloadBuilder2({
|
|
590
|
+
schema: QuerySchema
|
|
621
591
|
}).fields({
|
|
622
592
|
query
|
|
623
593
|
}).build();
|
|
624
594
|
}));
|
|
625
595
|
const configSchema = {
|
|
626
596
|
config: config.schema,
|
|
627
|
-
schema:
|
|
597
|
+
schema: ConfigSchema
|
|
628
598
|
};
|
|
629
|
-
return
|
|
599
|
+
return compact([
|
|
630
600
|
config,
|
|
631
601
|
configSchema,
|
|
632
602
|
address,
|
|
@@ -639,13 +609,13 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
639
609
|
return void 0;
|
|
640
610
|
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];
|
|
641
611
|
const resolved = await this.upResolver.resolve(filter);
|
|
642
|
-
return
|
|
612
|
+
return asArchivistInstance(resolved);
|
|
643
613
|
}
|
|
644
614
|
async initializeQueryAccounts() {
|
|
645
615
|
var _a, _b;
|
|
646
|
-
const paths = Object.values(this.queryAccountPaths).filter(
|
|
616
|
+
const paths = Object.values(this.queryAccountPaths).filter(exists);
|
|
647
617
|
const distinctPaths = new Set(paths);
|
|
648
|
-
(
|
|
618
|
+
assertEx2(distinctPaths.size === paths.length, `${((_a = this.config) == null ? void 0 : _a.name) ? this.config.name + ": " : ""}Duplicate query account paths`);
|
|
649
619
|
const wallet = this.account;
|
|
650
620
|
if (wallet == null ? void 0 : wallet.derivePath) {
|
|
651
621
|
for (const key in this.queryAccountPaths) {
|
|
@@ -666,7 +636,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
666
636
|
name,
|
|
667
637
|
...this.config
|
|
668
638
|
},
|
|
669
|
-
schema:
|
|
639
|
+
schema: ModuleManifestPayloadSchema,
|
|
670
640
|
status: {
|
|
671
641
|
address: this.address
|
|
672
642
|
}
|
|
@@ -674,7 +644,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
674
644
|
}
|
|
675
645
|
moduleAddressHandler() {
|
|
676
646
|
const queryAccounts = Object.entries(this.queryAccounts).filter((value) => {
|
|
677
|
-
return
|
|
647
|
+
return exists(value[1]);
|
|
678
648
|
}).map(([name2, account]) => {
|
|
679
649
|
const address2 = account.address;
|
|
680
650
|
const previousHash2 = account.previousHash;
|
|
@@ -682,12 +652,12 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
682
652
|
{
|
|
683
653
|
address: address2,
|
|
684
654
|
name: name2,
|
|
685
|
-
schema:
|
|
655
|
+
schema: AddressSchema
|
|
686
656
|
},
|
|
687
657
|
{
|
|
688
658
|
address: address2,
|
|
689
659
|
previousHash: previousHash2,
|
|
690
|
-
schema:
|
|
660
|
+
schema: AddressPreviousHashSchema
|
|
691
661
|
}
|
|
692
662
|
];
|
|
693
663
|
});
|
|
@@ -697,18 +667,18 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
697
667
|
const moduleAccount = name ? {
|
|
698
668
|
address,
|
|
699
669
|
name,
|
|
700
|
-
schema:
|
|
670
|
+
schema: AddressSchema
|
|
701
671
|
} : {
|
|
702
672
|
address,
|
|
703
|
-
schema:
|
|
673
|
+
schema: AddressSchema
|
|
704
674
|
};
|
|
705
675
|
const moduleAccountPreviousHash = previousHash ? {
|
|
706
676
|
address,
|
|
707
677
|
previousHash,
|
|
708
|
-
schema:
|
|
678
|
+
schema: AddressPreviousHashSchema
|
|
709
679
|
} : {
|
|
710
680
|
address,
|
|
711
|
-
schema:
|
|
681
|
+
schema: AddressPreviousHashSchema
|
|
712
682
|
};
|
|
713
683
|
return [
|
|
714
684
|
moduleAccount,
|
|
@@ -718,29 +688,29 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
718
688
|
}
|
|
719
689
|
async queryHandler(query, payloads, queryConfig) {
|
|
720
690
|
await this.started("throw");
|
|
721
|
-
const wrapper =
|
|
691
|
+
const wrapper = QueryBoundWitnessWrapper3.parseQuery(query, payloads);
|
|
722
692
|
const queryPayload = await wrapper.getQuery();
|
|
723
|
-
(
|
|
693
|
+
assertEx2(this.queryable(query, payloads, queryConfig));
|
|
724
694
|
const resultPayloads = [];
|
|
725
695
|
switch (queryPayload.schema) {
|
|
726
|
-
case
|
|
696
|
+
case ModuleManifestQuerySchema: {
|
|
727
697
|
resultPayloads.push(await this.manifestHandler(queryPayload.maxDepth));
|
|
728
698
|
break;
|
|
729
699
|
}
|
|
730
|
-
case
|
|
700
|
+
case ModuleDiscoverQuerySchema: {
|
|
731
701
|
const { maxDepth } = queryPayload;
|
|
732
702
|
resultPayloads.push(...await this.discoverHandler(maxDepth));
|
|
733
703
|
break;
|
|
734
704
|
}
|
|
735
|
-
case
|
|
705
|
+
case ModuleDescribeQuerySchema: {
|
|
736
706
|
resultPayloads.push(await this.describeHandler());
|
|
737
707
|
break;
|
|
738
708
|
}
|
|
739
|
-
case
|
|
709
|
+
case ModuleAddressQuerySchema: {
|
|
740
710
|
resultPayloads.push(...await this.moduleAddressHandler());
|
|
741
711
|
break;
|
|
742
712
|
}
|
|
743
|
-
case
|
|
713
|
+
case ModuleSubscribeQuerySchema: {
|
|
744
714
|
this.subscribeHandler();
|
|
745
715
|
break;
|
|
746
716
|
}
|
|
@@ -756,7 +726,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
756
726
|
if (!archivists)
|
|
757
727
|
return [];
|
|
758
728
|
const resolved = await Promise.all(archivists.map((archivist) => this.resolve(archivist)));
|
|
759
|
-
return
|
|
729
|
+
return compact(resolved.map((mod) => asArchivistInstance(mod)));
|
|
760
730
|
}
|
|
761
731
|
async startHandler() {
|
|
762
732
|
this.validateConfig();
|
|
@@ -794,7 +764,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
|
|
|
794
764
|
]) && valid2;
|
|
795
765
|
}, true) && valid;
|
|
796
766
|
}
|
|
797
|
-
if (!
|
|
767
|
+
if (!serializableField(value)) {
|
|
798
768
|
(_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}]`);
|
|
799
769
|
return false;
|
|
800
770
|
}
|
|
@@ -817,10 +787,10 @@ __publicField(_AbstractModule, "privateConstructorKey", Date.now().toString());
|
|
|
817
787
|
var AbstractModule = _AbstractModule;
|
|
818
788
|
|
|
819
789
|
// src/AbstractModuleInstance.ts
|
|
820
|
-
|
|
790
|
+
import { assertEx as assertEx3 } from "@xylabs/assert";
|
|
821
791
|
var _AbstractModuleInstance = class _AbstractModuleInstance extends AbstractModule {
|
|
822
792
|
constructor(privateConstructorKey, params, account) {
|
|
823
|
-
(
|
|
793
|
+
assertEx3(AbstractModule.privateConstructorKey === privateConstructorKey, "Use create function instead of constructor");
|
|
824
794
|
const mutatedParams = {
|
|
825
795
|
...params
|
|
826
796
|
};
|
|
@@ -854,8 +824,7 @@ var _AbstractModuleInstance = class _AbstractModuleInstance extends AbstractModu
|
|
|
854
824
|
};
|
|
855
825
|
__name(_AbstractModuleInstance, "AbstractModuleInstance");
|
|
856
826
|
var AbstractModuleInstance = _AbstractModuleInstance;
|
|
857
|
-
|
|
858
|
-
0 && (module.exports = {
|
|
827
|
+
export {
|
|
859
828
|
AbstractModule,
|
|
860
829
|
AbstractModuleInstance,
|
|
861
830
|
BaseEmitter,
|
|
@@ -863,5 +832,5 @@ var AbstractModuleInstance = _AbstractModuleInstance;
|
|
|
863
832
|
ModuleErrorBuilder,
|
|
864
833
|
SupportedQueryValidator,
|
|
865
834
|
isQuerySupportedByModule
|
|
866
|
-
}
|
|
835
|
+
};
|
|
867
836
|
//# sourceMappingURL=index.js.map
|