@xyo-network/react-standard-node 7.4.2 → 7.5.0

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 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/StandardRemoteNodes/Context.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB;6BACsB,CAAC;;;;;6BAAD,CAAC;;;;;6BAAD,CAAC;;;;GADiB,CAAA"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/StandardRemoteNodes/Context.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB;6BACyB,CAAC;;;;;6BAAD,CAAC;;;;;6BAAD,CAAC;;;;GADc,CAAA"}
@@ -1,5 +1,5 @@
1
- import type { Address } from '@xylabs/hex';
2
1
  import type { ContextExState } from '@xylabs/react-shared';
2
+ import type { Address } from '@xylabs/sdk-js';
3
3
  import type { MemoryNode } from '@xyo-network/node-memory';
4
4
  export type StandardNodesState = ContextExState<{
5
5
  findAddressByName?: (name?: string) => Address | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/StandardRemoteNodes/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC;IAC9C,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAA;IAC1D,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;CACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/StandardRemoteNodes/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC;IAC9C,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAA;IAC1D,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;CACrB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/contexts/StandardRemoteNodes/use.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,GAAI,kBAAgB;6BAChC,CAAC;;;;oIADiG,CAAA"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/contexts/StandardRemoteNodes/use.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,GAAI,kBAAgB;6BAC7B,CAAC;;;;oIAD8F,CAAA"}
@@ -1,2 +1,6 @@
1
- export declare const useActiveNodeAddress: (networkName?: string) => import("@xylabs/hex").Address | undefined;
1
+ export declare const useActiveNodeAddress: (networkName?: string) => (Lowercase<string> & {
2
+ readonly __hex: true;
3
+ } & {
4
+ readonly __address: true;
5
+ }) | undefined;
2
6
  //# sourceMappingURL=useActiveNodeAddress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useActiveNodeAddress.d.ts","sourceRoot":"","sources":["../../../src/hooks/useActiveNodeAddress.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM,8CAWxD,CAAA"}
