@xyo-network/react-standard-node 2.67.5 → 2.67.7

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.
Files changed (49) hide show
  1. package/dist/browser/index.cjs +4 -4
  2. package/dist/browser/index.cjs.map +1 -1
  3. package/dist/browser/index.js +4 -4
  4. package/dist/browser/index.js.map +1 -1
  5. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.cts +44 -1194
  6. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.cts.map +1 -1
  7. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.mts +44 -1194
  8. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.mts.map +1 -1
  9. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.ts +44 -1194
  10. package/dist/browser/lib/Builders/MemoryNodeBuilder.d.ts.map +1 -1
  11. package/dist/browser/lib/Builders/SentinelBuilder.d.cts +42 -1614
  12. package/dist/browser/lib/Builders/SentinelBuilder.d.cts.map +1 -1
  13. package/dist/browser/lib/Builders/SentinelBuilder.d.mts +42 -1614
  14. package/dist/browser/lib/Builders/SentinelBuilder.d.mts.map +1 -1
  15. package/dist/browser/lib/Builders/SentinelBuilder.d.ts +42 -1614
  16. package/dist/browser/lib/Builders/SentinelBuilder.d.ts.map +1 -1
  17. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.cts +31 -1393
  18. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.cts.map +1 -1
  19. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.mts +31 -1393
  20. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.mts.map +1 -1
  21. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.ts +31 -1393
  22. package/dist/browser/lib/Builders/StorageArchivistBuilder.d.ts.map +1 -1
  23. package/dist/node/index.cjs +5 -5
  24. package/dist/node/index.cjs.map +1 -1
  25. package/dist/node/index.js +5 -5
  26. package/dist/node/index.js.map +1 -1
  27. package/dist/node/lib/Builders/MemoryNodeBuilder.d.cts +44 -1194
  28. package/dist/node/lib/Builders/MemoryNodeBuilder.d.cts.map +1 -1
  29. package/dist/node/lib/Builders/MemoryNodeBuilder.d.mts +44 -1194
  30. package/dist/node/lib/Builders/MemoryNodeBuilder.d.mts.map +1 -1
  31. package/dist/node/lib/Builders/MemoryNodeBuilder.d.ts +44 -1194
  32. package/dist/node/lib/Builders/MemoryNodeBuilder.d.ts.map +1 -1
  33. package/dist/node/lib/Builders/SentinelBuilder.d.cts +42 -1614
  34. package/dist/node/lib/Builders/SentinelBuilder.d.cts.map +1 -1
  35. package/dist/node/lib/Builders/SentinelBuilder.d.mts +42 -1614
  36. package/dist/node/lib/Builders/SentinelBuilder.d.mts.map +1 -1
  37. package/dist/node/lib/Builders/SentinelBuilder.d.ts +42 -1614
  38. package/dist/node/lib/Builders/SentinelBuilder.d.ts.map +1 -1
  39. package/dist/node/lib/Builders/StorageArchivistBuilder.d.cts +31 -1393
  40. package/dist/node/lib/Builders/StorageArchivistBuilder.d.cts.map +1 -1
  41. package/dist/node/lib/Builders/StorageArchivistBuilder.d.mts +31 -1393
  42. package/dist/node/lib/Builders/StorageArchivistBuilder.d.mts.map +1 -1
  43. package/dist/node/lib/Builders/StorageArchivistBuilder.d.ts +31 -1393
  44. package/dist/node/lib/Builders/StorageArchivistBuilder.d.ts.map +1 -1
  45. package/package.json +18 -18
  46. package/src/contexts/StandardRemoteNodes/Providers.tsx +1 -1
  47. package/src/lib/Builders/MemoryNodeBuilder.ts +1 -1
  48. package/src/lib/Builders/StorageArchivistBuilder.ts +1 -1
  49. package/src/lib/buildNodes.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"StorageArchivistBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/StorageArchivistBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StorageArchivistBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/StorageArchivistBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAwC,gBAAgB,EAAE,sBAAsB,EAAgC,MAAM,wBAAwB,CAAA;AACrJ,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAIrD,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AACD,qBAAa,uBAAuB;IAKhC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI,CAAC;IANf,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,eAAe,CAA6B;IAEpD,SAAS,aACC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,eAAe,EACxB,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEAAY;IAG3B,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEAEZ;WAEY,MAAM,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAO3H,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKpB,WAAW,IAAI,sBAAsB;IAc/B,mBAAmB;CAY1B"}
