@xyo-network/node-abstract 3.5.1 → 3.6.0-rc.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -120,11 +120,11 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
|
|
|
120
120
|
}
|
|
121
121
|
async generateConfigAndAddress(maxDepth = 10) {
|
|
122
122
|
const childMods = await this.attachedPublicModules(maxDepth);
|
|
123
|
-
const childModAddresses =
|
|
123
|
+
const childModAddresses = childMods.map((mod) => new PayloadBuilder({
|
|
124
124
|
schema: AddressSchema
|
|
125
125
|
}).fields({
|
|
126
126
|
address: mod.address
|
|
127
|
-
}).build())
|
|
127
|
+
}).build());
|
|
128
128
|
return [
|
|
129
129
|
...await super.generateConfigAndAddress(maxDepth),
|
|
130
130
|
...childModAddresses
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractNode.ts","../../src/NodeHelper/attachedPrivateModules.ts","../../src/NodeHelper/attachedPublicModules.ts","../../src/NodeHelper/index.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport type { Promisable } from '@xylabs/promise'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport type { ModuleManifestPayload, NodeManifestPayload } from '@xyo-network/manifest-model'\nimport { NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport type {\n AddressPayload,\n Module,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { AddressSchema } from '@xyo-network/module-model'\nimport type {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n NodeAttachedQuery,\n NodeAttachQuery,\n NodeCertifyQuery,\n NodeDetachQuery,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n} from '@xyo-network/node-model'\nimport {\n ChildCertificationSchema,\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { 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 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 static isNode(mod: unknown) {\n return (mod 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 = {\n external, id, schema: NodeAttachQuerySchema,\n }\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 [...(await this.attachedPublicModules()).map(mod => mod.address), ...(await this.attachedPrivateModules()).map(mod => mod.address)]\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(mod => mod.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter(mod => mod.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 = (mod: ModuleInstance) => mod.address !== this.address && !ignoreAddresses.includes(mod.address)\n const toManifest = (mod: ModuleInstance) => mod.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), () => 'Module is not queryable with the provided query')\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","import type { ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nexport const attachedPrivateModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.privateChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPrivateModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n","import type { ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nexport const attachedPublicModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.publicChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPublicModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n","import { attachedPrivateModules } from './attachedPrivateModules.ts'\nimport { attachedPublicModules } from './attachedPublicModules.ts'\n\nexport const NodeHelper = {\n attachedPrivateModules,\n attachedPublicModules,\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","mod","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","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","asNodeInstance","attachedPrivateModules","node","maxDepth","remainingDepth","mods","publicChildren","privateChildren","push","Promise","all","map","mod","asNodeInstance","children","asNodeInstance","attachedPublicModules","node","maxDepth","remainingDepth","mods","publicChildren","push","Promise","all","map","mod","asNodeInstance","children","NodeHelper","attachedPrivateModules","attachedPublicModules"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractNode.ts","../../src/NodeHelper/attachedPrivateModules.ts","../../src/NodeHelper/attachedPublicModules.ts","../../src/NodeHelper/index.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport type { Promisable } from '@xylabs/promise'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport type { ModuleManifestPayload, NodeManifestPayload } from '@xyo-network/manifest-model'\nimport { NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport type {\n AddressPayload,\n Module,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { AddressSchema } from '@xyo-network/module-model'\nimport type {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n NodeAttachedQuery,\n NodeAttachQuery,\n NodeCertifyQuery,\n NodeDetachQuery,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n} from '@xyo-network/node-model'\nimport {\n ChildCertificationSchema,\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { 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 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 static isNode(mod: unknown) {\n return (mod 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 = {\n external, id, schema: NodeAttachQuerySchema,\n }\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 [...(await this.attachedPublicModules()).map(mod => mod.address), ...(await this.attachedPrivateModules()).map(mod => mod.address)]\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(mod => mod.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter(mod => mod.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 = childMods.map(mod => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build())\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 = (mod: ModuleInstance) => mod.address !== this.address && !ignoreAddresses.includes(mod.address)\n const toManifest = (mod: ModuleInstance) => mod.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), () => 'Module is not queryable with the provided query')\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","import type { ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nexport const attachedPrivateModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.privateChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPrivateModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n","import type { ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nexport const attachedPublicModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.publicChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPublicModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n","import { attachedPrivateModules } from './attachedPrivateModules.ts'\nimport { attachedPublicModules } from './attachedPublicModules.ts'\n\nexport const NodeHelper = {\n attachedPrivateModules,\n attachedPublicModules,\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","mod","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","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","Promise","all","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses","asNodeInstance","attachedPrivateModules","node","maxDepth","remainingDepth","mods","publicChildren","privateChildren","push","Promise","all","map","mod","asNodeInstance","children","asNodeInstance","attachedPublicModules","node","maxDepth","remainingDepth","mods","publicChildren","push","Promise","all","map","mod","asNodeInstance","children","NodeHelper","attachedPrivateModules","attachedPublicModules"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/node-abstract",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0-rc.1",
|
|
4
4
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -29,19 +29,19 @@
|
|
|
29
29
|
"module": "dist/neutral/index.mjs",
|
|
30
30
|
"types": "dist/neutral/index.d.ts",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@xylabs/assert": "^4.4.
|
|
33
|
-
"@xylabs/hex": "^4.4.
|
|
34
|
-
"@xylabs/object": "^4.4.
|
|
35
|
-
"@xylabs/promise": "^4.4.
|
|
36
|
-
"@xyo-network/account-model": "^3.
|
|
37
|
-
"@xyo-network/boundwitness-model": "^3.
|
|
38
|
-
"@xyo-network/boundwitness-wrapper": "^3.
|
|
39
|
-
"@xyo-network/manifest-model": "^3.
|
|
40
|
-
"@xyo-network/module-abstract": "^3.
|
|
41
|
-
"@xyo-network/module-model": "^3.
|
|
42
|
-
"@xyo-network/node-model": "^3.
|
|
43
|
-
"@xyo-network/payload-builder": "^3.
|
|
44
|
-
"@xyo-network/payload-model": "^3.
|
|
32
|
+
"@xylabs/assert": "^4.4.12",
|
|
33
|
+
"@xylabs/hex": "^4.4.12",
|
|
34
|
+
"@xylabs/object": "^4.4.12",
|
|
35
|
+
"@xylabs/promise": "^4.4.12",
|
|
36
|
+
"@xyo-network/account-model": "^3.6.0-rc.1",
|
|
37
|
+
"@xyo-network/boundwitness-model": "^3.6.0-rc.1",
|
|
38
|
+
"@xyo-network/boundwitness-wrapper": "^3.6.0-rc.1",
|
|
39
|
+
"@xyo-network/manifest-model": "^3.6.0-rc.1",
|
|
40
|
+
"@xyo-network/module-abstract": "^3.6.0-rc.1",
|
|
41
|
+
"@xyo-network/module-model": "^3.6.0-rc.1",
|
|
42
|
+
"@xyo-network/node-model": "^3.6.0-rc.1",
|
|
43
|
+
"@xyo-network/payload-builder": "^3.6.0-rc.1",
|
|
44
|
+
"@xyo-network/payload-model": "^3.6.0-rc.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@xylabs/ts-scripts-yarn3": "^4.2.4",
|
|
@@ -50,5 +50,6 @@
|
|
|
50
50
|
},
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
53
|
-
}
|
|
53
|
+
},
|
|
54
|
+
"stableVersion": "3.5.2"
|
|
54
55
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -157,9 +157,7 @@ export abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEve
|
|
|
157
157
|
protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {
|
|
158
158
|
const childMods = await this.attachedPublicModules(maxDepth)
|
|
159
159
|
// console.log(`childMods: ${toJsonString(childMods)}`)
|
|
160
|
-
const childModAddresses =
|
|
161
|
-
childMods.map(mod => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build()),
|
|
162
|
-
)
|
|
160
|
+
const childModAddresses = childMods.map(mod => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build())
|
|
163
161
|
|
|
164
162
|
return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]
|
|
165
163
|
}
|