{
  "version": 3,
  "sources": ["../../src/modules/node-abstract/AbstractNode.ts", "../../src/modules/node-abstract/NodeHelper/attachedPrivateModules.ts", "../../src/modules/node-abstract/NodeHelper/attachedPublicModules.ts", "../../src/modules/node-abstract/NodeHelper/index.ts"],
  "sourcesContent": ["import type { Promisable } from '@ariestools/sdk'\nimport { assertEx } from '@ariestools/sdk'\nimport type {\n  AccountInstance, ModuleManifestPayload, NodeManifestPayload, Payload, QueryBoundWitness, Schema, XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport {\n  NodeManifestPayloadSchema, PayloadBuilder, QueryBoundWitnessWrapper,\n} from '@xyo-network/sdk-protocol'\n\nimport { AbstractModuleInstance } from '#module-abstract'\nimport type {\n  AddressPayload,\n  ModuleConfig,\n  ModuleIdentifier,\n  ModuleInstance,\n  ModuleQueryHandlerResult,\n  ModuleQueryResult,\n  QueryableModule,\n} from '#module-model'\nimport { AddressSchema } from '#module-model'\nimport type {\n  AttachableNodeInstance,\n  ChildCertification,\n  ChildCertificationFields,\n  NodeAttachedQuery,\n  NodeAttachQuery,\n  NodeCertifyQuery,\n  NodeDetachQuery,\n  NodeInstance,\n  NodeModule,\n  NodeModuleEventData,\n  NodeParams,\n  NodeQueries,\n  NodeRegisteredQuery,\n} from '#node-model'\nimport {\n  ChildCertificationSchema,\n  NodeAttachedQuerySchema,\n  NodeAttachQuerySchema,\n  NodeCertifyQuerySchema,\n  NodeConfigSchema,\n  NodeDetachQuerySchema,\n  NodeRegisteredQuerySchema,\n} from '#node-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n  extends AbstractModuleInstance<TParams, TEventData>\n  implements\n    AttachableNodeInstance<TParams, TEventData>,\n    QueryableModule<TParams, TEventData>,\n    NodeInstance<TParams, TEventData>,\n    ModuleInstance<TParams, TEventData>,\n    NodeModule<TParams, TEventData> {\n  static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n  static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n\n  private readonly isNode = true\n\n  override get queries(): Schema[] {\n    return [\n      NodeAttachQuerySchema,\n      NodeCertifyQuerySchema,\n      NodeDetachQuerySchema,\n      NodeAttachedQuerySchema,\n      NodeRegisteredQuerySchema,\n      ...super.queries,\n    ]\n  }\n\n  static isNode(mod: unknown): boolean {\n    return (mod as AbstractNode).isNode\n  }\n\n  async attach(id: ModuleIdentifier, external?: boolean): Promise<XyoAddress | undefined> {\n    this._noOverride('attach')\n    return await this.attachHandler(id, external)\n  }\n\n  async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n    this._noOverride('attachQuery')\n    const queryPayload: NodeAttachQuery = {\n      external, id, schema: NodeAttachQuerySchema,\n    }\n    return await this.sendQueryRaw(queryPayload, [], account)\n  }\n\n  async attached(): Promise<XyoAddress[]> {\n    this._noOverride('attached')\n    return await this.attachedHandler()\n  }\n\n  async attachedHandler(): Promise<XyoAddress[]> {\n    return [...(await this.attachedPublicModules()).map(mod => mod.address), ...(await this.attachedPrivateModules()).map(mod => mod.address)]\n  }\n\n  async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n    this._noOverride('attachedQuery')\n    const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n    return await this.sendQueryRaw(queryPayload, [], account)\n  }\n\n  async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n    this._noOverride('certify')\n    return await this.certifyHandler(id)\n  }\n\n  async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n    const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n    return await this.sendQueryRaw(queryPayload, [], account)\n  }\n\n  async detach(id: ModuleIdentifier): Promise<XyoAddress | undefined> {\n    this._noOverride('detach')\n    return await this.detachHandler(id)\n  }\n\n  async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n    this._noOverride('detachQuery')\n    const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n    return await this.sendQueryRaw(queryPayload, [], account)\n  }\n\n  override async manifest(maxDepth = 10, ignoreAddresses: XyoAddress[] = []): Promise<ModuleManifestPayload> {\n    return await this.manifestHandler(maxDepth, ignoreAddresses)\n  }\n\n  override async privateChildren(): Promise<ModuleInstance[]> {\n    return await this.attachedPrivateModules()\n  }\n\n  override async publicChildren(): Promise<ModuleInstance[]> {\n    return await this.attachedPublicModules()\n  }\n\n  async registered(): Promise<XyoAddress[]> {\n    this._noOverride('registered')\n    return await this.registeredHandler()\n  }\n\n  async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n    this._noOverride('registeredQuery')\n    const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n    return await this.sendQueryRaw(queryPayload, [], account)\n  }\n\n  protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n    return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter(mod => mod.address !== this.address)\n  }\n\n  protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n    return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter(mod => mod.address !== this.address)\n  }\n\n  protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n    const childMods = await this.attachedPublicModules(maxDepth)\n    // console.log(`childMods: ${toSafeJsonString(childMods)}`)\n    const childModAddresses = childMods.map(mod => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build())\n\n    return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n  }\n\n  protected override async manifestHandler(maxDepth = 10, ignoreAddresses: XyoAddress[] = []): Promise<ModuleManifestPayload> {\n    const cachedResult = this._cachedManifests.get(maxDepth)\n    if (cachedResult) {\n      return cachedResult\n    }\n\n    const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n    const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n    const notThisModule = (mod: ModuleInstance) => mod.address !== this.address && !ignoreAddresses.includes(mod.address)\n    const toManifest = (mod: ModuleInstance) => mod.manifest(maxDepth - 1, newIgnoreAddresses)\n\n    const publicChildren = await this.publicChildren()\n    // eslint-disable-next-line @typescript-eslint/await-thenable\n    const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n    if (publicModuleManifests.length > 0) {\n      manifest.modules = manifest.modules ?? {}\n      manifest.modules.public = publicModuleManifests\n    }\n\n    this._cachedManifests.set(maxDepth, manifest)\n\n    return manifest\n  }\n\n  // eslint-disable-next-line max-statements\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 = QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n    const queryPayload = await wrapper.getQuery()\n    assertEx(await this.queryable(query, payloads, queryConfig), () => 'Module is not queryable with the provided query')\n    const resultPayloads: Payload[] = []\n    switch (queryPayload.schema) {\n      case NodeAttachQuerySchema: {\n        const typedQueryPayload = queryPayload as NodeAttachQuery\n        const address = await this.attachHandler(typedQueryPayload.id, typedQueryPayload.external)\n        if (address) {\n          const payload = new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n          resultPayloads.push(payload)\n        }\n        break\n      }\n      case NodeCertifyQuerySchema: {\n        const typedQueryPayload = queryPayload as NodeCertifyQuery\n        const fields = await this.certifyHandler(typedQueryPayload.id)\n        if (fields) {\n          const payload = new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n          resultPayloads.push(payload)\n        }\n        break\n      }\n      case NodeDetachQuerySchema: {\n        const typedQueryPayload = queryPayload as NodeDetachQuery\n        const address = await this.detachHandler(typedQueryPayload.id)\n        if (address) {\n          const payload = new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n          resultPayloads.push(payload)\n        }\n        break\n      }\n      case NodeAttachedQuerySchema: {\n        const addresses = await this.attachedHandler()\n        for (const address of addresses) {\n          const payload = new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n          resultPayloads.push(payload)\n        }\n        break\n      }\n      case NodeRegisteredQuerySchema: {\n        const addresses = await this.registeredHandler()\n        for (const address of addresses) {\n          const payload = new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n          resultPayloads.push(payload)\n        }\n        break\n      }\n      default: {\n        return await super.queryHandler(query, payloads)\n      }\n    }\n    return resultPayloads\n  }\n\n  abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<XyoAddress | undefined>\n\n  abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n  abstract detachHandler(id: ModuleIdentifier): Promisable<XyoAddress | undefined>\n\n  abstract registeredHandler(): Promisable<XyoAddress[]>\n}\n", "import type { ModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\nimport { asNodeInstance } from '#node-model'\n\nexport const attachedPrivateModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n  const remainingDepth = maxDepth - 1\n  const mods: ModuleInstance[] = []\n  const publicChildren = await node.privateChildren()\n  mods.push(...publicChildren)\n\n  if (remainingDepth > 0) {\n    await Promise.all(\n      publicChildren.map(async (mod) => {\n        const node = asNodeInstance(mod)\n        if (node) {\n          const children = await attachedPrivateModules(node, remainingDepth)\n          mods.push(...children)\n        }\n      }),\n    )\n  }\n  return mods\n}\n", "import type { ModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\nimport { asNodeInstance } from '#node-model'\n\nexport const attachedPublicModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n  const remainingDepth = maxDepth - 1\n  const mods: ModuleInstance[] = []\n  const publicChildren = await node.publicChildren()\n  mods.push(...publicChildren)\n\n  if (remainingDepth > 0) {\n    await Promise.all(\n      publicChildren.map(async (mod) => {\n        const node = asNodeInstance(mod)\n        if (node) {\n          const children = await attachedPublicModules(node, remainingDepth)\n          mods.push(...children)\n        }\n      }),\n    )\n  }\n  return mods\n}\n", "import type { ModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\n\nimport { attachedPrivateModules } from './attachedPrivateModules.ts'\nimport { attachedPublicModules } from './attachedPublicModules.ts'\n\nexport const NodeHelper: {\n  attachedPrivateModules: (node: NodeInstance, maxDepth?: number) => Promise<ModuleInstance[]>\n  attachedPublicModules: (node: NodeInstance, maxDepth?: number) => Promise<ModuleInstance[]>\n} = {\n  attachedPrivateModules,\n  attachedPublicModules,\n}\n"],
  "mappings": "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",
  "names": ["node", "asNodeInstance", "node"]
}
