@xyo-network/module-abstract 2.67.0-rc.1 → 2.67.0-rc.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.
Files changed (34) hide show
  1. package/dist/cjs/AbstractModule.js +473 -36
  2. package/dist/cjs/AbstractModule.js.map +1 -1
  3. package/dist/cjs/AbstractModuleInstance.js +40 -0
  4. package/dist/cjs/AbstractModuleInstance.js.map +1 -0
  5. package/dist/cjs/Resolver/SimpleModuleResolver.js +1 -1
  6. package/dist/cjs/Resolver/SimpleModuleResolver.js.map +1 -1
  7. package/dist/cjs/index.js +1 -1
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/esm/AbstractModule.js +437 -22
  10. package/dist/esm/AbstractModule.js.map +1 -1
  11. package/dist/esm/AbstractModuleInstance.js +35 -0
  12. package/dist/esm/AbstractModuleInstance.js.map +1 -0
  13. package/dist/esm/Resolver/SimpleModuleResolver.js +1 -1
  14. package/dist/esm/Resolver/SimpleModuleResolver.js.map +1 -1
  15. package/dist/esm/index.js +1 -1
  16. package/dist/esm/index.js.map +1 -1
  17. package/dist/types/AbstractModule.d.ts +69 -11
  18. package/dist/types/AbstractModule.d.ts.map +1 -1
  19. package/dist/types/AbstractModuleInstance.d.ts +14 -0
  20. package/dist/types/AbstractModuleInstance.d.ts.map +1 -0
  21. package/dist/types/index.d.ts +1 -1
  22. package/dist/types/index.d.ts.map +1 -1
  23. package/package.json +18 -19
  24. package/src/AbstractModule.ts +577 -27
  25. package/src/AbstractModuleInstance.ts +59 -0
  26. package/src/Resolver/SimpleModuleResolver.ts +1 -1
  27. package/src/index.ts +1 -1
  28. package/dist/cjs/AbstractIndirectModule.js +0 -492
  29. package/dist/cjs/AbstractIndirectModule.js.map +0 -1
  30. package/dist/esm/AbstractIndirectModule.js +0 -446
  31. package/dist/esm/AbstractIndirectModule.js.map +0 -1
  32. package/dist/types/AbstractIndirectModule.d.ts +0 -76
  33. package/dist/types/AbstractIndirectModule.d.ts.map +0 -1
  34. package/src/AbstractIndirectModule.ts +0 -579
@@ -2,60 +2,497 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AbstractModule = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ /* eslint-disable max-lines */
5
6
  const assert_1 = require("@xylabs/assert");
