@xyo-network/node-abstract 2.93.2 → 2.93.4
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.map +1 -1
- package/dist/browser/AbstractNode.d.mts.map +1 -1
- package/dist/browser/AbstractNode.d.ts.map +1 -1
- package/dist/browser/index.cjs +3 -2
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +3 -2
- package/dist/browser/index.js.map +1 -1
- package/dist/node/AbstractNode.d.cts.map +1 -1
- package/dist/node/AbstractNode.d.mts.map +1 -1
- package/dist/node/AbstractNode.d.ts.map +1 -1
- package/dist/node/index.cjs +3 -2
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +3 -2
- package/dist/node/index.js.map +1 -1
- package/package.json +10 -10
- package/src/AbstractNode.ts +2 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,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,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAYjD,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,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,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAYjD,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,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,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAYjD,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -152,11 +152,12 @@ var AbstractNode = class extends import_module_abstract.AbstractModuleInstance {
|
|
|
152
152
|
];
|
|
153
153
|
const notThisModule = /* @__PURE__ */ __name((module2) => module2.address !== this.address && !ignoreAddresses.includes(module2.address), "notThisModule");
|
|
154
154
|
const toManifest = /* @__PURE__ */ __name((module2) => module2.manifest(maxDepth - 1, newIgnoreAddresses), "toManifest");
|
|
155
|
-
const
|
|
155
|
+
const publicChildren = await this.resolve("*", {
|
|
156
156
|
direction: "down",
|
|
157
157
|
maxDepth: 1,
|
|
158
158
|
visibility: "public"
|
|
159
|
-
})
|
|
159
|
+
});
|
|
160
|
+
const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest));
|
|
160
161
|
if (publicModules.length > 0) {
|
|
161
162
|
manifest.modules = manifest.modules ?? {};
|
|
162
163
|
manifest.modules.public = publicModules;
|
|
@@ -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 { Promisable } from '@xylabs/promise'\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 {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } 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 NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): 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) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\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 privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all(\n (await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })).filter(notThisModule).map(toManifest),\n )\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\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.attach(queryPayload.nameOrAddress, 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 NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\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.attached()\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.registered()\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 private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;ACAA,oBAAyB;AAGzB,oCAA8C;AAE9C,kCAAyC;AACzC,4BAAsF;AACtF,6BAAuC;AACvC,0BASO;AACP,wBAUO;AACP,6BAA+B;AAGxB,IAAeA,eAAf,cACGC,8CAAAA;EAjCV,OAiCUA;;;EAGR,OAAyBC,gBAA0B;IAACC;;EAEnCC,SAAS;EAE1B,IAAaC,UAAoB;AAC/B,WAAO;MAACC;MAAuBC;MAAuBC;MAAyBC;SAA8B,MAAMJ;;EACrH;EAEA,IAAuBK,qBAA4D;AACjF,WAAO;MACL,iCAAiC;MACjC,mCAAmC;MACnC,iCAAiC;MACjC,qCAAqC;IACvC;EACF;EAEA,OAAON,OAAOO,SAAiB;AAC7B,WAAQA,QAAwBP;EAClC;EAEA,MAAMQ,WAA+B;AACnC,WAAO;UACD,MAAM,KAAKC,sBAAqB,GAAIC,IAAI,CAACH,YAAWA,QAAOI,OAAO;UAClE,MAAM,KAAKC,uBAAsB,GAAIF,IAAI,CAACH,YAAWA,QAAOI,OAAO;;EAE3E;EAEA,MAAeE,SAASC,WAAW,GAAGC,kBAA6B,CAAA,GAAoC;AACrG,WAAO,MAAM,KAAKC,gBAAgBF,UAAUC,eAAAA;EAC9C;EASA,MAAeE,QACbC,aAA8C,KAC9CC,SACwD;AACxD,UAAM,EAAEC,aAAa,MAAK,IAAKD,WAAW,CAAC;AAC3C,UAAME,iBAAiB;MAAE,GAAGF;MAASC;IAAW;AAGhD,QAAIF,eAAe,KAAK;AACtB,cAAQC,SAASC,YAAAA;QACf,KAAK,WAAW;AACd,kBAAQ,MAAM,KAAKE,eAAe,KAAKD,cAAAA,GAAiBE,OAAO,CAACC,QAAQA,IAAIb,YAAY,KAAKA,OAAO;QACtG;QACA,KAAK,OAAO;AACV,kBAAQ,MAAM,KAAKc,WAAW,KAAKJ,cAAAA,GAAiBE,OAAO,CAACC,QAAQA,IAAIb,YAAY,KAAKA,OAAO;QAClG;QACA,SAAS;AACP,kBAAQ,MAAM,MAAMM,QAAQ,KAAKI,cAAAA,GAAiBE,OAAO,CAACC,QAAQA,IAAIb,YAAY,KAAKA,OAAO;QAChG;MACF;IACF;AACA,QAAI,OAAOO,eAAe,UAAU;AAClC,cAAQC,SAASC,YAAAA;QACf,KAAK,WAAW;AACd,iBAAO,MAAM,KAAKE,eAAeJ,YAAYG,cAAAA;QAC/C;QACA,KAAK,OAAO;AACV,iBAAO,MAAM,KAAKI,WAAWP,YAAYG,cAAAA;QAC3C;QACA,SAAS;AACP,iBAAO,MAAM,MAAMJ,QAAQC,YAAYG,cAAAA;QACzC;MACF;IACF,OAAO;AACL,cAAQF,SAASC,YAAAA;QACf,KAAK,OAAO;AACV,iBAAO,MAAM,KAAKK,WAAWP,YAAYG,cAAAA;QAC3C;QACA,KAAK,WAAW;AACd,iBAAO,MAAM,KAAKC,eAAeJ,YAAYG,cAAAA;QAC/C;QACA,SAAS;AACP,iBAAO,MAAM,MAAMJ,QAAQC,YAAYG,cAAAA;QACzC;MACF;IACF;EACF;EAEA,MAAgBT,uBAAuBE,WAAW,GAA8B;AAC9E,YAAQ,OAAO,KAAKY,gBAAgBT,QAAQ,KAAK;MAAEH;MAAUM,YAAY;IAAS,CAAA,KAAM,CAAA,IAAKG,OAAO,CAAChB,YAAWA,QAAOI,YAAY,KAAKA,OAAO;EACjJ;EAEA,MAAgBF,sBAAsBK,WAAW,GAA8B;AAC7E,YAAQ,OAAO,KAAKa,aAAaV,QAAQ,KAAK;MAAEH;MAAUM,YAAY;IAAS,CAAA,KAAM,CAAA,IAAKG,OAAO,CAAChB,YAAWA,QAAOI,YAAY,KAAKA,OAAO;EAC9I;EAEA,MAAyBiB,gBAAgBd,WAAW,GAAuB;AACzE,UAAMe,YAAY,MAAM,KAAKpB,sBAAsBK,QAAAA;AAEnD,UAAMgB,oBAAoB,MAAMC,QAAQC,IACtCH,UAAUnB,IAAI,CAACc,QACb,IAAIS,sCAA+B;MAAEC,QAAQC;IAAc,CAAA,EAAGC,OAAO;MAAEzB,SAASa,IAAIb;MAAS0B,MAAMb,IAAIc,OAAOD;IAAK,CAAA,EAAGE,MAAK,CAAA,CAAA;AAI/H,WAAO;SAAK,MAAM,MAAMX,gBAAgBd,QAAAA;SAAegB;;EACzD;EAEA,MAAyBd,gBAAgBF,WAAW,GAAGC,kBAA6B,CAAA,GAAoC;AACtH,UAAMF,WAAgC;MAAE,GAAI,MAAM,MAAMG,gBAAgBF,UAAUC,eAAAA;MAAmBmB,QAAQM;IAA0B;AACvI,UAAMC,qBAAqB;SAAI1B;MAAiB,KAAKJ;;AAErD,UAAM+B,gBAAgB,wBAACnC,YAA2BA,QAAOI,YAAY,KAAKA,WAAW,CAACI,gBAAgB4B,SAASpC,QAAOI,OAAO,GAAvG;AACtB,UAAMiC,aAAa,wBAACrC,YAA2BA,QAAOM,SAASC,WAAW,GAAG2B,kBAAAA,GAA1D;AAQnB,UAAMI,gBAAgB,MAAMd,QAAQC,KACjC,MAAM,KAAKf,QAAQ,KAAK;MAAE6B,WAAW;MAAQhC,UAAU;MAAGM,YAAY;IAAS,CAAA,GAAIG,OAAOmB,aAAAA,EAAehC,IAAIkC,UAAAA,CAAAA;AAEhH,QAAIC,cAAcE,SAAS,GAAG;AAC5BlC,eAASmC,UAAUnC,SAASmC,WAAW,CAAC;AACxCnC,eAASmC,QAAQC,SAASJ;IAC5B;AAEA,WAAOhC;EACT;EAEA,MAAyBqC,aACvBC,OACAC,UACAC,aACmC;AACnC,UAAMC,UAAU,MAAMC,qDAAyBC,WAAwBL,OAAOC,QAAAA;AAC9E,UAAMK,eAAe,MAAMH,QAAQI,SAAQ;AAC3CC,gCAAS,MAAM,KAAKC,UAAUT,OAAOC,UAAUC,WAAAA,CAAAA;AAC/C,UAAMQ,iBAA4B,CAAA;AAClC,YAAQJ,aAAavB,QAAM;MACzB,KAAKhC,yCAAuB;AAC1B,cAAMS,UAAU,MAAM,KAAKmD,OAAOL,aAAaM,eAAeN,aAAaO,QAAQ;AACnF,YAAIrD,SAAS;AACX,gBAAMsD,UAAU,MAAM,IAAIhC,sCAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAEzB;UAAQ,CAAA,EAAG4B,MAAK;AAC7GsB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAK9D,yCAAuB;AAC1B,cAAMQ,UAAU,MAAM,KAAKwD,OAAOV,aAAaM,aAAa;AAC5D,YAAIpD,SAAS;AACX,gBAAMsD,UAAU,MAAM,IAAIhC,sCAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAEzB;UAAQ,CAAA,EAAG4B,MAAK;AAC7GsB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAK7D,2CAAyB;AAC5B,cAAMgE,YAAY,MAAM,KAAK5D,SAAQ;AACrC,mBAAWG,WAAWyD,WAAW;AAC/B,gBAAMH,UAAU,MAAM,IAAIhC,sCAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAEzB;UAAQ,CAAA,EAAG4B,MAAK;AAC7GsB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAK5D,6CAA2B;AAC9B,cAAM+D,YAAY,MAAM,KAAKC,WAAU;AACvC,mBAAW1D,WAAWyD,WAAW;AAC/B,gBAAMH,UAAU,MAAM,IAAIhC,sCAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAEzB;UAAQ,CAAA,EAAG4B,MAAK;AAC7GsB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,SAAS;AACP,eAAO,MAAM,MAAMf,aAAaC,OAAOC,QAAAA;MACzC;IACF;AACA,WAAOS;EACT;EAKA,MAAcpC,WACZP,YACAC,SACwD;AACxD,QAAID,eAAe,KAAK;AACtB,aAAO;WAAK,MAAM,KAAKI,eAAeJ,YAAYC,OAAAA;WAAe,MAAM,MAAMF,QAAQC,YAAYC,OAAAA;QAAWI,OAAO+C,oCAAAA;IACrH;AACA,YAAQ,OAAOpD,YAAAA;MACb,KAAK,UAAU;AACb,eAAQ,MAAM,KAAKI,eAAeJ,YAAYC,OAAAA,KAAc,MAAM,MAAMF,QAAQC,YAAYC,OAAAA;MAC9F;MACA,SAAS;AACP,eAAO;aAAK,MAAM,KAAKG,eAAeJ,YAAYC,OAAAA;aAAe,MAAM,MAAMF,QAAQC,YAAYC,OAAAA;UAAWI,OAAO+C,oCAAAA;MACrH;IACF;EACF;EAKA,MAAchD,eACZJ,YACAC,SACwD;AACxD,UAAM2B,YAAY3B,SAAS2B,aAAa;AACxC,UAAMyB,OAAOzB,cAAc,UAAUA,cAAc;AACnD,QAAI5B,eAAe,KAAK;AACtB,aAAOqD,OAAO,MAAM,KAAK7C,gBAAgBT,QAAQC,UAAAA,IAAc,CAAA;IACjE;AACA,YAAQ,OAAOA,YAAAA;MACb,KAAK,UAAU;AACb,eAAOqD,OAAO,MAAM,KAAK7C,gBAAgBT,QAAQC,UAAAA,IAAcsD;MACjE;MACA,SAAS;AACP,eAAOD,OAAO,MAAM,KAAK7C,gBAAgBT,QAAQC,UAAAA,IAAcsD;MACjE;IACF;EACF;AAKF;","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","direction","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined"]}
|
|
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 { Promisable } from '@xylabs/promise'\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 {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } 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 NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): 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) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\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 privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\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.attach(queryPayload.nameOrAddress, 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 NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\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.attached()\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.registered()\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 private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined"]}
|
package/dist/browser/index.js
CHANGED
|
@@ -128,11 +128,12 @@ var AbstractNode = class extends AbstractModuleInstance {
|
|
|
128
128
|
];
|
|
129
129
|
const notThisModule = /* @__PURE__ */ __name((module) => module.address !== this.address && !ignoreAddresses.includes(module.address), "notThisModule");
|
|
130
130
|
const toManifest = /* @__PURE__ */ __name((module) => module.manifest(maxDepth - 1, newIgnoreAddresses), "toManifest");
|
|
131
|
-
const
|
|
131
|
+
const publicChildren = await this.resolve("*", {
|
|
132
132
|
direction: "down",
|
|
133
133
|
maxDepth: 1,
|
|
134
134
|
visibility: "public"
|
|
135
|
-
})
|
|
135
|
+
});
|
|
136
|
+
const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest));
|
|
136
137
|
if (publicModules.length > 0) {
|
|
137
138
|
manifest.modules = manifest.modules ?? {};
|
|
138
139
|
manifest.modules.public = publicModules;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\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 {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } 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 NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): 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) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\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 privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all(\n (await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })).filter(notThisModule).map(toManifest),\n )\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\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.attach(queryPayload.nameOrAddress, 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 NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\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.attached()\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.registered()\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 private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","direction","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\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 {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } 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 NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): 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) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\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 privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\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.attach(queryPayload.nameOrAddress, 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 NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\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.attached()\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.registered()\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 private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,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,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAYjD,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,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,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAYjD,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,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,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAYjD,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAuB9F,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;YA6CtB,UAAU;YAoBV,cAAc;IAsB5B,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,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,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAYjD,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/node/index.cjs
CHANGED
|
@@ -151,11 +151,12 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
|
|
|
151
151
|
];
|
|
152
152
|
const notThisModule = /* @__PURE__ */ __name((module2) => module2.address !== this.address && !ignoreAddresses.includes(module2.address), "notThisModule");
|
|
153
153
|
const toManifest = /* @__PURE__ */ __name((module2) => module2.manifest(maxDepth - 1, newIgnoreAddresses), "toManifest");
|
|
154
|
-
const
|
|
154
|
+
const publicChildren = await this.resolve("*", {
|
|
155
155
|
direction: "down",
|
|
156
156
|
maxDepth: 1,
|
|
157
157
|
visibility: "public"
|
|
158
|
-
})
|
|
158
|
+
});
|
|
159
|
+
const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest));
|
|
159
160
|
if (publicModules.length > 0) {
|
|
160
161
|
manifest.modules = manifest.modules ?? {};
|
|
161
162
|
manifest.modules.public = publicModules;
|
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 { Promisable } from '@xylabs/promise'\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 {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } 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 NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): 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) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\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 privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all(\n (await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })).filter(notThisModule).map(toManifest),\n )\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\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.attach(queryPayload.nameOrAddress, 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 NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\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.attached()\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.registered()\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 private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","direction","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined","configSchemas","NodeConfigSchema"]}
|
|
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 { Promisable } from '@xylabs/promise'\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 {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } 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 NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): 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) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\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 privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\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.attach(queryPayload.nameOrAddress, 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 NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\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.attached()\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.registered()\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 private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined","configSchemas","NodeConfigSchema"]}
|
package/dist/node/index.js
CHANGED
|
@@ -127,11 +127,12 @@ var _AbstractNode = class _AbstractNode extends AbstractModuleInstance {
|
|
|
127
127
|
];
|
|
128
128
|
const notThisModule = /* @__PURE__ */ __name((module) => module.address !== this.address && !ignoreAddresses.includes(module.address), "notThisModule");
|
|
129
129
|
const toManifest = /* @__PURE__ */ __name((module) => module.manifest(maxDepth - 1, newIgnoreAddresses), "toManifest");
|
|
130
|
-
const
|
|
130
|
+
const publicChildren = await this.resolve("*", {
|
|
131
131
|
direction: "down",
|
|
132
132
|
maxDepth: 1,
|
|
133
133
|
visibility: "public"
|
|
134
|
-
})
|
|
134
|
+
});
|
|
135
|
+
const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest));
|
|
135
136
|
if (publicModules.length > 0) {
|
|
136
137
|
manifest.modules = manifest.modules ?? {};
|
|
137
138
|
manifest.modules.public = publicModules;
|
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 { Promisable } from '@xylabs/promise'\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 {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } 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 NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): 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) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\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 privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all(\n (await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })).filter(notThisModule).map(toManifest),\n )\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\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.attach(queryPayload.nameOrAddress, 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 NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\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.attached()\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.registered()\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 private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","direction","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined","configSchemas","NodeConfigSchema"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\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 {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } 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 NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): 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) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\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 privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\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.attach(queryPayload.nameOrAddress, 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 NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\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.attached()\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.registered()\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 private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined","configSchemas","NodeConfigSchema"]}
|
package/package.json
CHANGED
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
"@xylabs/assert": "^3.0.24",
|
|
14
14
|
"@xylabs/hex": "^3.0.24",
|
|
15
15
|
"@xylabs/promise": "^3.0.24",
|
|
16
|
-
"@xyo-network/address-payload-plugin": "~2.93.
|
|
17
|
-
"@xyo-network/boundwitness-model": "~2.93.
|
|
18
|
-
"@xyo-network/boundwitness-wrapper": "~2.93.
|
|
19
|
-
"@xyo-network/manifest-model": "~2.93.
|
|
20
|
-
"@xyo-network/module-abstract": "~2.93.
|
|
21
|
-
"@xyo-network/module-model": "~2.93.
|
|
22
|
-
"@xyo-network/node-model": "~2.93.
|
|
23
|
-
"@xyo-network/payload-builder": "~2.93.
|
|
24
|
-
"@xyo-network/payload-model": "~2.93.
|
|
16
|
+
"@xyo-network/address-payload-plugin": "~2.93.4",
|
|
17
|
+
"@xyo-network/boundwitness-model": "~2.93.4",
|
|
18
|
+
"@xyo-network/boundwitness-wrapper": "~2.93.4",
|
|
19
|
+
"@xyo-network/manifest-model": "~2.93.4",
|
|
20
|
+
"@xyo-network/module-abstract": "~2.93.4",
|
|
21
|
+
"@xyo-network/module-model": "~2.93.4",
|
|
22
|
+
"@xyo-network/node-model": "~2.93.4",
|
|
23
|
+
"@xyo-network/payload-builder": "~2.93.4",
|
|
24
|
+
"@xyo-network/payload-model": "~2.93.4"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@xylabs/ts-scripts-yarn3": "^3.5.2",
|
|
@@ -67,6 +67,6 @@
|
|
|
67
67
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
68
68
|
},
|
|
69
69
|
"sideEffects": false,
|
|
70
|
-
"version": "2.93.
|
|
70
|
+
"version": "2.93.4",
|
|
71
71
|
"type": "module"
|
|
72
72
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -154,9 +154,8 @@ export abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEve
|
|
|
154
154
|
manifest.modules.private = privateModules
|
|
155
155
|
}*/
|
|
156
156
|
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
)
|
|
157
|
+
const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })
|
|
158
|
+
const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))
|
|
160
159
|
if (publicModules.length > 0) {
|
|
161
160
|
manifest.modules = manifest.modules ?? {}
|
|
162
161
|
manifest.modules.public = publicModules
|