@xyo-network/react-node 2.75.2 → 2.75.3
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/components/Node.d.cts +1 -1
- package/dist/browser/components/Node.d.cts.map +1 -1
- package/dist/browser/components/Node.d.mts +1 -1
- package/dist/browser/components/Node.d.mts.map +1 -1
- package/dist/browser/components/Node.d.ts +1 -1
- package/dist/browser/components/Node.d.ts.map +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.cts +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.cts.map +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.mts +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.mts.map +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.ts +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.ts.map +1 -1
- package/dist/browser/components/NodeModulesBox.d.cts.map +1 -1
- package/dist/browser/components/NodeModulesBox.d.mts.map +1 -1
- package/dist/browser/components/NodeModulesBox.d.ts.map +1 -1
- package/dist/browser/hooks/ModuleFromNodeConfig.d.cts +1 -1
- package/dist/browser/hooks/ModuleFromNodeConfig.d.cts.map +1 -1
- package/dist/browser/hooks/ModuleFromNodeConfig.d.mts +1 -1
- package/dist/browser/hooks/ModuleFromNodeConfig.d.mts.map +1 -1
- package/dist/browser/hooks/ModuleFromNodeConfig.d.ts +1 -1
- package/dist/browser/hooks/ModuleFromNodeConfig.d.ts.map +1 -1
- package/dist/browser/hooks/index.d.cts +3 -0
- package/dist/browser/hooks/index.d.cts.map +1 -1
- package/dist/browser/hooks/index.d.mts +3 -0
- package/dist/browser/hooks/index.d.mts.map +1 -1
- package/dist/browser/hooks/index.d.ts +3 -0
- package/dist/browser/hooks/index.d.ts.map +1 -1
- package/dist/browser/hooks/provided/index.d.cts +1 -0
- package/dist/browser/hooks/provided/index.d.cts.map +1 -1
- package/dist/browser/hooks/provided/index.d.mts +1 -0
- package/dist/browser/hooks/provided/index.d.mts.map +1 -1
- package/dist/browser/hooks/provided/index.d.ts +1 -0
- package/dist/browser/hooks/provided/index.d.ts.map +1 -1
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.cts +3 -0
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.cts.map +1 -0
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.mts +3 -0
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.mts.map +1 -0
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.ts +3 -0
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.ts.map +1 -0
- package/dist/browser/hooks/useModuleFromNode.d.cts +1 -1
- package/dist/browser/hooks/useModuleFromNode.d.mts +1 -1
- package/dist/browser/hooks/useModuleFromNode.d.ts +1 -1
- package/dist/browser/hooks/useNodeFromNode.d.cts +1 -0
- package/dist/browser/hooks/useNodeFromNode.d.cts.map +1 -1
- package/dist/browser/hooks/useNodeFromNode.d.mts +1 -0
- package/dist/browser/hooks/useNodeFromNode.d.mts.map +1 -1
- package/dist/browser/hooks/useNodeFromNode.d.ts +1 -0
- package/dist/browser/hooks/useNodeFromNode.d.ts.map +1 -1
- package/dist/browser/hooks/useNodesFromNode.d.cts +1 -0
- package/dist/browser/hooks/useNodesFromNode.d.cts.map +1 -1
- package/dist/browser/hooks/useNodesFromNode.d.mts +1 -0
- package/dist/browser/hooks/useNodesFromNode.d.mts.map +1 -1
- package/dist/browser/hooks/useNodesFromNode.d.ts +1 -0
- package/dist/browser/hooks/useNodesFromNode.d.ts.map +1 -1
- package/dist/browser/hooks/useWeakNode.d.cts +4 -0
- package/dist/browser/hooks/useWeakNode.d.cts.map +1 -0
- package/dist/browser/hooks/useWeakNode.d.mts +4 -0
- package/dist/browser/hooks/useWeakNode.d.mts.map +1 -0
- package/dist/browser/hooks/useWeakNode.d.ts +4 -0
- package/dist/browser/hooks/useWeakNode.d.ts.map +1 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.cts +4 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.cts.map +1 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.mts +4 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.mts.map +1 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.ts +4 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.ts.map +1 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.cts +4 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.cts.map +1 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.mts +4 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.mts.map +1 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.ts +4 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.ts.map +1 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.cts +5 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.cts.map +1 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.mts +5 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.mts.map +1 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.ts +5 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.ts.map +1 -0
- package/dist/browser/index.cjs +88 -20
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +76 -8
- package/dist/browser/index.js.map +1 -1
- package/dist/node/components/Node.d.cts +1 -1
- package/dist/node/components/Node.d.cts.map +1 -1
- package/dist/node/components/Node.d.mts +1 -1
- package/dist/node/components/Node.d.mts.map +1 -1
- package/dist/node/components/Node.d.ts +1 -1
- package/dist/node/components/Node.d.ts.map +1 -1
- package/dist/node/components/NodeDescriptionBox.d.cts +1 -1
- package/dist/node/components/NodeDescriptionBox.d.cts.map +1 -1
- package/dist/node/components/NodeDescriptionBox.d.mts +1 -1
- package/dist/node/components/NodeDescriptionBox.d.mts.map +1 -1
- package/dist/node/components/NodeDescriptionBox.d.ts +1 -1
- package/dist/node/components/NodeDescriptionBox.d.ts.map +1 -1
- package/dist/node/components/NodeModulesBox.d.cts.map +1 -1
- package/dist/node/components/NodeModulesBox.d.mts.map +1 -1
- package/dist/node/components/NodeModulesBox.d.ts.map +1 -1
- package/dist/node/hooks/ModuleFromNodeConfig.d.cts +1 -1
- package/dist/node/hooks/ModuleFromNodeConfig.d.cts.map +1 -1
- package/dist/node/hooks/ModuleFromNodeConfig.d.mts +1 -1
- package/dist/node/hooks/ModuleFromNodeConfig.d.mts.map +1 -1
- package/dist/node/hooks/ModuleFromNodeConfig.d.ts +1 -1
- package/dist/node/hooks/ModuleFromNodeConfig.d.ts.map +1 -1
- package/dist/node/hooks/index.d.cts +3 -0
- package/dist/node/hooks/index.d.cts.map +1 -1
- package/dist/node/hooks/index.d.mts +3 -0
- package/dist/node/hooks/index.d.mts.map +1 -1
- package/dist/node/hooks/index.d.ts +3 -0
- package/dist/node/hooks/index.d.ts.map +1 -1
- package/dist/node/hooks/provided/index.d.cts +1 -0
- package/dist/node/hooks/provided/index.d.cts.map +1 -1
- package/dist/node/hooks/provided/index.d.mts +1 -0
- package/dist/node/hooks/provided/index.d.mts.map +1 -1
- package/dist/node/hooks/provided/index.d.ts +1 -0
- package/dist/node/hooks/provided/index.d.ts.map +1 -1
- package/dist/node/hooks/provided/useWeakProvidedNode.d.cts +3 -0
- package/dist/node/hooks/provided/useWeakProvidedNode.d.cts.map +1 -0
- package/dist/node/hooks/provided/useWeakProvidedNode.d.mts +3 -0
- package/dist/node/hooks/provided/useWeakProvidedNode.d.mts.map +1 -0
- package/dist/node/hooks/provided/useWeakProvidedNode.d.ts +3 -0
- package/dist/node/hooks/provided/useWeakProvidedNode.d.ts.map +1 -0
- package/dist/node/hooks/useModuleFromNode.d.cts +1 -1
- package/dist/node/hooks/useModuleFromNode.d.mts +1 -1
- package/dist/node/hooks/useModuleFromNode.d.ts +1 -1
- package/dist/node/hooks/useNodeFromNode.d.cts +1 -0
- package/dist/node/hooks/useNodeFromNode.d.cts.map +1 -1
- package/dist/node/hooks/useNodeFromNode.d.mts +1 -0
- package/dist/node/hooks/useNodeFromNode.d.mts.map +1 -1
- package/dist/node/hooks/useNodeFromNode.d.ts +1 -0
- package/dist/node/hooks/useNodeFromNode.d.ts.map +1 -1
- package/dist/node/hooks/useNodesFromNode.d.cts +1 -0
- package/dist/node/hooks/useNodesFromNode.d.cts.map +1 -1
- package/dist/node/hooks/useNodesFromNode.d.mts +1 -0
- package/dist/node/hooks/useNodesFromNode.d.mts.map +1 -1
- package/dist/node/hooks/useNodesFromNode.d.ts +1 -0
- package/dist/node/hooks/useNodesFromNode.d.ts.map +1 -1
- package/dist/node/hooks/useWeakNode.d.cts +4 -0
- package/dist/node/hooks/useWeakNode.d.cts.map +1 -0
- package/dist/node/hooks/useWeakNode.d.mts +4 -0
- package/dist/node/hooks/useWeakNode.d.mts.map +1 -0
- package/dist/node/hooks/useWeakNode.d.ts +4 -0
- package/dist/node/hooks/useWeakNode.d.ts.map +1 -0
- package/dist/node/hooks/useWeakNodeDescription.d.cts +4 -0
- package/dist/node/hooks/useWeakNodeDescription.d.cts.map +1 -0
- package/dist/node/hooks/useWeakNodeDescription.d.mts +4 -0
- package/dist/node/hooks/useWeakNodeDescription.d.mts.map +1 -0
- package/dist/node/hooks/useWeakNodeDescription.d.ts +4 -0
- package/dist/node/hooks/useWeakNodeDescription.d.ts.map +1 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.cts +4 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.cts.map +1 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.mts +4 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.mts.map +1 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.ts +4 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.ts.map +1 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.cts +5 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.cts.map +1 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.mts +5 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.mts.map +1 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.ts +5 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.ts.map +1 -0
- package/dist/node/index.cjs +93 -20
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +77 -8
- package/dist/node/index.js.map +1 -1
- package/package.json +6 -5
- package/src/components/Node.stories.tsx +6 -5
- package/src/components/Node.tsx +1 -1
- package/src/components/NodeDescriptionBox.tsx +3 -3
- package/src/components/NodeModulesBox.tsx +6 -3
- package/src/hooks/ModuleFromNodeConfig.ts +1 -1
- package/src/hooks/index.ts +3 -0
- package/src/hooks/provided/index.ts +1 -0
- package/src/hooks/provided/useWeakProvidedNode.tsx +9 -0
- package/src/hooks/useNodeFromNode.tsx +3 -0
- package/src/hooks/useNodesFromNode.tsx +3 -0
- package/src/hooks/useWeakNode.ts +18 -0
- package/src/hooks/useWeakNodeDescription.ts +15 -0
- package/src/hooks/useWeakNodeFromNode.tsx +11 -0
- package/src/hooks/useWeakNodesFromNode.tsx +25 -0
package/dist/node/index.js
CHANGED
|
@@ -14,6 +14,15 @@ var useProvidedNode = () => {
|
|
|
14
14
|
return [node];
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
+
// src/hooks/provided/useWeakProvidedNode.tsx
|
|
18
|
+
import { NodeContext as NodeContext2 } from "@xyo-network/react-node-context";
|
|
19
|
+
import { useContext as useContext2, useMemo } from "react";
|
|
20
|
+
var useWeakProvidedNode = () => {
|
|
21
|
+
const { node } = useContext2(NodeContext2);
|
|
22
|
+
const weakNode = useMemo(() => node ? new WeakRef(node) : null, [node]);
|
|
23
|
+
return [weakNode];
|
|
24
|
+
};
|
|
25
|
+
|
|
17
26
|
// src/hooks/useModuleFilterOptions.ts
|
|
18
27
|
var useModuleFilterOptions = (config) => {
|
|
19
28
|
const { direction, identity, maxDepth } = config ?? {};
|
|
@@ -30,10 +39,10 @@ import { usePromise } from "@xylabs/react-promise";
|
|
|
30
39
|
import { asNodeInstance } from "@xyo-network/node-model";
|
|
31
40
|
|
|
32
41
|
// src/hooks/useNodeConfigNodeField.ts
|
|
33
|
-
import { useMemo } from "react";
|
|
42
|
+
import { useMemo as useMemo2 } from "react";
|
|
34
43
|
var useNodeConfigNodeField = (config) => {
|
|
35
|
-
const nodeAddress =
|
|
36
|
-
const nodeInstance =
|
|
44
|
+
const nodeAddress = useMemo2(() => typeof (config == null ? void 0 : config.node) === "string" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
|
|
45
|
+
const nodeInstance = useMemo2(() => typeof (config == null ? void 0 : config.node) === "object" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
|
|
37
46
|
return [nodeAddress, nodeInstance];
|
|
38
47
|
};
|
|
39
48
|
|
|
@@ -146,6 +155,25 @@ var useNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
|
146
155
|
return [instance, error];
|
|
147
156
|
};
|
|
148
157
|
|
|
158
|
+
// src/hooks/useNodesFromNode.tsx
|
|
159
|
+
import { isNodeInstance } from "@xyo-network/node-model";
|
|
160
|
+
var useNodesFromNode = (filter, config) => {
|
|
161
|
+
const [modules, error] = useModulesFromNode(filter, config);
|
|
162
|
+
if (error) {
|
|
163
|
+
return [null, error];
|
|
164
|
+
}
|
|
165
|
+
return modules ? [
|
|
166
|
+
// eslint-disable-next-line unicorn/no-array-reduce
|
|
167
|
+
modules.reduce((prev, module2) => {
|
|
168
|
+
if (isNodeInstance(module2)) {
|
|
169
|
+
prev.push(module2);
|
|
170
|
+
}
|
|
171
|
+
return prev;
|
|
172
|
+
}, []),
|
|
173
|
+
void 0
|
|
174
|
+
] : [modules, error];
|
|
175
|
+
};
|
|
176
|
+
|
|
149
177
|
// src/hooks/useWeakModuleFromNode.ts
|
|
150
178
|
import { usePromise as usePromise5 } from "@xylabs/react-promise";
|
|
151
179
|
import { isModuleInstance as isModuleInstance2 } from "@xyo-network/module-model";
|
|
@@ -224,13 +252,50 @@ var useWeakModulesFromNode = (filter, config) => {
|
|
|
224
252
|
};
|
|
225
253
|
|
|
226
254
|
// src/hooks/useWeakNodeConfigNodeField.ts
|
|
227
|
-
import { useMemo as
|
|
255
|
+
import { useMemo as useMemo3 } from "react";
|
|
228
256
|
var useWeakNodeConfigNodeField = (config) => {
|
|
229
|
-
const nodeAddress =
|
|
230
|
-
const nodeInstance =
|
|
257
|
+
const nodeAddress = useMemo3(() => typeof (config == null ? void 0 : config.node) === "string" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
|
|
258
|
+
const nodeInstance = useMemo3(() => typeof (config == null ? void 0 : config.node) === "object" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
|
|
231
259
|
return [nodeAddress, nodeInstance];
|
|
232
260
|
};
|
|
233
261
|
|
|
262
|
+
// src/hooks/useWeakNodeDescription.ts
|
|
263
|
+
import { usePromise as usePromise8 } from "@xylabs/react-promise";
|
|
264
|
+
import { ModuleDescriptionSchema as ModuleDescriptionSchema2 } from "@xyo-network/module-model";
|
|
265
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
|
|
266
|
+
|
|
267
|
+
// src/hooks/useWeakNode.ts
|
|
268
|
+
import { usePromise as usePromise7 } from "@xylabs/react-promise";
|
|
269
|
+
import { asNodeInstance as asNodeInstance3 } from "@xyo-network/node-model";
|
|
270
|
+
var useWeakNode = (config) => {
|
|
271
|
+
const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config);
|
|
272
|
+
const [providedNode] = useWeakProvidedNode();
|
|
273
|
+
const [nodeAddressNode, error] = usePromise7(async () => {
|
|
274
|
+
const providedNodeInstance = providedNode == null ? void 0 : providedNode.deref();
|
|
275
|
+
if (providedNodeInstance && nodeAddress) {
|
|
276
|
+
return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), "Module is not a node"));
|
|
277
|
+
}
|
|
278
|
+
}, [providedNode, nodeAddress]);
|
|
279
|
+
return [nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0, error];
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
// src/hooks/useWeakNodeDescription.ts
|
|
283
|
+
var useWeakNodeDescription = (config) => {
|
|
284
|
+
const [activeNode, nodeError] = useWeakNode(config);
|
|
285
|
+
const [description, error] = usePromise8(async () => {
|
|
286
|
+
var _a;
|
|
287
|
+
const state = await ((_a = activeNode == null ? void 0 : activeNode.deref()) == null ? void 0 : _a.state());
|
|
288
|
+
return state == null ? void 0 : state.find(isPayloadOfSchemaType2(ModuleDescriptionSchema2));
|
|
289
|
+
}, [activeNode]);
|
|
290
|
+
return [description, nodeError ?? error];
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
// src/hooks/useWeakNodeFromNode.tsx
|
|
294
|
+
import { isNodeInstance as isNodeInstance2 } from "@xyo-network/node-model";
|
|
295
|
+
var useWeakNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
296
|
+
return useWeakModuleFromNode(nameOrAddressOrInstance, { identity: isNodeInstance2, ...config });
|
|
297
|
+
};
|
|
298
|
+
|
|
234
299
|
// src/hooks/WeakModuleFromNodeConfig.ts
|
|
235
300
|
var useWeakModuleFromNodeConfigLogger = (config) => {
|
|
236
301
|
return config == null ? void 0 : config.logger;
|
|
@@ -239,7 +304,7 @@ var useWeakModuleFromNodeConfigLogger = (config) => {
|
|
|
239
304
|
// src/components/NodeDescriptionBox.tsx
|
|
240
305
|
import { jsx } from "react/jsx-runtime";
|
|
241
306
|
var NodeDescriptionBox = ({ node, ...props }) => {
|
|
242
|
-
const [description, error] =
|
|
307
|
+
const [description, error] = useWeakNodeDescription({ node });
|
|
243
308
|
return /* @__PURE__ */ jsx(FlexCol, { ...props, children: /* @__PURE__ */ jsx("code", { color: error ? "red" : void 0, children: error ? error.message : JSON.stringify(description, null, 2) }) });
|
|
244
309
|
};
|
|
245
310
|
|
|
@@ -355,10 +420,14 @@ export {
|
|
|
355
420
|
useNodeConfigNodeField,
|
|
356
421
|
useNodeDescription,
|
|
357
422
|
useNodeFromNode,
|
|
423
|
+
useNodesFromNode,
|
|
358
424
|
useProvidedNode,
|
|
359
425
|
useWeakModuleFromNode,
|
|
360
426
|
useWeakModuleFromNodeConfigLogger,
|
|
361
427
|
useWeakModulesFromNode,
|
|
362
|
-
useWeakNodeConfigNodeField
|
|
428
|
+
useWeakNodeConfigNodeField,
|
|
429
|
+
useWeakNodeDescription,
|
|
430
|
+
useWeakNodeFromNode,
|
|
431
|
+
useWeakProvidedNode
|
|
363
432
|
};
|
|
364
433
|
//# sourceMappingURL=index.js.map
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/NodeDescriptionBox.tsx","../../src/hooks/ModuleFromNodeConfig.ts","../../src/hooks/provided/useProvidedNode.tsx","../../src/hooks/useModuleFilterOptions.ts","../../src/hooks/useModuleFromNode.ts","../../src/hooks/useNode.ts","../../src/hooks/useNodeConfigNodeField.ts","../../src/hooks/useModulesFromNode.ts","../../src/hooks/useNodeDescription.ts","../../src/hooks/useNodeFromNode.tsx","../../src/hooks/useWeakModuleFromNode.ts","../../src/hooks/useWeakModulesFromNode.ts","../../src/hooks/useWeakNodeConfigNodeField.ts","../../src/hooks/WeakModuleFromNodeConfig.ts","../../src/components/Node.tsx","../../src/components/NodeDrawer.tsx","../../src/components/render/ModuleDescriptionBox.tsx","../../src/components/render/RenderModule.tsx","../../src/index.ts"],"sourcesContent":["import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { useNodeDescription } from '../hooks'\n\nexport interface NodeDescriptionBoxProps extends FlexBoxProps {\n node?: string | NodeInstance\n}\n\nexport const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {\n const [description, error] = useNodeDescription({ node })\n\n return (\n <FlexCol {...props}>\n <code color={error ? 'red' : undefined}>{error ? error.message : JSON.stringify(description, null, 2)}</code>\n </FlexCol>\n )\n}\n","import { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type ModuleFromNodeConfig<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions & {\n logger?: Logger\n node?: NodeInstance | string\n}\n\nexport const useModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { useContext } from 'react'\n\nexport const useProvidedNode = (): [NodeInstance | null | undefined] => {\n const { node } = useContext(NodeContext)\n return [node]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n\nexport const useModuleFilterOptions = (config?: ModuleFromNodeConfig) => {\n const { direction, identity, maxDepth } = config ?? {}\n return { direction, identity, maxDepth }\n}\n","/* eslint-disable import/no-deprecated */\n/* eslint-disable deprecation/deprecation */\nimport { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\n/** @deprecated use useWeakModuleFromNode */\nexport const useModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: T extends ModuleInstance ? ModuleFromNodeConfig<T> : ModuleFromNodeConfig | undefined,\n): [(T extends ModuleInstance ? T : ModuleInstance) | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\n const [result, setResult] = useState<(T extends ModuleInstance ? T : ModuleInstance) | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n if (node && nameOrAddressOrInstance) {\n node.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(identity(module) ? (module as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n node.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(nameOrAddressOrInstance)\n } else {\n const result = await node.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(module) ? (module as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useProvidedNode } from './provided'\nimport { useNodeConfigNodeField } from './useNodeConfigNodeField'\n\nexport const useNode = (config?: ModuleFromNodeConfig | undefined): [NodeInstance | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config)\n const [providedNode] = useProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n if (providedNode && nodeAddress) {\n return asNodeInstance(await providedNode.resolve(nodeAddress), 'Module is not a node')\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n\nexport const useNodeConfigNodeField = (config?: ModuleFromNodeConfig | undefined): [string | undefined, NodeInstance | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\n/** @deprecated use useModulesFromNode */\nexport const useModulesFromNode = (filter?: ModuleFilter, config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\n const [result, setResult] = useState<ModuleInstance[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node) {\n node.on('moduleAttached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n node.on('moduleDetached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleDescription, ModuleDescriptionPayload, ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useNode } from './useNode'\n\nexport const useNodeDescription = (config?: ModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFromNode } from './useModuleFromNode'\n\nexport const useNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [NodeInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asNodeInstance(module)\n if (module && !instance) {\n const error = new Error(`Resolved module is not a NodeInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useWeakModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: ModuleFromNodeConfig,\n): [WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\n const [result, setResult] = useState<WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n const nodeInstance = node\n if (nodeInstance && nameOrAddressOrInstance) {\n nodeInstance.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(identity(module) ? new WeakRef(module as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n nodeInstance.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(new WeakRef(nameOrAddressOrInstance as T extends ModuleInstance ? T : ModuleInstance))\n } else {\n const result = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? new WeakRef(result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useWeakModulesFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance>[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\n const [result, setResult] = useState<WeakRef<ModuleInstance>[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const nodeInstance = node\n if (nodeInstance) {\n nodeInstance.on('moduleAttached', async ({ module }) => {\n const nodeInstance = node\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await nodeInstance?.resolve(filter, filterOptions) : await nodeInstance?.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n })\n nodeInstance.on('moduleDetached', async ({ module }) => {\n const nodeInstance = node\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await nodeInstance?.resolve(filter, filterOptions) : await nodeInstance?.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n })\n const moduleInstances = filter ? await nodeInstance.resolve(filter, filterOptions) : await nodeInstance.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'\n\nexport const useWeakNodeConfigNodeField = (\n config?: WeakModuleFromNodeConfig | undefined,\n): [string | undefined, WeakRef<NodeInstance> | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type WeakModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: WeakRef<NodeInstance> | string\n}\n\nexport const useWeakModuleFromNodeConfigLogger = (config?: WeakModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { NodeDescriptionBox } from './NodeDescriptionBox'\n\nexport interface NodeBoxProps extends FlexBoxProps {\n node?: string | NodeInstance\n variant?: 'description'\n}\n\nexport const NodeBox: React.FC<NodeBoxProps> = ({ variant, ...props }) => {\n switch (variant) {\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case 'description':\n default: {\n return <NodeDescriptionBox {...props} />\n }\n }\n}\n","import { Close as CloseIcon } from '@mui/icons-material'\nimport { ClickAwayListener, Drawer, DrawerProps, IconButton } from '@mui/material'\nimport { FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { useNodeDrawer } from '@xyo-network/react-node-provider'\n\nimport { useProvidedNode } from '../hooks'\nimport { ModuleDescriptionBox } from './render'\n\nexport interface NodeDrawerProps extends WithChildren, Omit<DrawerProps, 'open'> {}\n\nexport const NodeDrawer: React.FC<NodeDrawerProps> = ({ children, ...props }) => {\n const { open, setOpen } = useNodeDrawer()\n const [node] = useProvidedNode()\n\n return (\n <Drawer open={open ?? false} anchor=\"right\" {...props}>\n <ClickAwayListener onClickAway={() => setOpen?.(false)}>\n <FlexGrowCol role=\"presentation\" justifyContent=\"start\" p={2} rowGap={2} minWidth=\"33vw\">\n <FlexRow alignContent=\"start\" justifyContent=\"start\" width=\"100%\">\n <IconButton onClick={() => setOpen?.(false)}>\n <CloseIcon />\n </IconButton>\n </FlexRow>\n <ModuleDescriptionBox module={node} />\n {children}\n </FlexGrowCol>\n </ClickAwayListener>\n </Drawer>\n )\n}\n","import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from '@mui/icons-material'\nimport { styled, Typography } from '@mui/material'\nimport { TreeView } from '@mui/x-tree-view'\nimport { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { useRef } from 'react'\n\nimport { RenderModule } from './RenderModule'\n\nexport interface ModuleDescriptionProps extends FlexBoxProps {\n module?: ModuleInstance | null\n}\nexport const ModuleDescriptionBox: React.FC<ModuleDescriptionProps> = ({ module }) => {\n const idRef = useRef<{ idIncrementor: number; ids: string[] }>({ idIncrementor: 0, ids: [] })\n\n return (\n <>\n {module ?\n <>\n <Typography variant=\"h4\">Node Configuration</Typography>\n <StyledTreeView\n aria-label=\"file system navigator\"\n defaultCollapseIcon={<ExpandMoreIcon />}\n defaultExpandIcon={<ChevronRightIcon />}\n sx={{ flexGrow: 1 }}\n >\n <RenderModule module={module} idRef={idRef} />\n </StyledTreeView>\n </>\n : module === null ?\n <Typography variant=\"h4\">Node loading...</Typography>\n : <Typography variant=\"h4\">Node not found</Typography>}\n </>\n )\n}\n\nconst StyledTreeView = styled(TreeView, { name: 'StyledTreeView' })(() => ({\n height: 'auto',\n maxWidth: 'auto',\n}))\n","import { styled } from '@mui/material'\nimport { TreeItem } from '@mui/x-tree-view'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { MutableRefObject, useState } from 'react'\n\ninterface RenderModuleProps {\n idRef: MutableRefObject<{\n idIncrementor: number\n ids: string[]\n }>\n module: ModuleInstance\n}\n\nexport const RenderModule: React.FC<RenderModuleProps> = ({ module, idRef }) => {\n const { address, queries } = module ?? {}\n const [childModules, setChildModules] = useState<WeakRef<ModuleInstance>[]>()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const children = (await module.resolve('*')).filter((childModule) => childModule.address !== address)\n if (mounted()) {\n setChildModules(children.map((childModule) => new WeakRef(childModule)))\n }\n },\n [module, address],\n )\n\n const increment = () => {\n const newId = (idRef.current.idIncrementor++).toString()\n idRef.current.ids.push(newId)\n return newId\n }\n\n return (\n <StyledAddressTreeItem nodeId={increment()} label={`address: ${address}`}>\n {queries.map((query, index) => {\n return <TreeItem key={query} nodeId={increment()} label={`query : ${query}`} sx={{ mb: index === queries.length - 1 ? 1.5 : 0.5 }} />\n })}\n {childModules && childModules.length > 0 ?\n <TreeItem nodeId={increment()} label={'children'} sx={{ mb: 0.5 }}>\n {childModules.map((childModuleRef) => {\n const childModule = childModuleRef.deref()\n return childModule ? <RenderModule key={childModule?.address} module={childModule} idRef={idRef} /> : null\n })}\n </TreeItem>\n : null}\n </StyledAddressTreeItem>\n )\n}\n\nconst StyledAddressTreeItem = styled(TreeItem, { name: 'StyledAddressTreeItem' })(({ theme }) => ({\n '& .MuiTreeItem-content': {\n marginBottom: theme.spacing(0.25),\n },\n}))\n","export * from './components'\nexport * from './hooks'\nexport * from '@xyo-network/react-node-context'\nexport * from '@xyo-network/react-node-provider'\n"],"mappings":";AAAA,SAAuB,eAAe;;;ACS/B,IAAM,gCAAgC,CAAC,WAAkC;AAC9E,SAAO,iCAAQ;AACjB;;;ACVA,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAEpB,IAAM,kBAAkB,MAAyC;AACtE,QAAM,EAAE,KAAK,IAAI,WAAW,WAAW;AACvC,SAAO,CAAC,IAAI;AACd;;;ACHO,IAAM,yBAAyB,CAAC,WAAkC;AACvE,QAAM,EAAE,WAAW,UAAU,SAAS,IAAI,UAAU,CAAC;AACrD,SAAO,EAAE,WAAW,UAAU,SAAS;AACzC;;;ACJA,SAAS,cAAAA,mBAAkB;AAC3B,SAAS,wBAAwC;AACjD,SAAS,gBAAgB;;;ACLzB,SAAS,kBAAkB;AAC3B,SAAS,sBAAoC;;;ACE7C,SAAS,eAAe;AAIjB,IAAM,yBAAyB,CAAC,WAA8F;AACnI,QAAM,cAAc,QAAQ,MAAO,QAAO,iCAAQ,UAAS,WAAW,iCAAQ,OAAO,QAAY,CAAC,iCAAQ,IAAI,CAAC;AAC/G,QAAM,eAAe,QAAQ,MAAO,QAAO,iCAAQ,UAAS,WAAW,iCAAQ,OAAO,QAAY,CAAC,iCAAQ,IAAI,CAAC;AAChH,SAAO,CAAC,aAAa,YAAY;AACnC;;;ADJO,IAAM,UAAU,CAAC,WAA6F;AACnH,QAAM,CAAC,aAAa,YAAY,IAAI,uBAAuB,MAAM;AACjE,QAAM,CAAC,YAAY,IAAI,gBAAgB;AACvC,QAAM,CAAC,iBAAiB,KAAK,IAAI,WAAW,YAAY;AACtD,QAAI,gBAAgB,aAAa;AAC/B,aAAO,eAAe,MAAM,aAAa,QAAQ,WAAW,GAAG,sBAAsB;AAAA,IACvF;AAAA,EACF,GAAG,CAAC,cAAc,WAAW,CAAC;AAC9B,SAAO,CAAC,mBAAmB,gBAAgB,gBAAgB,QAAW,KAAK;AAC7E;;;ADJO,IAAM,oBAAoB,CAC/B,0BAAgG,QAChG,WACqF;AACrF,QAAM,CAAC,MAAM,SAAS,IAAI,QAAQ,MAAM;AACxC,QAAM,SAAS,8BAA8B,MAAM;AACnD,QAAM,gBAAgB,uBAAuB,MAAM;AACnD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAsE;AAClG,QAAM,CAAC,EAAE,KAAK,IAAIC,YAAW,YAAY;AACvC,qCAAQ,MAAM;AACd,UAAM,YAAsE,iCAAQ,aAAY;AAGhG,QAAI,QAAQ,yBAAyB;AACnC,WAAK,GAAG,kBAAkB,CAAC,EAAE,QAAAC,QAAO,MAAM;AA1BhD;AA2BQ,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,YAAIA,QAAO,YAAY,6BAA2B,KAAAA,QAAO,WAAP,mBAAe,UAAS,yBAAyB;AACjG,oBAAU,SAASA,OAAM,IAAKA,UAA2D,MAAS;AAAA,QACpG;AAAA,MACF,CAAC;AACD,WAAK,GAAG,kBAAkB,CAAC,EAAE,QAAAA,QAAO,MAAM;AAhChD;AAiCQ,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,YAAIA,QAAO,YAAY,6BAA2B,KAAAA,QAAO,WAAP,mBAAe,UAAS,yBAAyB;AACjG,oBAAU,MAAS;AAAA,QACrB;AAAA,MACF,CAAC;AACD,UAAI,SAAS,uBAAuB,GAAG;AACrC,kBAAU,uBAAuB;AAAA,MACnC,OAAO;AACL,cAAMC,UAAS,MAAM,KAAK,QAAQ,yBAAyB,aAAa;AACxE,yCAAQ,MAAM,WAAWA,WAAA,gBAAAA,QAAQ,OAAO;AACxC,kBAAU,SAAS,MAAM,IAAK,SAA2D,MAAS;AAAA,MACpG;AACA,aAAO;AAAA,IACT;AACA,qCAAQ,MAAM;AACd;AAAA,EAEF,GAAG,CAAC,MAAM,uBAAuB,CAAC;AAClC,SAAO,CAAC,QAAQ,aAAa,KAAK;AACpC;;;AGlDA,SAAS,cAAAC,mBAAkB;AAE3B,SAAS,YAAAC,iBAAgB;AAOlB,IAAM,qBAAqB,CAAC,QAAuB,WAAqF;AAC7I,QAAM,CAAC,MAAM,SAAS,IAAI,QAAQ,MAAM;AACxC,QAAM,SAAS,iCAAQ;AACvB,QAAM,gBAAgB,uBAAuB;AAC7C,QAAM,CAAC,QAAQ,SAAS,IAAIC,UAAuC;AACnE,QAAM,CAAC,EAAE,KAAK,IAAIC,YAAW,YAAY;AACvC,qCAAQ,MAAM;AACd,QAAI,MAAM;AACR,WAAK,GAAG,kBAAkB,OAAO,EAAE,QAAAC,QAAO,MAAM;AAC9C,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,cAAMC,mBAAkB,SAAS,MAAM,KAAK,QAAQ,QAAQ,aAAa,IAAI,MAAM,KAAK,QAAQ,KAAK,aAAa;AAClH,kBAAUA,gBAAe;AAAA,MAC3B,CAAC;AACD,WAAK,GAAG,kBAAkB,OAAO,EAAE,QAAAD,QAAO,MAAM;AAC9C,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,cAAMC,mBAAkB,SAAS,MAAM,KAAK,QAAQ,QAAQ,aAAa,IAAI,MAAM,KAAK,QAAQ,KAAK,aAAa;AAClH,kBAAUA,gBAAe;AAAA,MAC3B,CAAC;AACD,YAAM,kBAAkB,SAAS,MAAM,KAAK,QAAQ,QAAQ,aAAa,IAAI,MAAM,KAAK,QAAQ,KAAK,aAAa;AAClH,gBAAU,eAAe;AACzB,aAAO;AAAA,IACT;AACA,YAAQ,IAAI,iBAAiB;AAC7B;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,CAAC;AACjB,SAAO,CAAC,QAAQ,aAAa,KAAK;AACpC;;;ACrCA,SAAS,cAAAC,mBAAkB;AAC3B,SAAsD,+BAA+B;AACrF,SAAS,6BAA6B;AAK/B,IAAM,qBAAqB,CAAC,WAAkG;AACnI,QAAM,CAAC,YAAY,SAAS,IAAI,QAAQ,MAAM;AAC9C,QAAM,CAAC,aAAa,KAAK,IAAIC,YAAW,YAAY;AAClD,UAAM,QAAQ,OAAM,yCAAY;AAChC,WAAO,+BAAO,KAA+B,sBAAsB,uBAAuB;AAAA,EAC5F,GAAG,CAAC,UAAU,CAAC;AACf,SAAO,CAAC,aAAa,aAAa,KAAK;AACzC;;;ACdA,SAAS,kBAAAC,uBAAoC;AAKtC,IAAM,kBAAkB,CAC7B,yBACA,WACkD;AARpD;AASE,QAAM,CAACC,SAAQ,KAAK,IAAI,kBAAkB,yBAAyB,MAAM;AACzE,QAAM,WAAWC,gBAAeD,OAAM;AACtC,MAAIA,WAAU,CAAC,UAAU;AACvB,UAAME,SAAQ,IAAI,MAAM,2CAA0C,KAAAF,QAAO,WAAP,mBAAe,MAAM,KAAI,KAAAA,QAAO,WAAP,mBAAe,IAAI,IAAIA,QAAO,OAAO,GAAG;AACnI,YAAQ,MAAME,OAAM,OAAO;AAC3B,WAAO,CAAC,QAAWA,MAAK;AAAA,EAC1B;AACA,SAAO,CAAC,UAAU,KAAK;AACzB;;;AChBA,SAAS,cAAAC,mBAAkB;AAC3B,SAAS,oBAAAC,yBAAwC;AACjD,SAAS,YAAAC,iBAAgB;AAMlB,IAAM,wBAAwB,CACnC,0BAAgG,QAChG,WAC4F;AAC5F,QAAM,CAAC,MAAM,SAAS,IAAI,QAAQ,MAAM;AACxC,QAAM,SAAS,8BAA8B,MAAM;AACnD,QAAM,gBAAgB,uBAAuB,MAAM;AACnD,QAAM,CAAC,QAAQ,SAAS,IAAIC,UAA6E;AACzG,QAAM,CAAC,EAAE,KAAK,IAAIC,YAAW,YAAY;AACvC,qCAAQ,MAAM;AACd,UAAM,YAAsE,iCAAQ,aAAYC;AAGhG,UAAM,eAAe;AACrB,QAAI,gBAAgB,yBAAyB;AAC3C,mBAAa,GAAG,kBAAkB,CAAC,EAAE,QAAAC,QAAO,MAAM;AAxBxD;AAyBQ,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,YAAIA,QAAO,YAAY,6BAA2B,KAAAA,QAAO,WAAP,mBAAe,UAAS,yBAAyB;AACjG,oBAAU,SAASA,OAAM,IAAI,IAAI,QAAQA,OAAuD,IAAI,MAAS;AAAA,QAC/G;AAAA,MACF,CAAC;AACD,mBAAa,GAAG,kBAAkB,CAAC,EAAE,QAAAA,QAAO,MAAM;AA9BxD;AA+BQ,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,YAAIA,QAAO,YAAY,6BAA2B,KAAAA,QAAO,WAAP,mBAAe,UAAS,yBAAyB;AACjG,oBAAU,MAAS;AAAA,QACrB;AAAA,MACF,CAAC;AACD,UAAI,SAAS,uBAAuB,GAAG;AACrC,kBAAU,IAAI,QAAQ,uBAAwE,CAAC;AAAA,MACjG,OAAO;AACL,cAAMC,UAAS,MAAM,aAAa,QAAQ,yBAAyB,aAAa;AAChF,yCAAQ,MAAM,WAAWA,WAAA,gBAAAA,QAAQ,OAAO;AACxC,kBAAU,SAASA,OAAM,IAAI,IAAI,QAAQA,OAAuD,IAAI,MAAS;AAAA,MAC/G;AACA,aAAO;AAAA,IACT;AACA,qCAAQ,MAAM;AACd;AAAA,EAEF,GAAG,CAAC,MAAM,uBAAuB,CAAC;AAClC,SAAO,CAAC,QAAQ,aAAa,KAAK;AACpC;;;AClDA,SAAS,cAAAC,mBAAkB;AAE3B,SAAS,YAAAC,iBAAgB;AAMlB,IAAM,yBAAyB,CACpC,QACA,WAC+D;AAC/D,QAAM,CAAC,MAAM,SAAS,IAAI,QAAQ,MAAM;AACxC,QAAM,SAAS,iCAAQ;AACvB,QAAM,gBAAgB,uBAAuB;AAC7C,QAAM,CAAC,QAAQ,SAAS,IAAIC,UAAgD;AAC5E,QAAM,CAAC,EAAE,KAAK,IAAIC,YAAW,YAAY;AACvC,qCAAQ,MAAM;AACd,UAAM,eAAe;AACrB,QAAI,cAAc;AAChB,mBAAa,GAAG,kBAAkB,OAAO,EAAE,QAAAC,QAAO,MAAM;AACtD,cAAMC,gBAAe;AACrB,yCAAQ,MAAM,sCAAsCD,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,cAAME,mBAAkB,SAAS,OAAMD,iBAAA,gBAAAA,cAAc,QAAQ,QAAQ,kBAAiB,OAAMA,iBAAA,gBAAAA,cAAc,QAAQ,KAAK;AACvH,kBAAUC,oBAAA,gBAAAA,iBAAiB,IAAI,CAACF,YAAW,IAAI,QAAQA,OAAM,EAAE;AAAA,MACjE,CAAC;AACD,mBAAa,GAAG,kBAAkB,OAAO,EAAE,QAAAA,QAAO,MAAM;AACtD,cAAMC,gBAAe;AACrB,yCAAQ,MAAM,sCAAsCD,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,cAAME,mBAAkB,SAAS,OAAMD,iBAAA,gBAAAA,cAAc,QAAQ,QAAQ,kBAAiB,OAAMA,iBAAA,gBAAAA,cAAc,QAAQ,KAAK;AACvH,kBAAUC,oBAAA,gBAAAA,iBAAiB,IAAI,CAACF,YAAW,IAAI,QAAQA,OAAM,EAAE;AAAA,MACjE,CAAC;AACD,YAAM,kBAAkB,SAAS,MAAM,aAAa,QAAQ,QAAQ,aAAa,IAAI,MAAM,aAAa,QAAQ,KAAK,aAAa;AAClI,gBAAU,mDAAiB,IAAI,CAACA,YAAW,IAAI,QAAQA,OAAM,EAAE;AAC/D,aAAO;AAAA,IACT;AACA,YAAQ,IAAI,iBAAiB;AAC7B;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,CAAC;AACjB,SAAO,CAAC,QAAQ,aAAa,KAAK;AACpC;;;ACvCA,SAAS,WAAAG,gBAAe;AAIjB,IAAM,6BAA6B,CACxC,WAC4D;AAC5D,QAAM,cAAcA,SAAQ,MAAO,QAAO,iCAAQ,UAAS,WAAW,iCAAQ,OAAO,QAAY,CAAC,iCAAQ,IAAI,CAAC;AAC/G,QAAM,eAAeA,SAAQ,MAAO,QAAO,iCAAQ,UAAS,WAAW,iCAAQ,OAAO,QAAY,CAAC,iCAAQ,IAAI,CAAC;AAChH,SAAO,CAAC,aAAa,YAAY;AACnC;;;ACFO,IAAM,oCAAoC,CAAC,WAAsC;AACtF,SAAO,iCAAQ;AACjB;;;AbGM;AALC,IAAM,qBAAwD,CAAC,EAAE,MAAM,GAAG,MAAM,MAAM;AAC3F,QAAM,CAAC,aAAa,KAAK,IAAI,mBAAmB,EAAE,KAAK,CAAC;AAExD,SACE,oBAAC,WAAS,GAAG,OACX,8BAAC,UAAK,OAAO,QAAQ,QAAQ,QAAY,kBAAQ,MAAM,UAAU,KAAK,UAAU,aAAa,MAAM,CAAC,GAAE,GACxG;AAEJ;;;AcFa,gBAAAC,YAAA;AALN,IAAM,UAAkC,CAAC,EAAE,SAAS,GAAG,MAAM,MAAM;AACxE,UAAQ,SAAS;AAAA,IAEf,KAAK;AAAA,IACL,SAAS;AACP,aAAO,gBAAAA,KAAC,sBAAoB,GAAG,OAAO;AAAA,IACxC;AAAA,EACF;AACF;;;AClBA,SAAS,SAAS,iBAAiB;AACnC,SAAS,mBAAmB,QAAqB,kBAAkB;AACnE,SAAS,aAAa,eAAe;AAErC,SAAS,qBAAqB;;;ACJ9B,SAAS,gBAAgB,kBAAkB,cAAc,sBAAsB;AAC/E,SAAS,UAAAC,SAAQ,kBAAkB;AACnC,SAAS,gBAAgB;AAGzB,SAAS,cAAc;;;ACLvB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAE/B,SAA2B,YAAAC,iBAAgB;AAgCvC,SAEW,OAAAC,MAFX;AAtBG,IAAM,eAA4C,CAAC,EAAE,QAAAC,SAAQ,MAAM,MAAM;AAC9E,QAAM,EAAE,SAAS,QAAQ,IAAIA,WAAU,CAAC;AACxC,QAAM,CAAC,cAAc,eAAe,IAAIF,UAAoC;AAE5E;AAAA;AAAA,IAEE,OAAO,YAAY;AACjB,YAAM,YAAY,MAAME,QAAO,QAAQ,GAAG,GAAG,OAAO,CAAC,gBAAgB,YAAY,YAAY,OAAO;AACpG,UAAI,QAAQ,GAAG;AACb,wBAAgB,SAAS,IAAI,CAAC,gBAAgB,IAAI,QAAQ,WAAW,CAAC,CAAC;AAAA,MACzE;AAAA,IACF;AAAA,IACA,CAACA,SAAQ,OAAO;AAAA,EAClB;AAEA,QAAM,YAAY,MAAM;AACtB,UAAM,SAAS,MAAM,QAAQ,iBAAiB,SAAS;AACvD,UAAM,QAAQ,IAAI,KAAK,KAAK;AAC5B,WAAO;AAAA,EACT;AAEA,SACE,qBAAC,yBAAsB,QAAQ,UAAU,GAAG,OAAO,YAAY,OAAO,IACnE;AAAA,YAAQ,IAAI,CAAC,OAAO,UAAU;AAC7B,aAAO,gBAAAD,KAAC,YAAqB,QAAQ,UAAU,GAAG,OAAO,WAAW,KAAK,IAAI,IAAI,EAAE,IAAI,UAAU,QAAQ,SAAS,IAAI,MAAM,IAAI,KAA1G,KAA6G;AAAA,IACrI,CAAC;AAAA,IACA,gBAAgB,aAAa,SAAS,IACrC,gBAAAA,KAAC,YAAS,QAAQ,UAAU,GAAG,OAAO,YAAY,IAAI,EAAE,IAAI,IAAI,GAC7D,uBAAa,IAAI,CAAC,mBAAmB;AACpC,YAAM,cAAc,eAAe,MAAM;AACzC,aAAO,cAAc,gBAAAA,KAAC,gBAAwC,QAAQ,aAAa,SAA3C,2CAAa,OAA4C,IAAK;AAAA,IACxG,CAAC,GACH,IACA;AAAA,KACJ;AAEJ;AAEA,IAAM,wBAAwB,OAAO,UAAU,EAAE,MAAM,wBAAwB,CAAC,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EAChG,0BAA0B;AAAA,IACxB,cAAc,MAAM,QAAQ,IAAI;AAAA,EAClC;AACF,EAAE;;;ADtCM,mBACE,OAAAE,MADF,QAAAC,aAAA;AAND,IAAM,uBAAyD,CAAC,EAAE,QAAAC,QAAO,MAAM;AACpF,QAAM,QAAQ,OAAiD,EAAE,eAAe,GAAG,KAAK,CAAC,EAAE,CAAC;AAE5F,SACE,gBAAAF,KAAA,YACG,UAAAE,UACC,gBAAAD,MAAA,YACE;AAAA,oBAAAD,KAAC,cAAW,SAAQ,MAAK,gCAAkB;AAAA,IAC3C,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,cAAW;AAAA,QACX,qBAAqB,gBAAAA,KAAC,kBAAe;AAAA,QACrC,mBAAmB,gBAAAA,KAAC,oBAAiB;AAAA,QACrC,IAAI,EAAE,UAAU,EAAE;AAAA,QAElB,0BAAAA,KAAC,gBAAa,QAAQE,SAAQ,OAAc;AAAA;AAAA,IAC9C;AAAA,KACF,IACAA,YAAW,OACX,gBAAAF,KAAC,cAAW,SAAQ,MAAK,6BAAe,IACxC,gBAAAA,KAAC,cAAW,SAAQ,MAAK,4BAAc,GAC3C;AAEJ;AAEA,IAAM,iBAAiBG,QAAO,UAAU,EAAE,MAAM,iBAAiB,CAAC,EAAE,OAAO;AAAA,EACzE,QAAQ;AAAA,EACR,UAAU;AACZ,EAAE;;;ADrBM,SAGM,OAAAC,MAHN,QAAAC,aAAA;AAPD,IAAM,aAAwC,CAAC,EAAE,UAAU,GAAG,MAAM,MAAM;AAC/E,QAAM,EAAE,MAAM,QAAQ,IAAI,cAAc;AACxC,QAAM,CAAC,IAAI,IAAI,gBAAgB;AAE/B,SACE,gBAAAD,KAAC,UAAO,MAAM,QAAQ,OAAO,QAAO,SAAS,GAAG,OAC9C,0BAAAA,KAAC,qBAAkB,aAAa,MAAM,mCAAU,QAC9C,0BAAAC,MAAC,eAAY,MAAK,gBAAe,gBAAe,SAAQ,GAAG,GAAG,QAAQ,GAAG,UAAS,QAChF;AAAA,oBAAAD,KAAC,WAAQ,cAAa,SAAQ,gBAAe,SAAQ,OAAM,QACzD,0BAAAA,KAAC,cAAW,SAAS,MAAM,mCAAU,QACnC,0BAAAA,KAAC,aAAU,GACb,GACF;AAAA,IACA,gBAAAA,KAAC,wBAAqB,QAAQ,MAAM;AAAA,IACnC;AAAA,KACH,GACF,GACF;AAEJ;;;AG5BA,cAAc;AACd,cAAc;","names":["usePromise","usePromise","module","result","usePromise","useState","useState","usePromise","module","moduleInstances","usePromise","usePromise","asNodeInstance","module","asNodeInstance","error","usePromise","isModuleInstance","useState","useState","usePromise","isModuleInstance","module","result","usePromise","useState","useState","usePromise","module","nodeInstance","moduleInstances","useMemo","jsx","styled","useState","jsx","module","jsx","jsxs","module","styled","jsx","jsxs"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/NodeDescriptionBox.tsx","../../src/hooks/ModuleFromNodeConfig.ts","../../src/hooks/provided/useProvidedNode.tsx","../../src/hooks/provided/useWeakProvidedNode.tsx","../../src/hooks/useModuleFilterOptions.ts","../../src/hooks/useModuleFromNode.ts","../../src/hooks/useNode.ts","../../src/hooks/useNodeConfigNodeField.ts","../../src/hooks/useModulesFromNode.ts","../../src/hooks/useNodeDescription.ts","../../src/hooks/useNodeFromNode.tsx","../../src/hooks/useNodesFromNode.tsx","../../src/hooks/useWeakModuleFromNode.ts","../../src/hooks/useWeakModulesFromNode.ts","../../src/hooks/useWeakNodeConfigNodeField.ts","../../src/hooks/useWeakNodeDescription.ts","../../src/hooks/useWeakNode.ts","../../src/hooks/useWeakNodeFromNode.tsx","../../src/hooks/WeakModuleFromNodeConfig.ts","../../src/components/Node.tsx","../../src/components/NodeDrawer.tsx","../../src/components/render/ModuleDescriptionBox.tsx","../../src/components/render/RenderModule.tsx","../../src/index.ts"],"sourcesContent":["import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakNodeDescription } from '../hooks'\n\nexport interface NodeDescriptionBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n}\n\nexport const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {\n const [description, error] = useWeakNodeDescription({ node })\n\n return (\n <FlexCol {...props}>\n <code color={error ? 'red' : undefined}>{error ? error.message : JSON.stringify(description, null, 2)}</code>\n </FlexCol>\n )\n}\n","import { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type ModuleFromNodeConfig<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions<T> & {\n logger?: Logger\n node?: NodeInstance | string\n}\n\nexport const useModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { useContext } from 'react'\n\nexport const useProvidedNode = (): [NodeInstance | null | undefined] => {\n const { node } = useContext(NodeContext)\n return [node]\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { useContext, useMemo } from 'react'\n\nexport const useWeakProvidedNode = (): [WeakRef<NodeInstance> | null | undefined] => {\n const { node } = useContext(NodeContext)\n const weakNode = useMemo(() => (node ? new WeakRef(node) : null), [node])\n return [weakNode]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n\nexport const useModuleFilterOptions = (config?: ModuleFromNodeConfig) => {\n const { direction, identity, maxDepth } = config ?? {}\n return { direction, identity, maxDepth }\n}\n","/* eslint-disable import/no-deprecated */\n/* eslint-disable deprecation/deprecation */\nimport { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\n/** @deprecated use useWeakModuleFromNode */\nexport const useModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: T extends ModuleInstance ? ModuleFromNodeConfig<T> : ModuleFromNodeConfig | undefined,\n): [(T extends ModuleInstance ? T : ModuleInstance) | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\n const [result, setResult] = useState<(T extends ModuleInstance ? T : ModuleInstance) | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n if (node && nameOrAddressOrInstance) {\n node.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(identity(module) ? (module as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n node.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(nameOrAddressOrInstance)\n } else {\n const result = await node.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(module) ? (module as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useProvidedNode } from './provided'\nimport { useNodeConfigNodeField } from './useNodeConfigNodeField'\n\nexport const useNode = (config?: ModuleFromNodeConfig | undefined): [NodeInstance | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config)\n const [providedNode] = useProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n if (providedNode && nodeAddress) {\n return asNodeInstance(await providedNode.resolve(nodeAddress), 'Module is not a node')\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n\nexport const useNodeConfigNodeField = (config?: ModuleFromNodeConfig | undefined): [string | undefined, NodeInstance | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\n/** @deprecated use useModulesFromNode */\nexport const useModulesFromNode = (filter?: ModuleFilter, config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\n const [result, setResult] = useState<ModuleInstance[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node) {\n node.on('moduleAttached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n node.on('moduleDetached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleDescription, ModuleDescriptionPayload, ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useNode } from './useNode'\n\nexport const useNodeDescription = (config?: ModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n// eslint-disable-next-line import/no-deprecated\nimport { useModuleFromNode } from './useModuleFromNode'\n\n/** @deprecated use useWeakNodeFromNode instead */\nexport const useNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [NodeInstance | undefined, Error | undefined] => {\n // eslint-disable-next-line import/no-deprecated, deprecation/deprecation\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asNodeInstance(module)\n if (module && !instance) {\n const error = new Error(`Resolved module is not a NodeInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ModuleFilter } from '@xyo-network/module-model'\nimport { isNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n// eslint-disable-next-line import/no-deprecated\nimport { useModulesFromNode } from './useModulesFromNode'\n\n/** @deprecated use useWeakNodesFromNode */\nexport const useNodesFromNode = (filter?: ModuleFilter, config?: ModuleFromNodeConfig): [NodeInstance[] | null | undefined, Error | undefined] => {\n // eslint-disable-next-line import/no-deprecated, deprecation/deprecation\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules ?\n [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<NodeInstance[]>((prev, module) => {\n if (isNodeInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useWeakModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: ModuleFromNodeConfig,\n): [WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\n const [result, setResult] = useState<WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n const nodeInstance = node\n if (nodeInstance && nameOrAddressOrInstance) {\n nodeInstance.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(identity(module) ? new WeakRef(module as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n nodeInstance.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(new WeakRef(nameOrAddressOrInstance as T extends ModuleInstance ? T : ModuleInstance))\n } else {\n const result = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? new WeakRef(result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useWeakModulesFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance>[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\n const [result, setResult] = useState<WeakRef<ModuleInstance>[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const nodeInstance = node\n if (nodeInstance) {\n nodeInstance.on('moduleAttached', async ({ module }) => {\n const nodeInstance = node\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await nodeInstance?.resolve(filter, filterOptions) : await nodeInstance?.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n })\n nodeInstance.on('moduleDetached', async ({ module }) => {\n const nodeInstance = node\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await nodeInstance?.resolve(filter, filterOptions) : await nodeInstance?.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n })\n const moduleInstances = filter ? await nodeInstance.resolve(filter, filterOptions) : await nodeInstance.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'\n\nexport const useWeakNodeConfigNodeField = (\n config?: WeakModuleFromNodeConfig | undefined,\n): [string | undefined, WeakRef<NodeInstance> | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleDescription, ModuleDescriptionPayload, ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { useWeakNode } from './useWeakNode'\nimport { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'\n\nexport const useWeakNodeDescription = (config?: WeakModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useWeakNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.deref()?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakProvidedNode } from './provided'\nimport { useWeakNodeConfigNodeField } from './useWeakNodeConfigNodeField'\nimport { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'\n\nexport const useWeakNode = (config?: WeakModuleFromNodeConfig | undefined): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config)\n const [providedNode] = useWeakProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n const providedNodeInstance = providedNode?.deref()\n if (providedNodeInstance && nodeAddress) {\n return new WeakRef(asNodeInstance(await providedNodeInstance.resolve(nodeAddress), 'Module is not a node'))\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","import { isNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useWeakModuleFromNode } from './useWeakModuleFromNode'\n\nexport const useWeakNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n return useWeakModuleFromNode<NodeInstance>(nameOrAddressOrInstance, { identity: isNodeInstance, ...config })\n}\n","import { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type WeakModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: WeakRef<NodeInstance> | string\n}\n\nexport const useWeakModuleFromNodeConfigLogger = (config?: WeakModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { NodeDescriptionBox } from './NodeDescriptionBox'\n\nexport interface NodeBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n variant?: 'description'\n}\n\nexport const NodeBox: React.FC<NodeBoxProps> = ({ variant, ...props }) => {\n switch (variant) {\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case 'description':\n default: {\n return <NodeDescriptionBox {...props} />\n }\n }\n}\n","import { Close as CloseIcon } from '@mui/icons-material'\nimport { ClickAwayListener, Drawer, DrawerProps, IconButton } from '@mui/material'\nimport { FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { useNodeDrawer } from '@xyo-network/react-node-provider'\n\nimport { useProvidedNode } from '../hooks'\nimport { ModuleDescriptionBox } from './render'\n\nexport interface NodeDrawerProps extends WithChildren, Omit<DrawerProps, 'open'> {}\n\nexport const NodeDrawer: React.FC<NodeDrawerProps> = ({ children, ...props }) => {\n const { open, setOpen } = useNodeDrawer()\n const [node] = useProvidedNode()\n\n return (\n <Drawer open={open ?? false} anchor=\"right\" {...props}>\n <ClickAwayListener onClickAway={() => setOpen?.(false)}>\n <FlexGrowCol role=\"presentation\" justifyContent=\"start\" p={2} rowGap={2} minWidth=\"33vw\">\n <FlexRow alignContent=\"start\" justifyContent=\"start\" width=\"100%\">\n <IconButton onClick={() => setOpen?.(false)}>\n <CloseIcon />\n </IconButton>\n </FlexRow>\n <ModuleDescriptionBox module={node} />\n {children}\n </FlexGrowCol>\n </ClickAwayListener>\n </Drawer>\n )\n}\n","import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from '@mui/icons-material'\nimport { styled, Typography } from '@mui/material'\nimport { TreeView } from '@mui/x-tree-view'\nimport { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { useRef } from 'react'\n\nimport { RenderModule } from './RenderModule'\n\nexport interface ModuleDescriptionProps extends FlexBoxProps {\n module?: ModuleInstance | null\n}\nexport const ModuleDescriptionBox: React.FC<ModuleDescriptionProps> = ({ module }) => {\n const idRef = useRef<{ idIncrementor: number; ids: string[] }>({ idIncrementor: 0, ids: [] })\n\n return (\n <>\n {module ?\n <>\n <Typography variant=\"h4\">Node Configuration</Typography>\n <StyledTreeView\n aria-label=\"file system navigator\"\n defaultCollapseIcon={<ExpandMoreIcon />}\n defaultExpandIcon={<ChevronRightIcon />}\n sx={{ flexGrow: 1 }}\n >\n <RenderModule module={module} idRef={idRef} />\n </StyledTreeView>\n </>\n : module === null ?\n <Typography variant=\"h4\">Node loading...</Typography>\n : <Typography variant=\"h4\">Node not found</Typography>}\n </>\n )\n}\n\nconst StyledTreeView = styled(TreeView, { name: 'StyledTreeView' })(() => ({\n height: 'auto',\n maxWidth: 'auto',\n}))\n","import { styled } from '@mui/material'\nimport { TreeItem } from '@mui/x-tree-view'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { MutableRefObject, useState } from 'react'\n\ninterface RenderModuleProps {\n idRef: MutableRefObject<{\n idIncrementor: number\n ids: string[]\n }>\n module: ModuleInstance\n}\n\nexport const RenderModule: React.FC<RenderModuleProps> = ({ module, idRef }) => {\n const { address, queries } = module ?? {}\n const [childModules, setChildModules] = useState<WeakRef<ModuleInstance>[]>()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const children = (await module.resolve('*')).filter((childModule) => childModule.address !== address)\n if (mounted()) {\n setChildModules(children.map((childModule) => new WeakRef(childModule)))\n }\n },\n [module, address],\n )\n\n const increment = () => {\n const newId = (idRef.current.idIncrementor++).toString()\n idRef.current.ids.push(newId)\n return newId\n }\n\n return (\n <StyledAddressTreeItem nodeId={increment()} label={`address: ${address}`}>\n {queries.map((query, index) => {\n return <TreeItem key={query} nodeId={increment()} label={`query : ${query}`} sx={{ mb: index === queries.length - 1 ? 1.5 : 0.5 }} />\n })}\n {childModules && childModules.length > 0 ?\n <TreeItem nodeId={increment()} label={'children'} sx={{ mb: 0.5 }}>\n {childModules.map((childModuleRef) => {\n const childModule = childModuleRef.deref()\n return childModule ? <RenderModule key={childModule?.address} module={childModule} idRef={idRef} /> : null\n })}\n </TreeItem>\n : null}\n </StyledAddressTreeItem>\n )\n}\n\nconst StyledAddressTreeItem = styled(TreeItem, { name: 'StyledAddressTreeItem' })(({ theme }) => ({\n '& .MuiTreeItem-content': {\n marginBottom: theme.spacing(0.25),\n },\n}))\n","export * from './components'\nexport * from './hooks'\nexport * from '@xyo-network/react-node-context'\nexport * from '@xyo-network/react-node-provider'\n"],"mappings":"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","names":["NodeContext","useContext","usePromise","useMemo","usePromise","module","result","usePromise","useState","useState","usePromise","module","moduleInstances","usePromise","usePromise","asNodeInstance","module","asNodeInstance","error","module","usePromise","isModuleInstance","useState","useState","usePromise","isModuleInstance","module","result","usePromise","useState","useState","usePromise","module","nodeInstance","moduleInstances","useMemo","usePromise","ModuleDescriptionSchema","isPayloadOfSchemaType","usePromise","asNodeInstance","usePromise","asNodeInstance","usePromise","isPayloadOfSchemaType","ModuleDescriptionSchema","isNodeInstance","isNodeInstance","jsx","styled","useState","jsx","module","jsx","jsxs","module","styled","jsx","jsxs"]}
|
package/package.json
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"@emotion/styled": "^11.11.5",
|
|
15
15
|
"@mui/system": "^5.15.15",
|
|
16
16
|
"@mui/x-tree-view": "^6.17.0",
|
|
17
|
+
"@xylabs/exists": "^3.1.11",
|
|
17
18
|
"@xylabs/logger": "^3.1.11",
|
|
18
19
|
"@xylabs/object": "^3.1.11",
|
|
19
20
|
"@xylabs/react-async-effect": "^3.1.6",
|
|
@@ -24,8 +25,8 @@
|
|
|
24
25
|
"@xyo-network/module-model": "^2.99.1",
|
|
25
26
|
"@xyo-network/node-model": "^2.99.1",
|
|
26
27
|
"@xyo-network/payload-model": "^2.99.1",
|
|
27
|
-
"@xyo-network/react-node-context": "~2.75.
|
|
28
|
-
"@xyo-network/react-node-provider": "~2.75.
|
|
28
|
+
"@xyo-network/react-node-context": "~2.75.3",
|
|
29
|
+
"@xyo-network/react-node-provider": "~2.75.3"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|
|
31
32
|
"@storybook/react": "^7.6.18",
|
|
@@ -33,8 +34,8 @@
|
|
|
33
34
|
"@xylabs/tsconfig-react": "^3.9.1",
|
|
34
35
|
"@xyo-network/node-memory": "^2.99.1",
|
|
35
36
|
"@xyo-network/payload-model": "^2.99.1",
|
|
36
|
-
"@xyo-network/react-storybook": "~2.75.
|
|
37
|
-
"@xyo-network/react-wallet": "~2.75.
|
|
37
|
+
"@xyo-network/react-storybook": "~2.75.3",
|
|
38
|
+
"@xyo-network/react-wallet": "~2.75.3",
|
|
38
39
|
"typescript": "^5.4.5"
|
|
39
40
|
},
|
|
40
41
|
"peerDependencies": {
|
|
@@ -95,6 +96,6 @@
|
|
|
95
96
|
},
|
|
96
97
|
"sideEffects": false,
|
|
97
98
|
"types": "dist/browser/index.d.ts",
|
|
98
|
-
"version": "2.75.
|
|
99
|
+
"version": "2.75.3",
|
|
99
100
|
"type": "module"
|
|
100
101
|
}
|
|
@@ -6,7 +6,7 @@ import { MemoryNodeProvider } from '@xyo-network/react-node-provider'
|
|
|
6
6
|
import { DefaultSeedPhrase } from '@xyo-network/react-storybook'
|
|
7
7
|
import { useWallet, WalletProvider } from '@xyo-network/react-wallet'
|
|
8
8
|
|
|
9
|
-
import { useProvidedNode } from '../hooks'
|
|
9
|
+
import { useProvidedNode, useWeakProvidedNode } from '../hooks'
|
|
10
10
|
import { NodeBox } from './Node'
|
|
11
11
|
import { TestModule, TestModuleConfigSchema } from './TestModule'
|
|
12
12
|
|
|
@@ -30,18 +30,19 @@ export default {
|
|
|
30
30
|
} as Meta
|
|
31
31
|
|
|
32
32
|
const Template: StoryFn<React.FC> = () => {
|
|
33
|
-
const [node] =
|
|
33
|
+
const [node] = useWeakProvidedNode() as [WeakRef<MemoryNode>]
|
|
34
34
|
|
|
35
35
|
const [account] = useWallet({ mnemonic: DefaultSeedPhrase, path: '0' })
|
|
36
36
|
|
|
37
37
|
useAsyncEffect(
|
|
38
38
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
39
39
|
async () => {
|
|
40
|
-
|
|
40
|
+
const nodeInstance = node?.deref()
|
|
41
|
+
if (nodeInstance && account) {
|
|
41
42
|
try {
|
|
42
43
|
const mod = await TestModule.create({ account, config: { name: TestModuleName, schema: TestModuleConfigSchema } })
|
|
43
|
-
await
|
|
44
|
-
await
|
|
44
|
+
await nodeInstance.register(mod)
|
|
45
|
+
await nodeInstance.attach(mod.address, true)
|
|
45
46
|
} catch (e) {
|
|
46
47
|
console.error(e)
|
|
47
48
|
}
|
package/src/components/Node.tsx
CHANGED
|
@@ -4,7 +4,7 @@ import { NodeInstance } from '@xyo-network/node-model'
|
|
|
4
4
|
import { NodeDescriptionBox } from './NodeDescriptionBox'
|
|
5
5
|
|
|
6
6
|
export interface NodeBoxProps extends FlexBoxProps {
|
|
7
|
-
node?: string | NodeInstance
|
|
7
|
+
node?: string | WeakRef<NodeInstance>
|
|
8
8
|
variant?: 'description'
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
|
|
2
2
|
import { NodeInstance } from '@xyo-network/node-model'
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { useWeakNodeDescription } from '../hooks'
|
|
5
5
|
|
|
6
6
|
export interface NodeDescriptionBoxProps extends FlexBoxProps {
|
|
7
|
-
node?: string | NodeInstance
|
|
7
|
+
node?: string | WeakRef<NodeInstance>
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {
|
|
11
|
-
const [description, error] =
|
|
11
|
+
const [description, error] = useWeakNodeDescription({ node })
|
|
12
12
|
|
|
13
13
|
return (
|
|
14
14
|
<FlexCol {...props}>
|
|
@@ -1,18 +1,21 @@
|
|
|
1
|
+
import { exists } from '@xylabs/exists'
|
|
1
2
|
import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
|
|
2
3
|
import { NodeInstance } from '@xyo-network/node-model'
|
|
3
4
|
|
|
4
|
-
import {
|
|
5
|
+
import { useWeakModulesFromNode } from '../hooks'
|
|
5
6
|
|
|
6
7
|
export interface NodeDescriptionBoxProps extends FlexBoxProps {
|
|
7
8
|
node?: string | NodeInstance
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
export const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {
|
|
11
|
-
const [description, error] =
|
|
12
|
+
const [description, error] = useWeakModulesFromNode(undefined, { node })
|
|
12
13
|
|
|
13
14
|
return (
|
|
14
15
|
<FlexCol {...props}>
|
|
15
|
-
<code color={error ? 'red' : undefined}>
|
|
16
|
+
<code color={error ? 'red' : undefined}>
|
|
17
|
+
{error ? error.message : JSON.stringify(description?.map((desc) => desc.deref()).filter(exists), null, 2)}
|
|
18
|
+
</code>
|
|
16
19
|
</FlexCol>
|
|
17
20
|
)
|
|
18
21
|
}
|
|
@@ -2,7 +2,7 @@ import { Logger } from '@xylabs/logger'
|
|
|
2
2
|
import { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'
|
|
3
3
|
import { NodeInstance } from '@xyo-network/node-model'
|
|
4
4
|
|
|
5
|
-
export type ModuleFromNodeConfig<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions & {
|
|
5
|
+
export type ModuleFromNodeConfig<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions<T> & {
|
|
6
6
|
logger?: Logger
|
|
7
7
|
node?: NodeInstance | string
|
|
8
8
|
}
|
package/src/hooks/index.ts
CHANGED
|
@@ -7,7 +7,10 @@ export * from './useNode'
|
|
|
7
7
|
export * from './useNodeConfigNodeField'
|
|
8
8
|
export * from './useNodeDescription'
|
|
9
9
|
export * from './useNodeFromNode'
|
|
10
|
+
export * from './useNodesFromNode'
|
|
10
11
|
export * from './useWeakModuleFromNode'
|
|
11
12
|
export * from './useWeakModulesFromNode'
|
|
12
13
|
export * from './useWeakNodeConfigNodeField'
|
|
14
|
+
export * from './useWeakNodeDescription'
|
|
15
|
+
export * from './useWeakNodeFromNode'
|
|
13
16
|
export * from './WeakModuleFromNodeConfig'
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NodeInstance } from '@xyo-network/node-model'
|
|
2
|
+
import { NodeContext } from '@xyo-network/react-node-context'
|
|
3
|
+
import { useContext, useMemo } from 'react'
|
|
4
|
+
|
|
5
|
+
export const useWeakProvidedNode = (): [WeakRef<NodeInstance> | null | undefined] => {
|
|
6
|
+
const { node } = useContext(NodeContext)
|
|
7
|
+
const weakNode = useMemo(() => (node ? new WeakRef(node) : null), [node])
|
|
8
|
+
return [weakNode]
|
|
9
|
+
}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { asNodeInstance, NodeInstance } from '@xyo-network/node-model'
|
|
2
2
|
|
|
3
3
|
import { ModuleFromNodeConfig } from './ModuleFromNodeConfig'
|
|
4
|
+
// eslint-disable-next-line import/no-deprecated
|
|
4
5
|
import { useModuleFromNode } from './useModuleFromNode'
|
|
5
6
|
|
|
7
|
+
/** @deprecated use useWeakNodeFromNode instead */
|
|
6
8
|
export const useNodeFromNode = (
|
|
7
9
|
nameOrAddressOrInstance?: string | NodeInstance,
|
|
8
10
|
config?: ModuleFromNodeConfig,
|
|
9
11
|
): [NodeInstance | undefined, Error | undefined] => {
|
|
12
|
+
// eslint-disable-next-line import/no-deprecated, deprecation/deprecation
|
|
10
13
|
const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)
|
|
11
14
|
const instance = asNodeInstance(module)
|
|
12
15
|
if (module && !instance) {
|
|
@@ -2,9 +2,12 @@ import { ModuleFilter } from '@xyo-network/module-model'
|
|
|
2
2
|
import { isNodeInstance, NodeInstance } from '@xyo-network/node-model'
|
|
3
3
|
|
|
4
4
|
import { ModuleFromNodeConfig } from './ModuleFromNodeConfig'
|
|
5
|
+
// eslint-disable-next-line import/no-deprecated
|
|
5
6
|
import { useModulesFromNode } from './useModulesFromNode'
|
|
6
7
|
|
|
8
|
+
/** @deprecated use useWeakNodesFromNode */
|
|
7
9
|
export const useNodesFromNode = (filter?: ModuleFilter, config?: ModuleFromNodeConfig): [NodeInstance[] | null | undefined, Error | undefined] => {
|
|
10
|
+
// eslint-disable-next-line import/no-deprecated, deprecation/deprecation
|
|
8
11
|
const [modules, error] = useModulesFromNode(filter, config)
|
|
9
12
|
if (error) {
|
|
10
13
|
return [null, error]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { usePromise } from '@xylabs/react-promise'
|
|
2
|
+
import { asNodeInstance, NodeInstance } from '@xyo-network/node-model'
|
|
3
|
+
|
|
4
|
+
import { useWeakProvidedNode } from './provided'
|
|
5
|
+
import { useWeakNodeConfigNodeField } from './useWeakNodeConfigNodeField'
|
|
6
|
+
import { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'
|
|
7
|
+
|
|
8
|
+
export const useWeakNode = (config?: WeakModuleFromNodeConfig | undefined): [WeakRef<NodeInstance> | undefined, Error | undefined] => {
|
|
9
|
+
const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config)
|
|
10
|
+
const [providedNode] = useWeakProvidedNode()
|
|
11
|
+
const [nodeAddressNode, error] = usePromise(async () => {
|
|
12
|
+
const providedNodeInstance = providedNode?.deref()
|
|
13
|
+
if (providedNodeInstance && nodeAddress) {
|
|
14
|
+
return new WeakRef(asNodeInstance(await providedNodeInstance.resolve(nodeAddress), 'Module is not a node'))
|
|
15
|
+
}
|
|
16
|
+
}, [providedNode, nodeAddress])
|
|
17
|
+
return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { usePromise } from '@xylabs/react-promise'
|
|
2
|
+
import { ModuleDescription, ModuleDescriptionPayload, ModuleDescriptionSchema } from '@xyo-network/module-model'
|
|
3
|
+
import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
|
|
4
|
+
|
|
5
|
+
import { useWeakNode } from './useWeakNode'
|
|
6
|
+
import { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'
|
|
7
|
+
|
|
8
|
+
export const useWeakNodeDescription = (config?: WeakModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {
|
|
9
|
+
const [activeNode, nodeError] = useWeakNode(config)
|
|
10
|
+
const [description, error] = usePromise(async () => {
|
|
11
|
+
const state = await activeNode?.deref()?.state()
|
|
12
|
+
return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))
|
|
13
|
+
}, [activeNode])
|
|
14
|
+
return [description, nodeError ?? error]
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { isNodeInstance, NodeInstance } from '@xyo-network/node-model'
|
|
2
|
+
|
|
3
|
+
import { ModuleFromNodeConfig } from './ModuleFromNodeConfig'
|
|
4
|
+
import { useWeakModuleFromNode } from './useWeakModuleFromNode'
|
|
5
|
+
|
|
6
|
+
export const useWeakNodeFromNode = (
|
|
7
|
+
nameOrAddressOrInstance?: string | NodeInstance,
|
|
8
|
+
config?: ModuleFromNodeConfig,
|
|
9
|
+
): [WeakRef<NodeInstance> | undefined, Error | undefined] => {
|
|
10
|
+
return useWeakModuleFromNode<NodeInstance>(nameOrAddressOrInstance, { identity: isNodeInstance, ...config })
|
|
11
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { exists } from '@xylabs/exists'
|
|
2
|
+
import { ModuleFilter } from '@xyo-network/module-model'
|
|
3
|
+
import { asNodeInstance, NodeInstance } from '@xyo-network/node-model'
|
|
4
|
+
|
|
5
|
+
import { ModuleFromNodeConfig } from './ModuleFromNodeConfig'
|
|
6
|
+
import { useWeakModulesFromNode } from './useWeakModulesFromNode'
|
|
7
|
+
|
|
8
|
+
export const useWeakNodesFromNode = (
|
|
9
|
+
filter?: ModuleFilter,
|
|
10
|
+
config?: ModuleFromNodeConfig,
|
|
11
|
+
): [WeakRef<NodeInstance>[] | null | undefined, Error | undefined] => {
|
|
12
|
+
const [modules, error] = useWeakModulesFromNode(filter, config)
|
|
13
|
+
if (error) {
|
|
14
|
+
return [null, error]
|
|
15
|
+
}
|
|
16
|
+
return modules ?
|
|
17
|
+
[
|
|
18
|
+
modules
|
|
19
|
+
.map((module) => asNodeInstance(module?.deref()))
|
|
20
|
+
.filter(exists)
|
|
21
|
+
.map((module) => new WeakRef(module)),
|
|
22
|
+
undefined,
|
|
23
|
+
]
|
|
24
|
+
: [modules, error]
|
|
25
|
+
}
|