6
- const AbstractIndirectModule_1 = require("./AbstractIndirectModule");
7
- class AbstractModule extends AbstractIndirectModule_1.AbstractIndirectModule {
8
- constructor(privateConstructorKey, params) {
7
+ const exists_1 = require("@xylabs/exists");
8
+ const account_1 = require("@xyo-network/account");
9
+ const address_payload_plugin_1 = require("@xyo-network/address-payload-plugin");
10
+ const archivist_model_1 = require("@xyo-network/archivist-model");
11
+ const boundwitness_builder_1 = require("@xyo-network/boundwitness-builder");
12
+ const config_payload_plugin_1 = require("@xyo-network/config-payload-plugin");
13
+ const error_1 = require("@xyo-network/error");
14
+ const manifest_model_1 = require("@xyo-network/manifest-model");
15
+ const module_model_1 = require("@xyo-network/module-model");
16
+ const payload_builder_1 = require("@xyo-network/payload-builder");
17
+ const promise_1 = require("@xyo-network/promise");
18
+ const query_payload_plugin_1 = require("@xyo-network/query-payload-plugin");
19
+ const shared_1 = require("@xyo-network/shared");
20
+ const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
21
+ const BaseEmitter_1 = require("./BaseEmitter");
22
+ const Error_1 = require("./Error");
23
+ const QueryValidator_1 = require("./QueryValidator");
24
+ const Resolver_1 = require("./Resolver");
25
+ class AbstractModule extends BaseEmitter_1.BaseEmitter {
26
+ constructor(privateConstructorKey, params, account) {
9
27
  (0, assert_1.assertEx)(AbstractModule.privateConstructorKey === privateConstructorKey, 'Use create function instead of constructor');
10
28
  // Clone params to prevent mutation of the incoming object
11
29
  const mutatedParams = Object.assign({}, params);
12
- super(privateConstructorKey, mutatedParams);
30
+ super(mutatedParams);
31
+ this.downResolver = new Resolver_1.CompositeModuleResolver();
32
+ this.upResolver = new Resolver_1.CompositeModuleResolver();
33
+ this._account = undefined;
34
+ this._baseModuleQueryAccountPaths = {
35
+ [module_model_1.ModuleAddressQuerySchema]: '1',
36
+ [module_model_1.ModuleDescribeQuerySchema]: '4',
37
+ [module_model_1.ModuleDiscoverQuerySchema]: '2',
38
+ [module_model_1.ModuleManifestQuerySchema]: '5',
39
+ [module_model_1.ModuleSubscribeQuerySchema]: '3',
40
+ };
41
+ this._queryAccounts = {
42
+ [module_model_1.ModuleAddressQuerySchema]: undefined,
43
+ [module_model_1.ModuleDescribeQuerySchema]: undefined,
44
+ [module_model_1.ModuleDiscoverQuerySchema]: undefined,
45
+ [module_model_1.ModuleManifestQuerySchema]: undefined,
46
+ [module_model_1.ModuleSubscribeQuerySchema]: undefined,
47
+ };
48
+ this._startPromise = undefined;
49
+ this._started = undefined;
50
+ this._busyCount = 0;
51
+ this.commitArchivist = () => this.getArchivist('commit');
52
+ this.readArchivist = () => this.getArchivist('read');
53
+ this.writeArchivist = () => this.getArchivist('write');
54
+ this._account = account;
55
+ this.supportedQueryValidator = new QueryValidator_1.SupportedQueryValidator(this).queryable;
56
+ this.moduleConfigQueryValidator = new QueryValidator_1.ModuleConfigQueryValidator(mutatedParams === null || mutatedParams === void 0 ? void 0 : mutatedParams.config).queryable;
13
57
  }
14
- describe() {
15
- const _super = Object.create(null, {
16
- describeHandler: { get: () => super.describeHandler }
58
+ static get configSchema() {
59
+ return this.configSchemas[0];
60
+ }
61
+ get account() {
62
+ return (0, assert_1.assertEx)(this._account, 'Missing account');
63
+ }
64
+ get address() {
65
+ return this.account.address;
66
+ }
67
+ get allowAnonymous() {
68
+ var _a;
69
+ return !!((_a = this.config.security) === null || _a === void 0 ? void 0 : _a.allowAnonymous);
70
+ }
71
+ get config() {
72
+ return this.params.config;
73
+ }
74
+ get ephemeralQueryAccountEnabled() {
75
+ return !!this.params.ephemeralQueryAccountEnabled;
76
+ }
77
+ get queries() {
78
+ return [module_model_1.ModuleDiscoverQuerySchema, module_model_1.ModuleAddressQuerySchema, module_model_1.ModuleSubscribeQuerySchema, module_model_1.ModuleDescribeQuerySchema, module_model_1.ModuleManifestQuerySchema];
79
+ }
80
+ get queryAccountPaths() {
81
+ return Object.assign(Object.assign({}, this._baseModuleQueryAccountPaths), this._queryAccountPaths);
82
+ }
83
+ get queryAccounts() {
84
+ return this._queryAccounts;
85
+ }
86
+ static create(params) {
87
+ var _a, _b, _c, _d, _e, _f;
88
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
89
+ if (!this.configSchemas || this.configSchemas.length === 0) {
90
+ throw Error(`Missing configSchema [${(_a = params === null || params === void 0 ? void 0 : params.config) === null || _a === void 0 ? void 0 : _a.schema}][${this.name}]`);
91
+ }
92
+ const { account, config, wallet, accountDerivationPath } = params !== null && params !== void 0 ? params : {};
93
+ (0, assert_1.assertEx)(!(!!account && !!wallet), `Specifying both {account} and {wallet} are not allowed [${config === null || config === void 0 ? void 0 : config.schema}] [${account === 'random' ? 'random' : account === null || account === void 0 ? void 0 : account.address}, ${wallet === null || wallet === void 0 ? void 0 : wallet.address}]`);
94
+ const schema = (_c = (_b = params === null || params === void 0 ? void 0 : params.config) === null || _b === void 0 ? void 0 : _b.schema) !== null && _c !== void 0 ? _c : this.configSchema;
95
+ const allowedSchemas = this.configSchemas;
96
+ (0, assert_1.assertEx)(allowedSchemas.filter((allowedSchema) => allowedSchema === schema).length > 0, `Bad Config Schema [Received ${schema}] [Expected ${JSON.stringify(allowedSchemas)}]`);
97
+ const mutatedConfig = Object.assign(Object.assign({}, params === null || params === void 0 ? void 0 : params.config), { schema });
98
+ (_d = params === null || params === void 0 ? void 0 : params.logger) === null || _d === void 0 ? void 0 : _d.debug(`config: ${JSON.stringify(mutatedConfig, null, 2)}`);
99
+ const mutatedParams = Object.assign(Object.assign({}, params), { config: mutatedConfig });
100
+ //determine account
101
+ const activeLogger = (_e = params === null || params === void 0 ? void 0 : params.logger) !== null && _e !== void 0 ? _e : AbstractModule.defaultLogger;
102
+ let generatedAccount = undefined;
103
+ if (wallet) {
104
+ generatedAccount = (0, assert_1.assertEx)(accountDerivationPath ? yield wallet.derivePath(accountDerivationPath) : wallet, 'Failed to derive account from path');
105
+ }
106
+ else if (account === 'random') {
107
+ generatedAccount = yield account_1.HDWallet.random();
108
+ }
109
+ else if (account) {
110
+ generatedAccount = account;
111
+ }
112
+ else {
113
+ //this should eventually be removed/thrown
114
+ console.warn(`AbstractModule.create: No account provided - Creating Random account [${config === null || config === void 0 ? void 0 : config.schema}]`);
115
+ generatedAccount = yield account_1.HDWallet.random();
116
+ }
117
+ const address = generatedAccount.address;
118
+ mutatedParams.logger = activeLogger ? new shared_1.IdLogger(activeLogger, () => `0x${address}`) : undefined;
119
+ const newModule = new this(AbstractModule.privateConstructorKey, mutatedParams, generatedAccount);
120
+ if (!AbstractModule.enableLazyLoad) {
121
+ yield ((_f = newModule.start) === null || _f === void 0 ? void 0 : _f.call(newModule));
122
+ }
123
+ return newModule;
124
+ });
125
+ }
126
+ static factory(params) {
127
+ return module_model_1.ModuleFactory.withParams(this, params);
128
+ }
129
+ busy(closure) {
130
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
131
+ if (AbstractModule.enableBusy) {
132
+ if (this._busyCount <= 0) {
133
+ this._busyCount = 0;
134
+ const args = { busy: true, module: this };
135
+ yield this.emit('moduleBusy', args);
136
+ }
137
+ this._busyCount++;
138
+ try {
139
+ return yield closure();
140
+ }
141
+ finally {
142
+ this._busyCount--;
143
+ if (this._busyCount <= 0) {
144
+ this._busyCount = 0;
145
+ const args = { busy: false, module: this };
146
+ yield this.emit('moduleBusy', args);
147
+ }
148
+ }
149
+ }
150
+ else {
151
+ return closure();
152
+ }
153
+ });
154
+ }
155
+ previousHash() {
156
+ return this.account.previousHash;
157
+ }
158
+ query(query, payloads, queryConfig) {
159
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
160
+ return yield this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
161
+ yield this.started('throw');
162
+ const result = yield this.queryHandler((0, assert_1.assertEx)(boundwitness_builder_1.QueryBoundWitnessWrapper.unwrap(query)), payloads, queryConfig);
163
+ const args = { module: this, payloads, query, result };
164
+ yield this.emit('moduleQueried', args);
165
+ return result;
166
+ }));
167
+ });
168
+ }
169
+ queryable(query, payloads, queryConfig) {
170
+ if (!this.started('warn'))
171
+ return false;
172
+ const configValidator = queryConfig
173
+ ? new QueryValidator_1.ModuleConfigQueryValidator(Object.assign({}, this.config, queryConfig)).queryable
174
+ : this.moduleConfigQueryValidator;
175
+ const validators = [this.supportedQueryValidator, configValidator];
176
+ return validators.every((validator) => validator(query, payloads));
177
+ }
178
+ resolve(nameOrAddressOrFilter, options) {
179
+ var _a, _b;
180
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
181
+ const direction = (_a = options === null || options === void 0 ? void 0 : options.direction) !== null && _a !== void 0 ? _a : 'all';
182
+ const up = direction === 'up' || direction === 'all';
183
+ const down = direction === 'down' || direction === 'all';
184
+ switch (typeof nameOrAddressOrFilter) {
185
+ case 'string': {
186
+ return ((_b = (down ? yield this.downResolver.resolve(nameOrAddressOrFilter) : undefined)) !== null && _b !== void 0 ? _b : (up ? yield this.upResolver.resolve(nameOrAddressOrFilter) : undefined));
187
+ }
188
+ default: {
189
+ const filter = nameOrAddressOrFilter;
190
+ return [
191
+ ...(down ? yield this.downResolver.resolve(filter) : []),
192
+ ...(up ? yield this.upResolver.resolve(filter) : []),
193
+ ].filter(module_model_1.duplicateModules);
194
+ }
195
+ }
196
+ });
197
+ }
198
+ start(_timeout) {
199
+ var _a;
200
+ //using promise as mutex
201
+ this._startPromise = (_a = this._startPromise) !== null && _a !== void 0 ? _a : this.startHandler();
202
+ return this._startPromise;
203
+ }
204
+ started(notStartedAction = 'log', tryStart = true) {
205
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
206
+ const started = yield this._started;
207
+ if (started === true) {
208
+ return true;
209
+ }
210
+ if (!started) {
211
+ //using promise as mutex
212
+ this._started = (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
213
+ var _a, _b, _c;
214
+ if (tryStart) {
215
+ try {
216
+ yield this.start();
217
+ return true;
218
+ }
219
+ catch (ex) {
220
+ (0, error_1.handleError)(ex, (error) => {
221
+ var _a;
222
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.warn(`Autostart of Module Failed: ${error.message})`);
223
+ this._started = undefined;
224
+ });
225
+ }
226
+ }
227
+ switch (notStartedAction) {
228
+ case 'throw':
229
+ throw Error(`Module not Started [${this.address}]`);
230
+ case 'warn':
231
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.warn('Module not started');
232
+ break;
233
+ case 'error':
234
+ (_b = this.logger) === null || _b === void 0 ? void 0 : _b.error('Module not started');
235
+ break;
236
+ case 'none':
237
+ break;
238
+ case 'log':
239
+ default: {
240
+ (_c = this.logger) === null || _c === void 0 ? void 0 : _c.log('Module not started');
241
+ break;
242
+ }
243
+ }
244
+ return false;
245
+ }))();
246
+ }
247
+ if (!this._started) {
248
+ throw 'Failed to create start promise';
249
+ }
250
+ return yield this._started;
17
251
  });
