@xyo-network/react-node 2.56.5 → 2.56.7

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 (47) hide show
  1. package/dist/cjs/hooks/useModuleFromNode.js +4 -7
  2. package/dist/cjs/hooks/useModuleFromNode.js.map +1 -1
  3. package/dist/cjs/hooks/useModulesFromNode.js +8 -6
  4. package/dist/cjs/hooks/useModulesFromNode.js.map +1 -1
  5. package/dist/cjs/hooks/useNodeFromNode.js +1 -1
  6. package/dist/cjs/hooks/useNodeFromNode.js.map +1 -1
  7. package/dist/cjs/hooks/useNodesFromNode.js +1 -1
  8. package/dist/cjs/hooks/useNodesFromNode.js.map +1 -1
  9. package/dist/cjs/hooks/wrapped/WrappedModuleFromNodeHookFactory.js +10 -7
  10. package/dist/cjs/hooks/wrapped/WrappedModuleFromNodeHookFactory.js.map +1 -1
  11. package/dist/cjs/hooks/wrapped/WrappedModulesFromNodeHookFactory.js +2 -2
  12. package/dist/cjs/hooks/wrapped/WrappedModulesFromNodeHookFactory.js.map +1 -1
  13. package/dist/docs.json +519 -419
  14. package/dist/esm/hooks/useModuleFromNode.js +4 -7
  15. package/dist/esm/hooks/useModuleFromNode.js.map +1 -1
  16. package/dist/esm/hooks/useModulesFromNode.js +8 -6
  17. package/dist/esm/hooks/useModulesFromNode.js.map +1 -1
  18. package/dist/esm/hooks/useNodeFromNode.js +1 -1
  19. package/dist/esm/hooks/useNodeFromNode.js.map +1 -1
  20. package/dist/esm/hooks/useNodesFromNode.js +1 -1
  21. package/dist/esm/hooks/useNodesFromNode.js.map +1 -1
  22. package/dist/esm/hooks/wrapped/WrappedModuleFromNodeHookFactory.js +10 -7
  23. package/dist/esm/hooks/wrapped/WrappedModuleFromNodeHookFactory.js.map +1 -1
  24. package/dist/esm/hooks/wrapped/WrappedModulesFromNodeHookFactory.js +2 -2
  25. package/dist/esm/hooks/wrapped/WrappedModulesFromNodeHookFactory.js.map +1 -1
  26. package/dist/types/hooks/useModuleFromNode.d.ts +2 -2
  27. package/dist/types/hooks/useModuleFromNode.d.ts.map +1 -1
  28. package/dist/types/hooks/useModulesFromNode.d.ts +1 -1
  29. package/dist/types/hooks/useModulesFromNode.d.ts.map +1 -1
  30. package/dist/types/hooks/useNodeFromNode.d.ts +5 -6
  31. package/dist/types/hooks/useNodeFromNode.d.ts.map +1 -1
  32. package/dist/types/hooks/useNodesFromNode.d.ts +1 -1
  33. package/dist/types/hooks/useNodesFromNode.d.ts.map +1 -1
  34. package/dist/types/hooks/wrapped/WrappedModuleFromNodeHookFactory.d.ts +1 -1
  35. package/dist/types/hooks/wrapped/WrappedModuleFromNodeHookFactory.d.ts.map +1 -1
  36. package/dist/types/hooks/wrapped/WrappedModulesFromNodeHookFactory.d.ts +1 -1
  37. package/dist/types/hooks/wrapped/WrappedModulesFromNodeHookFactory.d.ts.map +1 -1
  38. package/dist/types/hooks/wrapped/useWrappedModuleFromNode.d.ts +1 -1
  39. package/dist/types/hooks/wrapped/useWrappedModulesFromNode.d.ts +1 -1
  40. package/dist/types/hooks/wrapped/useWrappedNodeFromNode.d.ts +1 -1
  41. package/package.json +6 -6
  42. package/src/hooks/useModuleFromNode.tsx +7 -8
  43. package/src/hooks/useModulesFromNode.ts +8 -5
  44. package/src/hooks/useNodeFromNode.tsx +1 -3
  45. package/src/hooks/useNodesFromNode.tsx +1 -1
  46. package/src/hooks/wrapped/WrappedModuleFromNodeHookFactory.tsx +18 -7
  47. package/src/hooks/wrapped/WrappedModulesFromNodeHookFactory.tsx +2 -2
@@ -1,9 +1,7 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-async-effect';
2
2
  import { useMemo, useState } from 'react';
3
3
  import { useProvidedNode } from './provided';
4
- export const useModuleFromNode = (nameOrAddressOrFilter, logger) => {
5
- const nameOrAddress = useMemo(() => (typeof nameOrAddressOrFilter === 'string' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter]);
6
- const filter = useMemo(() => (typeof nameOrAddressOrFilter === 'object' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter]);
4
+ export const useModuleFromNode = (nameOrAddress, up = false, logger) => {
7
5
  const [node] = useProvidedNode();
8
6
  const [module, setModule] = useState();
9
7
  const [error, setError] = useState();
@@ -30,9 +28,8 @@ export const useModuleFromNode = (nameOrAddressOrFilter, logger) => {
30
28
  setError(undefined);
31
29
  }
32
30
  };
33
- const module = nameOrAddress
34
- ? (await node.downResolver.resolve({ address: [nameOrAddress], name: [nameOrAddress] })).pop()
35
- : (await node.downResolver.resolve(filter)).pop();
31
+ const moduleDown = nameOrAddress ? await node.downResolver.resolveOne(nameOrAddress) : undefined;
32
+ const module = moduleDown ?? (up && nameOrAddress ? await node.upResolver.resolveOne(nameOrAddress) : undefined);
36
33
  if (mounted()) {
37
34
  eventUnsubscribe.push(node.on('moduleAttached', attachHandler));
38
35
  eventUnsubscribe.push(node.on('moduleDetached', detachHandler));
@@ -60,7 +57,7 @@ export const useModuleFromNode = (nameOrAddressOrFilter, logger) => {
60
57
  setModule(undefined);
61
58
  }
62
59
  }
63
- }, [nameOrAddress, node, address, filter, logger]);
60
+ }, [nameOrAddress, node, address, logger, up]);
64
61
  return [module, error];