@@ -138,7 +138,7 @@ var StorageArchivistBuilder = class {
138
138
  try {
139
139
  const [archivist] = await bridge.resolve({ name: ["Archivist"] }) ?? [];
140
140
  return (0, import_archivist.asArchivistInstance)(archivist);
141
- } catch (e) {
141
+ } catch {
142
142
  console.error("Error Resolving Parent Archivist", (_a = this.node) == null ? void 0 : _a.config.name, this.config);
143
143
  }
144
144
  }
@@ -216,7 +216,7 @@ var MemoryNodeBuilder = class {
216
216
  await this.node.register(module2);
217
217
  await this.node.attach(module2.address, external);
218
218
  } catch (e) {
219
- throw Error(`Error adding ${module2.config.name ?? module2.address} to MemoryNode: ${e}`);
219
+ throw new Error(`Error adding ${module2.config.name ?? module2.address} to MemoryNode: ${e}`);
220
220
  }
221
221
  }
222
222
  async witnessCleanup(witness) {
@@ -261,9 +261,9 @@ var RemoteNodeArchivistOffsetPaths = {
261
261
  var knownRemoteNodes = () => {
262
262
  const networkNames = import_react_network.defaultNetworkConfigs.map((config) => config.name);
263
263
  return networkNames.map((networkName) => {
264
- var _a;
264
+ var _a, _b;
265
265
  const name = (0, import_react_shared5.assertDefinedEx)(networkName, "missing name in network config");
266
- const uri = (_a = import_react_network.defaultNetworkConfigs.filter((config) => config.name === networkName)[0].nodes) == null ? void 0 : _a.filter((node) => node.type === "archivist")[0].uri;
266
+ const uri = (_b = (_a = import_react_network.defaultNetworkConfigs.find((config) => config.name === networkName)) == null ? void 0 : _a.nodes) == null ? void 0 : _b.filter((node) => node.type === "archivist")[0].uri;
267
267
  const apiDomain = (0, import_react_shared5.assertDefinedEx)(uri, 'missing node type "archivist" in network config');
268
268
  return {
269
269
  apiDomain,
@@ -306,7 +306,7 @@ var StandardNodesProvider = ({ children, defaultRemoteNodes, wallet }) => {
306
306
  await BuildStandardNodes(wallet, (node) => {
307
307
  setNodes((nodes2) => {
308
308
  if (nodes2 == null ? void 0 : nodes2.find((existingNode) => existingNode.config.name === node.config.name)) {
309
- return void 0;
309
+ return;
310
310
  }
311
311
  return nodes2 ? [...nodes2, node] : [node];
312
312
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/components/ActiveStandardNode.tsx","../../src/contexts/StandardRemoteNodes/Context.ts","../../src/contexts/StandardRemoteNodes/Providers.tsx","../../src/lib/Builders/MemoryNodeBuilder.ts","../../src/lib/Builders/SentinelBuilder.ts","../../src/lib/Builders/StorageArchivistBuilder.ts","../../src/lib/buildNodes.ts","../../src/lib/ModuleNames.ts","../../src/lib/ModuleAccountPaths.ts","../../src/contexts/StandardRemoteNodes/use.tsx","../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["export * from './components'\nexport * from './contexts'\nexport * from './hooks'\nexport * from './lib'\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useNodeFromNode } from '@xyo-network/react-node'\nimport { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts'\nimport { useActiveNodeAddress } from '../hooks'\n\nexport interface ActiveStandardNodeProps extends WithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = useNodeFromNode(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 // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (node && selectedNodeAddress) {\n try {\n if ((await node?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await node?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await node?.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 '@xyo-network/react-shared'\n\nimport { StandardNodesState } from './State'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { usePromise } from '@xylabs/react-promise'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { useWalletContext } from '@xyo-network/react-wallet'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useEffect, useState } from 'react'\n\nimport { BuildStandardNodes } from '../../lib'\nimport { StandardNodesContext } from './Context'\nimport { StandardNodesState } from './State'\n\nexport interface StandardNodesProviderProps extends WithChildren {\n defaultRemoteNodes?: StandardNodesState['nodes']\n wallet?: WalletInstance | null\n}\n\nexport const StandardNodesProvider: React.FC<StandardNodesProviderProps> = ({ children, defaultRemoteNodes, wallet }) => {\n const [nodes, setNodes] = useState<StandardNodesState['nodes']>(defaultRemoteNodes)\n\n useEffect(() => {\n setNodes(defaultRemoteNodes)\n }, [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 undefined\n }\n return nodes ? [...nodes, node] : [node]\n })\n })\n }\n }, [wallet])\n\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 <StandardNodesContext.Provider\n value={{\n findAddressByName,\n nodes,\n provided: true,\n }}\n >\n {children}\n </StandardNodesContext.Provider>\n )\n}\n\nexport const StandardNodesProviderWithWallet: React.FC<Omit<StandardNodesProviderProps, 'wallet'>> = (props) => {\n const { activeAccount } = useWalletContext()\n return <StandardNodesProvider wallet={activeAccount} {...props} />\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { MemoryArchivist, MemoryArchivistConfig, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/http-bridge'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { SentinelConfig } from '@xyo-network/sentinel'\nimport { WitnessInstance, WitnessModule } from '@xyo-network/witness-model'\n\nimport { SentinelBuilder } from './SentinelBuilder'\nimport { StorageArchivistBuilder } from './StorageArchivistBuilder'\n\nexport interface MemoryNodeBuilderConfig {\n name?: string\n node?: MemoryNode\n}\n\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({ account, config: { name, schema: NodeConfigSchema } }))\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: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } },\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<WitnessInstance>)[] = []) {\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(module: ModuleInstance, external?: boolean, safeAttach?: boolean) {\n try {\n if (safeAttach) {\n const existingModule = (await this.node.resolve({ address: [module.address] })).pop()\n if (existingModule) {\n await this.node.detach(existingModule.address)\n await this.node.unregister(existingModule)\n }\n }\n await this.node.register(module)\n await this.node.attach(module.address, external)\n } catch (e) {\n throw Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`)\n }\n }\n\n private async witnessCleanup(witness: WitnessModule) {\n if (this.node.registered().includes(witness.address)) {\n const [existingWitness] = await this.node.resolve({ address: [witness.address] })\n await this.node.unregister(existingWitness)\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { MemorySentinel, MemorySentinelParams, SentinelConfig } from '@xyo-network/sentinel'\n\nexport class SentinelBuilder {\n private _sentinel: MemorySentinel | undefined\n\n protected constructor(\n private config: SentinelConfig,\n private account: AccountInstance,\n ) {\n assertDefinedEx(config, 'config was not defined')\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)) as MemorySentinel\n }\n\n private buildParams(): MemorySentinelParams {\n return {\n account: this.account,\n config: this.config,\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { ArchivistModule, asArchivistInstance, StorageArchivist, StorageArchivistConfig, StorageArchivistConfigSchema } from '@xyo-network/archivist'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { asNodeInstance } from '@xyo-network/node-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport interface ArchivistBuilderConfig {\n name?: string\n namespace?: string\n}\nexport class StorageArchivistBuilder {\n private _archivist: StorageArchivist | undefined\n private remoteArchivist: ArchivistModule | undefined\n\n protected constructor(\n private config: ArchivistBuilderConfig,\n private account: AccountInstance,\n private node?: MemoryNode,\n ) {}\n\n get archivist() {\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() {\n const config = this.buildConfig()\n return (await StorageArchivist.create({ account: this.account, config })) as StorageArchivist\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() {\n const node = asNodeInstance(this.node, 'node not defined')\n const [bridge] = (await node.resolve({ name: ['RemoteNodeBridge'] })) ?? []\n if (bridge) {\n try {\n const [archivist] = (await bridge.resolve({ name: ['Archivist'] })) ?? []\n return asArchivistInstance(archivist)\n } catch (e) {\n console.error('Error Resolving Parent Archivist', this.node?.config.name, this.config)\n }\n }\n }\n}\n","import { MemoryNode } from '@xyo-network/node-memory'\nimport { defaultNetworkConfigs } from '@xyo-network/react-network'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { MemoryNodeBuilder } from './Builders'\nimport { RemoteNodeArchivistOffsetPaths, RemoteNodeOffsetPaths } from './ModuleAccountPaths'\nimport { RootStorageArchivist } from './ModuleNames'\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.filter((config) => config.name === networkName)[0].nodes?.filter((node) => node.type === 'archivist')[0].uri\n const apiDomain = assertDefinedEx<string>(uri, 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\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: ${e}`)\n }\n}\n","export const GlobalNode = 'GlobalNode'\n\nexport const RootStorageArchivist = 'RootStorageArchivist'\n","import { RootStorageArchivist } from './ModuleNames'\n\nexport const GlobalNodeOffsetPath = '15'\n\nexport const RemoteNodeOffsetPaths: Record<string, string> = {\n Kerplunk: '112',\n Local: '111',\n Main: '113',\n}\n\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 '@xyo-network/react-shared'\n\nimport { StandardNodesContext } from './Context'\n\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n","import { useProvidedNode } from '@xyo-network/react-node'\nimport { useMemo } from 'react'\n\nimport { useStandardNodes } from '../contexts'\n\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":"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","names":["import_react_network","import_react_node","import_react","import_react_shared","import_archivist","import_node_model","import_react_shared","import_react_shared","import_react_shared","module","import_react_shared","nodes","import_react_shared","import_react","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/components/ActiveStandardNode.tsx","../../src/contexts/StandardRemoteNodes/Context.ts","../../src/contexts/StandardRemoteNodes/Providers.tsx","../../src/lib/Builders/MemoryNodeBuilder.ts","../../src/lib/Builders/SentinelBuilder.ts","../../src/lib/Builders/StorageArchivistBuilder.ts","../../src/lib/buildNodes.ts","../../src/lib/ModuleNames.ts","../../src/lib/ModuleAccountPaths.ts","../../src/contexts/StandardRemoteNodes/use.tsx","../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["export * from './components'\nexport * from './contexts'\nexport * from './hooks'\nexport * from './lib'\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useNodeFromNode } from '@xyo-network/react-node'\nimport { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts'\nimport { useActiveNodeAddress } from '../hooks'\n\nexport interface ActiveStandardNodeProps extends WithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = useNodeFromNode(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 // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (node && selectedNodeAddress) {\n try {\n if ((await node?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await node?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await node?.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 '@xyo-network/react-shared'\n\nimport { StandardNodesState } from './State'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { usePromise } from '@xylabs/react-promise'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { useWalletContext } from '@xyo-network/react-wallet'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useEffect, useState } from 'react'\n\nimport { BuildStandardNodes } from '../../lib'\nimport { StandardNodesContext } from './Context'\nimport { StandardNodesState } from './State'\n\nexport interface StandardNodesProviderProps extends WithChildren {\n defaultRemoteNodes?: StandardNodesState['nodes']\n wallet?: WalletInstance | null\n}\n\nexport const StandardNodesProvider: React.FC<StandardNodesProviderProps> = ({ children, defaultRemoteNodes, wallet }) => {\n const [nodes, setNodes] = useState<StandardNodesState['nodes']>(defaultRemoteNodes)\n\n useEffect(() => {\n setNodes(defaultRemoteNodes)\n }, [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 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 <StandardNodesContext.Provider\n value={{\n findAddressByName,\n nodes,\n provided: true,\n }}\n >\n {children}\n </StandardNodesContext.Provider>\n )\n}\n\nexport const StandardNodesProviderWithWallet: React.FC<Omit<StandardNodesProviderProps, 'wallet'>> = (props) => {\n const { activeAccount } = useWalletContext()\n return <StandardNodesProvider wallet={activeAccount} {...props} />\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { MemoryArchivist, MemoryArchivistConfig, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/http-bridge'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { SentinelConfig } from '@xyo-network/sentinel'\nimport { WitnessInstance, WitnessModule } from '@xyo-network/witness-model'\n\nimport { SentinelBuilder } from './SentinelBuilder'\nimport { StorageArchivistBuilder } from './StorageArchivistBuilder'\n\nexport interface MemoryNodeBuilderConfig {\n name?: string\n node?: MemoryNode\n}\n\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({ account, config: { name, schema: NodeConfigSchema } }))\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: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } },\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<WitnessInstance>)[] = []) {\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(module: ModuleInstance, external?: boolean, safeAttach?: boolean) {\n try {\n if (safeAttach) {\n const existingModule = (await this.node.resolve({ address: [module.address] })).pop()\n if (existingModule) {\n await this.node.detach(existingModule.address)\n await this.node.unregister(existingModule)\n }\n }\n await this.node.register(module)\n await this.node.attach(module.address, external)\n } catch (e) {\n throw new Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`)\n }\n }\n\n private async witnessCleanup(witness: WitnessModule) {\n if (this.node.registered().includes(witness.address)) {\n const [existingWitness] = await this.node.resolve({ address: [witness.address] })\n await this.node.unregister(existingWitness)\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { MemorySentinel, MemorySentinelParams, SentinelConfig } from '@xyo-network/sentinel'\n\nexport class SentinelBuilder {\n private _sentinel: MemorySentinel | undefined\n\n protected constructor(\n private config: SentinelConfig,\n private account: AccountInstance,\n ) {\n assertDefinedEx(config, 'config was not defined')\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)) as MemorySentinel\n }\n\n private buildParams(): MemorySentinelParams {\n return {\n account: this.account,\n config: this.config,\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { ArchivistModule, asArchivistInstance, StorageArchivist, StorageArchivistConfig, StorageArchivistConfigSchema } from '@xyo-network/archivist'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { asNodeInstance } from '@xyo-network/node-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport interface ArchivistBuilderConfig {\n name?: string\n namespace?: string\n}\nexport class StorageArchivistBuilder {\n private _archivist: StorageArchivist | undefined\n private remoteArchivist: ArchivistModule | undefined\n\n protected constructor(\n private config: ArchivistBuilderConfig,\n private account: AccountInstance,\n private node?: MemoryNode,\n ) {}\n\n get archivist() {\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() {\n const config = this.buildConfig()\n return (await StorageArchivist.create({ account: this.account, config })) as StorageArchivist\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() {\n const node = asNodeInstance(this.node, 'node not defined')\n const [bridge] = (await node.resolve({ name: ['RemoteNodeBridge'] })) ?? []\n if (bridge) {\n try {\n const [archivist] = (await bridge.resolve({ name: ['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 { MemoryNode } from '@xyo-network/node-memory'\nimport { defaultNetworkConfigs } from '@xyo-network/react-network'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { MemoryNodeBuilder } from './Builders'\nimport { RemoteNodeArchivistOffsetPaths, RemoteNodeOffsetPaths } from './ModuleAccountPaths'\nimport { RootStorageArchivist } from './ModuleNames'\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?.filter((node) => node.type === 'archivist')[0].uri\n const apiDomain = assertDefinedEx<string>(uri, 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\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: ${e}`)\n }\n}\n","export const GlobalNode = 'GlobalNode'\n\nexport const RootStorageArchivist = 'RootStorageArchivist'\n","import { RootStorageArchivist } from './ModuleNames'\n\nexport const GlobalNodeOffsetPath = '15'\n\nexport const RemoteNodeOffsetPaths: Record<string, string> = {\n Kerplunk: '112',\n Local: '111',\n Main: '113',\n}\n\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 '@xyo-network/react-shared'\n\nimport { StandardNodesContext } from './Context'\n\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n","import { useProvidedNode } from '@xyo-network/react-node'\nimport { useMemo } from 'react'\n\nimport { useStandardNodes } from '../contexts'\n\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":"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","names":["import_react_network","import_react_node","import_react","import_react_shared","import_archivist","import_node_model","import_react_shared","import_react_shared","import_react_shared","module","import_react_shared","nodes","import_react_shared","import_react","import_jsx_runtime"]}
@@ -98,7 +98,7 @@ var StorageArchivistBuilder = class {
98
98
  try {
99
99
  const [archivist] = await bridge.resolve({ name: ["Archivist"] }) ?? [];
100
100
  return asArchivistInstance(archivist);
101
- } catch (e) {
101
+ } catch {
102
102
  console.error("Error Resolving Parent Archivist", (_a = this.node) == null ? void 0 : _a.config.name, this.config);
103
103
  }
104
104
  }
@@ -176,7 +176,7 @@ var MemoryNodeBuilder = class {
176
176
  await this.node.register(module);
177
177
  await this.node.attach(module.address, external);
178
178
  } catch (e) {
179
- throw Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`);
179
+ throw new Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`);
180
180
  }
181
181
  }
182
182
  async witnessCleanup(witness) {
@@ -221,9 +221,9 @@ var RemoteNodeArchivistOffsetPaths = {
221
221
  var knownRemoteNodes = () => {
222
222
  const networkNames = defaultNetworkConfigs.map((config) => config.name);
223
223
  return networkNames.map((networkName) => {
224
- var _a;
224
+ var _a, _b;
225
225
  const name = assertDefinedEx4(networkName, "missing name in network config");
226
- const uri = (_a = defaultNetworkConfigs.filter((config) => config.name === networkName)[0].nodes) == null ? void 0 : _a.filter((node) => node.type === "archivist")[0].uri;
226
+ const uri = (_b = (_a = defaultNetworkConfigs.find((config) => config.name === networkName)) == null ? void 0 : _a.nodes) == null ? void 0 : _b.filter((node) => node.type === "archivist")[0].uri;
227
227
  const apiDomain = assertDefinedEx4(uri, 'missing node type "archivist" in network config');
228
228
  return {
229
229
  apiDomain,
@@ -266,7 +266,7 @@ var StandardNodesProvider = ({ children, defaultRemoteNodes, wallet }) => {
266
266
  await BuildStandardNodes(wallet, (node) => {
267
267
  setNodes((nodes2) => {
268
268
  if (nodes2 == null ? void 0 : nodes2.find((existingNode) => existingNode.config.name === node.config.name)) {
269
- return void 0;
269
+ return;
270
270
  }
271
271
  return nodes2 ? [...nodes2, node] : [node];
272
272
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ActiveStandardNode.tsx","../../src/contexts/StandardRemoteNodes/Context.ts","../../src/contexts/StandardRemoteNodes/Providers.tsx","../../src/lib/Builders/MemoryNodeBuilder.ts","../../src/lib/Builders/SentinelBuilder.ts","../../src/lib/Builders/StorageArchivistBuilder.ts","../../src/lib/buildNodes.ts","../../src/lib/ModuleNames.ts","../../src/lib/ModuleAccountPaths.ts","../../src/contexts/StandardRemoteNodes/use.tsx","../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useNodeFromNode } from '@xyo-network/react-node'\nimport { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts'\nimport { useActiveNodeAddress } from '../hooks'\n\nexport interface ActiveStandardNodeProps extends WithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = useNodeFromNode(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 // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (node && selectedNodeAddress) {\n try {\n if ((await node?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await node?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await node?.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 '@xyo-network/react-shared'\n\nimport { StandardNodesState } from './State'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { usePromise } from '@xylabs/react-promise'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { useWalletContext } from '@xyo-network/react-wallet'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useEffect, useState } from 'react'\n\nimport { BuildStandardNodes } from '../../lib'\nimport { StandardNodesContext } from './Context'\nimport { StandardNodesState } from './State'\n\nexport interface StandardNodesProviderProps extends WithChildren {\n defaultRemoteNodes?: StandardNodesState['nodes']\n wallet?: WalletInstance | null\n}\n\nexport const StandardNodesProvider: React.FC<StandardNodesProviderProps> = ({ children, defaultRemoteNodes, wallet }) => {\n const [nodes, setNodes] = useState<StandardNodesState['nodes']>(defaultRemoteNodes)\n\n useEffect(() => {\n setNodes(defaultRemoteNodes)\n }, [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 undefined\n }\n return nodes ? [...nodes, node] : [node]\n })\n })\n }\n }, [wallet])\n\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 <StandardNodesContext.Provider\n value={{\n findAddressByName,\n nodes,\n provided: true,\n }}\n >\n {children}\n </StandardNodesContext.Provider>\n )\n}\n\nexport const StandardNodesProviderWithWallet: React.FC<Omit<StandardNodesProviderProps, 'wallet'>> = (props) => {\n const { activeAccount } = useWalletContext()\n return <StandardNodesProvider wallet={activeAccount} {...props} />\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { MemoryArchivist, MemoryArchivistConfig, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/http-bridge'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { SentinelConfig } from '@xyo-network/sentinel'\nimport { WitnessInstance, WitnessModule } from '@xyo-network/witness-model'\n\nimport { SentinelBuilder } from './SentinelBuilder'\nimport { StorageArchivistBuilder } from './StorageArchivistBuilder'\n\nexport interface MemoryNodeBuilderConfig {\n name?: string\n node?: MemoryNode\n}\n\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({ account, config: { name, schema: NodeConfigSchema } }))\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: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } },\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<WitnessInstance>)[] = []) {\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(module: ModuleInstance, external?: boolean, safeAttach?: boolean) {\n try {\n if (safeAttach) {\n const existingModule = (await this.node.resolve({ address: [module.address] })).pop()\n if (existingModule) {\n await this.node.detach(existingModule.address)\n await this.node.unregister(existingModule)\n }\n }\n await this.node.register(module)\n await this.node.attach(module.address, external)\n } catch (e) {\n throw Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`)\n }\n }\n\n private async witnessCleanup(witness: WitnessModule) {\n if (this.node.registered().includes(witness.address)) {\n const [existingWitness] = await this.node.resolve({ address: [witness.address] })\n await this.node.unregister(existingWitness)\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { MemorySentinel, MemorySentinelParams, SentinelConfig } from '@xyo-network/sentinel'\n\nexport class SentinelBuilder {\n private _sentinel: MemorySentinel | undefined\n\n protected constructor(\n private config: SentinelConfig,\n private account: AccountInstance,\n ) {\n assertDefinedEx(config, 'config was not defined')\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)) as MemorySentinel\n }\n\n private buildParams(): MemorySentinelParams {\n return {\n account: this.account,\n config: this.config,\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { ArchivistModule, asArchivistInstance, StorageArchivist, StorageArchivistConfig, StorageArchivistConfigSchema } from '@xyo-network/archivist'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { asNodeInstance } from '@xyo-network/node-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport interface ArchivistBuilderConfig {\n name?: string\n namespace?: string\n}\nexport class StorageArchivistBuilder {\n private _archivist: StorageArchivist | undefined\n private remoteArchivist: ArchivistModule | undefined\n\n protected constructor(\n private config: ArchivistBuilderConfig,\n private account: AccountInstance,\n private node?: MemoryNode,\n ) {}\n\n get archivist() {\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() {\n const config = this.buildConfig()\n return (await StorageArchivist.create({ account: this.account, config })) as StorageArchivist\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() {\n const node = asNodeInstance(this.node, 'node not defined')\n const [bridge] = (await node.resolve({ name: ['RemoteNodeBridge'] })) ?? []\n if (bridge) {\n try {\n const [archivist] = (await bridge.resolve({ name: ['Archivist'] })) ?? []\n return asArchivistInstance(archivist)\n } catch (e) {\n console.error('Error Resolving Parent Archivist', this.node?.config.name, this.config)\n }\n }\n }\n}\n","import { MemoryNode } from '@xyo-network/node-memory'\nimport { defaultNetworkConfigs } from '@xyo-network/react-network'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { MemoryNodeBuilder } from './Builders'\nimport { RemoteNodeArchivistOffsetPaths, RemoteNodeOffsetPaths } from './ModuleAccountPaths'\nimport { RootStorageArchivist } from './ModuleNames'\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.filter((config) => config.name === networkName)[0].nodes?.filter((node) => node.type === 'archivist')[0].uri\n const apiDomain = assertDefinedEx<string>(uri, 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\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: ${e}`)\n }\n}\n","export const GlobalNode = 'GlobalNode'\n\nexport const RootStorageArchivist = 'RootStorageArchivist'\n","import { RootStorageArchivist } from './ModuleNames'\n\nexport const GlobalNodeOffsetPath = '15'\n\nexport const RemoteNodeOffsetPaths: Record<string, string> = {\n Kerplunk: '112',\n Local: '111',\n Main: '113',\n}\n\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 '@xyo-network/react-shared'\n\nimport { StandardNodesContext } from './Context'\n\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n","import { useProvidedNode } from '@xyo-network/react-node'\nimport { useMemo } from 'react'\n\nimport { useStandardNodes } from '../contexts'\n\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":"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","names":["useState","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","nodes","assertDefinedEx","jsx","useState"]}
1
+ {"version":3,"sources":["../../src/components/ActiveStandardNode.tsx","../../src/contexts/StandardRemoteNodes/Context.ts","../../src/contexts/StandardRemoteNodes/Providers.tsx","../../src/lib/Builders/MemoryNodeBuilder.ts","../../src/lib/Builders/SentinelBuilder.ts","../../src/lib/Builders/StorageArchivistBuilder.ts","../../src/lib/buildNodes.ts","../../src/lib/ModuleNames.ts","../../src/lib/ModuleAccountPaths.ts","../../src/contexts/StandardRemoteNodes/use.tsx","../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useNodeFromNode } from '@xyo-network/react-node'\nimport { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts'\nimport { useActiveNodeAddress } from '../hooks'\n\nexport interface ActiveStandardNodeProps extends WithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = useNodeFromNode(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 // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (node && selectedNodeAddress) {\n try {\n if ((await node?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await node?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await node?.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 '@xyo-network/react-shared'\n\nimport { StandardNodesState } from './State'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { usePromise } from '@xylabs/react-promise'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { useWalletContext } from '@xyo-network/react-wallet'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useEffect, useState } from 'react'\n\nimport { BuildStandardNodes } from '../../lib'\nimport { StandardNodesContext } from './Context'\nimport { StandardNodesState } from './State'\n\nexport interface StandardNodesProviderProps extends WithChildren {\n defaultRemoteNodes?: StandardNodesState['nodes']\n wallet?: WalletInstance | null\n}\n\nexport const StandardNodesProvider: React.FC<StandardNodesProviderProps> = ({ children, defaultRemoteNodes, wallet }) => {\n const [nodes, setNodes] = useState<StandardNodesState['nodes']>(defaultRemoteNodes)\n\n useEffect(() => {\n setNodes(defaultRemoteNodes)\n }, [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 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 <StandardNodesContext.Provider\n value={{\n findAddressByName,\n nodes,\n provided: true,\n }}\n >\n {children}\n </StandardNodesContext.Provider>\n )\n}\n\nexport const StandardNodesProviderWithWallet: React.FC<Omit<StandardNodesProviderProps, 'wallet'>> = (props) => {\n const { activeAccount } = useWalletContext()\n return <StandardNodesProvider wallet={activeAccount} {...props} />\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { MemoryArchivist, MemoryArchivistConfig, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/http-bridge'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { SentinelConfig } from '@xyo-network/sentinel'\nimport { WitnessInstance, WitnessModule } from '@xyo-network/witness-model'\n\nimport { SentinelBuilder } from './SentinelBuilder'\nimport { StorageArchivistBuilder } from './StorageArchivistBuilder'\n\nexport interface MemoryNodeBuilderConfig {\n name?: string\n node?: MemoryNode\n}\n\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({ account, config: { name, schema: NodeConfigSchema } }))\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: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } },\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<WitnessInstance>)[] = []) {\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(module: ModuleInstance, external?: boolean, safeAttach?: boolean) {\n try {\n if (safeAttach) {\n const existingModule = (await this.node.resolve({ address: [module.address] })).pop()\n if (existingModule) {\n await this.node.detach(existingModule.address)\n await this.node.unregister(existingModule)\n }\n }\n await this.node.register(module)\n await this.node.attach(module.address, external)\n } catch (e) {\n throw new Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`)\n }\n }\n\n private async witnessCleanup(witness: WitnessModule) {\n if (this.node.registered().includes(witness.address)) {\n const [existingWitness] = await this.node.resolve({ address: [witness.address] })\n await this.node.unregister(existingWitness)\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { MemorySentinel, MemorySentinelParams, SentinelConfig } from '@xyo-network/sentinel'\n\nexport class SentinelBuilder {\n private _sentinel: MemorySentinel | undefined\n\n protected constructor(\n private config: SentinelConfig,\n private account: AccountInstance,\n ) {\n assertDefinedEx(config, 'config was not defined')\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)) as MemorySentinel\n }\n\n private buildParams(): MemorySentinelParams {\n return {\n account: this.account,\n config: this.config,\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { ArchivistModule, asArchivistInstance, StorageArchivist, StorageArchivistConfig, StorageArchivistConfigSchema } from '@xyo-network/archivist'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { asNodeInstance } from '@xyo-network/node-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport interface ArchivistBuilderConfig {\n name?: string\n namespace?: string\n}\nexport class StorageArchivistBuilder {\n private _archivist: StorageArchivist | undefined\n private remoteArchivist: ArchivistModule | undefined\n\n protected constructor(\n private config: ArchivistBuilderConfig,\n private account: AccountInstance,\n private node?: MemoryNode,\n ) {}\n\n get archivist() {\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() {\n const config = this.buildConfig()\n return (await StorageArchivist.create({ account: this.account, config })) as StorageArchivist\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() {\n const node = asNodeInstance(this.node, 'node not defined')\n const [bridge] = (await node.resolve({ name: ['RemoteNodeBridge'] })) ?? []\n if (bridge) {\n try {\n const [archivist] = (await bridge.resolve({ name: ['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 { MemoryNode } from '@xyo-network/node-memory'\nimport { defaultNetworkConfigs } from '@xyo-network/react-network'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { MemoryNodeBuilder } from './Builders'\nimport { RemoteNodeArchivistOffsetPaths, RemoteNodeOffsetPaths } from './ModuleAccountPaths'\nimport { RootStorageArchivist } from './ModuleNames'\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?.filter((node) => node.type === 'archivist')[0].uri\n const apiDomain = assertDefinedEx<string>(uri, 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\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: ${e}`)\n }\n}\n","export const GlobalNode = 'GlobalNode'\n\nexport const RootStorageArchivist = 'RootStorageArchivist'\n","import { RootStorageArchivist } from './ModuleNames'\n\nexport const GlobalNodeOffsetPath = '15'\n\nexport const RemoteNodeOffsetPaths: Record<string, string> = {\n Kerplunk: '112',\n Local: '111',\n Main: '113',\n}\n\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 '@xyo-network/react-shared'\n\nimport { StandardNodesContext } from './Context'\n\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n","import { useProvidedNode } from '@xyo-network/react-node'\nimport { useMemo } from 'react'\n\nimport { useStandardNodes } from '../contexts'\n\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":"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","names":["useState","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","nodes","assertDefinedEx","jsx","useState"]}