18
- return this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
19
- return yield _super.describeHandler.call(this);
20
- }));
21
252
  }
22
- discover() {
23
- const _super = Object.create(null, {
24
- discoverHandler: { get: () => super.discoverHandler }
253
+ stop(_timeout) {
254
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
255
+ return yield this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
256
+ const result = yield this.stopHandler();
257
+ this._started = undefined;
258
+ this._startPromise = undefined;
259
+ return result;
260
+ }));
261
+ });
262
+ }
263
+ bindHashes(hashes, schema, account) {
264
+ const promise = new promise_1.PromiseEx((resolve) => {
265
+ const result = this.bindHashesInternal(hashes, schema, account);
266
+ resolve === null || resolve === void 0 ? void 0 : resolve(result);
267
+ return result;
268
+ }, account);
269
+ return promise;
270
+ }
271
+ bindHashesInternal(hashes, schema, account) {
272
+ var _a;
273
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
274
+ const builder = new boundwitness_builder_1.BoundWitnessBuilder().hashes(hashes, schema).witness(this.account);
275
+ const result = (yield (account ? builder.witness(account) : builder).build())[0];
276
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug(`result: ${JSON.stringify(result, null, 2)}`);
277
+ return result;
278
+ });
279
+ }
280
+ bindQuery(query, payloads, account) {
281
+ const promise = new promise_1.PromiseEx((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
282
+ const result = yield this.bindQueryInternal(query, payloads, account);
283
+ resolve === null || resolve === void 0 ? void 0 : resolve(result);
284
+ return result;
285
+ }), account);
286
+ return promise;
287
+ }
288
+ bindQueryInternal(query, payloads, account) {
289
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
290
+ const builder = new boundwitness_builder_1.QueryBoundWitnessBuilder().payloads(payloads).witness(this.account).query(query);
291
+ const result = yield (account ? builder.witness(account) : builder).build();
292
+ return result;
293
+ });
294
+ }
295
+ bindQueryResult(query, payloads, additionalWitnesses = [], errors) {
296
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
297
+ const builder = new boundwitness_builder_1.BoundWitnessBuilder().payloads(payloads).errors(errors);
298
+ const queryWitnessAccount = this.queryAccounts[query.schema];
299
+ const witnesses = [this.account, queryWitnessAccount, ...additionalWitnesses].filter(exists_1.exists);
300
+ builder.witnesses(witnesses);
301
+ const result = [(yield builder.build())[0], payloads, errors !== null && errors !== void 0 ? errors : []];
302
+ return [result, witnesses];
303
+ });
304
+ }
305
+ describeHandler() {
306
+ var _a, _b;
307
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
308
+ const description = {
309
+ address: this.address,
310
+ queries: this.queries,
311
+ schema: module_model_1.ModuleDescriptionSchema,
312
+ };
313
+ if ((_a = this.config) === null || _a === void 0 ? void 0 : _a.name) {
314
+ description.name = this.config.name;
315
+ }
316
+ const discover = yield this.discoverHandler();
317
+ description.children = (0, compact_1.default)((_b = discover === null || discover === void 0 ? void 0 : discover.map((payload) => {
318
+ const address = payload.schema === address_payload_plugin_1.AddressSchema ? payload.address : undefined;
319
+ return address != this.address ? address : undefined;
320
+ })) !== null && _b !== void 0 ? _b : []);
321
+ return description;
25
322
  });