1
+ {"version":3,"file":"useActiveNodeAddress.d.ts","sourceRoot":"","sources":["../../../src/hooks/useActiveNodeAddress.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM;;;;cAWxD,CAAA"}
@@ -1,8 +1,11 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
1
4
  // src/components/ActiveStandardNode.tsx
2
5
  import { useAsyncEffect } from "@xylabs/react-async-effect";
3
6
  import { useNetwork } from "@xyo-network/react-network";
4
7
  import { useWeakNodeFromNode } from "@xyo-network/react-node";
5
- import { useState } from "react";
8
+ import React2, { useState } from "react";
6
9
 
7
10
  // src/contexts/StandardRemoteNodes/Context.ts
8
11
  import { createContextEx } from "@xylabs/react-shared";
@@ -13,7 +16,7 @@ import { assertDefinedEx as assertDefinedEx5 } from "@xylabs/assert";
13
16
  import { useResetState } from "@xylabs/react-hooks";
14
17
  import { usePromise } from "@xylabs/react-promise";
15
18
  import { useWalletContext } from "@xyo-network/react-wallet";
16
- import { useMemo } from "react";
19
+ import React, { useMemo } from "react";
17
20
 
18
21
  // src/lib/Builders/MemoryNodeBuilder.ts
19
22
  import { assertDefinedEx as assertDefinedEx3 } from "@xylabs/assert";
@@ -26,6 +29,9 @@ import { NodeConfigSchema } from "@xyo-network/node-model";
26
29
  import { assertDefinedEx } from "@xylabs/assert";
27
30
  import { MemorySentinel } from "@xyo-network/sentinel-memory";
28
31
  var SentinelBuilder = class {
32
+ static {
33
+ __name(this, "SentinelBuilder");
34
+ }
29
35
  _sentinel;
30
36
  account;
31
37
  config;
@@ -60,6 +66,9 @@ import { asArchivistInstance } from "@xyo-network/archivist-model";
60
66
  import { StorageArchivist, StorageArchivistConfigSchema } from "@xyo-network/archivist-storage";
61
67
  import { asNodeInstance } from "@xyo-network/node-model";
62
68
  var StorageArchivistBuilder = class {
69
+ static {
70
+ __name(this, "StorageArchivistBuilder");
71
+ }
63
72
  _archivist;
64
73
  account;
65
74
  config;
@@ -81,15 +90,22 @@ var StorageArchivistBuilder = class {
81
90
  }
82
91
  async buildArchivist() {
83
92
  const config = this.buildConfig();
84
- return await StorageArchivist.create({ account: this.account, config });
93
+ return await StorageArchivist.create({
94
+ account: this.account,
95
+ config
96
+ });
85
97
  }
86
98
  buildConfig() {
87
99
  return {
88
100
  name: this.config.name,
89
101
  namespace: this.config.namespace,
90
102
  parents: {
91
- commit: this.remoteArchivist ? [this.remoteArchivist?.address] : void 0,
92
- read: this.remoteArchivist ? [this.remoteArchivist?.address] : void 0
103
+ commit: this.remoteArchivist ? [
104
+ this.remoteArchivist?.address
105
+ ] : void 0,
106
+ read: this.remoteArchivist ? [
107
+ this.remoteArchivist?.address
108
+ ] : void 0
93
109
  },
94
110
  schema: StorageArchivistConfigSchema,
95
111
  storeParentReads: true,
@@ -97,7 +113,9 @@ var StorageArchivistBuilder = class {
97
113
  };
98
114
  }
99
115
  async findParentArchivist() {
100
- const node = asNodeInstance(this.node, "node not defined", { required: true });
116
+ const node = asNodeInstance(this.node, "node not defined", {
117
+ required: true
118
+ });
101
119
  const bridge = await node.resolve("RemoteNodeBridge");
102
120
  if (bridge) {
103
121
  try {
@@ -112,6 +130,9 @@ var StorageArchivistBuilder = class {
112
130
 
113
131
  // src/lib/Builders/MemoryNodeBuilder.ts
114
132
  var MemoryNodeBuilder = class {
133
+ static {
134
+ __name(this, "MemoryNodeBuilder");
135
+ }
115
136
  _node;
116
137
  get node() {
117
138
  return assertDefinedEx3(this._node, () => "this._node was not defined upon create");
@@ -120,7 +141,10 @@ var MemoryNodeBuilder = class {
120
141
  const instance = new this();
121
142
  const memoryNode = node ?? await MemoryNode.create({
122
143
  account,
123
- config: { name, schema: NodeConfigSchema }
144
+ config: {
145
+ name,
146
+ schema: NodeConfigSchema
147
+ }
124
148
  });
125
149
  instance._node = memoryNode;
126
150
  return instance;
@@ -130,12 +154,21 @@ var MemoryNodeBuilder = class {
130
154
  await this.addArchivistStorage(account, moduleName, namespace);
131
155
  }
132
156
  async addArchivistMemory(moduleName, account) {
133
- const config = { name: moduleName, schema: MemoryArchivistConfigSchema };
134
- const memoryArchivist = await MemoryArchivist.create({ account, config });
157
+ const config = {
158
+ name: moduleName,
159
+ schema: MemoryArchivistConfigSchema
160
+ };
161
+ const memoryArchivist = await MemoryArchivist.create({
162
+ account,
163
+ config
164
+ });
135
165
  await this.attach(memoryArchivist, true);
136
166
  }
137
167
  async addArchivistStorage(account, moduleName, namespace) {
138
- const config = { name: moduleName, namespace };
168
+ const config = {
169
+ name: moduleName,
170
+ namespace
171
+ };
139
172
  const { archivist } = await StorageArchivistBuilder.create(config, account, this.node);
140
173
  await this.attach(archivist, true);
141
174
  }
@@ -147,7 +180,9 @@ var MemoryNodeBuilder = class {
147
180
  name: moduleName,
148
181
  nodeUrl: `${apiDomain}/node`,
149
182
  schema: HttpBridgeConfigSchema,
150
- security: { allowAnonymous: true }
183
+ security: {
184
+ allowAnonymous: true
185
+ }
151
186
  }
152
187
  });
153
188
  await this.attach(bridge, true);
@@ -161,20 +196,18 @@ var MemoryNodeBuilder = class {
161
196
  return sentinel;
162
197
  }
163
198
  async addWitnesses(pluginSetResolver, witnesses = []) {
164
- await Promise.all(
165
- pluginSetResolver.witnesses().map(async (pluginSet, index) => {
166
- const witness = await witnesses?.[index]?.();
167
- if (witness) {
168
- try {
169
- await this.witnessCleanup(witness);
170
- await this.node.register(witness);
171
- await this.node.attach(witness.address, true);
172
- } catch (e) {
173
- console.error("Error attaching witness", JSON.stringify(pluginSet, null, 2), e);
174
- }
199
+ await Promise.all(pluginSetResolver.witnesses().map(async (pluginSet, index) => {
200
+ const witness = await witnesses?.[index]?.();
201
+ if (witness) {
202
+ try {
203
+ await this.witnessCleanup(witness);
204
+ await this.node.register(witness);
205
+ await this.node.attach(witness.address, true);
206
+ } catch (e) {
207
+ console.error("Error attaching witness", JSON.stringify(pluginSet, null, 2), e);
175
208
  }
176
- })
177
- );
209
+ }
210
+ }));
178
211
  }
179
212
  async attach(mod, external, safeAttach) {
180
213
  try {
@@ -232,7 +265,7 @@ var RemoteNodeArchivistOffsetPaths = {
232
265
  };
233
266
 
234
267
  // src/lib/buildNodes.ts
235
- var knownRemoteNodes = () => {
268
+ var knownRemoteNodes = /* @__PURE__ */ __name(() => {
236
269
  const networkNames = defaultNetworkConfigs.map((config) => config.name);
237
270
  return networkNames.map((networkName) => {
238
271
  const name = assertDefinedEx4(networkName, () => "missing name in network config");
@@ -243,36 +276,31 @@ var knownRemoteNodes = () => {
243
276
  name
244
277
  };
245
278
  });
246
- };
247
- var BuildStandardNodes = async (wallet, onNodeBuilt) => {
279
+ }, "knownRemoteNodes");
280
+ var BuildStandardNodes = /* @__PURE__ */ __name(async (wallet, onNodeBuilt) => {
248
281
  try {
249
- return await Promise.all(
250
- knownRemoteNodes().map(async ({ apiDomain, name }) => {
251
- const remoteNodeOffset = RemoteNodeOffsetPaths[name];
252
- const remoteNodeWallet = await wallet.derivePath?.(remoteNodeOffset);
253
- const memoryNodeBuilder = await MemoryNodeBuilder.create({ name }, await remoteNodeWallet.derivePath?.("0"));
254
- await memoryNodeBuilder.addBridge(apiDomain);
255
- const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`;
256
- const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath);
257
- await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, "root");
258
- const { node } = memoryNodeBuilder;
259
- assertDefinedEx4(node, () => "Memory Node was not built successfully");
260
- onNodeBuilt?.(node);
261
- return node;
262
- })
263
- );
282
+ return await Promise.all(knownRemoteNodes().map(async ({ apiDomain, name }) => {
283
+ const remoteNodeOffset = RemoteNodeOffsetPaths[name];
284
+ const remoteNodeWallet = await wallet.derivePath?.(remoteNodeOffset);
285
+ const memoryNodeBuilder = await MemoryNodeBuilder.create({
286
+ name
287
+ }, await remoteNodeWallet.derivePath?.("0"));
288
+ await memoryNodeBuilder.addBridge(apiDomain);
289
+ const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`;
290
+ const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath);
291
+ await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, "root");
292
+ const { node } = memoryNodeBuilder;
293
+ assertDefinedEx4(node, () => "Memory Node was not built successfully");
294
+ onNodeBuilt?.(node);
295
+ return node;
296
+ }));
264
297
  } catch (e) {
265
298
  throw new Error(`Error Creating Known Remote Nodes: ${e}`);
266
299
  }
267
- };
300
+ }, "BuildStandardNodes");
268
301
 
269
302
  // src/contexts/StandardRemoteNodes/Providers.tsx
270
- import { jsx } from "react/jsx-runtime";
271
- var StandardNodesProvider = ({
272
- children,
273
- defaultRemoteNodes,
274
- wallet
275
- }) => {
303
+ var StandardNodesProvider = /* @__PURE__ */ __name(({ children, defaultRemoteNodes, wallet }) => {
276
304
  const [nodes, setNodes] = useResetState(defaultRemoteNodes);
277
305
  usePromise(async () => {
278
306
  if (wallet) {
@@ -281,15 +309,22 @@ var StandardNodesProvider = ({
281
309
  if (nodes2?.find((existingNode) => existingNode.config.name === node.config.name)) {
282
310
  return;
283
311
  }
284
- return nodes2 ? [...nodes2, node] : [node];
312
+ return nodes2 ? [
313
+ ...nodes2,
314
+ node
315
+ ] : [
316
+ node
317
+ ];
285
318
  });
286
319
  });
287
320
  }
288
- }, [wallet]);
289
- const findAddressByName = (name) => {
321
+ }, [
322
+ wallet
323
+ ]);
324
+ const findAddressByName = /* @__PURE__ */ __name((name) => {
290
325
  const validNetworkName = assertDefinedEx5(name, () => "name was not defined");
291
326
  return nodes?.find((node) => node.config.name === validNetworkName)?.address;
292
- };
327
+ }, "findAddressByName");
293
328
  const value = useMemo(() => ({
294
329
  findAddressByName,
295
330
  nodes,
@@ -298,69 +333,74 @@ var StandardNodesProvider = ({
298
333
  findAddressByName,
299
334
  nodes
300
335
  ]);
301
- return /* @__PURE__ */ jsx(
302
- StandardNodesContext,
303
- {
304
- value,
305
- children
306
- }
307
- );
308
- };
309
- var StandardNodesProviderWithWallet = (props) => {
336
+ return /* @__PURE__ */ React.createElement(StandardNodesContext, {
337
+ value
338
+ }, children);
339
+ }, "StandardNodesProvider");
340
+ var StandardNodesProviderWithWallet = /* @__PURE__ */ __name((props) => {
310
341
  const { activeAccount } = useWalletContext();
311
- return /* @__PURE__ */ jsx(StandardNodesProvider, { wallet: activeAccount, ...props });
312
- };
342
+ return /* @__PURE__ */ React.createElement(StandardNodesProvider, {
343
+ wallet: activeAccount,
344
+ ...props
345
+ });
346
+ }, "StandardNodesProviderWithWallet");
313
347
 
314
348
  // src/contexts/StandardRemoteNodes/use.ts
315
349
  import { useContextEx } from "@xylabs/react-shared";
316
- var useStandardNodes = (required = false) => useContextEx(StandardNodesContext, "StandardNodes", required);
350
+ var useStandardNodes = /* @__PURE__ */ __name((required = false) => useContextEx(StandardNodesContext, "StandardNodes", required), "useStandardNodes");
317
351
 
318
352
  // src/hooks/useActiveNodeAddress.ts
319
353
  import { useProvidedNode } from "@xyo-network/react-node";
320
354
  import { useMemo as useMemo2 } from "react";
321
- var useActiveNodeAddress = (networkName) => {
355
+ var useActiveNodeAddress = /* @__PURE__ */ __name((networkName) => {
322
356
  const [node] = useProvidedNode();
323
357
  const { nodes, findAddressByName } = useStandardNodes();
324
358
  const activeNodeAddress = useMemo2(() => {
325
359
  if (node && nodes && findAddressByName && networkName) {
326
360
  return findAddressByName(networkName);
327
361
  }
328
- }, [findAddressByName, networkName, node, nodes]);
362
+ }, [
363
+ findAddressByName,
364
+ networkName,
365
+ node,
366
+ nodes
367
+ ]);
329
368
  return activeNodeAddress;
330
- };
369
+ }, "useActiveNodeAddress");
331
370
 
332
371
  // src/components/ActiveStandardNode.tsx
333
- import { Fragment, jsx as jsx2 } from "react/jsx-runtime";
334
- var ActiveStandardNode = ({ children, nodeNameOrAddress }) => {
372
+ var ActiveStandardNode = /* @__PURE__ */ __name(({ children, nodeNameOrAddress }) => {
335
373
  const { network } = useNetwork();
336
374
  const [node] = useWeakNodeFromNode(nodeNameOrAddress);
337
375
  const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState();
338
376
  const { nodes } = useStandardNodes();
339
377
  const selectedNodeAddress = useActiveNodeAddress(network?.name);
340
- useAsyncEffect(
341
- async (mounted) => {
342
- const nodeInstance = node?.deref();
343
- if (nodeInstance && selectedNodeAddress) {
344
- try {
345
- if ((await nodeInstance?.attached())?.includes(selectedNodeAddress)) {
346
- return;
347
- }
348
- await nodeInstance?.attach(selectedNodeAddress, true);
349
- if (mounted()) {
350
- if (activeRemoteNodeAddress) {
351
- await nodeInstance?.detach(activeRemoteNodeAddress);
352
- }
353
- setActiveRemoteNodeAddress(selectedNodeAddress);
378
+ useAsyncEffect(async (mounted) => {
379
+ const nodeInstance = node?.deref();
380
+ if (nodeInstance && selectedNodeAddress) {
381
+ try {
382
+ if ((await nodeInstance?.attached())?.includes(selectedNodeAddress)) {
383
+ return;
384
+ }
385
+ await nodeInstance?.attach(selectedNodeAddress, true);
386
+ if (mounted()) {
387
+ if (activeRemoteNodeAddress) {
388
+ await nodeInstance?.detach(activeRemoteNodeAddress);
354
389
  }
355
- } catch (e) {
356
- console.error("Error Attaching Selected Node Address", e);
390
+ setActiveRemoteNodeAddress(selectedNodeAddress);
357
391
  }
392
+ } catch (e) {
393
+ console.error("Error Attaching Selected Node Address", e);
358
394
  }
359
- },
360
- [activeRemoteNodeAddress, node, selectedNodeAddress, nodes]
361
- );
362
- return /* @__PURE__ */ jsx2(Fragment, { children });
363
- };
395
+ }
396
+ }, [
397
+ activeRemoteNodeAddress,
398
+ node,
399
+ selectedNodeAddress,
400
+ nodes
401
+ ]);
402
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, children);
403
+ }, "ActiveStandardNode");
364
404
  export {
365
405
  ActiveStandardNode,
366
406
  BuildStandardNodes,
@@ -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 { 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 '@xylabs/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 { MemoryNode } from '@xyo-network/node-memory'\nimport { useWalletContext } from '@xyo-network/react-wallet'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport type { PropsWithChildren } from 'react'\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 type StandardNodesProviderProps = PropsWithChildren<{\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: StandardNodesState = useMemo(() => ({\n findAddressByName,\n nodes,\n provided: true,\n }), [findAddressByName,\n nodes])\n\n return (\n <StandardNodesContext\n value={value}\n >\n {children}\n </StandardNodesContext>\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(mod.address))\n if (existingModule) {\n await this.node.detach(existingModule.address)\n await this.node.unregister(existingModule)\n }\n }\n await this.node.register(mod)\n await this.node.attach(mod.address, external)\n } catch (e) {\n throw new Error(`Error adding ${mod.config.name ?? mod.address} to MemoryNode: ${e}`)\n }\n }\n\n private async witnessCleanup(witness: WitnessModule) {\n if ((await this.node.registered()).includes(witness.address)) {\n const existingWitness = await this.node.resolve(witness.address)\n if (existingWitness) {\n await this.node.unregister(existingWitness)\n }\n }\n }\n}\n","import { assertDefinedEx } from '@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 private account: AccountInstance\n private config: SentinelConfig\n\n protected constructor(\n config: SentinelConfig,\n account: AccountInstance,\n ) {\n assertDefinedEx(config, () => 'config was not defined')\n this.config = config\n this.account = account\n }\n\n get sentinel() {\n return assertDefinedEx(this._sentinel, () => 'this._sentinel not defined upon create')\n }\n\n static async create(config: SentinelConfig, account: AccountInstance): Promise<SentinelBuilder> {\n const instance = new this(config, account)\n instance._sentinel = await instance.buildSentinel()\n return instance\n }\n\n async buildSentinel() {\n const params = this.buildParams()\n return (await MemorySentinel.create(params)) 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 { ArchivistModuleInstance } 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 account: AccountInstance\n private config: ArchivistBuilderConfig\n private node?: MemoryNode\n private remoteArchivist: ArchivistModuleInstance | undefined\n\n protected constructor(\n config: ArchivistBuilderConfig,\n account: AccountInstance,\n node?: MemoryNode,\n ) {\n this.config = config\n this.account = account\n this.node = node\n }\n\n get archivist() {\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', { required: true })\n const bridge = (await node.resolve('RemoteNodeBridge'))\n if (bridge) {\n try {\n const archivist = (await bridge.resolve('Archivist'))\n return asArchivistInstance(archivist)\n } catch {\n console.error('Error Resolving Parent Archivist', this.node?.config.name, this.config)\n }\n }\n }\n}\n","import { assertDefinedEx } from '@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?.find(node => node.type === 'archivist')?.uri\n const apiDomain = assertDefinedEx<string>(uri, () => 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\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 '@xylabs/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":["assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","nodes","assertDefinedEx","useMemo","useMemo","jsx"]}
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 '@xylabs/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 { MemoryNode } from '@xyo-network/node-memory'\nimport { useWalletContext } from '@xyo-network/react-wallet'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport type { PropsWithChildren } from 'react'\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 type StandardNodesProviderProps = PropsWithChildren<{\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: StandardNodesState = useMemo(() => ({\n findAddressByName,\n nodes,\n provided: true,\n }), [findAddressByName,\n nodes])\n\n return (\n <StandardNodesContext\n value={value}\n >\n {children}\n </StandardNodesContext>\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(mod.address))\n if (existingModule) {\n await this.node.detach(existingModule.address)\n await this.node.unregister(existingModule)\n }\n }\n await this.node.register(mod)\n await this.node.attach(mod.address, external)\n } catch (e) {\n throw new Error(`Error adding ${mod.config.name ?? mod.address} to MemoryNode: ${e}`)\n }\n }\n\n private async witnessCleanup(witness: WitnessModule) {\n if ((await this.node.registered()).includes(witness.address)) {\n const existingWitness = await this.node.resolve(witness.address)\n if (existingWitness) {\n await this.node.unregister(existingWitness)\n }\n }\n }\n}\n","import { assertDefinedEx } from '@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 private account: AccountInstance\n private config: SentinelConfig\n\n protected constructor(\n config: SentinelConfig,\n account: AccountInstance,\n ) {\n assertDefinedEx(config, () => 'config was not defined')\n this.config = config\n this.account = account\n }\n\n get sentinel() {\n return assertDefinedEx(this._sentinel, () => 'this._sentinel not defined upon create')\n }\n\n static async create(config: SentinelConfig, account: AccountInstance): Promise<SentinelBuilder> {\n const instance = new this(config, account)\n instance._sentinel = await instance.buildSentinel()\n return instance\n }\n\n async buildSentinel() {\n const params = this.buildParams()\n return (await MemorySentinel.create(params)) 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 { ArchivistModuleInstance } 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 account: AccountInstance\n private config: ArchivistBuilderConfig\n private node?: MemoryNode\n private remoteArchivist: ArchivistModuleInstance | undefined\n\n protected constructor(\n config: ArchivistBuilderConfig,\n account: AccountInstance,\n node?: MemoryNode,\n ) {\n this.config = config\n this.account = account\n this.node = node\n }\n\n get archivist() {\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', { required: true })\n const bridge = (await node.resolve('RemoteNodeBridge'))\n if (bridge) {\n try {\n const archivist = (await bridge.resolve('Archivist'))\n return asArchivistInstance(archivist)\n } catch {\n console.error('Error Resolving Parent Archivist', this.node?.config.name, this.config)\n }\n }\n }\n}\n","import { assertDefinedEx } from '@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?.find(node => node.type === 'archivist')?.uri\n const apiDomain = assertDefinedEx<string>(uri, () => 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\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 '@xylabs/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","account","config","assertDefinedEx","sentinel","create","instance","buildSentinel","params","buildParams","MemorySentinel","assertDefinedEx","asArchivistInstance","StorageArchivist","StorageArchivistConfigSchema","asNodeInstance","StorageArchivistBuilder","_archivist","account","config","node","remoteArchivist","archivist","assertDefinedEx","create","instance","findParentArchivist","buildArchivist","buildConfig","StorageArchivist","name","namespace","parents","commit","address","undefined","read","schema","StorageArchivistConfigSchema","storeParentReads","type","asNodeInstance","required","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","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","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","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"]}
@@ -17,6 +17,6 @@ export declare class StorageArchivistBuilder {
17
17
  static create(config: ArchivistBuilderConfig, account: AccountInstance, node: MemoryNode): Promise<StorageArchivistBuilder>;
18
18
  buildArchivist(): Promise<StorageArchivist<import("@xyo-network/archivist-storage").StorageArchivistParams, import("@xyo-network/archivist-model").ArchivistModuleEventData>>;
19
19
  buildConfig(): StorageArchivistConfig;
20
- findParentArchivist(): Promise<import("@xyo-network/archivist-model").ArchivistInstance<import("@xyo-network/archivist-model").ArchivistParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/archivist-model").ArchivistConfig<void, void>>>, import("@xyo-network/archivist-model").ArchivistModuleEventData, import(".store/@xyo-network-payload-model-npm-5.2.17-ce2c499754/package").Payload<void, void>> | undefined>;
20
+ findParentArchivist(): Promise<import("@xyo-network/archivist-model").ArchivistInstance<import("@xyo-network/archivist-model").ArchivistParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/archivist-model").ArchivistConfig<void, void>>>, import("@xyo-network/archivist-model").ArchivistModuleEventData, import("@xyo-network/payload-model").Payload<void, void>> | undefined>;
21
21
  }
22
22
  //# sourceMappingURL=StorageArchivistBuilder.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-standard-node",
3
- "version": "7.4.2",
3
+ "version": "7.5.0",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -43,41 +43,41 @@
43
43
  "src"
44
44
  ],
45
45
  "dependencies": {
46
- "@xylabs/assert": "~5.0.50",
47
- "@xylabs/hex": "~5.0.50",
48
- "@xylabs/react-async-effect": "~7.1.8",
49
- "@xylabs/react-hooks": "~7.1.8",
50
- "@xylabs/react-promise": "~7.1.8",
51
- "@xylabs/react-shared": "~7.1.8",
52
- "@xyo-network/account-model": "~5.2.17",
53
- "@xyo-network/archivist-memory": "~5.2.17",
54
- "@xyo-network/archivist-model": "~5.2.17",
55
- "@xyo-network/archivist-storage": "~5.2.17",
56
- "@xyo-network/bridge-http": "~5.2.17",
57
- "@xyo-network/module-model": "~5.2.17",
58
- "@xyo-network/node-memory": "~5.2.17",
59
- "@xyo-network/node-model": "~5.2.17",
60
- "@xyo-network/payloadset-plugin": "~5.2.17",
61
- "@xyo-network/react-network": "^7.4.2",
62
- "@xyo-network/react-node": "^7.4.2",
63
- "@xyo-network/react-wallet": "^7.4.2",
64
- "@xyo-network/sentinel-memory": "~5.2.17",
65
- "@xyo-network/sentinel-model": "~5.2.17",
66
- "@xyo-network/wallet-model": "~5.2.17",
67
- "@xyo-network/witness-model": "~5.2.17"
46
+ "@xylabs/assert": "~5.0.64",
47
+ "@xylabs/react-async-effect": "~7.1.9",
48
+ "@xylabs/react-hooks": "~7.1.9",
49
+ "@xylabs/react-promise": "~7.1.9",
50
+ "@xylabs/react-shared": "~7.1.9",
51
+ "@xyo-network/account-model": "~5.3.2",
52
+ "@xyo-network/archivist-memory": "~5.3.2",
53
+ "@xyo-network/archivist-model": "~5.3.2",
54
+ "@xyo-network/archivist-storage": "~5.3.2",
55
+ "@xyo-network/bridge-http": "~5.3.2",
56
+ "@xyo-network/module-model": "~5.3.2",
57
+ "@xyo-network/node-memory": "~5.3.2",
58
+ "@xyo-network/node-model": "~5.3.2",
59
+ "@xyo-network/payloadset-plugin": "~5.3.2",
60
+ "@xyo-network/react-network": "7.5.0",
61
+ "@xyo-network/react-node": "7.5.0",
62
+ "@xyo-network/react-wallet": "7.5.0",
63
+ "@xyo-network/sentinel-memory": "~5.3.2",
64
+ "@xyo-network/sentinel-model": "~5.3.2",
65
+ "@xyo-network/wallet-model": "~5.3.2",
66
+ "@xyo-network/witness-model": "~5.3.2"
68
67
  },
69
68
  "devDependencies": {
70
- "@mui/icons-material": "~7.3.6",
71
- "@mui/material": "~7.3.6",
72
- "@types/react": "^19.2.7",
73
- "@xylabs/ts-scripts-yarn3": "~7.2.8",
74
- "@xylabs/tsconfig": "~7.2.8",
75
- "@xylabs/tsconfig-dom": "~7.2.8",
76
- "@xylabs/tsconfig-react": "~7.2.8",
77
- "react": "^19.2.1",
78
- "react-dom": "^19.2.1",
79
- "react-router-dom": "^7.10.0",
80
- "storybook": "~10.1.4",
69
+ "@mui/icons-material": "~7.3.7",
70
+ "@mui/material": "~7.3.7",
71
+ "@types/react": "^19.2.10",
72
+ "@xylabs/sdk-js": "~5.0.64",
73
+ "@xylabs/ts-scripts-yarn3": "~7.3.2",
74
+ "@xylabs/tsconfig": "~7.3.2",
75
+ "@xylabs/tsconfig-dom": "~7.3.2",
76
+ "@xylabs/tsconfig-react": "~7.3.2",
77
+ "react": "^19.2.4",
78
+ "react-dom": "^19.2.4",
79
+ "react-router-dom": "^7.13.0",
80
+ "storybook": "~10.2.1",
81
81
  "typescript": "^5.9.3"
82
82
  },
83
83
  "peerDependencies": {
@@ -91,4 +91,4 @@
91
91
  "access": "public"
92
92
  },
93
93
  "docs": "dist/docs.json"
94
- }
94
+ }
@@ -1,5 +1,5 @@
1
- import type { Address } from '@xylabs/hex'
2
1
  import type { ContextExState } from '@xylabs/react-shared'
2
+ import type { Address } from '@xylabs/sdk-js'
3
3
  import type { MemoryNode } from '@xyo-network/node-memory'
4
4
 
5
5
  export type StandardNodesState = ContextExState<{