@xyo-network/react-node 2.60.6 → 2.60.8

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.
Files changed (72) hide show
  1. package/dist/cjs/components/Node.js +8 -13
  2. package/dist/cjs/components/Node.js.map +1 -1
  3. package/dist/cjs/components/NodeDescriptionBox.js +14 -0
  4. package/dist/cjs/components/NodeDescriptionBox.js.map +1 -0
  5. package/dist/cjs/components/NodeModulesBox.js +14 -0
  6. package/dist/cjs/components/NodeModulesBox.js.map +1 -0
  7. package/dist/cjs/hooks/index.js +4 -0
  8. package/dist/cjs/hooks/index.js.map +1 -1
  9. package/dist/cjs/hooks/useModuleFilterOptions.js +9 -0
  10. package/dist/cjs/hooks/useModuleFilterOptions.js.map +1 -0
  11. package/dist/cjs/hooks/useModuleFromNode.js +16 -11
  12. package/dist/cjs/hooks/useModuleFromNode.js.map +1 -1
  13. package/dist/cjs/hooks/useModulesFromNode.js +17 -16
  14. package/dist/cjs/hooks/useModulesFromNode.js.map +1 -1
  15. package/dist/cjs/hooks/useNode.js +21 -0
  16. package/dist/cjs/hooks/useNode.js.map +1 -0
  17. package/dist/cjs/hooks/useNodeConfigNodeField.js +11 -0
  18. package/dist/cjs/hooks/useNodeConfigNodeField.js.map +1 -0
  19. package/dist/cjs/hooks/useNodeDescription.js +15 -0
  20. package/dist/cjs/hooks/useNodeDescription.js.map +1 -0
  21. package/dist/docs.json +26150 -2154
  22. package/dist/esm/components/Node.js +7 -13
  23. package/dist/esm/components/Node.js.map +1 -1
  24. package/dist/esm/components/NodeDescriptionBox.js +8 -0
  25. package/dist/esm/components/NodeDescriptionBox.js.map +1 -0
  26. package/dist/esm/components/NodeModulesBox.js +8 -0
  27. package/dist/esm/components/NodeModulesBox.js.map +1 -0
  28. package/dist/esm/hooks/index.js +4 -0
  29. package/dist/esm/hooks/index.js.map +1 -1
  30. package/dist/esm/hooks/useModuleFilterOptions.js +5 -0
  31. package/dist/esm/hooks/useModuleFilterOptions.js.map +1 -0
  32. package/dist/esm/hooks/useModuleFromNode.js +14 -10
  33. package/dist/esm/hooks/useModuleFromNode.js.map +1 -1
  34. package/dist/esm/hooks/useModulesFromNode.js +13 -12
  35. package/dist/esm/hooks/useModulesFromNode.js.map +1 -1
  36. package/dist/esm/hooks/useNode.js +15 -0
  37. package/dist/esm/hooks/useNode.js.map +1 -0
  38. package/dist/esm/hooks/useNodeConfigNodeField.js +7 -0
  39. package/dist/esm/hooks/useNodeConfigNodeField.js.map +1 -0
  40. package/dist/esm/hooks/useNodeDescription.js +10 -0
  41. package/dist/esm/hooks/useNodeDescription.js.map +1 -0
  42. package/dist/types/components/Node.d.ts +6 -1
  43. package/dist/types/components/Node.d.ts.map +1 -1
  44. package/dist/types/components/NodeDescriptionBox.d.ts +8 -0
  45. package/dist/types/components/NodeDescriptionBox.d.ts.map +1 -0
  46. package/dist/types/components/NodeModulesBox.d.ts +8 -0
  47. package/dist/types/components/NodeModulesBox.d.ts.map +1 -0
  48. package/dist/types/hooks/index.d.ts +4 -0
  49. package/dist/types/hooks/index.d.ts.map +1 -1
  50. package/dist/types/hooks/useModuleFilterOptions.d.ts +49 -0
  51. package/dist/types/hooks/useModuleFilterOptions.d.ts.map +1 -0
  52. package/dist/types/hooks/useModuleFromNode.d.ts +2 -1
  53. package/dist/types/hooks/useModuleFromNode.d.ts.map +1 -1
  54. package/dist/types/hooks/useModulesFromNode.d.ts.map +1 -1
  55. package/dist/types/hooks/useNode.d.ts +4 -0
  56. package/dist/types/hooks/useNode.d.ts.map +1 -0
  57. package/dist/types/hooks/useNodeConfigNodeField.d.ts +4 -0
  58. package/dist/types/hooks/useNodeConfigNodeField.d.ts.map +1 -0
  59. package/dist/types/hooks/useNodeDescription.d.ts +4 -0
  60. package/dist/types/hooks/useNodeDescription.d.ts.map +1 -0
  61. package/package.json +20 -20
  62. package/src/components/Node.stories.tsx +5 -30
  63. package/src/components/Node.tsx +13 -20
  64. package/src/components/NodeDescriptionBox.tsx +18 -0
  65. package/src/components/NodeModulesBox.tsx +18 -0
  66. package/src/hooks/index.ts +4 -0
  67. package/src/hooks/useModuleFilterOptions.ts +6 -0
  68. package/src/hooks/useModuleFromNode.ts +16 -11
  69. package/src/hooks/useModulesFromNode.ts +13 -12
  70. package/src/hooks/useNode.ts +17 -0
  71. package/src/hooks/useNodeConfigNodeField.ts +10 -0
  72. package/src/hooks/useNodeDescription.ts +13 -0