26
- return this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
27
- return yield _super.discoverHandler.call(this);
28
- }));
29
323
  }
30
- loadAccount() {
31
- const _super = Object.create(null, {
32
- loadAccount: { get: () => super.loadAccount }
324
+ discoverHandler() {
325
+ var _a;
326
+ const config = this.config;
327
+ const address = new payload_builder_1.PayloadBuilder({ schema: address_payload_plugin_1.AddressSchema }).fields({ address: this.address, name: (_a = this.config) === null || _a === void 0 ? void 0 : _a.name }).build();
328
+ const queries = this.queries.map((query) => {
329
+ return new payload_builder_1.PayloadBuilder({ schema: query_payload_plugin_1.QuerySchema }).fields({ query }).build();
33
330
  });
331
+ const configSchema = {
332
+ config: config.schema,
333
+ schema: config_payload_plugin_1.ConfigSchema,
334
+ };
335
+ return (0, compact_1.default)([config, configSchema, address, ...queries]);
336
+ }
337
+ initializeQueryAccounts() {
338
+ var _a, _b;
34
339
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
35
- const account = yield _super.loadAccount.call(this);
36
- this.downResolver.add(this);
37
- return account;
340
+ // Ensure distinct/unique wallet paths
341
+ const paths = Object.values(this.queryAccountPaths).filter(exists_1.exists);
342
+ const distinctPaths = new Set(paths);
343
+ (0, assert_1.assertEx)(distinctPaths.size === paths.length, `${((_a = this.config) === null || _a === void 0 ? void 0 : _a.name) ? this.config.name + ': ' : ''}Duplicate query account paths`);
344
+ // Create an account for query this module supports
345
+ const wallet = this.account;
346
+ if (wallet === null || wallet === void 0 ? void 0 : wallet.derivePath) {
347
+ for (const key in this.queryAccountPaths) {
348
+ if (Object.prototype.hasOwnProperty.call(this.queryAccountPaths, key)) {
349
+ const query = key;
350
+ const queryAccountPath = this.queryAccountPaths[query];
351
+ if (queryAccountPath) {
352
+ this._queryAccounts[query] = yield ((_b = wallet.derivePath) === null || _b === void 0 ? void 0 : _b.call(wallet, queryAccountPath));
353
+ }
354
+ }
355
+ }
356
+ }
38
357
  });
39
358
  }
40
- manifest() {
41
- const _super = Object.create(null, {
42
- manifestHandler: { get: () => super.manifestHandler }
359
+ manifestHandler() {
360
+ var _a;
361
+ const name = (_a = this.config.name) !== null && _a !== void 0 ? _a : 'Anonymous';
362
+ return { config: Object.assign({ name }, this.config), schema: manifest_model_1.ModuleManifestPayloadSchema };
363
+ }
364
+ moduleAddressHandler() {
365
+ // Return array of all addresses and their previous hash
366
+ const queryAccounts = Object.entries(this.queryAccounts)
367
+ .filter((value) => {
368
+ return (0, exists_1.exists)(value[1]);
369
+ })
370
+ .map(([name, account]) => {
371
+ const address = account.address;
372
+ const previousHash = account.previousHash;
373
+ return [
374
+ { address, name, schema: address_payload_plugin_1.AddressSchema },
375
+ { address, previousHash, schema: module_model_1.AddressPreviousHashSchema },
376
+ ];
43
377
  });
44
- return this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
45
- return yield _super.manifestHandler.call(this);
46
- }));
378
+ const address = this.address;
379
+ const name = this.config.name;
380
+ const previousHash = this.address;
381
+ const moduleAccount = name ? { address, name, schema: address_payload_plugin_1.AddressSchema } : { address, schema: address_payload_plugin_1.AddressSchema };
382
+ const moduleAccountPreviousHash = previousHash
383
+ ? { address, previousHash, schema: module_model_1.AddressPreviousHashSchema }
384
+ : { address, schema: module_model_1.AddressPreviousHashSchema };
385
+ return [moduleAccount, moduleAccountPreviousHash, ...queryAccounts].flat();
47
386
  }
48
- moduleAddress() {
49
- const _super = Object.create(null, {
50
- moduleAddressHandler: { get: () => super.moduleAddressHandler }
387
+ queryHandler(query, payloads, queryConfig) {
388
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
389
+ yield this.started('throw');
390
+ const wrapper = boundwitness_builder_1.QueryBoundWitnessWrapper.parseQuery(query, payloads);
391
+ if (!this.allowAnonymous) {
392
+ if (query.addresses.length === 0) {
393
+ console.warn(`Anonymous Queries not allowed, but running anyway [${this.config.name}], [${this.address}]`);
394
+ }
395
+ }
396
+ const queryPayload = yield wrapper.getQuery();
397
+ (0, assert_1.assertEx)(this.queryable(query, payloads, queryConfig));
398
+ const resultPayloads = [];
399
+ const errorPayloads = [];
400
+ const queryAccount = this.ephemeralQueryAccountEnabled ? account_1.Account.randomSync() : undefined;
401
+ try {
402
+ switch (queryPayload.schema) {
403
+ case module_model_1.ModuleManifestQuerySchema: {
404
+ resultPayloads.push(yield this.manifestHandler());
405
+ break;
406
+ }
407
+ case module_model_1.ModuleDiscoverQuerySchema: {
408
+ resultPayloads.push(...(yield this.discoverHandler()));
409
+ break;
410
+ }
411
+ case module_model_1.ModuleDescribeQuerySchema: {
412
+ resultPayloads.push(yield this.describeHandler());
413
+ break;
414
+ }
415
+ case module_model_1.ModuleAddressQuerySchema: {
416
+ resultPayloads.push(...(yield this.moduleAddressHandler()));
417
+ break;
418
+ }
419
+ case module_model_1.ModuleSubscribeQuerySchema: {
420
+ this.subscribeHandler(queryAccount);
421
+ break;
422
+ }
423
+ default:
424
+ console.error(`Unsupported Query [${queryPayload.schema}]`);
425
+ }
426
+ }
427
+ catch (ex) {
428
+ yield (0, error_1.handleErrorAsync)(ex, (error) => tslib_1.__awaiter(this, void 0, void 0, function* () {
429
+ var _a;
430
+ errorPayloads.push(new Error_1.ModuleErrorBuilder()
431
+ .sources([yield wrapper.hashAsync()])
432
+ .name((_a = this.config.name) !== null && _a !== void 0 ? _a : '<Unknown>')
433
+ .query(query.schema)
434
+ .message(error.message)
435
+ .build());
436
+ }));
437
+ }
438
+ return (yield this.bindQueryResult(queryPayload, resultPayloads, queryAccount ? [queryAccount] : [], errorPayloads))[0];
51
439
  });
52
- return this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
53
- return yield _super.moduleAddressHandler.call(this);
54
- }));
55
440
  }
