@xyo-network/react-archivist 2.26.29 → 2.26.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/cjs/components/ApiHistory/ApiCallEntry.d.ts +9 -0
  2. package/dist/cjs/components/ApiHistory/ApiCallEntry.js +21 -0
  3. package/dist/cjs/components/ApiHistory/ApiCallEntry.js.map +1 -0
  4. package/dist/cjs/components/ApiHistory/ApiCallTable.d.ts +5 -0
  5. package/dist/cjs/components/ApiHistory/ApiCallTable.js +13 -0
  6. package/dist/cjs/components/ApiHistory/ApiCallTable.js.map +1 -0
  7. package/dist/cjs/components/ApiHistory/ApiHistory.d.ts +3 -0
  8. package/dist/cjs/components/ApiHistory/ApiHistory.js +22 -0
  9. package/dist/cjs/components/ApiHistory/ApiHistory.js.map +1 -0
  10. package/dist/cjs/components/ApiHistory/index.d.ts +2 -0
  11. package/dist/cjs/components/ApiHistory/index.js +6 -0
  12. package/dist/cjs/components/ApiHistory/index.js.map +1 -0
  13. package/dist/cjs/components/ApiHistory/useBuildHistoryData.d.ts +10 -0
  14. package/dist/cjs/components/ApiHistory/useBuildHistoryData.js +34 -0
  15. package/dist/cjs/components/ApiHistory/useBuildHistoryData.js.map +1 -0
  16. package/dist/cjs/components/Details.d.ts +7 -0
  17. package/dist/cjs/components/Details.js +31 -0
  18. package/dist/cjs/components/Details.js.map +1 -0
  19. package/dist/cjs/components/index.d.ts +1 -0
  20. package/dist/cjs/components/index.js +5 -0
  21. package/dist/cjs/components/index.js.map +1 -0
  22. package/dist/cjs/contexts/Provider.js +2 -2
  23. package/dist/cjs/contexts/Provider.js.map +1 -1
  24. package/dist/cjs/contexts/logWithMax.d.ts +1 -0
  25. package/dist/cjs/contexts/logWithMax.js +14 -0
  26. package/dist/cjs/contexts/logWithMax.js.map +1 -0
  27. package/dist/cjs/lib/Archivist.d.ts +13 -0
  28. package/dist/cjs/lib/Archivist.js +3 -0
  29. package/dist/cjs/lib/Archivist.js.map +1 -0
  30. package/dist/cjs/lib/XyoApiArchivist.d.ts +11 -0
  31. package/dist/cjs/lib/XyoApiArchivist.js +35 -0
  32. package/dist/cjs/lib/XyoApiArchivist.js.map +1 -0
  33. package/dist/cjs/lib/XyoArchivist.d.ts +11 -0
  34. package/dist/cjs/lib/XyoArchivist.js +13 -0
  35. package/dist/cjs/lib/XyoArchivist.js.map +1 -0
  36. package/dist/cjs/lib/XyoMemoryArchivist.d.ts +12 -0
  37. package/dist/cjs/lib/XyoMemoryArchivist.js +64 -0
  38. package/dist/cjs/lib/XyoMemoryArchivist.js.map +1 -0
  39. package/dist/cjs/lib/index.d.ts +2 -0
  40. package/dist/cjs/lib/index.js +6 -0
  41. package/dist/cjs/lib/index.js.map +1 -0
  42. package/dist/esm/components/ApiHistory/ApiCallEntry.d.ts +9 -0
  43. package/dist/esm/components/ApiHistory/ApiCallEntry.js +17 -0
  44. package/dist/esm/components/ApiHistory/ApiCallEntry.js.map +1 -0
  45. package/dist/esm/components/ApiHistory/ApiCallTable.d.ts +5 -0
  46. package/dist/esm/components/ApiHistory/ApiCallTable.js +8 -0
  47. package/dist/esm/components/ApiHistory/ApiCallTable.js.map +1 -0
  48. package/dist/esm/components/ApiHistory/ApiHistory.d.ts +3 -0
  49. package/dist/esm/components/ApiHistory/ApiHistory.js +15 -0
  50. package/dist/esm/components/ApiHistory/ApiHistory.js.map +1 -0
  51. package/dist/esm/components/ApiHistory/index.d.ts +2 -0
  52. package/dist/esm/components/ApiHistory/index.js +3 -0
  53. package/dist/esm/components/ApiHistory/index.js.map +1 -0
  54. package/dist/esm/components/ApiHistory/useBuildHistoryData.d.ts +10 -0
  55. package/dist/esm/components/ApiHistory/useBuildHistoryData.js +31 -0
  56. package/dist/esm/components/ApiHistory/useBuildHistoryData.js.map +1 -0
  57. package/dist/esm/components/Details.d.ts +7 -0
  58. package/dist/esm/components/Details.js +24 -0
  59. package/dist/esm/components/Details.js.map +1 -0
  60. package/dist/esm/components/index.d.ts +1 -0
  61. package/dist/esm/components/index.js +2 -0
  62. package/dist/esm/components/index.js.map +1 -0
  63. package/dist/esm/contexts/Provider.js +2 -2
  64. package/dist/esm/contexts/Provider.js.map +1 -1
  65. package/dist/esm/contexts/logWithMax.d.ts +1 -0
  66. package/dist/esm/contexts/logWithMax.js +10 -0
  67. package/dist/esm/contexts/logWithMax.js.map +1 -0
  68. package/dist/esm/lib/Archivist.d.ts +13 -0
  69. package/dist/esm/lib/Archivist.js +2 -0
  70. package/dist/esm/lib/Archivist.js.map +1 -0
  71. package/dist/esm/lib/XyoApiArchivist.d.ts +11 -0
  72. package/dist/esm/lib/XyoApiArchivist.js +22 -0
  73. package/dist/esm/lib/XyoApiArchivist.js.map +1 -0
  74. package/dist/esm/lib/XyoArchivist.d.ts +11 -0
  75. package/dist/esm/lib/XyoArchivist.js +9 -0
  76. package/dist/esm/lib/XyoArchivist.js.map +1 -0
  77. package/dist/esm/lib/XyoMemoryArchivist.d.ts +12 -0
  78. package/dist/esm/lib/XyoMemoryArchivist.js +58 -0
  79. package/dist/esm/lib/XyoMemoryArchivist.js.map +1 -0
  80. package/dist/esm/lib/index.d.ts +2 -0
  81. package/dist/esm/lib/index.js +3 -0
  82. package/dist/esm/lib/index.js.map +1 -0
  83. package/package.json +2 -2
  84. package/src/components/Details.stories.tsx +38 -0
  85. package/src/components/Details.tsx +51 -0
  86. package/src/components/index.ts +1 -0
  87. package/src/contexts/Provider.tsx +7 -2
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { XyoApiError, XyoApiResponse } from '@xyo-network/api';
3
+ export interface ApiCallEntryProps {
4
+ call: XyoApiResponse | XyoApiError;
5
+ index: number;
6
+ bgColor?: string;
7
+ }
8
+ declare const ApiCallEntry: React.FC<ApiCallEntryProps>;
9
+ export { ApiCallEntry };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiCallEntry = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const material_1 = require("@mui/material");
6
+ const ApiCallEntry = ({ call, bgColor, index }) => {
7
+ var _a;
8
+ const formatCall = (call) => {
9
+ if (call.isXyoError) {
10
+ const error = call;
11
+ return `${error.code} - ${error.message}`;
12
+ }
13
+ else {
14
+ const response = call;
15
+ return `${response.status} ${response.statusText ? `- ${response.statusText}` : ''}`;
16
+ }
17
+ };
18
+ return ((0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, Object.assign({ sx: { backgroundColor: bgColor } }, { children: (0, jsx_runtime_1.jsxs)(material_1.Typography, Object.assign({ variant: "caption" }, { children: [index + 1, "."] })) })), (0, jsx_runtime_1.jsx)(material_1.TableCell, Object.assign({ sx: { backgroundColor: bgColor } }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "caption" }, { children: (_a = call.config.method) === null || _a === void 0 ? void 0 : _a.toUpperCase() })) })), (0, jsx_runtime_1.jsx)(material_1.TableCell, Object.assign({ sx: { backgroundColor: bgColor } }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "caption" }, { children: formatCall(call) })) })), (0, jsx_runtime_1.jsx)(material_1.TableCell, Object.assign({ sx: { backgroundColor: bgColor } }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "caption" }, { children: call.config.url })) }))] }));
19
+ };
20
+ exports.ApiCallEntry = ApiCallEntry;
21
+ //# sourceMappingURL=ApiCallEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiCallEntry.js","sourceRoot":"","sources":["../../../../src/components/ApiHistory/ApiCallEntry.tsx"],"names":[],"mappings":";;;;AAAA,4CAA+D;AAS/D,MAAM,YAAY,GAAgC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;;IAC7E,MAAM,UAAU,GAAG,CAAC,IAA+B,EAAE,EAAE;QACrD,IAAK,IAAoB,CAAC,UAAU,EAAE;YACpC,MAAM,KAAK,GAAG,IAAmB,CAAA;YACjC,OAAO,GAAG,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;SAC1C;aAAM;YACL,MAAM,QAAQ,GAAG,IAAsB,CAAA;YACvC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;SACrF;IACH,CAAC,CAAA;IAED,OAAO,CACL,wBAAC,mBAAQ,eACP,uBAAC,oBAAS,kBAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,gBACzC,wBAAC,qBAAU,kBAAC,OAAO,EAAC,SAAS,iBAAE,KAAK,GAAG,CAAC,UAAe,IAC7C,EACZ,uBAAC,oBAAS,kBAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,gBACzC,uBAAC,qBAAU,kBAAC,OAAO,EAAC,SAAS,gBAAE,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,WAAW,EAAE,IAAc,IACpE,EACZ,uBAAC,oBAAS,kBAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,gBACzC,uBAAC,qBAAU,kBAAC,OAAO,EAAC,SAAS,gBAAE,UAAU,CAAC,IAAI,CAAC,IAAc,IACnD,EACZ,uBAAC,oBAAS,kBAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,gBACzC,uBAAC,qBAAU,kBAAC,OAAO,EAAC,SAAS,gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAc,IAClD,IACH,CACZ,CAAA;AACH,CAAC,CAAA;AAEQ,oCAAY"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ import { WithChildren } from '@xylabs/react-shared';
4
+ declare const ApiCallTable: React.FC<WithChildren<FlexBoxProps>>;
5
+ export { ApiCallTable };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiCallTable = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const material_1 = require("@mui/material");
7
+ const react_flexbox_1 = require("@xylabs/react-flexbox");
8
+ const ApiCallTable = (_a) => {
9
+ var { children } = _a, props = tslib_1.__rest(_a, ["children"]);
10
+ return ((0, jsx_runtime_1.jsx)(react_flexbox_1.FlexRow, Object.assign({ flexGrow: 1 }, props, { children: (0, jsx_runtime_1.jsxs)(material_1.Table, { children: [(0, jsx_runtime_1.jsx)(material_1.TableHead, { children: (0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, {}), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "caption" }, { children: "HTTP Method" })) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "caption" }, { children: "Status" })) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "caption" }, { children: "URL" })) })] }) }), (0, jsx_runtime_1.jsx)(material_1.TableBody, { children: children })] }) })));
11
+ };
12
+ exports.ApiCallTable = ApiCallTable;
13
+ //# sourceMappingURL=ApiCallTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiCallTable.js","sourceRoot":"","sources":["../../../../src/components/ApiHistory/ApiCallTable.tsx"],"names":[],"mappings":";;;;;AAAA,4CAA4F;AAC5F,yDAA6D;AAG7D,MAAM,YAAY,GAAyC,CAAC,EAAsB,EAAE,EAAE;QAA1B,EAAE,QAAQ,OAAY,EAAP,KAAK,sBAApB,YAAsB,CAAF;IAC9E,OAAO,CACL,uBAAC,uBAAO,kBAAC,QAAQ,EAAE,CAAC,IAAM,KAAK,cAC7B,wBAAC,gBAAK,eACJ,uBAAC,oBAAS,cACR,wBAAC,mBAAQ,eACP,uBAAC,oBAAS,KAAG,EACb,uBAAC,oBAAS,cACR,uBAAC,qBAAU,kBAAC,OAAO,EAAC,SAAS,iCAAyB,GAC5C,EACZ,uBAAC,oBAAS,cACR,uBAAC,qBAAU,kBAAC,OAAO,EAAC,SAAS,4BAAoB,GACvC,EACZ,uBAAC,oBAAS,cACR,uBAAC,qBAAU,kBAAC,OAAO,EAAC,SAAS,yBAAiB,GACpC,IACH,GACD,EACZ,uBAAC,oBAAS,cAAE,QAAQ,GAAa,IAC3B,IACA,CACX,CAAA;AACH,CAAC,CAAA;AAEQ,oCAAY"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ export declare const ApiHistory: React.FC<FlexBoxProps>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiHistory = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const material_1 = require("@mui/material");
6
+ const react_button_1 = require("@xylabs/react-button");
7
+ const react_flexbox_1 = require("@xylabs/react-flexbox");
8
+ const react_1 = require("react");
9
+ const ApiCallEntry_1 = require("./ApiCallEntry");
10
+ const ApiCallTable_1 = require("./ApiCallTable");
11
+ const useBuildHistoryData_1 = require("./useBuildHistoryData");
12
+ const ApiHistory = (props) => {
13
+ const [visible, setVisible] = (0, react_1.useState)(false);
14
+ const theme = (0, material_1.useTheme)();
15
+ const histories = (0, useBuildHistoryData_1.useBuildHistoryData)();
16
+ return ((0, jsx_runtime_1.jsx)(react_flexbox_1.FlexCol, Object.assign({ flexGrow: 1 }, props, { children: visible ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_button_1.ButtonEx, Object.assign({ variant: "contained", size: "small", onClick: () => setVisible(false) }, { children: "Hide Api History" })), histories === null || histories === void 0 ? void 0 : histories.map((history, index) => {
17
+ var _a;
18
+ return ((0, jsx_runtime_1.jsxs)(react_flexbox_1.FlexCol, Object.assign({ flexGrow: 1 }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ marginTop: 1, variant: "h6" }, { children: history.heading })), (0, jsx_runtime_1.jsx)(ApiCallTable_1.ApiCallTable, Object.assign({ sx: { marginBottom: theme.spacing(4) } }, { children: (_a = history.callHistory) === null || _a === void 0 ? void 0 : _a.map((response, index) => ((0, jsx_runtime_1.jsx)(ApiCallEntry_1.ApiCallEntry, { bgColor: history.bgColor, call: response, index: index }, index))) }))] }), index));
19
+ })] })) : ((0, jsx_runtime_1.jsx)(react_button_1.ButtonEx, Object.assign({ variant: "contained", size: "small", onClick: () => setVisible(true) }, { children: "Show Api History" }))) })));
20
+ };
21
+ exports.ApiHistory = ApiHistory;
22
+ //# sourceMappingURL=ApiHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiHistory.js","sourceRoot":"","sources":["../../../../src/components/ApiHistory/ApiHistory.tsx"],"names":[],"mappings":";;;;AAAA,4CAAoD;AACpD,uDAA+C;AAC/C,yDAA6D;AAC7D,iCAAgC;AAEhC,iDAA6C;AAC7C,iDAA6C;AAC7C,+DAA2D;AAEpD,MAAM,UAAU,GAA2B,CAAC,KAAK,EAAE,EAAE;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,IAAA,mBAAQ,GAAE,CAAA;IACxB,MAAM,SAAS,GAAG,IAAA,yCAAmB,GAAE,CAAA;IAEvC,OAAO,CACL,uBAAC,uBAAO,kBAAC,QAAQ,EAAE,CAAC,IAAM,KAAK,cAC5B,OAAO,CAAC,CAAC,CAAC,CACT,6DACE,uBAAC,uBAAQ,kBAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,sCAEhE,EACV,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;;oBAAC,OAAA,CAClC,wBAAC,uBAAO,kBAAC,QAAQ,EAAE,CAAC,iBAClB,uBAAC,qBAAU,kBAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAC,IAAI,gBACnC,OAAO,CAAC,OAAO,IACL,EACb,uBAAC,2BAAY,kBAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,gBACjD,MAAA,OAAO,CAAC,WAAW,0CAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAC7C,uBAAC,2BAAY,IAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAO,KAAK,CAAI,CACrF,CAAC,IACW,MARU,KAAK,CAStB,CACX,CAAA;iBAAA,CAAC,IACD,CACJ,CAAC,CAAC,CAAC,CACF,uBAAC,uBAAQ,kBAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,sCAE/D,CACZ,IACO,CACX,CAAA;AACH,CAAC,CAAA;AAhCY,QAAA,UAAU,cAgCtB"}
@@ -0,0 +1,2 @@
1
+ export * from './ApiCallEntry';
2
+ export * from './ApiHistory';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./ApiCallEntry"), exports);
5
+ tslib_1.__exportStar(require("./ApiHistory"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ApiHistory/index.ts"],"names":[],"mappings":";;;AAAA,yDAA8B;AAC9B,uDAA4B"}
@@ -0,0 +1,10 @@
1
+ declare const useBuildHistoryData: () => ({
2
+ bgColor: string;
3
+ callHistory: import("@xyo-network/api").XyoApiResponse<unknown, unknown>[] | undefined;
4
+ heading: string;
5
+ } | {
6
+ bgColor: string;
7
+ callHistory: import("@xyo-network/api").XyoApiError<any, any>[] | undefined;
8
+ heading: string;
9
+ })[];
10
+ export { useBuildHistoryData };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useBuildHistoryData = void 0;
4
+ const material_1 = require("@mui/material");
5
+ const contexts_1 = require("../../contexts");
6
+ const useBuildHistoryData = () => {
7
+ const { errorHistory, responseHistory, successHistory, failureHistory } = (0, contexts_1.useArchivistApi)();
8
+ const theme = (0, material_1.useTheme)();
9
+ const histories = [
10
+ {
11
+ bgColor: (0, material_1.lighten)(theme.palette.success.light, 0.85),
12
+ callHistory: successHistory,
13
+ heading: 'Successes',
14
+ },
15
+ {
16
+ bgColor: (0, material_1.lighten)(theme.palette.error.light, 0.85),
17
+ callHistory: failureHistory,
18
+ heading: 'Failures',
19
+ },
20
+ {
21
+ bgColor: (0, material_1.lighten)(theme.palette.error.light, 0.85),
22
+ callHistory: errorHistory,
23
+ heading: 'Errors',
24
+ },
25
+ {
26
+ bgColor: (0, material_1.lighten)(theme.palette.info.light, 0.85),
27
+ callHistory: responseHistory,
28
+ heading: 'Responses',
29
+ },
30
+ ];
31
+ return histories;
32
+ };
33
+ exports.useBuildHistoryData = useBuildHistoryData;
34
+ //# sourceMappingURL=useBuildHistoryData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBuildHistoryData.js","sourceRoot":"","sources":["../../../../src/components/ApiHistory/useBuildHistoryData.tsx"],"names":[],"mappings":";;;AAAA,4CAAiD;AAEjD,6CAAgD;AAEhD,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC/B,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,IAAA,0BAAe,GAAE,CAAA;IAC3F,MAAM,KAAK,GAAG,IAAA,mBAAQ,GAAE,CAAA;IAExB,MAAM,SAAS,GAAG;QAChB;YACE,OAAO,EAAE,IAAA,kBAAO,EAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;YACnD,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,WAAW;SACrB;QACD;YACE,OAAO,EAAE,IAAA,kBAAO,EAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;YACjD,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,UAAU;SACpB;QACD;YACE,OAAO,EAAE,IAAA,kBAAO,EAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;YACjD,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE,QAAQ;SAClB;QACD;YACE,OAAO,EAAE,IAAA,kBAAO,EAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;YAChD,WAAW,EAAE,eAAe;YAC5B,OAAO,EAAE,WAAW;SACrB;KACF,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAEQ,kDAAmB"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ import { XyoArchivist } from '@xyo-network/archivist';
4
+ export interface ArchivistDetails extends FlexBoxProps {
5
+ archivist?: XyoArchivist;
6
+ }
7
+ export declare const ArchivistDetails: React.FC<ArchivistDetails>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArchivistDetails = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const material_1 = require("@mui/material");
7
+ const react_button_1 = require("@xylabs/react-button");
8
+ const react_flexbox_1 = require("@xylabs/react-flexbox");
9
+ const react_shared_1 = require("@xylabs/react-shared");
10
+ const react_1 = require("react");
11
+ const contexts_1 = require("../contexts");
12
+ const ArchivistDetails = (_a) => {
13
+ var { archivist: archivistProp } = _a, props = tslib_1.__rest(_a, ["archivist"]);
14
+ const { archivist = archivistProp } = (0, contexts_1.useArchivist)();
15
+ const [payloads, setPayloads] = (0, react_1.useState)();
16
+ const [refresh, setRefresh] = (0, react_1.useState)(0);
17
+ (0, react_shared_1.useAsyncEffect)(
18
+ // eslint-disable-next-line react-hooks/exhaustive-deps
19
+ (mounted) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
20
+ var _b;
21
+ const payloads = yield ((_b = archivist === null || archivist === void 0 ? void 0 : archivist.all) === null || _b === void 0 ? void 0 : _b.call(archivist));
22
+ if (mounted()) {
23
+ setPayloads(payloads);
24
+ }
25
+ }), [archivist, refresh]);
26
+ return ((0, jsx_runtime_1.jsxs)(react_flexbox_1.FlexCol, Object.assign({}, props, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: `Payloads: ${payloads ? payloads.length : '-'}` }), (0, jsx_runtime_1.jsxs)(material_1.ButtonGroup, { children: [(0, jsx_runtime_1.jsx)(react_button_1.ButtonEx, Object.assign({ disabled: (archivist === null || archivist === void 0 ? void 0 : archivist.commit) === undefined, onClick: () => { var _a; return (_a = archivist === null || archivist === void 0 ? void 0 : archivist.commit) === null || _a === void 0 ? void 0 : _a.call(archivist); } }, { children: "Commit" })), (0, jsx_runtime_1.jsx)(react_button_1.ButtonEx, Object.assign({ disabled: (archivist === null || archivist === void 0 ? void 0 : archivist.clear) === undefined, onClick: () => { var _a; return (_a = archivist === null || archivist === void 0 ? void 0 : archivist.clear) === null || _a === void 0 ? void 0 : _a.call(archivist); } }, { children: "Clear" })), (0, jsx_runtime_1.jsx)(react_button_1.ButtonEx, Object.assign({ onClick: () => {
27
+ setRefresh(refresh + 1);
28
+ } }, { children: "Refresh" }))] })] })));
29
+ };
30
+ exports.ArchivistDetails = ArchivistDetails;
31
+ //# sourceMappingURL=Details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Details.js","sourceRoot":"","sources":["../../../src/components/Details.tsx"],"names":[],"mappings":";;;;;AAAA,4CAAuD;AACvD,uDAA+C;AAC/C,yDAA6D;AAC7D,uDAAqD;AAGrD,iCAAgC;AAEhC,0CAA0C;AAMnC,MAAM,gBAAgB,GAA+B,CAAC,EAAsC,EAAE,EAAE;QAA1C,EAAE,SAAS,EAAE,aAAa,OAAY,EAAP,KAAK,sBAApC,aAAsC,CAAF;IAC/F,MAAM,EAAE,SAAS,GAAG,aAAa,EAAE,GAAG,IAAA,uBAAY,GAAE,CAAA;IACpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,GAAgB,CAAA;IACxD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAA;IAEzC,IAAA,6BAAc;IACZ,uDAAuD;IACvD,CAAO,OAAO,EAAE,EAAE;;QAChB,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,yDAAI,CAAA,CAAA;QACzC,IAAI,OAAO,EAAE,EAAE;YACb,WAAW,CAAC,QAAQ,CAAC,CAAA;SACtB;IACH,CAAC,CAAA,EACD,CAAC,SAAS,EAAE,OAAO,CAAC,CACrB,CAAA;IAED,OAAO,CACL,wBAAC,uBAAO,oBAAK,KAAK,eAChB,uBAAC,qBAAU,cAAE,aAAa,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAc,EAC1E,wBAAC,sBAAW,eACV,uBAAC,uBAAQ,kBAAC,QAAQ,EAAE,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,MAAK,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,WAAC,OAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,yDAAI,CAAA,EAAA,4BAE9E,EACX,uBAAC,uBAAQ,kBAAC,QAAQ,EAAE,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,MAAK,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,WAAC,OAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,yDAAI,CAAA,EAAA,2BAE5E,EACX,uBAAC,uBAAQ,kBACP,OAAO,EAAE,GAAG,EAAE;4BACZ,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;wBACzB,CAAC,6BAGQ,IACC,KACN,CACX,CAAA;AACH,CAAC,CAAA;AApCY,QAAA,gBAAgB,oBAoC5B"}
@@ -0,0 +1 @@
1
+ export * from './Details';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./Details"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB"}
@@ -19,10 +19,10 @@ const ArchivistProvider = ({ archivist: archivistProp, required = false, childre
19
19
  exports.ArchivistProvider = ArchivistProvider;
20
20
  const MemoryArchivistProvider = (_a) => {
21
21
  var _b;
22
- var { config = {} } = _a, props = tslib_1.__rest(_a, ["config"]);
22
+ var { config = {}, children } = _a, props = tslib_1.__rest(_a, ["config", "children"]);
23
23
  const { archivist } = (0, use_1.useArchivist)();
24
24
  config.parent = (_b = config.parent) !== null && _b !== void 0 ? _b : archivist;
25
- return (0, jsx_runtime_1.jsx)(exports.ArchivistProvider, Object.assign({ archivist: new archivist_1.XyoMemoryArchivist(config) }, props));
25
+ return ((0, jsx_runtime_1.jsx)(exports.ArchivistProvider, Object.assign({ archivist: new archivist_1.XyoMemoryArchivist(config) }, props, { children: children })));
26
26
  };
27
27
  exports.MemoryArchivistProvider = MemoryArchivistProvider;
28
28
  const RemoteArchivistProvider = (_a) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":";;;;;AACA,0CAA+E;AAC/E,sDAA6F;AAC7F,iCAAgC;AAEhC,uCAA4C;AAC5C,+BAAoC;AAO7B,MAAM,iBAAiB,GAAmD,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5I,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAA2B,aAAa,CAAC,CAAA;IAEnF,OAAO,CACL,uBAAC,0BAAgB,CAAC,QAAQ,kBACxB,KAAK,EAAE;YACL,SAAS;YACT,QAAQ,EAAE,IAAI;YACd,YAAY;SACb,gBAEA,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IACxB,CAC7B,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,iBAAiB,qBAc7B;AAOM,MAAM,uBAAuB,GAAyD,CAAC,EAAyB,EAAE,EAAE;;QAA7B,EAAE,MAAM,GAAG,EAAE,OAAY,EAAP,KAAK,sBAAvB,UAAyB,CAAF;IACnH,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,kBAAY,GAAE,CAAA;IACpC,MAAM,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,SAAS,CAAA;IAC1C,OAAO,uBAAC,yBAAiB,kBAAC,SAAS,EAAE,IAAI,8BAAkB,CAAC,MAAM,CAAC,IAAM,KAAK,EAAI,CAAA;AACpF,CAAC,CAAA;AAJY,QAAA,uBAAuB,2BAInC;AAOM,MAAM,uBAAuB,GAAsD,CAAC,EAAyB,EAAE,EAAE;;QAA7B,EAAE,MAAM,GAAG,EAAE,OAAY,EAAP,KAAK,sBAAvB,UAAyB,CAAF;IAChH,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,kBAAY,GAAE,CAAA;IACpC,MAAM,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,SAAS,CAAA;IAC1C,OAAO,uBAAC,yBAAiB,kBAAC,SAAS,EAAE,IAAI,wBAAkB,CAAC,MAAM,CAAC,IAAM,KAAK,EAAI,CAAA;AACpF,CAAC,CAAA;AAJY,QAAA,uBAAuB,2BAInC"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":";;;;;AACA,0CAA+E;AAC/E,sDAA6F;AAC7F,iCAAgC;AAGhC,uCAA4C;AAC5C,+BAAoC;AAO7B,MAAM,iBAAiB,GAAmD,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5I,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAA2B,aAAa,CAAC,CAAA;IAEnF,OAAO,CACL,uBAAC,0BAAgB,CAAC,QAAQ,kBACxB,KAAK,EAAE;YACL,SAAS;YACT,QAAQ,EAAE,IAAI;YACd,YAAY;SACb,gBAEA,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IACxB,CAC7B,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,iBAAiB,qBAc7B;AAOM,MAAM,uBAAuB,GAAyD,CAAC,EAAmC,EAAE,EAAE;;QAAvC,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,OAAY,EAAP,KAAK,sBAAjC,sBAAmC,CAAF;IAC7H,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,kBAAY,GAAE,CAAA;IACpC,MAAM,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,SAAS,CAAA;IAC1C,OAAO,CACL,uBAAC,yBAAiB,kBAAC,SAAS,EAAE,IAAI,8BAAkB,CAAC,MAAM,CAAC,IAAM,KAAK,cACpE,QAAQ,IACS,CACrB,CAAA;AACH,CAAC,CAAA;AARY,QAAA,uBAAuB,2BAQnC;AAOM,MAAM,uBAAuB,GAAsD,CAAC,EAAyB,EAAE,EAAE;;QAA7B,EAAE,MAAM,GAAG,EAAE,OAAY,EAAP,KAAK,sBAAvB,UAAyB,CAAF;IAChH,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,kBAAY,GAAE,CAAA;IACpC,MAAM,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,SAAS,CAAA;IAC1C,OAAO,uBAAC,yBAAiB,kBAAC,SAAS,EAAE,IAAI,wBAAkB,CAAC,MAAM,CAAC,IAAM,KAAK,EAAI,CAAA;AACpF,CAAC,CAAA;AAJY,QAAA,uBAAuB,2BAInC"}
@@ -0,0 +1 @@
1
+ export declare const logWithMax: <T>(log: T[], item: T, max: number) => T[];
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logWithMax = void 0;
4
+ const logWithMax = (log, item, max) => {
5
+ if (max > 0) {
6
+ log.unshift(item);
7
+ while (log.length > max) {
8
+ log.pop();
9
+ }
10
+ }
11
+ return log;
12
+ };
13
+ exports.logWithMax = logWithMax;
14
+ //# sourceMappingURL=logWithMax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logWithMax.js","sourceRoot":"","sources":["../../../src/contexts/logWithMax.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAI,GAAQ,EAAE,IAAO,EAAE,GAAW,EAAE,EAAE;IAC9D,IAAI,GAAG,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;YACvB,GAAG,CAAC,GAAG,EAAE,CAAA;SACV;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AARY,QAAA,UAAU,cAQtB"}
@@ -0,0 +1,13 @@
1
+ export interface QueryableArchivist<TQueryResponse, TQuery> {
2
+ find(query: TQuery): Promise<TQueryResponse> | TQueryResponse;
3
+ }
4
+ export interface ReadArchivist<TReadResponse, TId = string> {
5
+ get(id: TId): Promise<TReadResponse | undefined> | TReadResponse | undefined;
6
+ }
7
+ export interface WriteArchivist<TWriteResponse, TWrite, TId = string> {
8
+ insert(item: TWrite): Promise<TWriteResponse> | TWriteResponse;
9
+ delete?(id: TId): Promise<boolean> | boolean;
10
+ clear?(): void;
11
+ }
12
+ export declare type ReadWriteArchivist<TWriteResponse, TWrite, TReadResponse = TWriteResponse, TId = string> = ReadArchivist<TReadResponse, TId> & WriteArchivist<TWriteResponse, TWrite>;
13
+ export declare type Archivist<TWriteResponse, TWrite, TReadResponse = TWriteResponse, TId = string, TQueryResponse = unknown, TQuery = unknown> = ReadWriteArchivist<TWriteResponse, TWrite, TReadResponse, TId> & QueryableArchivist<TQueryResponse, TQuery>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Archivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Archivist.js","sourceRoot":"","sources":["../../../src/lib/Archivist.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { XyoArchivistApi, XyoPayloadFindFilter } from '@xyo-network/api';
2
+ import { XyoBoundWitnessWithPartialMeta } from '@xyo-network/boundwitness';
3
+ import { XyoArchivist } from './XyoArchivist';
4
+ export declare class XyoApiArchivist extends XyoArchivist {
5
+ protected api: XyoArchivistApi;
6
+ protected archive: string;
7
+ constructor(api: XyoArchivistApi, archive: string);
8
+ get(hash: string): Promise<import("@xyo-network/payload").XyoPayload<object> | undefined>;
9
+ insert(payload: XyoBoundWitnessWithPartialMeta): Promise<string[]>;
10
+ find(filter: XyoPayloadFindFilter): Promise<import("@xyo-network/payload").XyoPayloadWithPartialMeta<unknown>[]>;
11
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XyoApiArchivist = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const sdk_js_1 = require("@xylabs/sdk-js");
6
+ const XyoArchivist_1 = require("./XyoArchivist");
7
+ class XyoApiArchivist extends XyoArchivist_1.XyoArchivist {
8
+ constructor(api, archive) {
9
+ super();
10
+ this.api = api;
11
+ this.archive = archive;
12
+ }
13
+ get(hash) {
14
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
+ const [payloads] = yield this.api.archive(this.archive).payload.hash(hash).get('tuple');
16
+ return payloads === null || payloads === void 0 ? void 0 : payloads.pop();
17
+ });
18
+ }
19
+ insert(payload) {
20
+ var _a, _b;
21
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ return (_b = (_a = (yield this.api.archive(this.archive).block.post([payload]))) === null || _a === void 0 ? void 0 : _a.map((value) => (0, sdk_js_1.assertEx)(value._hash))) !== null && _b !== void 0 ? _b : [];
23
+ });
24
+ }
25
+ find(filter) {
26
+ var _a, _b;
27
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
28
+ const [payloads = []] = (_a = (yield this.api.archive(this.archive).payload.find(filter, 'tuple'))) !== null && _a !== void 0 ? _a : [];
29
+ const [blocks = []] = (_b = (yield this.api.archive(this.archive).block.find(filter, 'tuple'))) !== null && _b !== void 0 ? _b : [];
30
+ return payloads.concat(blocks);
31
+ });
32
+ }
33
+ }
34
+ exports.XyoApiArchivist = XyoApiArchivist;
35
+ //# sourceMappingURL=XyoApiArchivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoApiArchivist.js","sourceRoot":"","sources":["../../../src/lib/XyoApiArchivist.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AAIzC,iDAA6C;AAE7C,MAAa,eAAgB,SAAQ,2BAAY;IAG/C,YAAY,GAAoB,EAAE,OAAe;QAC/C,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEY,GAAG,CAAC,IAAY;;YAC3B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACvF,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,EAAE,CAAA;QACxB,CAAC;KAAA;IAEY,MAAM,CAAC,OAAuC;;;YACzD,OAAO,MAAA,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,mCAAI,EAAE,CAAA;;KACjH;IAEY,IAAI,CAAC,MAA4B;;;YAC5C,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,mCAAI,EAAE,CAAA;YAClG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,mCAAI,EAAE,CAAA;YAC9F,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;;KAC/B;CACF;AAvBD,0CAuBC"}
@@ -0,0 +1,11 @@
1
+ import { XyoPayloadFindFilter } from '@xyo-network/api';
2
+ import { XyoBoundWitness, XyoBoundWitnessWithPartialMeta } from '@xyo-network/boundwitness';
3
+ import { XyoPayload, XyoPayloadWithPartialMeta } from '@xyo-network/payload';
4
+ import { Archivist } from './Archivist';
5
+ export declare abstract class XyoArchivist<TWrite extends XyoBoundWitness = XyoBoundWitnessWithPartialMeta, TRead extends XyoPayload = XyoPayloadWithPartialMeta> implements Archivist<string[], TWrite, TRead | undefined, string, TRead[], XyoPayloadFindFilter> {
6
+ abstract insert(item: TWrite): string[] | Promise<string[]>;
7
+ abstract find(query: XyoPayloadFindFilter): TRead[] | Promise<TRead[]>;
8
+ abstract get(hash: string): TRead | Promise<TRead | undefined> | undefined;
9
+ delete(_hash: string): boolean;
10
+ clear(): void;
11
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XyoArchivist = void 0;
4
+ class XyoArchivist {
5
+ delete(_hash) {
6
+ throw Error('delete not supported');
7
+ }
8
+ clear() {
9
+ throw Error('clear not supported');
10
+ }
11
+ }
12
+ exports.XyoArchivist = XyoArchivist;
13
+ //# sourceMappingURL=XyoArchivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoArchivist.js","sourceRoot":"","sources":["../../../src/lib/XyoArchivist.ts"],"names":[],"mappings":";;;AAMA,MAAsB,YAAY;IAMzB,MAAM,CAAC,KAAa;QACzB,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,KAAK;QACV,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,CAAC;CACF;AAZD,oCAYC"}
@@ -0,0 +1,12 @@
1
+ import { XyoPayloadFindFilter } from '@xyo-network/api';
2
+ import { XyoBoundWitnessWithMeta } from '@xyo-network/boundwitness';
3
+ import { XyoPayload, XyoPayloadWithPartialMeta } from '@xyo-network/payload';
4
+ import { XyoArchivist } from './XyoArchivist';
5
+ export declare class XyoMemoryArchivist extends XyoArchivist {
6
+ private cache;
7
+ delete(hash: string): boolean;
8
+ clear(): void;
9
+ get(hash: string): XyoPayloadWithPartialMeta<unknown> | undefined;
10
+ insert(payload: XyoBoundWitnessWithMeta): string[];
11
+ find<T extends XyoPayload = XyoPayload>(filter: XyoPayloadFindFilter): T[];
12
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XyoMemoryArchivist = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const boundwitness_1 = require("@xyo-network/boundwitness");
6
+ const payload_1 = require("@xyo-network/payload");
7
+ const lru_cache_1 = tslib_1.__importDefault(require("lru-cache"));
8
+ const XyoArchivist_1 = require("./XyoArchivist");
9
+ class XyoMemoryArchivist extends XyoArchivist_1.XyoArchivist {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.cache = new lru_cache_1.default({ max: 10000 });
13
+ }
14
+ delete(hash) {
15
+ return this.cache.delete(hash);
16
+ }
17
+ clear() {
18
+ this.cache.clear();
19
+ }
20
+ get(hash) {
21
+ return this.cache.get(hash);
22
+ }
23
+ insert(payload) {
24
+ var _a;
25
+ const wrapper = new boundwitness_1.XyoBoundWitnessWrapper(payload);
26
+ const payloadWithmeta = Object.assign(Object.assign({}, payload), { _hash: wrapper.hash, _timestamp: Date.now() });
27
+ const hashes = [];
28
+ hashes.push(payloadWithmeta._hash);
29
+ this.cache.set(payloadWithmeta._hash, payloadWithmeta);
30
+ (_a = payload._payloads) === null || _a === void 0 ? void 0 : _a.forEach((payload) => {
31
+ const wrapper = new payload_1.XyoPayloadWrapper(payload);
32
+ const payloadWithmeta = Object.assign(Object.assign({}, payload), { _hash: wrapper.hash, _timestamp: Date.now() });
33
+ hashes.push(payloadWithmeta._hash);
34
+ this.cache.set(payloadWithmeta._hash, payloadWithmeta);
35
+ });
36
+ return hashes;
37
+ }
38
+ find(filter) {
39
+ const result = [];
40
+ if (filter.type === 'schema') {
41
+ const filterSchema = filter.schema !== undefined ? (Array.isArray(filter.schema) ? filter.schema : [filter.schema]) : undefined;
42
+ this.cache.forEach((value) => {
43
+ let match = value;
44
+ match = filterSchema === undefined || filterSchema.includes(value.schema) ? value : undefined;
45
+ if (match) {
46
+ result.push(match);
47
+ }
48
+ });
49
+ }
50
+ if (filter.type === 'hash') {
51
+ const filterHash = filter.hash !== undefined ? (Array.isArray(filter.hash) ? filter.hash : [filter.hash]) : undefined;
52
+ this.cache.forEach((value) => {
53
+ let match = value;
54
+ match = filterHash === undefined || filterHash.includes(new payload_1.XyoPayloadWrapper(value).hash) ? value : undefined;
55
+ if (match) {
56
+ result.push(match);
57
+ }
58
+ });
59
+ }
60
+ return result;
61
+ }
62
+ }
63
+ exports.XyoMemoryArchivist = XyoMemoryArchivist;
64
+ //# sourceMappingURL=XyoMemoryArchivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../../src/lib/XyoMemoryArchivist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './XyoArchivist';
2
+ export * from './XyoMemoryArchivist';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./XyoArchivist"), exports);
5
+ tslib_1.__exportStar(require("./XyoMemoryArchivist"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,yDAA8B;AAC9B,+DAAoC"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { XyoApiError, XyoApiResponse } from '@xyo-network/api';
3
+ export interface ApiCallEntryProps {
4
+ call: XyoApiResponse | XyoApiError;
5
+ index: number;
6
+ bgColor?: string;
7
+ }
8
+ declare const ApiCallEntry: React.FC<ApiCallEntryProps>;
9
+ export { ApiCallEntry };
@@ -0,0 +1,17 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { TableCell, TableRow, Typography } from '@mui/material';
3
+ const ApiCallEntry = ({ call, bgColor, index }) => {
4
+ const formatCall = (call) => {
5
+ if (call.isXyoError) {
6
+ const error = call;
7
+ return `${error.code} - ${error.message}`;
8
+ }
9
+ else {
10
+ const response = call;
11
+ return `${response.status} ${response.statusText ? `- ${response.statusText}` : ''}`;
12
+ }
13
+ };
14
+ return (_jsxs(TableRow, { children: [_jsx(TableCell, { sx: { backgroundColor: bgColor }, children: _jsxs(Typography, { variant: "caption", children: [index + 1, "."] }) }), _jsx(TableCell, { sx: { backgroundColor: bgColor }, children: _jsx(Typography, { variant: "caption", children: call.config.method?.toUpperCase() }) }), _jsx(TableCell, { sx: { backgroundColor: bgColor }, children: _jsx(Typography, { variant: "caption", children: formatCall(call) }) }), _jsx(TableCell, { sx: { backgroundColor: bgColor }, children: _jsx(Typography, { variant: "caption", children: call.config.url }) })] }));
15
+ };
16
+ export { ApiCallEntry };
17
+ //# sourceMappingURL=ApiCallEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiCallEntry.js","sourceRoot":"","sources":["../../../../src/components/ApiHistory/ApiCallEntry.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAS/D,MAAM,YAAY,GAAgC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7E,MAAM,UAAU,GAAG,CAAC,IAA+B,EAAE,EAAE;QACrD,IAAK,IAAoB,CAAC,UAAU,EAAE;YACpC,MAAM,KAAK,GAAG,IAAmB,CAAA;YACjC,OAAO,GAAG,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;SAC1C;aAAM;YACL,MAAM,QAAQ,GAAG,IAAsB,CAAA;YACvC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;SACrF;IACH,CAAC,CAAA;IAED,OAAO,CACL,MAAC,QAAQ,eACP,KAAC,SAAS,IAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,YACzC,MAAC,UAAU,IAAC,OAAO,EAAC,SAAS,aAAE,KAAK,GAAG,CAAC,SAAe,GAC7C,EACZ,KAAC,SAAS,IAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,YACzC,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,GAAc,GACpE,EACZ,KAAC,SAAS,IAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,YACzC,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,YAAE,UAAU,CAAC,IAAI,CAAC,GAAc,GACnD,EACZ,KAAC,SAAS,IAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,YACzC,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAc,GAClD,IACH,CACZ,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ import { WithChildren } from '@xylabs/react-shared';
4
+ declare const ApiCallTable: React.FC<WithChildren<FlexBoxProps>>;
5
+ export { ApiCallTable };
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Table, TableBody, TableCell, TableHead, TableRow, Typography } from '@mui/material';
3
+ import { FlexRow } from '@xylabs/react-flexbox';
4
+ const ApiCallTable = ({ children, ...props }) => {
5
+ return (_jsx(FlexRow, { flexGrow: 1, ...props, children: _jsxs(Table, { children: [_jsx(TableHead, { children: _jsxs(TableRow, { children: [_jsx(TableCell, {}), _jsx(TableCell, { children: _jsx(Typography, { variant: "caption", children: "HTTP Method" }) }), _jsx(TableCell, { children: _jsx(Typography, { variant: "caption", children: "Status" }) }), _jsx(TableCell, { children: _jsx(Typography, { variant: "caption", children: "URL" }) })] }) }), _jsx(TableBody, { children: children })] }) }));
6
+ };
7
+ export { ApiCallTable };
8
+ //# sourceMappingURL=ApiCallTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiCallTable.js","sourceRoot":"","sources":["../../../../src/components/ApiHistory/ApiCallTable.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAgB,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG7D,MAAM,YAAY,GAAyC,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACpF,OAAO,CACL,KAAC,OAAO,IAAC,QAAQ,EAAE,CAAC,KAAM,KAAK,YAC7B,MAAC,KAAK,eACJ,KAAC,SAAS,cACR,MAAC,QAAQ,eACP,KAAC,SAAS,KAAG,EACb,KAAC,SAAS,cACR,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,4BAAyB,GAC5C,EACZ,KAAC,SAAS,cACR,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,uBAAoB,GACvC,EACZ,KAAC,SAAS,cACR,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,oBAAiB,GACpC,IACH,GACD,EACZ,KAAC,SAAS,cAAE,QAAQ,GAAa,IAC3B,GACA,CACX,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ export declare const ApiHistory: React.FC<FlexBoxProps>;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Typography, useTheme } from '@mui/material';
3
+ import { ButtonEx } from '@xylabs/react-button';
4
+ import { FlexCol } from '@xylabs/react-flexbox';
5
+ import { useState } from 'react';
6
+ import { ApiCallEntry } from './ApiCallEntry';
7
+ import { ApiCallTable } from './ApiCallTable';
8
+ import { useBuildHistoryData } from './useBuildHistoryData';
9
+ export const ApiHistory = (props) => {
10
+ const [visible, setVisible] = useState(false);
11
+ const theme = useTheme();
12
+ const histories = useBuildHistoryData();
13
+ return (_jsx(FlexCol, { flexGrow: 1, ...props, children: visible ? (_jsxs(_Fragment, { children: [_jsx(ButtonEx, { variant: "contained", size: "small", onClick: () => setVisible(false), children: "Hide Api History" }), histories?.map((history, index) => (_jsxs(FlexCol, { flexGrow: 1, children: [_jsx(Typography, { marginTop: 1, variant: "h6", children: history.heading }), _jsx(ApiCallTable, { sx: { marginBottom: theme.spacing(4) }, children: history.callHistory?.map((response, index) => (_jsx(ApiCallEntry, { bgColor: history.bgColor, call: response, index: index }, index))) })] }, index)))] })) : (_jsx(ButtonEx, { variant: "contained", size: "small", onClick: () => setVisible(true), children: "Show Api History" })) }));
14
+ };
15
+ //# sourceMappingURL=ApiHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiHistory.js","sourceRoot":"","sources":["../../../../src/components/ApiHistory/ApiHistory.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAgB,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,CAAC,MAAM,UAAU,GAA2B,CAAC,KAAK,EAAE,EAAE;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAA;IAEvC,OAAO,CACL,KAAC,OAAO,IAAC,QAAQ,EAAE,CAAC,KAAM,KAAK,YAC5B,OAAO,CAAC,CAAC,CAAC,CACT,8BACE,KAAC,QAAQ,IAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,iCAEhE,EACV,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAClC,MAAC,OAAO,IAAC,QAAQ,EAAE,CAAC,aAClB,KAAC,UAAU,IAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAC,IAAI,YACnC,OAAO,CAAC,OAAO,GACL,EACb,KAAC,YAAY,IAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,YACjD,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAC7C,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAO,KAAK,CAAI,CACrF,CAAC,GACW,KARU,KAAK,CAStB,CACX,CAAC,IACD,CACJ,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iCAE/D,CACZ,GACO,CACX,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './ApiCallEntry';
2
+ export * from './ApiHistory';
@@ -0,0 +1,3 @@
1
+ export * from './ApiCallEntry';
2
+ export * from './ApiHistory';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ApiHistory/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA"}
@@ -0,0 +1,10 @@
1
+ declare const useBuildHistoryData: () => ({
2
+ bgColor: string;
3
+ callHistory: import("@xyo-network/api").XyoApiResponse<unknown, unknown>[] | undefined;
4
+ heading: string;
5
+ } | {
6
+ bgColor: string;
7
+ callHistory: import("@xyo-network/api").XyoApiError<any, any>[] | undefined;
8
+ heading: string;
9
+ })[];
10
+ export { useBuildHistoryData };
@@ -0,0 +1,31 @@
1
+ import { lighten, useTheme } from '@mui/material';
2
+ import { useArchivistApi } from '../../contexts';
3
+ const useBuildHistoryData = () => {
4
+ const { errorHistory, responseHistory, successHistory, failureHistory } = useArchivistApi();
5
+ const theme = useTheme();
6
+ const histories = [
7
+ {
8
+ bgColor: lighten(theme.palette.success.light, 0.85),
9
+ callHistory: successHistory,
10
+ heading: 'Successes',
11
+ },
12
+ {
13
+ bgColor: lighten(theme.palette.error.light, 0.85),
14
+ callHistory: failureHistory,
15
+ heading: 'Failures',
16
+ },
17
+ {
18
+ bgColor: lighten(theme.palette.error.light, 0.85),
19
+ callHistory: errorHistory,
20
+ heading: 'Errors',
21
+ },
22
+ {
23
+ bgColor: lighten(theme.palette.info.light, 0.85),
24
+ callHistory: responseHistory,
25
+ heading: 'Responses',
26
+ },
27
+ ];
28
+ return histories;
29
+ };
30
+ export { useBuildHistoryData };
31
+ //# sourceMappingURL=useBuildHistoryData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBuildHistoryData.js","sourceRoot":"","sources":["../../../../src/components/ApiHistory/useBuildHistoryData.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC/B,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE,CAAA;IAC3F,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IAExB,MAAM,SAAS,GAAG;QAChB;YACE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;YACnD,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,WAAW;SACrB;QACD;YACE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;YACjD,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,UAAU;SACpB;QACD;YACE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;YACjD,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE,QAAQ;SAClB;QACD;YACE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;YAChD,WAAW,EAAE,eAAe;YAC5B,OAAO,EAAE,WAAW;SACrB;KACF,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ import { XyoArchivist } from '@xyo-network/archivist';
4
+ export interface ArchivistDetails extends FlexBoxProps {
5
+ archivist?: XyoArchivist;
6
+ }
7
+ export declare const ArchivistDetails: React.FC<ArchivistDetails>;
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ButtonGroup, Typography } from '@mui/material';
3
+ import { ButtonEx } from '@xylabs/react-button';
4
+ import { FlexCol } from '@xylabs/react-flexbox';
5
+ import { useAsyncEffect } from '@xylabs/react-shared';
6
+ import { useState } from 'react';
7
+ import { useArchivist } from '../contexts';
8
+ export const ArchivistDetails = ({ archivist: archivistProp, ...props }) => {
9
+ const { archivist = archivistProp } = useArchivist();
10
+ const [payloads, setPayloads] = useState();
11
+ const [refresh, setRefresh] = useState(0);
12
+ useAsyncEffect(
13
+ // eslint-disable-next-line react-hooks/exhaustive-deps
14
+ async (mounted) => {
15
+ const payloads = await archivist?.all?.();
16
+ if (mounted()) {
17
+ setPayloads(payloads);
18
+ }
19
+ }, [archivist, refresh]);
20
+ return (_jsxs(FlexCol, { ...props, children: [_jsx(Typography, { children: `Payloads: ${payloads ? payloads.length : '-'}` }), _jsxs(ButtonGroup, { children: [_jsx(ButtonEx, { disabled: archivist?.commit === undefined, onClick: () => archivist?.commit?.(), children: "Commit" }), _jsx(ButtonEx, { disabled: archivist?.clear === undefined, onClick: () => archivist?.clear?.(), children: "Clear" }), _jsx(ButtonEx, { onClick: () => {
21
+ setRefresh(refresh + 1);
22
+ }, children: "Refresh" })] })] }));
23
+ };
24
+ //# sourceMappingURL=Details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Details.js","sourceRoot":"","sources":["../../../src/components/Details.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAgB,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM1C,MAAM,CAAC,MAAM,gBAAgB,GAA+B,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACrG,MAAM,EAAE,SAAS,GAAG,aAAa,EAAE,GAAG,YAAY,EAAE,CAAA;IACpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAgB,CAAA;IACxD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEzC,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,MAAM,SAAS,EAAE,GAAG,EAAE,EAAE,CAAA;QACzC,IAAI,OAAO,EAAE,EAAE;YACb,WAAW,CAAC,QAAQ,CAAC,CAAA;SACtB;IACH,CAAC,EACD,CAAC,SAAS,EAAE,OAAO,CAAC,CACrB,CAAA;IAED,OAAO,CACL,MAAC,OAAO,OAAK,KAAK,aAChB,KAAC,UAAU,cAAE,aAAa,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAc,EAC1E,MAAC,WAAW,eACV,KAAC,QAAQ,IAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,KAAK,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,uBAE9E,EACX,KAAC,QAAQ,IAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,KAAK,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,sBAE5E,EACX,KAAC,QAAQ,IACP,OAAO,EAAE,GAAG,EAAE;4BACZ,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;wBACzB,CAAC,wBAGQ,IACC,IACN,CACX,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './Details';
@@ -0,0 +1,2 @@
1
+ export * from './Details';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -12,10 +12,10 @@ export const ArchivistProvider = ({ archivist: archivistProp, required = false,
12
12
  setArchivist,
13
13
  }, children: archivist ? children : required ? null : children }));
