@xyo-network/react-standard-node 2.77.0 → 2.77.1
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/index.cjs +1 -383
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +1 -360
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/lib/Builders/MemoryNodeBuilder.d.cts +0 -1
- package/dist/browser/lib/Builders/MemoryNodeBuilder.d.cts.map +1 -1
- package/dist/browser/lib/Builders/MemoryNodeBuilder.d.mts +0 -1
- package/dist/browser/lib/Builders/MemoryNodeBuilder.d.mts.map +1 -1
- package/dist/browser/lib/Builders/MemoryNodeBuilder.d.ts +0 -1
- package/dist/browser/lib/Builders/MemoryNodeBuilder.d.ts.map +1 -1
- package/dist/neutral/index.cjs +1 -383
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +1 -360
- package/dist/neutral/index.js.map +1 -1
- package/dist/neutral/lib/Builders/MemoryNodeBuilder.d.cts +0 -1
- package/dist/neutral/lib/Builders/MemoryNodeBuilder.d.cts.map +1 -1
- package/dist/neutral/lib/Builders/MemoryNodeBuilder.d.mts +0 -1
- package/dist/neutral/lib/Builders/MemoryNodeBuilder.d.mts.map +1 -1
- package/dist/neutral/lib/Builders/MemoryNodeBuilder.d.ts +0 -1
- package/dist/neutral/lib/Builders/MemoryNodeBuilder.d.ts.map +1 -1
- package/dist/node/index.cjs +1 -408
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +1 -367
- package/dist/node/index.js.map +1 -1
- package/dist/node/lib/Builders/MemoryNodeBuilder.d.cts +0 -1
- package/dist/node/lib/Builders/MemoryNodeBuilder.d.cts.map +1 -1
- package/dist/node/lib/Builders/MemoryNodeBuilder.d.mts +0 -1
- package/dist/node/lib/Builders/MemoryNodeBuilder.d.mts.map +1 -1
- package/dist/node/lib/Builders/MemoryNodeBuilder.d.ts +0 -1
- package/dist/node/lib/Builders/MemoryNodeBuilder.d.ts.map +1 -1
- package/package.json +7 -7
package/dist/node/index.js
CHANGED
|
@@ -1,368 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { useAsyncEffect } from "@xylabs/react-async-effect";
|
|
3
|
-
import { useNetwork } from "@xyo-network/react-network";
|
|
4
|
-
import { useWeakNodeFromNode } from "@xyo-network/react-node";
|
|
5
|
-
import { useState as useState2 } from "react";
|
|
6
|
-
|
|
7
|
-
// src/contexts/StandardRemoteNodes/Context.ts
|
|
8
|
-
import { createContextEx } from "@xyo-network/react-shared";
|
|
9
|
-
var StandardNodesContext = createContextEx();
|
|
10
|
-
|
|
11
|
-
// src/contexts/StandardRemoteNodes/Providers.tsx
|
|
12
|
-
import { usePromise } from "@xylabs/react-promise";
|
|
13
|
-
import { assertDefinedEx as assertDefinedEx5 } from "@xyo-network/react-shared";
|
|
14
|
-
import { useWalletContext } from "@xyo-network/react-wallet";
|
|
15
|
-
import { useEffect, useState } from "react";
|
|
16
|
-
|
|
17
|
-
// src/lib/Builders/MemoryNodeBuilder.ts
|
|
18
|
-
import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archivist-memory";
|
|
19
|
-
import { HttpBridge, HttpBridgeConfigSchema } from "@xyo-network/bridge-http";
|
|
20
|
-
import { MemoryNode } from "@xyo-network/node-memory";
|
|
21
|
-
import { NodeConfigSchema } from "@xyo-network/node-model";
|
|
22
|
-
import { assertDefinedEx as assertDefinedEx3 } from "@xyo-network/react-shared";
|
|
23
|
-
|
|
24
|
-
// src/lib/Builders/SentinelBuilder.ts
|
|
25
|
-
import { assertDefinedEx } from "@xyo-network/react-shared";
|
|
26
|
-
import { MemorySentinel } from "@xyo-network/sentinel-memory";
|
|
27
|
-
var SentinelBuilder = class {
|
|
28
|
-
constructor(config, account) {
|
|
29
|
-
this.config = config;
|
|
30
|
-
this.account = account;
|
|
31
|
-
assertDefinedEx(config, "config was not defined");
|
|
32
|
-
}
|
|
33
|
-
_sentinel;
|
|
34
|
-
get sentinel() {
|
|
35
|
-
return assertDefinedEx(this._sentinel, "this._sentinel not defined upon create");
|
|
36
|
-
}
|
|
37
|
-
static async create(config, account) {
|
|
38
|
-
const instance = new this(config, account);
|
|
39
|
-
instance._sentinel = await instance.buildSentinel();
|
|
40
|
-
return instance;
|
|
41
|
-
}
|
|
42
|
-
async buildSentinel() {
|
|
43
|
-
const params = this.buildParams();
|
|
44
|
-
return await MemorySentinel.create(params);
|
|
45
|
-
}
|
|
46
|
-
buildParams() {
|
|
47
|
-
return {
|
|
48
|
-
account: this.account,
|
|
49
|
-
config: this.config
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
// src/lib/Builders/StorageArchivistBuilder.ts
|
|
55
|
-
import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
56
|
-
import { StorageArchivist, StorageArchivistConfigSchema } from "@xyo-network/archivist-storage";
|
|
57
|
-
import { asNodeInstance } from "@xyo-network/node-model";
|
|
58
|
-
import { assertDefinedEx as assertDefinedEx2 } from "@xyo-network/react-shared";
|
|
59
|
-
var StorageArchivistBuilder = class {
|
|
60
|
-
constructor(config, account, node) {
|
|
61
|
-
this.config = config;
|
|
62
|
-
this.account = account;
|
|
63
|
-
this.node = node;
|
|
64
|
-
}
|
|
65
|
-
_archivist;
|
|
66
|
-
remoteArchivist;
|
|
67
|
-
get archivist() {
|
|
68
|
-
return assertDefinedEx2(this._archivist, "archivist was not defined upon create");
|
|
69
|
-
}
|
|
70
|
-
static async create(config, account, node) {
|
|
71
|
-
const instance = new this(config, account, node);
|
|
72
|
-
instance.remoteArchivist = await instance.findParentArchivist();
|
|
73
|
-
instance._archivist = await instance.buildArchivist();
|
|
74
|
-
return instance;
|
|
75
|
-
}
|
|
76
|
-
async buildArchivist() {
|
|
77
|
-
const config = this.buildConfig();
|
|
78
|
-
return await StorageArchivist.create({ account: this.account, config });
|
|
79
|
-
}
|
|
80
|
-
buildConfig() {
|
|
81
|
-
var _a, _b;
|
|
82
|
-
return {
|
|
83
|
-
name: this.config.name,
|
|
84
|
-
namespace: this.config.namespace,
|
|
85
|
-
parents: {
|
|
86
|
-
commit: this.remoteArchivist ? [(_a = this.remoteArchivist) == null ? void 0 : _a.address] : void 0,
|
|
87
|
-
read: this.remoteArchivist ? [(_b = this.remoteArchivist) == null ? void 0 : _b.address] : void 0
|
|
88
|
-
},
|
|
89
|
-
schema: StorageArchivistConfigSchema,
|
|
90
|
-
storeParentReads: true,
|
|
91
|
-
type: "local"
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
async findParentArchivist() {
|
|
95
|
-
var _a;
|
|
96
|
-
const node = asNodeInstance(this.node, "node not defined");
|
|
97
|
-
const [bridge] = await node.resolve({ name: ["RemoteNodeBridge"] }) ?? [];
|
|
98
|
-
if (bridge) {
|
|
99
|
-
try {
|
|
100
|
-
const [archivist] = await bridge.resolve({ name: ["Archivist"] }) ?? [];
|
|
101
|
-
return asArchivistInstance(archivist);
|
|
102
|
-
} catch {
|
|
103
|
-
console.error("Error Resolving Parent Archivist", (_a = this.node) == null ? void 0 : _a.config.name, this.config);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
// src/lib/Builders/MemoryNodeBuilder.ts
|
|
110
|
-
var MemoryNodeBuilder = class {
|
|
111
|
-
_node;
|
|
112
|
-
get node() {
|
|
113
|
-
return assertDefinedEx3(this._node, "this._node was not defined upon create");
|
|
114
|
-
}
|
|
115
|
-
static async create({ name, node }, account) {
|
|
116
|
-
const instance = new this();
|
|
117
|
-
const memoryNode = node ?? await MemoryNode.create({ account, config: { name, schema: NodeConfigSchema } });
|
|
118
|
-
instance._node = memoryNode;
|
|
119
|
-
return instance;
|
|
120
|
-
}
|
|
121
|
-
/** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */
|
|
122
|
-
async addArchivist(account, moduleName, namespace) {
|
|
123
|
-
await this.addArchivistStorage(account, moduleName, namespace);
|
|
124
|
-
}
|
|
125
|
-
async addArchivistMemory(moduleName, account) {
|
|
126
|
-
const config = { name: moduleName, schema: MemoryArchivistConfigSchema };
|
|
127
|
-
const memoryArchivist = await MemoryArchivist.create({ account, config });
|
|
128
|
-
await this.attach(memoryArchivist, true);
|
|
129
|
-
}
|
|
130
|
-
async addArchivistStorage(account, moduleName, namespace) {
|
|
131
|
-
const config = { name: moduleName, namespace };
|
|
132
|
-
const { archivist } = await StorageArchivistBuilder.create(config, account, this.node);
|
|
133
|
-
await this.attach(archivist, true);
|
|
134
|
-
}
|
|
135
|
-
async addBridge(apiDomain, moduleName = "RemoteNodeBridge", account) {
|
|
136
|
-
try {
|
|
137
|
-
const bridge = await HttpBridge.create({
|
|
138
|
-
account,
|
|
139
|
-
config: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } }
|
|
140
|
-
});
|
|
141
|
-
await this.attach(bridge, true);
|
|
142
|
-
} catch (e) {
|
|
143
|
-
console.error("Error Creating Bridge", e);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
async addSentinel(config, account) {
|
|
147
|
-
const { sentinel } = await SentinelBuilder.create(config, account);
|
|
148
|
-
await this.attach(sentinel, true, true);
|
|
149
|
-
return sentinel;
|
|
150
|
-
}
|
|
151
|
-
async addWitnesses(pluginSetResolver, witnesses = []) {
|
|
152
|
-
await Promise.all(
|
|
153
|
-
pluginSetResolver.witnesses().map(async (pluginSet, index) => {
|
|
154
|
-
var _a;
|
|
155
|
-
const witness = await ((_a = witnesses == null ? void 0 : witnesses[index]) == null ? void 0 : _a.call(witnesses));
|
|
156
|
-
if (witness) {
|
|
157
|
-
try {
|
|
158
|
-
await this.witnessCleanup(witness);
|
|
159
|
-
await this.node.register(witness);
|
|
160
|
-
await this.node.attach(witness.address, true);
|
|
161
|
-
} catch (e) {
|
|
162
|
-
console.error("Error attaching witness", JSON.stringify(pluginSet, null, 2), e);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
})
|
|
166
|
-
);
|
|
167
|
-
}
|
|
168
|
-
async attach(mod, external, safeAttach) {
|
|
169
|
-
try {
|
|
170
|
-
if (safeAttach) {
|
|
171
|
-
const existingModule = (await this.node.resolve({ address: [mod.address] })).pop();
|
|
172
|
-
if (existingModule) {
|
|
173
|
-
await this.node.detach(existingModule.address);
|
|
174
|
-
await this.node.unregister(existingModule);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
await this.node.register(mod);
|
|
178
|
-
await this.node.attach(mod.address, external);
|
|
179
|
-
} catch (e) {
|
|
180
|
-
throw new Error(`Error adding ${mod.config.name ?? mod.address} to MemoryNode: ${e}`);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
async witnessCleanup(witness) {
|
|
184
|
-
if ((await this.node.registered()).includes(witness.address)) {
|
|
185
|
-
const [existingWitness] = await this.node.resolve({ address: [witness.address] });
|
|
186
|
-
await this.node.unregister(existingWitness);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
// src/lib/buildNodes.ts
|
|
192
|
-
import { defaultNetworkConfigs } from "@xyo-network/react-network";
|
|
193
|
-
import { assertDefinedEx as assertDefinedEx4 } from "@xyo-network/react-shared";
|
|
194
|
-
|
|
195
|
-
// src/lib/ModuleNames.ts
|
|
196
|
-
var GlobalNode = "GlobalNode";
|
|
197
|
-
var RootStorageArchivist = "RootStorageArchivist";
|
|
198
|
-
|
|
199
|
-
// src/lib/ModuleAccountPaths.ts
|
|
200
|
-
var GlobalNodeOffsetPath = "15";
|
|
201
|
-
var RemoteNodeOffsetPaths = {
|
|
202
|
-
Kerplunk: "112",
|
|
203
|
-
Local: "111",
|
|
204
|
-
Main: "113"
|
|
205
|
-
};
|
|
206
|
-
var RemoteNodeArchivistOffsetPaths = {
|
|
207
|
-
Kerplunk: {
|
|
208
|
-
MemoryNode: "117",
|
|
209
|
-
[RootStorageArchivist]: "119"
|
|
210
|
-
},
|
|
211
|
-
Local: {
|
|
212
|
-
MemoryNode: "114",
|
|
213
|
-
[RootStorageArchivist]: "116"
|
|
214
|
-
},
|
|
215
|
-
Main: {
|
|
216
|
-
MemoryNode: "120",
|
|
217
|
-
[RootStorageArchivist]: "122"
|
|
218
|
-
}
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
// src/lib/buildNodes.ts
|
|
222
|
-
var knownRemoteNodes = () => {
|
|
223
|
-
const networkNames = defaultNetworkConfigs.map((config) => config.name);
|
|
224
|
-
return networkNames.map((networkName) => {
|
|
225
|
-
var _a, _b;
|
|
226
|
-
const name = assertDefinedEx4(networkName, "missing name in network config");
|
|
227
|
-
const uri = (_b = (_a = defaultNetworkConfigs.find((config) => config.name === networkName)) == null ? void 0 : _a.nodes) == null ? void 0 : _b.filter((node) => node.type === "archivist")[0].uri;
|
|
228
|
-
const apiDomain = assertDefinedEx4(uri, 'missing node type "archivist" in network config');
|
|
229
|
-
return {
|
|
230
|
-
apiDomain,
|
|
231
|
-
name
|
|
232
|
-
};
|
|
233
|
-
});
|
|
234
|
-
};
|
|
235
|
-
var BuildStandardNodes = async (wallet, onNodeBuilt) => {
|
|
236
|
-
try {
|
|
237
|
-
return await Promise.all(
|
|
238
|
-
knownRemoteNodes().map(async ({ apiDomain, name }) => {
|
|
239
|
-
var _a, _b, _c;
|
|
240
|
-
const remoteNodeOffset = RemoteNodeOffsetPaths[name];
|
|
241
|
-
const remoteNodeWallet = await ((_a = wallet.derivePath) == null ? void 0 : _a.call(wallet, remoteNodeOffset));
|
|
242
|
-
const memoryNodeBuilder = await MemoryNodeBuilder.create({ name }, await ((_b = remoteNodeWallet.derivePath) == null ? void 0 : _b.call(remoteNodeWallet, "0")));
|
|
243
|
-
await memoryNodeBuilder.addBridge(apiDomain);
|
|
244
|
-
const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`;
|
|
245
|
-
const rootArchivistAccount = await ((_c = wallet.derivePath) == null ? void 0 : _c.call(wallet, rootArchivistPath));
|
|
246
|
-
await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, "root");
|
|
247
|
-
const { node } = memoryNodeBuilder;
|
|
248
|
-
assertDefinedEx4(node, "Memory Node was not built successfully");
|
|
249
|
-
onNodeBuilt == null ? void 0 : onNodeBuilt(node);
|
|
250
|
-
return node;
|
|
251
|
-
})
|
|
252
|
-
);
|
|
253
|
-
} catch (e) {
|
|
254
|
-
throw new Error(`Error Creating Known Remote Nodes: ${e}`);
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
|
|
258
|
-
// src/contexts/StandardRemoteNodes/Providers.tsx
|
|
259
|
-
import { jsx } from "react/jsx-runtime";
|
|
260
|
-
var StandardNodesProvider = ({ children, defaultRemoteNodes, wallet }) => {
|
|
261
|
-
const [nodes, setNodes] = useState(defaultRemoteNodes);
|
|
262
|
-
useEffect(() => {
|
|
263
|
-
setNodes(defaultRemoteNodes);
|
|
264
|
-
}, [defaultRemoteNodes]);
|
|
265
|
-
usePromise(async () => {
|
|
266
|
-
if (wallet) {
|
|
267
|
-
await BuildStandardNodes(wallet, (node) => {
|
|
268
|
-
setNodes((nodes2) => {
|
|
269
|
-
if (nodes2 == null ? void 0 : nodes2.find((existingNode) => existingNode.config.name === node.config.name)) {
|
|
270
|
-
return;
|
|
271
|
-
}
|
|
272
|
-
return nodes2 ? [...nodes2, node] : [node];
|
|
273
|
-
});
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
}, [wallet]);
|
|
277
|
-
const findAddressByName = (name) => {
|
|
278
|
-
var _a;
|
|
279
|
-
const validNetworkName = assertDefinedEx5(name, "name was not defined");
|
|
280
|
-
return (_a = nodes == null ? void 0 : nodes.find((node) => node.config.name === validNetworkName)) == null ? void 0 : _a.address;
|
|
281
|
-
};
|
|
282
|
-
return /* @__PURE__ */ jsx(
|
|
283
|
-
StandardNodesContext.Provider,
|
|
284
|
-
{
|
|
285
|
-
value: {
|
|
286
|
-
findAddressByName,
|
|
287
|
-
nodes,
|
|
288
|
-
provided: true
|
|
289
|
-
},
|
|
290
|
-
children
|
|
291
|
-
}
|
|
292
|
-
);
|
|
293
|
-
};
|
|
294
|
-
var StandardNodesProviderWithWallet = (props) => {
|
|
295
|
-
const { activeAccount } = useWalletContext();
|
|
296
|
-
return /* @__PURE__ */ jsx(StandardNodesProvider, { wallet: activeAccount, ...props });
|
|
297
|
-
};
|
|
298
|
-
|
|
299
|
-
// src/contexts/StandardRemoteNodes/use.tsx
|
|
300
|
-
import { useContextEx } from "@xyo-network/react-shared";
|
|
301
|
-
var useStandardNodes = (required = false) => useContextEx(StandardNodesContext, "StandardNodes", required);
|
|
302
|
-
|
|
303
|
-
// src/hooks/useActiveNodeAddress.ts
|
|
304
|
-
import { useProvidedNode } from "@xyo-network/react-node";
|
|
305
|
-
import { useMemo } from "react";
|
|
306
|
-
var useActiveNodeAddress = (networkName) => {
|
|
307
|
-
const [node] = useProvidedNode();
|
|
308
|
-
const { nodes, findAddressByName } = useStandardNodes();
|
|
309
|
-
const activeNodeAddress = useMemo(() => {
|
|
310
|
-
if (node && nodes && findAddressByName && networkName) {
|
|
311
|
-
return findAddressByName(networkName);
|
|
312
|
-
}
|
|
313
|
-
}, [findAddressByName, networkName, node, nodes]);
|
|
314
|
-
return activeNodeAddress;
|
|
315
|
-
};
|
|
316
|
-
|
|
317
|
-
// src/components/ActiveStandardNode.tsx
|
|
318
|
-
import { Fragment, jsx as jsx2 } from "react/jsx-runtime";
|
|
319
|
-
var ActiveStandardNode = ({ children, nodeNameOrAddress }) => {
|
|
320
|
-
const { network } = useNetwork();
|
|
321
|
-
const [node] = useWeakNodeFromNode(nodeNameOrAddress);
|
|
322
|
-
const [activeRemoteNodeAddress, setActiveRemoteNodeAddress] = useState2();
|
|
323
|
-
const { nodes } = useStandardNodes();
|
|
324
|
-
const selectedNodeAddress = useActiveNodeAddress(network == null ? void 0 : network.name);
|
|
325
|
-
useAsyncEffect(
|
|
326
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
327
|
-
async (mounted) => {
|
|
328
|
-
var _a;
|
|
329
|
-
const nodeInstance = node == null ? void 0 : node.deref();
|
|
330
|
-
if (nodeInstance && selectedNodeAddress) {
|
|
331
|
-
try {
|
|
332
|
-
if ((_a = await (nodeInstance == null ? void 0 : nodeInstance.attached())) == null ? void 0 : _a.includes(selectedNodeAddress)) {
|
|
333
|
-
return;
|
|
334
|
-
}
|
|
335
|
-
await (nodeInstance == null ? void 0 : nodeInstance.attach(selectedNodeAddress, true));
|
|
336
|
-
if (mounted()) {
|
|
337
|
-
if (activeRemoteNodeAddress) {
|
|
338
|
-
await (nodeInstance == null ? void 0 : nodeInstance.detach(activeRemoteNodeAddress));
|
|
339
|
-
}
|
|
340
|
-
setActiveRemoteNodeAddress(selectedNodeAddress);
|
|
341
|
-
}
|
|
342
|
-
} catch (e) {
|
|
343
|
-
console.error("Error Attaching Selected Node Address", e);
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
},
|
|
347
|
-
[activeRemoteNodeAddress, node, selectedNodeAddress, nodes]
|
|
348
|
-
);
|
|
349
|
-
return /* @__PURE__ */ jsx2(Fragment, { children });
|
|
350
|
-
};
|
|
351
|
-
export {
|
|
352
|
-
ActiveStandardNode,
|
|
353
|
-
BuildStandardNodes,
|
|
354
|
-
GlobalNode,
|
|
355
|
-
GlobalNodeOffsetPath,
|
|
356
|
-
MemoryNodeBuilder,
|
|
357
|
-
RemoteNodeArchivistOffsetPaths,
|
|
358
|
-
RemoteNodeOffsetPaths,
|
|
359
|
-
RootStorageArchivist,
|
|
360
|
-
SentinelBuilder,
|
|
361
|
-
StandardNodesContext,
|
|
362
|
-
StandardNodesProvider,
|
|
363
|
-
StandardNodesProviderWithWallet,
|
|
364
|
-
StorageArchivistBuilder,
|
|
365
|
-
useActiveNodeAddress,
|
|
366
|
-
useStandardNodes
|
|
367
|
-
};
|
|
1
|
+
import{useAsyncEffect as Y}from"@xylabs/react-async-effect";import{useNetwork as Z}from"@xyo-network/react-network";import{useWeakNodeFromNode as j}from"@xyo-network/react-node";import{useState as tt}from"react";import{createContextEx as R}from"@xyo-network/react-shared";var u=R();import{usePromise as L}from"@xylabs/react-promise";import{assertDefinedEx as J}from"@xyo-network/react-shared";import{useWalletContext as U}from"@xyo-network/react-wallet";import{useEffect as q,useState as z}from"react";import{MemoryArchivist as O,MemoryArchivistConfigSchema as D}from"@xyo-network/archivist-memory";import{HttpBridge as k,HttpBridgeConfigSchema as $}from"@xyo-network/bridge-http";import{MemoryNode as F}from"@xyo-network/node-memory";import{NodeConfigSchema as G}from"@xyo-network/node-model";import{assertDefinedEx as K}from"@xyo-network/react-shared";import{assertDefinedEx as y}from"@xyo-network/react-shared";import{MemorySentinel as b}from"@xyo-network/sentinel-memory";var p=class{constructor(t,e){this.config=t;this.account=e;y(t,"config was not defined")}_sentinel;get sentinel(){return y(this._sentinel,"this._sentinel not defined upon create")}static async create(t,e){let r=new this(t,e);return r._sentinel=await r.buildSentinel(),r}async buildSentinel(){let t=this.buildParams();return await b.create(t)}buildParams(){return{account:this.account,config:this.config}}};import{asArchivistInstance as I}from"@xyo-network/archivist-model";import{StorageArchivist as E,StorageArchivistConfigSchema as W}from"@xyo-network/archivist-storage";import{asNodeInstance as B}from"@xyo-network/node-model";import{assertDefinedEx as _}from"@xyo-network/react-shared";var g=class{constructor(t,e,r){this.config=t;this.account=e;this.node=r}_archivist;remoteArchivist;get archivist(){return _(this._archivist,"archivist was not defined upon create")}static async create(t,e,r){let o=new this(t,e,r);return o.remoteArchivist=await o.findParentArchivist(),o._archivist=await o.buildArchivist(),o}async buildArchivist(){let t=this.buildConfig();return await E.create({account:this.account,config:t})}buildConfig(){var t,e;return{name:this.config.name,namespace:this.config.namespace,parents:{commit:this.remoteArchivist?[(t=this.remoteArchivist)==null?void 0:t.address]:void 0,read:this.remoteArchivist?[(e=this.remoteArchivist)==null?void 0:e.address]:void 0},schema:W,storeParentReads:!0,type:"local"}}async findParentArchivist(){var r;let t=B(this.node,"node not defined"),[e]=await t.resolve({name:["RemoteNodeBridge"]})??[];if(e)try{let[o]=await e.resolve({name:["Archivist"]})??[];return I(o)}catch{console.error("Error Resolving Parent Archivist",(r=this.node)==null?void 0:r.config.name,this.config)}}};var l=class{_node;get node(){return K(this._node,"this._node was not defined upon create")}static async create({name:t,node:e},r){let o=new this,a=e??await F.create({account:r,config:{name:t,schema:G}});return o._node=a,o}async addArchivist(t,e,r){await this.addArchivistStorage(t,e,r)}async addArchivistMemory(t,e){let r={name:t,schema:D},o=await O.create({account:e,config:r});await this.attach(o,!0)}async addArchivistStorage(t,e,r){let o={name:e,namespace:r},{archivist:a}=await g.create(o,t,this.node);await this.attach(a,!0)}async addBridge(t,e="RemoteNodeBridge",r){try{let o=await k.create({account:r,config:{name:e,nodeUrl:`${t}/node`,schema:$,security:{allowAnonymous:!0}}});await this.attach(o,!0)}catch(o){console.error("Error Creating Bridge",o)}}async addSentinel(t,e){let{sentinel:r}=await p.create(t,e);return await this.attach(r,!0,!0),r}async addWitnesses(t,e=[]){await Promise.all(t.witnesses().map(async(r,o)=>{var s;let a=await((s=e==null?void 0:e[o])==null?void 0:s.call(e));if(a)try{await this.witnessCleanup(a),await this.node.register(a),await this.node.attach(a.address,!0)}catch(n){console.error("Error attaching witness",JSON.stringify(r,null,2),n)}}))}async attach(t,e,r){try{if(r){let o=(await this.node.resolve({address:[t.address]})).pop();o&&(await this.node.detach(o.address),await this.node.unregister(o))}await this.node.register(t),await this.node.attach(t.address,e)}catch(o){throw new Error(`Error adding ${t.config.name??t.address} to MemoryNode: ${o}`)}}async witnessCleanup(t){if((await this.node.registered()).includes(t.address)){let[e]=await this.node.resolve({address:[t.address]});await this.node.unregister(e)}}};import{defaultNetworkConfigs as P}from"@xyo-network/react-network";import{assertDefinedEx as A}from"@xyo-network/react-shared";var xt="GlobalNode",m="RootStorageArchivist";var bt="15",S={Kerplunk:"112",Local:"111",Main:"113"},w={Kerplunk:{MemoryNode:"117",[m]:"119"},Local:{MemoryNode:"114",[m]:"116"},Main:{MemoryNode:"120",[m]:"122"}};var H=()=>P.map(t=>t.name).map(t=>{var a,s;let e=A(t,"missing name in network config"),r=(s=(a=P.find(n=>n.name===t))==null?void 0:a.nodes)==null?void 0:s.filter(n=>n.type==="archivist")[0].uri;return{apiDomain:A(r,'missing node type "archivist" in network config'),name:e}}),M=async(i,t)=>{try{return await Promise.all(H().map(async({apiDomain:e,name:r})=>{var f,h,N;let o=S[r],a=await((f=i.derivePath)==null?void 0:f.call(i,o)),s=await l.create({name:r},await((h=a.derivePath)==null?void 0:h.call(a,"0")));await s.addBridge(e);let n=`${o}/${w[r][m]}`,d=await((N=i.derivePath)==null?void 0:N.call(i,n));await s.addArchivistStorage(d,m,"root");let{node:c}=s;return A(c,"Memory Node was not built successfully"),t==null||t(c),c}))}catch(e){throw new Error(`Error Creating Known Remote Nodes: ${e}`)}};import{jsx as x}from"react/jsx-runtime";var Q=({children:i,defaultRemoteNodes:t,wallet:e})=>{let[r,o]=z(t);q(()=>{o(t)},[t]),L(async()=>{e&&await M(e,s=>{o(n=>{if(!(n!=null&&n.find(d=>d.config.name===s.config.name)))return n?[...n,s]:[s]})})},[e]);let a=s=>{var d;let n=J(s,"name was not defined");return(d=r==null?void 0:r.find(c=>c.config.name===n))==null?void 0:d.address};return x(u.Provider,{value:{findAddressByName:a,nodes:r,provided:!0},children:i})},Lt=i=>{let{activeAccount:t}=U();return x(Q,{wallet:t,...i})};import{useContextEx as T}from"@xyo-network/react-shared";var v=(i=!1)=>T(u,"StandardNodes",i);import{useProvidedNode as V}from"@xyo-network/react-node";import{useMemo as X}from"react";var C=i=>{let[t]=V(),{nodes:e,findAddressByName:r}=v();return X(()=>{if(t&&e&&r&&i)return r(i)},[r,i,t,e])};import{Fragment as et,jsx as rt}from"react/jsx-runtime";var ie=({children:i,nodeNameOrAddress:t})=>{let{network:e}=Z(),[r]=j(t),[o,a]=tt(),{nodes:s}=v(),n=C(e==null?void 0:e.name);return Y(async d=>{var f;let c=r==null?void 0:r.deref();if(c&&n)try{if((f=await(c==null?void 0:c.attached()))!=null&&f.includes(n))return;await(c==null?void 0:c.attach(n,!0)),d()&&(o&&await(c==null?void 0:c.detach(o)),a(n))}catch(h){console.error("Error Attaching Selected Node Address",h)}},[o,r,n,s]),rt(et,{children:i})};export{ie as ActiveStandardNode,M as BuildStandardNodes,xt as GlobalNode,bt as GlobalNodeOffsetPath,l as MemoryNodeBuilder,w as RemoteNodeArchivistOffsetPaths,S as RemoteNodeOffsetPaths,m as RootStorageArchivist,p as SentinelBuilder,u as StandardNodesContext,Q as StandardNodesProvider,Lt as StandardNodesProviderWithWallet,g as StorageArchivistBuilder,C as useActiveNodeAddress,v as useStandardNodes};
|
|
368
2
|
//# sourceMappingURL=index.js.map
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/ActiveStandardNode.tsx","../../src/contexts/StandardRemoteNodes/Context.ts","../../src/contexts/StandardRemoteNodes/Providers.tsx","../../src/lib/Builders/MemoryNodeBuilder.ts","../../src/lib/Builders/SentinelBuilder.ts","../../src/lib/Builders/StorageArchivistBuilder.ts","../../src/lib/buildNodes.ts","../../src/lib/ModuleNames.ts","../../src/lib/ModuleAccountPaths.ts","../../src/contexts/StandardRemoteNodes/use.tsx","../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useWeakNodeFromNode } from '@xyo-network/react-node'\nimport { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts'\nimport { useActiveNodeAddress } from '../hooks'\n\nexport interface ActiveStandardNodeProps extends WithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = 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 // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const nodeInstance = node?.deref()\n if (nodeInstance && selectedNodeAddress) {\n try {\n if ((await nodeInstance?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await nodeInstance?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await nodeInstance?.detach(activeRemoteNodeAddress)\n }\n setActiveRemoteNodeAddress(selectedNodeAddress)\n }\n } catch (e) {\n console.error('Error Attaching Selected Node Address', e)\n }\n }\n },\n [activeRemoteNodeAddress, node, selectedNodeAddress, nodes],\n )\n\n return <>{children}</>\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesState } from './State'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { usePromise } from '@xylabs/react-promise'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { useWalletContext } from '@xyo-network/react-wallet'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useEffect, useState } from 'react'\n\nimport { BuildStandardNodes } from '../../lib'\nimport { StandardNodesContext } from './Context'\nimport { StandardNodesState } from './State'\n\nexport interface StandardNodesProviderProps extends WithChildren {\n defaultRemoteNodes?: StandardNodesState['nodes']\n wallet?: WalletInstance | null\n}\n\nexport const StandardNodesProvider: React.FC<StandardNodesProviderProps> = ({ children, defaultRemoteNodes, wallet }) => {\n const [nodes, setNodes] = useState<StandardNodesState['nodes']>(defaultRemoteNodes)\n\n useEffect(() => {\n setNodes(defaultRemoteNodes)\n }, [defaultRemoteNodes])\n\n usePromise(async () => {\n if (wallet) {\n await BuildStandardNodes(wallet, (node: MemoryNode) => {\n setNodes((nodes) => {\n if (nodes?.find((existingNode) => existingNode.config.name === node.config.name)) {\n return\n }\n return nodes ? [...nodes, node] : [node]\n })\n })\n }\n }, [wallet])\n\n const findAddressByName = (name?: string) => {\n const validNetworkName = assertDefinedEx(name, 'name was not defined')\n return nodes?.find((node) => node.config.name === validNetworkName)?.address\n }\n\n return (\n <StandardNodesContext.Provider\n value={{\n findAddressByName,\n nodes,\n provided: true,\n }}\n >\n {children}\n </StandardNodesContext.Provider>\n )\n}\n\nexport const StandardNodesProviderWithWallet: React.FC<Omit<StandardNodesProviderProps, 'wallet'>> = (props) => {\n const { activeAccount } = useWalletContext()\n return <StandardNodesProvider wallet={activeAccount} {...props} />\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { MemoryArchivist, MemoryArchivistConfig, MemoryArchivistConfigSchema } from '@xyo-network/archivist-memory'\nimport { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/bridge-http'\nimport { AttachableModuleInstance } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { SentinelConfig } from '@xyo-network/sentinel-model'\nimport { AttachableWitnessInstance, WitnessModule } from '@xyo-network/witness-model'\n\nimport { SentinelBuilder } from './SentinelBuilder'\nimport { StorageArchivistBuilder } from './StorageArchivistBuilder'\n\nexport interface MemoryNodeBuilderConfig {\n name?: string\n node?: MemoryNode\n}\n\nexport class MemoryNodeBuilder {\n private _node: MemoryNode | undefined\n\n get node() {\n return assertDefinedEx(this._node, 'this._node was not defined upon create')\n }\n\n static async create({ name, node }: MemoryNodeBuilderConfig, account?: AccountInstance): Promise<MemoryNodeBuilder> {\n const instance = new this()\n\n const memoryNode: MemoryNode = node ?? (await MemoryNode.create({ account, config: { name, schema: NodeConfigSchema } }))\n instance._node = memoryNode\n return instance\n }\n\n /** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */\n async addArchivist(account: AccountInstance, moduleName?: string, namespace?: string) {\n await this.addArchivistStorage(account, moduleName, namespace)\n }\n\n async addArchivistMemory(moduleName?: string, account?: AccountInstance) {\n const config: MemoryArchivistConfig = { name: moduleName, schema: MemoryArchivistConfigSchema }\n const memoryArchivist = await MemoryArchivist.create({ account, config })\n\n await this.attach(memoryArchivist, true)\n }\n\n async addArchivistStorage(account: AccountInstance, moduleName?: string, namespace?: string) {\n const config = { name: moduleName, namespace }\n const { archivist } = await StorageArchivistBuilder.create(config, account, this.node)\n\n await this.attach(archivist, true)\n }\n\n async addBridge(apiDomain: string, moduleName = 'RemoteNodeBridge', account?: AccountInstance) {\n try {\n const bridge = await HttpBridge.create({\n account,\n config: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } },\n })\n await this.attach(bridge, true)\n } catch (e) {\n console.error('Error Creating Bridge', e)\n }\n }\n\n async addSentinel(config: SentinelConfig, account: AccountInstance) {\n const { sentinel } = await SentinelBuilder.create(config, account)\n await this.attach(sentinel, true, true)\n return sentinel\n }\n\n async addWitnesses(pluginSetResolver: PayloadSetPluginResolver, witnesses: (() => Promise<AttachableWitnessInstance>)[] = []) {\n await Promise.all(\n pluginSetResolver.witnesses().map(async (pluginSet, index) => {\n // Pass the prebuilt witness at the same index\n const witness = await witnesses?.[index]?.()\n if (witness) {\n try {\n await this.witnessCleanup(witness)\n await this.node.register(witness)\n await this.node.attach(witness.address, true)\n } catch (e) {\n console.error('Error attaching witness', JSON.stringify(pluginSet, null, 2), e)\n }\n }\n }),\n )\n }\n\n async attach(mod: AttachableModuleInstance, external?: boolean, safeAttach?: boolean) {\n try {\n if (safeAttach) {\n const existingModule = (await this.node.resolve({ address: [mod.address] })).pop()\n if (existingModule) {\n await this.node.detach(existingModule.address)\n await this.node.unregister(existingModule)\n }\n }\n await this.node.register(mod)\n await this.node.attach(mod.address, external)\n } catch (e) {\n throw new Error(`Error adding ${mod.config.name ?? mod.address} to MemoryNode: ${e}`)\n }\n }\n\n private async witnessCleanup(witness: WitnessModule) {\n if ((await this.node.registered()).includes(witness.address)) {\n const [existingWitness] = await this.node.resolve({ address: [witness.address] })\n await this.node.unregister(existingWitness)\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { MemorySentinel, MemorySentinelParams } from '@xyo-network/sentinel-memory'\nimport { 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 { AccountInstance } from '@xyo-network/account-model'\nimport { ArchivistModule, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { StorageArchivist, StorageArchivistConfig, StorageArchivistConfigSchema } from '@xyo-network/archivist-storage'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { asNodeInstance } from '@xyo-network/node-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport interface ArchivistBuilderConfig {\n name?: string\n namespace?: string\n}\nexport class StorageArchivistBuilder {\n private _archivist: StorageArchivist | undefined\n private remoteArchivist: ArchivistModule | undefined\n\n protected constructor(\n private config: ArchivistBuilderConfig,\n private account: AccountInstance,\n private node?: MemoryNode,\n ) {}\n\n get archivist() {\n return assertDefinedEx(this._archivist, 'archivist was not defined upon create')\n }\n\n static async create(config: ArchivistBuilderConfig, account: AccountInstance, node: MemoryNode): Promise<StorageArchivistBuilder> {\n const instance = new this(config, account, node)\n instance.remoteArchivist = await instance.findParentArchivist()\n instance._archivist = await instance.buildArchivist()\n return instance\n }\n\n async buildArchivist() {\n const config = this.buildConfig()\n return (await StorageArchivist.create({ account: this.account, config })) as StorageArchivist\n }\n\n buildConfig(): StorageArchivistConfig {\n return {\n name: this.config.name,\n namespace: this.config.namespace,\n parents: {\n commit: this.remoteArchivist ? [this.remoteArchivist?.address] : undefined,\n read: this.remoteArchivist ? [this.remoteArchivist?.address] : undefined,\n },\n schema: StorageArchivistConfigSchema,\n storeParentReads: true,\n type: 'local',\n }\n }\n\n async findParentArchivist() {\n const node = asNodeInstance(this.node, 'node not defined')\n const [bridge] = (await node.resolve({ name: ['RemoteNodeBridge'] })) ?? []\n if (bridge) {\n try {\n const [archivist] = (await bridge.resolve({ name: ['Archivist'] })) ?? []\n return asArchivistInstance(archivist)\n } catch {\n console.error('Error Resolving Parent Archivist', this.node?.config.name, this.config)\n }\n }\n }\n}\n","import { MemoryNode } from '@xyo-network/node-memory'\nimport { defaultNetworkConfigs } from '@xyo-network/react-network'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { MemoryNodeBuilder } from './Builders'\nimport { RemoteNodeArchivistOffsetPaths, RemoteNodeOffsetPaths } from './ModuleAccountPaths'\nimport { RootStorageArchivist } from './ModuleNames'\n\nconst knownRemoteNodes = (): { apiDomain: string; name: string }[] => {\n const networkNames = defaultNetworkConfigs.map((config) => config.name)\n return networkNames.map((networkName) => {\n const name = assertDefinedEx<string>(networkName, 'missing name in network config')\n const uri = defaultNetworkConfigs.find((config) => config.name === networkName)?.nodes?.filter((node) => node.type === 'archivist')[0].uri\n const apiDomain = assertDefinedEx<string>(uri, 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\nexport const BuildStandardNodes = async (wallet: WalletInstance, onNodeBuilt?: (node: MemoryNode) => void): Promise<MemoryNode[]> => {\n try {\n return await Promise.all(\n knownRemoteNodes().map(async ({ apiDomain, name }) => {\n const remoteNodeOffset = RemoteNodeOffsetPaths[name]\n const remoteNodeWallet = await wallet.derivePath?.(remoteNodeOffset)\n\n const memoryNodeBuilder = await MemoryNodeBuilder.create({ name }, await remoteNodeWallet.derivePath?.('0'))\n await memoryNodeBuilder.addBridge(apiDomain)\n\n const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`\n const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath)\n await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, 'root')\n\n const { node } = memoryNodeBuilder\n assertDefinedEx(node, 'Memory Node was not built successfully')\n onNodeBuilt?.(node)\n\n return node\n }),\n )\n } catch (e) {\n throw new Error(`Error Creating Known Remote Nodes: ${e}`)\n }\n}\n","export const GlobalNode = 'GlobalNode'\n\nexport const RootStorageArchivist = 'RootStorageArchivist'\n","import { RootStorageArchivist } from './ModuleNames'\n\nexport const GlobalNodeOffsetPath = '15'\n\nexport const RemoteNodeOffsetPaths: Record<string, string> = {\n Kerplunk: '112',\n Local: '111',\n Main: '113',\n}\n\nexport const RemoteNodeArchivistOffsetPaths: Record<string, Record<string, string>> = {\n Kerplunk: {\n MemoryNode: '117',\n [RootStorageArchivist]: '119',\n },\n Local: {\n MemoryNode: '114',\n [RootStorageArchivist]: '116',\n },\n Main: {\n MemoryNode: '120',\n [RootStorageArchivist]: '122',\n },\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesContext } from './Context'\n\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n","import { useProvidedNode } from '@xyo-network/react-node'\nimport { useMemo } from 'react'\n\nimport { useStandardNodes } from '../contexts'\n\nexport const useActiveNodeAddress = (networkName?: string) => {\n const [node] = useProvidedNode()\n const { nodes, findAddressByName } = useStandardNodes()\n\n const activeNodeAddress = useMemo(() => {\n if (node && nodes && findAddressByName && networkName) {\n return findAddressByName(networkName)\n }\n }, [findAddressByName, networkName, node, nodes])\n\n return activeNodeAddress\n}\n"],"mappings":"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","names":["useState","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","assertDefinedEx","nodes","assertDefinedEx","jsx","useState"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/ActiveStandardNode.tsx","../../src/contexts/StandardRemoteNodes/Context.ts","../../src/contexts/StandardRemoteNodes/Providers.tsx","../../src/lib/Builders/MemoryNodeBuilder.ts","../../src/lib/Builders/SentinelBuilder.ts","../../src/lib/Builders/StorageArchivistBuilder.ts","../../src/lib/buildNodes.ts","../../src/lib/ModuleNames.ts","../../src/lib/ModuleAccountPaths.ts","../../src/contexts/StandardRemoteNodes/use.tsx","../../src/hooks/useActiveNodeAddress.ts"],"sourcesContent":["import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useWeakNodeFromNode } from '@xyo-network/react-node'\nimport { useState } from 'react'\n\nimport { useStandardNodes } from '../contexts'\nimport { useActiveNodeAddress } from '../hooks'\n\nexport interface ActiveStandardNodeProps extends WithChildren {\n nodeNameOrAddress?: string\n}\n\nexport const ActiveStandardNode: React.FC<ActiveStandardNodeProps> = ({ children, nodeNameOrAddress }) => {\n const { network } = useNetwork()\n const [node] = 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 // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const nodeInstance = node?.deref()\n if (nodeInstance && selectedNodeAddress) {\n try {\n if ((await nodeInstance?.attached())?.includes(selectedNodeAddress)) {\n return\n }\n await nodeInstance?.attach(selectedNodeAddress, true)\n\n if (mounted()) {\n // cleanup\n if (activeRemoteNodeAddress) {\n await nodeInstance?.detach(activeRemoteNodeAddress)\n }\n setActiveRemoteNodeAddress(selectedNodeAddress)\n }\n } catch (e) {\n console.error('Error Attaching Selected Node Address', e)\n }\n }\n },\n [activeRemoteNodeAddress, node, selectedNodeAddress, nodes],\n )\n\n return <>{children}</>\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesState } from './State'\n\nexport const StandardNodesContext = createContextEx<StandardNodesState>()\n","import { usePromise } from '@xylabs/react-promise'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { useWalletContext } from '@xyo-network/react-wallet'\nimport { WalletInstance } from '@xyo-network/wallet-model'\nimport { useEffect, useState } from 'react'\n\nimport { BuildStandardNodes } from '../../lib'\nimport { StandardNodesContext } from './Context'\nimport { StandardNodesState } from './State'\n\nexport interface StandardNodesProviderProps extends WithChildren {\n defaultRemoteNodes?: StandardNodesState['nodes']\n wallet?: WalletInstance | null\n}\n\nexport const StandardNodesProvider: React.FC<StandardNodesProviderProps> = ({ children, defaultRemoteNodes, wallet }) => {\n const [nodes, setNodes] = useState<StandardNodesState['nodes']>(defaultRemoteNodes)\n\n useEffect(() => {\n setNodes(defaultRemoteNodes)\n }, [defaultRemoteNodes])\n\n usePromise(async () => {\n if (wallet) {\n await BuildStandardNodes(wallet, (node: MemoryNode) => {\n setNodes((nodes) => {\n if (nodes?.find((existingNode) => existingNode.config.name === node.config.name)) {\n return\n }\n return nodes ? [...nodes, node] : [node]\n })\n })\n }\n }, [wallet])\n\n const findAddressByName = (name?: string) => {\n const validNetworkName = assertDefinedEx(name, 'name was not defined')\n return nodes?.find((node) => node.config.name === validNetworkName)?.address\n }\n\n return (\n <StandardNodesContext.Provider\n value={{\n findAddressByName,\n nodes,\n provided: true,\n }}\n >\n {children}\n </StandardNodesContext.Provider>\n )\n}\n\nexport const StandardNodesProviderWithWallet: React.FC<Omit<StandardNodesProviderProps, 'wallet'>> = (props) => {\n const { activeAccount } = useWalletContext()\n return <StandardNodesProvider wallet={activeAccount} {...props} />\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { MemoryArchivist, MemoryArchivistConfig, MemoryArchivistConfigSchema } from '@xyo-network/archivist-memory'\nimport { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/bridge-http'\nimport { AttachableModuleInstance } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { SentinelConfig } from '@xyo-network/sentinel-model'\nimport { AttachableWitnessInstance, WitnessModule } from '@xyo-network/witness-model'\n\nimport { SentinelBuilder } from './SentinelBuilder'\nimport { StorageArchivistBuilder } from './StorageArchivistBuilder'\n\nexport interface MemoryNodeBuilderConfig {\n name?: string\n node?: MemoryNode\n}\n\nexport class MemoryNodeBuilder {\n private _node: MemoryNode | undefined\n\n get node() {\n return assertDefinedEx(this._node, 'this._node was not defined upon create')\n }\n\n static async create({ name, node }: MemoryNodeBuilderConfig, account?: AccountInstance): Promise<MemoryNodeBuilder> {\n const instance = new this()\n\n const memoryNode: MemoryNode = node ?? (await MemoryNode.create({ account, config: { name, schema: NodeConfigSchema } }))\n instance._node = memoryNode\n return instance\n }\n\n /** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */\n async addArchivist(account: AccountInstance, moduleName?: string, namespace?: string) {\n await this.addArchivistStorage(account, moduleName, namespace)\n }\n\n async addArchivistMemory(moduleName?: string, account?: AccountInstance) {\n const config: MemoryArchivistConfig = { name: moduleName, schema: MemoryArchivistConfigSchema }\n const memoryArchivist = await MemoryArchivist.create({ account, config })\n\n await this.attach(memoryArchivist, true)\n }\n\n async addArchivistStorage(account: AccountInstance, moduleName?: string, namespace?: string) {\n const config = { name: moduleName, namespace }\n const { archivist } = await StorageArchivistBuilder.create(config, account, this.node)\n\n await this.attach(archivist, true)\n }\n\n async addBridge(apiDomain: string, moduleName = 'RemoteNodeBridge', account?: AccountInstance) {\n try {\n const bridge = await HttpBridge.create({\n account,\n config: { name: moduleName, nodeUrl: `${apiDomain}/node`, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } },\n })\n await this.attach(bridge, true)\n } catch (e) {\n console.error('Error Creating Bridge', e)\n }\n }\n\n async addSentinel(config: SentinelConfig, account: AccountInstance) {\n const { sentinel } = await SentinelBuilder.create(config, account)\n await this.attach(sentinel, true, true)\n return sentinel\n }\n\n async addWitnesses(pluginSetResolver: PayloadSetPluginResolver, witnesses: (() => Promise<AttachableWitnessInstance>)[] = []) {\n await Promise.all(\n pluginSetResolver.witnesses().map(async (pluginSet, index) => {\n // Pass the prebuilt witness at the same index\n const witness = await witnesses?.[index]?.()\n if (witness) {\n try {\n await this.witnessCleanup(witness)\n await this.node.register(witness)\n await this.node.attach(witness.address, true)\n } catch (e) {\n console.error('Error attaching witness', JSON.stringify(pluginSet, null, 2), e)\n }\n }\n }),\n )\n }\n\n async attach(mod: AttachableModuleInstance, external?: boolean, safeAttach?: boolean) {\n try {\n if (safeAttach) {\n const existingModule = (await this.node.resolve({ address: [mod.address] })).pop()\n if (existingModule) {\n await this.node.detach(existingModule.address)\n await this.node.unregister(existingModule)\n }\n }\n await this.node.register(mod)\n await this.node.attach(mod.address, external)\n } catch (e) {\n throw new Error(`Error adding ${mod.config.name ?? mod.address} to MemoryNode: ${e}`)\n }\n }\n\n private async witnessCleanup(witness: WitnessModule) {\n if ((await this.node.registered()).includes(witness.address)) {\n const [existingWitness] = await this.node.resolve({ address: [witness.address] })\n await this.node.unregister(existingWitness)\n }\n }\n}\n","import { AccountInstance } from '@xyo-network/account-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { MemorySentinel, MemorySentinelParams } from '@xyo-network/sentinel-memory'\nimport { 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 { AccountInstance } from '@xyo-network/account-model'\nimport { ArchivistModule, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { StorageArchivist, StorageArchivistConfig, StorageArchivistConfigSchema } from '@xyo-network/archivist-storage'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { asNodeInstance } from '@xyo-network/node-model'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport interface ArchivistBuilderConfig {\n name?: string\n namespace?: string\n}\nexport class StorageArchivistBuilder {\n private _archivist: StorageArchivist | undefined\n private remoteArchivist: ArchivistModule | undefined\n\n protected constructor(\n private config: ArchivistBuilderConfig,\n private account: AccountInstance,\n private node?: MemoryNode,\n ) {}\n\n get archivist() {\n return assertDefinedEx(this._archivist, 'archivist was not defined upon create')\n }\n\n static async create(config: ArchivistBuilderConfig, account: AccountInstance, node: MemoryNode): Promise<StorageArchivistBuilder> {\n const instance = new this(config, account, node)\n instance.remoteArchivist = await instance.findParentArchivist()\n instance._archivist = await instance.buildArchivist()\n return instance\n }\n\n async buildArchivist() {\n const config = this.buildConfig()\n return (await StorageArchivist.create({ account: this.account, config })) as StorageArchivist\n }\n\n buildConfig(): StorageArchivistConfig {\n return {\n name: this.config.name,\n namespace: this.config.namespace,\n parents: {\n commit: this.remoteArchivist ? [this.remoteArchivist?.address] : undefined,\n read: this.remoteArchivist ? [this.remoteArchivist?.address] : undefined,\n },\n schema: StorageArchivistConfigSchema,\n storeParentReads: true,\n type: 'local',\n }\n }\n\n async findParentArchivist() {\n const node = asNodeInstance(this.node, 'node not defined')\n const [bridge] = (await node.resolve({ name: ['RemoteNodeBridge'] })) ?? []\n if (bridge) {\n try {\n const [archivist] = (await bridge.resolve({ name: ['Archivist'] })) ?? []\n return asArchivistInstance(archivist)\n } catch {\n console.error('Error Resolving Parent Archivist', this.node?.config.name, this.config)\n }\n }\n }\n}\n","import { MemoryNode } from '@xyo-network/node-memory'\nimport { defaultNetworkConfigs } from '@xyo-network/react-network'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { MemoryNodeBuilder } from './Builders'\nimport { RemoteNodeArchivistOffsetPaths, RemoteNodeOffsetPaths } from './ModuleAccountPaths'\nimport { RootStorageArchivist } from './ModuleNames'\n\nconst knownRemoteNodes = (): { apiDomain: string; name: string }[] => {\n const networkNames = defaultNetworkConfigs.map((config) => config.name)\n return networkNames.map((networkName) => {\n const name = assertDefinedEx<string>(networkName, 'missing name in network config')\n const uri = defaultNetworkConfigs.find((config) => config.name === networkName)?.nodes?.filter((node) => node.type === 'archivist')[0].uri\n const apiDomain = assertDefinedEx<string>(uri, 'missing node type \"archivist\" in network config')\n return {\n apiDomain,\n name,\n }\n })\n}\n\nexport const BuildStandardNodes = async (wallet: WalletInstance, onNodeBuilt?: (node: MemoryNode) => void): Promise<MemoryNode[]> => {\n try {\n return await Promise.all(\n knownRemoteNodes().map(async ({ apiDomain, name }) => {\n const remoteNodeOffset = RemoteNodeOffsetPaths[name]\n const remoteNodeWallet = await wallet.derivePath?.(remoteNodeOffset)\n\n const memoryNodeBuilder = await MemoryNodeBuilder.create({ name }, await remoteNodeWallet.derivePath?.('0'))\n await memoryNodeBuilder.addBridge(apiDomain)\n\n const rootArchivistPath = `${remoteNodeOffset}/${RemoteNodeArchivistOffsetPaths[name][RootStorageArchivist]}`\n const rootArchivistAccount = await wallet.derivePath?.(rootArchivistPath)\n await memoryNodeBuilder.addArchivistStorage(rootArchivistAccount, RootStorageArchivist, 'root')\n\n const { node } = memoryNodeBuilder\n assertDefinedEx(node, 'Memory Node was not built successfully')\n onNodeBuilt?.(node)\n\n return node\n }),\n )\n } catch (e) {\n throw new Error(`Error Creating Known Remote Nodes: ${e}`)\n }\n}\n","export const GlobalNode = 'GlobalNode'\n\nexport const RootStorageArchivist = 'RootStorageArchivist'\n","import { RootStorageArchivist } from './ModuleNames'\n\nexport const GlobalNodeOffsetPath = '15'\n\nexport const RemoteNodeOffsetPaths: Record<string, string> = {\n Kerplunk: '112',\n Local: '111',\n Main: '113',\n}\n\nexport const RemoteNodeArchivistOffsetPaths: Record<string, Record<string, string>> = {\n Kerplunk: {\n MemoryNode: '117',\n [RootStorageArchivist]: '119',\n },\n Local: {\n MemoryNode: '114',\n [RootStorageArchivist]: '116',\n },\n Main: {\n MemoryNode: '120',\n [RootStorageArchivist]: '122',\n },\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { StandardNodesContext } from './Context'\n\nexport const useStandardNodes = (required = false) => useContextEx(StandardNodesContext, 'StandardNodes', required)\n","import { useProvidedNode } from '@xyo-network/react-node'\nimport { useMemo } from 'react'\n\nimport { useStandardNodes } from '../contexts'\n\nexport const useActiveNodeAddress = (networkName?: string) => {\n const [node] = useProvidedNode()\n const { nodes, findAddressByName } = useStandardNodes()\n\n const activeNodeAddress = useMemo(() => {\n if (node && nodes && findAddressByName && networkName) {\n return findAddressByName(networkName)\n }\n }, [findAddressByName, networkName, node, nodes])\n\n return activeNodeAddress\n}\n"],"mappings":"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","names":["useAsyncEffect","useNetwork","useWeakNodeFromNode","useState","createContextEx","StandardNodesContext","usePromise","assertDefinedEx","useWalletContext","useEffect","useState","MemoryArchivist","MemoryArchivistConfigSchema","HttpBridge","HttpBridgeConfigSchema","MemoryNode","NodeConfigSchema","assertDefinedEx","assertDefinedEx","MemorySentinel","SentinelBuilder","config","account","instance","params","asArchivistInstance","StorageArchivist","StorageArchivistConfigSchema","asNodeInstance","assertDefinedEx","StorageArchivistBuilder","config","account","node","instance","_a","_b","bridge","archivist","MemoryNodeBuilder","assertDefinedEx","name","node","account","instance","memoryNode","MemoryNode","NodeConfigSchema","moduleName","namespace","config","MemoryArchivistConfigSchema","memoryArchivist","MemoryArchivist","archivist","StorageArchivistBuilder","apiDomain","bridge","HttpBridge","HttpBridgeConfigSchema","e","sentinel","SentinelBuilder","pluginSetResolver","witnesses","pluginSet","index","_a","witness","mod","external","safeAttach","existingModule","existingWitness","defaultNetworkConfigs","assertDefinedEx","GlobalNode","RootStorageArchivist","GlobalNodeOffsetPath","RemoteNodeOffsetPaths","RemoteNodeArchivistOffsetPaths","RootStorageArchivist","knownRemoteNodes","defaultNetworkConfigs","config","networkName","_a","_b","name","assertDefinedEx","uri","node","BuildStandardNodes","wallet","onNodeBuilt","apiDomain","_c","remoteNodeOffset","RemoteNodeOffsetPaths","remoteNodeWallet","memoryNodeBuilder","MemoryNodeBuilder","rootArchivistPath","RemoteNodeArchivistOffsetPaths","RootStorageArchivist","rootArchivistAccount","jsx","StandardNodesProvider","children","defaultRemoteNodes","wallet","nodes","setNodes","useState","useEffect","usePromise","BuildStandardNodes","node","existingNode","findAddressByName","name","_a","validNetworkName","assertDefinedEx","StandardNodesContext","StandardNodesProviderWithWallet","props","activeAccount","useWalletContext","useContextEx","useStandardNodes","required","useContextEx","StandardNodesContext","useProvidedNode","useMemo","useActiveNodeAddress","networkName","node","useProvidedNode","nodes","findAddressByName","useStandardNodes","useMemo","Fragment","jsx","ActiveStandardNode","children","nodeNameOrAddress","network","useNetwork","node","useWeakNodeFromNode","activeRemoteNodeAddress","setActiveRemoteNodeAddress","useState","nodes","useStandardNodes","selectedNodeAddress","useActiveNodeAddress","useAsyncEffect","mounted","_a","nodeInstance","e"]}
|
|
@@ -26,7 +26,6 @@ export declare class MemoryNodeBuilder {
|
|
|
26
26
|
moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
|
|
27
27
|
}, import("@xyo-network/node-model").NodeModuleEventData>;
|
|
28
28
|
static create({ name, node }: MemoryNodeBuilderConfig, account?: AccountInstance): Promise<MemoryNodeBuilder>;
|
|
29
|
-
/** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */
|
|
30
29
|
addArchivist(account: AccountInstance, moduleName?: string, namespace?: string): Promise<void>;
|
|
31
30
|
addArchivistMemory(moduleName?: string, account?: AccountInstance): Promise<void>;
|
|
32
31
|
addArchivistStorage(account: AccountInstance, moduleName?: string, namespace?: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNodeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAiB,MAAM,4BAA4B,CAAA;AAKrF,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IAErC,IAAI,IAAI;;;;;;;;;;;;;;8DAEP;WAEY,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryNodeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAiB,MAAM,4BAA4B,CAAA;AAKrF,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IAErC,IAAI,IAAI;;;;;;;;;;;;;;8DAEP;WAEY,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAS7G,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAI9E,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe;IAOjE,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAOrF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,SAAqB,EAAE,OAAO,CAAC,EAAE,eAAe;IAYvF,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM5D,YAAY,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,SAAS,GAAE,CAAC,MAAM,OAAO,CAAC,yBAAyB,CAAC,CAAC,EAAO;IAkBtH,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO;YAgBtE,cAAc;CAM7B"}
|
|
@@ -26,7 +26,6 @@ export declare class MemoryNodeBuilder {
|
|
|
26
26
|
moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
|
|
27
27
|
}, import("@xyo-network/node-model").NodeModuleEventData>;
|
|
28
28
|
static create({ name, node }: MemoryNodeBuilderConfig, account?: AccountInstance): Promise<MemoryNodeBuilder>;
|
|
29
|
-
/** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */
|
|
30
29
|
addArchivist(account: AccountInstance, moduleName?: string, namespace?: string): Promise<void>;
|
|
31
30
|
addArchivistMemory(moduleName?: string, account?: AccountInstance): Promise<void>;
|
|
32
31
|
addArchivistStorage(account: AccountInstance, moduleName?: string, namespace?: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNodeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAiB,MAAM,4BAA4B,CAAA;AAKrF,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IAErC,IAAI,IAAI;;;;;;;;;;;;;;8DAEP;WAEY,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryNodeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAiB,MAAM,4BAA4B,CAAA;AAKrF,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IAErC,IAAI,IAAI;;;;;;;;;;;;;;8DAEP;WAEY,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAS7G,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAI9E,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe;IAOjE,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAOrF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,SAAqB,EAAE,OAAO,CAAC,EAAE,eAAe;IAYvF,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM5D,YAAY,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,SAAS,GAAE,CAAC,MAAM,OAAO,CAAC,yBAAyB,CAAC,CAAC,EAAO;IAkBtH,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO;YAgBtE,cAAc;CAM7B"}
|
|
@@ -26,7 +26,6 @@ export declare class MemoryNodeBuilder {
|
|
|
26
26
|
moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
|
|
27
27
|
}, import("@xyo-network/node-model").NodeModuleEventData>;
|
|
28
28
|
static create({ name, node }: MemoryNodeBuilderConfig, account?: AccountInstance): Promise<MemoryNodeBuilder>;
|
|
29
|
-
/** @deprecated - call specific method that corresponds to a type of archivist (i.e. addArchivistStorage) */
|
|
30
29
|
addArchivist(account: AccountInstance, moduleName?: string, namespace?: string): Promise<void>;
|
|
31
30
|
addArchivistMemory(moduleName?: string, account?: AccountInstance): Promise<void>;
|
|
32
31
|
addArchivistStorage(account: AccountInstance, moduleName?: string, namespace?: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNodeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAiB,MAAM,4BAA4B,CAAA;AAKrF,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IAErC,IAAI,IAAI;;;;;;;;;;;;;;8DAEP;WAEY,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryNodeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAiB,MAAM,4BAA4B,CAAA;AAKrF,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IAErC,IAAI,IAAI;;;;;;;;;;;;;;8DAEP;WAEY,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAS7G,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAI9E,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe;IAOjE,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAOrF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,SAAqB,EAAE,OAAO,CAAC,EAAE,eAAe;IAYvF,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM5D,YAAY,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,SAAS,GAAE,CAAC,MAAM,OAAO,CAAC,yBAAyB,CAAC,CAAC,EAAO;IAkBtH,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO;YAgBtE,cAAc;CAM7B"}
|
package/package.json
CHANGED
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"@xyo-network/node-memory": "^2.106.0",
|
|
24
24
|
"@xyo-network/node-model": "^2.106.0",
|
|
25
25
|
"@xyo-network/payloadset-plugin": "^2.106.0",
|
|
26
|
-
"@xyo-network/react-network": "~2.77.
|
|
27
|
-
"@xyo-network/react-node": "~2.77.
|
|
28
|
-
"@xyo-network/react-shared": "~2.77.
|
|
29
|
-
"@xyo-network/react-wallet": "~2.77.
|
|
26
|
+
"@xyo-network/react-network": "~2.77.1",
|
|
27
|
+
"@xyo-network/react-node": "~2.77.1",
|
|
28
|
+
"@xyo-network/react-shared": "~2.77.1",
|
|
29
|
+
"@xyo-network/react-wallet": "~2.77.1",
|
|
30
30
|
"@xyo-network/sentinel-memory": "^2.106.0",
|
|
31
31
|
"@xyo-network/sentinel-model": "^2.106.0",
|
|
32
32
|
"@xyo-network/wallet-model": "^2.106.0",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@storybook/react": "^7.6.19",
|
|
37
|
-
"@xylabs/ts-scripts-yarn3": "^3.11.
|
|
38
|
-
"@xylabs/tsconfig-react": "^3.11.
|
|
37
|
+
"@xylabs/ts-scripts-yarn3": "^3.11.7",
|
|
38
|
+
"@xylabs/tsconfig-react": "^3.11.7",
|
|
39
39
|
"typescript": "^5.4.5"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
@@ -96,6 +96,6 @@
|
|
|
96
96
|
},
|
|
97
97
|
"sideEffects": false,
|
|
98
98
|
"types": "dist/browser/index.d.ts",
|
|
99
|
-
"version": "2.77.
|
|
99
|
+
"version": "2.77.1",
|
|
100
100
|
"type": "module"
|
|
101
101
|
}
|