@@ -1,16 +1,10 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useAsyncEffect } from '@xylabs/react-async-effect';
3
- import { FlexCol } from '@xylabs/react-flexbox';
4
- import { useState } from 'react';
5
- import { useProvidedNode } from '../hooks';
6
- export const NodeBox = (props) => {
7
- const [node] = useProvidedNode();
8
- const [description, setDescription] = useState();
9
- useAsyncEffect(
10
- // eslint-disable-next-line react-hooks/exhaustive-deps
11
- async () => {
12
- setDescription(JSON.stringify(await node?.describe(), null, 2));
13
- }, [node]);
14
- return (_jsx(FlexCol, { ...props, children: _jsx("pre", { children: description }) }));
2
+ import { NodeDescriptionBox } from './NodeDescriptionBox';
3
+ export const NodeBox = ({ variant, ...props }) => {
4
+ switch (variant) {
5
+ case 'description':
6
+ default:
7
+ return _jsx(NodeDescriptionBox, { ...props });
8
+ }
15
9
  };
16
10
  //# sourceMappingURL=Node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/components/Node.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAgB,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C,MAAM,CAAC,MAAM,OAAO,GAA2B,CAAC,KAAK,EAAE,EAAE;IACvD,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE,CAAA;IAChC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAU,CAAA;IAExD,cAAc;IACZ,uDAAuD;IACvD,KAAK,IAAI,EAAE;QACT,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACjE,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,OAAO,CACL,KAAC,OAAO,OAAK,KAAK,YAChB,wBAAM,WAAW,GAAO,GAChB,CACX,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/components/Node.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAOzD,MAAM,CAAC,MAAM,OAAO,GAA2B,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACvE,QAAQ,OAAO,EAAE;QACf,KAAK,aAAa,CAAC;QACnB;YACE,OAAO,KAAC,kBAAkB,OAAK,KAAK,GAAI,CAAA;KAC3C;AACH,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { FlexCol } from '@xylabs/react-flexbox';
3
+ import { useNodeDescription } from '../hooks';
4
+ export const NodeDescriptionBox = ({ node, ...props }) => {
5
+ const [description, error] = useNodeDescription({ node });
6
+ return (_jsx(FlexCol, { ...props, children: _jsx("code", { color: error ? 'red' : undefined, children: error ? error.message : JSON.stringify(description, null, 2) }) }));
7
+ };
8
+ //# sourceMappingURL=NodeDescriptionBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeDescriptionBox.js","sourceRoot":"","sources":["../../../src/components/NodeDescriptionBox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAgB,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAM7C,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC1F,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAEzD,OAAO,CACL,KAAC,OAAO,OAAK,KAAK,YAChB,eAAM,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,YAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAQ,GACrG,CACX,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { FlexCol } from '@xylabs/react-flexbox';
3
+ import { useModulesFromNode } from '../hooks';
4
+ export const NodeDescriptionBox = ({ node, ...props }) => {
5
+ const [description, error] = useModulesFromNode(undefined, { node });
6
+ return (_jsx(FlexCol, { ...props, children: _jsx("code", { color: error ? 'red' : undefined, children: error ? error.message : JSON.stringify(description, null, 2) }) }));
7
+ };
8
+ //# sourceMappingURL=NodeModulesBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeModulesBox.js","sourceRoot":"","sources":["../../../src/components/NodeModulesBox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAgB,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAM7C,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC1F,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAEpE,OAAO,CACL,KAAC,OAAO,OAAK,KAAK,YAChB,eAAM,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,YAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAQ,GACrG,CACX,CAAA;AACH,CAAC,CAAA"}
@@ -1,5 +1,9 @@
1
1
  export * from './provided';
2
+ export * from './useModuleFilterOptions';
2
3
  export * from './useModuleFromNode';
3
4
  export * from './useModulesFromNode';
5
+ export * from './useNode';
6
+ export * from './useNodeConfigNodeField';
7
+ export * from './useNodeDescription';
4
8
  export * from './useNodeFromNode';
5
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA;AACzB,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export const useModuleFilterOptions = (config) => {
2
+ const { direction, identity, maxDepth, visibility } = config ?? {};
3
+ return { direction, identity, maxDepth, visibility };
4
+ };
5
+ //# sourceMappingURL=useModuleFilterOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useModuleFilterOptions.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFilterOptions.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAA6B,EAAE,EAAE;IACtE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAClE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;AACtD,CAAC,CAAA"}
@@ -1,28 +1,32 @@
1
1
  import { usePromise } from '@xylabs/react-promise';
2
2
  import { asModuleInstance } from '@xyo-network/module';
3
3
  import { useState } from 'react';
4
- import { useProvidedNode } from './provided';
4
+ import { useModuleFilterOptions } from './useModuleFilterOptions';
5
+ import { useNode } from './useNode';
6
+ export const useModuleFromNodeConfigLogger = (config) => {
7
+ return config?.logger;
8
+ };
5
9
  export const useModuleFromNode = (nameOrAddress, config) => {
6
- const [providedNode] = useProvidedNode();
7
- const { logger, node: paramNode, ...resolveConfig } = config ?? {};
10
+ const [node, nodeError] = useNode(config);
11
+ const logger = useModuleFromNodeConfigLogger(config);
12
+ const filterOptions = useModuleFilterOptions(config);
8
13
  const [result, setResult] = useState();
9
14
  const [, error] = usePromise(async () => {
10
15
  logger?.debug('useModuleFromNode: resolving');
11
- const activeNode = paramNode ?? providedNode;
12
- if (activeNode && nameOrAddress) {
13
- activeNode.on('moduleAttached', ({ module }) => {
16
+ if (node && nameOrAddress) {
17
+ node.on('moduleAttached', ({ module }) => {
14
18
  logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`);
15
19
  if (module.address === nameOrAddress || module.config?.name === nameOrAddress) {
16
20
  setResult(asModuleInstance(module));
17
21
  }
18
22
  });
19
- activeNode.on('moduleDetached', ({ module }) => {
23
+ node.on('moduleDetached', ({ module }) => {
20
24
  logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`);
21
25
  if (module.address === nameOrAddress || module.config?.name === nameOrAddress) {
22
26
  setResult(undefined);
23
27
  }
24
28
  });
25
- const result = await activeNode.resolve(nameOrAddress, resolveConfig);
29
+ const result = await node.resolve(nameOrAddress, filterOptions);
26
30
  logger?.debug(`Result: ${result?.address}`);
27
31
  setResult(result);
28
32
  return result;
@@ -30,7 +34,7 @@ export const useModuleFromNode = (nameOrAddress, config) => {
30
34
  logger?.debug('Result: No Node');
31
35
  return undefined;
32
36
  // eslint-disable-next-line react-hooks/exhaustive-deps
33
- }, [paramNode, providedNode, nameOrAddress]);
34
- return [result, error];
37
+ }, [node, nameOrAddress]);
38
+ return [result, nodeError ?? error];
35
39
  };
36
40
  //# sourceMappingURL=useModuleFromNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAO5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAAsB,EAAE,MAA6B,EAAmD,EAAE;IAC1I,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAClE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA8B,CAAA;IAClE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,MAAM,UAAU,GAAG,SAAS,IAAI,YAAY,CAAA;QAC5C,IAAI,UAAU,IAAI,aAAa,EAAE;YAC/B,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC7C,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;iBACpC;YACH,CAAC,CAAC,CAAA;YACF,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC7C,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;YACH,CAAC,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;YACrE,MAAM,EAAE,KAAK,CAAC,WAAW,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YAC3C,SAAS,CAAC,MAAM,CAAC,CAAA;YACjB,OAAO,MAAM,CAAA;SACd;QACD,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAChC,OAAO,SAAS,CAAA;QAChB,uDAAuD;IACzD,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,MAA6B,EAAE,EAAE;IAC7E,OAAO,MAAM,EAAE,MAAM,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAAsB,EAAE,MAA6B,EAAmD,EAAE;IAC1I,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACpD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA8B,CAAA;IAClE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,IAAI,IAAI,IAAI,aAAa,EAAE;YACzB,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBACvC,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;iBACpC;YACH,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBACvC,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;YACH,CAAC,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;YAC/D,MAAM,EAAE,KAAK,CAAC,WAAW,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YAC3C,SAAS,CAAC,MAAM,CAAC,CAAA;YACjB,OAAO,MAAM,CAAA;SACd;QACD,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAChC,OAAO,SAAS,CAAA;QAChB,uDAAuD;IACzD,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAA;IACzB,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,KAAK,CAAC,CAAA;AACrC,CAAC,CAAA"}
@@ -1,32 +1,33 @@
1
1
  import { usePromise } from '@xylabs/react-promise';
2
2
  import { useState } from 'react';
3
- import { useProvidedNode } from './provided';
3
+ import { useModuleFilterOptions } from './useModuleFilterOptions';
4
+ import { useNode } from './useNode';
4
5
  export const useModulesFromNode = (filter, config) => {
5
- const [providedNode] = useProvidedNode();
6
- const { logger, node: paramNode, ...resolveConfig } = config ?? {};
6
+ const [node, nodeError] = useNode(config);
7
+ const logger = config?.logger;
8
+ const filterOptions = useModuleFilterOptions();
7
9
  const [result, setResult] = useState();
8
10
  const [, error] = usePromise(async () => {
9
11
  logger?.debug('useModuleFromNode: resolving');
10
- const activeNode = paramNode ?? providedNode;
11
- if (activeNode) {
12
- activeNode.on('moduleAttached', async ({ module }) => {
12
+ if (node) {
13
+ node.on('moduleAttached', async ({ module }) => {
13
14
  logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`);
14
- const moduleInstances = await activeNode.resolve(filter, resolveConfig);
15
+ const moduleInstances = await node.resolve(filter, filterOptions);
15
16
  setResult(moduleInstances);
16
17
  });
17
- activeNode.on('moduleDetached', async ({ module }) => {
18
+ node.on('moduleDetached', async ({ module }) => {
18
19
  logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`);
19
- const moduleInstances = await activeNode.resolve(filter, resolveConfig);
20
+ const moduleInstances = await node.resolve(filter, filterOptions);
20
21
  setResult(moduleInstances);
21
22
  });
22
- const moduleInstances = await activeNode.resolve(filter, resolveConfig);
23
+ const moduleInstances = await node.resolve(filter, filterOptions);
23
24
  setResult(moduleInstances);
24
25
  setResult(moduleInstances);
25
26
  return moduleInstances;
26
27
  }
27
28
  console.log('Result: No Node');
28
29
  return undefined;
29
- }, [paramNode, providedNode, filter]);
30
- return [result, error];
30
+ }, [node, filter]);
31
+ return [result, nodeError ?? error];
31
32
  };
32
33
  //# sourceMappingURL=useModulesFromNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAG5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAqB,EAAE,MAA6B,EAAqD,EAAE;IAC5I,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAClE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAgC,CAAA;IACpE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,MAAM,UAAU,GAAG,SAAS,IAAI,YAAY,CAAA;QAC5C,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACnD,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACvE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;YACF,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACnD,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACvE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;YACF,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC1B,SAAS,CAAC,eAAe,CAAC,CAAA;YAC1B,OAAO,eAAe,CAAA;SACvB;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IACrC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAqB,EAAE,MAA6B,EAAqD,EAAE;IAC5I,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAA;IAC7B,MAAM,aAAa,GAAG,sBAAsB,EAAE,CAAA;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAgC,CAAA;IACpE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC7C,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACjE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC7C,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACjE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;YACF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACjE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC1B,SAAS,CAAC,eAAe,CAAC,CAAA;YAC1B,OAAO,eAAe,CAAA;SACvB;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAClB,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,KAAK,CAAC,CAAA;AACrC,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { usePromise } from '@xylabs/react-promise';
2
+ import { asNodeInstance } from '@xyo-network/node-model';
3
+ import { useProvidedNode } from './provided';
4
+ import { useNodeConfigNodeField } from './useNodeConfigNodeField';
5
+ export const useNode = (config) => {
6
+ const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config);
7
+ const [providedNode] = useProvidedNode();
8
+ const [nodeAddressNode, error] = usePromise(async () => {
9
+ if (providedNode && nodeAddress) {
10
+ return asNodeInstance(await providedNode.resolve(nodeAddress), 'Module is not a node');
11
+ }
12
+ }, [providedNode, nodeAddress]);
13
+ return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error];
14
+ };
15
+ //# sourceMappingURL=useNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAgB,MAAM,yBAAyB,CAAA;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAyC,EAAiD,EAAE;IAClH,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAClE,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACrD,IAAI,YAAY,IAAI,WAAW,EAAE;YAC/B,OAAO,cAAc,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,sBAAsB,CAAC,CAAA;SACvF;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;IAC/B,OAAO,CAAC,eAAe,IAAI,YAAY,IAAI,YAAY,IAAI,SAAS,EAAE,KAAK,CAAC,CAAA;AAC9E,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { useMemo } from 'react';
2
+ export const useNodeConfigNodeField = (config) => {
3
+ const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node]);
4
+ const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node]);
5
+ return [nodeAddress, nodeInstance];
6
+ };
7
+ //# sourceMappingURL=useNodeConfigNodeField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeConfigNodeField.js","sourceRoot":"","sources":["../../../src/hooks/useNodeConfigNodeField.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAI/B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAyC,EAAkD,EAAE;IAClI,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IAChH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IACjH,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;AACpC,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { usePromise } from '@xylabs/react-promise';
2
+ import { useNode } from './useNode';
3
+ export const useNodeDescription = (config) => {
4
+ const [activeNode, nodeError] = useNode(config);
5
+ const [description, error] = usePromise(async () => {
6
+ return await activeNode?.describe();
7
+ }, [activeNode]);
8
+ return [description, nodeError ?? error];
9
+ };
10
+ //# sourceMappingURL=useNodeDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeDescription.js","sourceRoot":"","sources":["../../../src/hooks/useNodeDescription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAIlD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAyC,EAAsD,EAAE;IAClI,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACjD,OAAO,MAAM,UAAU,EAAE,QAAQ,EAAE,CAAA;IACrC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAChB,OAAO,CAAC,WAAW,EAAE,SAAS,IAAI,KAAK,CAAC,CAAA;AAC1C,CAAC,CAAA"}
@@ -1,4 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { FlexBoxProps } from '@xylabs/react-flexbox';
3
- export declare const NodeBox: React.FC<FlexBoxProps>;
3
+ import { NodeInstance } from '@xyo-network/node-model';
4
+ export interface NodeBoxProps extends FlexBoxProps {
5
+ node?: string | NodeInstance;
6
+ variant?: 'description';
7
+ }
8
+ export declare const NodeBox: React.FC<NodeBoxProps>;
4
9
  //# sourceMappingURL=Node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/components/Node.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAK7D,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAiB1C,CAAA"}
