@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.
- package/dist/browser/contexts/StandardRemoteNodes/Context.d.ts.map +1 -1
- package/dist/browser/contexts/StandardRemoteNodes/State.d.ts +1 -1
- package/dist/browser/contexts/StandardRemoteNodes/State.d.ts.map +1 -1
- package/dist/browser/contexts/StandardRemoteNodes/use.d.ts.map +1 -1
- package/dist/browser/hooks/useActiveNodeAddress.d.ts +5 -1
- package/dist/browser/hooks/useActiveNodeAddress.d.ts.map +1 -1
- package/dist/browser/index.mjs +131 -91
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/lib/Builders/StorageArchivistBuilder.d.ts +1 -1
- package/package.json +35 -35
- package/src/contexts/StandardRemoteNodes/State.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/StandardRemoteNodes/Context.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB;
|
|
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,
|
|
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;
|
|
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) =>
|
|
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,
|
|
1
|
+
{"version":3,"file":"useActiveNodeAddress.d.ts","sourceRoot":"","sources":["../../../src/hooks/useActiveNodeAddress.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM;;;;cAWxD,CAAA"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -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({
|
|
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 ? [
|
|
92
|
-
|
|
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", {
|
|
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: {
|
|
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 = {
|
|
134
|
-
|
|
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 = {
|
|
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: {
|
|
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
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
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
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
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
|
-
|
|
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 ? [
|
|
312
|
+
return nodes2 ? [
|
|
313
|
+
...nodes2,
|
|
314
|
+
node
|
|
315
|
+
] : [
|
|
316
|
+
node
|
|
317
|
+
];
|
|
285
318
|
});
|
|
286
319
|
});
|
|
287
320
|
}
|
|
288
|
-
}, [
|
|
289
|
-
|
|
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__ */
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
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__ */
|
|
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
|
-
}, [
|
|
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
|
-
|
|
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
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
if (
|
|
350
|
-
|
|
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
|
-
|
|
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
|
-
|
|
361
|
-
|
|
362
|
-
|
|
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":";;;;AAAA,SAASA,sBAAsB;AAC/B,SAASC,kBAAkB;AAC3B,SAASC,2BAA2B;AAEpC,OAAOC,UAASC,gBAAgB;;;ACJhC,SAASC,uBAAuB;AAIzB,IAAMC,uBAAuBD,gBAAAA;;;ACJpC,SAASE,mBAAAA,wBAAuB;AAChC,SAASC,qBAAqB;AAC9B,SAASC,kBAAkB;AAE3B,SAASC,wBAAwB;AAGjC,OAAOC,SAASC,eAAe;;;ACP/B,SAASC,mBAAAA,wBAAuB;AAGhC,SAASC,iBAAiBC,mCAAmC;AAC7D,SAASC,YAAYC,8BAA8B;AAEnD,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB;;;ACPjC,SAASC,uBAAuB;AAGhC,SAASC,sBAAsB;AAGxB,IAAMC,kBAAN,MAAMA;EANb,OAMaA;;;EACHC;EAEAC;EACAC;EAER,YACEA,QACAD,SACA;AACAE,oBAAgBD,QAAQ,MAAM,wBAAA;AAC9B,SAAKA,SAASA;AACd,SAAKD,UAAUA;EACjB;EAEA,IAAIG,WAAW;AACb,WAAOD,gBAAgB,KAAKH,WAAW,MAAM,wCAAA;EAC/C;EAEA,aAAaK,OAAOH,QAAwBD,SAAoD;AAC9F,UAAMK,WAAW,IAAI,KAAKJ,QAAQD,OAAAA;AAClCK,aAASN,YAAY,MAAMM,SAASC,cAAa;AACjD,WAAOD;EACT;EAEA,MAAMC,gBAAgB;AACpB,UAAMC,SAAS,KAAKC,YAAW;AAC/B,WAAQ,MAAMC,eAAeL,OAAOG,MAAAA;EACtC;EAEQC,cAAoC;AAC1C,WAAO;MACLR,SAAS,KAAKA;MACdC,QAAQ,KAAKA;IACf;EACF;AACF;;;AC1CA,SAASS,mBAAAA,wBAAuB;AAGhC,SAASC,2BAA2B;AAEpC,SAASC,kBAAkBC,oCAAoC;AAE/D,SAASC,sBAAsB;AAMxB,IAAMC,0BAAN,MAAMA;EAbb,OAaaA;;;EACHC;EACAC;EACAC;EACAC;EACAC;EAER,YACEF,QACAD,SACAE,MACA;AACA,SAAKD,SAASA;AACd,SAAKD,UAAUA;AACf,SAAKE,OAAOA;EACd;EAEA,IAAIE,YAAY;AACd,WAAOC,iBAAgB,KAAKN,YAAY,MAAM,uCAAA;EAChD;EAEA,aAAaO,OAAOL,QAAgCD,SAA0BE,MAAoD;AAChI,UAAMK,WAAW,IAAI,KAAKN,QAAQD,SAASE,IAAAA;AAC3CK,aAASJ,kBAAkB,MAAMI,SAASC,oBAAmB;AAC7DD,aAASR,aAAa,MAAMQ,SAASE,eAAc;AACnD,WAAOF;EACT;EAEA,MAAME,iBAAiB;AACrB,UAAMR,SAAS,KAAKS,YAAW;AAC/B,WAAQ,MAAMC,iBAAiBL,OAAO;MAAEN,SAAS,KAAKA;MAASC;IAAO,CAAA;EACxE;EAEAS,cAAsC;AACpC,WAAO;MACLE,MAAM,KAAKX,OAAOW;MAClBC,WAAW,KAAKZ,OAAOY;MACvBC,SAAS;QACPC,QAAQ,KAAKZ,kBAAkB;UAAC,KAAKA,iBAAiBa;YAAWC;QACjEC,MAAM,KAAKf,kBAAkB;UAAC,KAAKA,iBAAiBa;YAAWC;MACjE;MACAE,QAAQC;MACRC,kBAAkB;MAClBC,MAAM;IACR;EACF;EAEA,MAAMd,sBAAsB;AAC1B,UAAMN,OAAOqB,eAAe,KAAKrB,MAAM,oBAAoB;MAAEsB,UAAU;IAAK,CAAA;AAC5E,UAAMC,SAAU,MAAMvB,KAAKwB,QAAQ,kBAAA;AACnC,QAAID,QAAQ;AACV,UAAI;AACF,cAAMrB,YAAa,MAAMqB,OAAOC,QAAQ,WAAA;AACxC,eAAOC,oBAAoBvB,SAAAA;MAC7B,QAAQ;AACNwB,gBAAQC,MAAM,oCAAoC,KAAK3B,MAAMD,OAAOW,MAAM,KAAKX,MAAM;MACvF;IACF;EACF;AACF;;;AFpDO,IAAM6B,oBAAN,MAAMA;EApBb,OAoBaA;;;EACHC;EAER,IAAIC,OAAO;AACT,WAAOC,iBAAgB,KAAKF,OAAO,MAAM,wCAAA;EAC3C;EAEA,aAAaG,OAAO,EAAEC,MAAMH,KAAI,GAA6BI,SAAuD;AAClH,UAAMC,WAAW,IAAI,KAAI;AAEzB,UAAMC,aAAyBN,QAAS,MAAMO,WAAWL,OAAO;MAC9DE;MACAI,QAAQ;QAAEL;QAAMM,QAAQC;MAAiB;IAC3C,CAAA;AACAL,aAASN,QAAQO;AACjB,WAAOD;EACT;;EAGA,MAAMM,aAAaP,SAA0BQ,YAAqBC,WAAoB;AACpF,UAAM,KAAKC,oBAAoBV,SAASQ,YAAYC,SAAAA;EACtD;EAEA,MAAME,mBAAmBH,YAAqBR,SAA2B;AACvE,UAAMI,SAAgC;MAAEL,MAAMS;MAAYH,QAAQO;IAA4B;AAC9F,UAAMC,kBAAkB,MAAMC,gBAAgBhB,OAAO;MAAEE;MAASI;IAAO,CAAA;AAEvE,UAAM,KAAKW,OAAOF,iBAAiB,IAAA;EACrC;EAEA,MAAMH,oBAAoBV,SAA0BQ,YAAqBC,WAAoB;AAC3F,UAAML,SAAS;MAAEL,MAAMS;MAAYC;IAAU;AAC7C,UAAM,EAAEO,UAAS,IAAK,MAAMC,wBAAwBnB,OAAOM,QAAQJ,SAAS,KAAKJ,IAAI;AAErF,UAAM,KAAKmB,OAAOC,WAAW,IAAA;EAC/B;EAEA,MAAME,UAAUC,WAAmBX,aAAa,oBAAoBR,SAA2B;AAC7F,QAAI;AACF,YAAMoB,SAAS,MAAMC,WAAWvB,OAAO;QACrCE;QACAI,QAAQ;UACNL,MAAMS;UAAYc,SAAS,GAAGH,SAAAA;UAAkBd,QAAQkB;UAAwBC,UAAU;YAAEC,gBAAgB;UAAK;QACnH;MACF,CAAA;AACA,YAAM,KAAKV,OAAOK,QAAQ,IAAA;IAC5B,SAASM,GAAG;AACVC,cAAQC,MAAM,yBAAyBF,CAAAA;IACzC;EACF;EAEA,MAAMG,YAAYzB,QAAwBJ,SAA0B;AAClE,UAAM,EAAE8B,SAAQ,IAAK,MAAMC,gBAAgBjC,OAAOM,QAAQJ,OAAAA;AAC1D,UAAM,KAAKe,OAAOe,UAAU,MAAM,IAAA;AAClC,WAAOA;EACT;EAEA,MAAME,aAAaC,mBAA6CC,YAA0D,CAAA,GAAI;AAC5H,UAAMC,QAAQC,IACZH,kBAAkBC,UAAS,EAAGG,IAAI,OAAOC,WAAWC,UAAAA;AAElD,YAAMC,UAAU,MAAMN,YAAYK,KAAAA,IAAM;AACxC,UAAIC,SAAS;AACX,YAAI;AACF,gBAAM,KAAKC,eAAeD,OAAAA;AAC1B,gBAAM,KAAK5C,KAAK8C,SAASF,OAAAA;AACzB,gBAAM,KAAK5C,KAAKmB,OAAOyB,QAAQG,SAAS,IAAA;QAC1C,SAASjB,GAAG;AACVC,kBAAQC,MAAM,2BAA2BgB,KAAKC,UAAUP,WAAW,MAAM,CAAA,GAAIZ,CAAAA;QAC/E;MACF;IACF,CAAA,CAAA;EAEJ;EAEA,MAAMX,OAAO+B,KAA+BC,UAAoBC,YAAsB;AACpF,QAAI;AACF,UAAIA,YAAY;AACd,cAAMC,iBAAkB,MAAM,KAAKrD,KAAKsD,QAAQJ,IAAIH,OAAO;AAC3D,YAAIM,gBAAgB;AAClB,gBAAM,KAAKrD,KAAKuD,OAAOF,eAAeN,OAAO;AAC7C,gBAAM,KAAK/C,KAAKwD,WAAWH,cAAAA;QAC7B;MACF;AACA,YAAM,KAAKrD,KAAK8C,SAASI,GAAAA;AACzB,YAAM,KAAKlD,KAAKmB,OAAO+B,IAAIH,SAASI,QAAAA;IACtC,SAASrB,GAAG;AACV,YAAM,IAAI2B,MAAM,gBAAgBP,IAAI1C,OAAOL,QAAQ+C,IAAIH,OAAO,mBAAmBjB,CAAAA,EAAG;IACtF;EACF;EAEA,MAAce,eAAeD,SAAwB;AACnD,SAAK,MAAM,KAAK5C,KAAK0D,WAAU,GAAIC,SAASf,QAAQG,OAAO,GAAG;AAC5D,YAAMa,kBAAkB,MAAM,KAAK5D,KAAKsD,QAAQV,QAAQG,OAAO;AAC/D,UAAIa,iBAAiB;AACnB,cAAM,KAAK5D,KAAKwD,WAAWI,eAAAA;MAC7B;IACF;EACF;AACF;;;AGvHA,SAASC,mBAAAA,wBAAuB;AAEhC,SAASC,6BAA6B;;;ACF/B,IAAMC,aAAa;AAEnB,IAAMC,uBAAuB;;;ACA7B,IAAMC,uBAAuB;AAE7B,IAAMC,wBAAgD;EAC3DC,UAAU;EACVC,OAAO;EACPC,MAAM;AACR;AAEO,IAAMC,iCAAyE;EACpFH,UAAU;IACRI,YAAY;IACZ,CAACC,oBAAAA,GAAuB;EAC1B;EACAJ,OAAO;IACLG,YAAY;IACZ,CAACC,oBAAAA,GAAuB;EAC1B;EACAH,MAAM;IACJE,YAAY;IACZ,CAACC,oBAAAA,GAAuB;EAC1B;AACF;;;AFdA,IAAMC,mBAAmB,6BAAA;AACvB,QAAMC,eAAeC,sBAAsBC,IAAIC,CAAAA,WAAUA,OAAOC,IAAI;AACpE,SAAOJ,aAAaE,IAAI,CAACG,gBAAAA;AACvB,UAAMD,OAAOE,iBAAwBD,aAAa,MAAM,gCAAA;AACxD,UAAME,MAAMN,sBAAsBO,KAAKL,CAAAA,WAAUA,OAAOC,SAASC,WAAAA,GAAcI,OAAOD,KAAKE,CAAAA,SAAQA,KAAKC,SAAS,WAAA,GAAcJ;AAC/H,UAAMK,YAAYN,iBAAwBC,KAAK,MAAM,iDAAA;AACrD,WAAO;MACLK;MACAR;IACF;EACF,CAAA;AACF,GAXyB;AAalB,IAAMS,qBAAqB,8BAAOC,QAAwBC,gBAAAA;AAC/D,MAAI;AACF,WAAO,MAAMC,QAAQC,IACnBlB,iBAAAA,EAAmBG,IAAI,OAAO,EAAEU,WAAWR,KAAI,MAAE;AAC/C,YAAMc,mBAAmBC,sBAAsBf,IAAAA;AAC/C,YAAMgB,mBAAmB,MAAMN,OAAOO,aAAaH,gBAAAA;AAEnD,YAAMI,oBAAoB,MAAMC,kBAAkBC,OAAO;QAAEpB;MAAK,GAAG,MAAMgB,iBAAiBC,aAAa,GAAA,CAAA;AACvG,YAAMC,kBAAkBG,UAAUb,SAAAA;AAElC,YAAMc,oBAAoB,GAAGR,gBAAAA,IAAoBS,+BAA+BvB,IAAAA,EAAMwB,oBAAAA,CAAqB;AAC3G,YAAMC,uBAAuB,MAAMf,OAAOO,aAAaK,iBAAAA;AACvD,YAAMJ,kBAAkBQ,oBAAoBD,sBAAsBD,sBAAsB,MAAA;AAExF,YAAM,EAAElB,KAAI,IAAKY;AACjBhB,MAAAA,iBAAgBI,MAAM,MAAM,wCAAA;AAC5BK,oBAAcL,IAAAA;AAEd,aAAOA;IACT,CAAA,CAAA;EAEJ,SAASqB,GAAG;AACV,UAAM,IAAIC,MAAM,sCAAsCD,CAAAA,EAAG;EAC3D;AACF,GAxBkC;;;AJJ3B,IAAME,wBAA8D,wBAAC,EAC1EC,UAAUC,oBAAoBC,OAAM,MACrC;AACC,QAAM,CAACC,OAAOC,QAAAA,IAAYC,cAA2CJ,kBAAAA;AAErEK,aAAW,YAAA;AACT,QAAIJ,QAAQ;AACV,YAAMK,mBAAmBL,QAAQ,CAACM,SAAAA;AAChCJ,iBAAS,CAACD,WAAAA;AACR,cAAIA,QAAOM,KAAKC,CAAAA,iBAAgBA,aAAaC,OAAOC,SAASJ,KAAKG,OAAOC,IAAI,GAAG;AAC9E;UACF;AACA,iBAAOT,SAAQ;eAAIA;YAAOK;cAAQ;YAACA;;QACrC,CAAA;MACF,CAAA;IACF;EACF,GAAG;IAACN;GAAO;AAEX,QAAMW,oBAAoB,wBAACD,SAAAA;AACzB,UAAME,mBAAmBC,iBAAgBH,MAAM,MAAM,sBAAA;AACrD,WAAOT,OAAOM,KAAKD,CAAAA,SAAQA,KAAKG,OAAOC,SAASE,gBAAAA,GAAmBE;EACrE,GAH0B;AAK1B,QAAMC,QAA4BC,QAAQ,OAAO;IAC/CL;IACAV;IACAgB,UAAU;EACZ,IAAI;IAACN;IACHV;GAAM;AAER,SACE,sBAAA,cAACiB,sBAAAA;IACCH;KAECjB,QAAAA;AAGP,GArC2E;AAuCpE,IAAMqB,kCAAwF,wBAACC,UAAAA;AACpG,QAAM,EAAEC,cAAa,IAAKC,iBAAAA;AAC1B,SAAO,sBAAA,cAACzB,uBAAAA;IAAsBG,QAAQqB;IAAgB,GAAGD;;AAC3D,GAHqG;;;AOzDrG,SAASG,oBAAoB;AAItB,IAAMC,mBAAmB,wBAACC,WAAW,UAAUC,aAAaC,sBAAsB,iBAAiBF,QAAAA,GAA1E;;;ACJhC,SAASG,uBAAuB;AAChC,SAASC,WAAAA,gBAAe;AAIjB,IAAMC,uBAAuB,wBAACC,gBAAAA;AACnC,QAAM,CAACC,IAAAA,IAAQC,gBAAAA;AACf,QAAM,EAAEC,OAAOC,kBAAiB,IAAKC,iBAAAA;AAErC,QAAMC,oBAAoBC,SAAQ,MAAA;AAChC,QAAIN,QAAQE,SAASC,qBAAqBJ,aAAa;AACrD,aAAOI,kBAAkBJ,WAAAA;IAC3B;EACF,GAAG;IAACI;IAAmBJ;IAAaC;IAAME;GAAM;AAEhD,SAAOG;AACT,GAXoC;;;AVQ7B,IAAME,qBAAwD,wBAAC,EAAEC,UAAUC,kBAAiB,MAAE;AACnG,QAAM,EAAEC,QAAO,IAAKC,WAAAA;AACpB,QAAM,CAACC,IAAAA,IAAQC,oBAAoBJ,iBAAAA;AACnC,QAAM,CAACK,yBAAyBC,0BAAAA,IAA8BC,SAAAA;AAC9D,QAAM,EAAEC,MAAK,IAAKC,iBAAAA;AAElB,QAAMC,sBAAsBC,qBAAqBV,SAASW,IAAAA;AAG1DC,iBACE,OAAOC,YAAAA;AACL,UAAMC,eAAeZ,MAAMa,MAAAA;AAC3B,QAAID,gBAAgBL,qBAAqB;AACvC,UAAI;AACF,aAAK,MAAMK,cAAcE,SAAAA,IAAaC,SAASR,mBAAAA,GAAsB;AACnE;QACF;AACA,cAAMK,cAAcI,OAAOT,qBAAqB,IAAA;AAEhD,YAAII,QAAAA,GAAW;AAEb,cAAIT,yBAAyB;AAC3B,kBAAMU,cAAcK,OAAOf,uBAAAA;UAC7B;AACAC,qCAA2BI,mBAAAA;QAC7B;MACF,SAASW,GAAG;AACVC,gBAAQC,MAAM,yCAAyCF,CAAAA;MACzD;IACF;EACF,GACA;IAAChB;IAAyBF;IAAMO;IAAqBF;GAAM;AAG7D,SAAO,gBAAAgB,OAAA,cAAAA,OAAA,UAAA,MAAGzB,QAAAA;AACZ,GAnCqE;","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("
|
|
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.
|
|
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.
|
|
47
|
-
"@xylabs/
|
|
48
|
-
"@xylabs/react-
|
|
49
|
-
"@xylabs/react-
|
|
50
|
-
"@xylabs/react-
|
|
51
|
-
"@
|
|
52
|
-
"@xyo-network/
|
|
53
|
-
"@xyo-network/archivist-
|
|
54
|
-
"@xyo-network/archivist-
|
|
55
|
-
"@xyo-network/
|
|
56
|
-
"@xyo-network/
|
|
57
|
-
"@xyo-network/
|
|
58
|
-
"@xyo-network/node-
|
|
59
|
-
"@xyo-network/
|
|
60
|
-
"@xyo-network/
|
|
61
|
-
"@xyo-network/react-
|
|
62
|
-
"@xyo-network/react-
|
|
63
|
-
"@xyo-network/
|
|
64
|
-
"@xyo-network/sentinel-
|
|
65
|
-
"@xyo-network/
|
|
66
|
-
"@xyo-network/
|
|
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.
|
|
71
|
-
"@mui/material": "~7.3.
|
|
72
|
-
"@types/react": "^19.2.
|
|
73
|
-
"@xylabs/
|
|
74
|
-
"@xylabs/
|
|
75
|
-
"@xylabs/tsconfig
|
|
76
|
-
"@xylabs/tsconfig-
|
|
77
|
-
"react": "
|
|
78
|
-
"react
|
|
79
|
-
"react-
|
|
80
|
-
"
|
|
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
|
+
}
|