@xyo-network/react-standard-node 7.0.0 → 7.0.2
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/hooks/useActiveNodeAddress.d.ts +5 -1
- package/dist/browser/hooks/useActiveNodeAddress.d.ts.map +1 -1
- package/dist/browser/index.mjs +96 -136
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/lib/Builders/SentinelBuilder.d.ts +2 -2
- package/dist/browser/lib/Builders/SentinelBuilder.d.ts.map +1 -1
- package/dist/browser/lib/Builders/StorageArchivistBuilder.d.ts +4 -4
- package/dist/browser/lib/Builders/StorageArchivistBuilder.d.ts.map +1 -1
- package/package.json +38 -36
- package/src/lib/Builders/SentinelBuilder.ts +7 -2
- package/src/lib/Builders/StorageArchivistBuilder.ts +11 -4
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export declare const useActiveNodeAddress: (networkName?: string) => import("
|
|
1
|
+
export declare const useActiveNodeAddress: (networkName?: string) => import(".store/@xylabs-typeof-npm-5.0.11-7596523424/package").Brand<import(".store/@xylabs-typeof-npm-5.0.11-7596523424/package").Brand<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,11 +1,8 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/components/ActiveStandardNode.tsx
|
|
5
2
|
import { useAsyncEffect } from "@xylabs/react-async-effect";
|
|
6
3
|
import { useNetwork } from "@xyo-network/react-network";
|
|
7
4
|
import { useWeakNodeFromNode } from "@xyo-network/react-node";
|
|
8
|
-
import
|
|
5
|
+
import { useState } from "react";
|
|
9
6
|
|
|
10
7
|
// src/contexts/StandardRemoteNodes/Context.ts
|
|
11
8
|
import { createContextEx } from "@xylabs/react-shared";
|
|
@@ -16,7 +13,7 @@ import { assertDefinedEx as assertDefinedEx5 } from "@xylabs/assert";
|
|
|
16
13
|
import { useResetState } from "@xylabs/react-hooks";
|
|
17
14
|
import { usePromise } from "@xylabs/react-promise";
|
|
18
15
|
import { useWalletContext } from "@xyo-network/react-wallet";
|
|
19
|
-
import
|
|
16
|
+
import { useMemo } from "react";
|
|
20
17
|
|
|
21
18
|
// src/lib/Builders/MemoryNodeBuilder.ts
|
|
22
19
|
import { assertDefinedEx as assertDefinedEx3 } from "@xylabs/assert";
|
|
@@ -29,16 +26,13 @@ import { NodeConfigSchema } from "@xyo-network/node-model";
|
|
|
29
26
|
import { assertDefinedEx } from "@xylabs/assert";
|
|
30
27
|
import { MemorySentinel } from "@xyo-network/sentinel-memory";
|
|
31
28
|
var SentinelBuilder = class {
|
|
32
|
-
static {
|
|
33
|
-
__name(this, "SentinelBuilder");
|
|
34
|
-
}
|
|
35
|
-
config;
|
|
36
|
-
account;
|
|
37
29
|
_sentinel;
|
|
30
|
+
account;
|
|
31
|
+
config;
|
|
38
32
|
constructor(config, account) {
|
|
33
|
+
assertDefinedEx(config, () => "config was not defined");
|
|
39
34
|
this.config = config;
|
|
40
35
|
this.account = account;
|
|
41
|
-
assertDefinedEx(config, () => "config was not defined");
|
|
42
36
|
}
|
|
43
37
|
get sentinel() {
|
|
44
38
|
return assertDefinedEx(this._sentinel, () => "this._sentinel not defined upon create");
|
|
@@ -66,13 +60,10 @@ import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
|
66
60
|
import { StorageArchivist, StorageArchivistConfigSchema } from "@xyo-network/archivist-storage";
|
|
67
61
|
import { asNodeInstance } from "@xyo-network/node-model";
|
|
68
62
|
var StorageArchivistBuilder = class {
|
|
69
|
-
|
|
70
|
-
__name(this, "StorageArchivistBuilder");
|
|
71
|
-
}
|
|
72
|
-
config;
|
|
63
|
+
_archivist;
|
|
73
64
|
account;
|
|
65
|
+
config;
|
|
74
66
|
node;
|
|
75
|
-
_archivist;
|
|
76
67
|
remoteArchivist;
|
|
77
68
|
constructor(config, account, node) {
|
|
78
69
|
this.config = config;
|
|
@@ -90,22 +81,15 @@ var StorageArchivistBuilder = class {
|
|
|
90
81
|
}
|
|
91
82
|
async buildArchivist() {
|
|
92
83
|
const config = this.buildConfig();
|
|
93
|
-
return await StorageArchivist.create({
|
|
94
|
-
account: this.account,
|
|
95
|
-
config
|
|
96
|
-
});
|
|
84
|
+
return await StorageArchivist.create({ account: this.account, config });
|
|
97
85
|
}
|
|
98
86
|
buildConfig() {
|
|
99
87
|
return {
|
|
100
88
|
name: this.config.name,
|
|
101
89
|
namespace: this.config.namespace,
|
|
102
90
|
parents: {
|
|
103
|
-
commit: this.remoteArchivist ? [
|
|
104
|
-
|
|
105
|
-
] : void 0,
|
|
106
|
-
read: this.remoteArchivist ? [
|
|
107
|
-
this.remoteArchivist?.address
|
|
108
|
-
] : void 0
|
|
91
|
+
commit: this.remoteArchivist ? [this.remoteArchivist?.address] : void 0,
|
|
92
|
+
read: this.remoteArchivist ? [this.remoteArchivist?.address] : void 0
|
|
109
93
|
},
|
|
110
94
|
schema: StorageArchivistConfigSchema,
|
|
111
95
|
storeParentReads: true,
|
|
@@ -113,9 +97,7 @@ var StorageArchivistBuilder = class {
|
|
|
113
97
|
};
|
|
114
98
|
}
|
|
115
99
|
async findParentArchivist() {
|
|
116
|
-
const node = asNodeInstance(this.node, "node not defined", {
|
|
117
|
-
required: true
|
|
118
|
-
});
|
|
100
|
+
const node = asNodeInstance(this.node, "node not defined", { required: true });
|
|
119
101
|
const bridge = await node.resolve("RemoteNodeBridge");
|
|
120
102
|
if (bridge) {
|
|
121
103
|
try {
|
|
@@ -130,9 +112,6 @@ var StorageArchivistBuilder = class {
|
|
|
130
112
|
|
|
131
113
|
// src/lib/Builders/MemoryNodeBuilder.ts
|
|
132
114
|
var MemoryNodeBuilder = class {
|
|
133
|
-
static {
|
|
134
|
-
__name(this, "MemoryNodeBuilder");
|
|
135
|
-
}
|
|
136
115
|
_node;
|
|
137
116
|
get node() {
|
|
138
117
|
return assertDefinedEx3(this._node, () => "this._node was not defined upon create");
|
|
@@ -141,10 +120,7 @@ var MemoryNodeBuilder = class {
|
|
|
141
120
|
const instance = new this();
|
|
142
121
|
const memoryNode = node ?? await MemoryNode.create({
|
|
143
122
|
account,
|
|
144
|
-
config: {
|
|
145
|
-
name,
|
|
146
|
-
schema: NodeConfigSchema
|
|
147
|
-
}
|
|
123
|
+
config: { name, schema: NodeConfigSchema }
|
|
148
124
|
});
|
|
149
125
|
instance._node = memoryNode;
|
|
150
126
|
return instance;
|
|
@@ -154,21 +130,12 @@ var MemoryNodeBuilder = class {
|
|
|
154
130
|
await this.addArchivistStorage(account, moduleName, namespace);
|
|
155
131
|
}
|
|
156
132
|
async addArchivistMemory(moduleName, account) {
|
|
157
|
-
const config = {
|
|
158
|
-
|
|
159
|
-
schema: MemoryArchivistConfigSchema
|
|
160
|
-
};
|
|
161
|
-
const memoryArchivist = await MemoryArchivist.create({
|
|
162
|
-
account,
|
|
163
|
-
config
|
|
164
|
-
});
|
|
133
|
+
const config = { name: moduleName, schema: MemoryArchivistConfigSchema };
|
|
134
|
+
const memoryArchivist = await MemoryArchivist.create({ account, config });
|
|
165
135
|
await this.attach(memoryArchivist, true);
|
|
166
136
|
}
|
|
167
137
|
async addArchivistStorage(account, moduleName, namespace) {
|
|
168
|
-
const config = {
|
|
169
|
-
name: moduleName,
|
|
170
|
-
namespace
|
|
171
|
-
};
|
|
138
|
+
const config = { name: moduleName, namespace };
|
|
172
139
|
const { archivist } = await StorageArchivistBuilder.create(config, account, this.node);
|
|
173
140
|
await this.attach(archivist, true);
|
|
174
141
|
}
|
|
@@ -180,9 +147,7 @@ var MemoryNodeBuilder = class {
|
|
|
180
147
|
name: moduleName,
|
|
181
148
|
nodeUrl: `${apiDomain}/node`,
|
|
182
149
|
schema: HttpBridgeConfigSchema,
|
|
183
|
-
security: {
|
|
184
|
-
allowAnonymous: true
|
|
185
|
-
}
|
|
150
|
+
security: { allowAnonymous: true }
|
|
186
151
|
}
|
|
187
152
|
});
|
|
188
153
|
await this.attach(bridge, true);
|
|
@@ -196,18 +161,20 @@ var MemoryNodeBuilder = class {
|
|
|
196
161
|
return sentinel;
|
|
197
162
|
}
|
|
198
163
|
async addWitnesses(pluginSetResolver, witnesses = []) {
|
|
199
|
-
await Promise.all(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
+
}
|
|
208
175
|
}
|
|
209
|
-
}
|
|
210
|
-
|
|
176
|
+
})
|
|
177
|
+
);
|
|
211
178
|
}
|
|
212
179
|
async attach(mod, external, safeAttach) {
|
|
213
180
|
try {
|
|
@@ -265,7 +232,7 @@ var RemoteNodeArchivistOffsetPaths = {
|
|
|
265
232
|
};
|
|
266
233
|
|
|
267
234
|
// src/lib/buildNodes.ts
|
|
268
|
-
var knownRemoteNodes =
|
|
235
|
+
var knownRemoteNodes = () => {
|
|
269
236
|
const networkNames = defaultNetworkConfigs.map((config) => config.name);
|
|
270
237
|
return networkNames.map((networkName) => {
|
|
271
238
|
const name = assertDefinedEx4(networkName, () => "missing name in network config");
|
|
@@ -276,31 +243,36 @@ var knownRemoteNodes = /* @__PURE__ */ __name(() => {
|
|
|
276
243
|
name
|
|
277
244
|
};
|
|
278
245
|
});
|
|
279
|
-
}
|
|
280
|
-
var BuildStandardNodes =
|
|
246
|
+
};
|
|
247
|
+
var BuildStandardNodes = async (wallet, onNodeBuilt) => {
|
|
281
248
|
try {
|
|
282
|
-
return await Promise.all(
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
name
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
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
|
+
);
|
|
297
264
|
} catch (e) {
|
|
298
265
|
throw new Error(`Error Creating Known Remote Nodes: ${e}`);
|
|
299
266
|
}
|
|
300
|
-
}
|
|
267
|
+
};
|
|
301
268
|
|
|
302
269
|
// src/contexts/StandardRemoteNodes/Providers.tsx
|
|
303
|
-
|
|
270
|
+
import { jsx } from "react/jsx-runtime";
|
|
271
|
+
var StandardNodesProvider = ({
|
|
272
|
+
children,
|
|
273
|
+
defaultRemoteNodes,
|
|
274
|
+
wallet
|
|
275
|
+
}) => {
|
|
304
276
|
const [nodes, setNodes] = useResetState(defaultRemoteNodes);
|
|
305
277
|
usePromise(async () => {
|
|
306
278
|
if (wallet) {
|
|
@@ -309,22 +281,15 @@ var StandardNodesProvider = /* @__PURE__ */ __name(({ children, defaultRemoteNod
|
|
|
309
281
|
if (nodes2?.find((existingNode) => existingNode.config.name === node.config.name)) {
|
|
310
282
|
return;
|
|
311
283
|
}
|
|
312
|
-
return nodes2 ? [
|
|
313
|
-
...nodes2,
|
|
314
|
-
node
|
|
315
|
-
] : [
|
|
316
|
-
node
|
|
317
|
-
];
|
|
284
|
+
return nodes2 ? [...nodes2, node] : [node];
|
|
318
285
|
});
|
|
319
286
|
});
|
|
320
287
|
}
|
|
321
|
-
}, [
|
|
322
|
-
|
|
323
|
-
]);
|
|
324
|
-
const findAddressByName = /* @__PURE__ */ __name((name) => {
|
|
288
|
+
}, [wallet]);
|
|
289
|
+
const findAddressByName = (name) => {
|
|
325
290
|
const validNetworkName = assertDefinedEx5(name, () => "name was not defined");
|
|
326
291
|
return nodes?.find((node) => node.config.name === validNetworkName)?.address;
|
|
327
|
-
}
|
|
292
|
+
};
|
|
328
293
|
const value = useMemo(() => ({
|
|
329
294
|
findAddressByName,
|
|
330
295
|
nodes,
|
|
@@ -333,74 +298,69 @@ var StandardNodesProvider = /* @__PURE__ */ __name(({ children, defaultRemoteNod
|
|
|
333
298
|
findAddressByName,
|
|
334
299
|
nodes
|
|
335
300
|
]);
|
|
336
|
-
return /* @__PURE__ */
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
301
|
+
return /* @__PURE__ */ jsx(
|
|
302
|
+
StandardNodesContext,
|
|
303
|
+
{
|
|
304
|
+
value,
|
|
305
|
+
children
|
|
306
|
+
}
|
|
307
|
+
);
|
|
308
|
+
};
|
|
309
|
+
var StandardNodesProviderWithWallet = (props) => {
|
|
341
310
|
const { activeAccount } = useWalletContext();
|
|
342
|
-
return /* @__PURE__ */
|
|
343
|
-
|
|
344
|
-
...props
|
|
345
|
-
});
|
|
346
|
-
}, "StandardNodesProviderWithWallet");
|
|
311
|
+
return /* @__PURE__ */ jsx(StandardNodesProvider, { wallet: activeAccount, ...props });
|
|
312
|
+
};
|
|
347
313
|
|
|
348
314
|
// src/contexts/StandardRemoteNodes/use.ts
|
|
349
315
|
import { useContextEx } from "@xylabs/react-shared";
|
|
350
|
-
var useStandardNodes =
|
|
316
|
+
var useStandardNodes = (required = false) => useContextEx(StandardNodesContext, "StandardNodes", required);
|
|
351
317
|
|
|
352
318
|
// src/hooks/useActiveNodeAddress.ts
|
|
353
319
|
import { useProvidedNode } from "@xyo-network/react-node";
|
|
354
320
|
import { useMemo as useMemo2 } from "react";
|
|
355
|
-
var useActiveNodeAddress =
|
|
321
|
+
var useActiveNodeAddress = (networkName) => {
|
|
356
322
|
const [node] = useProvidedNode();
|
|
357
323
|
const { nodes, findAddressByName } = useStandardNodes();
|
|
358
324
|
const activeNodeAddress = useMemo2(() => {
|
|
359
325
|
if (node && nodes && findAddressByName && networkName) {
|
|
360
326
|
return findAddressByName(networkName);
|
|
361
327
|
}
|
|
362
|
-
}, [
|
|
363
|
-
findAddressByName,
|
|
364
|
-
networkName,
|
|
365
|
-
node,
|
|
366
|
-
nodes
|
|
367
|
-
]);
|
|
328
|
+
}, [findAddressByName, networkName, node, nodes]);
|
|
368
329
|
return activeNodeAddress;
|
|
369
|
-
}
|
|
330
|
+
};
|
|
370
331
|
|
|
371
332
|
// src/components/ActiveStandardNode.tsx
|
|
372
|
-
|
|
333
|
+
import { Fragment, jsx as jsx2 } from "react/jsx-runtime";
|
|
334
|
+
var ActiveStandardNode = ({ children, nodeNameOrAddress }) => {
|
|
373
335
|
const { network } = useNetwork();
|
|
374
336
|
const [node] = useWeakNodeFromNode(nodeNameOrAddress);
|
|
375
337
|
const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState();
|
|
376
338
|
const { nodes } = useStandardNodes();
|
|
377
339
|
const selectedNodeAddress = useActiveNodeAddress(network?.name);
|
|
378
|
-
useAsyncEffect(
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
await nodeInstance?.attach(selectedNodeAddress, true);
|
|
386
|
-
if (mounted()) {
|
|
387
|
-
if (activeRemoteNodeAddress) {
|
|
388
|
-
await nodeInstance?.detach(activeRemoteNodeAddress);
|
|
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;
|
|
389
347
|
}
|
|
390
|
-
|
|
348
|
+
await nodeInstance?.attach(selectedNodeAddress, true);
|
|
349
|
+
if (mounted()) {
|
|
350
|
+
if (activeRemoteNodeAddress) {
|
|
351
|
+
await nodeInstance?.detach(activeRemoteNodeAddress);
|
|
352
|
+
}
|
|
353
|
+
setActiveRemoteNodeAddress(selectedNodeAddress);
|
|
354
|
+
}
|
|
355
|
+
} catch (e) {
|
|
356
|
+
console.error("Error Attaching Selected Node Address", e);
|
|
391
357
|
}
|
|
392
|
-
} catch (e) {
|
|
393
|
-
console.error("Error Attaching Selected Node Address", e);
|
|
394
358
|
}
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
nodes
|
|
401
|
-
]);
|
|
402
|
-
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, children);
|
|
403
|
-
}, "ActiveStandardNode");
|
|
359
|
+
},
|
|
360
|
+
[activeRemoteNodeAddress, node, selectedNodeAddress, nodes]
|
|
361
|
+
);
|
|
362
|
+
return /* @__PURE__ */ jsx2(Fragment, { children });
|
|
363
|
+
};
|
|
404
364
|
export {
|
|
405
365
|
ActiveStandardNode,
|
|
406
366
|
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 protected constructor(\n private config: SentinelConfig,\n private account: AccountInstance,\n ) {\n assertDefinedEx(config, () => 'config was not defined')\n }\n\n get sentinel() {\n return assertDefinedEx(this._sentinel, () => 'this._sentinel not defined upon create')\n }\n\n static async create(config: SentinelConfig, account: AccountInstance): Promise<SentinelBuilder> {\n const instance = new this(config, account)\n instance._sentinel = await instance.buildSentinel()\n return instance\n }\n\n async buildSentinel() {\n const params = this.buildParams()\n return (await MemorySentinel.create(params)) as MemorySentinel\n }\n\n private buildParams(): MemorySentinelParams {\n return {\n account: this.account,\n config: this.config,\n }\n }\n}\n","import { assertDefinedEx } from '@xylabs/assert'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { 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 remoteArchivist: ArchivistModuleInstance | undefined\n\n protected constructor(\n private config: ArchivistBuilderConfig,\n private account: AccountInstance,\n private node?: MemoryNode,\n ) {}\n\n get archivist() {\n return assertDefinedEx(this._archivist, () => 'archivist was not defined upon create')\n }\n\n static async create(config: ArchivistBuilderConfig, account: AccountInstance, node: MemoryNode): Promise<StorageArchivistBuilder> {\n const instance = new this(config, account, node)\n instance.remoteArchivist = await instance.findParentArchivist()\n instance._archivist = await instance.buildArchivist()\n return instance\n }\n\n async buildArchivist() {\n const config = this.buildConfig()\n return (await StorageArchivist.create({ account: this.account, config })) as StorageArchivist\n }\n\n buildConfig(): StorageArchivistConfig {\n return {\n name: this.config.name,\n namespace: this.config.namespace,\n parents: {\n commit: this.remoteArchivist ? [this.remoteArchivist?.address] : undefined,\n read: this.remoteArchivist ? [this.remoteArchivist?.address] : undefined,\n },\n schema: StorageArchivistConfigSchema,\n storeParentReads: true,\n type: 'local',\n }\n }\n\n async findParentArchivist() {\n const node = asNodeInstance(this.node, 'node not defined', { 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?.filter(node => node.type === 'archivist')[0].uri\n const apiDomain = assertDefinedEx<string>(uri, () => 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\nexport const BuildStandardNodes = async (wallet: WalletInstance, onNodeBuilt?: (node: MemoryNode) => void): Promise<MemoryNode[]> => {\n try {\n return await Promise.all(\n knownRemoteNodes().map(async ({ apiDomain, name }) => {\n const remoteNodeOffset = RemoteNodeOffsetPaths[name]\n const remoteNodeWallet = await wallet.derivePath?.(remoteNodeOffset)\n\n const memoryNodeBuilder = await MemoryNodeBuilder.create({ name }, await remoteNodeWallet.derivePath?.('0'))\n await memoryNodeBuilder.addBridge(apiDomain)\n\n const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`\n const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath)\n await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, 'root')\n\n const { node } = memoryNodeBuilder\n assertDefinedEx(node, () => 'Memory Node was not built successfully')\n onNodeBuilt?.(node)\n\n return node\n }),\n )\n } catch (e) {\n throw new Error(`Error Creating Known Remote Nodes: ${e}`)\n }\n}\n","export const GlobalNode = 'GlobalNode'\n\nexport const RootStorageArchivist = 'RootStorageArchivist'\n","import { RootStorageArchivist } from './ModuleNames.ts'\n\nexport const GlobalNodeOffsetPath = '15'\n\nexport const RemoteNodeOffsetPaths: Record<string, string> = {\n Kerplunk: '112',\n Local: '111',\n Main: '113',\n}\n\nexport const RemoteNodeArchivistOffsetPaths: Record<string, Record<string, string>> = {\n Kerplunk: {\n MemoryNode: '117',\n [RootStorageArchivist]: '119',\n },\n Local: {\n MemoryNode: '114',\n [RootStorageArchivist]: '116',\n },\n Main: {\n MemoryNode: '120',\n [RootStorageArchivist]: '122',\n },\n}\n","import { useContextEx } from '@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","config","account","assertDefinedEx","sentinel","create","instance","buildSentinel","params","buildParams","MemorySentinel","assertDefinedEx","asArchivistInstance","StorageArchivist","StorageArchivistConfigSchema","asNodeInstance","StorageArchivistBuilder","_archivist","remoteArchivist","config","account","node","archivist","assertDefinedEx","create","instance","findParentArchivist","buildArchivist","buildConfig","StorageArchivist","name","namespace","parents","commit","address","undefined","read","schema","StorageArchivistConfigSchema","storeParentReads","type","asNodeInstance","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","filter","node","type","apiDomain","BuildStandardNodes","wallet","onNodeBuilt","Promise","all","remoteNodeOffset","RemoteNodeOffsetPaths","remoteNodeWallet","derivePath","memoryNodeBuilder","MemoryNodeBuilder","create","addBridge","rootArchivistPath","RemoteNodeArchivistOffsetPaths","RootStorageArchivist","rootArchivistAccount","addArchivistStorage","e","Error","StandardNodesProvider","children","defaultRemoteNodes","wallet","nodes","setNodes","useResetState","usePromise","BuildStandardNodes","node","find","existingNode","config","name","findAddressByName","validNetworkName","assertDefinedEx","address","value","useMemo","provided","StandardNodesContext","StandardNodesProviderWithWallet","props","activeAccount","useWalletContext","useContextEx","useStandardNodes","required","useContextEx","StandardNodesContext","useProvidedNode","useMemo","useActiveNodeAddress","networkName","node","useProvidedNode","nodes","findAddressByName","useStandardNodes","activeNodeAddress","useMemo","ActiveStandardNode","children","nodeNameOrAddress","network","useNetwork","node","useWeakNodeFromNode","activeRemoteNodeAddress","setActiveRemoteNodeAddress","useState","nodes","useStandardNodes","selectedNodeAddress","useActiveNodeAddress","name","useAsyncEffect","mounted","nodeInstance","deref","attached","includes","attach","detach","e","console","error","React"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/ActiveStandardNode.tsx","../../src/contexts/StandardRemoteNodes/Context.ts","../../src/contexts/StandardRemoteNodes/Providers.tsx","../../src/lib/Builders/MemoryNodeBuilder.ts","../../src/lib/Builders/SentinelBuilder.ts","../../src/lib/Builders/StorageArchivistBuilder.ts","../../src/lib/buildNodes.ts","../../src/lib/ModuleNames.ts","../../src/lib/ModuleAccountPaths.ts","../../src/contexts/StandardRemoteNodes/use.ts","../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useWeakNodeFromNode } from '@xyo-network/react-node'\nimport type { PropsWithChildren } from 'react'\nimport React, { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts/index.ts'\nimport { useActiveNodeAddress } from '../hooks/index.ts'\n\nexport interface ActiveStandardNodeProps extends PropsWithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = useWeakNodeFromNode(nodeNameOrAddress)\n const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState<string>()\n const { nodes } = useStandardNodes()\n\n const selectedNodeAddress = useActiveNodeAddress(network?.name)\n\n // Probably needs to rely on node events rather than provider values to ensure its registered\n useAsyncEffect(\n async (mounted) => {\n const nodeInstance = node?.deref()\n if (nodeInstance && selectedNodeAddress) {\n try {\n if ((await nodeInstance?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await nodeInstance?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await nodeInstance?.detach(activeRemoteNodeAddress)\n }\n setActiveRemoteNodeAddress(selectedNodeAddress)\n }\n } catch (e) {\n console.error('Error Attaching Selected Node Address', e)\n }\n }\n },\n [activeRemoteNodeAddress, node, selectedNodeAddress, nodes],\n )\n\n return <>{children}</>\n}\n","import { createContextEx } from '@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?.filter(node => node.type === 'archivist')[0].uri\n const apiDomain = assertDefinedEx<string>(uri, () => 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\nexport const BuildStandardNodes = async (wallet: WalletInstance, onNodeBuilt?: (node: MemoryNode) => void): Promise<MemoryNode[]> => {\n try {\n return await Promise.all(\n knownRemoteNodes().map(async ({ apiDomain, name }) => {\n const remoteNodeOffset = RemoteNodeOffsetPaths[name]\n const remoteNodeWallet = await wallet.derivePath?.(remoteNodeOffset)\n\n const memoryNodeBuilder = await MemoryNodeBuilder.create({ name }, await remoteNodeWallet.derivePath?.('0'))\n await memoryNodeBuilder.addBridge(apiDomain)\n\n const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`\n const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath)\n await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, 'root')\n\n const { node } = memoryNodeBuilder\n assertDefinedEx(node, () => 'Memory Node was not built successfully')\n onNodeBuilt?.(node)\n\n return node\n }),\n )\n } catch (e) {\n throw new Error(`Error Creating Known Remote Nodes: ${e}`)\n }\n}\n","export const GlobalNode = 'GlobalNode'\n\nexport const RootStorageArchivist = 'RootStorageArchivist'\n","import { RootStorageArchivist } from './ModuleNames.ts'\n\nexport const GlobalNodeOffsetPath = '15'\n\nexport const RemoteNodeOffsetPaths: Record<string, string> = {\n Kerplunk: '112',\n Local: '111',\n Main: '113',\n}\n\nexport const RemoteNodeArchivistOffsetPaths: Record<string, Record<string, string>> = {\n Kerplunk: {\n MemoryNode: '117',\n [RootStorageArchivist]: '119',\n },\n Local: {\n MemoryNode: '114',\n [RootStorageArchivist]: '116',\n },\n Main: {\n MemoryNode: '120',\n [RootStorageArchivist]: '122',\n },\n}\n","import { useContextEx } from '@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"]}
|
|
@@ -3,9 +3,9 @@ import type { MemorySentinelParams } from '@xyo-network/sentinel-memory';
|
|
|
3
3
|
import { MemorySentinel } from '@xyo-network/sentinel-memory';
|
|
4
4
|
import type { SentinelConfig } from '@xyo-network/sentinel-model';
|
|
5
5
|
export declare class SentinelBuilder {
|
|
6
|
-
private config;
|
|
7
|
-
private account;
|
|
8
6
|
private _sentinel;
|
|
7
|
+
private account;
|
|
8
|
+
private config;
|
|
9
9
|
protected constructor(config: SentinelConfig, account: AccountInstance);
|
|
10
10
|
get sentinel(): MemorySentinel<MemorySentinelParams<import("@xyo-network/module-model").AnyConfigSchema<SentinelConfig>>, import("@xyo-network/sentinel-model").SentinelModuleEventData<import("@xyo-network/sentinel-model").SentinelInstance<MemorySentinelParams<import("@xyo-network/module-model").AnyConfigSchema<SentinelConfig>>, import("@xyo-network/sentinel-model").SentinelModuleEventData<import("@xyo-network/module-model").Module<import("@xyo-network/module-model").ModuleParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/module-model").ModuleConfig>>, import("@xyo-network/module-model").ModuleEventData<object>>>>>>;
|
|
11
11
|
static create(config: SentinelConfig, account: AccountInstance): Promise<SentinelBuilder>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentinelBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/SentinelBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE,qBAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"SentinelBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/SentinelBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAA4B;IAE7C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAgB;IAE9B,SAAS,aACP,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe;IAO1B,IAAI,QAAQ,ioBAEX;WAEY,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAMzF,aAAa;IAKnB,OAAO,CAAC,WAAW;CAMpB"}
|
|
@@ -7,16 +7,16 @@ export interface ArchivistBuilderConfig {
|
|
|
7
7
|
namespace?: string;
|
|
8
8
|
}
|
|
9
9
|
export declare class StorageArchivistBuilder {
|
|
10
|
-
private
|
|
10
|
+
private _archivist;
|
|
11
11
|
private account;
|
|
12
|
+
private config;
|
|
12
13
|
private node?;
|
|
13
|
-
private _archivist;
|
|
14
14
|
private remoteArchivist;
|
|
15
|
-
protected constructor(config: ArchivistBuilderConfig, account: AccountInstance, node?: MemoryNode
|
|
15
|
+
protected constructor(config: ArchivistBuilderConfig, account: AccountInstance, node?: MemoryNode);
|
|
16
16
|
get archivist(): StorageArchivist<import("@xyo-network/archivist-storage").StorageArchivistParams, import("@xyo-network/archivist-model").ArchivistModuleEventData>;
|
|
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(".store/@xyo-network-payload-model-npm-5.0.7-fb892fc075/package").Payload<void, void>> | undefined>;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=StorageArchivistBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageArchivistBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/StorageArchivistBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAgC,MAAM,gCAAgC,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG1D,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AACD,qBAAa,uBAAuB;
|
|
1
|
+
{"version":3,"file":"StorageArchivistBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/StorageArchivistBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAgC,MAAM,gCAAgC,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG1D,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AACD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,eAAe,CAAqC;IAE5D,SAAS,aACP,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,eAAe,EACxB,IAAI,CAAC,EAAE,UAAU;IAOnB,IAAI,SAAS,uJAEZ;WAEY,MAAM,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAO3H,cAAc;IAKpB,WAAW,IAAI,sBAAsB;IAc/B,mBAAmB;CAY1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/react-standard-node",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.2",
|
|
4
4
|
"description": "Common React library for all XYO projects that use React",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xyo",
|
|
@@ -43,47 +43,49 @@
|
|
|
43
43
|
"src"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@xylabs/assert": "
|
|
47
|
-
"@xylabs/hex": "
|
|
48
|
-
"@xylabs/react-async-effect": "
|
|
49
|
-
"@xylabs/react-hooks": "
|
|
50
|
-
"@xylabs/react-promise": "
|
|
51
|
-
"@xylabs/react-shared": "
|
|
52
|
-
"@xyo-network/account-model": "
|
|
53
|
-
"@xyo-network/archivist-memory": "
|
|
54
|
-
"@xyo-network/archivist-model": "
|
|
55
|
-
"@xyo-network/archivist-storage": "
|
|
56
|
-
"@xyo-network/bridge-http": "
|
|
57
|
-
"@xyo-network/module-model": "
|
|
58
|
-
"@xyo-network/node-memory": "
|
|
59
|
-
"@xyo-network/node-model": "
|
|
60
|
-
"@xyo-network/payloadset-plugin": "
|
|
61
|
-
"@xyo-network/react-network": "^7.0.
|
|
62
|
-
"@xyo-network/react-node": "^7.0.
|
|
63
|
-
"@xyo-network/react-wallet": "^7.0.
|
|
64
|
-
"@xyo-network/sentinel-memory": "
|
|
65
|
-
"@xyo-network/sentinel-model": "
|
|
66
|
-
"@xyo-network/wallet-model": "
|
|
67
|
-
"@xyo-network/witness-model": "
|
|
46
|
+
"@xylabs/assert": "~5.0.11",
|
|
47
|
+
"@xylabs/hex": "~5.0.11",
|
|
48
|
+
"@xylabs/react-async-effect": "~7.0.4",
|
|
49
|
+
"@xylabs/react-hooks": "~7.0.4",
|
|
50
|
+
"@xylabs/react-promise": "~7.0.4",
|
|
51
|
+
"@xylabs/react-shared": "~7.0.4",
|
|
52
|
+
"@xyo-network/account-model": "~5.0.7",
|
|
53
|
+
"@xyo-network/archivist-memory": "~5.0.7",
|
|
54
|
+
"@xyo-network/archivist-model": "~5.0.7",
|
|
55
|
+
"@xyo-network/archivist-storage": "~5.0.7",
|
|
56
|
+
"@xyo-network/bridge-http": "~5.0.7",
|
|
57
|
+
"@xyo-network/module-model": "~5.0.7",
|
|
58
|
+
"@xyo-network/node-memory": "~5.0.7",
|
|
59
|
+
"@xyo-network/node-model": "~5.0.7",
|
|
60
|
+
"@xyo-network/payloadset-plugin": "~5.0.7",
|
|
61
|
+
"@xyo-network/react-network": "^7.0.2",
|
|
62
|
+
"@xyo-network/react-node": "^7.0.2",
|
|
63
|
+
"@xyo-network/react-wallet": "^7.0.2",
|
|
64
|
+
"@xyo-network/sentinel-memory": "~5.0.7",
|
|
65
|
+
"@xyo-network/sentinel-model": "~5.0.7",
|
|
66
|
+
"@xyo-network/wallet-model": "~5.0.7",
|
|
67
|
+
"@xyo-network/witness-model": "~5.0.7"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@mui/icons-material": "
|
|
71
|
-
"@mui/material": "
|
|
72
|
-
"@types/react": "
|
|
73
|
-
"@xylabs/ts-scripts-yarn3": "
|
|
74
|
-
"@xylabs/tsconfig
|
|
75
|
-
"
|
|
76
|
-
"react
|
|
77
|
-
"react
|
|
78
|
-
"
|
|
79
|
-
"
|
|
70
|
+
"@mui/icons-material": "~7.3.1",
|
|
71
|
+
"@mui/material": "~7.3.1",
|
|
72
|
+
"@types/react": "~19.1.11",
|
|
73
|
+
"@xylabs/ts-scripts-yarn3": "~7.1.7",
|
|
74
|
+
"@xylabs/tsconfig": "~7.1.7",
|
|
75
|
+
"@xylabs/tsconfig-dom": "~7.1.7",
|
|
76
|
+
"@xylabs/tsconfig-react": "~7.1.7",
|
|
77
|
+
"react": "~19.1.1",
|
|
78
|
+
"react-dom": "~19.1.1",
|
|
79
|
+
"react-router-dom": "~7.8.2",
|
|
80
|
+
"storybook": "~9.1.3",
|
|
81
|
+
"typescript": "~5.9.2"
|
|
80
82
|
},
|
|
81
83
|
"peerDependencies": {
|
|
82
84
|
"@mui/icons-material": ">=6 <8",
|
|
83
85
|
"@mui/material": ">=6 <8",
|
|
84
|
-
"react": "
|
|
85
|
-
"react-dom": "
|
|
86
|
-
"react-router-dom": "
|
|
86
|
+
"react": "~19",
|
|
87
|
+
"react-dom": "~19",
|
|
88
|
+
"react-router-dom": "~7"
|
|
87
89
|
},
|
|
88
90
|
"publishConfig": {
|
|
89
91
|
"access": "public"
|
|
@@ -7,11 +7,16 @@ import type { SentinelConfig } from '@xyo-network/sentinel-model'
|
|
|
7
7
|
export class SentinelBuilder {
|
|
8
8
|
private _sentinel: MemorySentinel | undefined
|
|
9
9
|
|
|
10
|
+
private account: AccountInstance
|
|
11
|
+
private config: SentinelConfig
|
|
12
|
+
|
|
10
13
|
protected constructor(
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
config: SentinelConfig,
|
|
15
|
+
account: AccountInstance,
|
|
13
16
|
) {
|
|
14
17
|
assertDefinedEx(config, () => 'config was not defined')
|
|
18
|
+
this.config = config
|
|
19
|
+
this.account = account
|
|
15
20
|
}
|
|
16
21
|
|
|
17
22
|
get sentinel() {
|
|
@@ -13,13 +13,20 @@ export interface ArchivistBuilderConfig {
|
|
|
13
13
|
}
|
|
14
14
|
export class StorageArchivistBuilder {
|
|
15
15
|
private _archivist: StorageArchivist | undefined
|
|
16
|
+
private account: AccountInstance
|
|
17
|
+
private config: ArchivistBuilderConfig
|
|
18
|
+
private node?: MemoryNode
|
|
16
19
|
private remoteArchivist: ArchivistModuleInstance | undefined
|
|
17
20
|
|
|
18
21
|
protected constructor(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
) {
|
|
22
|
+
config: ArchivistBuilderConfig,
|
|
23
|
+
account: AccountInstance,
|
|
24
|
+
node?: MemoryNode,
|
|
25
|
+
) {
|
|
26
|
+
this.config = config
|
|
27
|
+
this.account = account
|
|
28
|
+
this.node = node
|
|
29
|
+
}
|
|
23
30
|
|
|
24
31
|
get archivist() {
|
|
25
32
|
return assertDefinedEx(this._archivist, () => 'archivist was not defined upon create')
|