1
+ {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/components/Node.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAItD,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAA;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAM1C,CAAA"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ import { NodeInstance } from '@xyo-network/node-model';
4
+ export interface NodeDescriptionBoxProps extends FlexBoxProps {
5
+ node?: string | NodeInstance;
6
+ }
7
+ export declare const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps>;
8
+ //# sourceMappingURL=NodeDescriptionBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeDescriptionBox.d.ts","sourceRoot":"","sources":["../../../src/components/NodeDescriptionBox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAItD,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAA;CAC7B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQhE,CAAA"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ import { NodeInstance } from '@xyo-network/node-model';
4
+ export interface NodeDescriptionBoxProps extends FlexBoxProps {
5
+ node?: string | NodeInstance;
6
+ }
7
+ export declare const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps>;
8
+ //# sourceMappingURL=NodeModulesBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeModulesBox.d.ts","sourceRoot":"","sources":["../../../src/components/NodeModulesBox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAItD,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAA;CAC7B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQhE,CAAA"}
@@ -1,5 +1,9 @@
1
1
  export * from './provided';
2
+ export * from './useModuleFilterOptions';
2
3
  export * from './useModuleFromNode';
3
4
  export * from './useModulesFromNode';
5
+ export * from './useNode';
6
+ export * from './useNodeConfigNodeField';
7
+ export * from './useNodeDescription';
4
8
  export * from './useNodeFromNode';
5
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA;AACzB,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,49 @@
1
+ import { ModuleFromNodeConfig } from './useModuleFromNode';
2
+ export declare const useModuleFilterOptions: (config?: ModuleFromNodeConfig) => {
3
+ direction: "up" | "down" | "all" | undefined;
4
+ identity: import("@xyo-network/module-model").InstanceTypeCheck<import("@xyo-network/module-model").ModuleInstance<import("@xyo-network/core").BaseParamsFields & {
5
+ account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
6
+ config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
7
+ accountDerivationPath?: string | undefined;
8
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
9
+ readonly name?: string | undefined;
10
+ readonly paging?: Record<string, {
11
+ size?: number | undefined;
12
+ }> | undefined;
13
+ readonly schema: string;
14
+ readonly security?: {
15
+ readonly allowAnonymous?: boolean | undefined;
16
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
17
+ readonly disallowed?: Record<string, string[]> | undefined;
18
+ } | undefined;
19
+ readonly sign?: boolean | undefined;
20
+ readonly storeQueries?: boolean | undefined;
21
+ } & Omit<Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
22
+ accountDerivationPath?: string | undefined;
23
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
24
+ readonly name?: string | undefined;
25
+ readonly paging?: Record<string, {
26
+ size?: number | undefined;
27
+ }> | undefined;
28
+ readonly schema: "network.xyo.module.config";
29
+ readonly security?: {
30
+ readonly allowAnonymous?: boolean | undefined;
31
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
32
+ readonly disallowed?: Record<string, string[]> | undefined;
33
+ } | undefined;
34
+ readonly sign?: boolean | undefined;
35
+ readonly storeQueries?: boolean | undefined;
36
+ } & Omit<undefined, "schema"> & {
37
+ schema: "network.xyo.module.config";
38
+ }, "schema"> & {
39
+ schema: string;
40
+ }, "schema"> & {
41
+ schema: string;
42
+ };
43
+ ephemeralQueryAccountEnabled?: boolean | undefined;
44
+ wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
45
+ }, import("@xyo-network/module-model").ModuleEventData<object>>> | undefined;
46
+ maxDepth: number | undefined;
47
+ visibility: "all" | "public" | "private" | undefined;
48
+ };
49
+ //# sourceMappingURL=useModuleFilterOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useModuleFilterOptions.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFilterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,eAAO,MAAM,sBAAsB,YAAa,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGnE,CAAA"}
@@ -3,7 +3,8 @@ import { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model';
3
3
  import { NodeInstance } from '@xyo-network/node-model';
4
4
  export type ModuleFromNodeConfig = ModuleFilterOptions & {
5
5
  logger?: Logger;
6
- node?: NodeInstance;
6
+ node?: NodeInstance | string;
7
7
  };
8
+ export declare const useModuleFromNodeConfigLogger: (config?: ModuleFromNodeConfig) => Logger | undefined;
8
9
  export declare const useModuleFromNode: (nameOrAddress?: string, config?: ModuleFromNodeConfig) => [ModuleInstance | undefined, Error | undefined];
9
10
  //# sourceMappingURL=useModuleFromNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAKtD,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,iBAAiB,mBAAoB,MAAM,WAAW,oBAAoB,KAAG,CAAC,cAAc,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA8BvI,CAAA"}
1
+ {"version":3,"file":"useModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAMtD,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,6BAA6B,YAAa,oBAAoB,uBAE1E,CAAA;AAED,eAAO,MAAM,iBAAiB,mBAAoB,MAAM,WAAW,oBAAoB,KAAG,CAAC,cAAc,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA8BvI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,eAAO,MAAM,kBAAkB,YAAa,YAAY,WAAW,oBAAoB,KAAG,CAAC,cAAc,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2BzI,CAAA"}
1
+ {"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG1D,eAAO,MAAM,kBAAkB,YAAa,YAAY,WAAW,oBAAoB,KAAG,CAAC,cAAc,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2BzI,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NodeInstance } from '@xyo-network/node-model';
2
+ import { ModuleFromNodeConfig } from './useModuleFromNode';
3
+ export declare const useNode: (config?: ModuleFromNodeConfig | undefined) => [NodeInstance | undefined, Error | undefined];
4
+ //# sourceMappingURL=useNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG1D,eAAO,MAAM,OAAO,YAAa,oBAAoB,GAAG,SAAS,KAAG,CAAC,YAAY,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAS/G,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NodeInstance } from '@xyo-network/node-model';
2
+ import { ModuleFromNodeConfig } from './useModuleFromNode';
3
+ export declare const useNodeConfigNodeField: (config?: ModuleFromNodeConfig | undefined) => [string | undefined, NodeInstance | undefined];
4
+ //# sourceMappingURL=useNodeConfigNodeField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeConfigNodeField.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeConfigNodeField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,eAAO,MAAM,sBAAsB,YAAa,oBAAoB,GAAG,SAAS,KAAG,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,GAAG,SAAS,CAI/H,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ModuleDescription } from '@xyo-network/module-model';
2
+ import { ModuleFromNodeConfig } from './useModuleFromNode';
3
+ export declare const useNodeDescription: (config?: ModuleFromNodeConfig | undefined) => [ModuleDescription | undefined, Error | undefined];
4
+ //# sourceMappingURL=useNodeDescription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeDescription.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeDescription.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG1D,eAAO,MAAM,kBAAkB,YAAa,oBAAoB,GAAG,SAAS,KAAG,CAAC,iBAAiB,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAM/H,CAAA"}
package/package.json CHANGED
@@ -10,27 +10,27 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@mui/lab": "^5.0.0-alpha.139",
14
- "@xylabs/react-async-effect": "~2.17.12",
15
- "@xylabs/react-flexbox": "~2.17.12",
16
- "@xylabs/react-promise": "~2.17.12",
17
- "@xylabs/react-shared": "~2.17.12",
18
- "@xyo-network/logger": "^2.71.4",
19
- "@xyo-network/module": "^2.71.4",
20
- "@xyo-network/module-model": "^2.71.4",
21
- "@xyo-network/node-model": "^2.71.4",
22
- "@xyo-network/react-node-context": "~2.60.6",
23
- "@xyo-network/react-node-provider": "~2.60.6"
13
+ "@mui/lab": "^5.0.0-alpha.142",
14
+ "@xylabs/react-async-effect": "~2.17.15",
15
+ "@xylabs/react-flexbox": "~2.17.15",
16
+ "@xylabs/react-promise": "~2.17.15",
17
+ "@xylabs/react-shared": "~2.17.15",
18
+ "@xyo-network/logger": "^2.72.5",
19
+ "@xyo-network/module": "^2.72.5",
20
+ "@xyo-network/module-model": "^2.72.5",
21
+ "@xyo-network/node-model": "^2.72.5",
22
+ "@xyo-network/react-node-context": "~2.60.8",
23
+ "@xyo-network/react-node-provider": "~2.60.8"
24
24
  },
25
25
  "devDependencies": {
26
- "@storybook/react": "^7.2.2",
27
- "@xylabs/ts-scripts-yarn3": "^2.19.0",
28
- "@xylabs/tsconfig-react": "^2.19.0",
29
- "@xyo-network/node-memory": "^2.71.4",
30
- "@xyo-network/payload-model": "^2.71.4",
31
- "@xyo-network/react-storybook": "~2.60.6",
32
- "@xyo-network/react-wallet": "~2.60.6",
33
- "typescript": "^5.1.6"
26
+ "@storybook/react": "^7.4.0",
27
+ "@xylabs/ts-scripts-yarn3": "^2.19.3",
28
+ "@xylabs/tsconfig-react": "^2.19.3",
29
+ "@xyo-network/node-memory": "^2.72.5",
30
+ "@xyo-network/payload-model": "^2.72.5",
31
+ "@xyo-network/react-storybook": "~2.60.8",
32
+ "@xyo-network/react-wallet": "~2.60.8",
33
+ "typescript": "^5.2.2"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "@mui/icons-material": "^5",
@@ -84,5 +84,5 @@
84
84
  },
85
85
  "sideEffects": false,
86
86
  "types": "dist/types/index.d.ts",
87
- "version": "2.60.6"
87
+ "version": "2.60.8"
88
88
  }