56
- subscribe(_queryAccount) {
57
- return super.subscribeHandler();
441
+ startHandler() {
442
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
443
+ this.validateConfig();
444
+ yield this.initializeQueryAccounts();
445
+ this._started = true;
446
+ return true;
447
+ });
448
+ }
449
+ stopHandler(_timeout) {
450
+ this._started = undefined;
451
+ return true;
452
+ }
453
+ subscribeHandler(_queryAccount) {
454
+ return;
455
+ }
456
+ validateConfig(config, parents = []) {
457
+ var _a;
458
+ return Object.entries((_a = config !== null && config !== void 0 ? config : this.config) !== null && _a !== void 0 ? _a : {}).reduce((valid, [key, value]) => {
459
+ var _a, _b;
460
+ switch (typeof value) {
461
+ case 'function':
462
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.warn(`Fields of type function not allowed in config [${parents === null || parents === void 0 ? void 0 : parents.join('.')}.${key}]`);
463
+ return false;
464
+ case 'object': {
465
+ if (Array.isArray(value)) {
466
+ return (value.reduce((valid, value) => {
467
+ return this.validateConfig(value, [...parents, key]) && valid;
468
+ }, true) && valid);
469
+ }
470
+ if (!(0, module_model_1.serializableField)(value)) {
471
+ (_b = this.logger) === null || _b === void 0 ? void 0 : _b.warn(`Fields that are not serializable to JSON are not allowed in config [${parents === null || parents === void 0 ? void 0 : parents.join('.')}.${key}]`);
472
+ return false;
473
+ }
474
+ return value ? this.validateConfig(value, [...parents, key]) && valid : true;
475
+ }
476
+ default:
477
+ return valid;
478
+ }
479
+ }, true);
480
+ }
481
+ getArchivist(kind) {
482
+ var _a, _b;
483
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
484
+ if (!this.config.archivist)
485
+ return undefined;
486
+ const filter = typeof this.config.archivist === 'string' || this.config.archivist instanceof String
487
+ ? this.config.archivist
488
+ : (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.archivist) === null || _b === void 0 ? void 0 : _b[kind];
489
+ const resolved = yield this.upResolver.resolve(filter);
490
+ return (0, archivist_model_1.asArchivistInstance)(resolved);
491
+ });
58
492
  }
