@xyo-network/node-abstract 2.102.6 → 2.103.0
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/AbstractNode.d.cts +1 -2
- package/dist/browser/AbstractNode.d.cts.map +1 -1
- package/dist/browser/AbstractNode.d.mts +1 -2
- package/dist/browser/AbstractNode.d.mts.map +1 -1
- package/dist/browser/AbstractNode.d.ts +1 -2
- package/dist/browser/AbstractNode.d.ts.map +1 -1
- package/dist/browser/index.cjs +6 -6
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/neutral/AbstractNode.d.cts +1 -2
- package/dist/neutral/AbstractNode.d.cts.map +1 -1
- package/dist/neutral/AbstractNode.d.mts +1 -2
- package/dist/neutral/AbstractNode.d.mts.map +1 -1
- package/dist/neutral/AbstractNode.d.ts +1 -2
- package/dist/neutral/AbstractNode.d.ts.map +1 -1
- package/dist/neutral/index.cjs +6 -6
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +1 -1
- package/dist/neutral/index.js.map +1 -1
- package/dist/node/AbstractNode.d.cts +1 -2
- package/dist/node/AbstractNode.d.cts.map +1 -1
- package/dist/node/AbstractNode.d.mts +1 -2
- package/dist/node/AbstractNode.d.mts.map +1 -1
- package/dist/node/AbstractNode.d.ts +1 -2
- package/dist/node/AbstractNode.d.ts.map +1 -1
- package/dist/node/index.cjs +6 -6
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +10 -11
- package/src/AbstractNode.ts +10 -2
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
3
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
4
|
-
import { AddressPayload } from '@xyo-network/address-payload-plugin';
|
|
5
4
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
6
5
|
import { ModuleManifestPayload } from '@xyo-network/manifest-model';
|
|
7
6
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
8
|
-
import { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
7
|
+
import { AddressPayload, Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
9
8
|
import { AttachableNodeInstance, ChildCertification, ChildCertificationFields, NodeInstance, NodeModule, NodeModuleEventData, NodeParams, NodeQueries } from '@xyo-network/node-model';
|
|
10
9
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
11
10
|
export declare abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements AttachableNodeInstance<TParams, TEventData>, Module<TParams, TEventData>, NodeInstance<TParams, TEventData>, ModuleInstance<TParams, TEventData>, NodeModule<TParams, TEventData> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
3
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
4
|
-
import { AddressPayload } from '@xyo-network/address-payload-plugin';
|
|
5
4
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
6
5
|
import { ModuleManifestPayload } from '@xyo-network/manifest-model';
|
|
7
6
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
8
|
-
import { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
7
|
+
import { AddressPayload, Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
9
8
|
import { AttachableNodeInstance, ChildCertification, ChildCertificationFields, NodeInstance, NodeModule, NodeModuleEventData, NodeParams, NodeQueries } from '@xyo-network/node-model';
|
|
10
9
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
11
10
|
export declare abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements AttachableNodeInstance<TParams, TEventData>, Module<TParams, TEventData>, NodeInstance<TParams, TEventData>, ModuleInstance<TParams, TEventData>, NodeModule<TParams, TEventData> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
3
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
4
|
-
import { AddressPayload } from '@xyo-network/address-payload-plugin';
|
|
5
4
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
6
5
|
import { ModuleManifestPayload } from '@xyo-network/manifest-model';
|
|
7
6
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
8
|
-
import { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
7
|
+
import { AddressPayload, Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
9
8
|
import { AttachableNodeInstance, ChildCertification, ChildCertificationFields, NodeInstance, NodeModule, NodeModuleEventData, NodeParams, NodeQueries } from '@xyo-network/node-model';
|
|
10
9
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
11
10
|
export declare abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements AttachableNodeInstance<TParams, TEventData>, Module<TParams, TEventData>, NodeInstance<TParams, TEventData>, ModuleInstance<TParams, TEventData>, NodeModule<TParams, TEventData> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -28,10 +28,10 @@ module.exports = __toCommonJS(src_exports);
|
|
|
28
28
|
// src/AbstractNode.ts
|
|
29
29
|
var import_assert = require("@xylabs/assert");
|
|
30
30
|
var import_object = require("@xylabs/object");
|
|
31
|
-
var import_address_payload_plugin = require("@xyo-network/address-payload-plugin");
|
|
32
31
|
var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
|
|
33
32
|
var import_manifest_model = require("@xyo-network/manifest-model");
|
|
34
33
|
var import_module_abstract = require("@xyo-network/module-abstract");
|
|
34
|
+
var import_module_model = require("@xyo-network/module-model");
|
|
35
35
|
var import_node_model = require("@xyo-network/node-model");
|
|
36
36
|
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
37
37
|
var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractModuleInstance {
|
|
@@ -154,7 +154,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
|
|
|
154
154
|
async generateConfigAndAddress(maxDepth = 10) {
|
|
155
155
|
const childMods = await this.attachedPublicModules(maxDepth);
|
|
156
156
|
const childModAddresses = await Promise.all(childMods.map((mod) => new import_payload_builder.PayloadBuilder({
|
|
157
|
-
schema:
|
|
157
|
+
schema: import_module_model.AddressSchema
|
|
158
158
|
}).fields({
|
|
159
159
|
address: mod.address
|
|
160
160
|
}).build()));
|
|
@@ -197,7 +197,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
|
|
|
197
197
|
const address = await this.attachHandler(queryPayload.id, queryPayload.external);
|
|
198
198
|
if (address) {
|
|
199
199
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
200
|
-
schema:
|
|
200
|
+
schema: import_module_model.AddressSchema
|
|
201
201
|
}).fields({
|
|
202
202
|
address
|
|
203
203
|
}).build();
|
|
@@ -219,7 +219,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
|
|
|
219
219
|
const address = await this.detachHandler(queryPayload.id);
|
|
220
220
|
if (address) {
|
|
221
221
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
222
|
-
schema:
|
|
222
|
+
schema: import_module_model.AddressSchema
|
|
223
223
|
}).fields({
|
|
224
224
|
address
|
|
225
225
|
}).build();
|
|
@@ -231,7 +231,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
|
|
|
231
231
|
const addresses = await this.attachedHandler();
|
|
232
232
|
for (const address of addresses) {
|
|
233
233
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
234
|
-
schema:
|
|
234
|
+
schema: import_module_model.AddressSchema
|
|
235
235
|
}).fields({
|
|
236
236
|
address
|
|
237
237
|
}).build();
|
|
@@ -243,7 +243,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
|
|
|
243
243
|
const addresses = await this.registeredHandler();
|
|
244
244
|
for (const address of addresses) {
|
|
245
245
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
246
|
-
schema:
|
|
246
|
+
schema: import_module_model.AddressSchema
|
|
247
247
|
}).fields({
|
|
248
248
|
address
|
|
249
249
|
}).build();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n AddressPayload,\n AddressSchema,\n Module,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses"]}
|
package/dist/browser/index.js
CHANGED
|
@@ -4,10 +4,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
4
4
|
// src/AbstractNode.ts
|
|
5
5
|
import { assertEx } from "@xylabs/assert";
|
|
6
6
|
import { globallyUnique } from "@xylabs/object";
|
|
7
|
-
import { AddressSchema } from "@xyo-network/address-payload-plugin";
|
|
8
7
|
import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
9
8
|
import { NodeManifestPayloadSchema } from "@xyo-network/manifest-model";
|
|
10
9
|
import { AbstractModuleInstance } from "@xyo-network/module-abstract";
|
|
10
|
+
import { AddressSchema } from "@xyo-network/module-model";
|
|
11
11
|
import { ChildCertificationSchema, NodeAttachedQuerySchema, NodeAttachQuerySchema, NodeCertifyQuerySchema, NodeConfigSchema, NodeDetachQuerySchema, NodeRegisteredQuerySchema } from "@xyo-network/node-model";
|
|
12
12
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
13
13
|
var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","globallyUnique","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","ChildCertificationSchema","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n AddressPayload,\n AddressSchema,\n Module,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","globallyUnique","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","AddressSchema","ChildCertificationSchema","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses"]}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
3
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
4
|
-
import { AddressPayload } from '@xyo-network/address-payload-plugin';
|
|
5
4
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
6
5
|
import { ModuleManifestPayload } from '@xyo-network/manifest-model';
|
|
7
6
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
8
|
-
import { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
7
|
+
import { AddressPayload, Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
9
8
|
import { AttachableNodeInstance, ChildCertification, ChildCertificationFields, NodeInstance, NodeModule, NodeModuleEventData, NodeParams, NodeQueries } from '@xyo-network/node-model';
|
|
10
9
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
11
10
|
export declare abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements AttachableNodeInstance<TParams, TEventData>, Module<TParams, TEventData>, NodeInstance<TParams, TEventData>, ModuleInstance<TParams, TEventData>, NodeModule<TParams, TEventData> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
3
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
4
|
-
import { AddressPayload } from '@xyo-network/address-payload-plugin';
|
|
5
4
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
6
5
|
import { ModuleManifestPayload } from '@xyo-network/manifest-model';
|
|
7
6
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
8
|
-
import { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
7
|
+
import { AddressPayload, Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
9
8
|
import { AttachableNodeInstance, ChildCertification, ChildCertificationFields, NodeInstance, NodeModule, NodeModuleEventData, NodeParams, NodeQueries } from '@xyo-network/node-model';
|
|
10
9
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
11
10
|
export declare abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements AttachableNodeInstance<TParams, TEventData>, Module<TParams, TEventData>, NodeInstance<TParams, TEventData>, ModuleInstance<TParams, TEventData>, NodeModule<TParams, TEventData> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EACL,cAAc,EAEd,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EAWxB,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAGZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAE5D,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YACE,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,EAC3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,EAC3B,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,EACjC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,EACnC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC;IAEjC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA6C;IAC7F,gBAAyB,mBAAmB,EAAE,MAAM,CAAmB;IACvE,gBAAyB,UAAU,SAAsD;IAEzF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAS/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAQjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAK9E,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAM5H,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAK9B,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrC,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAMpF,OAAO,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC;IAK5E,YAAY,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAK7G,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAK1D,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAM/F,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIxF,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAI5C,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIpD,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAKhC,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;cAM5E,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAU3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAwB/F,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;IAqDpC,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAEjG,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,wBAAwB,GAAG,SAAS,CAAC;IAE/F,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAE7E,QAAQ,CAAC,iBAAiB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CACpD"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
3
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
4
|
-
import { AddressPayload } from '@xyo-network/address-payload-plugin';
|
|
5
4
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
6
5
|
import { ModuleManifestPayload } from '@xyo-network/manifest-model';
|
|
7
6
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
8
|
-
import { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
7
|
+
import { AddressPayload, Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
9
8
|
import { AttachableNodeInstance, ChildCertification, ChildCertificationFields, NodeInstance, NodeModule, NodeModuleEventData, NodeParams, NodeQueries } from '@xyo-network/node-model';
|
|
10
9
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
11
10
|
export declare abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements AttachableNodeInstance<TParams, TEventData>, Module<TParams, TEventData>, NodeInstance<TParams, TEventData>, ModuleInstance<TParams, TEventData>, NodeModule<TParams, TEventData> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/neutral/index.cjs
CHANGED
|
@@ -28,10 +28,10 @@ module.exports = __toCommonJS(src_exports);
|
|
|
28
28
|
// src/AbstractNode.ts
|
|
29
29
|
var import_assert = require("@xylabs/assert");
|
|
30
30
|
var import_object = require("@xylabs/object");
|
|
31
|
-
var import_address_payload_plugin = require("@xyo-network/address-payload-plugin");
|
|
32
31
|
var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
|
|
33
32
|
var import_manifest_model = require("@xyo-network/manifest-model");
|
|
34
33
|
var import_module_abstract = require("@xyo-network/module-abstract");
|
|
34
|
+
var import_module_model = require("@xyo-network/module-model");
|
|
35
35
|
var import_node_model = require("@xyo-network/node-model");
|
|
36
36
|
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
37
37
|
var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractModuleInstance {
|
|
@@ -154,7 +154,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
|
|
|
154
154
|
async generateConfigAndAddress(maxDepth = 10) {
|
|
155
155
|
const childMods = await this.attachedPublicModules(maxDepth);
|
|
156
156
|
const childModAddresses = await Promise.all(childMods.map((mod) => new import_payload_builder.PayloadBuilder({
|
|
157
|
-
schema:
|
|
157
|
+
schema: import_module_model.AddressSchema
|
|
158
158
|
}).fields({
|
|
159
159
|
address: mod.address
|
|
160
160
|
}).build()));
|
|
@@ -197,7 +197,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
|
|
|
197
197
|
const address = await this.attachHandler(queryPayload.id, queryPayload.external);
|
|
198
198
|
if (address) {
|
|
199
199
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
200
|
-
schema:
|
|
200
|
+
schema: import_module_model.AddressSchema
|
|
201
201
|
}).fields({
|
|
202
202
|
address
|
|
203
203
|
}).build();
|
|
@@ -219,7 +219,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
|
|
|
219
219
|
const address = await this.detachHandler(queryPayload.id);
|
|
220
220
|
if (address) {
|
|
221
221
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
222
|
-
schema:
|
|
222
|
+
schema: import_module_model.AddressSchema
|
|
223
223
|
}).fields({
|
|
224
224
|
address
|
|
225
225
|
}).build();
|
|
@@ -231,7 +231,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
|
|
|
231
231
|
const addresses = await this.attachedHandler();
|
|
232
232
|
for (const address of addresses) {
|
|
233
233
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
234
|
-
schema:
|
|
234
|
+
schema: import_module_model.AddressSchema
|
|
235
235
|
}).fields({
|
|
236
236
|
address
|
|
237
237
|
}).build();
|
|
@@ -243,7 +243,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
|
|
|
243
243
|
const addresses = await this.registeredHandler();
|
|
244
244
|
for (const address of addresses) {
|
|
245
245
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
246
|
-
schema:
|
|
246
|
+
schema: import_module_model.AddressSchema
|
|
247
247
|
}).fields({
|
|
248
248
|
address
|
|
249
249
|
}).build();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n AddressPayload,\n AddressSchema,\n Module,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses"]}
|
package/dist/neutral/index.js
CHANGED
|
@@ -4,10 +4,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
4
4
|
// src/AbstractNode.ts
|
|
5
5
|
import { assertEx } from "@xylabs/assert";
|
|
6
6
|
import { globallyUnique } from "@xylabs/object";
|
|
7
|
-
import { AddressSchema } from "@xyo-network/address-payload-plugin";
|
|
8
7
|
import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
9
8
|
import { NodeManifestPayloadSchema } from "@xyo-network/manifest-model";
|
|
10
9
|
import { AbstractModuleInstance } from "@xyo-network/module-abstract";
|
|
10
|
+
import { AddressSchema } from "@xyo-network/module-model";
|
|
11
11
|
import { ChildCertificationSchema, NodeAttachedQuerySchema, NodeAttachQuerySchema, NodeCertifyQuerySchema, NodeConfigSchema, NodeDetachQuerySchema, NodeRegisteredQuerySchema } from "@xyo-network/node-model";
|
|
12
12
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
13
13
|
var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":";;;;AAAA,SAASA,gBAAgB;AAEzB,SAASC,sBAAsB;AAG/B,SAAyBC,qBAAqB;AAE9C,SAASC,gCAAgC;AACzC,SAAqDC,iCAAiC;AACtF,SAASC,8BAA8B;AAEvC,SAIEC,0BAEAC,yBAEAC,uBAEAC,wBACAC,kBAEAC,uBAOAC,iCACK;AACP,SAASC,sBAAsB;AAGxB,IAAeC,eAAf,MAAeA,sBACZC,uBAAAA;EArCV,OAqCUA;;;EAQR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EACvD,OAAyBE,aAAaC,eAAe,gBAAgBN,eAAc,KAAA;EAElEO,SAAS;EAE1B,IAAaC,UAAoB;AAC/B,WAAO;MACLC;MACAC;MACAC;MACAC;MACAC;SACG,MAAML;;EAEb;EAEA,IAAuBM,qBAA4D;AACjF,WAAO;MACL,CAACL,qBAAAA,GAAwB;MACzB,CAACG,uBAAAA,GAA0B;MAC3B,CAACF,sBAAAA,GAAyB;MAC1B,CAACC,qBAAAA,GAAwB;MACzB,CAACE,yBAAAA,GAA4B;IAC/B;EACF;EAEA,OAAON,OAAOQ,QAAiB;AAC7B,WAAQA,OAAwBR;EAClC;EAEA,MAAMS,OAAOC,IAAsBC,UAAkD;AACnF,SAAKC,YAAY,QAAA;AACjB,WAAO,MAAM,KAAKC,cAAcH,IAAIC,QAAAA;EACtC;EAEA,MAAMG,YAAYJ,IAAsBC,UAAoBI,SAAuE;AACjI,SAAKH,YAAY,aAAA;AACjB,UAAMI,eAAgC;MAAEL;MAAUD;MAAIO,QAAQf;IAAsB;AACpF,WAAO,MAAM,KAAKgB,aAAaF,cAAc,CAAA,GAAID,OAAAA;EACnD;EAEA,MAAMI,WAA+B;AACnC,SAAKP,YAAY,UAAA;AACjB,WAAO,MAAM,KAAKQ,gBAAe;EACnC;EAEA,MAAMA,kBAAsC;AAC1C,WAAO;UACD,MAAM,KAAKC,sBAAqB,GAAIC,IAAI,CAACd,WAAWA,OAAOe,OAAO;UAClE,MAAM,KAAKC,uBAAsB,GAAIF,IAAI,CAACd,WAAWA,OAAOe,OAAO;;EAE3E;EAEA,MAAME,cAAcV,SAAuE;AACzF,SAAKH,YAAY,eAAA;AACjB,UAAMI,eAAkC;MAAEC,QAAQZ;IAAwB;AAC1E,WAAO,MAAM,KAAKa,aAAaF,cAAc,CAAA,GAAID,OAAAA;EACnD;EAEA,MAAMW,QAAQhB,IAAqE;AACjF,SAAKE,YAAY,SAAA;AACjB,WAAO,MAAM,KAAKe,eAAejB,EAAAA;EACnC;EAEA,MAAMkB,aAAalB,IAAsBK,SAA2E;AAClH,UAAMC,eAAiC;MAAEN;MAAIO,QAAQd;IAAuB;AAC5E,WAAO,MAAM,KAAKe,aAAaF,cAAc,CAAA,GAAID,OAAAA;EACnD;EAEA,MAAMc,OAAOnB,IAAoD;AAC/D,SAAKE,YAAY,QAAA;AACjB,WAAO,MAAM,KAAKkB,cAAcpB,EAAAA;EAClC;EAEA,MAAMqB,YAAYrB,IAAsBK,SAAuE;AAC7G,SAAKH,YAAY,aAAA;AACjB,UAAMI,eAAgC;MAAEN;MAAIO,QAAQb;IAAsB;AAC1E,WAAO,MAAM,KAAKc,aAAaF,cAAc,CAAA,GAAID,OAAAA;EACnD;EAEA,MAAeiB,SAASC,WAAW,IAAIC,kBAA6B,CAAA,GAAoC;AACtG,WAAO,MAAM,KAAKC,gBAAgBF,UAAUC,eAAAA;EAC9C;EAEA,MAAeE,kBAA6C;AAC1D,WAAO,MAAM,KAAKZ,uBAAsB;EAC1C;EAEA,MAAea,iBAA4C;AACzD,WAAO,MAAM,KAAKhB,sBAAqB;EACzC;EAEA,MAAMiB,aAAiC;AACrC,SAAK1B,YAAY,YAAA;AACjB,WAAO,MAAM,KAAK2B,kBAAiB;EACrC;EAEA,MAAMC,gBAAgBzB,SAAuE;AAC3F,SAAKH,YAAY,iBAAA;AACjB,UAAMI,eAAoC;MAAEC,QAAQX;IAA0B;AAC9E,WAAO,MAAM,KAAKY,aAAaF,cAAc,CAAA,GAAID,OAAAA;EACnD;EAEA,MAAgBS,uBAAuBS,WAAW,GAA8B;AAC9E,YAAQ,OAAO,KAAKQ,eAAe,KAAK;MAAER;IAAS,CAAA,KAAM,CAAA,IAAKS,OAAO,CAAClC,WAAWA,OAAOe,YAAY,KAAKA,OAAO;EAClH;EAEA,MAAgBF,sBAAsBY,WAAW,GAA8B;AAC7E,YAAQ,OAAO,KAAKU,aAAaC,QAAQ,KAAK;MAAEC,WAAW;MAAQZ;IAAS,CAAA,KAAM,CAAA,IAAKS,OAAO,CAAClC,WAAWA,OAAOe,YAAY,KAAKA,OAAO;EAC3I;EAEA,MAAyBuB,yBAAyBb,WAAW,IAAwB;AACnF,UAAMc,YAAY,MAAM,KAAK1B,sBAAsBY,QAAAA;AAEnD,UAAMe,oBAAoB,MAAMC,QAAQC,IACtCH,UAAUzB,IAAI,CAAC6B,QAAQ,IAAIC,eAA+B;MAAEnC,QAAQoC;IAAc,CAAA,EAAGC,OAAO;MAAE/B,SAAS4B,IAAI5B;IAAQ,CAAA,EAAGgC,MAAK,CAAA,CAAA;AAG7H,WAAO;SAAK,MAAM,MAAMT,yBAAyBb,QAAAA;SAAee;;EAClE;EAEA,MAAyBb,gBAAgBF,WAAW,IAAIC,kBAA6B,CAAA,GAAoC;AACvH,UAAMsB,eAAe,KAAKC,iBAAiBC,IAAIzB,QAAAA;AAC/C,QAAIuB,cAAc;AAChB,aAAOA;IACT;AAEA,UAAMxB,WAAgC;MAAE,GAAI,MAAM,MAAMG,gBAAgBF,UAAUC,eAAAA;MAAmBjB,QAAQ0C;IAA0B;AACvI,UAAMC,qBAAqB;SAAI1B;MAAiB,KAAKX;;AAErD,UAAMsC,gBAAgB,wBAACrD,WAA2BA,OAAOe,YAAY,KAAKA,WAAW,CAACW,gBAAgB4B,SAAStD,OAAOe,OAAO,GAAvG;AACtB,UAAMwC,aAAa,wBAACvD,WAA2BA,OAAOwB,SAASC,WAAW,GAAG2B,kBAAAA,GAA1D;AAEnB,UAAMvB,iBAAiB,MAAM,KAAKA,eAAc;AAChD,UAAM2B,wBAAwB,MAAMf,QAAQC,IAAIb,eAAeK,OAAOmB,aAAAA,EAAevC,IAAIyC,UAAAA,CAAAA;AACzF,QAAIC,sBAAsBC,SAAS,GAAG;AACpCjC,eAASkC,UAAUlC,SAASkC,WAAW,CAAC;AACxClC,eAASkC,QAAQC,SAASH;IAC5B;AAEA,SAAKP,iBAAiBW,IAAInC,UAAUD,QAAAA;AAEpC,WAAOA;EACT;EAEA,MAAyBqC,aACvBC,OACAC,UACAC,aACmC;AACnC,UAAMC,UAAU,MAAMC,yBAAyBC,WAAwBL,OAAOC,QAAAA;AAC9E,UAAMvD,eAAe,MAAMyD,QAAQG,SAAQ;AAC3CC,aAAS,MAAM,KAAKC,UAAUR,OAAOC,UAAUC,WAAAA,CAAAA;AAC/C,UAAMO,iBAA4B,CAAA;AAClC,YAAQ/D,aAAaC,QAAM;MACzB,KAAKf,uBAAuB;AAC1B,cAAMqB,UAAU,MAAM,KAAKV,cAAcG,aAAaN,IAAIM,aAAaL,QAAQ;AAC/E,YAAIY,SAAS;AACX,gBAAMyD,UAAU,MAAM,IAAI5B,eAA+B;YAAEnC,QAAQoC;UAAc,CAAA,EAAGC,OAAO;YAAE/B;UAAQ,CAAA,EAAGgC,MAAK;AAC7GwB,yBAAeE,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAK7E,wBAAwB;AAC3B,cAAMmD,SAAS,MAAM,KAAK3B,eAAeX,aAAaN,EAAE;AACxD,YAAI4C,QAAQ;AACV,gBAAM0B,UAAU,MAAM,IAAI5B,eAAmC;YAAEnC,QAAQiE;UAAyB,CAAA,EAAG5B,OAAOA,MAAAA,EAAQC,MAAK;AACvHwB,yBAAeE,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAK5E,uBAAuB;AAC1B,cAAMmB,UAAU,MAAM,KAAKO,cAAcd,aAAaN,EAAE;AACxD,YAAIa,SAAS;AACX,gBAAMyD,UAAU,MAAM,IAAI5B,eAA+B;YAAEnC,QAAQoC;UAAc,CAAA,EAAGC,OAAO;YAAE/B;UAAQ,CAAA,EAAGgC,MAAK;AAC7GwB,yBAAeE,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAK3E,yBAAyB;AAC5B,cAAM8E,YAAY,MAAM,KAAK/D,gBAAe;AAC5C,mBAAWG,WAAW4D,WAAW;AAC/B,gBAAMH,UAAU,MAAM,IAAI5B,eAA+B;YAAEnC,QAAQoC;UAAc,CAAA,EAAGC,OAAO;YAAE/B;UAAQ,CAAA,EAAGgC,MAAK;AAC7GwB,yBAAeE,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAK1E,2BAA2B;AAC9B,cAAM6E,YAAY,MAAM,KAAK5C,kBAAiB;AAC9C,mBAAWhB,WAAW4D,WAAW;AAC/B,gBAAMH,UAAU,MAAM,IAAI5B,eAA+B;YAAEnC,QAAQoC;UAAc,CAAA,EAAGC,OAAO;YAAE/B;UAAQ,CAAA,EAAGgC,MAAK;AAC7GwB,yBAAeE,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,SAAS;AACP,eAAO,MAAM,MAAMX,aAAaC,OAAOC,QAAAA;MACzC;IACF;AACA,WAAOQ;EACT;AASF;","names":["assertEx","globallyUnique","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","ChildCertificationSchema","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n AddressPayload,\n AddressSchema,\n Module,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","globallyUnique","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","AddressSchema","ChildCertificationSchema","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses"]}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
3
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
4
|
-
import { AddressPayload } from '@xyo-network/address-payload-plugin';
|
|
5
4
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
6
5
|
import { ModuleManifestPayload } from '@xyo-network/manifest-model';
|
|
7
6
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
8
|
-
import { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
7
|
+
import { AddressPayload, Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
9
8
|
import { AttachableNodeInstance, ChildCertification, ChildCertificationFields, NodeInstance, NodeModule, NodeModuleEventData, NodeParams, NodeQueries } from '@xyo-network/node-model';
|
|
10
9
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
11
10
|
export declare abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements AttachableNodeInstance<TParams, TEventData>, Module<TParams, TEventData>, NodeInstance<TParams, TEventData>, ModuleInstance<TParams, TEventData>, NodeModule<TParams, TEventData> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
3
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
4
|
-
import { AddressPayload } from '@xyo-network/address-payload-plugin';
|
|
5
4
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
6
5
|
import { ModuleManifestPayload } from '@xyo-network/manifest-model';
|
|
7
6
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
8
|
-
import { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
7
|
+
import { AddressPayload, Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
9
8
|
import { AttachableNodeInstance, ChildCertification, ChildCertificationFields, NodeInstance, NodeModule, NodeModuleEventData, NodeParams, NodeQueries } from '@xyo-network/node-model';
|
|
10
9
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
11
10
|
export declare abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements AttachableNodeInstance<TParams, TEventData>, Module<TParams, TEventData>, NodeInstance<TParams, TEventData>, ModuleInstance<TParams, TEventData>, NodeModule<TParams, TEventData> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
3
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
4
|
-
import { AddressPayload } from '@xyo-network/address-payload-plugin';
|
|
5
4
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
6
5
|
import { ModuleManifestPayload } from '@xyo-network/manifest-model';
|
|
7
6
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
8
|
-
import { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
7
|
+
import { AddressPayload, Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model';
|
|
9
8
|
import { AttachableNodeInstance, ChildCertification, ChildCertificationFields, NodeInstance, NodeModule, NodeModuleEventData, NodeParams, NodeQueries } from '@xyo-network/node-model';
|
|
10
9
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
11
10
|
export declare abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData> extends AbstractModuleInstance<TParams, TEventData> implements AttachableNodeInstance<TParams, TEventData>, Module<TParams, TEventData>, NodeInstance<TParams, TEventData>, ModuleInstance<TParams, TEventData>, NodeModule<TParams, TEventData> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/node/index.cjs
CHANGED
|
@@ -36,10 +36,10 @@ module.exports = __toCommonJS(src_exports);
|
|
|
36
36
|
// src/AbstractNode.ts
|
|
37
37
|
var import_assert = require("@xylabs/assert");
|
|
38
38
|
var import_object = require("@xylabs/object");
|
|
39
|
-
var import_address_payload_plugin = require("@xyo-network/address-payload-plugin");
|
|
40
39
|
var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
|
|
41
40
|
var import_manifest_model = require("@xyo-network/manifest-model");
|
|
42
41
|
var import_module_abstract = require("@xyo-network/module-abstract");
|
|
42
|
+
var import_module_model = require("@xyo-network/module-model");
|
|
43
43
|
var import_node_model = require("@xyo-network/node-model");
|
|
44
44
|
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
45
45
|
var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractModuleInstance {
|
|
@@ -153,7 +153,7 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
|
|
|
153
153
|
async generateConfigAndAddress(maxDepth = 10) {
|
|
154
154
|
const childMods = await this.attachedPublicModules(maxDepth);
|
|
155
155
|
const childModAddresses = await Promise.all(childMods.map((mod) => new import_payload_builder.PayloadBuilder({
|
|
156
|
-
schema:
|
|
156
|
+
schema: import_module_model.AddressSchema
|
|
157
157
|
}).fields({
|
|
158
158
|
address: mod.address
|
|
159
159
|
}).build()));
|
|
@@ -196,7 +196,7 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
|
|
|
196
196
|
const address = await this.attachHandler(queryPayload.id, queryPayload.external);
|
|
197
197
|
if (address) {
|
|
198
198
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
199
|
-
schema:
|
|
199
|
+
schema: import_module_model.AddressSchema
|
|
200
200
|
}).fields({
|
|
201
201
|
address
|
|
202
202
|
}).build();
|
|
@@ -218,7 +218,7 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
|
|
|
218
218
|
const address = await this.detachHandler(queryPayload.id);
|
|
219
219
|
if (address) {
|
|
220
220
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
221
|
-
schema:
|
|
221
|
+
schema: import_module_model.AddressSchema
|
|
222
222
|
}).fields({
|
|
223
223
|
address
|
|
224
224
|
}).build();
|
|
@@ -230,7 +230,7 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
|
|
|
230
230
|
const addresses = await this.attachedHandler();
|
|
231
231
|
for (const address of addresses) {
|
|
232
232
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
233
|
-
schema:
|
|
233
|
+
schema: import_module_model.AddressSchema
|
|
234
234
|
}).fields({
|
|
235
235
|
address
|
|
236
236
|
}).build();
|
|
@@ -242,7 +242,7 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
|
|
|
242
242
|
const addresses = await this.registeredHandler();
|
|
243
243
|
for (const address of addresses) {
|
|
244
244
|
const payload = await new import_payload_builder.PayloadBuilder({
|
|
245
|
-
schema:
|
|
245
|
+
schema: import_module_model.AddressSchema
|
|
246
246
|
}).fields({
|
|
247
247
|
address
|
|
248
248
|
}).build();
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n AddressPayload,\n AddressSchema,\n Module,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique"]}
|
package/dist/node/index.js
CHANGED
|
@@ -12,10 +12,10 @@ var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
|
12
12
|
// src/AbstractNode.ts
|
|
13
13
|
import { assertEx } from "@xylabs/assert";
|
|
14
14
|
import { globallyUnique } from "@xylabs/object";
|
|
15
|
-
import { AddressSchema } from "@xyo-network/address-payload-plugin";
|
|
16
15
|
import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
17
16
|
import { NodeManifestPayloadSchema } from "@xyo-network/manifest-model";
|
|
18
17
|
import { AbstractModuleInstance } from "@xyo-network/module-abstract";
|
|
18
|
+
import { AddressSchema } from "@xyo-network/module-model";
|
|
19
19
|
import { ChildCertificationSchema, NodeAttachedQuerySchema, NodeAttachQuerySchema, NodeCertifyQuerySchema, NodeConfigSchema, NodeDetachQuerySchema, NodeRegisteredQuerySchema } from "@xyo-network/node-model";
|
|
20
20
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
21
21
|
var _AbstractNode = class _AbstractNode extends AbstractModuleInstance {
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { Module, ModuleConfig, ModuleIdentifier, ModuleInstance, ModuleQueryHandlerResult, ModuleQueryResult } from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","globallyUnique","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","ChildCertificationSchema","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n AddressPayload,\n AddressSchema,\n Module,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData>\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n [NodeAttachQuerySchema]: '1/1',\n [NodeAttachedQuerySchema]: '1/2',\n [NodeCertifyQuerySchema]: '1/5',\n [NodeDetachQuerySchema]: '1/3',\n [NodeRegisteredQuerySchema]: '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","globallyUnique","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","AddressSchema","ChildCertificationSchema","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique"]}
|
package/package.json
CHANGED
|
@@ -14,16 +14,15 @@
|
|
|
14
14
|
"@xylabs/hex": "^3.3.3",
|
|
15
15
|
"@xylabs/object": "^3.3.3",
|
|
16
16
|
"@xylabs/promise": "^3.3.3",
|
|
17
|
-
"@xyo-network/account-model": "~2.
|
|
18
|
-
"@xyo-network/
|
|
19
|
-
"@xyo-network/boundwitness-
|
|
20
|
-
"@xyo-network/
|
|
21
|
-
"@xyo-network/
|
|
22
|
-
"@xyo-network/module-
|
|
23
|
-
"@xyo-network/
|
|
24
|
-
"@xyo-network/
|
|
25
|
-
"@xyo-network/payload-
|
|
26
|
-
"@xyo-network/payload-model": "~2.102.6"
|
|
17
|
+
"@xyo-network/account-model": "~2.103.0",
|
|
18
|
+
"@xyo-network/boundwitness-model": "~2.103.0",
|
|
19
|
+
"@xyo-network/boundwitness-wrapper": "~2.103.0",
|
|
20
|
+
"@xyo-network/manifest-model": "~2.103.0",
|
|
21
|
+
"@xyo-network/module-abstract": "~2.103.0",
|
|
22
|
+
"@xyo-network/module-model": "~2.103.0",
|
|
23
|
+
"@xyo-network/node-model": "~2.103.0",
|
|
24
|
+
"@xyo-network/payload-builder": "~2.103.0",
|
|
25
|
+
"@xyo-network/payload-model": "~2.103.0"
|
|
27
26
|
},
|
|
28
27
|
"devDependencies": {
|
|
29
28
|
"@xylabs/ts-scripts-yarn3": "^3.10.4",
|
|
@@ -69,6 +68,6 @@
|
|
|
69
68
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
70
69
|
},
|
|
71
70
|
"sideEffects": false,
|
|
72
|
-
"version": "2.
|
|
71
|
+
"version": "2.103.0",
|
|
73
72
|
"type": "module"
|
|
74
73
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -3,12 +3,20 @@ import { Address } from '@xylabs/hex'
|
|
|
3
3
|
import { globallyUnique } from '@xylabs/object'
|
|
4
4
|
import { Promisable } from '@xylabs/promise'
|
|
5
5
|
import { AccountInstance } from '@xyo-network/account-model'
|
|
6
|
-
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
7
6
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model'
|
|
8
7
|
import { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
9
8
|
import { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'
|
|
10
9
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract'
|
|
11
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
AddressPayload,
|
|
12
|
+
AddressSchema,
|
|
13
|
+
Module,
|
|
14
|
+
ModuleConfig,
|
|
15
|
+
ModuleIdentifier,
|
|
16
|
+
ModuleInstance,
|
|
17
|
+
ModuleQueryHandlerResult,
|
|
18
|
+
ModuleQueryResult,
|
|
19
|
+
} from '@xyo-network/module-model'
|
|
12
20
|
import {
|
|
13
21
|
AttachableNodeInstance,
|
|
14
22
|
ChildCertification,
|