{
  "version": 3,
  "sources": ["../../src/modules/manifest/classes/ManifestNodeBuilder.ts", "../../src/modules/manifest/components/ManifestNodeProvider.tsx", "../../src/modules/manifest/lib/buildManifestNodes.ts"],
  "sourcesContent": ["import { generateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english.js'\nimport type {\n  Manifest, ModuleManifest, PackageManifestPayload, WalletInstance,\n} from '@xyo-network/sdk'\nimport {\n  HDWallet, ManifestWrapper, ModuleFactoryLocator,\n} from '@xyo-network/sdk'\n\nimport type { CreatablePackageManifest } from '../types/index.ts'\n\n/** Builds and loads XYO nodes from creatable package manifests. */\nexport class ManifestNodeBuilder {\n  locatedManifests: Manifest[] = []\n  manifestWrapper: ManifestWrapper<void> | undefined\n\n  private locator: ModuleFactoryLocator\n  private manifestNodes: CreatablePackageManifest[]\n  private topLevelNodeIndex: number\n  private wallet?: WalletInstance\n\n  constructor(\n    manifestNodes?: CreatablePackageManifest[],\n    wallet?: WalletInstance,\n    locator?: ModuleFactoryLocator,\n    topLevelNodeIndex?: number,\n  ) {\n    this.manifestNodes = manifestNodes ?? []\n    this.wallet = wallet\n    this.locator = locator ?? new ModuleFactoryLocator()\n    this.topLevelNodeIndex = topLevelNodeIndex ?? 0\n  }\n\n  async create() {\n    this.locatedManifests = (await Promise.all(this.manifestNodes.map(manifestNode => manifestNode(this.locator).nodes))).flat()\n    return this\n  }\n\n  async loadNodes() {\n    const wallet = this.wallet ?? (await this.randomWallet())\n    const topLevelManifestNode = this.locatedManifests[this.topLevelNodeIndex]\n    const publicChildren = this.locatedManifests.filter(node => node !== topLevelManifestNode) as ModuleManifest[]\n    const wrapper = new ManifestWrapper(topLevelManifestNode as PackageManifestPayload, wallet, this.locator, publicChildren)\n    const [node] = await wrapper.loadNodes()\n    return node\n  }\n\n  async randomWallet() {\n    const mnemonic = generateMnemonic(wordlist, 256)\n    return await HDWallet.fromPhrase(mnemonic)\n  }\n}\n", "import { usePromise } from '@ariestools/sdk-react/promise'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nimport { NodeProvider } from '#node-provider'\n\nimport { buildManifestNodes } from '../lib/index.ts'\nimport type { CreatablePackageManifest } from '../types/index.ts'\n\n/** Props for {@link ManifestNodeProvider}. */\nexport interface ManifestNodeProviderProps extends PropsWithChildren {\n  manifestNodes?: CreatablePackageManifest[]\n}\n\n/** Builds nodes from package manifests and provides them via {@link NodeProvider}. */\nexport const ManifestNodeProvider: React.FC<ManifestNodeProviderProps> = ({ children, manifestNodes }) => {\n  const [indexedResultsNode] = usePromise(async () => await buildManifestNodes(manifestNodes), [manifestNodes])\n\n  return <NodeProvider node={indexedResultsNode}>{children}</NodeProvider>\n}\n", "import { ManifestNodeBuilder } from '../classes/index.ts'\nimport type { CreatablePackageManifest } from '../types/index.ts'\n\n/** Creates and loads XYO nodes from creatable package manifests. */\nexport const buildManifestNodes = async (manifestNodes?: CreatablePackageManifest[]) => {\n  // extract to function to make useful outside of the node provider\n  try {\n    if (manifestNodes) {\n      const manifestNodeBuilder = new ManifestNodeBuilder(manifestNodes)\n      await manifestNodeBuilder.create()\n      return await manifestNodeBuilder.loadNodes()\n    }\n  } catch (e) {\n    console.error('Error creating IndexedResultsNode', e)\n    throw e\n  }\n}\n"],
  "mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AAIzB;AAAA,EACE;AAAA,EAAU;AAAA,EAAiB;AAAA,OACtB;AAKA,IAAM,sBAAN,MAA0B;AAAA,EAC/B,mBAA+B,CAAC;AAAA,EAChC;AAAA,EAEQ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,YACE,eACA,QACA,SACA,mBACA;AACA,SAAK,gBAAgB,iBAAiB,CAAC;AACvC,SAAK,SAAS;AACd,SAAK,UAAU,WAAW,IAAI,qBAAqB;AACnD,SAAK,oBAAoB,qBAAqB;AAAA,EAChD;AAAA,EAEA,MAAM,SAAS;AACb,SAAK,oBAAoB,MAAM,QAAQ,IAAI,KAAK,cAAc,IAAI,kBAAgB,aAAa,KAAK,OAAO,EAAE,KAAK,CAAC,GAAG,KAAK;AAC3H,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY;AAChB,UAAM,SAAS,KAAK,UAAW,MAAM,KAAK,aAAa;AACvD,UAAM,uBAAuB,KAAK,iBAAiB,KAAK,iBAAiB;AACzE,UAAM,iBAAiB,KAAK,iBAAiB,OAAO,CAAAA,UAAQA,UAAS,oBAAoB;AACzF,UAAM,UAAU,IAAI,gBAAgB,sBAAgD,QAAQ,KAAK,SAAS,cAAc;AACxH,UAAM,CAAC,IAAI,IAAI,MAAM,QAAQ,UAAU;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,eAAe;AACnB,UAAM,WAAW,iBAAiB,UAAU,GAAG;AAC/C,WAAO,MAAM,SAAS,WAAW,QAAQ;AAAA,EAC3C;AACF;;;ACnDA,SAAS,kBAAkB;AAI3B,SAAS,oBAAoB;;;ACAtB,IAAM,qBAAqB,OAAO,kBAA+C;AAEtF,MAAI;AACF,QAAI,eAAe;AACjB,YAAM,sBAAsB,IAAI,oBAAoB,aAAa;AACjE,YAAM,oBAAoB,OAAO;AACjC,aAAO,MAAM,oBAAoB,UAAU;AAAA,IAC7C;AAAA,EACF,SAAS,GAAG;AACV,YAAQ,MAAM,qCAAqC,CAAC;AACpD,UAAM;AAAA,EACR;AACF;;;ADES;AAHF,IAAM,uBAA4D,CAAC,EAAE,UAAU,cAAc,MAAM;AACxG,QAAM,CAAC,kBAAkB,IAAI,WAAW,YAAY,MAAM,mBAAmB,aAAa,GAAG,CAAC,aAAa,CAAC;AAE5G,SAAO,oBAAC,gBAAa,MAAM,oBAAqB,UAAS;AAC3D;",
  "names": ["node"]
}
