@xyo-network/react-archivist 2.78.0 → 2.78.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,414 @@
1
- "use strict";var k=Object.defineProperty;var wr=Object.getOwnPropertyDescriptor;var Wr=Object.getOwnPropertyNames;var Br=Object.prototype.hasOwnProperty;var kr=(e,r)=>{for(var t in r)k(e,t,{get:r[t],enumerable:!0})},Er=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Wr(r))!Br.call(e,s)&&s!==t&&k(e,s,{get:()=>r[s],enumerable:!(o=wr(r,s))||o.enumerable});return e};var Sr=e=>Er(k({},"__esModule",{value:!0}),e);var Ur={};kr(Ur,{ArchivistCard:()=>Nr,ArchivistCardContent:()=>S,ArchivistCardHeader:()=>T,ArchivistDetails:()=>Vr,useArchivistAll:()=>zr,useArchivistFromNode:()=>Qr,useArchivistGet:()=>Gr,useArchivistsFromNode:()=>Hr,useWeakArchivistAll:()=>Lr,useWeakArchivistFromNode:()=>N,useWeakArchivistGet:()=>Or,useWeakArchivistsFromNode:()=>qr});module.exports=Sr(Ur);var or=require("@mui/material"),sr=require("@xyo-network/react-module");var K=require("@xylabs/react-async-effect"),X=require("@xylabs/react-flexbox"),Y=require("@xyo-network/module-wrapper"),Z=require("@xyo-network/react-module"),_=require("@xyo-network/react-wallet"),j=require("react");var x=require("@mui/material"),h=require("react/jsx-runtime"),I=({archivistType:e,parentArchivists:r})=>(0,h.jsx)(h.Fragment,{children:r?.map(t=>(0,h.jsx)(x.ListItem,{children:(0,h.jsxs)(x.Typography,{variant:"subtitle2",children:[e,":"," ",(0,h.jsx)(x.Typography,{variant:"caption",sx:{ml:.5},children:t})]})},t))});var q=require("@mui/icons-material"),p=require("@mui/material"),z=require("@xylabs/react-flexbox"),G=require("react");var a=require("react/jsx-runtime"),L=({config:e,...r})=>{let[t,o]=(0,G.useState)(!1),{commit:s,read:i,write:c}=e?.parents??{};return(0,a.jsx)(a.Fragment,{children:s||i||c?(0,a.jsxs)(z.FlexCol,{alignItems:"start",...r,children:[(0,a.jsxs)("span",{onClick:()=>o(!t),children:[(0,a.jsx)(p.Typography,{variant:"subtitle2",sx:{cursor:"pointer",display:"inline-block"},children:"Parents"}),(0,a.jsx)(p.IconButton,{size:"small",children:(0,a.jsx)(q.ArrowRightRounded,{sx:{rotate:t?"90deg":"0deg",transition:"all .25s"}})})]}),(0,a.jsx)(p.Collapse,{in:t,children:(0,a.jsx)(p.Paper,{elevation:2,children:(0,a.jsxs)(p.List,{children:[(0,a.jsx)(I,{archivistType:"Commit",parentArchivists:s}),(0,a.jsx)(I,{archivistType:"Read",parentArchivists:i}),(0,a.jsx)(I,{archivistType:"Write",parentArchivists:c})]})})})]}):null})};var f=require("@mui/material"),O=require("@xylabs/react-flexbox"),$=require("react-icons/bs"),v=require("react-icons/vsc"),l=require("react/jsx-runtime"),D=({addresses:e={},boundWitnesses:r,payloads:t,schemas:o={}})=>(0,l.jsxs)(O.FlexRow,{gap:2,mr:.5,children:[t?.length?(0,l.jsx)(f.Tooltip,{title:"Payloads",children:(0,l.jsx)(f.Badge,{badgeContent:t?.length,color:"primary",children:(0,l.jsx)(v.VscSymbolNamespace,{size:20})})}):null,r?.length?(0,l.jsx)(f.Tooltip,{title:"Blocks",children:(0,l.jsx)(f.Badge,{badgeContent:r?.length,color:"primary",children:(0,l.jsx)(v.VscSymbolMethod,{size:20})})}):null,Object.entries(o).length>0?(0,l.jsx)(f.Tooltip,{title:"Schemas",children:(0,l.jsx)(f.Badge,{badgeContent:Object.entries(o).length,color:"primary",children:(0,l.jsx)($.BsFileEarmarkCode,{size:20})})}):null,Object.entries(e).length>0?(0,l.jsx)(f.Tooltip,{title:"Addresses",children:(0,l.jsx)(f.Badge,{badgeContent:Object.entries(e).length,color:"primary",children:(0,l.jsx)(v.VscOrganization,{size:20})})}):null]});var V=require("@xylabs/react-async-effect"),E=require("@xyo-network/archivist-model"),R=require("@xyo-network/boundwitness-model"),d=require("react");var J=require("react/jsx-runtime"),U=({archivist:e})=>{let[r,t]=(0,d.useState)(),o=(0,d.useCallback)(async n=>{let m=await n?.all?.();t(m)},[]);(0,d.useEffect)(()=>{let n=[];if(e?.queries.includes(E.ArchivistAllQuerySchema)){let m=e.on("inserted",async()=>{await o(e)});n.push(m);let C=e.on("cleared",async()=>{await o(e)});n.push(C)}return()=>{for(let m of n)m?.()}},[e,o]),(0,V.useAsyncEffect)(async()=>{e?.queries.includes(E.ArchivistAllQuerySchema)?await o(e):t(null)},[e,o]);let s=(0,d.useMemo)(()=>r===null?[]:r?.filter(n=>n.schema!==R.BoundWitnessSchema),[r]),i=(0,d.useMemo)(()=>r===null?[]:r?.filter(n=>n.schema===R.BoundWitnessSchema),[r]),c=(0,d.useMemo)(()=>r?.reduce((n,m)=>{let C=(0,R.asBoundWitness)(m);if(C?.addresses)for(let u of C?.addresses??[])n[u]=(n[u]??0)+1;return n},{})??{},[r]),y=(0,d.useMemo)(()=>r?.reduce((n,m)=>(n[m.schema]=(n[m.schema]??0)+1,n),{})??{},[r]);return(0,J.jsx)(D,{addresses:c,boundWitnesses:i,payloads:s,schemas:y})};var F=require("react/jsx-runtime"),S=({children:e,mod:r,...t})=>{let[o,s]=(0,j.useState)(),[i]=(0,_.useWallet)();return(0,K.useAsyncEffect)(async c=>{if(i&&r){let n=await Y.ModuleWrapper.wrap(r,i)?.state();c()&&s(n?.[0])}else s(void 0)},[r,i]),(0,F.jsx)(Z.ModuleCardContent,{mod:r,...t,children:(0,F.jsxs)(X.FlexGrowRow,{flexWrap:"wrap",justifyContent:"start",gap:2,children:[e,(0,F.jsx)(L,{config:o})]})})};var rr=require("@xyo-network/archivist-memory"),er=require("@xyo-network/react-module"),tr=require("react");var g=require("react/jsx-runtime"),Tr=e=>{switch(e?.config.schema){case rr.MemoryArchivistConfigSchema:return(0,g.jsx)(U,{archivist:e});default:return(0,g.jsx)(g.Fragment,{})}},T=({title:e,mod:r,...t})=>{let o=(0,tr.useMemo)(()=>Tr(r),[r]);return(0,g.jsx)(er.ModuleCardHeader,{mod:r,title:e??r?.config.name??"Archivist",action:o,...t})};var P=require("react/jsx-runtime"),Nr=({children:e,mod:r,...t})=>(0,P.jsxs)(or.Card,{...t,children:[(0,P.jsx)(T,{mod:r}),(0,P.jsx)(S,{mod:r}),e,(0,P.jsx)(sr.ModuleCardActions,{mod:r})]});var w=require("@mui/material"),Q=require("@xylabs/react-async-effect"),M=require("@xylabs/react-button"),Fr=require("@xylabs/react-flexbox"),W=require("@xyo-network/archivist-model"),H=require("@xyo-network/boundwitness-builder"),b=require("react");var ir=require("@xyo-network/archivist-model"),nr=require("@xyo-network/react-node"),Qr=(e,r)=>{let[t,o]=(0,nr.useModuleFromNode)(e,r),s=(0,ir.asArchivistInstance)(t);if(t&&!s){let i=new Error(`Resolved module is not a ArchivistInstance [${t.config?.schema}:${t.config?.name}:${t.address}]`);return console.error(i.message),[void 0,i]}return[s,o]};var ar=require("@xyo-network/archivist-model"),cr=require("@xyo-network/react-node"),Hr=(e,r)=>{let[t,o]=(0,cr.useModulesFromNode)(e,r);return o?[null,o]:t?[t.reduce((s,i)=>((0,ar.isArchivistInstance)(i)&&s.push(i),s),[]),void 0]:[t,o]};var lr=require("@xyo-network/archivist-model"),mr=require("@xyo-network/react-node"),N=(e,r)=>(0,mr.useWeakModuleFromNode)(e,{identity:lr.isArchivistInstance,...r});var dr=require("@xylabs/exists"),pr=require("@xyo-network/archivist-model"),fr=require("@xyo-network/react-node"),qr=(e,r)=>{let[t,o]=(0,fr.useWeakModulesFromNode)(e,r);return o?[null,o]:[t?.map(s=>{let i=(0,pr.asArchivistInstance)(s?.deref());if(i)return new WeakRef(i)}).filter(dr.exists)??[],void 0]};var ur=require("@xylabs/react-promise"),hr=require("@xyo-network/react-module"),Ar=require("react"),zr=e=>{let[r,t]=(0,Ar.useState)(),[o,s]=(0,hr.useRefresh)();return[(0,ur.usePromise)(async()=>{try{if(o)return await e?.all?.()}catch(c){t(c)}},[e,o]),r,s]};var yr=require("@xylabs/react-promise"),Cr=require("@xyo-network/react-module"),Gr=(e,r)=>{let[t,o]=(0,Cr.useRefresh)(),[s,i]=(0,yr.usePromise)(async()=>{if(t&&e&&r)return await e.get(r)},[e,r,t]);return[s,i,o]};var vr=require("@xylabs/react-promise"),gr=require("@xyo-network/react-module"),Pr=require("react"),Lr=e=>{let[r,t]=(0,Pr.useState)(),[o,s]=(0,gr.useRefresh)();return[(0,vr.usePromise)(async()=>{try{if(o)return await e?.deref()?.all?.()}catch(c){t(c)}},[e,o]),r,s]};var xr=require("@xylabs/react-promise"),Rr=require("@xyo-network/react-module"),Or=(e,r)=>{let[t,o]=(0,Rr.useRefresh)(),[s,i]=(0,xr.usePromise)(async()=>{let c=e?.deref();if(t&&c&&r)return await c.get(r)},[e,r,t]);return[s,i,o]};var A=require("react/jsx-runtime"),br={schema:W.ArchivistCommitQuerySchema},$r=new H.QueryBoundWitnessBuilder().query(br),Ir={schema:W.ArchivistClearQuerySchema},Dr=new H.QueryBoundWitnessBuilder().query(Ir),Vr=({address:e,...r})=>{let[t]=N(e),[o,s]=(0,b.useState)(),[i,c]=(0,b.useState)(0),[y,n]=(0,b.useState)(!1),[m,C]=(0,b.useState)(!1);return(0,Q.useAsyncEffect)(async()=>{let u=t?.deref();if(u){let[B]=await(await $r).build(),[Mr]=await(await Dr).build();n(await u?.queryable(B,[br])),C(await u?.queryable(Mr,[Ir]))}},[t]),(0,Q.useAsyncEffect)(async u=>{let B=await t?.deref()?.all?.();u()&&s(B)},[t,i]),(0,A.jsxs)(Fr.FlexCol,{...r,children:[(0,A.jsx)(w.Typography,{children:`Payloads: ${o?o.length:"-"}`}),(0,A.jsxs)(w.ButtonGroup,{children:[(0,A.jsx)(M.ButtonEx,{disabled:o?.length===0||!t||!y,onClick:()=>t?.deref()?.commit?.(),children:"Commit"}),(0,A.jsx)(M.ButtonEx,{disabled:!t||!m,onClick:()=>t?.deref()?.clear?.(),children:"Clear"}),(0,A.jsx)(M.ButtonEx,{disabled:!t,onClick:()=>{c(i+1)},children:"Refresh"})]})]})};
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ ArchivistCard: () => ArchivistCard,
24
+ ArchivistCardContent: () => ArchivistCardContent,
25
+ ArchivistCardHeader: () => ArchivistCardHeader,
26
+ ArchivistDetails: () => ArchivistDetails,
27
+ useArchivistAll: () => useArchivistAll,
28
+ useArchivistFromNode: () => useArchivistFromNode,
29
+ useArchivistGet: () => useArchivistGet,
30
+ useArchivistsFromNode: () => useArchivistsFromNode,
31
+ useWeakArchivistAll: () => useWeakArchivistAll,
32
+ useWeakArchivistFromNode: () => useWeakArchivistFromNode,
33
+ useWeakArchivistGet: () => useWeakArchivistGet,
34
+ useWeakArchivistsFromNode: () => useWeakArchivistsFromNode
35
+ });
36
+ module.exports = __toCommonJS(src_exports);
37
+
38
+ // src/components/Card/Card.tsx
39
+ var import_material4 = require("@mui/material");
40
+ var import_react_module3 = require("@xyo-network/react-module");
41
+
42
+ // src/components/Card/CardContent.tsx
43
+ var import_react_async_effect2 = require("@xylabs/react-async-effect");
44
+ var import_react_flexbox3 = require("@xylabs/react-flexbox");
45
+ var import_module_wrapper = require("@xyo-network/module-wrapper");
46
+ var import_react_module = require("@xyo-network/react-module");
47
+ var import_react_wallet = require("@xyo-network/react-wallet");
48
+ var import_react3 = require("react");
49
+
50
+ // src/components/Card/components/ArchivistParent.tsx
51
+ var import_material = require("@mui/material");
52
+ var import_jsx_runtime = require("react/jsx-runtime");
53
+ var ArchivistParent = ({ archivistType, parentArchivists }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: parentArchivists?.map((address) => {
54
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.ListItem, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.Typography, { variant: "subtitle2", children: [
55
+ archivistType,
56
+ ":",
57
+ " ",
58
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", sx: { ml: 0.5 }, children: address })
59
+ ] }) }, address);
60
+ }) });
61
+
62
+ // src/components/Card/components/ArchivistParents.tsx
63
+ var import_icons_material = require("@mui/icons-material");
64
+ var import_material2 = require("@mui/material");
65
+ var import_react_flexbox = require("@xylabs/react-flexbox");
66
+ var import_react = require("react");
67
+ var import_jsx_runtime2 = require("react/jsx-runtime");
68
+ var ArchivistParents = ({ config, ...props }) => {
69
+ const [parentArchivistCollapse, setParentArchivistCollapse] = (0, import_react.useState)(false);
70
+ const { commit, read, write } = config?.parents ?? {};
71
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: commit || read || write ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_react_flexbox.FlexCol, { alignItems: "start", ...props, children: [
72
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { onClick: () => setParentArchivistCollapse(!parentArchivistCollapse), children: [
73
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.Typography, { variant: "subtitle2", sx: { cursor: "pointer", display: "inline-block" }, children: "Parents" }),
74
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.IconButton, { size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_icons_material.ArrowRightRounded, { sx: { rotate: parentArchivistCollapse ? "90deg" : "0deg", transition: "all .25s" } }) })
75
+ ] }),
76
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.Collapse, { in: parentArchivistCollapse, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_material2.Paper, { elevation: 2, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_material2.List, { children: [
77
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ArchivistParent, { archivistType: "Commit", parentArchivists: commit }),
78
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ArchivistParent, { archivistType: "Read", parentArchivists: read }),
79
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ArchivistParent, { archivistType: "Write", parentArchivists: write })
80
+ ] }) }) })
81
+ ] }) : null });
82
+ };
83
+
84
+ // src/components/Card/components/Stats/ArchivistStats.tsx
85
+ var import_material3 = require("@mui/material");
86
+ var import_react_flexbox2 = require("@xylabs/react-flexbox");
87
+ var import_bs = require("react-icons/bs");
88
+ var import_vsc = require("react-icons/vsc");
89
+ var import_jsx_runtime3 = require("react/jsx-runtime");
90
+ var ArchivistStats = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {
91
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_react_flexbox2.FlexRow, { gap: 2, mr: 0.5, children: [
92
+ payloads?.length ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Tooltip, { title: "Payloads", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Badge, { badgeContent: payloads?.length, color: "primary", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_vsc.VscSymbolNamespace, { size: 20 }) }) }) : null,
93
+ boundWitnesses?.length ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Tooltip, { title: "Blocks", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Badge, { badgeContent: boundWitnesses?.length, color: "primary", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_vsc.VscSymbolMethod, { size: 20 }) }) }) : null,
94
+ Object.entries(schemas).length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Tooltip, { title: "Schemas", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Badge, { badgeContent: Object.entries(schemas).length, color: "primary", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_bs.BsFileEarmarkCode, { size: 20 }) }) }) : null,
95
+ Object.entries(addresses).length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Tooltip, { title: "Addresses", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Badge, { badgeContent: Object.entries(addresses).length, color: "primary", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_vsc.VscOrganization, { size: 20 }) }) }) : null
96
+ ] });
97
+ };
98
+
99
+ // src/components/Card/components/Stats/MemoryArchivistStats.tsx
100
+ var import_react_async_effect = require("@xylabs/react-async-effect");
101
+ var import_archivist_model = require("@xyo-network/archivist-model");
102
+ var import_boundwitness_model = require("@xyo-network/boundwitness-model");
103
+ var import_react2 = require("react");
104
+ var import_jsx_runtime4 = require("react/jsx-runtime");
105
+ var MemoryArchivistsStats = ({ archivist }) => {
106
+ const [all, setAll] = (0, import_react2.useState)();
107
+ const getAll = (0, import_react2.useCallback)(async (archivist2) => {
108
+ const all2 = await archivist2?.all?.();
109
+ setAll(all2);
110
+ }, []);
111
+ (0, import_react2.useEffect)(() => {
112
+ const listeners = [];
113
+ if (archivist?.queries.includes(import_archivist_model.ArchivistAllQuerySchema)) {
114
+ const insertListener = archivist.on("inserted", async () => {
115
+ await getAll(archivist);
116
+ });
117
+ listeners.push(insertListener);
118
+ const clearListener = archivist.on("cleared", async () => {
119
+ await getAll(archivist);
120
+ });
121
+ listeners.push(clearListener);
122
+ }
123
+ return () => {
124
+ for (const listener of listeners) listener?.();
125
+ };
126
+ }, [archivist, getAll]);
127
+ (0, import_react_async_effect.useAsyncEffect)(
128
+ // eslint-disable-next-line react-hooks/exhaustive-deps
129
+ async () => {
130
+ if (archivist?.queries.includes(import_archivist_model.ArchivistAllQuerySchema)) {
131
+ await getAll(archivist);
132
+ } else {
133
+ setAll(null);
134
+ }
135
+ },
136
+ [archivist, getAll]
137
+ );
138
+ const payloads = (0, import_react2.useMemo)(() => all === null ? [] : all?.filter((payload) => payload.schema !== import_boundwitness_model.BoundWitnessSchema), [all]);
139
+ const boundWitnesses = (0, import_react2.useMemo)(() => all === null ? [] : all?.filter((payload) => payload.schema === import_boundwitness_model.BoundWitnessSchema), [all]);
140
+ const addresses = (0, import_react2.useMemo)(
141
+ () => all?.reduce(
142
+ (prev, payload) => {
143
+ const w = (0, import_boundwitness_model.asBoundWitness)(payload);
144
+ if (w?.addresses)
145
+ for (const address of w?.addresses ?? []) {
146
+ prev[address] = (prev[address] ?? 0) + 1;
147
+ }
148
+ return prev;
149
+ },
150
+ {}
151
+ ) ?? {},
152
+ [all]
153
+ );
154
+ const schemas = (0, import_react2.useMemo)(
155
+ () => all?.reduce(
156
+ (prev, payload) => {
157
+ prev[payload.schema] = (prev[payload.schema] ?? 0) + 1;
158
+ return prev;
159
+ },
160
+ {}
161
+ ) ?? {},
162
+ [all]
163
+ );
164
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ArchivistStats, { addresses, boundWitnesses, payloads, schemas });
165
+ };
166
+
167
+ // src/components/Card/CardContent.tsx
168
+ var import_jsx_runtime5 = require("react/jsx-runtime");
169
+ var ArchivistCardContent = ({ children, mod, ...props }) => {
170
+ const [config, setConfig] = (0, import_react3.useState)();
171
+ const [wallet] = (0, import_react_wallet.useWallet)();
172
+ (0, import_react_async_effect2.useAsyncEffect)(
173
+ // eslint-disable-next-line react-hooks/exhaustive-deps
174
+ async (mounted) => {
175
+ if (wallet && mod) {
176
+ const wrapper = import_module_wrapper.ModuleWrapper.wrap(mod, wallet);
177
+ const payloads = await wrapper?.state();
178
+ if (mounted()) {
179
+ setConfig(payloads?.[0]);
180
+ }
181
+ } else {
182
+ setConfig(void 0);
183
+ }
184
+ },
185
+ [mod, wallet]
186
+ );
187
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_module.ModuleCardContent, { mod, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_flexbox3.FlexGrowRow, { flexWrap: "wrap", justifyContent: "start", gap: 2, children: [
188
+ children,
189
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ArchivistParents, { config })
190
+ ] }) });
191
+ };
192
+
193
+ // src/components/Card/CardHeader.tsx
194
+ var import_archivist_memory = require("@xyo-network/archivist-memory");
195
+ var import_react_module2 = require("@xyo-network/react-module");
196
+ var import_react4 = require("react");
197
+ var import_jsx_runtime6 = require("react/jsx-runtime");
198
+ var ArchivistStats2 = (archivist) => {
199
+ switch (archivist?.config.schema) {
200
+ case import_archivist_memory.MemoryArchivistConfigSchema: {
201
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MemoryArchivistsStats, { archivist });
202
+ }
203
+ default: {
204
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, {});
205
+ }
206
+ }
207
+ };
208
+ var ArchivistCardHeader = ({ title, mod, ...props }) => {
209
+ const Stats = (0, import_react4.useMemo)(() => ArchivistStats2(mod), [mod]);
210
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_module2.ModuleCardHeader, { mod, title: title ?? mod?.config.name ?? "Archivist", action: Stats, ...props });
211
+ };
212
+
213
+ // src/components/Card/Card.tsx
214
+ var import_jsx_runtime7 = require("react/jsx-runtime");
215
+ var ArchivistCard = ({ children, mod, ...props }) => {
216
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_material4.Card, { ...props, children: [
217
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ArchivistCardHeader, { mod }),
218
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ArchivistCardContent, { mod }),
219
+ children,
220
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_module3.ModuleCardActions, { mod })
221
+ ] });
222
+ };
223
+
224
+ // src/components/Details/Details.tsx
225
+ var import_material5 = require("@mui/material");
226
+ var import_react_async_effect3 = require("@xylabs/react-async-effect");
227
+ var import_react_button = require("@xylabs/react-button");
228
+ var import_react_flexbox4 = require("@xylabs/react-flexbox");
229
+ var import_archivist_model6 = require("@xyo-network/archivist-model");
230
+ var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
231
+ var import_react7 = require("react");
232
+
233
+ // src/hooks/node/useArchivistFromNode.tsx
234
+ var import_archivist_model2 = require("@xyo-network/archivist-model");
235
+ var import_react_node = require("@xyo-network/react-node");
236
+ var useArchivistFromNode = (nameOrAddressOrInstance, config) => {
237
+ const [mod, error] = (0, import_react_node.useModuleFromNode)(nameOrAddressOrInstance, config);
238
+ const instance = (0, import_archivist_model2.asArchivistInstance)(mod);
239
+ if (mod && !instance) {
240
+ const error2 = new Error(`Resolved module is not a ArchivistInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`);
241
+ console.error(error2.message);
242
+ return [void 0, error2];
243
+ }
244
+ return [instance, error];
245
+ };
246
+
247
+ // src/hooks/node/useArchivistsFromNode.tsx
248
+ var import_archivist_model3 = require("@xyo-network/archivist-model");
249
+ var import_react_node2 = require("@xyo-network/react-node");
250
+ var useArchivistsFromNode = (filter, config) => {
251
+ const [modules, error] = (0, import_react_node2.useModulesFromNode)(filter, config);
252
+ if (error) {
253
+ return [null, error];
254
+ }
255
+ return modules ? [
256
+ // eslint-disable-next-line unicorn/no-array-reduce
257
+ modules.reduce((prev, mod) => {
258
+ if ((0, import_archivist_model3.isArchivistInstance)(mod)) {
259
+ prev.push(mod);
260
+ }
261
+ return prev;
262
+ }, []),
263
+ void 0
264
+ ] : [modules, error];
265
+ };
266
+
267
+ // src/hooks/node/useWeakArchivistFromNode.tsx
268
+ var import_archivist_model4 = require("@xyo-network/archivist-model");
269
+ var import_react_node3 = require("@xyo-network/react-node");
270
+ var useWeakArchivistFromNode = (nameOrAddressOrInstance, config) => {
271
+ return (0, import_react_node3.useWeakModuleFromNode)(nameOrAddressOrInstance, { identity: import_archivist_model4.isArchivistInstance, ...config });
272
+ };
273
+
274
+ // src/hooks/node/useWeakArchivistsFromNode.tsx
275
+ var import_exists = require("@xylabs/exists");
276
+ var import_archivist_model5 = require("@xyo-network/archivist-model");
277
+ var import_react_node4 = require("@xyo-network/react-node");
278
+ var useWeakArchivistsFromNode = (filter, config) => {
279
+ const [modules, error] = (0, import_react_node4.useWeakModulesFromNode)(filter, config);
280
+ if (error) {
281
+ return [null, error];
282
+ }
283
+ return [
284
+ modules?.map((mod) => {
285
+ const instance = (0, import_archivist_model5.asArchivistInstance)(mod?.deref());
286
+ if (instance) {
287
+ return new WeakRef(instance);
288
+ }
289
+ }).filter(import_exists.exists) ?? [],
290
+ void 0
291
+ ];
292
+ };
293
+
294
+ // src/hooks/queries/useArchivistAll.tsx
295
+ var import_react_promise = require("@xylabs/react-promise");
296
+ var import_react_module4 = require("@xyo-network/react-module");
297
+ var import_react5 = require("react");
298
+ var useArchivistAll = (archivist) => {
299
+ const [error, setError] = (0, import_react5.useState)();
300
+ const [enabled, refresh] = (0, import_react_module4.useRefresh)();
301
+ const payloads = (0, import_react_promise.usePromise)(async () => {
302
+ try {
303
+ if (enabled) {
304
+ return await archivist?.all?.();
305
+ }
306
+ } catch (ex) {
307
+ const error2 = ex;
308
+ setError(error2);
309
+ }
310
+ }, [archivist, enabled]);
311
+ return [payloads, error, refresh];
312
+ };
313
+
314
+ // src/hooks/queries/useArchivistGet.tsx
315
+ var import_react_promise2 = require("@xylabs/react-promise");
316
+ var import_react_module5 = require("@xyo-network/react-module");
317
+ var useArchivistGet = (archivist, hashes) => {
318
+ const [enabled, refresh] = (0, import_react_module5.useRefresh)();
319
+ const [payloads, error] = (0, import_react_promise2.usePromise)(async () => {
320
+ if (enabled && archivist && hashes) {
321
+ return await archivist.get(hashes);
322
+ }
323
+ }, [archivist, hashes, enabled]);
324
+ return [payloads, error, refresh];
325
+ };
326
+
327
+ // src/hooks/queries/useWeakArchivistAll.tsx
328
+ var import_react_promise3 = require("@xylabs/react-promise");
329
+ var import_react_module6 = require("@xyo-network/react-module");
330
+ var import_react6 = require("react");
331
+ var useWeakArchivistAll = (archivist) => {
332
+ const [error, setError] = (0, import_react6.useState)();
333
+ const [enabled, refresh] = (0, import_react_module6.useRefresh)();
334
+ const payloads = (0, import_react_promise3.usePromise)(async () => {
335
+ try {
336
+ if (enabled) {
337
+ return await archivist?.deref()?.all?.();
338
+ }
339
+ } catch (ex) {
340
+ const error2 = ex;
341
+ setError(error2);
342
+ }
343
+ }, [archivist, enabled]);
344
+ return [payloads, error, refresh];
345
+ };
346
+
347
+ // src/hooks/queries/useWeakArchivistGet.tsx
348
+ var import_react_promise4 = require("@xylabs/react-promise");
349
+ var import_react_module7 = require("@xyo-network/react-module");
350
+ var useWeakArchivistGet = (archivist, hashes) => {
351
+ const [enabled, refresh] = (0, import_react_module7.useRefresh)();
352
+ const [payloads, error] = (0, import_react_promise4.usePromise)(async () => {
353
+ const archivistInstance = archivist?.deref();
354
+ if (enabled && archivistInstance && hashes) {
355
+ return await archivistInstance.get(hashes);
356
+ }
357
+ }, [archivist, hashes, enabled]);
358
+ return [payloads, error, refresh];
359
+ };
360
+
361
+ // src/components/Details/Details.tsx
362
+ var import_jsx_runtime8 = require("react/jsx-runtime");
363
+ var testQueryCommit = { schema: import_archivist_model6.ArchivistCommitQuerySchema };
364
+ var testQueryCommitBoundWitnessBuilder = new import_boundwitness_builder.QueryBoundWitnessBuilder().query(testQueryCommit);
365
+ var testQueryClear = { schema: import_archivist_model6.ArchivistClearQuerySchema };
366
+ var testQueryClearBoundWitnessBuilder = new import_boundwitness_builder.QueryBoundWitnessBuilder().query(testQueryClear);
367
+ var ArchivistDetails = ({ address, ...props }) => {
368
+ const [archivist] = useWeakArchivistFromNode(address);
369
+ const [payloads, setPayloads] = (0, import_react7.useState)();
370
+ const [refresh, setRefresh] = (0, import_react7.useState)(0);
371
+ const [queryableCommit, setQueryableCommit] = (0, import_react7.useState)(false);
372
+ const [queryableClear, setQueryableClear] = (0, import_react7.useState)(false);
373
+ (0, import_react_async_effect3.useAsyncEffect)(
374
+ // eslint-disable-next-line react-hooks/exhaustive-deps
375
+ async () => {
376
+ const instance = archivist?.deref();
377
+ if (instance) {
378
+ const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build();
379
+ const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build();
380
+ setQueryableCommit(await instance?.queryable(commitBW, [testQueryCommit]));
381
+ setQueryableClear(await instance?.queryable(clearBW, [testQueryClear]));
382
+ }
383
+ },
384
+ [archivist]
385
+ );
386
+ (0, import_react_async_effect3.useAsyncEffect)(
387
+ // eslint-disable-next-line react-hooks/exhaustive-deps
388
+ async (mounted) => {
389
+ const payloads2 = await archivist?.deref()?.all?.();
390
+ if (mounted()) {
391
+ setPayloads(payloads2);
392
+ }
393
+ },
394
+ [archivist, refresh]
395
+ );
396
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_flexbox4.FlexCol, { ...props, children: [
397
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_material5.Typography, { children: `Payloads: ${payloads ? payloads.length : "-"}` }),
398
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_material5.ButtonGroup, { children: [
399
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_button.ButtonEx, { disabled: payloads?.length === 0 || !archivist || !queryableCommit, onClick: () => archivist?.deref()?.commit?.(), children: "Commit" }),
400
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_button.ButtonEx, { disabled: !archivist || !queryableClear, onClick: () => archivist?.deref()?.clear?.(), children: "Clear" }),
401
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
402
+ import_react_button.ButtonEx,
403
+ {
404
+ disabled: !archivist,
405
+ onClick: () => {
406
+ setRefresh(refresh + 1);
407
+ },
408
+ children: "Refresh"
409
+ }
410
+ )
411
+ ] })
412
+ ] });
413
+ };
2
414
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../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","../../src/hooks/node/useArchivistsFromNode.tsx","../../src/hooks/node/useWeakArchivistFromNode.tsx","../../src/hooks/node/useWeakArchivistsFromNode.tsx","../../src/hooks/queries/useArchivistAll.tsx","../../src/hooks/queries/useArchivistGet.tsx","../../src/hooks/queries/useWeakArchivistAll.tsx","../../src/hooks/queries/useWeakArchivistGet.tsx"],"sourcesContent":["export * from './components'\nexport * from './hooks'\n","import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\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, mod, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader mod={mod} />\n <ArchivistCardContent mod={mod} />\n {children}\n <ModuleCardActions mod={mod} />\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-model'\nimport { ModuleWrapper } from '@xyo-network/module-wrapper'\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, mod, ...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 && mod) {\n const wrapper = ModuleWrapper.wrap(mod, wallet)\n const payloads = await wrapper?.state()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [mod, wallet],\n )\n\n return (\n <ModuleCardContent mod={mod} {...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-model'\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'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc'\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 > 0 ?\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 > 0 ?\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-model'\nimport { asBoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { EventUnsubscribeFunction } from '@xyo-network/module-events'\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 () => {\n for (const listener of listeners) listener?.()\n }\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 = asBoundWitness(payload)\n if (w?.addresses)\n for (const address of w?.addresses ?? []) {\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 { MemoryArchivistConfigSchema } from '@xyo-network/archivist-memory'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\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 }\n default: {\n return <></>\n }\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, mod, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(mod), [mod])\n return <ModuleCardHeader mod={mod} title={title ?? mod?.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-model'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useWeakArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryCommit)\n\nconst testQueryClear = { schema: ArchivistClearQuerySchema }\nconst testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryClear)\n\nexport interface ArchivistDetails extends FlexBoxProps {\n address?: string\n}\n\nexport const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props }) => {\n const [archivist] = useWeakArchivistFromNode(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 const instance = archivist?.deref()\n if (instance) {\n const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build()\n const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build()\n setQueryableCommit(await instance?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await instance?.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?.deref()?.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?.deref()?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.deref()?.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","/* eslint-disable import/no-deprecated */\n/* eslint-disable deprecation/deprecation */\nimport { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\n/** @deprecated use useWeakArchivistFromNode*/\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(mod)\n if (mod && !instance) {\n const error = new Error(`Resolved module is not a ArchivistInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","/* eslint-disable import/no-deprecated */\n/* eslint-disable deprecation/deprecation */\nimport { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\n/** @deprecated use useWeakArchivistsFromNode*/\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 return modules ?\n [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<ArchivistInstance[]>((prev, mod) => {\n if (isArchivistInstance(mod)) {\n prev.push(mod)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist-model'\nimport { useWeakModuleFromNode, WeakModuleFromNodeConfig } from '@xyo-network/react-node'\n\nexport const useWeakArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<ArchivistInstance> | undefined, Error | undefined] => {\n return useWeakModuleFromNode<ArchivistInstance>(nameOrAddressOrInstance, { identity: isArchivistInstance, ...config })\n}\n","import { exists } from '@xylabs/exists'\nimport { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useWeakModulesFromNode } from '@xyo-network/react-node'\n\nexport const useWeakArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [WeakRef<ArchivistInstance>[] | null | undefined, Error | undefined] => {\n const [modules, error] = useWeakModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return [\n modules\n ?.map((mod) => {\n const instance = asArchivistInstance(mod?.deref())\n if (instance) {\n return new WeakRef(instance)\n }\n })\n .filter(exists) ?? [],\n undefined,\n ]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\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 { Hash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { Payload, WithMeta } 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?: Hash[],\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 WithMeta<T>[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useWeakArchivistAll = (archivist: WeakRef<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?.deref()?.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 { Hash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { Payload, WithMeta } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useWeakArchivistGet = <T extends Payload = Payload>(\n archivist?: WeakRef<ArchivistInstance> | null,\n hashes?: Hash[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n const archivistInstance = archivist?.deref()\n if (enabled && archivistInstance && hashes) {\n return (await archivistInstance.get(hashes)) as WithMeta<T>[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":"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","names":["src_exports","__export","ArchivistCard","ArchivistCardContent","ArchivistCardHeader","ArchivistDetails","useArchivistAll","useArchivistFromNode","useArchivistGet","useArchivistsFromNode","useWeakArchivistAll","useWeakArchivistFromNode","useWeakArchivistGet","useWeakArchivistsFromNode","__toCommonJS","import_material","import_react_module","import_react_async_effect","import_react_flexbox","import_module_wrapper","import_react_module","import_react_wallet","import_react","import_material","import_jsx_runtime","ArchivistParent","archivistType","parentArchivists","address","import_icons_material","import_material","import_react_flexbox","import_react","import_jsx_runtime","ArchivistParents","config","props","parentArchivistCollapse","setParentArchivistCollapse","commit","read","write","ArrowRightRoundedIcon","ArchivistParent","import_material","import_react_flexbox","import_bs","import_vsc","import_jsx_runtime","ArchivistStats","addresses","boundWitnesses","payloads","schemas","import_react_async_effect","import_archivist_model","import_boundwitness_model","import_react","import_jsx_runtime","MemoryArchivistsStats","archivist","all","setAll","getAll","listeners","insertListener","clearListener","listener","payloads","payload","boundWitnesses","addresses","prev","w","address","schemas","ArchivistStats","import_jsx_runtime","ArchivistCardContent","children","mod","props","config","setConfig","wallet","mounted","payloads","ArchivistParents","import_archivist_memory","import_react_module","import_react","import_jsx_runtime","ArchivistStats","archivist","MemoryArchivistsStats","ArchivistCardHeader","title","mod","props","Stats","import_jsx_runtime","ArchivistCard","children","mod","props","ArchivistCardHeader","ArchivistCardContent","import_material","import_react_async_effect","import_react_button","import_react_flexbox","import_archivist_model","import_boundwitness_builder","import_react","import_archivist_model","import_react_node","useArchivistFromNode","nameOrAddressOrInstance","config","mod","error","instance","import_archivist_model","import_react_node","useArchivistsFromNode","filter","config","modules","error","prev","mod","import_archivist_model","import_react_node","useWeakArchivistFromNode","nameOrAddressOrInstance","config","import_exists","import_archivist_model","import_react_node","useWeakArchivistsFromNode","filter","config","modules","error","mod","instance","import_react_promise","import_react_module","import_react","useArchivistAll","archivist","error","setError","enabled","refresh","ex","import_react_promise","import_react_module","useArchivistGet","archivist","hashes","enabled","refresh","payloads","error","import_react_promise","import_react_module","import_react","useWeakArchivistAll","archivist","error","setError","enabled","refresh","ex","import_react_promise","import_react_module","useWeakArchivistGet","archivist","hashes","enabled","refresh","payloads","error","archivistInstance","import_jsx_runtime","testQueryCommit","testQueryCommitBoundWitnessBuilder","testQueryClear","testQueryClearBoundWitnessBuilder","ArchivistDetails","address","props","archivist","useWeakArchivistFromNode","payloads","setPayloads","refresh","setRefresh","queryableCommit","setQueryableCommit","queryableClear","setQueryableClear","instance","commitBW","clearBW","mounted"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../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","../../src/hooks/node/useArchivistsFromNode.tsx","../../src/hooks/node/useWeakArchivistFromNode.tsx","../../src/hooks/node/useWeakArchivistsFromNode.tsx","../../src/hooks/queries/useArchivistAll.tsx","../../src/hooks/queries/useArchivistGet.tsx","../../src/hooks/queries/useWeakArchivistAll.tsx","../../src/hooks/queries/useWeakArchivistGet.tsx"],"sourcesContent":["export * from './components'\nexport * from './hooks'\n","import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\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, mod, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader mod={mod} />\n <ArchivistCardContent mod={mod} />\n {children}\n <ModuleCardActions mod={mod} />\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-model'\nimport { ModuleWrapper } from '@xyo-network/module-wrapper'\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, mod, ...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 && mod) {\n const wrapper = ModuleWrapper.wrap(mod, wallet)\n const payloads = await wrapper?.state()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [mod, wallet],\n )\n\n return (\n <ModuleCardContent mod={mod} {...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-model'\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'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc'\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 > 0 ?\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 > 0 ?\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-model'\nimport { asBoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { EventUnsubscribeFunction } from '@xyo-network/module-events'\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 () => {\n for (const listener of listeners) listener?.()\n }\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 = asBoundWitness(payload)\n if (w?.addresses)\n for (const address of w?.addresses ?? []) {\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 { MemoryArchivistConfigSchema } from '@xyo-network/archivist-memory'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\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 }\n default: {\n return <></>\n }\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, mod, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(mod), [mod])\n return <ModuleCardHeader mod={mod} title={title ?? mod?.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-model'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useWeakArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryCommit)\n\nconst testQueryClear = { schema: ArchivistClearQuerySchema }\nconst testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryClear)\n\nexport interface ArchivistDetails extends FlexBoxProps {\n address?: string\n}\n\nexport const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props }) => {\n const [archivist] = useWeakArchivistFromNode(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 const instance = archivist?.deref()\n if (instance) {\n const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build()\n const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build()\n setQueryableCommit(await instance?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await instance?.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?.deref()?.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?.deref()?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.deref()?.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","/* eslint-disable import/no-deprecated */\n/* eslint-disable deprecation/deprecation */\nimport { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\n/** @deprecated use useWeakArchivistFromNode*/\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(mod)\n if (mod && !instance) {\n const error = new Error(`Resolved module is not a ArchivistInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","/* eslint-disable import/no-deprecated */\n/* eslint-disable deprecation/deprecation */\nimport { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\n/** @deprecated use useWeakArchivistsFromNode*/\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 return modules ?\n [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<ArchivistInstance[]>((prev, mod) => {\n if (isArchivistInstance(mod)) {\n prev.push(mod)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist-model'\nimport { useWeakModuleFromNode, WeakModuleFromNodeConfig } from '@xyo-network/react-node'\n\nexport const useWeakArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<ArchivistInstance> | undefined, Error | undefined] => {\n return useWeakModuleFromNode<ArchivistInstance>(nameOrAddressOrInstance, { identity: isArchivistInstance, ...config })\n}\n","import { exists } from '@xylabs/exists'\nimport { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useWeakModulesFromNode } from '@xyo-network/react-node'\n\nexport const useWeakArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [WeakRef<ArchivistInstance>[] | null | undefined, Error | undefined] => {\n const [modules, error] = useWeakModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return [\n modules\n ?.map((mod) => {\n const instance = asArchivistInstance(mod?.deref())\n if (instance) {\n return new WeakRef(instance)\n }\n })\n .filter(exists) ?? [],\n undefined,\n ]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\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 { Hash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { Payload, WithMeta } 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?: Hash[],\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 WithMeta<T>[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useWeakArchivistAll = (archivist: WeakRef<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?.deref()?.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 { Hash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { Payload, WithMeta } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useWeakArchivistGet = <T extends Payload = Payload>(\n archivist?: WeakRef<ArchivistInstance> | null,\n hashes?: Hash[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n const archivistInstance = archivist?.deref()\n if (enabled && archivistInstance && hashes) {\n return (await archivistInstance.get(hashes)) as WithMeta<T>[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":"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","names":["import_material","import_react_module","import_react_async_effect","import_react_flexbox","import_react","import_material","import_jsx_runtime","ArrowRightRoundedIcon","import_material","import_react_flexbox","import_jsx_runtime","import_react","import_jsx_runtime","archivist","all","import_jsx_runtime","import_react_module","import_react","import_jsx_runtime","ArchivistStats","import_jsx_runtime","import_material","import_react_async_effect","import_react_flexbox","import_archivist_model","import_react","import_archivist_model","error","import_archivist_model","import_react_node","import_archivist_model","import_react_node","import_archivist_model","import_react_node","import_react_module","import_react","error","import_react_promise","import_react_module","import_react_promise","import_react_module","import_react","error","import_react_promise","import_react_module","import_jsx_runtime","payloads"]}