@xyo-network/react-archivist 2.78.0 → 2.78.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.cjs +413 -1
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +390 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/neutral/index.cjs +413 -1
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +390 -1
- package/dist/neutral/index.js.map +1 -1
- package/dist/node/index.cjs +439 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +401 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +18 -18
package/dist/neutral/index.js
CHANGED
|
@@ -1,2 +1,391 @@
|
|
|
1
|
-
|
|
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-wrapper";
|
|
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";
|
|
51
|
+
import { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from "react-icons/vsc";
|
|
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 > 0 ? /* @__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 > 0 ? /* @__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-model";
|
|
65
|
+
import { asBoundWitness, BoundWitnessSchema } from "@xyo-network/boundwitness-model";
|
|
66
|
+
import { useCallback, useEffect, useMemo, useState as useState2 } from "react";
|
|
67
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
68
|
+
var MemoryArchivistsStats = ({ archivist }) => {
|
|
69
|
+
const [all, setAll] = useState2();
|
|
70
|
+
const getAll = useCallback(async (archivist2) => {
|
|
71
|
+
const all2 = await archivist2?.all?.();
|
|
72
|
+
setAll(all2);
|
|
73
|
+
}, []);
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
const listeners = [];
|
|
76
|
+
if (archivist?.queries.includes(ArchivistAllQuerySchema)) {
|
|
77
|
+
const insertListener = archivist.on("inserted", async () => {
|
|
78
|
+
await getAll(archivist);
|
|
79
|
+
});
|
|
80
|
+
listeners.push(insertListener);
|
|
81
|
+
const clearListener = archivist.on("cleared", async () => {
|
|
82
|
+
await getAll(archivist);
|
|
83
|
+
});
|
|
84
|
+
listeners.push(clearListener);
|
|
85
|
+
}
|
|
86
|
+
return () => {
|
|
87
|
+
for (const listener of listeners) listener?.();
|
|
88
|
+
};
|
|
89
|
+
}, [archivist, getAll]);
|
|
90
|
+
useAsyncEffect(
|
|
91
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
92
|
+
async () => {
|
|
93
|
+
if (archivist?.queries.includes(ArchivistAllQuerySchema)) {
|
|
94
|
+
await getAll(archivist);
|
|
95
|
+
} else {
|
|
96
|
+
setAll(null);
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
[archivist, getAll]
|
|
100
|
+
);
|
|
101
|
+
const payloads = useMemo(() => all === null ? [] : all?.filter((payload) => payload.schema !== BoundWitnessSchema), [all]);
|
|
102
|
+
const boundWitnesses = useMemo(() => all === null ? [] : all?.filter((payload) => payload.schema === BoundWitnessSchema), [all]);
|
|
103
|
+
const addresses = useMemo(
|
|
104
|
+
() => all?.reduce(
|
|
105
|
+
(prev, payload) => {
|
|
106
|
+
const w = asBoundWitness(payload);
|
|
107
|
+
if (w?.addresses)
|
|
108
|
+
for (const address of w?.addresses ?? []) {
|
|
109
|
+
prev[address] = (prev[address] ?? 0) + 1;
|
|
110
|
+
}
|
|
111
|
+
return prev;
|
|
112
|
+
},
|
|
113
|
+
{}
|
|
114
|
+
) ?? {},
|
|
115
|
+
[all]
|
|
116
|
+
);
|
|
117
|
+
const schemas = useMemo(
|
|
118
|
+
() => all?.reduce(
|
|
119
|
+
(prev, payload) => {
|
|
120
|
+
prev[payload.schema] = (prev[payload.schema] ?? 0) + 1;
|
|
121
|
+
return prev;
|
|
122
|
+
},
|
|
123
|
+
{}
|
|
124
|
+
) ?? {},
|
|
125
|
+
[all]
|
|
126
|
+
);
|
|
127
|
+
return /* @__PURE__ */ jsx4(ArchivistStats, { addresses, boundWitnesses, payloads, schemas });
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// src/components/Card/CardContent.tsx
|
|
131
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
132
|
+
var ArchivistCardContent = ({ children, mod, ...props }) => {
|
|
133
|
+
const [config, setConfig] = useState3();
|
|
134
|
+
const [wallet] = useWallet();
|
|
135
|
+
useAsyncEffect2(
|
|
136
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
137
|
+
async (mounted) => {
|
|
138
|
+
if (wallet && mod) {
|
|
139
|
+
const wrapper = ModuleWrapper.wrap(mod, wallet);
|
|
140
|
+
const payloads = await wrapper?.state();
|
|
141
|
+
if (mounted()) {
|
|
142
|
+
setConfig(payloads?.[0]);
|
|
143
|
+
}
|
|
144
|
+
} else {
|
|
145
|
+
setConfig(void 0);
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
[mod, wallet]
|
|
149
|
+
);
|
|
150
|
+
return /* @__PURE__ */ jsx5(ModuleCardContent, { mod, ...props, children: /* @__PURE__ */ jsxs4(FlexGrowRow, { flexWrap: "wrap", justifyContent: "start", gap: 2, children: [
|
|
151
|
+
children,
|
|
152
|
+
/* @__PURE__ */ jsx5(ArchivistParents, { config })
|
|
153
|
+
] }) });
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
// src/components/Card/CardHeader.tsx
|
|
157
|
+
import { MemoryArchivistConfigSchema } from "@xyo-network/archivist-memory";
|
|
158
|
+
import { ModuleCardHeader } from "@xyo-network/react-module";
|
|
159
|
+
import { useMemo as useMemo2 } from "react";
|
|
160
|
+
import { Fragment as Fragment3, jsx as jsx6 } from "react/jsx-runtime";
|
|
161
|
+
var ArchivistStats2 = (archivist) => {
|
|
162
|
+
switch (archivist?.config.schema) {
|
|
163
|
+
case MemoryArchivistConfigSchema: {
|
|
164
|
+
return /* @__PURE__ */ jsx6(MemoryArchivistsStats, { archivist });
|
|
165
|
+
}
|
|
166
|
+
default: {
|
|
167
|
+
return /* @__PURE__ */ jsx6(Fragment3, {});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
var ArchivistCardHeader = ({ title, mod, ...props }) => {
|
|
172
|
+
const Stats = useMemo2(() => ArchivistStats2(mod), [mod]);
|
|
173
|
+
return /* @__PURE__ */ jsx6(ModuleCardHeader, { mod, title: title ?? mod?.config.name ?? "Archivist", action: Stats, ...props });
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
// src/components/Card/Card.tsx
|
|
177
|
+
import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
178
|
+
var ArchivistCard = ({ children, mod, ...props }) => {
|
|
179
|
+
return /* @__PURE__ */ jsxs5(Card, { ...props, children: [
|
|
180
|
+
/* @__PURE__ */ jsx7(ArchivistCardHeader, { mod }),
|
|
181
|
+
/* @__PURE__ */ jsx7(ArchivistCardContent, { mod }),
|
|
182
|
+
children,
|
|
183
|
+
/* @__PURE__ */ jsx7(ModuleCardActions, { mod })
|
|
184
|
+
] });
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
// src/components/Details/Details.tsx
|
|
188
|
+
import { ButtonGroup, Typography as Typography3 } from "@mui/material";
|
|
189
|
+
import { useAsyncEffect as useAsyncEffect3 } from "@xylabs/react-async-effect";
|
|
190
|
+
import { ButtonEx } from "@xylabs/react-button";
|
|
191
|
+
import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
|
|
192
|
+
import { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from "@xyo-network/archivist-model";
|
|
193
|
+
import { QueryBoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
|
|
194
|
+
import { useState as useState6 } from "react";
|
|
195
|
+
|
|
196
|
+
// src/hooks/node/useArchivistFromNode.tsx
|
|
197
|
+
import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
198
|
+
import { useModuleFromNode } from "@xyo-network/react-node";
|
|
199
|
+
var useArchivistFromNode = (nameOrAddressOrInstance, config) => {
|
|
200
|
+
const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config);
|
|
201
|
+
const instance = asArchivistInstance(mod);
|
|
202
|
+
if (mod && !instance) {
|
|
203
|
+
const error2 = new Error(`Resolved module is not a ArchivistInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`);
|
|
204
|
+
console.error(error2.message);
|
|
205
|
+
return [void 0, error2];
|
|
206
|
+
}
|
|
207
|
+
return [instance, error];
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
// src/hooks/node/useArchivistsFromNode.tsx
|
|
211
|
+
import { isArchivistInstance } from "@xyo-network/archivist-model";
|
|
212
|
+
import { useModulesFromNode } from "@xyo-network/react-node";
|
|
213
|
+
var useArchivistsFromNode = (filter, config) => {
|
|
214
|
+
const [modules, error] = useModulesFromNode(filter, config);
|
|
215
|
+
if (error) {
|
|
216
|
+
return [null, error];
|
|
217
|
+
}
|
|
218
|
+
return modules ? [
|
|
219
|
+
// eslint-disable-next-line unicorn/no-array-reduce
|
|
220
|
+
modules.reduce((prev, mod) => {
|
|
221
|
+
if (isArchivistInstance(mod)) {
|
|
222
|
+
prev.push(mod);
|
|
223
|
+
}
|
|
224
|
+
return prev;
|
|
225
|
+
}, []),
|
|
226
|
+
void 0
|
|
227
|
+
] : [modules, error];
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
// src/hooks/node/useWeakArchivistFromNode.tsx
|
|
231
|
+
import { isArchivistInstance as isArchivistInstance2 } from "@xyo-network/archivist-model";
|
|
232
|
+
import { useWeakModuleFromNode } from "@xyo-network/react-node";
|
|
233
|
+
var useWeakArchivistFromNode = (nameOrAddressOrInstance, config) => {
|
|
234
|
+
return useWeakModuleFromNode(nameOrAddressOrInstance, { identity: isArchivistInstance2, ...config });
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
// src/hooks/node/useWeakArchivistsFromNode.tsx
|
|
238
|
+
import { exists } from "@xylabs/exists";
|
|
239
|
+
import { asArchivistInstance as asArchivistInstance2 } from "@xyo-network/archivist-model";
|
|
240
|
+
import { useWeakModulesFromNode } from "@xyo-network/react-node";
|
|
241
|
+
var useWeakArchivistsFromNode = (filter, config) => {
|
|
242
|
+
const [modules, error] = useWeakModulesFromNode(filter, config);
|
|
243
|
+
if (error) {
|
|
244
|
+
return [null, error];
|
|
245
|
+
}
|
|
246
|
+
return [
|
|
247
|
+
modules?.map((mod) => {
|
|
248
|
+
const instance = asArchivistInstance2(mod?.deref());
|
|
249
|
+
if (instance) {
|
|
250
|
+
return new WeakRef(instance);
|
|
251
|
+
}
|
|
252
|
+
}).filter(exists) ?? [],
|
|
253
|
+
void 0
|
|
254
|
+
];
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
// src/hooks/queries/useArchivistAll.tsx
|
|
258
|
+
import { usePromise } from "@xylabs/react-promise";
|
|
259
|
+
import { useRefresh } from "@xyo-network/react-module";
|
|
260
|
+
import { useState as useState4 } from "react";
|
|
261
|
+
var useArchivistAll = (archivist) => {
|
|
262
|
+
const [error, setError] = useState4();
|
|
263
|
+
const [enabled, refresh] = useRefresh();
|
|
264
|
+
const payloads = usePromise(async () => {
|
|
265
|
+
try {
|
|
266
|
+
if (enabled) {
|
|
267
|
+
return await archivist?.all?.();
|
|
268
|
+
}
|
|
269
|
+
} catch (ex) {
|
|
270
|
+
const error2 = ex;
|
|
271
|
+
setError(error2);
|
|
272
|
+
}
|
|
273
|
+
}, [archivist, enabled]);
|
|
274
|
+
return [payloads, error, refresh];
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
// src/hooks/queries/useArchivistGet.tsx
|
|
278
|
+
import { usePromise as usePromise2 } from "@xylabs/react-promise";
|
|
279
|
+
import { useRefresh as useRefresh2 } from "@xyo-network/react-module";
|
|
280
|
+
var useArchivistGet = (archivist, hashes) => {
|
|
281
|
+
const [enabled, refresh] = useRefresh2();
|
|
282
|
+
const [payloads, error] = usePromise2(async () => {
|
|
283
|
+
if (enabled && archivist && hashes) {
|
|
284
|
+
return await archivist.get(hashes);
|
|
285
|
+
}
|
|
286
|
+
}, [archivist, hashes, enabled]);
|
|
287
|
+
return [payloads, error, refresh];
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
// src/hooks/queries/useWeakArchivistAll.tsx
|
|
291
|
+
import { usePromise as usePromise3 } from "@xylabs/react-promise";
|
|
292
|
+
import { useRefresh as useRefresh3 } from "@xyo-network/react-module";
|
|
293
|
+
import { useState as useState5 } from "react";
|
|
294
|
+
var useWeakArchivistAll = (archivist) => {
|
|
295
|
+
const [error, setError] = useState5();
|
|
296
|
+
const [enabled, refresh] = useRefresh3();
|
|
297
|
+
const payloads = usePromise3(async () => {
|
|
298
|
+
try {
|
|
299
|
+
if (enabled) {
|
|
300
|
+
return await archivist?.deref()?.all?.();
|
|
301
|
+
}
|
|
302
|
+
} catch (ex) {
|
|
303
|
+
const error2 = ex;
|
|
304
|
+
setError(error2);
|
|
305
|
+
}
|
|
306
|
+
}, [archivist, enabled]);
|
|
307
|
+
return [payloads, error, refresh];
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
// src/hooks/queries/useWeakArchivistGet.tsx
|
|
311
|
+
import { usePromise as usePromise4 } from "@xylabs/react-promise";
|
|
312
|
+
import { useRefresh as useRefresh4 } from "@xyo-network/react-module";
|
|
313
|
+
var useWeakArchivistGet = (archivist, hashes) => {
|
|
314
|
+
const [enabled, refresh] = useRefresh4();
|
|
315
|
+
const [payloads, error] = usePromise4(async () => {
|
|
316
|
+
const archivistInstance = archivist?.deref();
|
|
317
|
+
if (enabled && archivistInstance && hashes) {
|
|
318
|
+
return await archivistInstance.get(hashes);
|
|
319
|
+
}
|
|
320
|
+
}, [archivist, hashes, enabled]);
|
|
321
|
+
return [payloads, error, refresh];
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
// src/components/Details/Details.tsx
|
|
325
|
+
import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
326
|
+
var testQueryCommit = { schema: ArchivistCommitQuerySchema };
|
|
327
|
+
var testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryCommit);
|
|
328
|
+
var testQueryClear = { schema: ArchivistClearQuerySchema };
|
|
329
|
+
var testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryClear);
|
|
330
|
+
var ArchivistDetails = ({ address, ...props }) => {
|
|
331
|
+
const [archivist] = useWeakArchivistFromNode(address);
|
|
332
|
+
const [payloads, setPayloads] = useState6();
|
|
333
|
+
const [refresh, setRefresh] = useState6(0);
|
|
334
|
+
const [queryableCommit, setQueryableCommit] = useState6(false);
|
|
335
|
+
const [queryableClear, setQueryableClear] = useState6(false);
|
|
336
|
+
useAsyncEffect3(
|
|
337
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
338
|
+
async () => {
|
|
339
|
+
const instance = archivist?.deref();
|
|
340
|
+
if (instance) {
|
|
341
|
+
const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build();
|
|
342
|
+
const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build();
|
|
343
|
+
setQueryableCommit(await instance?.queryable(commitBW, [testQueryCommit]));
|
|
344
|
+
setQueryableClear(await instance?.queryable(clearBW, [testQueryClear]));
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
[archivist]
|
|
348
|
+
);
|
|
349
|
+
useAsyncEffect3(
|
|
350
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
351
|
+
async (mounted) => {
|
|
352
|
+
const payloads2 = await archivist?.deref()?.all?.();
|
|
353
|
+
if (mounted()) {
|
|
354
|
+
setPayloads(payloads2);
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
[archivist, refresh]
|
|
358
|
+
);
|
|
359
|
+
return /* @__PURE__ */ jsxs6(FlexCol2, { ...props, children: [
|
|
360
|
+
/* @__PURE__ */ jsx8(Typography3, { children: `Payloads: ${payloads ? payloads.length : "-"}` }),
|
|
361
|
+
/* @__PURE__ */ jsxs6(ButtonGroup, { children: [
|
|
362
|
+
/* @__PURE__ */ jsx8(ButtonEx, { disabled: payloads?.length === 0 || !archivist || !queryableCommit, onClick: () => archivist?.deref()?.commit?.(), children: "Commit" }),
|
|
363
|
+
/* @__PURE__ */ jsx8(ButtonEx, { disabled: !archivist || !queryableClear, onClick: () => archivist?.deref()?.clear?.(), children: "Clear" }),
|
|
364
|
+
/* @__PURE__ */ jsx8(
|
|
365
|
+
ButtonEx,
|
|
366
|
+
{
|
|
367
|
+
disabled: !archivist,
|
|
368
|
+
onClick: () => {
|
|
369
|
+
setRefresh(refresh + 1);
|
|
370
|
+
},
|
|
371
|
+
children: "Refresh"
|
|
372
|
+
}
|
|
373
|
+
)
|
|
374
|
+
] })
|
|
375
|
+
] });
|
|
376
|
+
};
|
|
377
|
+
export {
|
|
378
|
+
ArchivistCard,
|
|
379
|
+
ArchivistCardContent,
|
|
380
|
+
ArchivistCardHeader,
|
|
381
|
+
ArchivistDetails,
|
|
382
|
+
useArchivistAll,
|
|
383
|
+
useArchivistFromNode,
|
|
384
|
+
useArchivistGet,
|
|
385
|
+
useArchivistsFromNode,
|
|
386
|
+
useWeakArchivistAll,
|
|
387
|
+
useWeakArchivistFromNode,
|
|
388
|
+
useWeakArchivistGet,
|
|
389
|
+
useWeakArchivistsFromNode
|
|
390
|
+
};
|
|
2
391
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
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","../../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":["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":["Card","ModuleCardActions","useAsyncEffect","FlexGrowRow","ModuleWrapper","ModuleCardContent","useWallet","useState","ListItem","Typography","Fragment","jsx","jsxs","ArchivistParent","archivistType","parentArchivists","address","ArrowRightRoundedIcon","Collapse","IconButton","List","Paper","Typography","FlexCol","useState","Fragment","jsx","jsxs","ArchivistParents","config","props","parentArchivistCollapse","setParentArchivistCollapse","useState","commit","read","write","FlexCol","Typography","IconButton","ArrowRightRoundedIcon","Collapse","Paper","List","ArchivistParent","Badge","Tooltip","FlexRow","BsFileEarmarkCode","VscOrganization","VscSymbolMethod","VscSymbolNamespace","jsx","jsxs","ArchivistStats","addresses","boundWitnesses","payloads","schemas","useAsyncEffect","ArchivistAllQuerySchema","asBoundWitness","BoundWitnessSchema","useCallback","useEffect","useMemo","useState","jsx","MemoryArchivistsStats","archivist","all","setAll","useState","getAll","useCallback","useEffect","listeners","ArchivistAllQuerySchema","insertListener","clearListener","listener","useAsyncEffect","payloads","useMemo","payload","BoundWitnessSchema","boundWitnesses","addresses","prev","w","asBoundWitness","address","schemas","ArchivistStats","jsx","jsxs","ArchivistCardContent","children","mod","props","config","setConfig","useState","wallet","useWallet","useAsyncEffect","mounted","payloads","ModuleWrapper","ModuleCardContent","FlexGrowRow","ArchivistParents","MemoryArchivistConfigSchema","ModuleCardHeader","useMemo","Fragment","jsx","ArchivistStats","archivist","MemoryArchivistConfigSchema","MemoryArchivistsStats","ArchivistCardHeader","title","mod","props","Stats","useMemo","ModuleCardHeader","jsx","jsxs","ArchivistCard","children","mod","props","Card","ArchivistCardHeader","ArchivistCardContent","ModuleCardActions","ButtonGroup","Typography","useAsyncEffect","ButtonEx","FlexCol","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","QueryBoundWitnessBuilder","useState","asArchivistInstance","useModuleFromNode","useArchivistFromNode","nameOrAddressOrInstance","config","mod","error","instance","isArchivistInstance","useModulesFromNode","useArchivistsFromNode","filter","config","modules","error","prev","mod","isArchivistInstance","useWeakModuleFromNode","useWeakArchivistFromNode","nameOrAddressOrInstance","config","exists","asArchivistInstance","useWeakModulesFromNode","useWeakArchivistsFromNode","filter","config","modules","error","mod","instance","usePromise","useRefresh","useState","useArchivistAll","archivist","error","setError","enabled","refresh","ex","usePromise","useRefresh","useArchivistGet","archivist","hashes","enabled","refresh","payloads","error","usePromise","useRefresh","useState","useWeakArchivistAll","archivist","error","setError","enabled","refresh","ex","usePromise","useRefresh","useWeakArchivistGet","archivist","hashes","enabled","refresh","payloads","error","archivistInstance","jsx","jsxs","testQueryCommit","ArchivistCommitQuerySchema","testQueryCommitBoundWitnessBuilder","QueryBoundWitnessBuilder","testQueryClear","ArchivistClearQuerySchema","testQueryClearBoundWitnessBuilder","ArchivistDetails","address","props","archivist","useWeakArchivistFromNode","payloads","setPayloads","useState","refresh","setRefresh","queryableCommit","setQueryableCommit","queryableClear","setQueryableClear","useAsyncEffect","instance","commitBW","clearBW","mounted","FlexCol","Typography","ButtonGroup","ButtonEx"]}
|
|
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","../../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":["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":";AAAA,SAAS,YAAuB;AAEhC,SAAS,yBAA4C;;;ACDrD,SAAS,kBAAAA,uBAAsB;AAC/B,SAAS,mBAAmB;AAE5B,SAAS,qBAAqB;AAC9B,SAAS,yBAA4C;AACrD,SAAS,iBAAiB;AAC1B,SAAgB,YAAAC,iBAAgB;;;ACPhC,SAAS,UAAU,kBAAkB;AAQnC,mBAMU,KAFF,YAJR;AADK,IAAM,kBAAgD,CAAC,EAAE,eAAe,iBAAiB,MAC9F,gCACG,4BAAkB,IAAI,CAAC,YAAY;AAClC,SACE,oBAAC,YACC,+BAAC,cAAW,SAAQ,aACjB;AAAA;AAAA,IAAc;AAAA,IAAE;AAAA,IACjB,oBAAC,cAAW,SAAS,WAAW,IAAI,EAAE,IAAI,IAAI,GAC3C,mBACH;AAAA,KACF,KANa,OAOf;AAEJ,CAAC,GACH;;;ACrBF,SAAS,qBAAqB,6BAA6B;AAC3D,SAAS,UAAU,YAAY,MAAM,OAAO,cAAAC,mBAAkB;AAC9D,SAAuB,eAAe;AAEtC,SAAS,gBAAgB;AAcrB,qBAAAC,WAIQ,OAAAC,MADF,QAAAC,aAHN;AANG,IAAM,mBAAoD,CAAC,EAAE,QAAQ,GAAG,MAAM,MAAM;AACzF,QAAM,CAAC,yBAAyB,0BAA0B,IAAI,SAAS,KAAK;AAE5E,QAAM,EAAE,QAAQ,MAAM,MAAM,IAAI,QAAQ,WAAW,CAAC;AAEpD,SACE,gBAAAD,KAAAD,WAAA,EACG,oBAAU,QAAQ,QACjB,gBAAAE,MAAC,WAAQ,YAAW,SAAS,GAAG,OAC9B;AAAA,oBAAAA,MAAC,UAAK,SAAS,MAAM,2BAA2B,CAAC,uBAAuB,GACtE;AAAA,sBAAAD,KAACE,aAAA,EAAW,SAAQ,aAAY,IAAI,EAAE,QAAQ,WAAW,SAAS,eAAe,GAAG,qBAEpF;AAAA,MACA,gBAAAF,KAAC,cAAW,MAAK,SACf,0BAAAA,KAAC,yBAAsB,IAAI,EAAE,QAAQ,0BAA0B,UAAU,QAAQ,YAAY,WAAW,GAAG,GAC7G;AAAA,OACF;AAAA,IACA,gBAAAA,KAAC,YAAS,IAAI,yBACZ,0BAAAA,KAAC,SAAM,WAAW,GAChB,0BAAAC,MAAC,QACC;AAAA,sBAAAD,KAAC,mBAAgB,eAAc,UAAS,kBAAkB,QAAQ;AAAA,MAClE,gBAAAA,KAAC,mBAAgB,eAAc,QAAO,kBAAkB,MAAM;AAAA,MAC9D,gBAAAA,KAAC,mBAAgB,eAAc,SAAQ,kBAAkB,OAAO;AAAA,OAClE,GACF,GACF;AAAA,KACF,IACA,MACJ;AAEJ;;;AC1CA,SAAS,OAAO,eAAe;AAC/B,SAAS,eAAe;AAGxB,SAAS,yBAAyB;AAElC,SAAS,iBAAiB,iBAAiB,0BAA0B;AAWjE,SAIQ,OAAAG,MAJR,QAAAC,aAAA;AAFG,IAAM,iBAAgD,CAAC,EAAE,YAAY,CAAC,GAAG,gBAAgB,UAAU,UAAU,CAAC,EAAE,MAAM;AAC3H,SACE,gBAAAA,MAAC,WAAQ,KAAK,GAAG,IAAI,KAClB;AAAA,cAAU,SACT,gBAAAD,KAAC,WAAQ,OAAM,YACb,0BAAAA,KAAC,SAAM,cAAc,UAAU,QAAQ,OAAM,WAC3C,0BAAAA,KAAC,sBAAmB,MAAM,IAAI,GAChC,GACF,IACA;AAAA,IACD,gBAAgB,SACf,gBAAAA,KAAC,WAAQ,OAAM,UACb,0BAAAA,KAAC,SAAM,cAAc,gBAAgB,QAAQ,OAAM,WACjD,0BAAAA,KAAC,mBAAgB,MAAM,IAAI,GAC7B,GACF,IACA;AAAA,IACD,OAAO,QAAQ,OAAO,EAAE,SAAS,IAChC,gBAAAA,KAAC,WAAQ,OAAM,WACb,0BAAAA,KAAC,SAAM,cAAc,OAAO,QAAQ,OAAO,EAAE,QAAQ,OAAM,WACzD,0BAAAA,KAAC,qBAAkB,MAAM,IAAI,GAC/B,GACF,IACA;AAAA,IACD,OAAO,QAAQ,SAAS,EAAE,SAAS,IAClC,gBAAAA,KAAC,WAAQ,OAAM,aACb,0BAAAA,KAAC,SAAM,cAAc,OAAO,QAAQ,SAAS,EAAE,QAAQ,OAAM,WAC3D,0BAAAA,KAAC,mBAAgB,MAAM,IAAI,GAC7B,GACF,IACA;AAAA,KACJ;AAEJ;;;AChDA,SAAS,sBAAsB;AAC/B,SAAS,+BAAkD;AAC3D,SAAS,gBAAgB,0BAA0B;AAGnD,SAAS,aAAa,WAAW,SAAS,YAAAE,iBAAgB;AA6EjD,gBAAAC,YAAA;AArEF,IAAM,wBAA6D,CAAC,EAAE,UAAU,MAAM;AAC3F,QAAM,CAAC,KAAK,MAAM,IAAIC,UAA2B;AAEjD,QAAM,SAAS,YAAY,OAAOC,eAAkC;AAClE,UAAMC,OAAM,MAAMD,YAAW,MAAM;AACnC,WAAOC,IAAG;AAAA,EACZ,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACd,UAAM,YAAwC,CAAC;AAE/C,QAAI,WAAW,QAAQ,SAAS,uBAAuB,GAAG;AACxD,YAAM,iBAAiB,UAAU,GAAG,YAAY,YAAY;AAC1D,cAAM,OAAO,SAAS;AAAA,MACxB,CAAC;AACD,gBAAU,KAAK,cAAc;AAE7B,YAAM,gBAAgB,UAAU,GAAG,WAAW,YAAY;AACxD,cAAM,OAAO,SAAS;AAAA,MACxB,CAAC;AACD,gBAAU,KAAK,aAAa;AAAA,IAC9B;AAEA,WAAO,MAAM;AACX,iBAAW,YAAY,UAAW,YAAW;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,WAAW,MAAM,CAAC;AAEtB;AAAA;AAAA,IAEE,YAAY;AACV,UAAI,WAAW,QAAQ,SAAS,uBAAuB,GAAG;AACxD,cAAM,OAAO,SAAS;AAAA,MACxB,OAAO;AACL,eAAO,IAAI;AAAA,MACb;AAAA,IACF;AAAA,IACA,CAAC,WAAW,MAAM;AAAA,EACpB;AAEA,QAAM,WAAW,QAAQ,MAAO,QAAQ,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,YAAY,QAAQ,WAAW,kBAAkB,GAAI,CAAC,GAAG,CAAC;AAC3H,QAAM,iBAAiB,QAAQ,MAAO,QAAQ,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,YAAY,QAAQ,WAAW,kBAAkB,GAAI,CAAC,GAAG,CAAC;AACjI,QAAM,YAAY;AAAA,IAChB,MACE,KAAK;AAAA,MACH,CAAC,MAAM,YAAY;AACjB,cAAM,IAAI,eAAe,OAAO;AAChC,YAAI,GAAG;AACL,qBAAW,WAAW,GAAG,aAAa,CAAC,GAAG;AACxC,iBAAK,OAAO,KAAK,KAAK,OAAO,KAAK,KAAK;AAAA,UACzC;AACF,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH,KAAK,CAAC;AAAA,IACR,CAAC,GAAG;AAAA,EACN;AACA,QAAM,UAAU;AAAA,IACd,MACE,KAAK;AAAA,MACH,CAAC,MAAM,YAAY;AACjB,aAAK,QAAQ,MAAM,KAAK,KAAK,QAAQ,MAAM,KAAK,KAAK;AACrD,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH,KAAK,CAAC;AAAA,IACR,CAAC,GAAG;AAAA,EACN;AAEA,SAAO,gBAAAH,KAAC,kBAAe,WAAsB,gBAAgC,UAAoB,SAAkB;AACrH;;;AJlDM,SAEE,OAAAI,MAFF,QAAAC,aAAA;AAtBC,IAAM,uBAA0F,CAAC,EAAE,UAAU,KAAK,GAAG,MAAM,MAAM;AACtI,QAAM,CAAC,QAAQ,SAAS,IAAIC,UAA0B;AACtD,QAAM,CAAC,MAAM,IAAI,UAAU;AAE3B,EAAAC;AAAA;AAAA,IAEE,OAAO,YAAY;AACjB,UAAI,UAAU,KAAK;AACjB,cAAM,UAAU,cAAc,KAAK,KAAK,MAAM;AAC9C,cAAM,WAAW,MAAM,SAAS,MAAM;AACtC,YAAI,QAAQ,GAAG;AACb,oBAAU,WAAW,CAAC,CAAoB;AAAA,QAC5C;AAAA,MACF,OAAO;AACL,kBAAU,MAAS;AAAA,MACrB;AAAA,IACF;AAAA,IACA,CAAC,KAAK,MAAM;AAAA,EACd;AAEA,SACE,gBAAAH,KAAC,qBAAkB,KAAW,GAAG,OAC/B,0BAAAC,MAAC,eAAY,UAAS,QAAO,gBAAe,SAAQ,KAAK,GACtD;AAAA;AAAA,IACD,gBAAAD,KAAC,oBAAiB,QAAgB;AAAA,KACpC,GACF;AAEJ;;;AKtCA,SAAS,mCAAmC;AAE5C,SAAS,wBAA2C;AACpD,SAAS,WAAAI,gBAAe;AAOX,SAGA,YAAAC,WAHA,OAAAC,YAAA;AAHb,IAAMC,kBAAiB,CAAC,cAAkC;AACxD,UAAQ,WAAW,OAAO,QAAQ;AAAA,IAChC,KAAK,6BAA6B;AAChC,aAAO,gBAAAD,KAAC,yBAAsB,WAAsB;AAAA,IACtD;AAAA,IACA,SAAS;AACP,aAAO,gBAAAA,KAAAD,WAAA,EAAE;AAAA,IACX;AAAA,EACF;AACF;AAEO,IAAM,sBAAwF,CAAC,EAAE,OAAO,KAAK,GAAG,MAAM,MAAM;AACjI,QAAM,QAAQG,SAAQ,MAAMD,gBAAe,GAAG,GAAG,CAAC,GAAG,CAAC;AACtD,SAAO,gBAAAD,KAAC,oBAAiB,KAAU,OAAO,SAAS,KAAK,OAAO,QAAQ,aAAa,QAAQ,OAAQ,GAAG,OAAO;AAChH;;;ANbI,SACE,OAAAG,MADF,QAAAC,aAAA;AAFG,IAAM,gBAA4E,CAAC,EAAE,UAAU,KAAK,GAAG,MAAM,MAAM;AACxH,SACE,gBAAAA,MAAC,QAAM,GAAG,OACR;AAAA,oBAAAD,KAAC,uBAAoB,KAAU;AAAA,IAC/B,gBAAAA,KAAC,wBAAqB,KAAU;AAAA,IAC/B;AAAA,IACD,gBAAAA,KAAC,qBAAkB,KAAU;AAAA,KAC/B;AAEJ;;;AOhBA,SAAS,aAAa,cAAAE,mBAAkB;AACxC,SAAS,kBAAAC,uBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAuB,WAAAC,gBAAe;AACtC,SAAS,2BAA2B,kCAAkC;AACtE,SAAS,gCAAgC;AAEzC,SAAS,YAAAC,iBAAgB;;;ACLzB,SAA4B,2BAA2B;AACvD,SAA+B,yBAAyB;AAGjD,IAAM,uBAAuB,CAClC,yBACA,WACuD;AACvD,QAAM,CAAC,KAAK,KAAK,IAAI,kBAAkB,yBAAyB,MAAM;AACtE,QAAM,WAAW,oBAAoB,GAAG;AACxC,MAAI,OAAO,CAAC,UAAU;AACpB,UAAMC,SAAQ,IAAI,MAAM,+CAA+C,IAAI,QAAQ,MAAM,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,GAAG;AAC/H,YAAQ,MAAMA,OAAM,OAAO;AAC3B,WAAO,CAAC,QAAWA,MAAK;AAAA,EAC1B;AACA,SAAO,CAAC,UAAU,KAAK;AACzB;;;AChBA,SAA4B,2BAA2B;AAEvD,SAA+B,0BAA0B;AAGlD,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,SAAO,UACH;AAAA;AAAA,IAEE,QAAQ,OAA4B,CAAC,MAAM,QAAQ;AACjD,UAAI,oBAAoB,GAAG,GAAG;AAC5B,aAAK,KAAK,GAAG;AAAA,MACf;AACA,aAAO;AAAA,IACT,GAAG,CAAC,CAAC;AAAA,IACL;AAAA,EACF,IACA,CAAC,SAAS,KAAK;AACrB;;;AC3BA,SAA4B,uBAAAC,4BAA2B;AACvD,SAAS,6BAAuD;AAEzD,IAAM,2BAA2B,CACtC,yBACA,WACgE;AAChE,SAAO,sBAAyC,yBAAyB,EAAE,UAAUA,sBAAqB,GAAG,OAAO,CAAC;AACvH;;;ACRA,SAAS,cAAc;AACvB,SAA4B,uBAAAC,4BAA2B;AAEvD,SAA+B,8BAA8B;AAEtD,IAAM,4BAA4B,CACvC,QACA,WACyE;AACzE,QAAM,CAAC,SAAS,KAAK,IAAI,uBAAuB,QAAQ,MAAM;AAC9D,MAAI,OAAO;AACT,WAAO,CAAC,MAAM,KAAK;AAAA,EACrB;AACA,SAAO;AAAA,IACL,SACI,IAAI,CAAC,QAAQ;AACb,YAAM,WAAWA,qBAAoB,KAAK,MAAM,CAAC;AACjD,UAAI,UAAU;AACZ,eAAO,IAAI,QAAQ,QAAQ;AAAA,MAC7B;AAAA,IACF,CAAC,EACA,OAAO,MAAM,KAAK,CAAC;AAAA,IACtB;AAAA,EACF;AACF;;;ACxBA,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAC3B,SAAS,YAAAC,iBAAgB;AAElB,IAAM,kBAAkB,CAAC,cAAiC;AAC/D,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAgB;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;;;ACpBA,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;;;ACnBA,SAAS,cAAAE,mBAAkB;AAE3B,SAAS,cAAAC,mBAAkB;AAC3B,SAAS,YAAAC,iBAAgB;AAElB,IAAM,sBAAsB,CAAC,cAA0C;AAC5E,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAgB;AAC1C,QAAM,CAAC,SAAS,OAAO,IAAID,YAAW;AAEtC,QAAM,WAAWD,YAAW,YAAY;AACtC,QAAI;AACF,UAAI,SAAS;AACX,eAAO,MAAM,WAAW,MAAM,GAAG,MAAM;AAAA,MACzC;AAAA,IACF,SAAS,IAAI;AACX,YAAMG,SAAQ;AACd,eAASA,MAAK;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,WAAW,OAAO,CAAC;AAEvB,SAAO,CAAC,UAAU,OAAO,OAAO;AAClC;;;ACpBA,SAAS,cAAAC,mBAAkB;AAG3B,SAA0B,cAAAC,mBAAkB;AAErC,IAAM,sBAAsB,CACjC,WACA,WAC0D;AAC1D,QAAM,CAAC,SAAS,OAAO,IAAIA,YAAW;AAEtC,QAAM,CAAC,UAAU,KAAK,IAAID,YAAW,YAAY;AAC/C,UAAM,oBAAoB,WAAW,MAAM;AAC3C,QAAI,WAAW,qBAAqB,QAAQ;AAC1C,aAAQ,MAAM,kBAAkB,IAAI,MAAM;AAAA,IAC5C;AAAA,EACF,GAAG,CAAC,WAAW,QAAQ,OAAO,CAAC;AAE/B,SAAO,CAAC,UAAU,OAAO,OAAO;AAClC;;;ARmCM,gBAAAE,MACA,QAAAC,aADA;AA5CN,IAAM,kBAAkB,EAAE,QAAQ,2BAA2B;AAC7D,IAAM,qCAAqC,IAAI,yBAAyB,EAAE,MAAM,eAAe;AAE/F,IAAM,iBAAiB,EAAE,QAAQ,0BAA0B;AAC3D,IAAM,oCAAoC,IAAI,yBAAyB,EAAE,MAAM,cAAc;AAMtF,IAAM,mBAA+C,CAAC,EAAE,SAAS,GAAG,MAAM,MAAM;AACrF,QAAM,CAAC,SAAS,IAAI,yBAAyB,OAAO;AACpD,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAoB;AACpD,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,CAAC;AACxC,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAAS,KAAK;AAC5D,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,UAAS,KAAK;AAE1D,EAAAC;AAAA;AAAA,IAEE,YAAY;AACV,YAAM,WAAW,WAAW,MAAM;AAClC,UAAI,UAAU;AACZ,cAAM,CAAC,QAAQ,IAAI,OAAO,MAAM,oCAAoC,MAAM;AAC1E,cAAM,CAAC,OAAO,IAAI,OAAO,MAAM,mCAAmC,MAAM;AACxE,2BAAmB,MAAM,UAAU,UAAU,UAAU,CAAC,eAAe,CAAC,CAAC;AACzE,0BAAkB,MAAM,UAAU,UAAU,SAAS,CAAC,cAAc,CAAC,CAAC;AAAA,MACxE;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA,EAAAA;AAAA;AAAA,IAEE,OAAO,YAAY;AACjB,YAAMC,YAAW,MAAM,WAAW,MAAM,GAAG,MAAM;AACjD,UAAI,QAAQ,GAAG;AACb,oBAAYA,SAAQ;AAAA,MACtB;AAAA,IACF;AAAA,IACA,CAAC,WAAW,OAAO;AAAA,EACrB;AAEA,SACE,gBAAAH,MAACI,UAAA,EAAS,GAAG,OACX;AAAA,oBAAAL,KAACM,aAAA,EAAY,uBAAa,WAAW,SAAS,SAAS,GAAG,IAAG;AAAA,IAC7D,gBAAAL,MAAC,eACC;AAAA,sBAAAD,KAAC,YAAS,UAAU,UAAU,WAAW,KAAK,CAAC,aAAa,CAAC,iBAAiB,SAAS,MAAM,WAAW,MAAM,GAAG,SAAS,GAAG,oBAE7H;AAAA,MACA,gBAAAA,KAAC,YAAS,UAAU,CAAC,aAAa,CAAC,gBAAgB,SAAS,MAAM,WAAW,MAAM,GAAG,QAAQ,GAAG,mBAEjG;AAAA,MACA,gBAAAA;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":["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","isArchivistInstance","asArchivistInstance","useState","error","usePromise","useRefresh","usePromise","useRefresh","useState","error","usePromise","useRefresh","jsx","jsxs","useState","useAsyncEffect","payloads","FlexCol","Typography"]}
|