@xyo-network/react-archivist 2.26.22

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 (119) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +69 -0
  3. package/babel.config.json +5 -0
  4. package/dist/cjs/components/ApiHistory/ApiCallEntry.d.ts +9 -0
  5. package/dist/cjs/components/ApiHistory/ApiCallEntry.js +21 -0
  6. package/dist/cjs/components/ApiHistory/ApiCallEntry.js.map +1 -0
  7. package/dist/cjs/components/ApiHistory/ApiCallTable.d.ts +5 -0
  8. package/dist/cjs/components/ApiHistory/ApiCallTable.js +13 -0
  9. package/dist/cjs/components/ApiHistory/ApiCallTable.js.map +1 -0
  10. package/dist/cjs/components/ApiHistory/ApiHistory.d.ts +3 -0
  11. package/dist/cjs/components/ApiHistory/ApiHistory.js +22 -0
  12. package/dist/cjs/components/ApiHistory/ApiHistory.js.map +1 -0
  13. package/dist/cjs/components/ApiHistory/index.d.ts +2 -0
  14. package/dist/cjs/components/ApiHistory/index.js +6 -0
  15. package/dist/cjs/components/ApiHistory/index.js.map +1 -0
  16. package/dist/cjs/components/ApiHistory/useBuildHistoryData.d.ts +10 -0
  17. package/dist/cjs/components/ApiHistory/useBuildHistoryData.js +34 -0
  18. package/dist/cjs/components/ApiHistory/useBuildHistoryData.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/Context.d.ts +4 -0
  23. package/dist/cjs/contexts/Context.js +7 -0
  24. package/dist/cjs/contexts/Context.js.map +1 -0
  25. package/dist/cjs/contexts/Provider.d.ts +20 -0
  26. package/dist/cjs/contexts/Provider.js +31 -0
  27. package/dist/cjs/contexts/Provider.js.map +1 -0
  28. package/dist/cjs/contexts/State.d.ts +6 -0
  29. package/dist/cjs/contexts/State.js +3 -0
  30. package/dist/cjs/contexts/State.js.map +1 -0
  31. package/dist/cjs/contexts/index.d.ts +4 -0
  32. package/dist/cjs/contexts/index.js +8 -0
  33. package/dist/cjs/contexts/index.js.map +1 -0
  34. package/dist/cjs/contexts/logWithMax.d.ts +1 -0
  35. package/dist/cjs/contexts/logWithMax.js +14 -0
  36. package/dist/cjs/contexts/logWithMax.js.map +1 -0
  37. package/dist/cjs/contexts/use.d.ts +1 -0
  38. package/dist/cjs/contexts/use.js +10 -0
  39. package/dist/cjs/contexts/use.js.map +1 -0
  40. package/dist/cjs/index.d.ts +1 -0
  41. package/dist/cjs/index.js +5 -0
  42. package/dist/cjs/index.js.map +1 -0
  43. package/dist/cjs/lib/Archivist.d.ts +13 -0
  44. package/dist/cjs/lib/Archivist.js +3 -0
  45. package/dist/cjs/lib/Archivist.js.map +1 -0
  46. package/dist/cjs/lib/XyoApiArchivist.d.ts +11 -0
  47. package/dist/cjs/lib/XyoApiArchivist.js +35 -0
  48. package/dist/cjs/lib/XyoApiArchivist.js.map +1 -0
  49. package/dist/cjs/lib/XyoArchivist.d.ts +11 -0
  50. package/dist/cjs/lib/XyoArchivist.js +13 -0
  51. package/dist/cjs/lib/XyoArchivist.js.map +1 -0
  52. package/dist/cjs/lib/XyoMemoryArchivist.d.ts +12 -0
  53. package/dist/cjs/lib/XyoMemoryArchivist.js +64 -0
  54. package/dist/cjs/lib/XyoMemoryArchivist.js.map +1 -0
  55. package/dist/cjs/lib/index.d.ts +2 -0
  56. package/dist/cjs/lib/index.js +6 -0
  57. package/dist/cjs/lib/index.js.map +1 -0
  58. package/dist/docs.json +7 -0
  59. package/dist/esm/components/ApiHistory/ApiCallEntry.d.ts +9 -0
  60. package/dist/esm/components/ApiHistory/ApiCallEntry.js +17 -0
  61. package/dist/esm/components/ApiHistory/ApiCallEntry.js.map +1 -0
  62. package/dist/esm/components/ApiHistory/ApiCallTable.d.ts +5 -0
  63. package/dist/esm/components/ApiHistory/ApiCallTable.js +8 -0
  64. package/dist/esm/components/ApiHistory/ApiCallTable.js.map +1 -0
  65. package/dist/esm/components/ApiHistory/ApiHistory.d.ts +3 -0
  66. package/dist/esm/components/ApiHistory/ApiHistory.js +15 -0
  67. package/dist/esm/components/ApiHistory/ApiHistory.js.map +1 -0
  68. package/dist/esm/components/ApiHistory/index.d.ts +2 -0
  69. package/dist/esm/components/ApiHistory/index.js +3 -0
  70. package/dist/esm/components/ApiHistory/index.js.map +1 -0
  71. package/dist/esm/components/ApiHistory/useBuildHistoryData.d.ts +10 -0
  72. package/dist/esm/components/ApiHistory/useBuildHistoryData.js +31 -0
  73. package/dist/esm/components/ApiHistory/useBuildHistoryData.js.map +1 -0
  74. package/dist/esm/components/index.d.ts +1 -0
  75. package/dist/esm/components/index.js +2 -0
  76. package/dist/esm/components/index.js.map +1 -0
  77. package/dist/esm/contexts/Context.d.ts +4 -0
  78. package/dist/esm/contexts/Context.js +4 -0
  79. package/dist/esm/contexts/Context.js.map +1 -0
  80. package/dist/esm/contexts/Provider.d.ts +20 -0
  81. package/dist/esm/contexts/Provider.js +22 -0
  82. package/dist/esm/contexts/Provider.js.map +1 -0
  83. package/dist/esm/contexts/State.d.ts +6 -0
  84. package/dist/esm/contexts/State.js +2 -0
  85. package/dist/esm/contexts/State.js.map +1 -0
  86. package/dist/esm/contexts/index.d.ts +4 -0
  87. package/dist/esm/contexts/index.js +5 -0
  88. package/dist/esm/contexts/index.js.map +1 -0
  89. package/dist/esm/contexts/logWithMax.d.ts +1 -0
  90. package/dist/esm/contexts/logWithMax.js +10 -0
  91. package/dist/esm/contexts/logWithMax.js.map +1 -0
  92. package/dist/esm/contexts/use.d.ts +1 -0
  93. package/dist/esm/contexts/use.js +6 -0
  94. package/dist/esm/contexts/use.js.map +1 -0
  95. package/dist/esm/index.d.ts +1 -0
  96. package/dist/esm/index.js +2 -0
  97. package/dist/esm/index.js.map +1 -0
  98. package/dist/esm/lib/Archivist.d.ts +13 -0
  99. package/dist/esm/lib/Archivist.js +2 -0
  100. package/dist/esm/lib/Archivist.js.map +1 -0
  101. package/dist/esm/lib/XyoApiArchivist.d.ts +11 -0
  102. package/dist/esm/lib/XyoApiArchivist.js +22 -0
  103. package/dist/esm/lib/XyoApiArchivist.js.map +1 -0
  104. package/dist/esm/lib/XyoArchivist.d.ts +11 -0
  105. package/dist/esm/lib/XyoArchivist.js +9 -0
  106. package/dist/esm/lib/XyoArchivist.js.map +1 -0
  107. package/dist/esm/lib/XyoMemoryArchivist.d.ts +12 -0
  108. package/dist/esm/lib/XyoMemoryArchivist.js +58 -0
  109. package/dist/esm/lib/XyoMemoryArchivist.js.map +1 -0
  110. package/dist/esm/lib/index.d.ts +2 -0
  111. package/dist/esm/lib/index.js +3 -0
  112. package/dist/esm/lib/index.js.map +1 -0
  113. package/package.json +86 -0
  114. package/src/contexts/Context.ts +7 -0
  115. package/src/contexts/Provider.tsx +48 -0
  116. package/src/contexts/State.ts +7 -0
  117. package/src/contexts/index.ts +4 -0
  118. package/src/contexts/use.ts +7 -0
  119. package/src/index.ts +1 -0