59
493
  }
60
494
  exports.AbstractModule = AbstractModule;
495
+ AbstractModule.enableBusy = false;
496
+ AbstractModule.enableLazyLoad = false;
497
+ AbstractModule.privateConstructorKey = Date.now().toString();
61
498
  //# sourceMappingURL=AbstractModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractModule.js","sourceRoot":"","sources":["../../src/AbstractModule.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AAMzC,qEAAiE;AAEjE,MAAsB,cACpB,SAAQ,+CAA2C;IAGnD,YAAY,qBAA6B,EAAE,MAAe;QACxD,IAAA,iBAAQ,EAAC,cAAc,CAAC,qBAAqB,KAAK,qBAAqB,EAAE,4CAA4C,CAAC,CAAA;QACtH,0DAA0D;QAC1D,MAAM,aAAa,GAAG,kBAAK,MAAM,CAAa,CAAA;QAC9C,KAAK,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAA;IAC7C,CAAC;IAED,QAAQ;;;;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAS,EAAE;YAC1B,OAAO,MAAM,OAAM,eAAe,WAAE,CAAA;QACtC,CAAC,CAAA,CAAC,CAAA;KACH;IAED,QAAQ;;;;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAS,EAAE;YAC1B,OAAO,MAAM,OAAM,eAAe,WAAE,CAAA;QACtC,CAAC,CAAA,CAAC,CAAA;KACH;IAEc,WAAW;;;;;YACxB,MAAM,OAAO,GAAG,MAAM,OAAM,WAAW,WAAE,CAAA;YACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,OAAO,CAAA;QAChB,CAAC;KAAA;IAED,QAAQ;;;;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAS,EAAE;YAC1B,OAAO,MAAM,OAAM,eAAe,WAAE,CAAA;QACtC,CAAC,CAAA,CAAC,CAAA;KACH;IAED,aAAa;;;;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAS,EAAE;YAC1B,OAAO,MAAM,OAAM,oBAAoB,WAAE,CAAA;QAC3C,CAAC,CAAA,CAAC,CAAA;KACH;IAED,SAAS,CAAC,aAA+B;QACvC,OAAO,KAAK,CAAC,gBAAgB,EAAE,CAAA;IACjC,CAAC;CACF;AA5CD,wCA4CC"}