@@ -1,14 +1,13 @@
1
1
  import { Decorator, Meta, StoryFn } from '@storybook/react'
2
2
  import { useAsyncEffect } from '@xylabs/react-async-effect'
3
- import { WithChildren } from '@xylabs/react-shared'
4
3
  import { MemoryNode } from '@xyo-network/node-memory'
5
4
  import { NodeConfigSchema } from '@xyo-network/node-model'
6
5
  import { MemoryNodeProvider } from '@xyo-network/react-node-provider'
7
6
  import { DefaultSeedPhrase } from '@xyo-network/react-storybook'
8
7
  import { useWallet, WalletProvider } from '@xyo-network/react-wallet'
9
- import { useEffect, useState } from 'react'
10
8
 
11
- import { useModuleFromNode, useProvidedNode } from '../hooks'
9
+ import { useProvidedNode } from '../hooks'
10
+ import { NodeBox } from './Node'
12
11
  import { TestModule, TestModuleConfigSchema } from './TestModule'
13
12
 
14
13
  const TestModuleName = 'TestModule'
@@ -25,42 +24,24 @@ const MemoryNodeDecorator: Decorator = (Story, args) => {
25
24
  )
26
25
  }
27
26
 
28
- const UseModuleTest: React.FC<WithChildren> = ({ children }) => {
29
- const [testModule] = useModuleFromNode(TestModuleName)
30
-
31
- useEffect(() => {
32
- if (testModule) {
33
- // Should be called but isn't
34
- console.log('*****test module*****', testModule)
35
- }
36
- }, [testModule])
37
-
38
- return <>{children}</>
39
- }
40
-
41
27
  // eslint-disable-next-line import/no-default-export