@@ -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"}
package/dist/docs.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "id": 0,
3
+ "name": "@xyo-network/react-archivist",
4
+ "kind": 1,
5
+ "flags": {},
6
+ "originalName": ""
7
+ }
@@ -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 @@
1
+ export * from './ApiHistory';
@@ -0,0 +1,2 @@
1
+ export * from './ApiHistory';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { ArchivistState } from './State';
3
+ declare const ArchivistContext: import("react").Context<ArchivistState & import("@xyo-network/react-shared").ContextExState>;
4
+ export { ArchivistContext };
@@ -0,0 +1,4 @@
1
+ import { createContextEx } from '@xyo-network/react-shared';
2
+ const ArchivistContext = createContextEx();
3
+ export { ArchivistContext };
4
+ //# sourceMappingURL=Context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../src/contexts/Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAI3D,MAAM,gBAAgB,GAAG,eAAe,EAAkB,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import { WithChildren } from '@xylabs/react-shared';
3
+ import { XyoArchivistApi } from '@xyo-network/api';
4
+ import { XyoArchivist } from '@xyo-network/archivist';
5
+ export interface ArchivistProviderProps {
6
+ required?: boolean;
7
+ archivist?: XyoArchivist;
8
+ }
9
+ export declare const ArchivistProvider: React.FC<WithChildren<ArchivistProviderProps>>;
10
+ export interface MemoryArchivistProviderProps {
11
+ required?: boolean;
12
+ parent?: XyoArchivist;
13
+ }
14
+ export declare const MemoryArchivistProvider: React.FC<WithChildren<MemoryArchivistProviderProps>>;
15
+ export interface ApiArchivistProviderProps {
16
+ required?: boolean;
17
+ api: XyoArchivistApi;
18
+ archive: string;
19
+ }
20
+ export declare const ApiArchivistProvider: React.FC<WithChildren<ApiArchivistProviderProps>>;
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { XyoApiArchivist } from '@xyo-network/api';
3
+ import { XyoMemoryArchivist } from '@xyo-network/archivist';
4
+ import { useState } from 'react';
5
+ import { ArchivistContext } from './Context';
6
+ import { useArchivist } from './use';
7
+ export const ArchivistProvider = ({ archivist: archivistProp, required = false, children }) => {
8
+ const [archivist, setArchivist] = useState(archivistProp);
9
+ return (_jsx(ArchivistContext.Provider, { value: {
10
+ archivist,
11
+ provided: true,
12
+ setArchivist,
13
+ }, children: archivist ? children : required ? null : children }));
14
+ };
15
+ export const MemoryArchivistProvider = ({ parent: parentProp, ...props }) => {
16
+ const { archivist: parent } = useArchivist();
17
+ return _jsx(ArchivistProvider, { archivist: new XyoMemoryArchivist(parentProp ?? parent), ...props });
18
+ };
19
+ export const ApiArchivistProvider = ({ api, archive, ...props }) => {
20
+ return _jsx(ArchivistProvider, { archivist: new XyoApiArchivist(api, archive), ...props });
21
+ };
22
+ //# sourceMappingURL=Provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAmB,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAgB,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACzE,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,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAChI,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAA;IAC5C,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,IAAI,kBAAkB,CAAC,UAAU,IAAI,MAAM,CAAC,KAAM,KAAK,GAAI,CAAA;AAClG,CAAC,CAAA;AAQD,MAAM,CAAC,MAAM,oBAAoB,GAAsD,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACpH,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,IAAI,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,KAAM,KAAK,GAAI,CAAA;AACvF,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { XyoArchivist } from '@xyo-network/archivist';
2
+ import { Dispatch } from 'react';
3
+ export interface ArchivistState {
4
+ archivist?: XyoArchivist;
5
+ setArchivist?: Dispatch<XyoArchivist>;
6
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=State.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"State.js","sourceRoot":"","sources":["../../../src/contexts/State.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './Context';
2
+ export * from './Provider';
3
+ export * from './State';
4
+ export * from './use';
@@ -0,0 +1,5 @@
1
+ export * from './Context';
2
+ export * from './Provider';
3
+ export * from './State';
4
+ export * from './use';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,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 @@
1
+ export declare const useArchivist: (required?: boolean) => Omit<import("./State").ArchivistState & import("@xyo-network/react-shared").ContextExState, "provided">;
@@ -0,0 +1,6 @@
1
+ import { useContextEx } from '@xyo-network/react-shared';
2
+ import { ArchivistContext } from './Context';
3
+ export const useArchivist = (required = false) => {
4
+ return useContextEx(ArchivistContext, 'Archivist', required);
5
+ };
6
+ //# sourceMappingURL=use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/contexts/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,EAAE;IAC/C,OAAO,YAAY,CAAC,gBAAgB,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;AAC9D,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './contexts';
@@ -0,0 +1,2 @@
1
+ export * from './contexts';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,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
+ }