1
+ {"version":3,"file":"AbstractModule.js","sourceRoot":"","sources":["../../src/AbstractModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractModuleInstance = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const assert_1 = require("@xylabs/assert");
6
+ const AbstractModule_1 = require("./AbstractModule");
7
+ class AbstractModuleInstance extends AbstractModule_1.AbstractModule {
8
+ constructor(privateConstructorKey, params, account) {
9
+ (0, assert_1.assertEx)(AbstractModule_1.AbstractModule.privateConstructorKey === privateConstructorKey, 'Use create function instead of constructor');
10
+ // Clone params to prevent mutation of the incoming object
11
+ const mutatedParams = Object.assign({}, params);
12
+ super(privateConstructorKey, mutatedParams, account);
13
+ this.downResolver.add(this);
14
+ }
15
+ describe() {
16
+ return this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
17
+ return yield this.describeHandler();
18
+ }));
19
+ }
20
+ discover() {
21
+ return this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ return yield this.discoverHandler();
23
+ }));
24
+ }
25
+ manifest() {
26
+ return this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
27
+ return yield this.manifestHandler();
28
+ }));
29
+ }
30
+ moduleAddress() {
31
+ return this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
32
+ return yield this.moduleAddressHandler();
33
+ }));
34
+ }
35
+ subscribe(_queryAccount) {
36
+ return this.subscribeHandler();
37
+ }
38
+ }
39
+ exports.AbstractModuleInstance = AbstractModuleInstance;
40
+ //# sourceMappingURL=AbstractModuleInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractModuleInstance.js","sourceRoot":"","sources":["../../src/AbstractModuleInstance.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AAczC,qDAAiD;AAEjD,MAAsB,sBAIpB,SAAQ,+BAAmC;IAG3C,YAAY,qBAA6B,EAAE,MAAe,EAAE,OAAwB;QAClF,IAAA,iBAAQ,EAAC,+BAAc,CAAC,qBAAqB,KAAK,qBAAqB,EAAE,4CAA4C,CAAC,CAAA;QACtH,0DAA0D;QAC1D,MAAM,aAAa,GAAG,kBAAK,MAAM,CAAa,CAAA;QAC9C,KAAK,CAAC,qBAAqB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAS,EAAE;YAC1B,OAAO,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QACrC,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAS,EAAE;YAC1B,OAAO,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QACrC,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAS,EAAE;YAC1B,OAAO,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QACrC,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAS,EAAE;YAC1B,OAAO,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC1C,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,CAAC,aAA+B;QACvC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;IAChC,CAAC;CACF;AA1CD,wDA0CC"}
@@ -85,7 +85,7 @@ class SimpleModuleResolver {
85
85
  }
86
86
  resolveByName(modules, name) {
87
87
  if (name) {
88
- return (0, compact_1.default)(name.map((name) => modules.filter((module) => module.config.name === name)).flat());
88
+ return (0, compact_1.default)(name.map((name) => modules.filter((module) => { var _a; return ((_a = module.config) === null || _a === void 0 ? void 0 : _a.name) === name; })).flat());
89
89
  }
90
90
  return modules;
91
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleModuleResolver.js","sourceRoot":"","sources":["../../../src/Resolver/SimpleModuleResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SimpleModuleResolver.js","sourceRoot":"","sources":["../../../src/Resolver/SimpleModuleResolver.ts"],"names":[],"mappings":"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"}