65
62
  };
66
63
  //# sourceMappingURL=useModuleFromNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"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"}
@@ -1,18 +1,20 @@
1
1
  import { usePromise } from '@xylabs/react-promise';
2
2
  import { useEffect, useRef } from 'react';
3
3
  import { useProvidedNode } from './provided';
4
- export const useModulesFromNode = (filter, logger) => {
4
+ export const useModulesFromNode = (filter, up = false, logger) => {
5
5
  const [node] = useProvidedNode();
6
6
  const modulesLength = useRef();
7
7
  const eventUnsubscribe = [];
8
8
  const [resolvedModules, resolvedModulesError] = usePromise(async () => {
9
9
  const getModulesFromResolution = async () => {
10
10
  if (node) {
11
- const resolvedModules = await node.downResolver.resolve(filter);
12
- if (resolvedModules?.length !== modulesLength.current) {
11
+ const resolvedDownModules = await node.downResolver.resolve(filter);
12
+ const resolvedUpModules = up ? await node.upResolver.resolve(filter) : [];
13
+ const allResolvedModules = [...resolvedDownModules, ...resolvedUpModules];
14
+ if (allResolvedModules?.length !== modulesLength.current) {
13
15
  logger?.debug(`getModulesFromResolution-setting: [${resolvedModules?.length}]`);
14
- modulesLength.current = resolvedModules?.length;
15
- return resolvedModules;
16
+ modulesLength.current = allResolvedModules?.length;
17
+ return allResolvedModules;
16
18
  }
17
19
  }
18
20
  };
@@ -28,7 +30,7 @@ export const useModulesFromNode = (filter, logger) => {
28
30
  }));
29
31
  }
30
32
  return modules;
31
- }, [node, filter, logger]);
33
+ }, [node, filter, logger, up]);
32
34
  useEffect(() => {
33
35
  return () => {
34
36
  //unsubscribe events
@@ -1 +1 @@
1
- {"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAIlD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAqB,EACrB,MAAe,EACoC,EAAE;IACrD,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE,CAAA;IAEhC,MAAM,aAAa,GAAG,MAAM,EAAU,CAAA;IAEtC,MAAM,gBAAgB,GAA+B,EAAE,CAAA;IAEvD,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC,GAAG,UAAU,CAAwB,KAAK,IAAI,EAAE;QAC3F,MAAM,wBAAwB,GAAG,KAAK,IAAI,EAAE;YAC1C,IAAI,IAAI,EAAE;gBACR,MAAM,eAAe,GAA0B,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAU,MAAM,CAAC,CAAA;gBAC/F,IAAI,eAAe,EAAE,MAAM,KAAK,aAAa,CAAC,OAAO,EAAE;oBACrD,MAAM,EAAE,KAAK,CAAC,sCAAsC,eAAe,EAAE,MAAM,GAAG,CAAC,CAAA;oBAC/E,aAAa,CAAC,OAAO,GAAG,eAAe,EAAE,MAAM,CAAA;oBAC/C,OAAO,eAAe,CAAA;iBACvB;aACF;QACH,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,MAAM,wBAAwB,EAAE,CAAA;QAEhD,IAAI,IAAI,EAAE;YACR,gBAAgB,CAAC,IAAI,CACnB,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBACnC,MAAM,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAA;gBACzD,MAAM,wBAAwB,EAAE,CAAA;YAClC,CAAC,CAAC,CACH,CAAA;YACD,gBAAgB,CAAC,IAAI,CACnB,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBACnC,MAAM,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAA;gBACzD,MAAM,wBAAwB,EAAE,CAAA;YAClC,CAAC,CAAC,CACH,CAAA;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAE1B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,oBAAoB;YACpB,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAE1B,OAAO,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAA;AAChD,CAAC,CAAA"}
1
+ {"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAIlD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAqB,EACrB,EAAE,GAAG,KAAK,EACV,MAAe,EACoC,EAAE;IACrD,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE,CAAA;IAEhC,MAAM,aAAa,GAAG,MAAM,EAAU,CAAA;IAEtC,MAAM,gBAAgB,GAA+B,EAAE,CAAA;IAEvD,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC,GAAG,UAAU,CAAwB,KAAK,IAAI,EAAE;QAC3F,MAAM,wBAAwB,GAAG,KAAK,IAAI,EAAE;YAC1C,IAAI,IAAI,EAAE;gBACR,MAAM,mBAAmB,GAA0B,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAU,MAAM,CAAC,CAAA;gBACnG,MAAM,iBAAiB,GAA0B,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBACzG,MAAM,kBAAkB,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,iBAAiB,CAAC,CAAA;gBACzE,IAAI,kBAAkB,EAAE,MAAM,KAAK,aAAa,CAAC,OAAO,EAAE;oBACxD,MAAM,EAAE,KAAK,CAAC,sCAAsC,eAAe,EAAE,MAAM,GAAG,CAAC,CAAA;oBAC/E,aAAa,CAAC,OAAO,GAAG,kBAAkB,EAAE,MAAM,CAAA;oBAClD,OAAO,kBAAkB,CAAA;iBAC1B;aACF;QACH,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,MAAM,wBAAwB,EAAE,CAAA;QAEhD,IAAI,IAAI,EAAE;YACR,gBAAgB,CAAC,IAAI,CACnB,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBACnC,MAAM,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAA;gBACzD,MAAM,wBAAwB,EAAE,CAAA;YAClC,CAAC,CAAC,CACH,CAAA;YACD,gBAAgB,CAAC,IAAI,CACnB,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBACnC,MAAM,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAA;gBACzD,MAAM,wBAAwB,EAAE,CAAA;YAClC,CAAC,CAAC,CACH,CAAA;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,oBAAoB;YACpB,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAE1B,OAAO,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAA;AAChD,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import { useModuleFromNode } from './useModuleFromNode';
2
- export const useNodeFromNode = (nameOrAddressOrFilter, logger) => useModuleFromNode(nameOrAddressOrFilter, logger);
2
+ export const useNodeFromNode = (nameOrAddress, up = false, logger) => useModuleFromNode(nameOrAddress, up, logger);
3
3
  //# sourceMappingURL=useNodeFromNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNodeFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useNodeFromNode.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,qBAA6C,EAAE,MAAe,EAAE,EAAE,CAChG,iBAAiB,CAAa,qBAAqB,EAAE,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"useNodeFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useNodeFromNode.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAsB,EAAE,EAAE,GAAG,KAAK,EAAE,MAAe,EAAE,EAAE,CAAC,iBAAiB,CAAa,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import { useModulesFromNode } from './useModulesFromNode';
2
- export const useNodesFromNode = (filter, logger) => useModulesFromNode(filter, logger);
2
+ export const useNodesFromNode = (filter, up = false, logger) => useModulesFromNode(filter, up, logger);
3
3
  //# sourceMappingURL=useNodesFromNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNodesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useNodesFromNode.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAqB,EAAE,MAAe,EAAE,EAAE,CAAC,kBAAkB,CAAa,MAAM,EAAE,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"useNodesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useNodesFromNode.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAqB,EAAE,EAAE,GAAG,KAAK,EAAE,MAAe,EAAE,EAAE,CAAC,kBAAkB,CAAa,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA"}
@@ -1,16 +1,19 @@
1
1
  import { useWallet } from '@xyo-network/react-wallet';
2
2
  import { useEffect, useState } from 'react';
3
3
  import { useModuleFromNode } from '../useModuleFromNode';
4
+ import { useModulesFromNode } from '../useModulesFromNode';
4
5
  export const WrappedModuleFromNodeHookFactory = {
5
6
  create: (wrapperObject, name) => {
6
- const useHook = (nameOrAddress, wallet, logger) => {
7
+ const useHook = (nameOrAddress, wallet, up = false, logger) => {
7
8
  logger?.debug(`Render: ${name}`);
8
9
  const [walletToUse] = useWallet({ wallet });
9
- const [module, moduleError] = useModuleFromNode(nameOrAddress ?? {
10
+ const [module, moduleError] = useModuleFromNode(nameOrAddress, up, logger);
11
+ const [modules, modulesError] = useModulesFromNode({
10
12
  query: [wrapperObject.requiredQueries],
11
- }, logger);
13
+ }, up, logger);
12
14
  const [wrapper, setWrapper] = useState();
13
15
  const [error, setError] = useState();
16
+ const activeModule = module ?? modules?.[0];
14
17
  /*
15
18
  useEffect(() => {
16
19
  if (!walletToUse) {
@@ -21,9 +24,9 @@ export const WrappedModuleFromNodeHookFactory = {
21
24
  }, [walletToUse])
22
25
  */
23
26
  useEffect(() => {
24
- if (module && walletToUse) {
27
+ if (activeModule && walletToUse) {
25
28
  try {
26
- const wrapper = wrapperObject.wrap(module, walletToUse);
29
+ const wrapper = wrapperObject.wrap(activeModule, walletToUse);
27
30
  setWrapper(wrapper);
28
31
  setError(undefined);
29
32
  }
@@ -34,9 +37,9 @@ export const WrappedModuleFromNodeHookFactory = {
34
37
  }
35
38
  else {
36
39
  setWrapper(undefined);
37
- setError(moduleError);
40
+ setError(moduleError ?? modulesError);
38
41
  }
39
- }, [module, wallet, moduleError, walletToUse]);
42
+ }, [activeModule, wallet, moduleError, walletToUse, modulesError]);
40
43
  return [wrapper, error];
41
44
  };
42
45
  return useHook;
@@ -1 +1 @@
1
- {"version":3,"file":"WrappedModuleFromNodeHookFactory.js","sourceRoot":"","sources":["../../../../src/hooks/wrapped/WrappedModuleFromNodeHookFactory.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,MAAM,EAAE,CAAuC,aAAyD,EAAE,IAAa,EAAE,EAAE;QACzH,MAAM,OAAO,GAAG,CAAC,aAAsB,EAAE,MAAuB,EAAE,MAAe,EAAmD,EAAE;YACpI,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;YAChC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YAC3C,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,iBAAiB,CAC7C,aAAa,IAAI;gBACf,KAAK,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;aACvC,EACD,MAAM,CACP,CAAA;YAED,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAkB,CAAA;YACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;YAE3C;;;;;;;;YAQA;YAEA,SAAS,CAAC,GAAG,EAAE;gBACb,IAAI,MAAM,IAAI,WAAW,EAAE;oBACzB,IAAI;wBACF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;wBACvD,UAAU,CAAC,OAAO,CAAC,CAAA;wBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;oBAAC,OAAO,EAAE,EAAE;wBACX,UAAU,CAAC,SAAS,CAAC,CAAA;wBACrB,QAAQ,CAAC,EAAW,CAAC,CAAA;qBACtB;iBACF;qBAAM;oBACL,UAAU,CAAC,SAAS,CAAC,CAAA;oBACrB,QAAQ,CAAC,WAAW,CAAC,CAAA;iBACtB;YACH,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAA;YAE9C,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"WrappedModuleFromNodeHookFactory.js","sourceRoot":"","sources":["../../../../src/hooks/wrapped/WrappedModuleFromNodeHookFactory.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,MAAM,EAAE,CAAuC,aAAyD,EAAE,IAAa,EAAE,EAAE;QACzH,MAAM,OAAO,GAAG,CACd,aAAsB,EACtB,MAAuB,EACvB,EAAE,GAAG,KAAK,EACV,MAAe,EACkC,EAAE;YACnD,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;YAChC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YAC3C,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,iBAAiB,CAA2B,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;YAEpG,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,kBAAkB,CAChD;gBACE,KAAK,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;aACvC,EACD,EAAE,EACF,MAAM,CACP,CAAA;YAED,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAkB,CAAA;YACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;YAE3C,MAAM,YAAY,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;YAE3C;;;;;;;;YAQA;YAEA,SAAS,CAAC,GAAG,EAAE;gBACb,IAAI,YAAY,IAAI,WAAW,EAAE;oBAC/B,IAAI;wBACF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;wBAC7D,UAAU,CAAC,OAAO,CAAC,CAAA;wBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;oBAAC,OAAO,EAAE,EAAE;wBACX,UAAU,CAAC,SAAS,CAAC,CAAA;wBACrB,QAAQ,CAAC,EAAW,CAAC,CAAA;qBACtB;iBACF;qBAAM;oBACL,UAAU,CAAC,SAAS,CAAC,CAAA;oBACrB,QAAQ,CAAC,WAAW,IAAI,YAAY,CAAC,CAAA;iBACtC;YACH,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;YAElE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA"}
@@ -7,10 +7,10 @@ export const WrappedModulesFromNodeHookFactory = {
7
7
  const filter = {
8
8
  query: [wrapperObject.requiredQueries],
9
9
  };
10
- const useHook = (account, logger) => {
10
+ const useHook = (account, up = false, logger) => {
11
11
  logger?.debug(`Render: ${name}`);
12
12
  const [accountToUse] = useAccount({ account });
13
- const [modules, moduleError] = useModulesFromNode(filter, logger);
13
+ const [modules, moduleError] = useModulesFromNode(filter, up, logger);
14
14
  const [wrappers, setWrappers] = useState();
15
15
  const [error, setError] = useState();
16
16
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"WrappedModulesFromNodeHookFactory.js","sourceRoot":"","sources":["../../../../src/hooks/wrapped/WrappedModulesFromNodeHookFactory.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAEtD,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,MAAM,EAAE,CAAuC,aAAyD,EAAE,IAAY,EAAE,EAAE;QACxH,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;SACvC,CAAA;QACD,MAAM,OAAO,GAAG,CAAC,OAAwB,EAAE,MAAe,EAAqD,EAAE;YAC/G,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;YAEhC,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;YAC9C,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,kBAAkB,CAA2B,MAAM,EAAE,MAAM,CAAC,CAAA;YAE3F,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAoB,CAAA;YAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;YAE3C,SAAS,CAAC,GAAG,EAAE;gBACb,MAAM,EAAE,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBAC9C,IAAI,CAAC,YAAY,EAAE;oBACjB,MAAM,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAA;oBACxC,MAAM,KAAK,GAAG,KAAK,CAAC,qEAAqE,CAAC,CAAA;oBAC1F,8BAA8B;oBAC9B,QAAQ,CAAC,KAAK,CAAC,CAAA;iBAChB;YACH,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;YAE1B,SAAS,CAAC,GAAG,EAAE;gBACb,MAAM,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAA;gBACzD,IAAI,OAAO,IAAI,YAAY,EAAE;oBAC3B,IAAI;wBACF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;wBAC/F,MAAM,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAA;wBACnD,WAAW,CAAC,QAAQ,CAAC,CAAA;wBACrB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;oBAAC,OAAO,EAAE,EAAE;wBACX,MAAM,EAAE,KAAK,CAAC,6CAA8C,EAAY,CAAC,OAAO,EAAE,CAAC,CAAA;wBACnF,WAAW,CAAC,SAAS,CAAC,CAAA;wBACtB,QAAQ,CAAC,EAAW,CAAC,CAAA;qBACtB;iBACF;qBAAM;oBACL,MAAM,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAA;oBACtD,WAAW,CAAC,SAAS,CAAC,CAAA;oBACtB,QAAQ,CAAC,WAAW,CAAC,CAAA;iBACtB;gBACD,OAAO,GAAG,EAAE;oBACV,MAAM,EAAE,KAAK,CAAC,4CAA4C,CAAC,CAAA;gBAC7D,CAAC,CAAA;YACH,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;YAEhD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"WrappedModulesFromNodeHookFactory.js","sourceRoot":"","sources":["../../../../src/hooks/wrapped/WrappedModulesFromNodeHookFactory.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAEtD,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,MAAM,EAAE,CAAuC,aAAyD,EAAE,IAAY,EAAE,EAAE;QACxH,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;SACvC,CAAA;QACD,MAAM,OAAO,GAAG,CAAC,OAAwB,EAAE,EAAE,GAAG,KAAK,EAAE,MAAe,EAAqD,EAAE;YAC3H,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;YAEhC,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;YAC9C,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,kBAAkB,CAA2B,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;YAE/F,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAoB,CAAA;YAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;YAE3C,SAAS,CAAC,GAAG,EAAE;gBACb,MAAM,EAAE,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBAC9C,IAAI,CAAC,YAAY,EAAE;oBACjB,MAAM,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAA;oBACxC,MAAM,KAAK,GAAG,KAAK,CAAC,qEAAqE,CAAC,CAAA;oBAC1F,8BAA8B;oBAC9B,QAAQ,CAAC,KAAK,CAAC,CAAA;iBAChB;YACH,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;YAE1B,SAAS,CAAC,GAAG,EAAE;gBACb,MAAM,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAA;gBACzD,IAAI,OAAO,IAAI,YAAY,EAAE;oBAC3B,IAAI;wBACF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;wBAC/F,MAAM,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAA;wBACnD,WAAW,CAAC,QAAQ,CAAC,CAAA;wBACrB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;oBAAC,OAAO,EAAE,EAAE;wBACX,MAAM,EAAE,KAAK,CAAC,6CAA8C,EAAY,CAAC,OAAO,EAAE,CAAC,CAAA;wBACnF,WAAW,CAAC,SAAS,CAAC,CAAA;wBACtB,QAAQ,CAAC,EAAW,CAAC,CAAA;qBACtB;iBACF;qBAAM;oBACL,MAAM,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAA;oBACtD,WAAW,CAAC,SAAS,CAAC,CAAA;oBACtB,QAAQ,CAAC,WAAW,CAAC,CAAA;iBACtB;gBACD,OAAO,GAAG,EAAE;oBACV,MAAM,EAAE,KAAK,CAAC,4CAA4C,CAAC,CAAA;gBAC7D,CAAC,CAAA;YACH,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;YAEhD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Logger } from '@xyo-network/core';
2
- import { Module, ModuleFilter } from '@xyo-network/module-model';
2
+ import { Module } from '@xyo-network/module-model';
3
3
  export declare const useModuleFromNode: <TModule extends Module<import("@xyo-network/module").ModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
4
4
  readonly archivist?: import("@xyo-network/module").ArchivistModuleConfig | undefined;
5
5
  readonly name?: string | undefined;
@@ -56,5 +56,5 @@ export declare const useModuleFromNode: <TModule extends Module<import("@xyo-net
56
56
  readonly storeQueries?: boolean | undefined;
57
57
  } & Omit<undefined, "schema">, "schema"> & {
58
58
  schema: string;
59
- }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>(nameOrAddressOrFilter?: string | ModuleFilter, logger?: Logger) => [TModule | null | undefined, Error | undefined];
59
+ }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>(nameOrAddress?: string, up?: boolean, logger?: Logger) => [TModule | null | undefined, Error | undefined];
60
60
  //# sourceMappingURL=useModuleFromNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAMhE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kGACJ,MAAM,GAAG,YAAY,WACpC,MAAM,oDAiEhB,CAAA"}
1
+ {"version":3,"file":"useModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAMlD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0FACZ,MAAM,yBAEb,MAAM,oDA+DhB,CAAA"}
@@ -56,5 +56,5 @@ export declare const useModulesFromNode: <TModule extends Module<import("@xyo-ne
56
56
  readonly storeQueries?: boolean | undefined;
57
57
  } & Omit<undefined, "schema">, "schema"> & {
58
58
  schema: string;
59
- }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>(filter?: ModuleFilter, logger?: Logger) => [TModule[] | null | undefined, Error | undefined];
59
+ }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>(filter?: ModuleFilter, up?: boolean, logger?: Logger) => [TModule[] | null | undefined, Error | undefined];
60
60
  //# sourceMappingURL=useModulesFromNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKhE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFACpB,YAAY,WACZ,MAAM,sDA+ChB,CAAA"}
1
+ {"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKhE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFACpB,YAAY,yBAEZ,MAAM,sDAiDhB,CAAA"}
@@ -1,8 +1,7 @@
1
1
  import { Logger } from '@xyo-network/core';
2
- import { ModuleFilter } from '@xyo-network/module';
3
2
  import { NodeModule } from '@xyo-network/node';
4
- export declare const useNodeFromNode: (nameOrAddressOrFilter?: string | ModuleFilter, logger?: Logger) => [NodeModule<import("@xyo-network/node").NodeModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
5
- readonly archivist?: import("@xyo-network/module").ArchivistModuleConfig | undefined;
3
+ export declare const useNodeFromNode: (nameOrAddress?: string, up?: boolean, logger?: Logger) => [NodeModule<import("@xyo-network/node").NodeModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
4
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
6
5
  readonly name?: string | undefined;
7
6
  readonly paging?: Record<string, {
8
7
  size?: number | undefined;
@@ -10,12 +9,12 @@ export declare const useNodeFromNode: (nameOrAddressOrFilter?: string | ModuleFi
10
9
  readonly schema: string;
11
10
  readonly security?: {
12
11
  readonly allowAnonymous?: boolean | undefined;
13
- readonly allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
12
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
14
13
  readonly disallowed?: Record<string, string[]> | undefined;
15
14
  } | undefined;
16
15
  readonly storeQueries?: boolean | undefined;
17
16
  } & Omit<Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
18
- readonly archivist?: import("@xyo-network/module").ArchivistModuleConfig | undefined;
17
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
19
18
  readonly name?: string | undefined;
20
19
  readonly paging?: Record<string, {
21
20
  size?: number | undefined;
@@ -23,7 +22,7 @@ export declare const useNodeFromNode: (nameOrAddressOrFilter?: string | ModuleFi
23
22
  readonly schema: "network.xyo.node.config";
24
23
  readonly security?: {
25
24
  readonly allowAnonymous?: boolean | undefined;
26
- readonly allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
25
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
27
26
  readonly disallowed?: Record<string, string[]> | undefined;
28
27
  } | undefined;
29
28
  readonly storeQueries?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useNodeFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeFromNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI9C,eAAO,MAAM,eAAe,2BAA4B,MAAM,GAAG,YAAY,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iHAChC,CAAA"}
1
+ {"version":3,"file":"useNodeFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeFromNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI9C,eAAO,MAAM,eAAe,mBAAoB,MAAM,yBAAuB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iHAA6D,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { Logger } from '@xyo-network/core';
2
2
  import { ModuleFilter } from '@xyo-network/module';
3
3
  import { NodeModule } from '@xyo-network/node';
4
- export declare const useNodesFromNode: (filter?: ModuleFilter, logger?: Logger) => [NodeModule<import("@xyo-network/node").NodeModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
4
+ export declare const useNodesFromNode: (filter?: ModuleFilter, up?: boolean, logger?: Logger) => [NodeModule<import("@xyo-network/node").NodeModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
5
5
  readonly archivist?: import("@xyo-network/module").ArchivistModuleConfig | undefined;
6
6
  readonly name?: string | undefined;
7
7
  readonly paging?: Record<string, {
@@ -1 +1 @@
1
- {"version":3,"file":"useNodesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodesFromNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI9C,eAAO,MAAM,gBAAgB,YAAa,YAAY,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mHAAmD,CAAA"}
1
+ {"version":3,"file":"useNodesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodesFromNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI9C,eAAO,MAAM,gBAAgB,YAAa,YAAY,yBAAuB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mHAAuD,CAAA"}
@@ -30,6 +30,6 @@ export declare const WrappedModuleFromNodeHookFactory: {
30
30
  readonly storeQueries?: boolean | undefined;
31
31
  } & Omit<undefined, "schema">, "schema"> & {
32
32
  schema: string;
33
- }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>>(wrapperObject: ConstructableModuleWrapper<TModuleWrapper>, name?: string) => (nameOrAddress?: string, wallet?: WalletInstance, logger?: Logger) => [TModuleWrapper | undefined, Error | undefined];
33
+ }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>>(wrapperObject: ConstructableModuleWrapper<TModuleWrapper>, name?: string) => (nameOrAddress?: string, wallet?: WalletInstance, up?: boolean, logger?: Logger) => [TModuleWrapper | undefined, Error | undefined];
34
34
  };
35
35
  //# sourceMappingURL=WrappedModuleFromNodeHookFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WrappedModuleFromNodeHookFactory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/wrapped/WrappedModuleFromNodeHookFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAK1D,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iJACsE,MAAM,sBACpF,MAAM,WAAW,cAAc,WAAW,MAAM;CA2CpF,CAAA"}
1
+ {"version":3,"file":"WrappedModuleFromNodeHookFactory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/wrapped/WrappedModuleFromNodeHookFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAM1D,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iJACsE,MAAM,sBAEnG,MAAM,WACb,cAAc,yBAEd,MAAM;CAiDpB,CAAA"}
@@ -30,6 +30,6 @@ export declare const WrappedModulesFromNodeHookFactory: {
30
30
  readonly storeQueries?: boolean | undefined;
31
31
  } & Omit<undefined, "schema">, "schema"> & {
32
32
  schema: string;
33
- }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>>(wrapperObject: ConstructableModuleWrapper<TModuleWrapper>, name: string) => (account?: WalletInstance, logger?: Logger) => [TModuleWrapper[] | undefined, Error | undefined];
33
+ }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>>(wrapperObject: ConstructableModuleWrapper<TModuleWrapper>, name: string) => (account?: WalletInstance, up?: boolean, logger?: Logger) => [TModuleWrapper[] | undefined, Error | undefined];
34
34
  };
35
35
  //# sourceMappingURL=WrappedModulesFromNodeHookFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WrappedModulesFromNodeHookFactory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/wrapped/WrappedModulesFromNodeHookFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAM1D,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gJACoE,MAAM,gBAIzF,cAAc,WAAW,MAAM;CA8C7D,CAAA"}
1
+ {"version":3,"file":"WrappedModulesFromNodeHookFactory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/wrapped/WrappedModulesFromNodeHookFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAM1D,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gJACoE,MAAM,gBAIzF,cAAc,yBAAuB,MAAM;CA8CzE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { ModuleWrapper } from '@xyo-network/module';
2
- export declare const useWrappedModuleFromNode: (nameOrAddress?: string | undefined, wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined, logger?: import("@xyo-network/core").Logger | undefined) => [ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/module").ModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
2
+ export declare const useWrappedModuleFromNode: (nameOrAddress?: string | undefined, wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined, up?: boolean, logger?: import("@xyo-network/core").Logger | undefined) => [ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/module").ModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
3
3
  readonly archivist?: import("@xyo-network/module").ArchivistModuleConfig | undefined;
4
4
  readonly name?: string | undefined;
5
5
  readonly paging?: Record<string, {
@@ -1,5 +1,5 @@
1
1
  import { ModuleWrapper } from '@xyo-network/module';
2
- export declare const useWrappedModulesFromNode: (account?: import("@xyo-network/wallet-model").WalletInstance | undefined, logger?: import("@xyo-network/core").Logger | undefined) => [ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/module").ModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
2
+ export declare const useWrappedModulesFromNode: (account?: import("@xyo-network/wallet-model").WalletInstance | undefined, up?: boolean, logger?: import("@xyo-network/core").Logger | undefined) => [ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/module").ModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
3
3
  readonly archivist?: import("@xyo-network/module").ArchivistModuleConfig | undefined;
4
4
  readonly name?: string | undefined;
5
5
  readonly paging?: Record<string, {
@@ -1,5 +1,5 @@
1
1
  import { NodeWrapper } from '@xyo-network/node';
2
- export declare const useWrappedNodeFromNode: (nameOrAddress?: string | undefined, wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined, logger?: import("@xyo-network/core").Logger | undefined) => [NodeWrapper<import("@xyo-network/node").NodeModule<import("@xyo-network/node").NodeModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
2
+ export declare const useWrappedNodeFromNode: (nameOrAddress?: string | undefined, wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined, up?: boolean, logger?: import("@xyo-network/core").Logger | undefined) => [NodeWrapper<import("@xyo-network/node").NodeModule<import("@xyo-network/node").NodeModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
3
3
  readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
4
4
  readonly name?: string | undefined;
5
5
  readonly paging?: Record<string, {
package/package.json CHANGED
@@ -19,9 +19,9 @@
19
19
  "@xyo-network/module": "^2.64.3",
20
20
  "@xyo-network/module-model": "^2.64.3",
21
21
  "@xyo-network/node": "^2.64.3",
22
- "@xyo-network/react-node-context": "^2.56.5",
23
- "@xyo-network/react-node-provider": "^2.56.5",
24
- "@xyo-network/react-wallet": "^2.56.5",
22
+ "@xyo-network/react-node-context": "^2.56.7",
23
+ "@xyo-network/react-node-provider": "^2.56.7",
24
+ "@xyo-network/react-wallet": "^2.56.7",
25
25
  "@xyo-network/wallet-model": "^2.64.3",
26
26
  "lodash": "^4.17.21"
27
27
  },
@@ -30,8 +30,8 @@
30
30
  "@types/lodash": "^4.14.195",
31
31
  "@xylabs/ts-scripts-yarn3": "^2.18.7",
32
32
  "@xylabs/tsconfig-react": "^2.18.7",
33
- "@xyo-network/react-storybook": "^2.56.5",
34
- "@xyo-network/react-wallet": "^2.56.5",
33
+ "@xyo-network/react-storybook": "^2.56.7",
34
+ "@xyo-network/react-wallet": "^2.56.7",
35
35
  "typescript": "^5.1.6"
36
36
  },
37
37
  "peerDependencies": {
@@ -86,5 +86,5 @@
86
86
  },
87
87
  "sideEffects": false,
88
88
  "types": "dist/types/index.d.ts",
89
- "version": "2.56.5"
89
+ "version": "2.56.7"
90
90
  }
@@ -1,18 +1,17 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-async-effect'
2
2
  import { Logger } from '@xyo-network/core'
3
3
  import { EventUnsubscribeFunction } from '@xyo-network/module'
4
- import { Module, ModuleFilter } from '@xyo-network/module-model'
4
+ import { Module } from '@xyo-network/module-model'
5
5
  import { ModuleAttachedEventArgs, ModuleDetachedEventArgs } from '@xyo-network/node'
6
6
  import { useMemo, useState } from 'react'
7
7
 
8
8
  import { useProvidedNode } from './provided'
9
9
 
10
10
  export const useModuleFromNode = <TModule extends Module = Module>(
11
- nameOrAddressOrFilter?: string | ModuleFilter,
11
+ nameOrAddress?: string,
12
+ up = false,
12
13
  logger?: Logger,
13
14
  ): [TModule | null | undefined, Error | undefined] => {
14
- const nameOrAddress = useMemo(() => (typeof nameOrAddressOrFilter === 'string' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter])
15
- const filter = useMemo(() => (typeof nameOrAddressOrFilter === 'object' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter])
16
15
  const [node] = useProvidedNode()
17
16
  const [module, setModule] = useState<TModule | null>()
18
17
  const [error, setError] = useState<Error>()
@@ -41,9 +40,9 @@ export const useModuleFromNode = <TModule extends Module = Module>(
41
40
  setError(undefined)
42
41
  }
43
42
  }
44
- const module: TModule | undefined = nameOrAddress
45
- ? (await node.downResolver.resolve<TModule>({ address: [nameOrAddress], name: [nameOrAddress] })).pop()
46
- : (await node.downResolver.resolve<TModule>(filter)).pop()
43
+ const moduleDown: TModule | undefined = nameOrAddress ? await node.downResolver.resolveOne<TModule>(nameOrAddress) : undefined
44
+ const module: TModule | undefined =
45
+ moduleDown ?? (up && nameOrAddress ? await node.upResolver.resolveOne<TModule>(nameOrAddress) : undefined)
47
46
  if (mounted()) {
48
47
  eventUnsubscribe.push(node.on('moduleAttached', attachHandler))
49
48
  eventUnsubscribe.push(node.on('moduleDetached', detachHandler))
@@ -70,7 +69,7 @@ export const useModuleFromNode = <TModule extends Module = Module>(
70
69
  }
71
70
  }
72
71
  },
73
- [nameOrAddress, node, address, filter, logger],
72
+ [nameOrAddress, node, address, logger, up],
74
73
  )
75
74
 
76
75
  return [module, error]
@@ -8,6 +8,7 @@ import { useProvidedNode } from './provided'
8
8
 
9
9
  export const useModulesFromNode = <TModule extends Module = Module>(
10
10
  filter?: ModuleFilter,
11
+ up = false,
11
12
  logger?: Logger,
12
13
  ): [TModule[] | null | undefined, Error | undefined] => {
13
14
  const [node] = useProvidedNode()
@@ -19,11 +20,13 @@ export const useModulesFromNode = <TModule extends Module = Module>(
19
20
  const [resolvedModules, resolvedModulesError] = usePromise<TModule[] | undefined>(async () => {
20
21
  const getModulesFromResolution = async () => {
21
22
  if (node) {
22
- const resolvedModules: TModule[] | undefined = await node.downResolver.resolve<TModule>(filter)
23
- if (resolvedModules?.length !== modulesLength.current) {
23
+ const resolvedDownModules: TModule[] | undefined = await node.downResolver.resolve<TModule>(filter)
24
+ const resolvedUpModules: TModule[] | undefined = up ? await node.upResolver.resolve<TModule>(filter) : []
25
+ const allResolvedModules = [...resolvedDownModules, ...resolvedUpModules]
26
+ if (allResolvedModules?.length !== modulesLength.current) {
24
27
  logger?.debug(`getModulesFromResolution-setting: [${resolvedModules?.length}]`)
25
- modulesLength.current = resolvedModules?.length
26
- return resolvedModules
28
+ modulesLength.current = allResolvedModules?.length
29
+ return allResolvedModules
27
30
  }
28
31
  }
29
32
  }
@@ -45,7 +48,7 @@ export const useModulesFromNode = <TModule extends Module = Module>(
45
48
  )
46
49
  }
47
50
  return modules
48
- }, [node, filter, logger])
51
+ }, [node, filter, logger, up])
49
52
 
50
53
  useEffect(() => {
51
54
  return () => {
@@ -1,8 +1,6 @@
1
1
  import { Logger } from '@xyo-network/core'
2
- import { ModuleFilter } from '@xyo-network/module'
3
2
  import { NodeModule } from '@xyo-network/node'
4
3
 
5
4
  import { useModuleFromNode } from './useModuleFromNode'
6
5
 
7
- export const useNodeFromNode = (nameOrAddressOrFilter?: string | ModuleFilter, logger?: Logger) =>
8
- useModuleFromNode<NodeModule>(nameOrAddressOrFilter, logger)
6
+ export const useNodeFromNode = (nameOrAddress?: string, up = false, logger?: Logger) => useModuleFromNode<NodeModule>(nameOrAddress, up, logger)
@@ -4,4 +4,4 @@ import { NodeModule } from '@xyo-network/node'
4
4
 
5
5
  import { useModulesFromNode } from './useModulesFromNode'
6
6
 
7
- export const useNodesFromNode = (filter?: ModuleFilter, logger?: Logger) => useModulesFromNode<NodeModule>(filter, logger)
7
+ export const useNodesFromNode = (filter?: ModuleFilter, up = false, logger?: Logger) => useModulesFromNode<NodeModule>(filter, up, logger)
@@ -5,22 +5,33 @@ import { WalletInstance } from '@xyo-network/wallet-model'
5
5
  import { useEffect, useState } from 'react'
6
6
 
7
7
  import { useModuleFromNode } from '../useModuleFromNode'
8
+ import { useModulesFromNode } from '../useModulesFromNode'
8
9
 
9
10
  export const WrappedModuleFromNodeHookFactory = {
10
11
  create: <TModuleWrapper extends ModuleWrapper>(wrapperObject: ConstructableModuleWrapper<TModuleWrapper>, name?: string) => {
11
- const useHook = (nameOrAddress?: string, wallet?: WalletInstance, logger?: Logger): [TModuleWrapper | undefined, Error | undefined] => {
12
+ const useHook = (
13
+ nameOrAddress?: string,
14
+ wallet?: WalletInstance,
15
+ up = false,
16
+ logger?: Logger,
17
+ ): [TModuleWrapper | undefined, Error | undefined] => {
12
18
  logger?.debug(`Render: ${name}`)
13
19
  const [walletToUse] = useWallet({ wallet })
14
- const [module, moduleError] = useModuleFromNode<TModuleWrapper['module']>(
15
- nameOrAddress ?? {
20
+ const [module, moduleError] = useModuleFromNode<TModuleWrapper['module']>(nameOrAddress, up, logger)
21
+
22
+ const [modules, modulesError] = useModulesFromNode<TModuleWrapper['module']>(
23
+ {
16
24
  query: [wrapperObject.requiredQueries],
17
25
  },
26
+ up,
18
27
  logger,
19
28
  )
20
29
 
21
30
  const [wrapper, setWrapper] = useState<TModuleWrapper>()
22
31
  const [error, setError] = useState<Error>()
23
32
 
33
+ const activeModule = module ?? modules?.[0]
34
+
24
35
  /*
25
36
  useEffect(() => {
26
37
  if (!walletToUse) {
@@ -32,9 +43,9 @@ export const WrappedModuleFromNodeHookFactory = {
32
43
  */
33
44
 
34
45
  useEffect(() => {
35
- if (module && walletToUse) {
46
+ if (activeModule && walletToUse) {
36
47
  try {
37
- const wrapper = wrapperObject.wrap(module, walletToUse)
48
+ const wrapper = wrapperObject.wrap(activeModule, walletToUse)
38
49
  setWrapper(wrapper)
39
50
  setError(undefined)
40
51
  } catch (ex) {
@@ -43,9 +54,9 @@ export const WrappedModuleFromNodeHookFactory = {
43
54
  }
44
55
  } else {
45
56
  setWrapper(undefined)
46
- setError(moduleError)
57
+ setError(moduleError ?? modulesError)
47
58
  }
48
- }, [module, wallet, moduleError, walletToUse])
59
+ }, [activeModule, wallet, moduleError, walletToUse, modulesError])
49
60
 
50
61
  return [wrapper, error]
51
62
  }
@@ -12,11 +12,11 @@ export const WrappedModulesFromNodeHookFactory = {
12
12
  const filter = {
13
13
  query: [wrapperObject.requiredQueries],
14
14
  }
15
- const useHook = (account?: WalletInstance, logger?: Logger): [TModuleWrapper[] | undefined, Error | undefined] => {
15
+ const useHook = (account?: WalletInstance, up = false, logger?: Logger): [TModuleWrapper[] | undefined, Error | undefined] => {
16
16
  logger?.debug(`Render: ${name}`)
17
17
 
18
18
  const [accountToUse] = useAccount({ account })
19
- const [modules, moduleError] = useModulesFromNode<TModuleWrapper['module']>(filter, logger)
19
+ const [modules, moduleError] = useModulesFromNode<TModuleWrapper['module']>(filter, up, logger)
20
20
 
21
21
  const [wrappers, setWrappers] = useState<TModuleWrapper[]>()
22
22
  const [error, setError] = useState<Error>()