14
14
  };
15
- export const MemoryArchivistProvider = ({ config = {}, ...props }) => {
15
+ export const MemoryArchivistProvider = ({ config = {}, children, ...props }) => {
16
16
  const { archivist } = useArchivist();
17
17
  config.parent = config.parent ?? archivist;
18
- return _jsx(ArchivistProvider, { archivist: new XyoMemoryArchivist(config), ...props });
18
+ return (_jsx(ArchivistProvider, { archivist: new XyoMemoryArchivist(config), ...props, children: children }));
19
19
  };
20
20
  export const RemoteArchivistProvider = ({ config = {}, ...props }) => {
21
21
  const { archivist } = useArchivist();
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAA4B,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAoC,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAOpC,MAAM,CAAC,MAAM,iBAAiB,GAAmD,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5I,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA2B,aAAa,CAAC,CAAA;IAEnF,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,IACxB,KAAK,EAAE;YACL,SAAS;YACT,QAAQ,EAAE,IAAI;YACd,YAAY;SACb,YAEA,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GACxB,CAC7B,CAAA;AACH,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,uBAAuB,GAAyD,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACzH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAA;IAC1C,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAM,KAAK,GAAI,CAAA;AACpF,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,uBAAuB,GAAsD,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACtH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAA;IAC1C,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAM,KAAK,GAAI,CAAA;AACpF,CAAC,CAAA"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAA4B,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAoC,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAOpC,MAAM,CAAC,MAAM,iBAAiB,GAAmD,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5I,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA2B,aAAa,CAAC,CAAA;IAEnF,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,IACxB,KAAK,EAAE;YACL,SAAS;YACT,QAAQ,EAAE,IAAI;YACd,YAAY;SACb,YAEA,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GACxB,CAC7B,CAAA;AACH,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,uBAAuB,GAAyD,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACnI,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAA;IAC1C,OAAO,CACL,KAAC,iBAAiB,IAAC,SAAS,EAAE,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAM,KAAK,YACpE,QAAQ,GACS,CACrB,CAAA;AACH,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,uBAAuB,GAAsD,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACtH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAA;IAC1C,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAM,KAAK,GAAI,CAAA;AACpF,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const logWithMax: <T>(log: T[], item: T, max: number) => T[];
@@ -0,0 +1,10 @@
1
+ export const logWithMax = (log, item, max) => {
2
+ if (max > 0) {
3
+ log.unshift(item);
4
+ while (log.length > max) {
5
+ log.pop();
6
+ }
7
+ }
8
+ return log;
9
+ };
10
+ //# sourceMappingURL=logWithMax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logWithMax.js","sourceRoot":"","sources":["../../../src/contexts/logWithMax.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,GAAQ,EAAE,IAAO,EAAE,GAAW,EAAE,EAAE;IAC9D,IAAI,GAAG,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;YACvB,GAAG,CAAC,GAAG,EAAE,CAAA;SACV;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ export interface QueryableArchivist<TQueryResponse, TQuery> {
2
+ find(query: TQuery): Promise<TQueryResponse> | TQueryResponse;
3
+ }
4
+ export interface ReadArchivist<TReadResponse, TId = string> {
5
+ get(id: TId): Promise<TReadResponse | undefined> | TReadResponse | undefined;
6
+ }
7
+ export interface WriteArchivist<TWriteResponse, TWrite, TId = string> {
8
+ insert(item: TWrite): Promise<TWriteResponse> | TWriteResponse;
9
+ delete?(id: TId): Promise<boolean> | boolean;
10
+ clear?(): void;
11
+ }
12
+ export declare type ReadWriteArchivist<TWriteResponse, TWrite, TReadResponse = TWriteResponse, TId = string> = ReadArchivist<TReadResponse, TId> & WriteArchivist<TWriteResponse, TWrite>;
13
+ export declare type Archivist<TWriteResponse, TWrite, TReadResponse = TWriteResponse, TId = string, TQueryResponse = unknown, TQuery = unknown> = ReadWriteArchivist<TWriteResponse, TWrite, TReadResponse, TId> & QueryableArchivist<TQueryResponse, TQuery>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Archivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Archivist.js","sourceRoot":"","sources":["../../../src/lib/Archivist.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { XyoArchivistApi, XyoPayloadFindFilter } from '@xyo-network/api';
2
+ import { XyoBoundWitnessWithPartialMeta } from '@xyo-network/boundwitness';
3
+ import { XyoArchivist } from './XyoArchivist';
4
+ export declare class XyoApiArchivist extends XyoArchivist {
5
+ protected api: XyoArchivistApi;
6
+ protected archive: string;
7
+ constructor(api: XyoArchivistApi, archive: string);
8
+ get(hash: string): Promise<import("@xyo-network/payload").XyoPayload<object> | undefined>;
9
+ insert(payload: XyoBoundWitnessWithPartialMeta): Promise<string[]>;
10
+ find(filter: XyoPayloadFindFilter): Promise<import("@xyo-network/payload").XyoPayloadWithPartialMeta<unknown>[]>;
11
+ }
@@ -0,0 +1,22 @@
1
+ import { assertEx } from '@xylabs/sdk-js';
2
+ import { XyoArchivist } from './XyoArchivist';
3
+ export class XyoApiArchivist extends XyoArchivist {
4
+ constructor(api, archive) {
5
+ super();
6
+ this.api = api;
7
+ this.archive = archive;
8
+ }
9
+ async get(hash) {
10
+ const [payloads] = await this.api.archive(this.archive).payload.hash(hash).get('tuple');
11
+ return payloads?.pop();
12
+ }
13
+ async insert(payload) {
14
+ return (await this.api.archive(this.archive).block.post([payload]))?.map((value) => assertEx(value._hash)) ?? [];
15
+ }
16
+ async find(filter) {
17
+ const [payloads = []] = (await this.api.archive(this.archive).payload.find(filter, 'tuple')) ?? [];
18
+ const [blocks = []] = (await this.api.archive(this.archive).block.find(filter, 'tuple')) ?? [];
19
+ return payloads.concat(blocks);
20
+ }
21
+ }
22
+ //# sourceMappingURL=XyoApiArchivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoApiArchivist.js","sourceRoot":"","sources":["../../../src/lib/XyoApiArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAG/C,YAAY,GAAoB,EAAE,OAAe;QAC/C,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QAC3B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvF,OAAO,QAAQ,EAAE,GAAG,EAAE,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAAuC;QACzD,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IAClH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAA4B;QAC5C,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QAClG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QAC9F,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { XyoPayloadFindFilter } from '@xyo-network/api';
2
+ import { XyoBoundWitness, XyoBoundWitnessWithPartialMeta } from '@xyo-network/boundwitness';
3
+ import { XyoPayload, XyoPayloadWithPartialMeta } from '@xyo-network/payload';
4
+ import { Archivist } from './Archivist';
5
+ export declare abstract class XyoArchivist<TWrite extends XyoBoundWitness = XyoBoundWitnessWithPartialMeta, TRead extends XyoPayload = XyoPayloadWithPartialMeta> implements Archivist<string[], TWrite, TRead | undefined, string, TRead[], XyoPayloadFindFilter> {
6
+ abstract insert(item: TWrite): string[] | Promise<string[]>;
7
+ abstract find(query: XyoPayloadFindFilter): TRead[] | Promise<TRead[]>;
8
+ abstract get(hash: string): TRead | Promise<TRead | undefined> | undefined;
9
+ delete(_hash: string): boolean;
10
+ clear(): void;
11
+ }
@@ -0,0 +1,9 @@
1
+ export class XyoArchivist {
2
+ delete(_hash) {
3
+ throw Error('delete not supported');
4
+ }
5
+ clear() {
6
+ throw Error('clear not supported');
7
+ }
8
+ }
9
+ //# sourceMappingURL=XyoArchivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoArchivist.js","sourceRoot":"","sources":["../../../src/lib/XyoArchivist.ts"],"names":[],"mappings":"AAMA,MAAM,OAAgB,YAAY;IAMzB,MAAM,CAAC,KAAa;QACzB,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,KAAK;QACV,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { XyoPayloadFindFilter } from '@xyo-network/api';
2
+ import { XyoBoundWitnessWithMeta } from '@xyo-network/boundwitness';
3
+ import { XyoPayload, XyoPayloadWithPartialMeta } from '@xyo-network/payload';
4
+ import { XyoArchivist } from './XyoArchivist';
5
+ export declare class XyoMemoryArchivist extends XyoArchivist {
6
+ private cache;
7
+ delete(hash: string): boolean;
8
+ clear(): void;
9
+ get(hash: string): XyoPayloadWithPartialMeta<unknown> | undefined;
10
+ insert(payload: XyoBoundWitnessWithMeta): string[];
11
+ find<T extends XyoPayload = XyoPayload>(filter: XyoPayloadFindFilter): T[];
12
+ }
@@ -0,0 +1,58 @@
1
+ import { XyoBoundWitnessWrapper } from '@xyo-network/boundwitness';
2
+ import { XyoPayloadWrapper } from '@xyo-network/payload';
3
+ import LruCache from 'lru-cache';
4
+ import { XyoArchivist } from './XyoArchivist';
5
+ export class XyoMemoryArchivist extends XyoArchivist {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.cache = new LruCache({ max: 10000 });
9
+ }
10
+ delete(hash) {
11
+ return this.cache.delete(hash);
12
+ }
13
+ clear() {
14
+ this.cache.clear();
15
+ }
16
+ get(hash) {
17
+ return this.cache.get(hash);
18
+ }
19
+ insert(payload) {
20
+ const wrapper = new XyoBoundWitnessWrapper(payload);
21
+ const payloadWithmeta = { ...payload, _hash: wrapper.hash, _timestamp: Date.now() };
22
+ const hashes = [];
23
+ hashes.push(payloadWithmeta._hash);
24
+ this.cache.set(payloadWithmeta._hash, payloadWithmeta);
25
+ payload._payloads?.forEach((payload) => {
26
+ const wrapper = new XyoPayloadWrapper(payload);
27
+ const payloadWithmeta = { ...payload, _hash: wrapper.hash, _timestamp: Date.now() };
28
+ hashes.push(payloadWithmeta._hash);
29
+ this.cache.set(payloadWithmeta._hash, payloadWithmeta);
30
+ });
31
+ return hashes;
32
+ }
33
+ find(filter) {
34
+ const result = [];
35
+ if (filter.type === 'schema') {
36
+ const filterSchema = filter.schema !== undefined ? (Array.isArray(filter.schema) ? filter.schema : [filter.schema]) : undefined;
37
+ this.cache.forEach((value) => {
38
+ let match = value;
39
+ match = filterSchema === undefined || filterSchema.includes(value.schema) ? value : undefined;
40
+ if (match) {
41
+ result.push(match);
42
+ }
43
+ });
44
+ }
45
+ if (filter.type === 'hash') {
46
+ const filterHash = filter.hash !== undefined ? (Array.isArray(filter.hash) ? filter.hash : [filter.hash]) : undefined;
47
+ this.cache.forEach((value) => {
48
+ let match = value;
49
+ match = filterHash === undefined || filterHash.includes(new XyoPayloadWrapper(value).hash) ? value : undefined;
50
+ if (match) {
51
+ result.push(match);
52
+ }
53
+ });
54
+ }
55
+ return result;
56
+ }
57
+ }
58
+ //# sourceMappingURL=XyoMemoryArchivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../../src/lib/XyoMemoryArchivist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './XyoArchivist';
2
+ export * from './XyoMemoryArchivist';
@@ -0,0 +1,3 @@
1
+ export * from './XyoArchivist';
2
+ export * from './XyoMemoryArchivist';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA"}
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "@xyo-network/archivist": "^2.22.11",
22
22
  "@xyo-network/boundwitness": "^2.22.11",