42
28
  export default {
43
29
  title: 'modules/node/NodeBox',
44
30
  } as Meta
45
31
 
46
- const Template: StoryFn<React.FC> = (props) => {
32
+ const Template: StoryFn<React.FC> = () => {
47
33
  const [node] = useProvidedNode() as [MemoryNode]
48
- const [description, setDescription] = useState<string>()
49
34
 
50
35
  const [account] = useWallet({ mnemonic: DefaultSeedPhrase, path: '0' })
51
36
 
52
37
  useAsyncEffect(
53
38
  // eslint-disable-next-line react-hooks/exhaustive-deps
54
- async (mounted) => {
39
+ async () => {
55
40
  if (node && account) {
56
41
  try {
57
42
  const mod = await TestModule.create({ account, config: { name: TestModuleName, schema: TestModuleConfigSchema } })
58
43
  await node?.register(mod)
59
44
  await node?.attach(mod.address, true)
60
- const description = await node?.describe()
61
- if (mounted()) {
62
- setDescription(JSON.stringify(description, null, 2))
63
- }
64
45
  } catch (e) {
65
46
  console.error(e)
66
47
  }
@@ -69,13 +50,7 @@ const Template: StoryFn<React.FC> = (props) => {
69
50
  [node, account],
70
51
  )
71
52
 
72
- return (
73
- <div {...props}>
74
- <UseModuleTest>
75
- <pre>{description}</pre>
76
- </UseModuleTest>
77
- </div>
78
- )
53
+ return <NodeBox node={node} variant="description" maxWidth={640} />
79
54
  }
80
55
 
81
56
  const Default = Template.bind({})
@@ -1,24 +1,17 @@
1
- import { useAsyncEffect } from '@xylabs/react-async-effect'
2
- import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
3
- import { useState } from 'react'
1
+ import { FlexBoxProps } from '@xylabs/react-flexbox'
2
+ import { NodeInstance } from '@xyo-network/node-model'
4
3
 
5
- import { useProvidedNode } from '../hooks'
4
+ import { NodeDescriptionBox } from './NodeDescriptionBox'
6
5
 
7
- export const NodeBox: React.FC<FlexBoxProps> = (props) => {
8
- const [node] = useProvidedNode()
9
- const [description, setDescription] = useState<string>()
10
-
11
- useAsyncEffect(
12
- // eslint-disable-next-line react-hooks/exhaustive-deps
13
- async () => {
14
- setDescription(JSON.stringify(await node?.describe(), null, 2))
15
- },
16
- [node],
17
- )
6
+ export interface NodeBoxProps extends FlexBoxProps {
7
+ node?: string | NodeInstance
8
+ variant?: 'description'
9
+ }
18
10
 
19
- return (
20
- <FlexCol {...props}>
21
- <pre>{description}</pre>
22
- </FlexCol>
23
- )
11
+ export const NodeBox: React.FC<NodeBoxProps> = ({ variant, ...props }) => {
12
+ switch (variant) {
13
+ case 'description':
14
+ default:
15
+ return <NodeDescriptionBox {...props} />
16
+ }
24
17
  }