@xyo-network/react-archivist 2.67.17 → 2.68.0-rc.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 +1 @@
1
- {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AASzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
1
+ {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAQzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AASzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
1
+ {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAQzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AASzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
1
+ {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAQzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
@@ -96,7 +96,6 @@ var ArchivistStats = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }
96
96
  var import_react_async_effect = require("@xylabs/react-async-effect");
97
97
  var import_archivist_model = require("@xyo-network/archivist-model");
98
98
  var import_boundwitness_model = require("@xyo-network/boundwitness-model");
99
- var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
100
99
  var import_react2 = require("react");
101
100
  var import_jsx_runtime4 = require("react/jsx-runtime");
102
101
  var MemoryArchivistsStats = ({ archivist }) => {
@@ -138,7 +137,7 @@ var MemoryArchivistsStats = ({ archivist }) => {
138
137
  const addresses = (0, import_react2.useMemo)(
139
138
  () => all?.reduce(
140
139
  (prev, payload) => {
141
- const w = import_boundwitness_wrapper.BoundWitnessWrapper.tryParse(payload);
140
+ const w = (0, import_boundwitness_model.asBoundWitness)(payload);
142
141
  if (w?.addresses)
143
142
  for (const address of w?.addresses ?? []) {
144
143
  prev[address] = (prev[address] ?? 0) + 1;
@@ -298,9 +297,9 @@ var useArchivistGet = (archivist, hashes) => {
298
297
  // src/components/Details/Details.tsx
299
298
  var import_jsx_runtime8 = require("react/jsx-runtime");
300
299
  var testQueryCommit = { schema: import_archivist3.ArchivistCommitQuerySchema };
301
- var testQueryCommitBoundWitnessBuilder = new import_boundwitness_builder.QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit);
300
+ var testQueryCommitBoundWitnessBuilder = new import_boundwitness_builder.QueryBoundWitnessBuilder().query(testQueryCommit);
302
301
  var testQueryClear = { schema: import_archivist3.ArchivistClearQuerySchema };
303
- var testQueryClearBoundWitnessBuilder = new import_boundwitness_builder.QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear);
302
+ var testQueryClearBoundWitnessBuilder = new import_boundwitness_builder.QueryBoundWitnessBuilder().query(testQueryClear);
304
303
  var ArchivistDetails = ({ address, ...props }) => {
305
304
  const [archivist] = useArchivistFromNode(address);
306
305
  const [payloads, setPayloads] = (0, import_react6.useState)();
@@ -311,8 +310,8 @@ var ArchivistDetails = ({ address, ...props }) => {
311
310
  // eslint-disable-next-line react-hooks/exhaustive-deps
312
311
  async () => {
313
312
  if (archivist) {
314
- const [commitBW] = await testQueryCommitBoundWitnessBuilder.build();
315
- const [clearBW] = await testQueryClearBoundWitnessBuilder.build();
313
+ const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build();
314
+ const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build();
316
315
  setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]));
317
316
  setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]));
318
317
  }
@@ -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/queries/useArchivistAll.tsx","../../src/hooks/queries/useArchivistGet.tsx"],"sourcesContent":["export * from './components'\nexport * from './hooks'\n","import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\n\nimport { ArchivistCardContent } from './CardContent'\nimport { ArchivistCardHeader } from './CardHeader'\n\nexport const ArchivistCard: React.FC<CardProps & ModuleRenderProps<ArchivistInstance>> = ({ children, module, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader module={module} />\n <ArchivistCardContent module={module} />\n {children}\n <ModuleCardActions module={module} />\n </Card>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { ArchivistConfig, ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleWrapper } from '@xyo-network/module-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, module, ...props }) => {\n const [config, setConfig] = useState<ArchivistConfig>()\n const [wallet] = useWallet()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (wallet && module) {\n const wrapper = ModuleWrapper.wrap(module, wallet)\n const payloads = await wrapper?.discover()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [module, wallet],\n )\n\n return (\n <ModuleCardContent module={module} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {children}\n <ArchivistParents config={config} />\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { ListItem, Typography } from '@mui/material'\n\nexport interface ArchivistTypeProps {\n archivistType?: 'Commit' | 'Read' | 'Write'\n parentArchivists?: string[]\n}\n\nexport const ArchivistParent: React.FC<ArchivistTypeProps> = ({ archivistType, parentArchivists }) => (\n <>\n {parentArchivists?.map((address) => {\n return (\n <ListItem key={address}>\n <Typography variant=\"subtitle2\">\n {archivistType}:{' '}\n <Typography variant={'caption'} sx={{ ml: 0.5 }}>\n {address}\n </Typography>\n </Typography>\n </ListItem>\n )\n })}\n </>\n)\n","import { ArrowRightRounded as ArrowRightRoundedIcon } from '@mui/icons-material'\nimport { Collapse, IconButton, List, Paper, Typography } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistConfig } from '@xyo-network/archivist'\nimport { useState } from 'react'\n\nimport { ArchivistParent } from './ArchivistParent'\n\nexport interface ArchivistParentsProps extends FlexBoxProps {\n config?: ArchivistConfig\n}\n\nexport const ArchivistParents: React.FC<ArchivistParentsProps> = ({ config, ...props }) => {\n const [parentArchivistCollapse, setParentArchivistCollapse] = useState(false)\n\n const { commit, read, write } = config?.parents ?? {}\n\n return (\n <>\n {commit || read || write ? (\n <FlexCol alignItems=\"start\" {...props}>\n <span onClick={() => setParentArchivistCollapse(!parentArchivistCollapse)}>\n <Typography variant=\"subtitle2\" sx={{ cursor: 'pointer', display: 'inline-block' }}>\n Parents\n </Typography>\n <IconButton size=\"small\">\n <ArrowRightRoundedIcon sx={{ rotate: parentArchivistCollapse ? '90deg' : '0deg', transition: 'all .25s' }} />\n </IconButton>\n </span>\n <Collapse in={parentArchivistCollapse}>\n <Paper elevation={2}>\n <List>\n <ArchivistParent archivistType=\"Commit\" parentArchivists={commit} />\n <ArchivistParent archivistType=\"Read\" parentArchivists={read} />\n <ArchivistParent archivistType=\"Write\" parentArchivists={write} />\n </List>\n </Paper>\n </Collapse>\n </FlexCol>\n ) : null}\n </>\n )\n}\n","import { Badge, Tooltip } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\n// eslint-disable-next-line import/no-internal-modules\nimport { BsFileEarmarkCode } from 'react-icons/bs/index.js'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc/index.js'\n\nexport interface ArchivistStatsProps {\n addresses?: Record<string, number>\n boundWitnesses?: Payload[] | null\n payloads?: Payload[] | null\n schemas?: Record<string, number>\n}\n\nexport const ArchivistStats: React.FC<ArchivistStatsProps> = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {\n return (\n <FlexRow gap={2} mr={0.5}>\n {payloads?.length ? (\n <Tooltip title=\"Payloads\">\n <Badge badgeContent={payloads?.length} color=\"primary\">\n <VscSymbolNamespace size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {boundWitnesses?.length ? (\n <Tooltip title=\"Blocks\">\n <Badge badgeContent={boundWitnesses?.length} color=\"primary\">\n <VscSymbolMethod size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {Object.entries(schemas).length > 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 { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\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 = BoundWitnessWrapper.tryParse(payload) as BoundWitnessWrapper | undefined\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 { ArchivistInstance, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { useMemo } from 'react'\n\nimport { MemoryArchivistsStats } from './components'\n\nconst ArchivistStats = (archivist?: ArchivistInstance) => {\n switch (archivist?.config.schema) {\n case MemoryArchivistConfigSchema: {\n return <MemoryArchivistsStats archivist={archivist} />\n }\n default: {\n return <></>\n }\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, module, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(module), [module])\n return <ModuleCardHeader module={module} title={title ?? module?.config.name ?? 'Archivist'} action={Stats} {...props} />\n}\n","import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit)\n\nconst testQueryClear = { schema: ArchivistClearQuerySchema }\nconst testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear)\n\nexport interface ArchivistDetails extends FlexBoxProps {\n address?: string\n}\n\nexport const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props }) => {\n const [archivist] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await testQueryCommitBoundWitnessBuilder.build()\n const [clearBW] = await testQueryClearBoundWitnessBuilder.build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useArchivistAll = (archivist: ArchivistInstance) => {\n const [error, setError] = useState<Error>()\n const [enabled, refresh] = useRefresh()\n\n const payloads = usePromise(async () => {\n try {\n if (enabled) {\n return await archivist?.all?.()\n }\n } catch (ex) {\n const error = ex as Error\n setError(error)\n }\n }, [archivist, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { Payload } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useArchivistGet = <T extends Payload = Payload>(\n archivist?: ArchivistInstance | null,\n hashes?: string[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n if (enabled && archivist && hashes) {\n return (await archivist.get(hashes)) as T[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":"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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","module","import_react_module","import_react","import_jsx_runtime","ArchivistStats","module","import_jsx_runtime","module","import_material","import_react_async_effect","import_react_flexbox","import_archivist","import_react","import_archivist_model","module","error","import_archivist","import_react_node","module","import_react_module","import_react","error","import_react_promise","import_react_module","import_jsx_runtime","payloads"]}
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/queries/useArchivistAll.tsx","../../src/hooks/queries/useArchivistGet.tsx"],"sourcesContent":["export * from './components'\nexport * from './hooks'\n","import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\n\nimport { ArchivistCardContent } from './CardContent'\nimport { ArchivistCardHeader } from './CardHeader'\n\nexport const ArchivistCard: React.FC<CardProps & ModuleRenderProps<ArchivistInstance>> = ({ children, module, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader module={module} />\n <ArchivistCardContent module={module} />\n {children}\n <ModuleCardActions module={module} />\n </Card>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { ArchivistConfig, ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleWrapper } from '@xyo-network/module-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, module, ...props }) => {\n const [config, setConfig] = useState<ArchivistConfig>()\n const [wallet] = useWallet()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (wallet && module) {\n const wrapper = ModuleWrapper.wrap(module, wallet)\n const payloads = await wrapper?.discover()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [module, wallet],\n )\n\n return (\n <ModuleCardContent module={module} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {children}\n <ArchivistParents config={config} />\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { ListItem, Typography } from '@mui/material'\n\nexport interface ArchivistTypeProps {\n archivistType?: 'Commit' | 'Read' | 'Write'\n parentArchivists?: string[]\n}\n\nexport const ArchivistParent: React.FC<ArchivistTypeProps> = ({ archivistType, parentArchivists }) => (\n <>\n {parentArchivists?.map((address) => {\n return (\n <ListItem key={address}>\n <Typography variant=\"subtitle2\">\n {archivistType}:{' '}\n <Typography variant={'caption'} sx={{ ml: 0.5 }}>\n {address}\n </Typography>\n </Typography>\n </ListItem>\n )\n })}\n </>\n)\n","import { ArrowRightRounded as ArrowRightRoundedIcon } from '@mui/icons-material'\nimport { Collapse, IconButton, List, Paper, Typography } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistConfig } from '@xyo-network/archivist'\nimport { useState } from 'react'\n\nimport { ArchivistParent } from './ArchivistParent'\n\nexport interface ArchivistParentsProps extends FlexBoxProps {\n config?: ArchivistConfig\n}\n\nexport const ArchivistParents: React.FC<ArchivistParentsProps> = ({ config, ...props }) => {\n const [parentArchivistCollapse, setParentArchivistCollapse] = useState(false)\n\n const { commit, read, write } = config?.parents ?? {}\n\n return (\n <>\n {commit || read || write ? (\n <FlexCol alignItems=\"start\" {...props}>\n <span onClick={() => setParentArchivistCollapse(!parentArchivistCollapse)}>\n <Typography variant=\"subtitle2\" sx={{ cursor: 'pointer', display: 'inline-block' }}>\n Parents\n </Typography>\n <IconButton size=\"small\">\n <ArrowRightRoundedIcon sx={{ rotate: parentArchivistCollapse ? '90deg' : '0deg', transition: 'all .25s' }} />\n </IconButton>\n </span>\n <Collapse in={parentArchivistCollapse}>\n <Paper elevation={2}>\n <List>\n <ArchivistParent archivistType=\"Commit\" parentArchivists={commit} />\n <ArchivistParent archivistType=\"Read\" parentArchivists={read} />\n <ArchivistParent archivistType=\"Write\" parentArchivists={write} />\n </List>\n </Paper>\n </Collapse>\n </FlexCol>\n ) : null}\n </>\n )\n}\n","import { Badge, Tooltip } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\n// eslint-disable-next-line import/no-internal-modules\nimport { BsFileEarmarkCode } from 'react-icons/bs/index.js'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc/index.js'\n\nexport interface ArchivistStatsProps {\n addresses?: Record<string, number>\n boundWitnesses?: Payload[] | null\n payloads?: Payload[] | null\n schemas?: Record<string, number>\n}\n\nexport const ArchivistStats: React.FC<ArchivistStatsProps> = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {\n return (\n <FlexRow gap={2} mr={0.5}>\n {payloads?.length ? (\n <Tooltip title=\"Payloads\">\n <Badge badgeContent={payloads?.length} color=\"primary\">\n <VscSymbolNamespace size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {boundWitnesses?.length ? (\n <Tooltip title=\"Blocks\">\n <Badge badgeContent={boundWitnesses?.length} color=\"primary\">\n <VscSymbolMethod size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {Object.entries(schemas).length > 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 { ArchivistInstance, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { useMemo } from 'react'\n\nimport { MemoryArchivistsStats } from './components'\n\nconst ArchivistStats = (archivist?: ArchivistInstance) => {\n switch (archivist?.config.schema) {\n case MemoryArchivistConfigSchema: {\n return <MemoryArchivistsStats archivist={archivist} />\n }\n default: {\n return <></>\n }\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, module, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(module), [module])\n return <ModuleCardHeader module={module} title={title ?? module?.config.name ?? 'Archivist'} action={Stats} {...props} />\n}\n","import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder().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] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build()\n const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useArchivistAll = (archivist: ArchivistInstance) => {\n const [error, setError] = useState<Error>()\n const [enabled, refresh] = useRefresh()\n\n const payloads = usePromise(async () => {\n try {\n if (enabled) {\n return await archivist?.all?.()\n }\n } catch (ex) {\n const error = ex as Error\n setError(error)\n }\n }, [archivist, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { Payload } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useArchivistGet = <T extends Payload = Payload>(\n archivist?: ArchivistInstance | null,\n hashes?: string[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n if (enabled && archivist && hashes) {\n return (await archivist.get(hashes)) as T[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":"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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","module","import_react_module","import_react","import_jsx_runtime","ArchivistStats","module","import_jsx_runtime","module","import_material","import_react_async_effect","import_react_flexbox","import_archivist","import_react","import_archivist_model","module","error","import_archivist","import_react_node","module","import_react_module","import_react","error","import_react_promise","import_react_module","import_jsx_runtime","payloads"]}
@@ -62,8 +62,7 @@ var ArchivistStats = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }
62
62
  // src/components/Card/components/Stats/MemoryArchivistStats.tsx
63
63
  import { useAsyncEffect } from "@xylabs/react-async-effect";
64
64
  import { ArchivistAllQuerySchema } from "@xyo-network/archivist-model";
65
- import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
66
- import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
65
+ import { asBoundWitness, BoundWitnessSchema } from "@xyo-network/boundwitness-model";
67
66
  import { useCallback, useEffect, useMemo, useState as useState2 } from "react";
68
67
  import { jsx as jsx4 } from "react/jsx-runtime";
69
68
  var MemoryArchivistsStats = ({ archivist }) => {
@@ -105,7 +104,7 @@ var MemoryArchivistsStats = ({ archivist }) => {
105
104
  const addresses = useMemo(
106
105
  () => all?.reduce(
107
106
  (prev, payload) => {
108
- const w = BoundWitnessWrapper.tryParse(payload);
107
+ const w = asBoundWitness(payload);
109
108
  if (w?.addresses)
110
109
  for (const address of w?.addresses ?? []) {
111
110
  prev[address] = (prev[address] ?? 0) + 1;
@@ -265,9 +264,9 @@ var useArchivistGet = (archivist, hashes) => {
265
264
  // src/components/Details/Details.tsx
266
265
  import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
267
266
  var testQueryCommit = { schema: ArchivistCommitQuerySchema };
268
- var testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit);
267
+ var testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryCommit);
269
268
  var testQueryClear = { schema: ArchivistClearQuerySchema };
270
- var testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear);
269
+ var testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryClear);
271
270
  var ArchivistDetails = ({ address, ...props }) => {
272
271
  const [archivist] = useArchivistFromNode(address);
273
272
  const [payloads, setPayloads] = useState5();
@@ -278,8 +277,8 @@ var ArchivistDetails = ({ address, ...props }) => {
278
277
  // eslint-disable-next-line react-hooks/exhaustive-deps
279
278
  async () => {
280
279
  if (archivist) {
281
- const [commitBW] = await testQueryCommitBoundWitnessBuilder.build();
282
- const [clearBW] = await testQueryClearBoundWitnessBuilder.build();
280
+ const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build();
281
+ const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build();
283
282
  setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]));
284
283
  setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]));
285
284
  }
@@ -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/queries/useArchivistAll.tsx","../../src/hooks/queries/useArchivistGet.tsx"],"sourcesContent":["import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\n\nimport { ArchivistCardContent } from './CardContent'\nimport { ArchivistCardHeader } from './CardHeader'\n\nexport const ArchivistCard: React.FC<CardProps & ModuleRenderProps<ArchivistInstance>> = ({ children, module, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader module={module} />\n <ArchivistCardContent module={module} />\n {children}\n <ModuleCardActions module={module} />\n </Card>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { ArchivistConfig, ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleWrapper } from '@xyo-network/module-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, module, ...props }) => {\n const [config, setConfig] = useState<ArchivistConfig>()\n const [wallet] = useWallet()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (wallet && module) {\n const wrapper = ModuleWrapper.wrap(module, wallet)\n const payloads = await wrapper?.discover()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [module, wallet],\n )\n\n return (\n <ModuleCardContent module={module} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {children}\n <ArchivistParents config={config} />\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { ListItem, Typography } from '@mui/material'\n\nexport interface ArchivistTypeProps {\n archivistType?: 'Commit' | 'Read' | 'Write'\n parentArchivists?: string[]\n}\n\nexport const ArchivistParent: React.FC<ArchivistTypeProps> = ({ archivistType, parentArchivists }) => (\n <>\n {parentArchivists?.map((address) => {\n return (\n <ListItem key={address}>\n <Typography variant=\"subtitle2\">\n {archivistType}:{' '}\n <Typography variant={'caption'} sx={{ ml: 0.5 }}>\n {address}\n </Typography>\n </Typography>\n </ListItem>\n )\n })}\n </>\n)\n","import { ArrowRightRounded as ArrowRightRoundedIcon } from '@mui/icons-material'\nimport { Collapse, IconButton, List, Paper, Typography } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistConfig } from '@xyo-network/archivist'\nimport { useState } from 'react'\n\nimport { ArchivistParent } from './ArchivistParent'\n\nexport interface ArchivistParentsProps extends FlexBoxProps {\n config?: ArchivistConfig\n}\n\nexport const ArchivistParents: React.FC<ArchivistParentsProps> = ({ config, ...props }) => {\n const [parentArchivistCollapse, setParentArchivistCollapse] = useState(false)\n\n const { commit, read, write } = config?.parents ?? {}\n\n return (\n <>\n {commit || read || write ? (\n <FlexCol alignItems=\"start\" {...props}>\n <span onClick={() => setParentArchivistCollapse(!parentArchivistCollapse)}>\n <Typography variant=\"subtitle2\" sx={{ cursor: 'pointer', display: 'inline-block' }}>\n Parents\n </Typography>\n <IconButton size=\"small\">\n <ArrowRightRoundedIcon sx={{ rotate: parentArchivistCollapse ? '90deg' : '0deg', transition: 'all .25s' }} />\n </IconButton>\n </span>\n <Collapse in={parentArchivistCollapse}>\n <Paper elevation={2}>\n <List>\n <ArchivistParent archivistType=\"Commit\" parentArchivists={commit} />\n <ArchivistParent archivistType=\"Read\" parentArchivists={read} />\n <ArchivistParent archivistType=\"Write\" parentArchivists={write} />\n </List>\n </Paper>\n </Collapse>\n </FlexCol>\n ) : null}\n </>\n )\n}\n","import { Badge, Tooltip } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\n// eslint-disable-next-line import/no-internal-modules\nimport { BsFileEarmarkCode } from 'react-icons/bs/index.js'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc/index.js'\n\nexport interface ArchivistStatsProps {\n addresses?: Record<string, number>\n boundWitnesses?: Payload[] | null\n payloads?: Payload[] | null\n schemas?: Record<string, number>\n}\n\nexport const ArchivistStats: React.FC<ArchivistStatsProps> = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {\n return (\n <FlexRow gap={2} mr={0.5}>\n {payloads?.length ? (\n <Tooltip title=\"Payloads\">\n <Badge badgeContent={payloads?.length} color=\"primary\">\n <VscSymbolNamespace size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {boundWitnesses?.length ? (\n <Tooltip title=\"Blocks\">\n <Badge badgeContent={boundWitnesses?.length} color=\"primary\">\n <VscSymbolMethod size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {Object.entries(schemas).length > 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 { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\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 = BoundWitnessWrapper.tryParse(payload) as BoundWitnessWrapper | undefined\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 { ArchivistInstance, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { useMemo } from 'react'\n\nimport { MemoryArchivistsStats } from './components'\n\nconst ArchivistStats = (archivist?: ArchivistInstance) => {\n switch (archivist?.config.schema) {\n case MemoryArchivistConfigSchema: {\n return <MemoryArchivistsStats archivist={archivist} />\n }\n default: {\n return <></>\n }\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, module, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(module), [module])\n return <ModuleCardHeader module={module} title={title ?? module?.config.name ?? 'Archivist'} action={Stats} {...props} />\n}\n","import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit)\n\nconst testQueryClear = { schema: ArchivistClearQuerySchema }\nconst testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear)\n\nexport interface ArchivistDetails extends FlexBoxProps {\n address?: string\n}\n\nexport const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props }) => {\n const [archivist] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await testQueryCommitBoundWitnessBuilder.build()\n const [clearBW] = await testQueryClearBoundWitnessBuilder.build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useArchivistAll = (archivist: ArchivistInstance) => {\n const [error, setError] = useState<Error>()\n const [enabled, refresh] = useRefresh()\n\n const payloads = usePromise(async () => {\n try {\n if (enabled) {\n return await archivist?.all?.()\n }\n } catch (ex) {\n const error = ex as Error\n setError(error)\n }\n }, [archivist, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { Payload } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useArchivistGet = <T extends Payload = Payload>(\n archivist?: ArchivistInstance | null,\n hashes?: string[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n if (enabled && archivist && hashes) {\n return (await archivist.get(hashes)) as T[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":"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","names":["useAsyncEffect","useState","Typography","Fragment","jsx","jsxs","Typography","jsx","jsxs","useState","jsx","useState","archivist","all","jsx","jsxs","useState","useAsyncEffect","useMemo","Fragment","jsx","ArchivistStats","useMemo","jsx","jsxs","Typography","useAsyncEffect","FlexCol","useState","error","useState","error","usePromise","useRefresh","jsx","jsxs","useState","useAsyncEffect","payloads","FlexCol","Typography"]}
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/queries/useArchivistAll.tsx","../../src/hooks/queries/useArchivistGet.tsx"],"sourcesContent":["import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\n\nimport { ArchivistCardContent } from './CardContent'\nimport { ArchivistCardHeader } from './CardHeader'\n\nexport const ArchivistCard: React.FC<CardProps & ModuleRenderProps<ArchivistInstance>> = ({ children, module, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader module={module} />\n <ArchivistCardContent module={module} />\n {children}\n <ModuleCardActions module={module} />\n </Card>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { ArchivistConfig, ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleWrapper } from '@xyo-network/module-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, module, ...props }) => {\n const [config, setConfig] = useState<ArchivistConfig>()\n const [wallet] = useWallet()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (wallet && module) {\n const wrapper = ModuleWrapper.wrap(module, wallet)\n const payloads = await wrapper?.discover()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [module, wallet],\n )\n\n return (\n <ModuleCardContent module={module} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {children}\n <ArchivistParents config={config} />\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { ListItem, Typography } from '@mui/material'\n\nexport interface ArchivistTypeProps {\n archivistType?: 'Commit' | 'Read' | 'Write'\n parentArchivists?: string[]\n}\n\nexport const ArchivistParent: React.FC<ArchivistTypeProps> = ({ archivistType, parentArchivists }) => (\n <>\n {parentArchivists?.map((address) => {\n return (\n <ListItem key={address}>\n <Typography variant=\"subtitle2\">\n {archivistType}:{' '}\n <Typography variant={'caption'} sx={{ ml: 0.5 }}>\n {address}\n </Typography>\n </Typography>\n </ListItem>\n )\n })}\n </>\n)\n","import { ArrowRightRounded as ArrowRightRoundedIcon } from '@mui/icons-material'\nimport { Collapse, IconButton, List, Paper, Typography } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistConfig } from '@xyo-network/archivist'\nimport { useState } from 'react'\n\nimport { ArchivistParent } from './ArchivistParent'\n\nexport interface ArchivistParentsProps extends FlexBoxProps {\n config?: ArchivistConfig\n}\n\nexport const ArchivistParents: React.FC<ArchivistParentsProps> = ({ config, ...props }) => {\n const [parentArchivistCollapse, setParentArchivistCollapse] = useState(false)\n\n const { commit, read, write } = config?.parents ?? {}\n\n return (\n <>\n {commit || read || write ? (\n <FlexCol alignItems=\"start\" {...props}>\n <span onClick={() => setParentArchivistCollapse(!parentArchivistCollapse)}>\n <Typography variant=\"subtitle2\" sx={{ cursor: 'pointer', display: 'inline-block' }}>\n Parents\n </Typography>\n <IconButton size=\"small\">\n <ArrowRightRoundedIcon sx={{ rotate: parentArchivistCollapse ? '90deg' : '0deg', transition: 'all .25s' }} />\n </IconButton>\n </span>\n <Collapse in={parentArchivistCollapse}>\n <Paper elevation={2}>\n <List>\n <ArchivistParent archivistType=\"Commit\" parentArchivists={commit} />\n <ArchivistParent archivistType=\"Read\" parentArchivists={read} />\n <ArchivistParent archivistType=\"Write\" parentArchivists={write} />\n </List>\n </Paper>\n </Collapse>\n </FlexCol>\n ) : null}\n </>\n )\n}\n","import { Badge, Tooltip } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\n// eslint-disable-next-line import/no-internal-modules\nimport { BsFileEarmarkCode } from 'react-icons/bs/index.js'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc/index.js'\n\nexport interface ArchivistStatsProps {\n addresses?: Record<string, number>\n boundWitnesses?: Payload[] | null\n payloads?: Payload[] | null\n schemas?: Record<string, number>\n}\n\nexport const ArchivistStats: React.FC<ArchivistStatsProps> = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {\n return (\n <FlexRow gap={2} mr={0.5}>\n {payloads?.length ? (\n <Tooltip title=\"Payloads\">\n <Badge badgeContent={payloads?.length} color=\"primary\">\n <VscSymbolNamespace size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {boundWitnesses?.length ? (\n <Tooltip title=\"Blocks\">\n <Badge badgeContent={boundWitnesses?.length} color=\"primary\">\n <VscSymbolMethod size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {Object.entries(schemas).length > 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 { ArchivistInstance, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { useMemo } from 'react'\n\nimport { MemoryArchivistsStats } from './components'\n\nconst ArchivistStats = (archivist?: ArchivistInstance) => {\n switch (archivist?.config.schema) {\n case MemoryArchivistConfigSchema: {\n return <MemoryArchivistsStats archivist={archivist} />\n }\n default: {\n return <></>\n }\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, module, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(module), [module])\n return <ModuleCardHeader module={module} title={title ?? module?.config.name ?? 'Archivist'} action={Stats} {...props} />\n}\n","import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder().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] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build()\n const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useArchivistAll = (archivist: ArchivistInstance) => {\n const [error, setError] = useState<Error>()\n const [enabled, refresh] = useRefresh()\n\n const payloads = usePromise(async () => {\n try {\n if (enabled) {\n return await archivist?.all?.()\n }\n } catch (ex) {\n const error = ex as Error\n setError(error)\n }\n }, [archivist, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { Payload } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useArchivistGet = <T extends Payload = Payload>(\n archivist?: ArchivistInstance | null,\n hashes?: string[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n if (enabled && archivist && hashes) {\n return (await archivist.get(hashes)) as T[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":"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","names":["useAsyncEffect","useState","Typography","Fragment","jsx","jsxs","Typography","jsx","jsxs","useState","jsx","useState","archivist","all","jsx","jsxs","useState","useAsyncEffect","useMemo","Fragment","jsx","ArchivistStats","useMemo","jsx","jsxs","Typography","useAsyncEffect","FlexCol","useState","error","useState","error","usePromise","useRefresh","jsx","jsxs","useState","useAsyncEffect","payloads","FlexCol","Typography"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AASzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
1
+ {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAQzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AASzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
1
+ {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAQzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AASzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
1
+ {"version":3,"file":"MemoryArchivistStats.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/components/Stats/MemoryArchivistStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAQzF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsErE,CAAA"}
@@ -96,7 +96,6 @@ var ArchivistStats = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }
96
96
  var import_react_async_effect = require("@xylabs/react-async-effect");
97
97
  var import_archivist_model = require("@xyo-network/archivist-model");
98
98
  var import_boundwitness_model = require("@xyo-network/boundwitness-model");
99
- var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
100
99
  var import_react2 = require("react");
101
100
  var import_jsx_runtime4 = require("react/jsx-runtime");
102
101
  var MemoryArchivistsStats = ({ archivist }) => {
@@ -139,7 +138,7 @@ var MemoryArchivistsStats = ({ archivist }) => {
139
138
  const addresses = (0, import_react2.useMemo)(
140
139
  () => (all == null ? void 0 : all.reduce(
141
140
  (prev, payload) => {
142
- const w = import_boundwitness_wrapper.BoundWitnessWrapper.tryParse(payload);
141
+ const w = (0, import_boundwitness_model.asBoundWitness)(payload);
143
142
  if (w == null ? void 0 : w.addresses)
144
143
  for (const address of (w == null ? void 0 : w.addresses) ?? []) {
145
144
  prev[address] = (prev[address] ?? 0) + 1;
@@ -301,9 +300,9 @@ var useArchivistGet = (archivist, hashes) => {
301
300
  // src/components/Details/Details.tsx
302
301
  var import_jsx_runtime8 = require("react/jsx-runtime");
303
302
  var testQueryCommit = { schema: import_archivist3.ArchivistCommitQuerySchema };
304
- var testQueryCommitBoundWitnessBuilder = new import_boundwitness_builder.QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit);
303
+ var testQueryCommitBoundWitnessBuilder = new import_boundwitness_builder.QueryBoundWitnessBuilder().query(testQueryCommit);
305
304
  var testQueryClear = { schema: import_archivist3.ArchivistClearQuerySchema };
306
- var testQueryClearBoundWitnessBuilder = new import_boundwitness_builder.QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear);
305
+ var testQueryClearBoundWitnessBuilder = new import_boundwitness_builder.QueryBoundWitnessBuilder().query(testQueryClear);
307
306
  var ArchivistDetails = ({ address, ...props }) => {
308
307
  const [archivist] = useArchivistFromNode(address);
309
308
  const [payloads, setPayloads] = (0, import_react6.useState)();
@@ -314,8 +313,8 @@ var ArchivistDetails = ({ address, ...props }) => {
314
313
  // eslint-disable-next-line react-hooks/exhaustive-deps
315
314
  async () => {
316
315
  if (archivist) {
317
- const [commitBW] = await testQueryCommitBoundWitnessBuilder.build();
318
- const [clearBW] = await testQueryClearBoundWitnessBuilder.build();
316
+ const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build();
317
+ const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build();
319
318
  setQueryableCommit(await (archivist == null ? void 0 : archivist.queryable(commitBW, [testQueryCommit])));
320
319
  setQueryableClear(await (archivist == null ? void 0 : archivist.queryable(clearBW, [testQueryClear])));
321
320
  }
@@ -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/queries/useArchivistAll.tsx","../../src/hooks/queries/useArchivistGet.tsx"],"sourcesContent":["export * from './components'\nexport * from './hooks'\n","import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\n\nimport { ArchivistCardContent } from './CardContent'\nimport { ArchivistCardHeader } from './CardHeader'\n\nexport const ArchivistCard: React.FC<CardProps & ModuleRenderProps<ArchivistInstance>> = ({ children, module, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader module={module} />\n <ArchivistCardContent module={module} />\n {children}\n <ModuleCardActions module={module} />\n </Card>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { ArchivistConfig, ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleWrapper } from '@xyo-network/module-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, module, ...props }) => {\n const [config, setConfig] = useState<ArchivistConfig>()\n const [wallet] = useWallet()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (wallet && module) {\n const wrapper = ModuleWrapper.wrap(module, wallet)\n const payloads = await wrapper?.discover()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [module, wallet],\n )\n\n return (\n <ModuleCardContent module={module} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {children}\n <ArchivistParents config={config} />\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { ListItem, Typography } from '@mui/material'\n\nexport interface ArchivistTypeProps {\n archivistType?: 'Commit' | 'Read' | 'Write'\n parentArchivists?: string[]\n}\n\nexport const ArchivistParent: React.FC<ArchivistTypeProps> = ({ archivistType, parentArchivists }) => (\n <>\n {parentArchivists?.map((address) => {\n return (\n <ListItem key={address}>\n <Typography variant=\"subtitle2\">\n {archivistType}:{' '}\n <Typography variant={'caption'} sx={{ ml: 0.5 }}>\n {address}\n </Typography>\n </Typography>\n </ListItem>\n )\n })}\n </>\n)\n","import { ArrowRightRounded as ArrowRightRoundedIcon } from '@mui/icons-material'\nimport { Collapse, IconButton, List, Paper, Typography } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistConfig } from '@xyo-network/archivist'\nimport { useState } from 'react'\n\nimport { ArchivistParent } from './ArchivistParent'\n\nexport interface ArchivistParentsProps extends FlexBoxProps {\n config?: ArchivistConfig\n}\n\nexport const ArchivistParents: React.FC<ArchivistParentsProps> = ({ config, ...props }) => {\n const [parentArchivistCollapse, setParentArchivistCollapse] = useState(false)\n\n const { commit, read, write } = config?.parents ?? {}\n\n return (\n <>\n {commit || read || write ? (\n <FlexCol alignItems=\"start\" {...props}>\n <span onClick={() => setParentArchivistCollapse(!parentArchivistCollapse)}>\n <Typography variant=\"subtitle2\" sx={{ cursor: 'pointer', display: 'inline-block' }}>\n Parents\n </Typography>\n <IconButton size=\"small\">\n <ArrowRightRoundedIcon sx={{ rotate: parentArchivistCollapse ? '90deg' : '0deg', transition: 'all .25s' }} />\n </IconButton>\n </span>\n <Collapse in={parentArchivistCollapse}>\n <Paper elevation={2}>\n <List>\n <ArchivistParent archivistType=\"Commit\" parentArchivists={commit} />\n <ArchivistParent archivistType=\"Read\" parentArchivists={read} />\n <ArchivistParent archivistType=\"Write\" parentArchivists={write} />\n </List>\n </Paper>\n </Collapse>\n </FlexCol>\n ) : null}\n </>\n )\n}\n","import { Badge, Tooltip } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\n// eslint-disable-next-line import/no-internal-modules\nimport { BsFileEarmarkCode } from 'react-icons/bs/index.js'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc/index.js'\n\nexport interface ArchivistStatsProps {\n addresses?: Record<string, number>\n boundWitnesses?: Payload[] | null\n payloads?: Payload[] | null\n schemas?: Record<string, number>\n}\n\nexport const ArchivistStats: React.FC<ArchivistStatsProps> = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {\n return (\n <FlexRow gap={2} mr={0.5}>\n {payloads?.length ? (\n <Tooltip title=\"Payloads\">\n <Badge badgeContent={payloads?.length} color=\"primary\">\n <VscSymbolNamespace size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {boundWitnesses?.length ? (\n <Tooltip title=\"Blocks\">\n <Badge badgeContent={boundWitnesses?.length} color=\"primary\">\n <VscSymbolMethod size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {Object.entries(schemas).length > 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 { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\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 = BoundWitnessWrapper.tryParse(payload) as BoundWitnessWrapper | undefined\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 { ArchivistInstance, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { useMemo } from 'react'\n\nimport { MemoryArchivistsStats } from './components'\n\nconst ArchivistStats = (archivist?: ArchivistInstance) => {\n switch (archivist?.config.schema) {\n case MemoryArchivistConfigSchema: {\n return <MemoryArchivistsStats archivist={archivist} />\n }\n default: {\n return <></>\n }\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, module, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(module), [module])\n return <ModuleCardHeader module={module} title={title ?? module?.config.name ?? 'Archivist'} action={Stats} {...props} />\n}\n","import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit)\n\nconst testQueryClear = { schema: ArchivistClearQuerySchema }\nconst testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear)\n\nexport interface ArchivistDetails extends FlexBoxProps {\n address?: string\n}\n\nexport const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props }) => {\n const [archivist] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await testQueryCommitBoundWitnessBuilder.build()\n const [clearBW] = await testQueryClearBoundWitnessBuilder.build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useArchivistAll = (archivist: ArchivistInstance) => {\n const [error, setError] = useState<Error>()\n const [enabled, refresh] = useRefresh()\n\n const payloads = usePromise(async () => {\n try {\n if (enabled) {\n return await archivist?.all?.()\n }\n } catch (ex) {\n const error = ex as Error\n setError(error)\n }\n }, [archivist, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { Payload } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useArchivistGet = <T extends Payload = Payload>(\n archivist?: ArchivistInstance | null,\n hashes?: string[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n if (enabled && archivist && hashes) {\n return (await archivist.get(hashes)) as T[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":"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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","module","import_react_module","import_react","import_jsx_runtime","ArchivistStats","module","import_jsx_runtime","module","import_material","import_react_async_effect","import_react_flexbox","import_archivist","import_react","import_archivist_model","module","error","import_archivist","import_react_node","module","import_react_module","import_react","error","import_react_promise","import_react_module","import_jsx_runtime","payloads"]}
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/queries/useArchivistAll.tsx","../../src/hooks/queries/useArchivistGet.tsx"],"sourcesContent":["export * from './components'\nexport * from './hooks'\n","import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\n\nimport { ArchivistCardContent } from './CardContent'\nimport { ArchivistCardHeader } from './CardHeader'\n\nexport const ArchivistCard: React.FC<CardProps & ModuleRenderProps<ArchivistInstance>> = ({ children, module, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader module={module} />\n <ArchivistCardContent module={module} />\n {children}\n <ModuleCardActions module={module} />\n </Card>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { ArchivistConfig, ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleWrapper } from '@xyo-network/module-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, module, ...props }) => {\n const [config, setConfig] = useState<ArchivistConfig>()\n const [wallet] = useWallet()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (wallet && module) {\n const wrapper = ModuleWrapper.wrap(module, wallet)\n const payloads = await wrapper?.discover()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [module, wallet],\n )\n\n return (\n <ModuleCardContent module={module} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {children}\n <ArchivistParents config={config} />\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { ListItem, Typography } from '@mui/material'\n\nexport interface ArchivistTypeProps {\n archivistType?: 'Commit' | 'Read' | 'Write'\n parentArchivists?: string[]\n}\n\nexport const ArchivistParent: React.FC<ArchivistTypeProps> = ({ archivistType, parentArchivists }) => (\n <>\n {parentArchivists?.map((address) => {\n return (\n <ListItem key={address}>\n <Typography variant=\"subtitle2\">\n {archivistType}:{' '}\n <Typography variant={'caption'} sx={{ ml: 0.5 }}>\n {address}\n </Typography>\n </Typography>\n </ListItem>\n )\n })}\n </>\n)\n","import { ArrowRightRounded as ArrowRightRoundedIcon } from '@mui/icons-material'\nimport { Collapse, IconButton, List, Paper, Typography } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistConfig } from '@xyo-network/archivist'\nimport { useState } from 'react'\n\nimport { ArchivistParent } from './ArchivistParent'\n\nexport interface ArchivistParentsProps extends FlexBoxProps {\n config?: ArchivistConfig\n}\n\nexport const ArchivistParents: React.FC<ArchivistParentsProps> = ({ config, ...props }) => {\n const [parentArchivistCollapse, setParentArchivistCollapse] = useState(false)\n\n const { commit, read, write } = config?.parents ?? {}\n\n return (\n <>\n {commit || read || write ? (\n <FlexCol alignItems=\"start\" {...props}>\n <span onClick={() => setParentArchivistCollapse(!parentArchivistCollapse)}>\n <Typography variant=\"subtitle2\" sx={{ cursor: 'pointer', display: 'inline-block' }}>\n Parents\n </Typography>\n <IconButton size=\"small\">\n <ArrowRightRoundedIcon sx={{ rotate: parentArchivistCollapse ? '90deg' : '0deg', transition: 'all .25s' }} />\n </IconButton>\n </span>\n <Collapse in={parentArchivistCollapse}>\n <Paper elevation={2}>\n <List>\n <ArchivistParent archivistType=\"Commit\" parentArchivists={commit} />\n <ArchivistParent archivistType=\"Read\" parentArchivists={read} />\n <ArchivistParent archivistType=\"Write\" parentArchivists={write} />\n </List>\n </Paper>\n </Collapse>\n </FlexCol>\n ) : null}\n </>\n )\n}\n","import { Badge, Tooltip } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\n// eslint-disable-next-line import/no-internal-modules\nimport { BsFileEarmarkCode } from 'react-icons/bs/index.js'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc/index.js'\n\nexport interface ArchivistStatsProps {\n addresses?: Record<string, number>\n boundWitnesses?: Payload[] | null\n payloads?: Payload[] | null\n schemas?: Record<string, number>\n}\n\nexport const ArchivistStats: React.FC<ArchivistStatsProps> = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {\n return (\n <FlexRow gap={2} mr={0.5}>\n {payloads?.length ? (\n <Tooltip title=\"Payloads\">\n <Badge badgeContent={payloads?.length} color=\"primary\">\n <VscSymbolNamespace size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {boundWitnesses?.length ? (\n <Tooltip title=\"Blocks\">\n <Badge badgeContent={boundWitnesses?.length} color=\"primary\">\n <VscSymbolMethod size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {Object.entries(schemas).length > 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 { ArchivistInstance, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { useMemo } from 'react'\n\nimport { MemoryArchivistsStats } from './components'\n\nconst ArchivistStats = (archivist?: ArchivistInstance) => {\n switch (archivist?.config.schema) {\n case MemoryArchivistConfigSchema: {\n return <MemoryArchivistsStats archivist={archivist} />\n }\n default: {\n return <></>\n }\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, module, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(module), [module])\n return <ModuleCardHeader module={module} title={title ?? module?.config.name ?? 'Archivist'} action={Stats} {...props} />\n}\n","import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder().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] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build()\n const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useArchivistAll = (archivist: ArchivistInstance) => {\n const [error, setError] = useState<Error>()\n const [enabled, refresh] = useRefresh()\n\n const payloads = usePromise(async () => {\n try {\n if (enabled) {\n return await archivist?.all?.()\n }\n } catch (ex) {\n const error = ex as Error\n setError(error)\n }\n }, [archivist, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { Payload } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useArchivistGet = <T extends Payload = Payload>(\n archivist?: ArchivistInstance | null,\n hashes?: string[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n if (enabled && archivist && hashes) {\n return (await archivist.get(hashes)) as T[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":"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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","module","import_react_module","import_react","import_jsx_runtime","ArchivistStats","module","import_jsx_runtime","module","import_material","import_react_async_effect","import_react_flexbox","import_archivist","import_react","import_archivist_model","module","error","import_archivist","import_react_node","module","import_react_module","import_react","error","import_react_promise","import_react_module","import_jsx_runtime","payloads"]}
@@ -62,8 +62,7 @@ var ArchivistStats = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }
62
62
  // src/components/Card/components/Stats/MemoryArchivistStats.tsx
63
63
  import { useAsyncEffect } from "@xylabs/react-async-effect";
64
64
  import { ArchivistAllQuerySchema } from "@xyo-network/archivist-model";
65
- import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
66
- import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
65
+ import { asBoundWitness, BoundWitnessSchema } from "@xyo-network/boundwitness-model";
67
66
  import { useCallback, useEffect, useMemo, useState as useState2 } from "react";
68
67
  import { jsx as jsx4 } from "react/jsx-runtime";
69
68
  var MemoryArchivistsStats = ({ archivist }) => {
@@ -106,7 +105,7 @@ var MemoryArchivistsStats = ({ archivist }) => {
106
105
  const addresses = useMemo(
107
106
  () => (all == null ? void 0 : all.reduce(
108
107
  (prev, payload) => {
109
- const w = BoundWitnessWrapper.tryParse(payload);
108
+ const w = asBoundWitness(payload);
110
109
  if (w == null ? void 0 : w.addresses)
111
110
  for (const address of (w == null ? void 0 : w.addresses) ?? []) {
112
111
  prev[address] = (prev[address] ?? 0) + 1;
@@ -268,9 +267,9 @@ var useArchivistGet = (archivist, hashes) => {
268
267
  // src/components/Details/Details.tsx
269
268
  import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
270
269
  var testQueryCommit = { schema: ArchivistCommitQuerySchema };
271
- var testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit);
270
+ var testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryCommit);
272
271
  var testQueryClear = { schema: ArchivistClearQuerySchema };
273
- var testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear);
272
+ var testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryClear);
274
273
  var ArchivistDetails = ({ address, ...props }) => {
275
274
  const [archivist] = useArchivistFromNode(address);
276
275
  const [payloads, setPayloads] = useState5();
@@ -281,8 +280,8 @@ var ArchivistDetails = ({ address, ...props }) => {
281
280
  // eslint-disable-next-line react-hooks/exhaustive-deps
282
281
  async () => {
283
282
  if (archivist) {
284
- const [commitBW] = await testQueryCommitBoundWitnessBuilder.build();
285
- const [clearBW] = await testQueryClearBoundWitnessBuilder.build();
283
+ const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build();
284
+ const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build();
286
285
  setQueryableCommit(await (archivist == null ? void 0 : archivist.queryable(commitBW, [testQueryCommit])));
287
286
  setQueryableClear(await (archivist == null ? void 0 : archivist.queryable(clearBW, [testQueryClear])));
288
287
  }
@@ -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/queries/useArchivistAll.tsx","../../src/hooks/queries/useArchivistGet.tsx"],"sourcesContent":["import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\n\nimport { ArchivistCardContent } from './CardContent'\nimport { ArchivistCardHeader } from './CardHeader'\n\nexport const ArchivistCard: React.FC<CardProps & ModuleRenderProps<ArchivistInstance>> = ({ children, module, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader module={module} />\n <ArchivistCardContent module={module} />\n {children}\n <ModuleCardActions module={module} />\n </Card>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { ArchivistConfig, ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleWrapper } from '@xyo-network/module-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, module, ...props }) => {\n const [config, setConfig] = useState<ArchivistConfig>()\n const [wallet] = useWallet()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (wallet && module) {\n const wrapper = ModuleWrapper.wrap(module, wallet)\n const payloads = await wrapper?.discover()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [module, wallet],\n )\n\n return (\n <ModuleCardContent module={module} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {children}\n <ArchivistParents config={config} />\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { ListItem, Typography } from '@mui/material'\n\nexport interface ArchivistTypeProps {\n archivistType?: 'Commit' | 'Read' | 'Write'\n parentArchivists?: string[]\n}\n\nexport const ArchivistParent: React.FC<ArchivistTypeProps> = ({ archivistType, parentArchivists }) => (\n <>\n {parentArchivists?.map((address) => {\n return (\n <ListItem key={address}>\n <Typography variant=\"subtitle2\">\n {archivistType}:{' '}\n <Typography variant={'caption'} sx={{ ml: 0.5 }}>\n {address}\n </Typography>\n </Typography>\n </ListItem>\n )\n })}\n </>\n)\n","import { ArrowRightRounded as ArrowRightRoundedIcon } from '@mui/icons-material'\nimport { Collapse, IconButton, List, Paper, Typography } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistConfig } from '@xyo-network/archivist'\nimport { useState } from 'react'\n\nimport { ArchivistParent } from './ArchivistParent'\n\nexport interface ArchivistParentsProps extends FlexBoxProps {\n config?: ArchivistConfig\n}\n\nexport const ArchivistParents: React.FC<ArchivistParentsProps> = ({ config, ...props }) => {\n const [parentArchivistCollapse, setParentArchivistCollapse] = useState(false)\n\n const { commit, read, write } = config?.parents ?? {}\n\n return (\n <>\n {commit || read || write ? (\n <FlexCol alignItems=\"start\" {...props}>\n <span onClick={() => setParentArchivistCollapse(!parentArchivistCollapse)}>\n <Typography variant=\"subtitle2\" sx={{ cursor: 'pointer', display: 'inline-block' }}>\n Parents\n </Typography>\n <IconButton size=\"small\">\n <ArrowRightRoundedIcon sx={{ rotate: parentArchivistCollapse ? '90deg' : '0deg', transition: 'all .25s' }} />\n </IconButton>\n </span>\n <Collapse in={parentArchivistCollapse}>\n <Paper elevation={2}>\n <List>\n <ArchivistParent archivistType=\"Commit\" parentArchivists={commit} />\n <ArchivistParent archivistType=\"Read\" parentArchivists={read} />\n <ArchivistParent archivistType=\"Write\" parentArchivists={write} />\n </List>\n </Paper>\n </Collapse>\n </FlexCol>\n ) : null}\n </>\n )\n}\n","import { Badge, Tooltip } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\n// eslint-disable-next-line import/no-internal-modules\nimport { BsFileEarmarkCode } from 'react-icons/bs/index.js'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc/index.js'\n\nexport interface ArchivistStatsProps {\n addresses?: Record<string, number>\n boundWitnesses?: Payload[] | null\n payloads?: Payload[] | null\n schemas?: Record<string, number>\n}\n\nexport const ArchivistStats: React.FC<ArchivistStatsProps> = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {\n return (\n <FlexRow gap={2} mr={0.5}>\n {payloads?.length ? (\n <Tooltip title=\"Payloads\">\n <Badge badgeContent={payloads?.length} color=\"primary\">\n <VscSymbolNamespace size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {boundWitnesses?.length ? (\n <Tooltip title=\"Blocks\">\n <Badge badgeContent={boundWitnesses?.length} color=\"primary\">\n <VscSymbolMethod size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {Object.entries(schemas).length > 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 { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\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 = BoundWitnessWrapper.tryParse(payload) as BoundWitnessWrapper | undefined\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 { ArchivistInstance, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { useMemo } from 'react'\n\nimport { MemoryArchivistsStats } from './components'\n\nconst ArchivistStats = (archivist?: ArchivistInstance) => {\n switch (archivist?.config.schema) {\n case MemoryArchivistConfigSchema: {\n return <MemoryArchivistsStats archivist={archivist} />\n }\n default: {\n return <></>\n }\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, module, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(module), [module])\n return <ModuleCardHeader module={module} title={title ?? module?.config.name ?? 'Archivist'} action={Stats} {...props} />\n}\n","import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit)\n\nconst testQueryClear = { schema: ArchivistClearQuerySchema }\nconst testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear)\n\nexport interface ArchivistDetails extends FlexBoxProps {\n address?: string\n}\n\nexport const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props }) => {\n const [archivist] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await testQueryCommitBoundWitnessBuilder.build()\n const [clearBW] = await testQueryClearBoundWitnessBuilder.build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useArchivistAll = (archivist: ArchivistInstance) => {\n const [error, setError] = useState<Error>()\n const [enabled, refresh] = useRefresh()\n\n const payloads = usePromise(async () => {\n try {\n if (enabled) {\n return await archivist?.all?.()\n }\n } catch (ex) {\n const error = ex as Error\n setError(error)\n }\n }, [archivist, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { Payload } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useArchivistGet = <T extends Payload = Payload>(\n archivist?: ArchivistInstance | null,\n hashes?: string[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n if (enabled && archivist && hashes) {\n return (await archivist.get(hashes)) as T[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":"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","names":["useAsyncEffect","useState","Typography","Fragment","jsx","jsxs","Typography","jsx","jsxs","useState","jsx","useState","archivist","all","jsx","jsxs","useState","useAsyncEffect","useMemo","Fragment","jsx","ArchivistStats","useMemo","jsx","jsxs","Typography","useAsyncEffect","FlexCol","useState","error","useState","error","usePromise","useRefresh","jsx","jsxs","useState","useAsyncEffect","payloads","FlexCol","Typography"]}
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/queries/useArchivistAll.tsx","../../src/hooks/queries/useArchivistGet.tsx"],"sourcesContent":["import { Card, CardProps } from '@mui/material'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleCardActions, ModuleRenderProps } from '@xyo-network/react-module'\n\nimport { ArchivistCardContent } from './CardContent'\nimport { ArchivistCardHeader } from './CardHeader'\n\nexport const ArchivistCard: React.FC<CardProps & ModuleRenderProps<ArchivistInstance>> = ({ children, module, ...props }) => {\n return (\n <Card {...props}>\n <ArchivistCardHeader module={module} />\n <ArchivistCardContent module={module} />\n {children}\n <ModuleCardActions module={module} />\n </Card>\n )\n}\n","import { CardContentProps } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { ArchivistConfig, ArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleWrapper } from '@xyo-network/module-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, module, ...props }) => {\n const [config, setConfig] = useState<ArchivistConfig>()\n const [wallet] = useWallet()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (wallet && module) {\n const wrapper = ModuleWrapper.wrap(module, wallet)\n const payloads = await wrapper?.discover()\n if (mounted()) {\n setConfig(payloads?.[0] as ArchivistConfig)\n }\n } else {\n setConfig(undefined)\n }\n },\n [module, wallet],\n )\n\n return (\n <ModuleCardContent module={module} {...props}>\n <FlexGrowRow flexWrap=\"wrap\" justifyContent=\"start\" gap={2}>\n {children}\n <ArchivistParents config={config} />\n </FlexGrowRow>\n </ModuleCardContent>\n )\n}\n","import { ListItem, Typography } from '@mui/material'\n\nexport interface ArchivistTypeProps {\n archivistType?: 'Commit' | 'Read' | 'Write'\n parentArchivists?: string[]\n}\n\nexport const ArchivistParent: React.FC<ArchivistTypeProps> = ({ archivistType, parentArchivists }) => (\n <>\n {parentArchivists?.map((address) => {\n return (\n <ListItem key={address}>\n <Typography variant=\"subtitle2\">\n {archivistType}:{' '}\n <Typography variant={'caption'} sx={{ ml: 0.5 }}>\n {address}\n </Typography>\n </Typography>\n </ListItem>\n )\n })}\n </>\n)\n","import { ArrowRightRounded as ArrowRightRoundedIcon } from '@mui/icons-material'\nimport { Collapse, IconButton, List, Paper, Typography } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistConfig } from '@xyo-network/archivist'\nimport { useState } from 'react'\n\nimport { ArchivistParent } from './ArchivistParent'\n\nexport interface ArchivistParentsProps extends FlexBoxProps {\n config?: ArchivistConfig\n}\n\nexport const ArchivistParents: React.FC<ArchivistParentsProps> = ({ config, ...props }) => {\n const [parentArchivistCollapse, setParentArchivistCollapse] = useState(false)\n\n const { commit, read, write } = config?.parents ?? {}\n\n return (\n <>\n {commit || read || write ? (\n <FlexCol alignItems=\"start\" {...props}>\n <span onClick={() => setParentArchivistCollapse(!parentArchivistCollapse)}>\n <Typography variant=\"subtitle2\" sx={{ cursor: 'pointer', display: 'inline-block' }}>\n Parents\n </Typography>\n <IconButton size=\"small\">\n <ArrowRightRoundedIcon sx={{ rotate: parentArchivistCollapse ? '90deg' : '0deg', transition: 'all .25s' }} />\n </IconButton>\n </span>\n <Collapse in={parentArchivistCollapse}>\n <Paper elevation={2}>\n <List>\n <ArchivistParent archivistType=\"Commit\" parentArchivists={commit} />\n <ArchivistParent archivistType=\"Read\" parentArchivists={read} />\n <ArchivistParent archivistType=\"Write\" parentArchivists={write} />\n </List>\n </Paper>\n </Collapse>\n </FlexCol>\n ) : null}\n </>\n )\n}\n","import { Badge, Tooltip } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\n// eslint-disable-next-line import/no-internal-modules\nimport { BsFileEarmarkCode } from 'react-icons/bs/index.js'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscOrganization, VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc/index.js'\n\nexport interface ArchivistStatsProps {\n addresses?: Record<string, number>\n boundWitnesses?: Payload[] | null\n payloads?: Payload[] | null\n schemas?: Record<string, number>\n}\n\nexport const ArchivistStats: React.FC<ArchivistStatsProps> = ({ addresses = {}, boundWitnesses, payloads, schemas = {} }) => {\n return (\n <FlexRow gap={2} mr={0.5}>\n {payloads?.length ? (\n <Tooltip title=\"Payloads\">\n <Badge badgeContent={payloads?.length} color=\"primary\">\n <VscSymbolNamespace size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {boundWitnesses?.length ? (\n <Tooltip title=\"Blocks\">\n <Badge badgeContent={boundWitnesses?.length} color=\"primary\">\n <VscSymbolMethod size={20} />\n </Badge>\n </Tooltip>\n ) : null}\n {Object.entries(schemas).length > 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 { ArchivistInstance, MemoryArchivistConfigSchema } from '@xyo-network/archivist'\nimport { ModuleCardHeader, ModuleRenderProps } from '@xyo-network/react-module'\nimport { useMemo } from 'react'\n\nimport { MemoryArchivistsStats } from './components'\n\nconst ArchivistStats = (archivist?: ArchivistInstance) => {\n switch (archivist?.config.schema) {\n case MemoryArchivistConfigSchema: {\n return <MemoryArchivistsStats archivist={archivist} />\n }\n default: {\n return <></>\n }\n }\n}\n\nexport const ArchivistCardHeader: React.FC<ModuleRenderProps<ArchivistInstance> & CardHeaderProps> = ({ title, module, ...props }) => {\n const Stats = useMemo(() => ArchivistStats(module), [module])\n return <ModuleCardHeader module={module} title={title ?? module?.config.name ?? 'Archivist'} action={Stats} {...props} />\n}\n","import { ButtonGroup, Typography } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ArchivistClearQuerySchema, ArchivistCommitQuerySchema } from '@xyo-network/archivist'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { useState } from 'react'\n\nimport { useArchivistFromNode } from '../../hooks'\n\nconst testQueryCommit = { schema: ArchivistCommitQuerySchema }\nconst testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder().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] = useArchivistFromNode(address)\n const [payloads, setPayloads] = useState<Payload[]>()\n const [refresh, setRefresh] = useState(0)\n const [queryableCommit, setQueryableCommit] = useState(false)\n const [queryableClear, setQueryableClear] = useState(false)\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n if (archivist) {\n const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build()\n const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build()\n setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))\n setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))\n }\n },\n [archivist],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const payloads = await archivist?.all?.()\n if (mounted()) {\n setPayloads(payloads)\n }\n },\n [archivist, refresh],\n )\n\n return (\n <FlexCol {...props}>\n <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>\n <ButtonGroup>\n <ButtonEx disabled={payloads?.length === 0 || !archivist || !queryableCommit} onClick={() => archivist?.commit?.()}>\n Commit\n </ButtonEx>\n <ButtonEx disabled={!archivist || !queryableClear} onClick={() => archivist?.clear?.()}>\n Clear\n </ButtonEx>\n <ButtonEx\n disabled={!archivist}\n onClick={() => {\n setRefresh(refresh + 1)\n }}\n >\n Refresh\n </ButtonEx>\n </ButtonGroup>\n </FlexCol>\n )\n}\n","import { ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist-model'\nimport { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistFromNode = (\n nameOrAddressOrInstance?: string | ArchivistInstance,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asArchivistInstance(module)\n if (module && !instance) {\n const error = Error(`Resolved module is not a ArchivistInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ArchivistInstance, isArchivistInstance } from '@xyo-network/archivist'\nimport { ModuleFilter } from '@xyo-network/module-model'\nimport { ModuleFromNodeConfig, useModulesFromNode } from '@xyo-network/react-node'\n\nexport const useArchivistsFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [ArchivistInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<ArchivistInstance[]>((prev, module) => {\n if (isArchivistInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { useRefresh } from '@xyo-network/react-module'\nimport { useState } from 'react'\n\nexport const useArchivistAll = (archivist: ArchivistInstance) => {\n const [error, setError] = useState<Error>()\n const [enabled, refresh] = useRefresh()\n\n const payloads = usePromise(async () => {\n try {\n if (enabled) {\n return await archivist?.all?.()\n }\n } catch (ex) {\n const error = ex as Error\n setError(error)\n }\n }, [archivist, enabled])\n\n return [payloads, error, refresh]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ArchivistInstance } from '@xyo-network/archivist'\nimport { Payload } from '@xyo-network/payload-model'\nimport { RefreshCallback, useRefresh } from '@xyo-network/react-module'\n\nexport const useArchivistGet = <T extends Payload = Payload>(\n archivist?: ArchivistInstance | null,\n hashes?: string[],\n): [T[] | undefined, Error | undefined, RefreshCallback] => {\n const [enabled, refresh] = useRefresh()\n\n const [payloads, error] = usePromise(async () => {\n if (enabled && archivist && hashes) {\n return (await archivist.get(hashes)) as T[]\n }\n }, [archivist, hashes, enabled])\n\n return [payloads, error, refresh]\n}\n"],"mappings":"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","names":["useAsyncEffect","useState","Typography","Fragment","jsx","jsxs","Typography","jsx","jsxs","useState","jsx","useState","archivist","all","jsx","jsxs","useState","useAsyncEffect","useMemo","Fragment","jsx","ArchivistStats","useMemo","jsx","jsxs","Typography","useAsyncEffect","FlexCol","useState","error","useState","error","usePromise","useRefresh","jsx","jsxs","useState","useAsyncEffect","payloads","FlexCol","Typography"]}
package/package.json CHANGED
@@ -14,18 +14,17 @@
14
14
  "@xylabs/react-button": "^3.0.39",
15
15
  "@xylabs/react-flexbox": "^3.0.39",
16
16
  "@xylabs/react-promise": "^3.0.39",
17
- "@xyo-network/archivist": "^2.88.2",
18
- "@xyo-network/archivist-model": "^2.88.2",
19
- "@xyo-network/boundwitness-builder": "^2.88.2",
20
- "@xyo-network/boundwitness-model": "^2.88.2",
21
- "@xyo-network/boundwitness-wrapper": "^2.88.2",
22
- "@xyo-network/module-events": "^2.88.2",
23
- "@xyo-network/module-model": "^2.88.2",
24
- "@xyo-network/module-wrapper": "^2.88.2",
25
- "@xyo-network/payload-model": "^2.88.2",
26
- "@xyo-network/react-module": "~2.67.17",
27
- "@xyo-network/react-node": "~2.67.17",
28
- "@xyo-network/react-wallet": "~2.67.17",
17
+ "@xyo-network/archivist": "^2.89.0-rc.12",
18
+ "@xyo-network/archivist-model": "^2.89.0-rc.12",
19
+ "@xyo-network/boundwitness-builder": "^2.89.0-rc.12",
20
+ "@xyo-network/boundwitness-model": "^2.89.0-rc.12",
21
+ "@xyo-network/module-events": "^2.89.0-rc.12",
22
+ "@xyo-network/module-model": "^2.89.0-rc.12",
23
+ "@xyo-network/module-wrapper": "^2.89.0-rc.12",
24
+ "@xyo-network/payload-model": "^2.89.0-rc.12",
25
+ "@xyo-network/react-module": "~2.68.0-rc.1",
26
+ "@xyo-network/react-node": "~2.68.0-rc.1",
27
+ "@xyo-network/react-wallet": "~2.68.0-rc.1",
29
28
  "react-icons": "^4.12.0"
30
29
  },
31
30
  "peerDependencies": {
@@ -37,11 +36,11 @@
37
36
  },
38
37
  "description": "Common React library for all XYO projects that use React",
39
38
  "devDependencies": {
40
- "@storybook/react": "^7.6.10",
39
+ "@storybook/react": "^7.6.12",
41
40
  "@xylabs/ts-scripts-yarn3": "^3.2.42",
42
41
  "@xylabs/tsconfig-react": "^3.2.42",
43
- "@xyo-network/account": "^2.88.2",
44
- "@xyo-network/node-memory": "^2.88.2",
42
+ "@xyo-network/account": "^2.89.0-rc.12",
43
+ "@xyo-network/node-memory": "^2.89.0-rc.12",
45
44
  "typescript": "^5.3.3"
46
45
  },
47
46
  "docs": "dist/docs.json",
@@ -94,6 +93,7 @@
94
93
  },
95
94
  "sideEffects": false,
96
95
  "types": "dist/browser/index.d.ts",
97
- "version": "2.67.17",
98
- "type": "module"
96
+ "version": "2.68.0-rc.1",
97
+ "type": "module",
98
+ "stableVersion": "2.67.18"
99
99
  }
@@ -24,7 +24,7 @@ const insertPayload = async (archivist?: ArchivistInstance) => {
24
24
  const payload = { schema: 'network.xyo.payload', timestamp: Date.now() }
25
25
  const insertQuery = { schema: ArchivistInsertQuerySchema }
26
26
  const account = Account.randomSync()
27
- const builder = new QueryBoundWitnessBuilder().payloads([insertQuery, payload]).witness(account).query(insertQuery)
27
+ const builder = await (await (new QueryBoundWitnessBuilder().payloads([insertQuery, payload]))).witness(account).query(insertQuery)
28
28
  const [insertQueryBoundWitness, payloads] = await builder.build()
29
29
  await archivist.insert([insertQueryBoundWitness, ...payloads])
30
30
  }
@@ -4,10 +4,11 @@ import { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'
4
4
  import { Payload } from '@xyo-network/payload-model'
5
5
 
6
6
  import { ArchivistStats } from './ArchivistStats'
7
+ import { usePromise } from '@xylabs/react-promise'
7
8
 
8
9
  const account = Account.randomSync()
9
10
  const payload = () => ({ schema: 'network.xyo.payload', timestamp: Date.now() })
10
- const boundWitness = () => new BoundWitnessBuilder().payload(payload()).witness(account).build()
11
+ const boundWitness = async () => await (await new BoundWitnessBuilder().payload(payload())).witness(account).build()
11
12
 
12
13
  const StorybookEntry = {
13
14
  component: ArchivistStats,
@@ -19,7 +20,10 @@ const StorybookEntry = {
19
20
  title: 'modules/archivist/ArchivistStats',
20
21
  } as Meta<typeof ArchivistStats>
21
22
 
22
- const Template: StoryFn<typeof ArchivistStats> = (props) => <ArchivistStats {...props} />
23
+ const Template: StoryFn<typeof ArchivistStats> = ({boundWitnesses, ...props}) => {
24
+ const [boundWitnessesProp] = usePromise(async () => boundWitnesses ? await Promise.all(boundWitnesses) : [], [boundWitnesses])
25
+ return boundWitnessesProp ? <ArchivistStats boundWitnesses={boundWitnessesProp} {...props} /> : <div/>
26
+ }
23
27
 
24
28
  const Default = Template.bind({})
25
29
  const WithStats = Template.bind({})
@@ -37,7 +37,7 @@ const Template: StoryFn<typeof MemoryArchivistsStats> = () => {
37
37
  const payload = { schema: 'network.xyo.payload' }
38
38
  const insertQuery = { schema: ArchivistInsertQuerySchema }
39
39
  const account = Account.randomSync()
40
- const builder = new QueryBoundWitnessBuilder().payloads([insertQuery, payload]).witness(account).query(insertQuery)
40
+ const builder = await (await new QueryBoundWitnessBuilder().payloads([insertQuery, payload])).witness(account).query(insertQuery)
41
41
  const [insertQueryBoundWitness, payloads] = await builder.build()
42
42
  await node.register(newParentModule)
43
43
  await node.attach(newParentModule.address)
@@ -1,7 +1,6 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-async-effect'
2
2
  import { ArchivistAllQuerySchema, ArchivistInstance } from '@xyo-network/archivist-model'
3
- import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'
4
- import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
3
+ import { asBoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'
5
4
  import { EventUnsubscribeFunction } from '@xyo-network/module-events'
6
5
  import { Payload } from '@xyo-network/payload-model'
7
6
  import { useCallback, useEffect, useMemo, useState } from 'react'
@@ -58,7 +57,7 @@ export const MemoryArchivistsStats: React.FC<MemoryArchivistStatsProps> = ({ arc
58
57
  () =>
59
58
  all?.reduce(
60
59
  (prev, payload) => {
61
- const w = BoundWitnessWrapper.tryParse(payload) as BoundWitnessWrapper | undefined
60
+ const w = asBoundWitness(payload)
62
61
  if (w?.addresses)
63
62
  for (const address of w?.addresses ?? []) {
64
63
  prev[address] = (prev[address] ?? 0) + 1
@@ -10,10 +10,10 @@ import { useState } from 'react'
10
10
  import { useArchivistFromNode } from '../../hooks'
11
11
 
12
12
  const testQueryCommit = { schema: ArchivistCommitQuerySchema }
13
- const testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryCommit)
13
+ const testQueryCommitBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryCommit)
14
14
 
15
15
  const testQueryClear = { schema: ArchivistClearQuerySchema }
16
- const testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder({ inlinePayloads: true }).query(testQueryClear)
16
+ const testQueryClearBoundWitnessBuilder = new QueryBoundWitnessBuilder().query(testQueryClear)
17
17
 
18
18
  export interface ArchivistDetails extends FlexBoxProps {
19
19
  address?: string
@@ -30,8 +30,8 @@ export const ArchivistDetails: React.FC<ArchivistDetails> = ({ address, ...props
30
30
  // eslint-disable-next-line react-hooks/exhaustive-deps
31
31
  async () => {
32
32
  if (archivist) {
33
- const [commitBW] = await testQueryCommitBoundWitnessBuilder.build()
34
- const [clearBW] = await testQueryClearBoundWitnessBuilder.build()
33
+ const [commitBW] = await (await testQueryCommitBoundWitnessBuilder).build()
34
+ const [clearBW] = await (await testQueryClearBoundWitnessBuilder).build()
35
35
  setQueryableCommit(await archivist?.queryable(commitBW, [testQueryCommit]))
36
36
  setQueryableClear(await archivist?.queryable(clearBW, [testQueryClear]))
37
37
  }