{
  "version": 3,
  "sources": ["../../src/modules/standard-node/components/ActiveStandardNode.tsx", "../../src/modules/standard-node/contexts/StandardRemoteNodes/Context.ts", "../../src/modules/standard-node/contexts/StandardRemoteNodes/Providers.tsx", "../../src/modules/standard-node/lib/Builders/MemoryNodeBuilder.ts", "../../src/modules/standard-node/lib/Builders/SentinelBuilder.ts", "../../src/modules/standard-node/lib/Builders/StorageArchivistBuilder.ts", "../../src/modules/standard-node/lib/buildNodes.ts", "../../src/modules/standard-node/lib/ModuleNames.ts", "../../src/modules/standard-node/lib/ModuleAccountPaths.ts", "../../src/modules/standard-node/contexts/StandardRemoteNodes/use.ts", "../../src/modules/standard-node/hooks/useActiveNodeAddress.ts"],
  "sourcesContent": ["import { useAsyncEffect } from '@ariestools/sdk-react/async-effect'\nimport type { PropsWithChildren } from 'react'\nimport React, { useState } from 'react'\n\nimport { useNetwork } from '#network'\nimport { useWeakNodeFromNode } from '#node'\n\nimport { useStandardNodes } from '../contexts/index.ts'\nimport { useActiveNodeAddress } from '../hooks/index.ts'\n\n/** Props for {@link ActiveStandardNode}. */\nexport interface ActiveStandardNodeProps extends PropsWithChildren {\n  nodeNameOrAddress?: string\n}\n\n/** Attaches the network-selected standard remote node to the provided local node. */\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n  const { network } = useNetwork()\n  const [node] = useWeakNodeFromNode(nodeNameOrAddress)\n  const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState<string>()\n  const { nodes } = useStandardNodes()\n\n  const selectedNodeAddress = useActiveNodeAddress(network?.name)\n\n  // Probably needs to rely on node events rather than provider values to ensure its registered\n  useAsyncEffect(\n    async (mounted) => {\n      const nodeInstance = node?.deref()\n      if (nodeInstance && selectedNodeAddress) {\n        try {\n          if ((await nodeInstance?.attached())?.includes(selectedNodeAddress)) {\n            return\n          }\n          await nodeInstance?.attach(selectedNodeAddress, true)\n\n          if (mounted()) {\n            // cleanup\n            if (activeRemoteNodeAddress) {\n              await nodeInstance?.detach(activeRemoteNodeAddress)\n            }\n            setActiveRemoteNodeAddress(selectedNodeAddress)\n          }\n        } catch (e) {\n          console.error('Error Attaching Selected Node Address', e)\n        }\n      }\n    },\n    [activeRemoteNodeAddress, node, selectedNodeAddress, nodes],\n  )\n\n  return <>{children}</>\n}\n", "import { createContextEx } from '@ariestools/sdk-react/shared'\n\nimport type { StandardNodesState } from './State.ts'\n\n/** React context holding standard remote nodes built from the wallet. */\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n", "import { assertDefinedEx } from '@ariestools/sdk'\nimport { useResetState } from '@ariestools/sdk-react/hooks'\nimport { usePromise } from '@ariestools/sdk-react/promise'\nimport type { MemoryNode, WalletInstance } from '@xyo-network/sdk'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport { useWalletContext } from '#wallet'\n\nimport { BuildStandardNodes } from '../../lib/index.ts'\nimport { StandardNodesContext } from './Context.ts'\nimport type { StandardNodesState } from './State.ts'\n\n/** Props for {@link StandardNodesProvider}. */\nexport type StandardNodesProviderProps = PropsWithChildren<{\n  defaultRemoteNodes?: StandardNodesState['nodes']\n  wallet?: WalletInstance | null\n}>\n\n/** Builds and provides standard remote nodes from a wallet instance. */\nexport const StandardNodesProvider: React.FC<StandardNodesProviderProps> = ({\n  children, defaultRemoteNodes, wallet,\n}) => {\n  const [nodes, setNodes] = useResetState<StandardNodesState['nodes']>(defaultRemoteNodes)\n\n  usePromise(async () => {\n    if (wallet) {\n      await BuildStandardNodes(wallet, (node: MemoryNode) => {\n        setNodes((nodes) => {\n          if (nodes?.find(existingNode => existingNode.config.name === node.config.name)) {\n            return\n          }\n          return nodes ? [...nodes, node] : [node]\n        })\n      })\n    }\n  }, [wallet])\n\n  const value = useMemo(() => {\n    const findAddressByName = (name?: string) => {\n      const validNetworkName = assertDefinedEx(name, () => 'name was not defined')\n      return nodes?.find(node => node.config.name === validNetworkName)?.address\n    }\n\n    return {\n      findAddressByName,\n      nodes,\n      provided: true as const,\n    }\n  }, [nodes])\n\n  return (\n    <StandardNodesContext\n      value={value}\n    >\n      {children}\n    </StandardNodesContext>\n  )\n}\n\n/** {@link StandardNodesProvider} that supplies the active wallet account automatically. */\nexport const StandardNodesProviderWithWallet: React.FC<Omit<StandardNodesProviderProps, 'wallet'>> = (props) => {\n  const { activeAccount } = useWalletContext()\n  return <StandardNodesProvider wallet={activeAccount} {...props} />\n}\n", "import { assertDefinedEx } from '@ariestools/sdk'\nimport type {\n  AccountInstance, AttachableModuleInstance, AttachableWitnessInstance, MemoryArchivistConfig, PayloadSetPluginResolver, SentinelConfig, WitnessModule,\n} from '@xyo-network/sdk'\nimport {\n  MemoryArchivist, MemoryArchivistConfigSchema, MemoryNode, NodeConfigSchema,\n} from '@xyo-network/sdk'\nimport { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/sdk/bridge-http'\n\nimport { SentinelBuilder } from './SentinelBuilder.ts'\nimport { StorageArchivistBuilder } from './StorageArchivistBuilder.ts'\n\n/** Config for creating or wrapping a {@link MemoryNode} via the builder. */\nexport interface MemoryNodeBuilderConfig {\n  name?: string\n  node?: MemoryNode\n}\n\n/** Fluent builder for attaching archivists, bridges, sentinels, and witnesses to a memory node. */\nexport class MemoryNodeBuilder {\n  private _node: MemoryNode | undefined\n\n  get node() {\n    return assertDefinedEx(this._node, () => 'this._node was not defined upon create')\n  }\n\n  static async create({ name, node }: MemoryNodeBuilderConfig, account?: AccountInstance): Promise<MemoryNodeBuilder> {\n    const instance = new this()\n\n    const memoryNode: MemoryNode = node ?? (await MemoryNode.create({\n      account,\n      config: { name, schema: NodeConfigSchema },\n    }))\n    instance._node = memoryNode\n    return instance\n  }\n\n  /** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */\n  async addArchivist(account: AccountInstance, moduleName?: string, namespace?: string) {\n    await this.addArchivistStorage(account, moduleName, namespace)\n  }\n\n  async addArchivistMemory(moduleName?: string, account?: AccountInstance) {\n    const config: MemoryArchivistConfig = { name: moduleName, schema: MemoryArchivistConfigSchema }\n    const memoryArchivist = await MemoryArchivist.create({ account, config })\n\n    await this.attach(memoryArchivist, true)\n  }\n\n  async addArchivistStorage(account: AccountInstance, moduleName?: string, namespace?: string) {\n    const config = { name: moduleName, namespace }\n    const { archivist } = await StorageArchivistBuilder.create(config, account, this.node)\n\n    await this.attach(archivist, true)\n  }\n\n  async addBridge(apiDomain: string, moduleName = 'RemoteNodeBridge', account?: AccountInstance) {\n    try {\n      const bridge = await HttpBridge.create({\n        account,\n        config: {\n          name: moduleName, client: { url: `${apiDomain}/node` }, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true },\n        },\n      })\n      await this.attach(bridge, true)\n    } catch (e) {\n      console.error('Error Creating Bridge', e)\n    }\n  }\n\n  async addSentinel(config: SentinelConfig, account: AccountInstance) {\n    const { sentinel } = await SentinelBuilder.create(config, account)\n    await this.attach(sentinel, true, true)\n    return sentinel\n  }\n\n  async addWitnesses(pluginSetResolver: PayloadSetPluginResolver, witnesses: (() => Promise<AttachableWitnessInstance>)[] = []) {\n    await Promise.all(\n      pluginSetResolver.witnesses().map(async (pluginSet, index) => {\n        // Pass the prebuilt witness at the same index\n        const witness = await witnesses?.[index]?.()\n        if (witness) {\n          try {\n            await this.witnessCleanup(witness)\n            await this.node.register(witness)\n            await this.node.attach(witness.address, true)\n          } catch (e) {\n            console.error('Error attaching witness', JSON.stringify(pluginSet, null, 2), e)\n          }\n        }\n      }),\n    )\n  }\n\n  async attach(mod: AttachableModuleInstance, external?: boolean, safeAttach?: boolean) {\n    try {\n      if (safeAttach) {\n        const existingModule = (await this.node.resolve(mod.address))\n        if (existingModule) {\n          await this.node.detach(existingModule.address)\n          await this.node.unregister(existingModule)\n        }\n      }\n      await this.node.register(mod)\n      await this.node.attach(mod.address, external)\n    } catch (e) {\n      throw new Error(`Error adding ${mod.config.name ?? mod.address} to MemoryNode`, { cause: e })\n    }\n  }\n\n  private async witnessCleanup(witness: WitnessModule) {\n    if ((await this.node.registered()).includes(witness.address)) {\n      const existingWitness = await this.node.resolve(witness.address)\n      if (existingWitness) {\n        await this.node.unregister(existingWitness)\n      }\n    }\n  }\n}\n", "import { assertDefinedEx } from '@ariestools/sdk'\nimport type {\n  AccountInstance, MemorySentinelParams, SentinelConfig,\n} from '@xyo-network/sdk'\nimport { MemorySentinel } from '@xyo-network/sdk'\n\n/** Builder that creates a memory sentinel from config and account. */\nexport class SentinelBuilder {\n  private _sentinel: MemorySentinel | undefined\n\n  private account: AccountInstance\n  private config: SentinelConfig\n\n  protected constructor(\n    config: SentinelConfig,\n    account: AccountInstance,\n  ) {\n    assertDefinedEx(config, () => 'config was not defined')\n    this.config = config\n    this.account = account\n  }\n\n  get sentinel() {\n    return assertDefinedEx(this._sentinel, () => 'this._sentinel not defined upon create')\n  }\n\n  static async create(config: SentinelConfig, account: AccountInstance): Promise<SentinelBuilder> {\n    const instance = new this(config, account)\n    instance._sentinel = await instance.buildSentinel()\n    return instance\n  }\n\n  async buildSentinel() {\n    const params = this.buildParams()\n    return (await MemorySentinel.create(params))\n  }\n\n  private buildParams(): MemorySentinelParams {\n    return {\n      account: this.account,\n      config: this.config,\n    }\n  }\n}\n", "import { assertDefinedEx } from '@ariestools/sdk'\nimport type { StorageArchivistConfig } from '@xyo-network/archivist-storage'\nimport { StorageArchivist, StorageArchivistConfigSchema } from '@xyo-network/archivist-storage'\nimport type {\n  AccountInstance, ArchivistModuleInstance, MemoryNode,\n} from '@xyo-network/sdk'\nimport { asArchivistInstance, asNodeInstance } from '@xyo-network/sdk'\n\n/** Config for building a storage archivist module. */\nexport interface ArchivistBuilderConfig {\n  name?: string\n  namespace?: string\n}\n/** Builder that creates and configures a storage archivist on a memory node. */\nexport class StorageArchivistBuilder {\n  private _archivist: StorageArchivist | undefined\n  private account: AccountInstance\n  private config: ArchivistBuilderConfig\n  private node?: MemoryNode\n  private remoteArchivist: ArchivistModuleInstance | undefined\n\n  protected constructor(\n    config: ArchivistBuilderConfig,\n    account: AccountInstance,\n    node?: MemoryNode,\n  ) {\n    this.config = config\n    this.account = account\n    this.node = node\n  }\n\n  get archivist(): StorageArchivist {\n    return assertDefinedEx(this._archivist, () => 'archivist was not defined upon create')\n  }\n\n  static async create(config: ArchivistBuilderConfig, account: AccountInstance, node: MemoryNode): Promise<StorageArchivistBuilder> {\n    const instance = new this(config, account, node)\n    instance.remoteArchivist = await instance.findParentArchivist()\n    instance._archivist = await instance.buildArchivist()\n    return instance\n  }\n\n  async buildArchivist(): Promise<StorageArchivist> {\n    const config = this.buildConfig()\n    return (await StorageArchivist.create({ account: this.account, config }))\n  }\n\n  buildConfig(): StorageArchivistConfig {\n    return {\n      name: this.config.name,\n      namespace: this.config.namespace,\n      parents: {\n        commit: this.remoteArchivist ? [this.remoteArchivist?.address] : undefined,\n        read: this.remoteArchivist ? [this.remoteArchivist?.address] : undefined,\n      },\n      schema: StorageArchivistConfigSchema,\n      storeParentReads: true,\n      type: 'local',\n    }\n  }\n\n  async findParentArchivist(): Promise<ArchivistModuleInstance | undefined> {\n    const node = asNodeInstance(this.node, 'node not defined', { required: true })\n    const bridge = (await node.resolve('RemoteNodeBridge'))\n    if (bridge) {\n      try {\n        const archivist = (await bridge.resolve('Archivist'))\n        return asArchivistInstance(archivist)\n      } catch {\n        console.error('Error Resolving Parent Archivist', this.node?.config.name, this.config)\n      }\n    }\n  }\n}\n", "import { assertDefinedEx } from '@ariestools/sdk'\nimport type { MemoryNode, WalletInstance } from '@xyo-network/sdk'\n\nimport { defaultNetworkConfigs } from '#network'\n\nimport { MemoryNodeBuilder } from './Builders/index.ts'\nimport { RemoteNodeArchivistOffsetPaths, RemoteNodeOffsetPaths } from './ModuleAccountPaths.ts'\nimport { RootStorageArchivist } from './ModuleNames.ts'\n\nconst knownRemoteNodes = (): { apiDomain: string; name: string }[] => {\n  const networkNames = defaultNetworkConfigs.map(config => config.name)\n  return networkNames.map((networkName) => {\n    const name = assertDefinedEx<string>(networkName, () => 'missing name in network config')\n    const uri = defaultNetworkConfigs.find(config => config.name === networkName)?.nodes?.find(node => node.type === 'archivist')?.uri\n    const apiDomain = assertDefinedEx<string>(uri, () => 'missing node type \"archivist\" in network config')\n    return {\n      apiDomain,\n      name,\n    }\n  })\n}\n\n/** Builds standard remote memory nodes (bridge + root storage) for each known network. */\nexport const BuildStandardNodes = async (wallet: WalletInstance, onNodeBuilt?: (node: MemoryNode) => void): Promise<MemoryNode[]> => {\n  try {\n    return await Promise.all(\n      knownRemoteNodes().map(async ({ apiDomain, name }) => {\n        const remoteNodeOffset = RemoteNodeOffsetPaths[name]\n        const remoteNodeWallet = await wallet.derivePath?.(remoteNodeOffset)\n\n        const memoryNodeBuilder = await MemoryNodeBuilder.create({ name }, await remoteNodeWallet.derivePath?.('0'))\n        await memoryNodeBuilder.addBridge(apiDomain)\n\n        const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`\n        const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath)\n        await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, 'root')\n\n        const { node } = memoryNodeBuilder\n        assertDefinedEx(node, () => 'Memory Node was not built successfully')\n        onNodeBuilt?.(node)\n\n        return node\n      }),\n    )\n  } catch (e) {\n    throw new Error('Error Creating Known Remote Nodes', { cause: e })\n  }\n}\n", "/** Canonical name for the global standard memory node. */\nexport const GlobalNode = 'GlobalNode'\n\n/** Canonical name for the root storage archivist module. */\nexport const RootStorageArchivist = 'RootStorageArchivist'\n", "import { RootStorageArchivist } from './ModuleNames.ts'\n\n/** Wallet derivation path offset for the global standard node account. */\nexport const GlobalNodeOffsetPath = '15'\n\n/** Wallet derivation path offsets for remote nodes by network name. */\nexport const RemoteNodeOffsetPaths: Record<string, string> = {\n  Kerplunk: '112',\n  Local: '111',\n  Main: '113',\n}\n\n/** Nested wallet path offsets for remote node archivists by network and module name. */\nexport const RemoteNodeArchivistOffsetPaths: Record<string, Record<string, string>> = {\n  Kerplunk: {\n    MemoryNode: '117',\n    [RootStorageArchivist]: '119',\n  },\n  Local: {\n    MemoryNode: '114',\n    [RootStorageArchivist]: '116',\n  },\n  Main: {\n    MemoryNode: '120',\n    [RootStorageArchivist]: '122',\n  },\n}\n", "import { useContextEx } from '@ariestools/sdk-react/shared'\n\nimport { StandardNodesContext } from './Context.ts'\n\n/** Hook that returns standard remote nodes and address lookup from context. */\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n", "import { useMemo } from 'react'\n\nimport { useProvidedNode } from '#node'\n\nimport { useStandardNodes } from '../contexts/index.ts'\n\n/** Returns the address of the standard node matching the given network name. */\nexport const useActiveNodeAddress = (networkName?: string) => {\n  const [node] = useProvidedNode()\n  const { nodes, findAddressByName } = useStandardNodes()\n\n  const activeNodeAddress = useMemo(() => {\n    if (node && nodes && findAddressByName && networkName) {\n      return findAddressByName(networkName)\n    }\n  }, [findAddressByName, networkName, node, nodes])\n\n  return activeNodeAddress\n}\n"],
  "mappings": ";AAAA,SAAS,sBAAsB;AAE/B,SAAgB,gBAAgB;AAEhC,SAAS,kBAAkB;AAC3B,SAAS,2BAA2B;;;ACLpC,SAAS,uBAAuB;AAKzB,IAAM,uBAAuB,gBAAoC;;;ACLxE,SAAS,mBAAAA,wBAAuB;AAChC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAG3B,SAAgB,eAAe;AAE/B,SAAS,wBAAwB;;;ACPjC,SAAS,mBAAAC,wBAAuB;AAIhC;AAAA,EACE;AAAA,EAAiB;AAAA,EAA6B;AAAA,EAAY;AAAA,OACrD;AACP,SAAS,YAAY,8BAA8B;;;ACPnD,SAAS,uBAAuB;AAIhC,SAAS,sBAAsB;AAGxB,IAAM,kBAAN,MAAsB;AAAA,EACnB;AAAA,EAEA;AAAA,EACA;AAAA,EAEE,YACR,QACA,SACA;AACA,oBAAgB,QAAQ,MAAM,wBAAwB;AACtD,SAAK,SAAS;AACd,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,gBAAgB,KAAK,WAAW,MAAM,wCAAwC;AAAA,EACvF;AAAA,EAEA,aAAa,OAAO,QAAwB,SAAoD;AAC9F,UAAM,WAAW,IAAI,KAAK,QAAQ,OAAO;AACzC,aAAS,YAAY,MAAM,SAAS,cAAc;AAClD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gBAAgB;AACpB,UAAM,SAAS,KAAK,YAAY;AAChC,WAAQ,MAAM,eAAe,OAAO,MAAM;AAAA,EAC5C;AAAA,EAEQ,cAAoC;AAC1C,WAAO;AAAA,MACL,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK;AAAA,IACf;AAAA,EACF;AACF;;;AC3CA,SAAS,mBAAAC,wBAAuB;AAEhC,SAAS,kBAAkB,oCAAoC;AAI/D,SAAS,qBAAqB,sBAAsB;AAQ7C,IAAM,0BAAN,MAA8B;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEE,YACR,QACA,SACA,MACA;AACA,SAAK,SAAS;AACd,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,IAAI,YAA8B;AAChC,WAAOA,iBAAgB,KAAK,YAAY,MAAM,uCAAuC;AAAA,EACvF;AAAA,EAEA,aAAa,OAAO,QAAgC,SAA0B,MAAoD;AAChI,UAAM,WAAW,IAAI,KAAK,QAAQ,SAAS,IAAI;AAC/C,aAAS,kBAAkB,MAAM,SAAS,oBAAoB;AAC9D,aAAS,aAAa,MAAM,SAAS,eAAe;AACpD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,iBAA4C;AAChD,UAAM,SAAS,KAAK,YAAY;AAChC,WAAQ,MAAM,iBAAiB,OAAO,EAAE,SAAS,KAAK,SAAS,OAAO,CAAC;AAAA,EACzE;AAAA,EAEA,cAAsC;AACpC,WAAO;AAAA,MACL,MAAM,KAAK,OAAO;AAAA,MAClB,WAAW,KAAK,OAAO;AAAA,MACvB,SAAS;AAAA,QACP,QAAQ,KAAK,kBAAkB,CAAC,KAAK,iBAAiB,OAAO,IAAI;AAAA,QACjE,MAAM,KAAK,kBAAkB,CAAC,KAAK,iBAAiB,OAAO,IAAI;AAAA,MACjE;AAAA,MACA,QAAQ;AAAA,MACR,kBAAkB;AAAA,MAClB,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAM,sBAAoE;AACxE,UAAM,OAAO,eAAe,KAAK,MAAM,oBAAoB,EAAE,UAAU,KAAK,CAAC;AAC7E,UAAM,SAAU,MAAM,KAAK,QAAQ,kBAAkB;AACrD,QAAI,QAAQ;AACV,UAAI;AACF,cAAM,YAAa,MAAM,OAAO,QAAQ,WAAW;AACnD,eAAO,oBAAoB,SAAS;AAAA,MACtC,QAAQ;AACN,gBAAQ,MAAM,oCAAoC,KAAK,MAAM,OAAO,MAAM,KAAK,MAAM;AAAA,MACvF;AAAA,IACF;AAAA,EACF;AACF;;;AFtDO,IAAM,oBAAN,MAAwB;AAAA,EACrB;AAAA,EAER,IAAI,OAAO;AACT,WAAOC,iBAAgB,KAAK,OAAO,MAAM,wCAAwC;AAAA,EACnF;AAAA,EAEA,aAAa,OAAO,EAAE,MAAM,KAAK,GAA4B,SAAuD;AAClH,UAAM,WAAW,IAAI,KAAK;AAE1B,UAAM,aAAyB,QAAS,MAAM,WAAW,OAAO;AAAA,MAC9D;AAAA,MACA,QAAQ,EAAE,MAAM,QAAQ,iBAAiB;AAAA,IAC3C,CAAC;AACD,aAAS,QAAQ;AACjB,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,aAAa,SAA0B,YAAqB,WAAoB;AACpF,UAAM,KAAK,oBAAoB,SAAS,YAAY,SAAS;AAAA,EAC/D;AAAA,EAEA,MAAM,mBAAmB,YAAqB,SAA2B;AACvE,UAAM,SAAgC,EAAE,MAAM,YAAY,QAAQ,4BAA4B;AAC9F,UAAM,kBAAkB,MAAM,gBAAgB,OAAO,EAAE,SAAS,OAAO,CAAC;AAExE,UAAM,KAAK,OAAO,iBAAiB,IAAI;AAAA,EACzC;AAAA,EAEA,MAAM,oBAAoB,SAA0B,YAAqB,WAAoB;AAC3F,UAAM,SAAS,EAAE,MAAM,YAAY,UAAU;AAC7C,UAAM,EAAE,UAAU,IAAI,MAAM,wBAAwB,OAAO,QAAQ,SAAS,KAAK,IAAI;AAErF,UAAM,KAAK,OAAO,WAAW,IAAI;AAAA,EACnC;AAAA,EAEA,MAAM,UAAU,WAAmB,aAAa,oBAAoB,SAA2B;AAC7F,QAAI;AACF,YAAM,SAAS,MAAM,WAAW,OAAO;AAAA,QACrC;AAAA,QACA,QAAQ;AAAA,UACN,MAAM;AAAA,UAAY,QAAQ,EAAE,KAAK,GAAG,SAAS,QAAQ;AAAA,UAAG,QAAQ;AAAA,UAAwB,UAAU,EAAE,gBAAgB,KAAK;AAAA,QAC3H;AAAA,MACF,CAAC;AACD,YAAM,KAAK,OAAO,QAAQ,IAAI;AAAA,IAChC,SAAS,GAAG;AACV,cAAQ,MAAM,yBAAyB,CAAC;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,MAAM,YAAY,QAAwB,SAA0B;AAClE,UAAM,EAAE,SAAS,IAAI,MAAM,gBAAgB,OAAO,QAAQ,OAAO;AACjE,UAAM,KAAK,OAAO,UAAU,MAAM,IAAI;AACtC,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,aAAa,mBAA6C,YAA0D,CAAC,GAAG;AAC5H,UAAM,QAAQ;AAAA,MACZ,kBAAkB,UAAU,EAAE,IAAI,OAAO,WAAW,UAAU;AAE5D,cAAM,UAAU,MAAM,YAAY,KAAK,IAAI;AAC3C,YAAI,SAAS;AACX,cAAI;AACF,kBAAM,KAAK,eAAe,OAAO;AACjC,kBAAM,KAAK,KAAK,SAAS,OAAO;AAChC,kBAAM,KAAK,KAAK,OAAO,QAAQ,SAAS,IAAI;AAAA,UAC9C,SAAS,GAAG;AACV,oBAAQ,MAAM,2BAA2B,KAAK,UAAU,WAAW,MAAM,CAAC,GAAG,CAAC;AAAA,UAChF;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,KAA+B,UAAoB,YAAsB;AACpF,QAAI;AACF,UAAI,YAAY;AACd,cAAM,iBAAkB,MAAM,KAAK,KAAK,QAAQ,IAAI,OAAO;AAC3D,YAAI,gBAAgB;AAClB,gBAAM,KAAK,KAAK,OAAO,eAAe,OAAO;AAC7C,gBAAM,KAAK,KAAK,WAAW,cAAc;AAAA,QAC3C;AAAA,MACF;AACA,YAAM,KAAK,KAAK,SAAS,GAAG;AAC5B,YAAM,KAAK,KAAK,OAAO,IAAI,SAAS,QAAQ;AAAA,IAC9C,SAAS,GAAG;AACV,YAAM,IAAI,MAAM,gBAAgB,IAAI,OAAO,QAAQ,IAAI,OAAO,kBAAkB,EAAE,OAAO,EAAE,CAAC;AAAA,IAC9F;AAAA,EACF;AAAA,EAEA,MAAc,eAAe,SAAwB;AACnD,SAAK,MAAM,KAAK,KAAK,WAAW,GAAG,SAAS,QAAQ,OAAO,GAAG;AAC5D,YAAM,kBAAkB,MAAM,KAAK,KAAK,QAAQ,QAAQ,OAAO;AAC/D,UAAI,iBAAiB;AACnB,cAAM,KAAK,KAAK,WAAW,eAAe;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AACF;;;AGtHA,SAAS,mBAAAC,wBAAuB;AAGhC,SAAS,6BAA6B;;;ACF/B,IAAM,aAAa;AAGnB,IAAM,uBAAuB;;;ACD7B,IAAM,uBAAuB;AAG7B,IAAM,wBAAgD;AAAA,EAC3D,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AACR;AAGO,IAAM,iCAAyE;AAAA,EACpF,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,CAAC,oBAAoB,GAAG;AAAA,EAC1B;AAAA,EACA,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,CAAC,oBAAoB,GAAG;AAAA,EAC1B;AAAA,EACA,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,CAAC,oBAAoB,GAAG;AAAA,EAC1B;AACF;;;AFjBA,IAAM,mBAAmB,MAA6C;AACpE,QAAM,eAAe,sBAAsB,IAAI,YAAU,OAAO,IAAI;AACpE,SAAO,aAAa,IAAI,CAAC,gBAAgB;AACvC,UAAM,OAAOC,iBAAwB,aAAa,MAAM,gCAAgC;AACxF,UAAM,MAAM,sBAAsB,KAAK,YAAU,OAAO,SAAS,WAAW,GAAG,OAAO,KAAK,UAAQ,KAAK,SAAS,WAAW,GAAG;AAC/H,UAAM,YAAYA,iBAAwB,KAAK,MAAM,iDAAiD;AACtG,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAGO,IAAM,qBAAqB,OAAO,QAAwB,gBAAoE;AACnI,MAAI;AACF,WAAO,MAAM,QAAQ;AAAA,MACnB,iBAAiB,EAAE,IAAI,OAAO,EAAE,WAAW,KAAK,MAAM;AACpD,cAAM,mBAAmB,sBAAsB,IAAI;AACnD,cAAM,mBAAmB,MAAM,OAAO,aAAa,gBAAgB;AAEnE,cAAM,oBAAoB,MAAM,kBAAkB,OAAO,EAAE,KAAK,GAAG,MAAM,iBAAiB,aAAa,GAAG,CAAC;AAC3G,cAAM,kBAAkB,UAAU,SAAS;AAE3C,cAAM,oBAAoB,GAAG,gBAAgB,IAAI,+BAA+B,IAAI,EAAE,oBAAoB,CAAC;AAC3G,cAAM,uBAAuB,MAAM,OAAO,aAAa,iBAAiB;AACxE,cAAM,kBAAkB,oBAAoB,sBAAsB,sBAAsB,MAAM;AAE9F,cAAM,EAAE,KAAK,IAAI;AACjB,QAAAA,iBAAgB,MAAM,MAAM,wCAAwC;AACpE,sBAAc,IAAI;AAElB,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF,SAAS,GAAG;AACV,UAAM,IAAI,MAAM,qCAAqC,EAAE,OAAO,EAAE,CAAC;AAAA,EACnE;AACF;;;AJKI;AAhCG,IAAM,wBAA8D,CAAC;AAAA,EAC1E;AAAA,EAAU;AAAA,EAAoB;AAChC,MAAM;AACJ,QAAM,CAAC,OAAO,QAAQ,IAAI,cAA2C,kBAAkB;AAEvF,aAAW,YAAY;AACrB,QAAI,QAAQ;AACV,YAAM,mBAAmB,QAAQ,CAAC,SAAqB;AACrD,iBAAS,CAACC,WAAU;AAClB,cAAIA,QAAO,KAAK,kBAAgB,aAAa,OAAO,SAAS,KAAK,OAAO,IAAI,GAAG;AAC9E;AAAA,UACF;AACA,iBAAOA,SAAQ,CAAC,GAAGA,QAAO,IAAI,IAAI,CAAC,IAAI;AAAA,QACzC,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,QAAQ,QAAQ,MAAM;AAC1B,UAAM,oBAAoB,CAAC,SAAkB;AAC3C,YAAM,mBAAmBC,iBAAgB,MAAM,MAAM,sBAAsB;AAC3E,aAAO,OAAO,KAAK,UAAQ,KAAK,OAAO,SAAS,gBAAgB,GAAG;AAAA,IACrE;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAEV,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAGO,IAAM,kCAAwF,CAAC,UAAU;AAC9G,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAC3C,SAAO,oBAAC,yBAAsB,QAAQ,eAAgB,GAAG,OAAO;AAClE;;;AOhEA,SAAS,oBAAoB;AAKtB,IAAM,mBAAmB,CAAC,WAAW,UAAU,aAAa,sBAAsB,iBAAiB,QAAQ;;;ACLlH,SAAS,WAAAC,gBAAe;AAExB,SAAS,uBAAuB;AAKzB,IAAM,uBAAuB,CAAC,gBAAyB;AAC5D,QAAM,CAAC,IAAI,IAAI,gBAAgB;AAC/B,QAAM,EAAE,OAAO,kBAAkB,IAAI,iBAAiB;AAEtD,QAAM,oBAAoBC,SAAQ,MAAM;AACtC,QAAI,QAAQ,SAAS,qBAAqB,aAAa;AACrD,aAAO,kBAAkB,WAAW;AAAA,IACtC;AAAA,EACF,GAAG,CAAC,mBAAmB,aAAa,MAAM,KAAK,CAAC;AAEhD,SAAO;AACT;;;AVgCS,0BAAAC,YAAA;AAlCF,IAAM,qBAAwD,CAAC,EAAE,UAAU,kBAAkB,MAAM;AACxG,QAAM,EAAE,QAAQ,IAAI,WAAW;AAC/B,QAAM,CAAC,IAAI,IAAI,oBAAoB,iBAAiB;AACpD,QAAM,CAAC,yBAAyB,0BAA0B,IAAI,SAAiB;AAC/E,QAAM,EAAE,MAAM,IAAI,iBAAiB;AAEnC,QAAM,sBAAsB,qBAAqB,SAAS,IAAI;AAG9D;AAAA,IACE,OAAO,YAAY;AACjB,YAAM,eAAe,MAAM,MAAM;AACjC,UAAI,gBAAgB,qBAAqB;AACvC,YAAI;AACF,eAAK,MAAM,cAAc,SAAS,IAAI,SAAS,mBAAmB,GAAG;AACnE;AAAA,UACF;AACA,gBAAM,cAAc,OAAO,qBAAqB,IAAI;AAEpD,cAAI,QAAQ,GAAG;AAEb,gBAAI,yBAAyB;AAC3B,oBAAM,cAAc,OAAO,uBAAuB;AAAA,YACpD;AACA,uCAA2B,mBAAmB;AAAA,UAChD;AAAA,QACF,SAAS,GAAG;AACV,kBAAQ,MAAM,yCAAyC,CAAC;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,yBAAyB,MAAM,qBAAqB,KAAK;AAAA,EAC5D;AAEA,SAAO,gBAAAA,KAAA,YAAG,UAAS;AACrB;",
  "names": ["assertDefinedEx", "assertDefinedEx", "assertDefinedEx", "assertDefinedEx", "assertDefinedEx", "assertDefinedEx", "nodes", "assertDefinedEx", "useMemo", "useMemo", "jsx"]
}
