@xyo-network/react-standard-node 4.1.7 → 4.1.9

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.
@@ -1,6 +1,6 @@
1
- import type { WithChildren } from '@xylabs/react-shared';
1
+ import type { PropsWithChildren } from 'react';
2
2
  import React from 'react';
3
- export interface ActiveStandardNodeProps extends WithChildren {
3
+ export interface ActiveStandardNodeProps extends PropsWithChildren {
4
4
  nodeNameOrAddress?: string;
5
5
  }
6
6
  export declare const ActiveStandardNode: React.FC<ActiveStandardNodeProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveStandardNode.d.ts","sourceRoot":"","sources":["../../../src/components/ActiveStandardNode.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAmChE,CAAA"}
1
+ {"version":3,"file":"ActiveStandardNode.d.ts","sourceRoot":"","sources":["../../../src/components/ActiveStandardNode.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAmChE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../../../src/contexts/StandardRemoteNodes/Providers.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAIxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAkB,MAAM,OAAO,CAAA;AAItC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAChD,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;CAC/B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAqCtE,CAAA;AAED,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAGhG,CAAA"}
1
+ {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../../../src/contexts/StandardRemoteNodes/Providers.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAkB,MAAM,OAAO,CAAA;AAItC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAChD,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;CAC/B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAqCtE,CAAA;AAED,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAGhG,CAAA"}
@@ -12,21 +12,21 @@ import { createContextEx } from "@xyo-network/react-shared";
12
12
  var StandardNodesContext = createContextEx();
13
13
 
14
14
  // src/contexts/StandardRemoteNodes/Providers.tsx
15
+ import { assertDefinedEx as assertDefinedEx5 } from "@xylabs/assert";
15
16
  import { useResetState } from "@xylabs/react-hooks";
16
17
  import { usePromise } from "@xylabs/react-promise";
17
- import { assertDefinedEx as assertDefinedEx5 } from "@xyo-network/react-shared";
18
18
  import { useWalletContext } from "@xyo-network/react-wallet";
19
19
  import React, { useMemo } from "react";
20
20
 
21
21
  // src/lib/Builders/MemoryNodeBuilder.ts
22
+ import { assertDefinedEx as assertDefinedEx3 } from "@xylabs/assert";
22
23
  import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archivist-memory";
23
24
  import { HttpBridge, HttpBridgeConfigSchema } from "@xyo-network/bridge-http";
24
25
  import { MemoryNode } from "@xyo-network/node-memory";
25
26
  import { NodeConfigSchema } from "@xyo-network/node-model";
26
- import { assertDefinedEx as assertDefinedEx3 } from "@xyo-network/react-shared";
27
27
 
28
28
  // src/lib/Builders/SentinelBuilder.ts
29
- import { assertDefinedEx } from "@xyo-network/react-shared";
29
+ import { assertDefinedEx } from "@xylabs/assert";
30
30
  import { MemorySentinel } from "@xyo-network/sentinel-memory";
31
31
  var SentinelBuilder = class {
32
32
  static {
@@ -38,10 +38,10 @@ var SentinelBuilder = class {
38
38
  constructor(config, account) {
39
39
  this.config = config;
40
40
  this.account = account;
41
- assertDefinedEx(config, "config was not defined");
41
+ assertDefinedEx(config, () => "config was not defined");
42
42
  }
43
43
  get sentinel() {
44
- return assertDefinedEx(this._sentinel, "this._sentinel not defined upon create");
44
+ return assertDefinedEx(this._sentinel, () => "this._sentinel not defined upon create");
45
45
  }
46
46
  static async create(config, account) {
47
47
  const instance = new this(config, account);
@@ -61,10 +61,10 @@ var SentinelBuilder = class {
61
61
  };
62
62
 
63
63
  // src/lib/Builders/StorageArchivistBuilder.ts
64
+ import { assertDefinedEx as assertDefinedEx2 } from "@xylabs/assert";
64
65
  import { asArchivistInstance } from "@xyo-network/archivist-model";
65
66
  import { StorageArchivist, StorageArchivistConfigSchema } from "@xyo-network/archivist-storage";
66
67
  import { asNodeInstance } from "@xyo-network/node-model";
67
- import { assertDefinedEx as assertDefinedEx2 } from "@xyo-network/react-shared";
68
68
  var StorageArchivistBuilder = class {
69
69
  static {
70
70
  __name(this, "StorageArchivistBuilder");
@@ -80,7 +80,7 @@ var StorageArchivistBuilder = class {
80
80
  this.node = node;
81
81
  }
82
82
  get archivist() {
83
- return assertDefinedEx2(this._archivist, "archivist was not defined upon create");
83
+ return assertDefinedEx2(this._archivist, () => "archivist was not defined upon create");
84
84
  }
85
85
  static async create(config, account, node) {
86
86
  const instance = new this(config, account, node);
@@ -141,7 +141,7 @@ var MemoryNodeBuilder = class {
141
141
  }
142
142
  _node;
143
143
  get node() {
144
- return assertDefinedEx3(this._node, "this._node was not defined upon create");
144
+ return assertDefinedEx3(this._node, () => "this._node was not defined upon create");
145
145
  }
146
146
  static async create({ name, node }, account) {
147
147
  const instance = new this();
@@ -247,8 +247,8 @@ var MemoryNodeBuilder = class {
247
247
  };
248
248
 
249
249
  // src/lib/buildNodes.ts
250
+ import { assertDefinedEx as assertDefinedEx4 } from "@xylabs/assert";
250
251
  import { defaultNetworkConfigs } from "@xyo-network/react-network";
251
- import { assertDefinedEx as assertDefinedEx4 } from "@xyo-network/react-shared";
252
252
 
253
253
  // src/lib/ModuleNames.ts
254
254
  var GlobalNode = "GlobalNode";
@@ -280,9 +280,9 @@ var RemoteNodeArchivistOffsetPaths = {
280
280
  var knownRemoteNodes = /* @__PURE__ */ __name(() => {
281
281
  const networkNames = defaultNetworkConfigs.map((config) => config.name);
282
282
  return networkNames.map((networkName) => {
283
- const name = assertDefinedEx4(networkName, "missing name in network config");
283
+ const name = assertDefinedEx4(networkName, () => "missing name in network config");
284
284
  const uri = defaultNetworkConfigs.find((config) => config.name === networkName)?.nodes?.filter((node) => node.type === "archivist")[0].uri;
285
- const apiDomain = assertDefinedEx4(uri, 'missing node type "archivist" in network config');
285
+ const apiDomain = assertDefinedEx4(uri, () => 'missing node type "archivist" in network config');
286
286
  return {
287
287
  apiDomain,
288
288
  name
@@ -302,7 +302,7 @@ var BuildStandardNodes = /* @__PURE__ */ __name(async (wallet, onNodeBuilt) => {
302
302
  const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath);
303
303
  await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, "root");
304
304
  const { node } = memoryNodeBuilder;
305
- assertDefinedEx4(node, "Memory Node was not built successfully");
305
+ assertDefinedEx4(node, () => "Memory Node was not built successfully");
306
306
  onNodeBuilt?.(node);
307
307
  return node;
308
308
  }));
@@ -334,7 +334,7 @@ var StandardNodesProvider = /* @__PURE__ */ __name(({ children, defaultRemoteNod
334
334
  wallet
335
335
  ]);
336
336
  const findAddressByName = /* @__PURE__ */ __name((name) => {
337
- const validNetworkName = assertDefinedEx5(name, "name was not defined");
337
+ const validNetworkName = assertDefinedEx5(name, () => "name was not defined");
338
338
  return nodes?.find((node) => node.config.name === validNetworkName)?.address;
339
339
  }, "findAddressByName");
340
340
  const value = useMemo(() => ({
@@ -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.ts","../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useWeakNodeFromNode } from '@xyo-network/react-node'\nimport React, { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts/index.ts'\nimport { useActiveNodeAddress } from '../hooks/index.ts'\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] = 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 '@xyo-network/react-shared'\n\nimport type { StandardNodesState } from './State.ts'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { useResetState } from '@xylabs/react-hooks'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport type { MemoryNode } from '@xyo-network/node-memory'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { useWalletContext } from '@xyo-network/react-wallet'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport React, { useMemo } from 'react'\n\nimport { BuildStandardNodes } from '../../lib/index.ts'\nimport { StandardNodesContext } from './Context.ts'\nimport type { StandardNodesState } from './State.ts'\n\nexport interface StandardNodesProviderProps extends WithChildren {\n defaultRemoteNodes?: StandardNodesState['nodes']\n wallet?: WalletInstance | null\n}\n\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 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 const value = useMemo(() => ({\n findAddressByName,\n nodes,\n provided: true,\n }), [findAddressByName,\n nodes])\n\n return (\n <StandardNodesContext.Provider\n value={value}\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 type { AccountInstance } from '@xyo-network/account-model'\nimport type { MemoryArchivistConfig } from '@xyo-network/archivist-memory'\nimport { MemoryArchivist, MemoryArchivistConfigSchema } from '@xyo-network/archivist-memory'\nimport { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/bridge-http'\nimport type { AttachableModuleInstance } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport type { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport type { SentinelConfig } from '@xyo-network/sentinel-model'\nimport type { AttachableWitnessInstance, WitnessModule } from '@xyo-network/witness-model'\n\nimport { SentinelBuilder } from './SentinelBuilder.ts'\nimport { StorageArchivistBuilder } from './StorageArchivistBuilder.ts'\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({\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, nodeUrl: `${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({ address: [mod.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(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: ${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({ address: [witness.address] })\n await this.node.unregister(existingWitness)\n }\n }\n}\n","import type { AccountInstance } from '@xyo-network/account-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport type { MemorySentinelParams } from '@xyo-network/sentinel-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport type { SentinelConfig } from '@xyo-network/sentinel-model'\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 type { AccountInstance } from '@xyo-network/account-model'\nimport type { ArchivistModule } from '@xyo-network/archivist-model'\nimport { asArchivistInstance } from '@xyo-network/archivist-model'\nimport type { StorageArchivistConfig } from '@xyo-network/archivist-storage'\nimport { StorageArchivist, StorageArchivistConfigSchema } from '@xyo-network/archivist-storage'\nimport type { 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 type { MemoryNode } from '@xyo-network/node-memory'\nimport { defaultNetworkConfigs } from '@xyo-network/react-network'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\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?.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.ts'\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.ts'\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/index.ts'\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":["useAsyncEffect","useNetwork","useWeakNodeFromNode","React","useState","createContextEx","StandardNodesContext","useResetState","usePromise","assertDefinedEx","useWalletContext","React","useMemo","MemoryArchivist","MemoryArchivistConfigSchema","HttpBridge","HttpBridgeConfigSchema","MemoryNode","NodeConfigSchema","assertDefinedEx","assertDefinedEx","MemorySentinel","SentinelBuilder","_sentinel","config","account","assertDefinedEx","sentinel","create","instance","buildSentinel","params","buildParams","MemorySentinel","asArchivistInstance","StorageArchivist","StorageArchivistConfigSchema","asNodeInstance","assertDefinedEx","StorageArchivistBuilder","_archivist","remoteArchivist","config","account","node","archivist","assertDefinedEx","create","instance","findParentArchivist","buildArchivist","buildConfig","StorageArchivist","name","namespace","parents","commit","address","undefined","read","schema","StorageArchivistConfigSchema","storeParentReads","type","asNodeInstance","bridge","resolve","asArchivistInstance","console","error","MemoryNodeBuilder","_node","node","assertDefinedEx","create","name","account","instance","memoryNode","MemoryNode","config","schema","NodeConfigSchema","addArchivist","moduleName","namespace","addArchivistStorage","addArchivistMemory","MemoryArchivistConfigSchema","memoryArchivist","MemoryArchivist","attach","archivist","StorageArchivistBuilder","addBridge","apiDomain","bridge","HttpBridge","nodeUrl","HttpBridgeConfigSchema","security","allowAnonymous","e","console","error","addSentinel","sentinel","SentinelBuilder","addWitnesses","pluginSetResolver","witnesses","Promise","all","map","pluginSet","index","witness","witnessCleanup","register","address","JSON","stringify","mod","external","safeAttach","existingModule","resolve","pop","detach","unregister","Error","registered","includes","existingWitness","defaultNetworkConfigs","assertDefinedEx","GlobalNode","RootStorageArchivist","GlobalNodeOffsetPath","RemoteNodeOffsetPaths","Kerplunk","Local","Main","RemoteNodeArchivistOffsetPaths","MemoryNode","RootStorageArchivist","knownRemoteNodes","networkNames","defaultNetworkConfigs","map","config","name","networkName","assertDefinedEx","uri","find","nodes","filter","node","type","apiDomain","BuildStandardNodes","wallet","onNodeBuilt","Promise","all","remoteNodeOffset","RemoteNodeOffsetPaths","remoteNodeWallet","derivePath","memoryNodeBuilder","MemoryNodeBuilder","create","addBridge","rootArchivistPath","RemoteNodeArchivistOffsetPaths","RootStorageArchivist","rootArchivistAccount","addArchivistStorage","e","Error","StandardNodesProvider","children","defaultRemoteNodes","wallet","nodes","setNodes","useResetState","usePromise","BuildStandardNodes","node","find","existingNode","config","name","findAddressByName","validNetworkName","assertDefinedEx","address","value","useMemo","provided","StandardNodesContext","Provider","StandardNodesProviderWithWallet","props","activeAccount","useWalletContext","useContextEx","useStandardNodes","required","useContextEx","StandardNodesContext","useProvidedNode","useMemo","useActiveNodeAddress","networkName","node","useProvidedNode","nodes","findAddressByName","useStandardNodes","activeNodeAddress","useMemo","ActiveStandardNode","children","nodeNameOrAddress","network","useNetwork","node","useWeakNodeFromNode","activeRemoteNodeAddress","setActiveRemoteNodeAddress","useState","nodes","useStandardNodes","selectedNodeAddress","useActiveNodeAddress","name","useAsyncEffect","mounted","nodeInstance","deref","attached","includes","attach","detach","e","console","error","React"]}
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.ts","../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useWeakNodeFromNode } from '@xyo-network/react-node'\nimport type { PropsWithChildren } from 'react'\nimport React, { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts/index.ts'\nimport { useActiveNodeAddress } from '../hooks/index.ts'\n\nexport interface ActiveStandardNodeProps extends PropsWithChildren {\n nodeNameOrAddress?: string\n}\n\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 '@xyo-network/react-shared'\n\nimport type { StandardNodesState } from './State.ts'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { assertDefinedEx } from '@xylabs/assert'\nimport { useResetState } from '@xylabs/react-hooks'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport type { MemoryNode } from '@xyo-network/node-memory'\nimport { useWalletContext } from '@xyo-network/react-wallet'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport React, { useMemo } from 'react'\n\nimport { BuildStandardNodes } from '../../lib/index.ts'\nimport { StandardNodesContext } from './Context.ts'\nimport type { StandardNodesState } from './State.ts'\n\nexport interface StandardNodesProviderProps extends WithChildren {\n defaultRemoteNodes?: StandardNodesState['nodes']\n wallet?: WalletInstance | null\n}\n\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 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 const value = useMemo(() => ({\n findAddressByName,\n nodes,\n provided: true,\n }), [findAddressByName,\n nodes])\n\n return (\n <StandardNodesContext.Provider\n value={value}\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 { assertDefinedEx } from '@xylabs/assert'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { MemoryArchivistConfig } from '@xyo-network/archivist-memory'\nimport { MemoryArchivist, MemoryArchivistConfigSchema } from '@xyo-network/archivist-memory'\nimport { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/bridge-http'\nimport type { AttachableModuleInstance } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport type { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'\nimport type { SentinelConfig } from '@xyo-network/sentinel-model'\nimport type { AttachableWitnessInstance, WitnessModule } from '@xyo-network/witness-model'\n\nimport { SentinelBuilder } from './SentinelBuilder.ts'\nimport { StorageArchivistBuilder } from './StorageArchivistBuilder.ts'\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({\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, nodeUrl: `${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({ address: [mod.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(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: ${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({ address: [witness.address] })\n await this.node.unregister(existingWitness)\n }\n }\n}\n","import { assertDefinedEx } from '@xylabs/assert'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { MemorySentinelParams } from '@xyo-network/sentinel-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport type { SentinelConfig } from '@xyo-network/sentinel-model'\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 { assertDefinedEx } from '@xylabs/assert'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { ArchivistModule } from '@xyo-network/archivist-model'\nimport { asArchivistInstance } from '@xyo-network/archivist-model'\nimport type { StorageArchivistConfig } from '@xyo-network/archivist-storage'\nimport { StorageArchivist, StorageArchivistConfigSchema } from '@xyo-network/archivist-storage'\nimport type { MemoryNode } from '@xyo-network/node-memory'\nimport { asNodeInstance } from '@xyo-network/node-model'\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 { assertDefinedEx } from '@xylabs/assert'\nimport type { MemoryNode } from '@xyo-network/node-memory'\nimport { defaultNetworkConfigs } from '@xyo-network/react-network'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\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?.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.ts'\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.ts'\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/index.ts'\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":["useAsyncEffect","useNetwork","useWeakNodeFromNode","React","useState","createContextEx","StandardNodesContext","assertDefinedEx","useResetState","usePromise","useWalletContext","React","useMemo","assertDefinedEx","MemoryArchivist","MemoryArchivistConfigSchema","HttpBridge","HttpBridgeConfigSchema","MemoryNode","NodeConfigSchema","assertDefinedEx","MemorySentinel","SentinelBuilder","_sentinel","config","account","assertDefinedEx","sentinel","create","instance","buildSentinel","params","buildParams","MemorySentinel","assertDefinedEx","asArchivistInstance","StorageArchivist","StorageArchivistConfigSchema","asNodeInstance","StorageArchivistBuilder","_archivist","remoteArchivist","config","account","node","archivist","assertDefinedEx","create","instance","findParentArchivist","buildArchivist","buildConfig","StorageArchivist","name","namespace","parents","commit","address","undefined","read","schema","StorageArchivistConfigSchema","storeParentReads","type","asNodeInstance","bridge","resolve","asArchivistInstance","console","error","MemoryNodeBuilder","_node","node","assertDefinedEx","create","name","account","instance","memoryNode","MemoryNode","config","schema","NodeConfigSchema","addArchivist","moduleName","namespace","addArchivistStorage","addArchivistMemory","MemoryArchivistConfigSchema","memoryArchivist","MemoryArchivist","attach","archivist","StorageArchivistBuilder","addBridge","apiDomain","bridge","HttpBridge","nodeUrl","HttpBridgeConfigSchema","security","allowAnonymous","e","console","error","addSentinel","sentinel","SentinelBuilder","addWitnesses","pluginSetResolver","witnesses","Promise","all","map","pluginSet","index","witness","witnessCleanup","register","address","JSON","stringify","mod","external","safeAttach","existingModule","resolve","pop","detach","unregister","Error","registered","includes","existingWitness","assertDefinedEx","defaultNetworkConfigs","GlobalNode","RootStorageArchivist","GlobalNodeOffsetPath","RemoteNodeOffsetPaths","Kerplunk","Local","Main","RemoteNodeArchivistOffsetPaths","MemoryNode","RootStorageArchivist","knownRemoteNodes","networkNames","defaultNetworkConfigs","map","config","name","networkName","assertDefinedEx","uri","find","nodes","filter","node","type","apiDomain","BuildStandardNodes","wallet","onNodeBuilt","Promise","all","remoteNodeOffset","RemoteNodeOffsetPaths","remoteNodeWallet","derivePath","memoryNodeBuilder","MemoryNodeBuilder","create","addBridge","rootArchivistPath","RemoteNodeArchivistOffsetPaths","RootStorageArchivist","rootArchivistAccount","addArchivistStorage","e","Error","StandardNodesProvider","children","defaultRemoteNodes","wallet","nodes","setNodes","useResetState","usePromise","BuildStandardNodes","node","find","existingNode","config","name","findAddressByName","validNetworkName","assertDefinedEx","address","value","useMemo","provided","StandardNodesContext","Provider","StandardNodesProviderWithWallet","props","activeAccount","useWalletContext","useContextEx","useStandardNodes","required","useContextEx","StandardNodesContext","useProvidedNode","useMemo","useActiveNodeAddress","networkName","node","useProvidedNode","nodes","findAddressByName","useStandardNodes","activeNodeAddress","useMemo","ActiveStandardNode","children","nodeNameOrAddress","network","useNetwork","node","useWeakNodeFromNode","activeRemoteNodeAddress","setActiveRemoteNodeAddress","useState","nodes","useStandardNodes","selectedNodeAddress","useActiveNodeAddress","name","useAsyncEffect","mounted","nodeInstance","deref","attached","includes","attach","detach","e","console","error","React"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNodeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAIjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAiB,MAAM,4BAA4B,CAAA;AAK1F,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IAErC,IAAI,IAAI;;;;;;;;;;;;;;8DAEP;WAEY,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWnH,4GAA4G;IACtG,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAI9E,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe;IAOjE,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAOrF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,SAAqB,EAAE,OAAO,CAAC,EAAE,eAAe;IAcvF,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM5D,YAAY,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,SAAS,GAAE,CAAC,MAAM,OAAO,CAAC,yBAAyB,CAAC,CAAC,EAAO;IAkBtH,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO;YAgBtE,cAAc;CAM7B"}
1
+ {"version":3,"file":"MemoryNodeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAIjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAiB,MAAM,4BAA4B,CAAA;AAK1F,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IAErC,IAAI,IAAI;;;;;;;;;;;;;;8DAEP;WAEY,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWnH,4GAA4G;IACtG,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAI9E,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe;IAOjE,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAOrF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,SAAqB,EAAE,OAAO,CAAC,EAAE,eAAe;IAcvF,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM5D,YAAY,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,SAAS,GAAE,CAAC,MAAM,OAAO,CAAC,yBAAyB,CAAC,CAAC,EAAO;IAkBtH,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO;YAgBtE,cAAc;CAM7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SentinelBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/SentinelBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE,qBAAa,eAAe;IAIxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,SAAS,CAA4B;IAE7C,SAAS,aACC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe;IAKlC,IAAI,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEAEX;WAEY,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAMzF,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKnB,OAAO,CAAC,WAAW;CAMpB"}
1
+ {"version":3,"file":"SentinelBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/SentinelBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE,qBAAa,eAAe;IAIxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,SAAS,CAA4B;IAE7C,SAAS,aACC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe;IAKlC,IAAI,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEAEX;WAEY,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAMzF,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKnB,OAAO,CAAC,WAAW;CAMpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"StorageArchivistBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/StorageArchivistBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAI1D,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,EAAE,UAAU,YAAA;IAG3B,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;wEAEZ;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;yBAamlK,4BAA4B;;mCAAmG,4BAA4B;;uBAAmF,4BAA4B,wBAAwB,4BAA4B,8BAA8B,2BAA2B,iCAAiC,2BAA2B,8BAA8B,4BAA4B,wBAAwB,4BAA4B,8BAA8B,2BAA2B,iCAAiC,2BAA2B;mBAA4C,CAAC,SAAS,8BAAa;6BAAiD,CAAC;;mBAAkF,CAAC,SAAS,8BAAa;4BAAgD,CAAC;;;;;;;8CAAsP,2BAA2B;;;;CADnyM"}
1
+ {"version":3,"file":"StorageArchivistBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/StorageArchivistBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG1D,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,EAAE,UAAU,YAAA;IAG3B,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;wEAEZ;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;yBAawlK,4BAA4B;;mCAAmG,4BAA4B;;uBAAmF,4BAA4B,wBAAwB,4BAA4B,8BAA8B,2BAA2B,iCAAiC,2BAA2B,8BAA8B,4BAA4B,wBAAwB,4BAA4B,8BAA8B,2BAA2B,iCAAiC,2BAA2B;mBAA4C,CAAC,SAAS,8BAAa;6BAAiD,CAAC;;mBAAkF,CAAC,SAAS,8BAAa;4BAAgD,CAAC;;;;;;;8CAAsP,2BAA2B;;;;CADxyM"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildNodes.d.ts","sourceRoot":"","sources":["../../../src/lib/buildNodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAmB/D,eAAO,MAAM,kBAAkB,WAAkB,cAAc,gBAAgB,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,KAAG,OAAO,CAAC,UAAU,EAAE,CAwB/H,CAAA"}
1
+ {"version":3,"file":"buildNodes.d.ts","sourceRoot":"","sources":["../../../src/lib/buildNodes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAmB/D,eAAO,MAAM,kBAAkB,WAAkB,cAAc,gBAAgB,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,KAAG,OAAO,CAAC,UAAU,EAAE,CAwB/H,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-standard-node",
3
- "version": "4.1.7",
3
+ "version": "4.1.9",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -43,28 +43,29 @@
43
43
  "lint-pkg": "npmPkgJsonLint ."
44
44
  },
45
45
  "dependencies": {
46
- "@xylabs/hex": "^4.3.2",
47
- "@xylabs/react-async-effect": "^5.2.2",
48
- "@xylabs/react-hooks": "^5.2.2",
49
- "@xylabs/react-promise": "^5.2.2",
50
- "@xylabs/react-shared": "^5.2.2",
51
- "@xyo-network/account-model": "^3.3.0",
52
- "@xyo-network/archivist-memory": "^3.3.0",
53
- "@xyo-network/archivist-model": "^3.3.0",
54
- "@xyo-network/archivist-storage": "^3.3.0",
55
- "@xyo-network/bridge-http": "^3.3.0",
56
- "@xyo-network/module-model": "^3.3.0",
57
- "@xyo-network/node-memory": "^3.3.0",
58
- "@xyo-network/node-model": "^3.3.0",
59
- "@xyo-network/payloadset-plugin": "^3.3.0",
60
- "@xyo-network/react-network": "^4.1.7",
61
- "@xyo-network/react-node": "^4.1.7",
62
- "@xyo-network/react-shared": "^4.1.7",
63
- "@xyo-network/react-wallet": "^4.1.7",
64
- "@xyo-network/sentinel-memory": "^3.3.0",
65
- "@xyo-network/sentinel-model": "^3.3.0",
66
- "@xyo-network/wallet-model": "^3.3.0",
67
- "@xyo-network/witness-model": "^3.3.0"
46
+ "@xylabs/assert": "^4.3.3",
47
+ "@xylabs/hex": "^4.3.3",
48
+ "@xylabs/react-async-effect": "^5.2.7",
49
+ "@xylabs/react-hooks": "^5.2.7",
50
+ "@xylabs/react-promise": "^5.2.7",
51
+ "@xylabs/react-shared": "^5.2.7",
52
+ "@xyo-network/account-model": "^3.3.2",
53
+ "@xyo-network/archivist-memory": "^3.3.2",
54
+ "@xyo-network/archivist-model": "^3.3.2",
55
+ "@xyo-network/archivist-storage": "^3.3.2",
56
+ "@xyo-network/bridge-http": "^3.3.2",
57
+ "@xyo-network/module-model": "^3.3.2",
58
+ "@xyo-network/node-memory": "^3.3.2",
59
+ "@xyo-network/node-model": "^3.3.2",
60
+ "@xyo-network/payloadset-plugin": "^3.3.2",
61
+ "@xyo-network/react-network": "^4.1.9",
62
+ "@xyo-network/react-node": "^4.1.9",
63
+ "@xyo-network/react-shared": "^4.1.9",
64
+ "@xyo-network/react-wallet": "^4.1.9",
65
+ "@xyo-network/sentinel-memory": "^3.3.2",
66
+ "@xyo-network/sentinel-model": "^3.3.2",
67
+ "@xyo-network/wallet-model": "^3.3.2",
68
+ "@xyo-network/witness-model": "^3.3.2"
68
69
  },
69
70
  "devDependencies": {
70
71
  "@mui/icons-material": "^6.1.5",
@@ -75,6 +76,7 @@
75
76
  "@xylabs/tsconfig-react": "^4.2.3",
76
77
  "react": "^18.3.1",
77
78
  "react-dom": "^18.3.1",
79
+ "react-router-dom": "^6.27.0",
78
80
  "storybook": "^8.3.6",
79
81
  "typescript": "^5.6.3"
80
82
  },
@@ -83,7 +85,8 @@
83
85
  "@mui/material": "^6",
84
86
  "@mui/styles": "^6",
85
87
  "react": "^18",
86
- "react-dom": "^18"
88
+ "react-dom": "^18",
89
+ "react-router-dom": "^6"
87
90
  },
88
91
  "publishConfig": {
89
92
  "access": "public"
@@ -1,13 +1,13 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-async-effect'
2
- import type { WithChildren } from '@xylabs/react-shared'
3
2
  import { useNetwork } from '@xyo-network/react-network'
4
3
  import { useWeakNodeFromNode } from '@xyo-network/react-node'
4
+ import type { PropsWithChildren } from 'react'
5
5
  import React, { useState } from 'react'
6
6
 
7
7
  import { useStandardNodes } from '../contexts/index.ts'
8
8
  import { useActiveNodeAddress } from '../hooks/index.ts'
9
9
 
10
- export interface ActiveStandardNodeProps extends WithChildren {
10
+ export interface ActiveStandardNodeProps extends PropsWithChildren {
11
11
  nodeNameOrAddress?: string
12
12
  }
13
13
 
@@ -1,8 +1,8 @@
1
+ import { assertDefinedEx } from '@xylabs/assert'
1
2
  import { useResetState } from '@xylabs/react-hooks'
2
3
  import { usePromise } from '@xylabs/react-promise'
3
4
  import type { WithChildren } from '@xylabs/react-shared'
4
5
  import type { MemoryNode } from '@xyo-network/node-memory'
5
- import { assertDefinedEx } from '@xyo-network/react-shared'
6
6
  import { useWalletContext } from '@xyo-network/react-wallet'
7
7
  import type { WalletInstance } from '@xyo-network/wallet-model'
8
8
  import React, { useMemo } from 'react'
@@ -35,7 +35,7 @@ export const StandardNodesProvider: React.FC<StandardNodesProviderProps> = ({
35
35
  }, [wallet])
36
36
 
37
37
  const findAddressByName = (name?: string) => {
38
- const validNetworkName = assertDefinedEx(name, 'name was not defined')
38
+ const validNetworkName = assertDefinedEx(name, () => 'name was not defined')
39
39
  return nodes?.find(node => node.config.name === validNetworkName)?.address
40
40
  }
41
41
 
@@ -1,3 +1,4 @@
1
+ import { assertDefinedEx } from '@xylabs/assert'
1
2
  import type { AccountInstance } from '@xyo-network/account-model'
2
3
  import type { MemoryArchivistConfig } from '@xyo-network/archivist-memory'
3
4
  import { MemoryArchivist, MemoryArchivistConfigSchema } from '@xyo-network/archivist-memory'
@@ -6,7 +7,6 @@ import type { AttachableModuleInstance } from '@xyo-network/module-model'
6
7
  import { MemoryNode } from '@xyo-network/node-memory'
7
8
  import { NodeConfigSchema } from '@xyo-network/node-model'
8
9
  import type { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'
9
- import { assertDefinedEx } from '@xyo-network/react-shared'
10
10
  import type { SentinelConfig } from '@xyo-network/sentinel-model'
11
11
  import type { AttachableWitnessInstance, WitnessModule } from '@xyo-network/witness-model'
12
12
 
@@ -22,7 +22,7 @@ export class MemoryNodeBuilder {
22
22
  private _node: MemoryNode | undefined
23
23
 
24
24
  get node() {
25
- return assertDefinedEx(this._node, 'this._node was not defined upon create')
25
+ return assertDefinedEx(this._node, () => 'this._node was not defined upon create')
26
26
  }
27
27
 
28
28
  static async create({ name, node }: MemoryNodeBuilderConfig, account?: AccountInstance): Promise<MemoryNodeBuilder> {
@@ -1,5 +1,5 @@
1
+ import { assertDefinedEx } from '@xylabs/assert'
1
2
  import type { AccountInstance } from '@xyo-network/account-model'
2
- import { assertDefinedEx } from '@xyo-network/react-shared'
3
3
  import type { MemorySentinelParams } from '@xyo-network/sentinel-memory'
4
4
  import { MemorySentinel } from '@xyo-network/sentinel-memory'
5
5
  import type { SentinelConfig } from '@xyo-network/sentinel-model'
@@ -11,11 +11,11 @@ export class SentinelBuilder {
11
11
  private config: SentinelConfig,
12
12
  private account: AccountInstance,
13
13
  ) {
14
- assertDefinedEx(config, 'config was not defined')
14
+ assertDefinedEx(config, () => 'config was not defined')
15
15
  }
16
16
 
17
17
  get sentinel() {
18
- return assertDefinedEx(this._sentinel, 'this._sentinel not defined upon create')
18
+ return assertDefinedEx(this._sentinel, () => 'this._sentinel not defined upon create')
19
19
  }
20
20
 
21
21
  static async create(config: SentinelConfig, account: AccountInstance): Promise<SentinelBuilder> {
@@ -1,3 +1,4 @@
1
+ import { assertDefinedEx } from '@xylabs/assert'
1
2
  import type { AccountInstance } from '@xyo-network/account-model'
2
3
  import type { ArchivistModule } from '@xyo-network/archivist-model'
3
4
  import { asArchivistInstance } from '@xyo-network/archivist-model'
@@ -5,7 +6,6 @@ import type { StorageArchivistConfig } from '@xyo-network/archivist-storage'
5
6
  import { StorageArchivist, StorageArchivistConfigSchema } from '@xyo-network/archivist-storage'
6
7
  import type { MemoryNode } from '@xyo-network/node-memory'
7
8
  import { asNodeInstance } from '@xyo-network/node-model'
8
- import { assertDefinedEx } from '@xyo-network/react-shared'
9
9
 
10
10
  export interface ArchivistBuilderConfig {
11
11
  name?: string
@@ -22,7 +22,7 @@ export class StorageArchivistBuilder {
22
22
  ) {}
23
23
 
24
24
  get archivist() {
25
- return assertDefinedEx(this._archivist, 'archivist was not defined upon create')
25
+ return assertDefinedEx(this._archivist, () => 'archivist was not defined upon create')
26
26
  }
27
27
 
28
28
  static async create(config: ArchivistBuilderConfig, account: AccountInstance, node: MemoryNode): Promise<StorageArchivistBuilder> {
@@ -1,6 +1,6 @@
1
+ import { assertDefinedEx } from '@xylabs/assert'
1
2
  import type { MemoryNode } from '@xyo-network/node-memory'
2
3
  import { defaultNetworkConfigs } from '@xyo-network/react-network'
3
- import { assertDefinedEx } from '@xyo-network/react-shared'
4
4
  import type { WalletInstance } from '@xyo-network/wallet-model'
5
5
 
6
6
  import { MemoryNodeBuilder } from './Builders/index.ts'
@@ -10,9 +10,9 @@ import { RootStorageArchivist } from './ModuleNames.ts'
10
10
  const knownRemoteNodes = (): { apiDomain: string; name: string }[] => {
11
11
  const networkNames = defaultNetworkConfigs.map(config => config.name)
12
12
  return networkNames.map((networkName) => {
13
- const name = assertDefinedEx<string>(networkName, 'missing name in network config')
13
+ const name = assertDefinedEx<string>(networkName, () => 'missing name in network config')
14
14
  const uri = defaultNetworkConfigs.find(config => config.name === networkName)?.nodes?.filter(node => node.type === 'archivist')[0].uri
15
- const apiDomain = assertDefinedEx<string>(uri, 'missing node type "archivist" in network config')
15
+ const apiDomain = assertDefinedEx<string>(uri, () => 'missing node type "archivist" in network config')
16
16
  return {
17
17
  apiDomain,
18
18
  name,
@@ -35,7 +35,7 @@ export const BuildStandardNodes = async (wallet: WalletInstance, onNodeBuilt?: (
35
35
  await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, 'root')
36
36
 
37
37
  const { node } = memoryNodeBuilder
38
- assertDefinedEx(node, 'Memory Node was not built successfully')
38
+ assertDefinedEx(node, () => 'Memory Node was not built successfully')
39
39
  onNodeBuilt?.(node)
40
40
 
41
41
  return node