23
23
  "@xyo-network/payload": "^2.22.11",
24
- "@xyo-network/react-shared": "^2.26.29",
24
+ "@xyo-network/react-shared": "^2.26.30",
25
25
  "lru-cache": "^7.13.1",
26
26
  "react": "^18.2.0",
27
27
  "react-dom": "^18.2.0",
@@ -82,5 +82,5 @@
82
82
  },
83
83
  "sideEffects": false,
84
84
  "types": "dist/esm/index.d.ts",
85
- "version": "2.26.29"
85
+ "version": "2.26.30"
86
86
  }
@@ -0,0 +1,38 @@
1
+ import { ComponentMeta, ComponentStory } from '@storybook/react'
2
+ import { forget } from '@xylabs/sdk-js'
3
+ import { XyoMemoryArchivist } from '@xyo-network/archivist'
4
+
5
+ import { appThemeDecorator } from '../../../../.storybook'
6
+ import { ArchivistDetails } from './Details'
7
+
8
+ const StorybookEntry = {
9
+ argTypes: {},
10
+ component: ArchivistDetails,
11
+ parameters: {
12
+ docs: {
13
+ page: null,
14
+ },
15
+ },
16
+ title: 'archivist/Details',
17
+ } as ComponentMeta<typeof ArchivistDetails>
18
+
19
+ const Template: ComponentStory<typeof ArchivistDetails> = (args) => <ArchivistDetails {...args}></ArchivistDetails>
20
+
21
+ const archivist = new XyoMemoryArchivist()
22
+ const initArchivist = async () => {
23
+ await archivist.insert?.([{ schema: 'network.xyo.test' }])
24
+ }
25
+ forget(initArchivist())
26
+
27
+ const Default = Template.bind({})
28
+ Default.args = {}
29
+ Default.decorators = [appThemeDecorator]
30
+
31
+ const WithData = Template.bind({})
32
+ WithData.args = { archivist }
33
+ WithData.decorators = [appThemeDecorator]
34
+
35
+ export { Default, WithData }
36
+
37
+ // eslint-disable-next-line import/no-default-export
38
+ export default StorybookEntry
@@ -0,0 +1,51 @@
1
+ import { ButtonGroup, Typography } from '@mui/material'
2
+ import { ButtonEx } from '@xylabs/react-button'
3
+ import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
4
+ import { useAsyncEffect } from '@xylabs/react-shared'
5
+ import { XyoArchivist } from '@xyo-network/archivist'
6
+ import { XyoPayload } from '@xyo-network/payload'
7
+ import { useState } from 'react'
8
+
9
+ import { useArchivist } from '../contexts'
10
+
11
+ export interface ArchivistDetails extends FlexBoxProps {
12
+ archivist?: XyoArchivist
13
+ }
14
+
15
+ export const ArchivistDetails: React.FC<ArchivistDetails> = ({ archivist: archivistProp, ...props }) => {
16
+ const { archivist = archivistProp } = useArchivist()
17
+ const [payloads, setPayloads] = useState<XyoPayload[]>()
18
+ const [refresh, setRefresh] = useState(0)
19
+
20
+ useAsyncEffect(
21
+ // eslint-disable-next-line react-hooks/exhaustive-deps
22
+ async (mounted) => {
23
+ const payloads = await archivist?.all?.()
24
+ if (mounted()) {
25
+ setPayloads(payloads)
26
+ }
27
+ },
28
+ [archivist, refresh]
29
+ )
30
+
31
+ return (
32
+ <FlexCol {...props}>
33
+ <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>
34
+ <ButtonGroup>
35
+ <ButtonEx disabled={archivist?.commit === undefined} onClick={() => archivist?.commit?.()}>
36
+ Commit
37
+ </ButtonEx>
38
+ <ButtonEx disabled={archivist?.clear === undefined} onClick={() => archivist?.clear?.()}>
39
+ Clear
40
+ </ButtonEx>
41
+ <ButtonEx
42
+ onClick={() => {
43
+ setRefresh(refresh + 1)
44
+ }}
45
+ >
46
+ Refresh
47
+ </ButtonEx>
48
+ </ButtonGroup>
49
+ </FlexCol>
50
+ )
51
+ }
@@ -0,0 +1 @@
1
+ export * from './Details'
@@ -3,6 +3,7 @@ import { XyoRemoteArchivist, XyoRemoteArchivistConfig } from '@xyo-network/api'
3
3
  import { XyoArchivist, XyoArchivistConfig, XyoMemoryArchivist } from '@xyo-network/archivist'
4
4
  import { useState } from 'react'
5
5
 
6
+ import { ArchivistDetails } from '../components'
6
7
  import { ArchivistContext } from './Context'
7
8
  import { useArchivist } from './use'
8
9
 
@@ -32,10 +33,14 @@ export interface MemoryArchivistProviderProps {
32
33
  config?: XyoArchivistConfig
33
34
  }
34
35
 
35
- export const MemoryArchivistProvider: React.FC<WithChildren<MemoryArchivistProviderProps>> = ({ config = {}, ...props }) => {
36
+ export const MemoryArchivistProvider: React.FC<WithChildren<MemoryArchivistProviderProps>> = ({ config = {}, children, ...props }) => {
36
37
  const { archivist } = useArchivist()
37
38
  config.parent = config.parent ?? archivist
38
- return <ArchivistProvider archivist={new XyoMemoryArchivist(config)} {...props} />
39
+ return (
40
+ <ArchivistProvider archivist={new XyoMemoryArchivist(config)} {...props}>
41
+ {children}
42
+ </ArchivistProvider>
43
+ )
39
44
  }
40
45
 
41
46
  export interface ApiArchivistProviderProps {