@xyo-network/react-archivist 2.64.0 → 2.64.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.
Files changed (46) hide show
  1. package/dist/browser/components/Card/Card.js +176 -8
  2. package/dist/browser/components/Card/Card.js.map +1 -1
  3. package/dist/browser/components/Card/CardActions.js +3 -2
  4. package/dist/browser/components/Card/CardActions.js.map +1 -1
  5. package/dist/browser/components/Card/CardContent.js +42 -6
  6. package/dist/browser/components/Card/CardContent.js.map +1 -1
  7. package/dist/browser/components/Card/CardHeader.js +92 -9
  8. package/dist/browser/components/Card/CardHeader.js.map +1 -1
  9. package/dist/browser/components/Card/components/ArchivistParent.js +3 -2
  10. package/dist/browser/components/Card/components/ArchivistParent.js.map +1 -1
  11. package/dist/browser/components/Card/components/ArchivistParents.js +26 -12
  12. package/dist/browser/components/Card/components/ArchivistParents.js.map +1 -1
  13. package/dist/browser/components/Card/components/Stats/ArchivistStats.js +3 -2
  14. package/dist/browser/components/Card/components/Stats/ArchivistStats.js.map +1 -1
  15. package/dist/browser/components/Card/components/Stats/MemoryArchivistStats.js +21 -4
  16. package/dist/browser/components/Card/components/Stats/MemoryArchivistStats.js.map +1 -1
  17. package/dist/browser/components/Card/components/Stats/index.js +84 -2
  18. package/dist/browser/components/Card/components/Stats/index.js.map +1 -1
  19. package/dist/browser/components/Card/components/index.js +120 -3
  20. package/dist/browser/components/Card/components/index.js.map +1 -1
  21. package/dist/browser/components/Card/index.js +186 -3
  22. package/dist/browser/components/Card/index.js.map +1 -1
  23. package/dist/browser/components/Details/Details.js +23 -7
  24. package/dist/browser/components/Details/Details.js.map +1 -1
  25. package/dist/browser/components/Details/index.js +78 -1
  26. package/dist/browser/components/Details/index.js.map +1 -1
  27. package/dist/browser/components/index.js +263 -2
  28. package/dist/browser/components/index.js.map +1 -1
  29. package/dist/browser/hooks/index.js +75 -2
  30. package/dist/browser/hooks/index.js.map +1 -1
  31. package/dist/browser/hooks/node/index.js +40 -2
  32. package/dist/browser/hooks/node/index.js.map +1 -1
  33. package/dist/browser/hooks/node/useArchivistFromNode.js +2 -1
  34. package/dist/browser/hooks/node/useArchivistFromNode.js.map +1 -1
  35. package/dist/browser/hooks/node/useArchivistsFromNode.js +2 -1
  36. package/dist/browser/hooks/node/useArchivistsFromNode.js.map +1 -1
  37. package/dist/browser/hooks/queries/index.js +36 -2
  38. package/dist/browser/hooks/queries/index.js.map +1 -1
  39. package/dist/browser/hooks/queries/useArchivistAll.js +2 -1
  40. package/dist/browser/hooks/queries/useArchivistAll.js.map +1 -1
  41. package/dist/browser/hooks/queries/useArchivistGet.js +2 -1
  42. package/dist/browser/hooks/queries/useArchivistGet.js.map +1 -1
  43. package/dist/browser/index.js +323 -2
  44. package/dist/browser/index.js.map +1 -1
  45. package/dist/docs.json +16 -16
  46. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Details/Details.tsx"],"sourcesContent":["import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit)\n\nconst testQueryClear = { schema: ArchivistClearQuerySchema }\nconst testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear)\n\nexport interface ArchivistDetails extends FlexBoxProps {\n address?: string\n}\n\nexport const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props }) => {\n const [archivist] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await testQueryCommitBoundWitnessBuilder.build()\n const [clearBW] = await testQueryClearBoundWitnessBuilder.build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n"],"mappings":"AAsDM,cACA,YADA;AAtDN,SAAS,aAAa,kBAAkB;AACxC,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAuB,eAAe;AACtC,SAAS,2BAA2B,kCAAkC;AACtE,SAAS,gCAAgC;AAEzC,SAAS,gBAAgB;AAEzB,SAAS,4BAA4B;AAErC,MAAM,kBAAkB,EAAE,QAAQ,2BAA2B;AAC7D,MAAM,qCAAqC,IAAI,yBAAyB,EAAE,gBAAgB,KAAK,CAAC,EAAE,MAAM,eAAe;AAEvH,MAAM,iBAAiB,EAAE,QAAQ,0BAA0B;AAC3D,MAAM,oCAAoC,IAAI,yBAAyB,EAAE,gBAAgB,KAAK,CAAC,EAAE,MAAM,cAAc;AAM9G,MAAM,mBAA+C,CAAC,EAAE,SAAS,GAAG,MAAM,MAAM;AACrF,QAAM,CAAC,SAAS,IAAI,qBAAqB,OAAO;AAChD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAoB;AACpD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,CAAC;AACxC,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,KAAK;AAC5D,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAE1D;AAAA;AAAA,IAEE,YAAY;AACV,UAAI,WAAW;AACb,cAAM,CAAC,QAAQ,IAAI,MAAM,mCAAmC,MAAM;AAClE,cAAM,CAAC,OAAO,IAAI,MAAM,kCAAkC,MAAM;AAChE,2BAAmB,MAAM,WAAW,UAAU,UAAU,CAAC,eAAe,CAAC,CAAC;AAC1E,0BAAkB,MAAM,WAAW,UAAU,SAAS,CAAC,cAAc,CAAC,CAAC;AAAA,MACzE;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA;AAAA;AAAA,IAEE,OAAO,YAAY;AACjB,YAAMA,YAAW,MAAM,WAAW,MAAM;AACxC,UAAI,QAAQ,GAAG;AACb,oBAAYA,SAAQ;AAAA,MACtB;AAAA,IACF;AAAA,IACA,CAAC,WAAW,OAAO;AAAA,EACrB;AAEA,SACE,qBAAC,WAAS,GAAG,OACX;AAAA,wBAAC,cAAY,uBAAa,WAAW,SAAS,SAAS,GAAG,IAAG;AAAA,IAC7D,qBAAC,eACC;AAAA,0BAAC,YAAS,UAAU,UAAU,WAAW,KAAK,CAAC,aAAa,CAAC,iBAAiB,SAAS,MAAM,WAAW,SAAS,GAAG,oBAEpH;AAAA,MACA,oBAAC,YAAS,UAAU,CAAC,aAAa,CAAC,gBAAgB,SAAS,MAAM,WAAW,QAAQ,GAAG,mBAExF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAU,CAAC;AAAA,UACX,SAAS,MAAM;AACb,uBAAW,UAAU,CAAC;AAAA,UACxB;AAAA,UACD;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;","names":["payloads"]}
1
+ {"version":3,"sources":["../../../../src/components/Details/Details.tsx","../../../../src/hooks/node/useArchivistFromNode.tsx"],"sourcesContent":["import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit)\n\nconst testQueryClear = { schema: ArchivistClearQuerySchema }\nconst testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear)\n\nexport interface ArchivistDetails extends FlexBoxProps {\n address?: string\n}\n\nexport const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props }) => {\n const [archivist] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await testQueryCommitBoundWitnessBuilder.build()\n const [clearBW] = await testQueryClearBoundWitnessBuilder.build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n"],"mappings":";AAAA,SAAS,aAAa,kBAAkB;AACxC,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAuB,eAAe;AACtC,SAAS,2BAA2B,kCAAkC;AACtE,SAAS,gCAAgC;AAEzC,SAAS,gBAAgB;;;ACPzB,SAA4B,2BAA2B;AACvD,SAA+B,yBAAyB;AAEjD,IAAM,uBAAuB,CAClC,yBACA,WACuD;AACvD,QAAM,CAAC,QAAQ,KAAK,IAAI,kBAAkB,yBAAyB,MAAM;AACzE,QAAM,WAAW,oBAAoB,MAAM;AAC3C,MAAI,UAAU,CAAC,UAAU;AACvB,UAAMA,SAAQ,MAAM,+CAA+C,OAAO,QAAQ,MAAM,IAAI,OAAO,QAAQ,IAAI,IAAI,OAAO,OAAO,GAAG;AACpI,YAAQ,MAAMA,OAAM,OAAO;AAC3B,WAAO,CAAC,QAAWA,MAAK;AAAA,EAC1B;AACA,SAAO,CAAC,UAAU,KAAK;AACzB;;;ADuCM,cACA,YADA;AA3CN,IAAM,kBAAkB,EAAE,QAAQ,2BAA2B;AAC7D,IAAM,qCAAqC,IAAI,yBAAyB,EAAE,gBAAgB,KAAK,CAAC,EAAE,MAAM,eAAe;AAEvH,IAAM,iBAAiB,EAAE,QAAQ,0BAA0B;AAC3D,IAAM,oCAAoC,IAAI,yBAAyB,EAAE,gBAAgB,KAAK,CAAC,EAAE,MAAM,cAAc;AAM9G,IAAM,mBAA+C,CAAC,EAAE,SAAS,GAAG,MAAM,MAAM;AACrF,QAAM,CAAC,SAAS,IAAI,qBAAqB,OAAO;AAChD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAoB;AACpD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,CAAC;AACxC,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,KAAK;AAC5D,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAE1D;AAAA;AAAA,IAEE,YAAY;AACV,UAAI,WAAW;AACb,cAAM,CAAC,QAAQ,IAAI,MAAM,mCAAmC,MAAM;AAClE,cAAM,CAAC,OAAO,IAAI,MAAM,kCAAkC,MAAM;AAChE,2BAAmB,MAAM,WAAW,UAAU,UAAU,CAAC,eAAe,CAAC,CAAC;AAC1E,0BAAkB,MAAM,WAAW,UAAU,SAAS,CAAC,cAAc,CAAC,CAAC;AAAA,MACzE;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA;AAAA;AAAA,IAEE,OAAO,YAAY;AACjB,YAAMC,YAAW,MAAM,WAAW,MAAM;AACxC,UAAI,QAAQ,GAAG;AACb,oBAAYA,SAAQ;AAAA,MACtB;AAAA,IACF;AAAA,IACA,CAAC,WAAW,OAAO;AAAA,EACrB;AAEA,SACE,qBAAC,WAAS,GAAG,OACX;AAAA,wBAAC,cAAY,uBAAa,WAAW,SAAS,SAAS,GAAG,IAAG;AAAA,IAC7D,qBAAC,eACC;AAAA,0BAAC,YAAS,UAAU,UAAU,WAAW,KAAK,CAAC,aAAa,CAAC,iBAAiB,SAAS,MAAM,WAAW,SAAS,GAAG,oBAEpH;AAAA,MACA,oBAAC,YAAS,UAAU,CAAC,aAAa,CAAC,gBAAgB,SAAS,MAAM,WAAW,QAAQ,GAAG,mBAExF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAU,CAAC;AAAA,UACX,SAAS,MAAM;AACb,uBAAW,UAAU,CAAC;AAAA,UACxB;AAAA,UACD;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;","names":["error","payloads"]}
@@ -1,2 +1,79 @@
1
- export * from "./Details";
1
+ // src/components/Details/Details.tsx
2
+ import { ButtonGroup, Typography } from "@mui/material";
3
+ import { useAsyncEffect } from "@xylabs/react-async-effect";
4
+ import { ButtonEx } from "@xylabs/react-button";
5
+ import { FlexCol } from "@xylabs/react-flexbox";
6
+ import { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from "@xyo-network/archivist";
7
+ import { QueryBoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
8
+ import { useState } from "react";
9
+
10
+ // src/hooks/node/useArchivistFromNode.tsx
11
+ import { asArchivistInstance } from "@xyo-network/archivist-model";
12
+ import { useModuleFromNode } from "@xyo-network/react-node";
13
+ var useArchivistFromNode = (nameOrAddressOrInstance, config) => {
14
+ const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config);
15
+ const instance = asArchivistInstance(module);
16
+ if (module && !instance) {
17
+ const error2 = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`);
18
+ console.error(error2.message);
19
+ return [void 0, error2];
20
+ }
21
+ return [instance, error];
22
+ };
23
+
24
+ // src/components/Details/Details.tsx
25
+ import { jsx, jsxs } from "react/jsx-runtime";
26
+ var testQueryCommit = { schema: ArchivistCommitQuerySchema };
27
+ var testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit);
28
+ var testQueryClear = { schema: ArchivistClearQuerySchema };
29
+ var testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear);
30
+ var ArchivistDetails = ({ address, ...props }) => {
31
+ const [archivist] = useArchivistFromNode(address);
32
+ const [payloads, setPayloads] = useState();
33
+ const [refresh, setRefresh] = useState(0);
34
+ const [queryableCommit, setQueryableCommit] = useState(false);
35
+ const [queryableClear, setQueryableClear] = useState(false);
36
+ useAsyncEffect(
37
+ // eslint-disable-next-line react-hooks/exhaustive-deps
38
+ async () => {
39
+ if (archivist) {
40
+ const [commitBW] = await testQueryCommitBoundWitnessBuilder.build();
41
+ const [clearBW] = await testQueryClearBoundWitnessBuilder.build();
42
+ setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]));
43
+ setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]));
44
+ }
45
+ },
46
+ [archivist]
47
+ );
48
+ useAsyncEffect(
49
+ // eslint-disable-next-line react-hooks/exhaustive-deps
50
+ async (mounted) => {
51
+ const payloads2 = await archivist?.all?.();
52
+ if (mounted()) {
53
+ setPayloads(payloads2);
54
+ }
55
+ },
56
+ [archivist, refresh]
57
+ );
58
+ return /* @__PURE__ */ jsxs(FlexCol, { ...props, children: [
59
+ /* @__PURE__ */ jsx(Typography, { children: `Payloads: ${payloads ? payloads.length : "-"}` }),
60
+ /* @__PURE__ */ jsxs(ButtonGroup, { children: [
61
+ /* @__PURE__ */ jsx(ButtonEx, { disabled: payloads?.length === 0 || !archivist || !queryableCommit, onClick: () => archivist?.commit?.(), children: "Commit" }),
62
+ /* @__PURE__ */ jsx(ButtonEx, { disabled: !archivist || !queryableClear, onClick: () => archivist?.clear?.(), children: "Clear" }),
63
+ /* @__PURE__ */ jsx(
64
+ ButtonEx,
65
+ {
66
+ disabled: !archivist,
67
+ onClick: () => {
68
+ setRefresh(refresh + 1);
69
+ },
70
+ children: "Refresh"
71
+ }
72
+ )
73
+ ] })
74
+ ] });
75
+ };
76
+ export {
77
+ ArchivistDetails
78
+ };
2
79
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Details/index.ts"],"sourcesContent":["export * from './Details'\n"],"mappings":"AAAA,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/Details/Details.tsx","../../../../src/hooks/node/useArchivistFromNode.tsx"],"sourcesContent":["import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit)\n\nconst testQueryClear = { schema: ArchivistClearQuerySchema }\nconst testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear)\n\nexport interface ArchivistDetails extends FlexBoxProps {\n address?: string\n}\n\nexport const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props }) => {\n const [archivist] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await testQueryCommitBoundWitnessBuilder.build()\n const [clearBW] = await testQueryClearBoundWitnessBuilder.build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n"],"mappings":";AAAA,SAAS,aAAa,kBAAkB;AACxC,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAuB,eAAe;AACtC,SAAS,2BAA2B,kCAAkC;AACtE,SAAS,gCAAgC;AAEzC,SAAS,gBAAgB;;;ACPzB,SAA4B,2BAA2B;AACvD,SAA+B,yBAAyB;AAEjD,IAAM,uBAAuB,CAClC,yBACA,WACuD;AACvD,QAAM,CAAC,QAAQ,KAAK,IAAI,kBAAkB,yBAAyB,MAAM;AACzE,QAAM,WAAW,oBAAoB,MAAM;AAC3C,MAAI,UAAU,CAAC,UAAU;AACvB,UAAMA,SAAQ,MAAM,+CAA+C,OAAO,QAAQ,MAAM,IAAI,OAAO,QAAQ,IAAI,IAAI,OAAO,OAAO,GAAG;AACpI,YAAQ,MAAMA,OAAM,OAAO;AAC3B,WAAO,CAAC,QAAWA,MAAK;AAAA,EAC1B;AACA,SAAO,CAAC,UAAU,KAAK;AACzB;;;ADuCM,cACA,YADA;AA3CN,IAAM,kBAAkB,EAAE,QAAQ,2BAA2B;AAC7D,IAAM,qCAAqC,IAAI,yBAAyB,EAAE,gBAAgB,KAAK,CAAC,EAAE,MAAM,eAAe;AAEvH,IAAM,iBAAiB,EAAE,QAAQ,0BAA0B;AAC3D,IAAM,oCAAoC,IAAI,yBAAyB,EAAE,gBAAgB,KAAK,CAAC,EAAE,MAAM,cAAc;AAM9G,IAAM,mBAA+C,CAAC,EAAE,SAAS,GAAG,MAAM,MAAM;AACrF,QAAM,CAAC,SAAS,IAAI,qBAAqB,OAAO;AAChD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAoB;AACpD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,CAAC;AACxC,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,KAAK;AAC5D,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAE1D;AAAA;AAAA,IAEE,YAAY;AACV,UAAI,WAAW;AACb,cAAM,CAAC,QAAQ,IAAI,MAAM,mCAAmC,MAAM;AAClE,cAAM,CAAC,OAAO,IAAI,MAAM,kCAAkC,MAAM;AAChE,2BAAmB,MAAM,WAAW,UAAU,UAAU,CAAC,eAAe,CAAC,CAAC;AAC1E,0BAAkB,MAAM,WAAW,UAAU,SAAS,CAAC,cAAc,CAAC,CAAC;AAAA,MACzE;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA;AAAA;AAAA,IAEE,OAAO,YAAY;AACjB,YAAMC,YAAW,MAAM,WAAW,MAAM;AACxC,UAAI,QAAQ,GAAG;AACb,oBAAYA,SAAQ;AAAA,MACtB;AAAA,IACF;AAAA,IACA,CAAC,WAAW,OAAO;AAAA,EACrB;AAEA,SACE,qBAAC,WAAS,GAAG,OACX;AAAA,wBAAC,cAAY,uBAAa,WAAW,SAAS,SAAS,GAAG,IAAG;AAAA,IAC7D,qBAAC,eACC;AAAA,0BAAC,YAAS,UAAU,UAAU,WAAW,KAAK,CAAC,aAAa,CAAC,iBAAiB,SAAS,MAAM,WAAW,SAAS,GAAG,oBAEpH;AAAA,MACA,oBAAC,YAAS,UAAU,CAAC,aAAa,CAAC,gBAAgB,SAAS,MAAM,WAAW,QAAQ,GAAG,mBAExF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAU,CAAC;AAAA,UACX,SAAS,MAAM;AACb,uBAAW,UAAU,CAAC;AAAA,UACxB;AAAA,UACD;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;","names":["error","payloads"]}
@@ -1,3 +1,264 @@
1
- export * from "./Card";
2
- export * from "./Details";
1
+ // src/components/Card/Card.tsx
2
+ import { Card } from "@mui/material";
3
+ import { ModuleCardActions } from "@xyo-network/react-module";
4
+
5
+ // src/components/Card/CardContent.tsx
6
+ import { useAsyncEffect as useAsyncEffect2 } from "@xylabs/react-async-effect";
7
+ import { FlexGrowRow } from "@xylabs/react-flexbox";
8
+ import { ModuleWrapper } from "@xyo-network/module";
9
+ import { ModuleCardContent } from "@xyo-network/react-module";
10
+ import { useWallet } from "@xyo-network/react-wallet";
11
+ import { useState as useState3 } from "react";
12
+
13
+ // src/components/Card/components/ArchivistParent.tsx
14
+ import { ListItem, Typography } from "@mui/material";
15
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
16
+ var ArchivistParent = ({ archivistType, parentArchivists }) => /* @__PURE__ */ jsx(Fragment, { children: parentArchivists?.map((address) => {
17
+ return /* @__PURE__ */ jsx(ListItem, { children: /* @__PURE__ */ jsxs(Typography, { variant: "subtitle2", children: [
18
+ archivistType,
19
+ ":",
20
+ " ",
21
+ /* @__PURE__ */ jsx(Typography, { variant: "caption", sx: { ml: 0.5 }, children: address })
22
+ ] }) }, address);
23
+ }) });
24
+
25
+ // src/components/Card/components/ArchivistParents.tsx
26
+ import { ArrowRightRounded as ArrowRightRoundedIcon } from "@mui/icons-material";
27
+ import { Collapse, IconButton, List, Paper, Typography as Typography2 } from "@mui/material";
28
+ import { FlexCol } from "@xylabs/react-flexbox";
29
+ import { useState } from "react";
30
+ import { Fragment as Fragment2, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
31
+ var ArchivistParents = ({ config, ...props }) => {
32
+ const [parentArchivistCollapse, setParentArchivistCollapse] = useState(false);
33
+ const { commit, read, write } = config?.parents ?? {};
34
+ return /* @__PURE__ */ jsx2(Fragment2, { children: commit || read || write ? /* @__PURE__ */ jsxs2(FlexCol, { alignItems: "start", ...props, children: [
35
+ /* @__PURE__ */ jsxs2("span", { onClick: () => setParentArchivistCollapse(!parentArchivistCollapse), children: [
36
+ /* @__PURE__ */ jsx2(Typography2, { variant: "subtitle2", sx: { cursor: "pointer", display: "inline-block" }, children: "Parents" }),
37
+ /* @__PURE__ */ jsx2(IconButton, { size: "small", children: /* @__PURE__ */ jsx2(ArrowRightRoundedIcon, { sx: { rotate: parentArchivistCollapse ? "90deg" : "0deg", transition: "all .25s" } }) })
38
+ ] }),
39
+ /* @__PURE__ */ jsx2(Collapse, { in: parentArchivistCollapse, children: /* @__PURE__ */ jsx2(Paper, { elevation: 2, children: /* @__PURE__ */ jsxs2(List, { children: [
40
+ /* @__PURE__ */ jsx2(ArchivistParent, { archivistType: "Commit", parentArchivists: commit }),
41
+ /* @__PURE__ */ jsx2(ArchivistParent, { archivistType: "Read", parentArchivists: read }),
42
+ /* @__PURE__ */ jsx2(ArchivistParent, { archivistType: "Write", parentArchivists: write })
43
+ ] }) }) })
44
+ ] }) : null });
45
+ };
46
+
47
+ // src/components/Card/components/Stats/ArchivistStats.tsx
48
+ import { Badge, Tooltip } from "@mui/material";
49
+ import { FlexRow } from "@xylabs/react-flexbox";
50
+ import { BsFileEarmarkCode } from "react-icons/bs/index.js";
51
+ import { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from "react-icons/vsc/index.js";
52
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
53
+ var ArchivistStats = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {
54
+ return /* @__PURE__ */ jsxs3(FlexRow, { gap: 2, mr: 0.5, children: [
55
+ payloads?.length ? /* @__PURE__ */ jsx3(Tooltip, { title: "Payloads", children: /* @__PURE__ */ jsx3(Badge, { badgeContent: payloads?.length, color: "primary", children: /* @__PURE__ */ jsx3(VscSymbolNamespace, { size: 20 }) }) }) : null,
56
+ boundWitnesses?.length ? /* @__PURE__ */ jsx3(Tooltip, { title: "Blocks", children: /* @__PURE__ */ jsx3(Badge, { badgeContent: boundWitnesses?.length, color: "primary", children: /* @__PURE__ */ jsx3(VscSymbolMethod, { size: 20 }) }) }) : null,
57
+ Object.entries(schemas).length ? /* @__PURE__ */ jsx3(Tooltip, { title: "Schemas", children: /* @__PURE__ */ jsx3(Badge, { badgeContent: Object.entries(schemas).length, color: "primary", children: /* @__PURE__ */ jsx3(BsFileEarmarkCode, { size: 20 }) }) }) : null,
58
+ Object.entries(addresses).length ? /* @__PURE__ */ jsx3(Tooltip, { title: "Addresses", children: /* @__PURE__ */ jsx3(Badge, { badgeContent: Object.entries(addresses).length, color: "primary", children: /* @__PURE__ */ jsx3(VscOrganization, { size: 20 }) }) }) : null
59
+ ] });
60
+ };
61
+
62
+ // src/components/Card/components/Stats/MemoryArchivistStats.tsx
63
+ import { useAsyncEffect } from "@xylabs/react-async-effect";
64
+ import { ArchivistAllQuerySchema } from "@xyo-network/archivist";
65
+ import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
66
+ import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
67
+ import { useCallback, useEffect, useMemo, useState as useState2 } from "react";
68
+ import { jsx as jsx4 } from "react/jsx-runtime";
69
+ var MemoryArchivistsStats = ({ archivist }) => {
70
+ const [all, setAll] = useState2();
71
+ const getAll = useCallback(async (archivist2) => {
72
+ const all2 = await archivist2?.all?.();
73
+ setAll(all2);
74
+ }, []);
75
+ useEffect(() => {
76
+ const listeners = [];
77
+ if (archivist?.queries.includes(ArchivistAllQuerySchema)) {
78
+ const insertListener = archivist.on("inserted", async () => {
79
+ await getAll(archivist);
80
+ });
81
+ listeners.push(insertListener);
82
+ const clearListener = archivist.on("cleared", async () => {
83
+ await getAll(archivist);
84
+ });
85
+ listeners.push(clearListener);
86
+ }
87
+ return () => listeners.forEach((listener) => listener?.());
88
+ }, [archivist, getAll]);
89
+ useAsyncEffect(
90
+ // eslint-disable-next-line react-hooks/exhaustive-deps
91
+ async () => {
92
+ if (archivist?.queries.includes(ArchivistAllQuerySchema)) {
93
+ await getAll(archivist);
94
+ } else {
95
+ setAll(null);
96
+ }
97
+ },
98
+ [archivist, getAll]
99
+ );
100
+ const payloads = useMemo(() => all === null ? [] : all?.filter((payload) => payload.schema !== BoundWitnessSchema), [all]);
101
+ const boundWitnesses = useMemo(() => all === null ? [] : all?.filter((payload) => payload.schema === BoundWitnessSchema), [all]);
102
+ const addresses = useMemo(
103
+ () => all?.reduce(
104
+ (prev, payload) => {
105
+ const w = BoundWitnessWrapper.tryParse(payload);
106
+ w?.addresses?.forEach((address) => {
107
+ prev[address] = (prev[address] ?? 0) + 1;
108
+ });
109
+ return prev;
110
+ },
111
+ {}
112
+ ) ?? {},
113
+ [all]
114
+ );
115
+ const schemas = useMemo(
116
+ () => all?.reduce(
117
+ (prev, payload) => {
118
+ prev[payload.schema] = (prev[payload.schema] ?? 0) + 1;
119
+ return prev;
120
+ },
121
+ {}
122
+ ) ?? {},
123
+ [all]
124
+ );
125
+ return /* @__PURE__ */ jsx4(ArchivistStats, { addresses, boundWitnesses, payloads, schemas });
126
+ };
127
+
128
+ // src/components/Card/CardContent.tsx
129
+ import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
130
+ var ArchivistCardContent = ({ children, module, ...props }) => {
131
+ const [config, setConfig] = useState3();
132
+ const [wallet] = useWallet();
133
+ useAsyncEffect2(
134
+ // eslint-disable-next-line react-hooks/exhaustive-deps
135
+ async (mounted) => {
136
+ if (wallet && module) {
137
+ const wrapper = ModuleWrapper.wrap(module, wallet);
138
+ const payloads = await wrapper?.discover();
139
+ if (mounted()) {
140
+ setConfig(payloads?.[0]);
141
+ }
142
+ } else {
143
+ setConfig(void 0);
144
+ }
145
+ },
146
+ [module, wallet]
147
+ );
148
+ return /* @__PURE__ */ jsx5(ModuleCardContent, { module, ...props, children: /* @__PURE__ */ jsxs4(FlexGrowRow, { flexWrap: "wrap", justifyContent: "start", gap: 2, children: [
149
+ children,
150
+ /* @__PURE__ */ jsx5(ArchivistParents, { config })
151
+ ] }) });
152
+ };
153
+
154
+ // src/components/Card/CardHeader.tsx
155
+ import { MemoryArchivistConfigSchema } from "@xyo-network/archivist";
156
+ import { ModuleCardHeader } from "@xyo-network/react-module";
157
+ import { useMemo as useMemo2 } from "react";
158
+ import { Fragment as Fragment3, jsx as jsx6 } from "react/jsx-runtime";
159
+ var ArchivistStats2 = (archivist) => {
160
+ switch (archivist?.config.schema) {
161
+ case MemoryArchivistConfigSchema:
162
+ return /* @__PURE__ */ jsx6(MemoryArchivistsStats, { archivist });
163
+ default:
164
+ return /* @__PURE__ */ jsx6(Fragment3, {});
165
+ }
166
+ };
167
+ var ArchivistCardHeader = ({ title, module, ...props }) => {
168
+ const Stats = useMemo2(() => ArchivistStats2(module), [module]);
169
+ return /* @__PURE__ */ jsx6(ModuleCardHeader, { module, title: title ?? module?.config.name ?? "Archivist", action: Stats, ...props });
170
+ };
171
+
172
+ // src/components/Card/Card.tsx
173
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
174
+ var ArchivistCard = ({ children, module, ...props }) => {
175
+ return /* @__PURE__ */ jsxs5(Card, { ...props, children: [
176
+ /* @__PURE__ */ jsx7(ArchivistCardHeader, { module }),
177
+ /* @__PURE__ */ jsx7(ArchivistCardContent, { module }),
178
+ children,
179
+ /* @__PURE__ */ jsx7(ModuleCardActions, { module })
180
+ ] });
181
+ };
182
+
183
+ // src/components/Details/Details.tsx
184
+ import { ButtonGroup, Typography as Typography3 } from "@mui/material";
185
+ import { useAsyncEffect as useAsyncEffect3 } from "@xylabs/react-async-effect";
186
+ import { ButtonEx } from "@xylabs/react-button";
187
+ import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
188
+ import { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from "@xyo-network/archivist";
189
+ import { QueryBoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
190
+ import { useState as useState4 } from "react";
191
+
192
+ // src/hooks/node/useArchivistFromNode.tsx
193
+ import { asArchivistInstance } from "@xyo-network/archivist-model";
194
+ import { useModuleFromNode } from "@xyo-network/react-node";
195
+ var useArchivistFromNode = (nameOrAddressOrInstance, config) => {
196
+ const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config);
197
+ const instance = asArchivistInstance(module);
198
+ if (module && !instance) {
199
+ const error2 = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`);
200
+ console.error(error2.message);
201
+ return [void 0, error2];
202
+ }
203
+ return [instance, error];
204
+ };
205
+
206
+ // src/components/Details/Details.tsx
207
+ import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
208
+ var testQueryCommit = { schema: ArchivistCommitQuerySchema };
209
+ var testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit);
210
+ var testQueryClear = { schema: ArchivistClearQuerySchema };
211
+ var testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear);
212
+ var ArchivistDetails = ({ address, ...props }) => {
213
+ const [archivist] = useArchivistFromNode(address);
214
+ const [payloads, setPayloads] = useState4();
215
+ const [refresh, setRefresh] = useState4(0);
216
+ const [queryableCommit, setQueryableCommit] = useState4(false);
217
+ const [queryableClear, setQueryableClear] = useState4(false);
218
+ useAsyncEffect3(
219
+ // eslint-disable-next-line react-hooks/exhaustive-deps
220
+ async () => {
221
+ if (archivist) {
222
+ const [commitBW] = await testQueryCommitBoundWitnessBuilder.build();
223
+ const [clearBW] = await testQueryClearBoundWitnessBuilder.build();
224
+ setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]));
225
+ setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]));
226
+ }
227
+ },
228
+ [archivist]
229
+ );
230
+ useAsyncEffect3(
231
+ // eslint-disable-next-line react-hooks/exhaustive-deps
232
+ async (mounted) => {
233
+ const payloads2 = await archivist?.all?.();
234
+ if (mounted()) {
235
+ setPayloads(payloads2);
236
+ }
237
+ },
238
+ [archivist, refresh]
239
+ );
240
+ return /* @__PURE__ */ jsxs6(FlexCol2, { ...props, children: [
241
+ /* @__PURE__ */ jsx8(Typography3, { children: `Payloads: ${payloads ? payloads.length : "-"}` }),
242
+ /* @__PURE__ */ jsxs6(ButtonGroup, { children: [
243
+ /* @__PURE__ */ jsx8(ButtonEx, { disabled: payloads?.length === 0 || !archivist || !queryableCommit, onClick: () => archivist?.commit?.(), children: "Commit" }),
244
+ /* @__PURE__ */ jsx8(ButtonEx, { disabled: !archivist || !queryableClear, onClick: () => archivist?.clear?.(), children: "Clear" }),
245
+ /* @__PURE__ */ jsx8(
246
+ ButtonEx,
247
+ {
248
+ disabled: !archivist,
249
+ onClick: () => {
250
+ setRefresh(refresh + 1);
251
+ },
252
+ children: "Refresh"
253
+ }
254
+ )
255
+ ] })
256
+ ] });
257
+ };
258
+ export {
259
+ ArchivistCard,
260
+ ArchivistCardContent,
261
+ ArchivistCardHeader,
262
+ ArchivistDetails
263
+ };
3
264
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export * from './Card'\nexport * from './Details'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/Card/Card.tsx","../../../src/components/Card/CardContent.tsx","../../../src/components/Card/components/ArchivistParent.tsx","../../../src/components/Card/components/ArchivistParents.tsx","../../../src/components/Card/components/Stats/ArchivistStats.tsx","../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx","../../../src/components/Card/CardHeader.tsx","../../../src/components/Details/Details.tsx","../../../src/hooks/node/useArchivistFromNode.tsx"],"sourcesContent":["import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\n\nimport { ArchivistCardContent } from './CardContent'\nimport { ArchivistCardHeader } from './CardHeader'\n\nexport const ArchivistCard: React.FC<CardProps & ModuleRenderProps<ArchivistInstance>> = ({ children, module, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader module={module} />\n <ArchivistCardContent module={module} />\n {children}\n <ModuleCardActions module={module} />\n </Card>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { ArchivistConfig, ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleWrapper } from '@xyo-network/module'\nimport { ModuleCardContent, ModuleRenderProps } from '@xyo-network/react-module'\nimport { useWallet } from '@xyo-network/react-wallet'\nimport React, { useState } from 'react'\n\nimport { ArchivistParents } from './components'\n\nexport const ArchivistCardContent: React.FC<ModuleRenderProps<ArchivistInstance> & CardContentProps> = ({ children, module, ...props }) => {\n const [config, setConfig] = useState<ArchivistConfig>()\n const [wallet] = useWallet()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (wallet && module) {\n const wrapper = ModuleWrapper.wrap(module, wallet)\n const payloads = await wrapper?.discover()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [module, wallet],\n )\n\n return (\n <ModuleCardContent module={module} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {children}\n <ArchivistParents config={config} />\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { ListItem, Typography } from '@mui/material'\n\nexport interface ArchivistTypeProps {\n archivistType?: 'Commit' | 'Read' | 'Write'\n parentArchivists?: string[]\n}\n\nexport const ArchivistParent: React.FC<ArchivistTypeProps> = ({ archivistType, parentArchivists }) => (\n <>\n {parentArchivists?.map((address) => {\n return (\n <ListItem key={address}>\n <Typography variant=\"subtitle2\">\n {archivistType}:{' '}\n <Typography variant={'caption'} sx={{ ml: 0.5 }}>\n {address}\n </Typography>\n </Typography>\n </ListItem>\n )\n })}\n </>\n)\n","import { ArrowRightRounded as ArrowRightRoundedIcon } from '@mui/icons-material'\nimport { Collapse, IconButton, List, Paper, Typography } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistConfig } from '@xyo-network/archivist'\nimport { useState } from 'react'\n\nimport { ArchivistParent } from './ArchivistParent'\n\nexport interface ArchivistParentsProps extends FlexBoxProps {\n config?: ArchivistConfig\n}\n\nexport const ArchivistParents: React.FC<ArchivistParentsProps> = ({ config, ...props }) => {\n const [parentArchivistCollapse, setParentArchivistCollapse] = useState(false)\n\n const { commit, read, write } = config?.parents ?? {}\n\n return (\n <>\n {commit || read || write ? (\n <FlexCol alignItems=\"start\" {...props}>\n <span onClick={() => setParentArchivistCollapse(!parentArchivistCollapse)}>\n <Typography variant=\"subtitle2\" sx={{ cursor: 'pointer', display: 'inline-block' }}>\n Parents\n </Typography>\n <IconButton size=\"small\">\n <ArrowRightRoundedIcon sx={{ rotate: parentArchivistCollapse ? '90deg' : '0deg', transition: 'all .25s' }} />\n </IconButton>\n </span>\n <Collapse in={parentArchivistCollapse}>\n <Paper elevation={2}>\n <List>\n <ArchivistParent archivistType=\"Commit\" parentArchivists={commit} />\n <ArchivistParent archivistType=\"Read\" parentArchivists={read} />\n <ArchivistParent archivistType=\"Write\" parentArchivists={write} />\n </List>\n </Paper>\n </Collapse>\n </FlexCol>\n ) : null}\n </>\n )\n}\n","import { Badge, Tooltip } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\n// eslint-disable-next-line import/no-internal-modules\nimport { BsFileEarmarkCode } from 'react-icons/bs/index.js'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc/index.js'\n\nexport interface ArchivistStatsProps {\n addresses?: Record<string, number>\n boundWitnesses?: Payload[] | null\n payloads?: Payload[] | null\n schemas?: Record<string, number>\n}\n\nexport const ArchivistStats: React.FC<ArchivistStatsProps> = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {\n return (\n <FlexRow gap={2} mr={0.5}>\n {payloads?.length ? (\n <Tooltip title=\"Payloads\">\n <Badge badgeContent={payloads?.length} color=\"primary\">\n <VscSymbolNamespace size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {boundWitnesses?.length ? (\n <Tooltip title=\"Blocks\">\n <Badge badgeContent={boundWitnesses?.length} color=\"primary\">\n <VscSymbolMethod size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {Object.entries(schemas).length ? (\n <Tooltip title=\"Schemas\">\n <Badge badgeContent={Object.entries(schemas).length} color=\"primary\">\n <BsFileEarmarkCode size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {Object.entries(addresses).length ? (\n <Tooltip title=\"Addresses\">\n <Badge badgeContent={Object.entries(addresses).length} color=\"primary\">\n <VscOrganization size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n </FlexRow>\n )\n}\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ArchivistAllQuerySchema, ArchivistInstance } from '@xyo-network/archivist'\nimport { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { EventUnsubscribeFunction } from '@xyo-network/module'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { ArchivistStats } from './ArchivistStats'\n\nexport interface MemoryArchivistStatsProps {\n archivist?: ArchivistInstance\n}\n\nexport const MemoryArchivistsStats: React.FC<MemoryArchivistStatsProps> = ({ archivist }) => {\n const [all, setAll] = useState<Payload[] | null>()\n\n const getAll = useCallback(async (archivist?: ArchivistInstance) => {\n const all = await archivist?.all?.()\n setAll(all)\n }, [])\n\n useEffect(() => {\n const listeners: EventUnsubscribeFunction[] = []\n\n if (archivist?.queries.includes(ArchivistAllQuerySchema)) {\n const insertListener = archivist.on('inserted', async () => {\n await getAll(archivist)\n })\n listeners.push(insertListener)\n\n const clearListener = archivist.on('cleared', async () => {\n await getAll(archivist)\n })\n listeners.push(clearListener)\n }\n\n return () => listeners.forEach((listener) => listener?.())\n }, [archivist, getAll])\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist?.queries.includes(ArchivistAllQuerySchema)) {\n await getAll(archivist)\n } else {\n setAll(null)\n }\n },\n [archivist, getAll],\n )\n\n const payloads = useMemo(() => (all === null ? [] : all?.filter((payload) => payload.schema !== BoundWitnessSchema)), [all])\n const boundWitnesses = useMemo(() => (all === null ? [] : all?.filter((payload) => payload.schema === BoundWitnessSchema)), [all])\n const addresses = useMemo(\n () =>\n all?.reduce(\n (prev, payload) => {\n const w = BoundWitnessWrapper.tryParse(payload) as BoundWitnessWrapper | undefined\n w?.addresses?.forEach((address) => {\n prev[address] = (prev[address] ?? 0) + 1\n })\n return prev\n },\n {} as Record<string, number>,\n ) ?? {},\n [all],\n )\n const schemas = useMemo(\n () =>\n all?.reduce(\n (prev, payload) => {\n prev[payload.schema] = (prev[payload.schema] ?? 0) + 1\n return prev\n },\n {} as Record<string, number>,\n ) ?? {},\n [all],\n )\n\n return <ArchivistStats addresses={addresses} boundWitnesses={boundWitnesses} payloads={payloads} schemas={schemas} />\n}\n","import { CardHeaderProps } from '@mui/material'\nimport { ArchivistInstance, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { useMemo } from 'react'\n\nimport { MemoryArchivistsStats } from './components'\n\nconst ArchivistStats = (archivist?: ArchivistInstance) => {\n switch (archivist?.config.schema) {\n case MemoryArchivistConfigSchema:\n return <MemoryArchivistsStats archivist={archivist} />\n default:\n return <></>\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, module, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(module), [module])\n return <ModuleCardHeader module={module} title={title ?? module?.config.name ?? 'Archivist'} action={Stats} {...props} />\n}\n","import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit)\n\nconst testQueryClear = { schema: ArchivistClearQuerySchema }\nconst testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear)\n\nexport interface ArchivistDetails extends FlexBoxProps {\n address?: string\n}\n\nexport const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props }) => {\n const [archivist] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await testQueryCommitBoundWitnessBuilder.build()\n const [clearBW] = await testQueryClearBoundWitnessBuilder.build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n"],"mappings":"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","names":["useAsyncEffect","useState","Typography","Fragment","jsx","jsxs","Typography","jsx","jsxs","useState","jsx","useState","archivist","all","jsx","jsxs","useState","useAsyncEffect","useMemo","Fragment","jsx","ArchivistStats","useMemo","jsx","jsxs","Typography","useAsyncEffect","FlexCol","useState","error","jsx","jsxs","useState","useAsyncEffect","payloads","FlexCol","Typography"]}
@@ -1,3 +1,76 @@
1
- export * from "./node";
2
- export * from "./queries";
1
+ // src/hooks/node/useArchivistFromNode.tsx
2
+ import { asArchivistInstance } from "@xyo-network/archivist-model";
3
+ import { useModuleFromNode } from "@xyo-network/react-node";
4
+ var useArchivistFromNode = (nameOrAddressOrInstance, config) => {
5
+ const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config);
6
+ const instance = asArchivistInstance(module);
7
+ if (module && !instance) {
8
+ const error2 = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`);
9
+ console.error(error2.message);
10
+ return [void 0, error2];
11
+ }
12
+ return [instance, error];
13
+ };
14
+
15
+ // src/hooks/node/useArchivistsFromNode.tsx
16
+ import { isArchivistInstance } from "@xyo-network/archivist";
17
+ import { useModulesFromNode } from "@xyo-network/react-node";
18
+ var useArchivistsFromNode = (filter, config) => {
19
+ const [modules, error] = useModulesFromNode(filter, config);
20
+ if (error) {
21
+ return [null, error];
22
+ }
23
+ if (modules) {
24
+ return [
25
+ modules.reduce((prev, module) => {
26
+ if (isArchivistInstance(module)) {
27
+ prev.push(module);
28
+ }
29
+ return prev;
30
+ }, []),
31
+ void 0
32
+ ];
33
+ } else {
34
+ return [modules, error];
35
+ }
36
+ };
37
+
38
+ // src/hooks/queries/useArchivistAll.tsx
39
+ import { usePromise } from "@xylabs/react-promise";
40
+ import { useRefresh } from "@xyo-network/react-module";
41
+ import { useState } from "react";
42
+ var useArchivistAll = (archivist) => {
43
+ const [error, setError] = useState();
44
+ const [enabled, refresh] = useRefresh();
45
+ const payloads = usePromise(async () => {
46
+ try {
47
+ if (enabled) {
48
+ return await archivist?.all?.();
49
+ }
50
+ } catch (ex) {
51
+ const error2 = ex;
52
+ setError(error2);
53
+ }
54
+ }, [archivist, enabled]);
55
+ return [payloads, error, refresh];
56
+ };
57
+
58
+ // src/hooks/queries/useArchivistGet.tsx
59
+ import { usePromise as usePromise2 } from "@xylabs/react-promise";
60
+ import { useRefresh as useRefresh2 } from "@xyo-network/react-module";
61
+ var useArchivistGet = (archivist, hashes) => {
62
+ const [enabled, refresh] = useRefresh2();
63
+ const [payloads, error] = usePromise2(async () => {
64
+ if (enabled && archivist && hashes) {
65
+ return await archivist.get(hashes);
66
+ }
67
+ }, [archivist, hashes, enabled]);
68
+ return [payloads, error, refresh];
69
+ };
70
+ export {
71
+ useArchivistAll,
72
+ useArchivistFromNode,
73
+ useArchivistGet,
74
+ useArchivistsFromNode
75
+ };
3
76
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/index.ts"],"sourcesContent":["export * from './node'\nexport * from './queries'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/hooks/node/useArchivistFromNode.tsx","../../../src/hooks/node/useArchivistsFromNode.tsx","../../../src/hooks/queries/useArchivistAll.tsx","../../../src/hooks/queries/useArchivistGet.tsx"],"sourcesContent":["import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${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 { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n if (modules) {\n return [\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n } else {\n return [modules, error]\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useArchivistAll = (archivist: ArchivistInstance) => {\n const [error, setError] = useState<Error>()\n const [enabled, refresh] = useRefresh()\n\n const payloads = usePromise(async () => {\n try {\n if (enabled) {\n return await archivist?.all?.()\n }\n } catch (ex) {\n const error = ex as Error\n setError(error)\n }\n }, [archivist, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { Payload } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useArchivistGet = <T extends Payload = Payload>(\n archivist?: ArchivistInstance | null,\n hashes?: string[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n if (enabled && archivist && hashes) {\n return (await archivist.get(hashes)) as T[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":";AAAA,SAA4B,2BAA2B;AACvD,SAA+B,yBAAyB;AAEjD,IAAM,uBAAuB,CAClC,yBACA,WACuD;AACvD,QAAM,CAAC,QAAQ,KAAK,IAAI,kBAAkB,yBAAyB,MAAM;AACzE,QAAM,WAAW,oBAAoB,MAAM;AAC3C,MAAI,UAAU,CAAC,UAAU;AACvB,UAAMA,SAAQ,MAAM,+CAA+C,OAAO,QAAQ,MAAM,IAAI,OAAO,QAAQ,IAAI,IAAI,OAAO,OAAO,GAAG;AACpI,YAAQ,MAAMA,OAAM,OAAO;AAC3B,WAAO,CAAC,QAAWA,MAAK;AAAA,EAC1B;AACA,SAAO,CAAC,UAAU,KAAK;AACzB;;;ACfA,SAA4B,2BAA2B;AAEvD,SAA+B,0BAA0B;AAElD,IAAM,wBAAwB,CACnC,QACA,WACgE;AAChE,QAAM,CAAC,SAAS,KAAK,IAAI,mBAAmB,QAAQ,MAAM;AAC1D,MAAI,OAAO;AACT,WAAO,CAAC,MAAM,KAAK;AAAA,EACrB;AACA,MAAI,SAAS;AACX,WAAO;AAAA,MACL,QAAQ,OAA4B,CAAC,MAAM,WAAW;AACpD,YAAI,oBAAoB,MAAM,GAAG;AAC/B,eAAK,KAAK,MAAM;AAAA,QAClB;AACA,eAAO;AAAA,MACT,GAAG,CAAC,CAAC;AAAA,MACL;AAAA,IACF;AAAA,EACF,OAAO;AACL,WAAO,CAAC,SAAS,KAAK;AAAA,EACxB;AACF;;;ACzBA,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AAElB,IAAM,kBAAkB,CAAC,cAAiC;AAC/D,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAgB;AAC1C,QAAM,CAAC,SAAS,OAAO,IAAI,WAAW;AAEtC,QAAM,WAAW,WAAW,YAAY;AACtC,QAAI;AACF,UAAI,SAAS;AACX,eAAO,MAAM,WAAW,MAAM;AAAA,MAChC;AAAA,IACF,SAAS,IAAI;AACX,YAAMC,SAAQ;AACd,eAASA,MAAK;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,WAAW,OAAO,CAAC;AAEvB,SAAO,CAAC,UAAU,OAAO,OAAO;AAClC;;;ACrBA,SAAS,cAAAC,mBAAkB;AAG3B,SAA0B,cAAAC,mBAAkB;AAErC,IAAM,kBAAkB,CAC7B,WACA,WAC0D;AAC1D,QAAM,CAAC,SAAS,OAAO,IAAIA,YAAW;AAEtC,QAAM,CAAC,UAAU,KAAK,IAAID,YAAW,YAAY;AAC/C,QAAI,WAAW,aAAa,QAAQ;AAClC,aAAQ,MAAM,UAAU,IAAI,MAAM;AAAA,IACpC;AAAA,EACF,GAAG,CAAC,WAAW,QAAQ,OAAO,CAAC;AAE/B,SAAO,CAAC,UAAU,OAAO,OAAO;AAClC;","names":["error","error","usePromise","useRefresh"]}
@@ -1,3 +1,41 @@
1
- export * from "./useArchivistFromNode";
2
- export * from "./useArchivistsFromNode";
1
+ // src/hooks/node/useArchivistFromNode.tsx
2
+ import { asArchivistInstance } from "@xyo-network/archivist-model";
3
+ import { useModuleFromNode } from "@xyo-network/react-node";
4
+ var useArchivistFromNode = (nameOrAddressOrInstance, config) => {
5
+ const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config);
6
+ const instance = asArchivistInstance(module);
7
+ if (module && !instance) {
8
+ const error2 = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`);
9
+ console.error(error2.message);
10
+ return [void 0, error2];
11
+ }
12
+ return [instance, error];
13
+ };
14
+
15
+ // src/hooks/node/useArchivistsFromNode.tsx
16
+ import { isArchivistInstance } from "@xyo-network/archivist";
17
+ import { useModulesFromNode } from "@xyo-network/react-node";
18
+ var useArchivistsFromNode = (filter, config) => {
19
+ const [modules, error] = useModulesFromNode(filter, config);
20
+ if (error) {
21
+ return [null, error];
22
+ }
23
+ if (modules) {
24
+ return [
25
+ modules.reduce((prev, module) => {
26
+ if (isArchivistInstance(module)) {
27
+ prev.push(module);
28
+ }
29
+ return prev;
30
+ }, []),
31
+ void 0
32
+ ];
33
+ } else {
34
+ return [modules, error];
35
+ }
36
+ };
37
+ export {
38
+ useArchivistFromNode,
39
+ useArchivistsFromNode
40
+ };
3
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/hooks/node/index.ts"],"sourcesContent":["export * from './useArchivistFromNode'\nexport * from './useArchivistsFromNode'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../../src/hooks/node/useArchivistFromNode.tsx","../../../../src/hooks/node/useArchivistsFromNode.tsx"],"sourcesContent":["import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${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 { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n if (modules) {\n return [\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n } else {\n return [modules, error]\n }\n}\n"],"mappings":";AAAA,SAA4B,2BAA2B;AACvD,SAA+B,yBAAyB;AAEjD,IAAM,uBAAuB,CAClC,yBACA,WACuD;AACvD,QAAM,CAAC,QAAQ,KAAK,IAAI,kBAAkB,yBAAyB,MAAM;AACzE,QAAM,WAAW,oBAAoB,MAAM;AAC3C,MAAI,UAAU,CAAC,UAAU;AACvB,UAAMA,SAAQ,MAAM,+CAA+C,OAAO,QAAQ,MAAM,IAAI,OAAO,QAAQ,IAAI,IAAI,OAAO,OAAO,GAAG;AACpI,YAAQ,MAAMA,OAAM,OAAO;AAC3B,WAAO,CAAC,QAAWA,MAAK;AAAA,EAC1B;AACA,SAAO,CAAC,UAAU,KAAK;AACzB;;;ACfA,SAA4B,2BAA2B;AAEvD,SAA+B,0BAA0B;AAElD,IAAM,wBAAwB,CACnC,QACA,WACgE;AAChE,QAAM,CAAC,SAAS,KAAK,IAAI,mBAAmB,QAAQ,MAAM;AAC1D,MAAI,OAAO;AACT,WAAO,CAAC,MAAM,KAAK;AAAA,EACrB;AACA,MAAI,SAAS;AACX,WAAO;AAAA,MACL,QAAQ,OAA4B,CAAC,MAAM,WAAW;AACpD,YAAI,oBAAoB,MAAM,GAAG;AAC/B,eAAK,KAAK,MAAM;AAAA,QAClB;AACA,eAAO;AAAA,MACT,GAAG,CAAC,CAAC;AAAA,MACL;AAAA,IACF;AAAA,EACF,OAAO;AACL,WAAO,CAAC,SAAS,KAAK;AAAA,EACxB;AACF;","names":["error"]}
@@ -1,6 +1,7 @@
1
+ // src/hooks/node/useArchivistFromNode.tsx
1
2
  import { asArchivistInstance } from "@xyo-network/archivist-model";
2
3
  import { useModuleFromNode } from "@xyo-network/react-node";
3
- const useArchivistFromNode = (nameOrAddressOrInstance, config) => {
4
+ var useArchivistFromNode = (nameOrAddressOrInstance, config) => {
4
5
  const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config);
5
6
  const instance = asArchivistInstance(module);
6
7
  if (module && !instance) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/hooks/node/useArchivistFromNode.tsx"],"sourcesContent":["import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n"],"mappings":"AAAA,SAA4B,2BAA2B;AACvD,SAA+B,yBAAyB;AAEjD,MAAM,uBAAuB,CAClC,yBACA,WACuD;AACvD,QAAM,CAAC,QAAQ,KAAK,IAAI,kBAAkB,yBAAyB,MAAM;AACzE,QAAM,WAAW,oBAAoB,MAAM;AAC3C,MAAI,UAAU,CAAC,UAAU;AACvB,UAAMA,SAAQ,MAAM,+CAA+C,OAAO,QAAQ,MAAM,IAAI,OAAO,QAAQ,IAAI,IAAI,OAAO,OAAO,GAAG;AACpI,YAAQ,MAAMA,OAAM,OAAO;AAC3B,WAAO,CAAC,QAAWA,MAAK;AAAA,EAC1B;AACA,SAAO,CAAC,UAAU,KAAK;AACzB;","names":["error"]}
1
+ {"version":3,"sources":["../../../../src/hooks/node/useArchivistFromNode.tsx"],"sourcesContent":["import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n"],"mappings":";AAAA,SAA4B,2BAA2B;AACvD,SAA+B,yBAAyB;AAEjD,IAAM,uBAAuB,CAClC,yBACA,WACuD;AACvD,QAAM,CAAC,QAAQ,KAAK,IAAI,kBAAkB,yBAAyB,MAAM;AACzE,QAAM,WAAW,oBAAoB,MAAM;AAC3C,MAAI,UAAU,CAAC,UAAU;AACvB,UAAMA,SAAQ,MAAM,+CAA+C,OAAO,QAAQ,MAAM,IAAI,OAAO,QAAQ,IAAI,IAAI,OAAO,OAAO,GAAG;AACpI,YAAQ,MAAMA,OAAM,OAAO;AAC3B,WAAO,CAAC,QAAWA,MAAK;AAAA,EAC1B;AACA,SAAO,CAAC,UAAU,KAAK;AACzB;","names":["error"]}
@@ -1,6 +1,7 @@
1
+ // src/hooks/node/useArchivistsFromNode.tsx
1
2
  import { isArchivistInstance } from "@xyo-network/archivist";
2
3
  import { useModulesFromNode } from "@xyo-network/react-node";
3
- const useArchivistsFromNode = (filter, config) => {
4
+ var useArchivistsFromNode = (filter, config) => {
4
5
  const [modules, error] = useModulesFromNode(filter, config);
5
6
  if (error) {
6
7
  return [null, error];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/hooks/node/useArchivistsFromNode.tsx"],"sourcesContent":["import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n if (modules) {\n return [\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n } else {\n return [modules, error]\n }\n}\n"],"mappings":"AAAA,SAA4B,2BAA2B;AAEvD,SAA+B,0BAA0B;AAElD,MAAM,wBAAwB,CACnC,QACA,WACgE;AAChE,QAAM,CAAC,SAAS,KAAK,IAAI,mBAAmB,QAAQ,MAAM;AAC1D,MAAI,OAAO;AACT,WAAO,CAAC,MAAM,KAAK;AAAA,EACrB;AACA,MAAI,SAAS;AACX,WAAO;AAAA,MACL,QAAQ,OAA4B,CAAC,MAAM,WAAW;AACpD,YAAI,oBAAoB,MAAM,GAAG;AAC/B,eAAK,KAAK,MAAM;AAAA,QAClB;AACA,eAAO;AAAA,MACT,GAAG,CAAC,CAAC;AAAA,MACL;AAAA,IACF;AAAA,EACF,OAAO;AACL,WAAO,CAAC,SAAS,KAAK;AAAA,EACxB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/hooks/node/useArchivistsFromNode.tsx"],"sourcesContent":["import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n if (modules) {\n return [\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n } else {\n return [modules, error]\n }\n}\n"],"mappings":";AAAA,SAA4B,2BAA2B;AAEvD,SAA+B,0BAA0B;AAElD,IAAM,wBAAwB,CACnC,QACA,WACgE;AAChE,QAAM,CAAC,SAAS,KAAK,IAAI,mBAAmB,QAAQ,MAAM;AAC1D,MAAI,OAAO;AACT,WAAO,CAAC,MAAM,KAAK;AAAA,EACrB;AACA,MAAI,SAAS;AACX,WAAO;AAAA,MACL,QAAQ,OAA4B,CAAC,MAAM,WAAW;AACpD,YAAI,oBAAoB,MAAM,GAAG;AAC/B,eAAK,KAAK,MAAM;AAAA,QAClB;AACA,eAAO;AAAA,MACT,GAAG,CAAC,CAAC;AAAA,MACL;AAAA,IACF;AAAA,EACF,OAAO;AACL,WAAO,CAAC,SAAS,KAAK;AAAA,EACxB;AACF;","names":[]}