@xyo-network/archivist 2.22.3 → 2.22.6

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 (38) hide show
  1. package/dist/cjs/XyoArchivist.d.ts +9 -8
  2. package/dist/cjs/XyoArchivist.js +3 -3
  3. package/dist/cjs/XyoArchivist.js.map +1 -1
  4. package/dist/cjs/XyoBoundWitnessMemoryArchivist.d.ts +2 -2
  5. package/dist/cjs/XyoBoundWitnessMemoryArchivist.js +7 -1
  6. package/dist/cjs/XyoBoundWitnessMemoryArchivist.js.map +1 -1
  7. package/dist/cjs/XyoMemoryArchivist.d.ts +7 -7
  8. package/dist/cjs/XyoMemoryArchivist.js +17 -10
  9. package/dist/cjs/XyoMemoryArchivist.js.map +1 -1
  10. package/dist/cjs/XyoPayloadFindFilter.d.ts +4 -1
  11. package/dist/cjs/index.d.ts +0 -2
  12. package/dist/cjs/index.js +0 -2
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/model/Archivist.d.ts +3 -3
  15. package/dist/esm/XyoArchivist.d.ts +9 -8
  16. package/dist/esm/XyoArchivist.js +1 -1
  17. package/dist/esm/XyoArchivist.js.map +1 -1
  18. package/dist/esm/XyoBoundWitnessArchivist.js +0 -1
  19. package/dist/esm/XyoBoundWitnessArchivist.js.map +1 -1
  20. package/dist/esm/XyoBoundWitnessMemoryArchivist.d.ts +3 -3
  21. package/dist/esm/XyoBoundWitnessMemoryArchivist.js +7 -1
  22. package/dist/esm/XyoBoundWitnessMemoryArchivist.js.map +1 -1
  23. package/dist/esm/XyoMemoryArchivist.d.ts +7 -7
  24. package/dist/esm/XyoMemoryArchivist.js +17 -10
  25. package/dist/esm/XyoMemoryArchivist.js.map +1 -1
  26. package/dist/esm/XyoPayloadFindFilter.d.ts +4 -1
  27. package/dist/esm/index.d.ts +0 -2
  28. package/dist/esm/index.js +0 -2
  29. package/dist/esm/index.js.map +1 -1
  30. package/dist/esm/model/Archivist.d.ts +3 -3
  31. package/package.json +5 -5
  32. package/src/XyoArchivist.ts +11 -10
  33. package/src/XyoMemoryArchivist.ts +22 -15
  34. package/src/XyoPayloadFindFilter.ts +6 -1
  35. package/src/index.ts +0 -2
  36. package/src/model/Archivist.ts +3 -3
  37. package/src/XyoBoundWitnessArchivist.ts +0 -21
  38. package/src/XyoBoundWitnessMemoryArchivist.ts +0 -45
@@ -1,15 +1,16 @@
1
1
  import { XyoAccount } from '@xyo-network/account';
2
2
  import { XyoPayload } from '@xyo-network/payload';
3
3
  import { Archivist } from './model';
4
- import { XyoPayloadFindFilter } from './XyoPayloadFindFilter';
5
- export declare abstract class XyoArchivist<TRead extends XyoPayload = XyoPayload, TWrite extends XyoPayload = XyoPayload> implements Archivist<string, TWrite, TRead | undefined, string, TRead, XyoPayloadFindFilter> {
6
- protected parent?: XyoArchivist<TRead, TWrite>;
4
+ import { XyoPayloadFindQuery } from './XyoPayloadFindFilter';
5
+ export declare type XyoArchivist<T extends XyoPayload = XyoPayload> = Archivist<T, T, T, T, XyoPayloadFindQuery>;
6
+ export declare abstract class XyoArchivistBase<T extends XyoPayload = XyoPayload> implements XyoArchivist<T> {
7
+ protected parent?: XyoArchivist<T>;
7
8
  protected account?: XyoAccount;
8
- constructor(parent?: XyoArchivist<TRead, TWrite>, account?: XyoAccount);
9
- abstract insert(item: TWrite): string[] | Promise<string[]>;
10
- abstract find(query: XyoPayloadFindFilter): TRead[] | Promise<TRead[]>;
11
- abstract get(hash: string): TRead[] | Promise<TRead[] | undefined> | undefined;
12
- all(): TRead[] | Promise<TRead[] | undefined> | undefined;
9
+ constructor(parent?: XyoArchivist<T>, account?: XyoAccount);
10
+ abstract insert(payloads: T[]): T[] | Promise<T[]>;
11
+ abstract find(query: XyoPayloadFindQuery): T[] | Promise<T[]>;
12
+ abstract get(hash: string): T | Promise<T | undefined> | undefined;
13
+ all(): T[] | Promise<T[]>;
13
14
  delete(_hash: string): boolean | Promise<boolean>;
14
15
  clear(): void | Promise<void>;
15
16
  commit(): void;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XyoArchivist = void 0;
4
- class XyoArchivist {
3
+ exports.XyoArchivistBase = void 0;
4
+ class XyoArchivistBase {
5
5
  constructor(parent, account) {
6
6
  this.parent = parent;
7
7
  this.account = account;
@@ -19,5 +19,5 @@ class XyoArchivist {
19
19
  throw Error('commit not supported');
20
20
  }
21
21
  }
22
- exports.XyoArchivist = XyoArchivist;
22
+ exports.XyoArchivistBase = XyoArchivistBase;
23
23
  //# sourceMappingURL=XyoArchivist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoArchivist.js","sourceRoot":"","sources":["../../src/XyoArchivist.ts"],"names":[],"mappings":";;;AAMA,MAAsB,YAAY;IAKhC,YAAY,MAAoC,EAAE,OAAoB;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAIM,GAAG;QACR,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,MAAM,CAAC,KAAa;QACzB,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,KAAK;QACV,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,CAAC;IACM,MAAM;QACX,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;CACF;AAxBD,oCAwBC"}
1
+ {"version":3,"file":"XyoArchivist.js","sourceRoot":"","sources":["../../src/XyoArchivist.ts"],"names":[],"mappings":";;;AAQA,MAAsB,gBAAgB;IAGpC,YAAY,MAAwB,EAAE,OAAoB;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAKM,GAAG;QACR,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,MAAM,CAAC,KAAa;QACzB,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,KAAK;QACV,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,CAAC;IACM,MAAM;QACX,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;CACF;AAvBD,4CAuBC"}
@@ -1,5 +1,5 @@
1
1
  import { XyoBoundWitness, XyoBoundWitnessWithMeta } from '@xyo-network/boundwitness';
2
- import { XyoPayload, XyoPayloadWithMeta } from '@xyo-network/payload';
2
+ import { XyoPayloadWithMeta } from '@xyo-network/payload';
3
3
  import { XyoBoundWitnessArchivist } from './XyoBoundWitnessArchivist';
4
4
  import { XyoPayloadFindFilter } from './XyoPayloadFindFilter';
5
5
  export declare class XyoBoundWitnessMemoryArchivist<TRead extends XyoPayloadWithMeta = XyoPayloadWithMeta, TWrite extends XyoBoundWitnessWithMeta<XyoBoundWitness, TRead> & TRead = XyoBoundWitnessWithMeta<XyoBoundWitness, TRead> & TRead> extends XyoBoundWitnessArchivist<TRead, TWrite> {
@@ -8,5 +8,5 @@ export declare class XyoBoundWitnessMemoryArchivist<TRead extends XyoPayloadWith
8
8
  clear(): void;
9
9
  get(hash: string): TRead[] | Promise<TRead[] | undefined> | undefined;
10
10
  insert(boundWitness: TWrite): string[];
11
- find<T extends XyoPayload = XyoPayload>(filter: XyoPayloadFindFilter): T[];
11
+ find<T extends TRead = TRead>(filter: XyoPayloadFindFilter): T[];
12
12
  }
@@ -38,7 +38,13 @@ class XyoBoundWitnessMemoryArchivist extends XyoBoundWitnessArchivist_1.XyoBound
38
38
  return hashes;
39
39
  }
40
40
  find(filter) {
41
- return [this.cache.find((value) => value.schema === filter.schema)];
41
+ const result = [];
42
+ this.cache.forEach((value) => {
43
+ if (value.schema === filter.schema) {
44
+ result.push(value);
45
+ }
46
+ });
47
+ return result;
42
48
  }
43
49
  }
44
50
  exports.XyoBoundWitnessMemoryArchivist = XyoBoundWitnessMemoryArchivist;
@@ -1 +1 @@
1
- {"version":3,"file":"XyoBoundWitnessMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoBoundWitnessMemoryArchivist.ts"],"names":[],"mappings":";;;;AAAA,4DAA4G;AAC5G,kDAAwF;AACxF,kEAAgC;AAEhC,yEAAqE;AAGrE,MAAa,8BAGX,SAAQ,mDAAuC;IAHjD;;QAIU,UAAK,GAAG,IAAI,mBAAQ,CAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAiC7D,CAAC;IA/BQ,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEM,GAAG,CAAC,IAAY;;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;IAEM,MAAM,CAAC,YAAoB;;QAChC,MAAM,OAAO,GAAG,IAAI,qCAAsB,CAAC,YAAY,CAAC,CAAA;QACxD,MAAM,oBAAoB,mCAAQ,YAAY,KAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAE,CAAA;QAC7F,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAA;QAChE,MAAA,YAAY,CAAC,SAAS,0CAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAA;YAC9C,MAAM,eAAe,mCAAe,OAAO,KAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAE,CAAA;YAC1F,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,IAAI,CAAoC,MAA4B;QACzE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,CAAC;CACF;AArCD,wEAqCC"}
1
+ {"version":3,"file":"XyoBoundWitnessMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoBoundWitnessMemoryArchivist.ts"],"names":[],"mappings":";;;;AAAA,4DAA4G;AAC5G,kDAA4E;AAC5E,kEAAgC;AAEhC,yEAAqE;AAGrE,MAAa,8BAGX,SAAQ,mDAAuC;IAHjD;;QAIU,UAAK,GAAG,IAAI,mBAAQ,CAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAuC7D,CAAC;IArCQ,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEM,GAAG,CAAC,IAAY;;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;IAEM,MAAM,CAAC,YAAoB;;QAChC,MAAM,OAAO,GAAG,IAAI,qCAAsB,CAAC,YAAY,CAAC,CAAA;QACxD,MAAM,oBAAoB,mCAAQ,YAAY,KAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAE,CAAA;QAC7F,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAA;QAChE,MAAA,YAAY,CAAC,SAAS,0CAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAA;YAC9C,MAAM,eAAe,mCAAe,OAAO,KAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAE,CAAA;YAC1F,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,IAAI,CAA0B,MAA4B;QAC/D,MAAM,MAAM,GAAQ,EAAE,CAAA;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;gBAClC,MAAM,CAAC,IAAI,CAAC,KAAU,CAAC,CAAA;aACxB;QACH,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AA3CD,wEA2CC"}
@@ -1,11 +1,11 @@
1
1
  import { XyoPayload } from '@xyo-network/payload';
2
- import { XyoArchivist } from './XyoArchivist';
2
+ import { XyoArchivistBase } from './XyoArchivist';
3
3
  import { XyoPayloadFindFilter } from './XyoPayloadFindFilter';
4
- export declare class XyoMemoryArchivist<TRead extends XyoPayload = XyoPayload, TWrite extends XyoPayload & TRead = XyoPayload & TRead> extends XyoArchivist<TRead, TWrite> {
4
+ export declare class XyoMemoryArchivist<T extends XyoPayload = XyoPayload> extends XyoArchivistBase<T> {
5
5
  private cache;
6
- delete(hash: string): boolean;
7
- clear(): void;
8
- get(hash: string): TRead[] | Promise<TRead[] | undefined> | undefined;
9
- insert(payload: TWrite): string[];
10
- find<T extends XyoPayload = XyoPayload>(filter: XyoPayloadFindFilter): T[];
6
+ delete(hash: string): boolean | Promise<boolean>;
7
+ clear(): void | Promise<void>;
8
+ get(hash: string): T | Promise<T | undefined> | undefined;
9
+ insert(payloads: T[]): T[] | Promise<T[]>;
10
+ find<R extends T = T>(filter: XyoPayloadFindFilter): T[] | Promise<T[]>;
11
11
  }
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const payload_1 = require("@xyo-network/payload");
6
6
  const lru_cache_1 = tslib_1.__importDefault(require("lru-cache"));
7
7
  const XyoArchivist_1 = require("./XyoArchivist");
8
- class XyoMemoryArchivist extends XyoArchivist_1.XyoArchivist {
8
+ class XyoMemoryArchivist extends XyoArchivist_1.XyoArchivistBase {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  this.cache = new lru_cache_1.default({ max: 10000 });
@@ -17,18 +17,25 @@ class XyoMemoryArchivist extends XyoArchivist_1.XyoArchivist {
17
17
  this.cache.clear();
18
18
  }
19
19
  get(hash) {
20
- var _a;
21
- const localResult = this.cache.get(hash);
22
- return localResult ? [localResult] : (_a = this.parent) === null || _a === void 0 ? void 0 : _a.get(hash);
20
+ var _a, _b;
21
+ return (_a = this.cache.get(hash)) !== null && _a !== void 0 ? _a : (_b = this.parent) === null || _b === void 0 ? void 0 : _b.get(hash);
23
22
  }
24
- insert(payload) {
25
- const wrapper = new payload_1.XyoPayloadWrapper(payload);
26
- const payloadWithmeta = Object.assign(Object.assign({}, payload), { _hash: wrapper.hash, _timestamp: Date.now() });
27
- this.cache.set(payloadWithmeta._hash, payloadWithmeta);
28
- return [payloadWithmeta._hash];
23
+ insert(payloads) {
24
+ return payloads.map((payload) => {
25
+ const wrapper = new payload_1.XyoPayloadWrapper(payload);
26
+ const payloadWithmeta = Object.assign(Object.assign({}, payload), { _hash: wrapper.hash, _timestamp: Date.now() });
27
+ this.cache.set(payloadWithmeta._hash, payloadWithmeta);
28
+ return payloadWithmeta;
29
+ });
29
30
  }
30
31
  find(filter) {
31
- return [this.cache.find((value) => value.schema === filter.schema)];
32
+ const result = [];
33
+ this.cache.forEach((value) => {
34
+ if (value.schema === filter.schema) {
35
+ result.push(value);
36
+ }
37
+ });
38
+ return result;
32
39
  }
33
40
  }
34
41
  exports.XyoMemoryArchivist = XyoMemoryArchivist;
@@ -1 +1 @@
1
- {"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":";;;;AAAA,kDAAoE;AACpE,kEAAgC;AAEhC,iDAA6C;AAG7C,MAAa,kBAAkH,SAAQ,2BAA2B;IAAlK;;QACU,UAAK,GAA4B,IAAI,mBAAQ,CAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAyBtF,CAAC;IAvBQ,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEM,GAAG,CAAC,IAAY;;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;IAEM,MAAM,CAAC,OAAe;QAC3B,MAAM,OAAO,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,eAAe,mCAAQ,OAAO,KAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAE,CAAA;QACnF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;QACtD,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAEM,IAAI,CAAoC,MAA4B;QACzE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,CAAC;CACF;AA1BD,gDA0BC"}
1
+ {"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":";;;;AAAA,kDAAoE;AACpE,kEAAgC;AAEhC,iDAAiD;AAGjD,MAAa,kBAAsD,SAAQ,+BAAmB;IAA9F;;QACU,UAAK,GAAG,IAAI,mBAAQ,CAAY,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAgCzD,CAAC;IA9BQ,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEM,GAAG,CAAC,IAAY;;QACrB,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IACvD,CAAC;IAEM,MAAM,CAAC,QAAa;QACzB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAA;YAC9C,MAAM,eAAe,mCAAQ,OAAO,KAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAE,CAAA;YACnF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;YACtD,OAAO,eAAe,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,IAAI,CAAkB,MAA4B;QACvD,MAAM,MAAM,GAAQ,EAAE,CAAA;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;gBAClC,MAAM,CAAC,IAAI,CAAC,KAAU,CAAC,CAAA;aACxB;QACH,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAjCD,gDAiCC"}
@@ -1,7 +1,10 @@
1
+ import { XyoQueryPayload } from '@xyo-network/payload';
1
2
  export interface XyoPayloadFindFilter {
2
- [key: string]: unknown;
3
3
  order?: 'desc' | 'asc';
4
4
  timestamp?: number;
5
5
  limit?: number;
6
6
  schema?: string;
7
7
  }
8
+ export declare type XyoPayloadFindQuery = XyoQueryPayload<{
9
+ filter: XyoPayloadFindFilter;
10
+ }>;
@@ -1,6 +1,4 @@
1
1
  export * from './model';
2
2
  export * from './XyoArchivist';
3
- export * from './XyoBoundWitnessArchivist';
4
- export * from './XyoBoundWitnessMemoryArchivist';
5
3
  export * from './XyoMemoryArchivist';
6
4
  export * from './XyoPayloadFindFilter';
package/dist/cjs/index.js CHANGED
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./model"), exports);
5
5
  tslib_1.__exportStar(require("./XyoArchivist"), exports);
6
- tslib_1.__exportStar(require("./XyoBoundWitnessArchivist"), exports);
7
- tslib_1.__exportStar(require("./XyoBoundWitnessMemoryArchivist"), exports);
8
6
  tslib_1.__exportStar(require("./XyoMemoryArchivist"), exports);
9
7
  tslib_1.__exportStar(require("./XyoPayloadFindFilter"), exports);
10
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB;AACvB,yDAA8B;AAC9B,qEAA0C;AAC1C,2EAAgD;AAChD,+DAAoC;AACpC,iEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB;AACvB,yDAA8B;AAC9B,+DAAoC;AACpC,iEAAsC"}
@@ -1,7 +1,7 @@
1
- export interface Archivist<TWriteResponse, TWrite, TReadResponse = TWriteResponse, TId = string, TQueryResponse = TReadResponse, TQuery = unknown> {
2
- get(id: TId): Promise<TReadResponse[] | undefined> | TReadResponse[] | undefined;
1
+ export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string> {
2
+ get(id: TId): Promise<TReadResponse | undefined> | TReadResponse | undefined;
3
3
  find?(query: TQuery): Promise<TQueryResponse[]> | TQueryResponse[];
4
- insert?(item: TWrite): Promise<TWriteResponse[]> | TWriteResponse[];
4
+ insert?(item: TWrite[]): Promise<TWriteResponse[]> | TWriteResponse[];
5
5
  delete?(id: TId): Promise<boolean> | boolean;
6
6
  clear?(): void;
7
7
  }
@@ -1,15 +1,16 @@
1
1
  import { XyoAccount } from '@xyo-network/account';
2
2
  import { XyoPayload } from '@xyo-network/payload';
3
3
  import { Archivist } from './model';
4
- import { XyoPayloadFindFilter } from './XyoPayloadFindFilter';
5
- export declare abstract class XyoArchivist<TRead extends XyoPayload = XyoPayload, TWrite extends XyoPayload = XyoPayload> implements Archivist<string, TWrite, TRead | undefined, string, TRead, XyoPayloadFindFilter> {
6
- protected parent?: XyoArchivist<TRead, TWrite>;
4
+ import { XyoPayloadFindQuery } from './XyoPayloadFindFilter';
5
+ export declare type XyoArchivist<T extends XyoPayload = XyoPayload> = Archivist<T, T, T, T, XyoPayloadFindQuery>;
6
+ export declare abstract class XyoArchivistBase<T extends XyoPayload = XyoPayload> implements XyoArchivist<T> {
7
+ protected parent?: XyoArchivist<T>;
7
8
  protected account?: XyoAccount;
8
- constructor(parent?: XyoArchivist<TRead, TWrite>, account?: XyoAccount);
9
- abstract insert(item: TWrite): string[] | Promise<string[]>;
10
- abstract find(query: XyoPayloadFindFilter): TRead[] | Promise<TRead[]>;
11
- abstract get(hash: string): TRead[] | Promise<TRead[] | undefined> | undefined;
12
- all(): TRead[] | Promise<TRead[] | undefined> | undefined;
9
+ constructor(parent?: XyoArchivist<T>, account?: XyoAccount);
10
+ abstract insert(payloads: T[]): T[] | Promise<T[]>;
11
+ abstract find(query: XyoPayloadFindQuery): T[] | Promise<T[]>;
12
+ abstract get(hash: string): T | Promise<T | undefined> | undefined;
13
+ all(): T[] | Promise<T[]>;
13
14
  delete(_hash: string): boolean | Promise<boolean>;
14
15
  clear(): void | Promise<void>;
15
16
  commit(): void;
@@ -1,4 +1,4 @@
1
- export class XyoArchivist {
1
+ export class XyoArchivistBase {
2
2
  constructor(parent, account) {
3
3
  this.parent = parent;
4
4
  this.account = account;
@@ -1 +1 @@
1
- {"version":3,"file":"XyoArchivist.js","sourceRoot":"","sources":["../../src/XyoArchivist.ts"],"names":[],"mappings":"AAMA,MAAM,OAAgB,YAAY;IAKhC,YAAY,MAAoC,EAAE,OAAoB;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAIM,GAAG;QACR,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,MAAM,CAAC,KAAa;QACzB,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,KAAK;QACV,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,CAAC;IACM,MAAM;QACX,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"XyoArchivist.js","sourceRoot":"","sources":["../../src/XyoArchivist.ts"],"names":[],"mappings":"AAQA,MAAM,OAAgB,gBAAgB;IAGpC,YAAY,MAAwB,EAAE,OAAoB;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAKM,GAAG;QACR,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,MAAM,CAAC,KAAa;QACzB,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,KAAK;QACV,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,CAAC;IACM,MAAM;QACX,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;CACF"}
@@ -1,6 +1,5 @@
1
1
  import { assertEx } from '@xylabs/sdk-js';
2
2
  import { XyoBoundWitnessBuilder } from '@xyo-network/boundwitness';
3
- import { XyoArchivist } from './XyoArchivist';
4
3
  export class XyoBoundWitnessArchivist extends XyoArchivist {
5
4
  async commit() {
6
5
  const parent = assertEx(this.parent, 'Parent is required for commit');
@@ -1 +1 @@
1
- {"version":3,"file":"XyoBoundWitnessArchivist.js","sourceRoot":"","sources":["../../src/XyoBoundWitnessArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAA2B,MAAM,2BAA2B,CAAA;AAG3F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,OAAgB,wBAAkI,SAAQ,YAG/J;IACQ,KAAK,CAAC,MAAM;QACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAA;QACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAA;QAClE,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAiB,CAAA;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;QACjE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACzC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"XyoBoundWitnessArchivist.js","sourceRoot":"","sources":["../../src/XyoBoundWitnessArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAA2B,MAAM,2BAA2B,CAAA;AAK3F,MAAM,OAAgB,wBAAkI,SAAQ,YAG/J;IACQ,KAAK,CAAC,MAAM;QACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAA;QACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAA;QAClE,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAiB,CAAA;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;QACjE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACzC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -1,12 +1,12 @@
1
1
  import { XyoBoundWitness, XyoBoundWitnessWithMeta } from '@xyo-network/boundwitness';
2
- import { XyoPayload, XyoPayloadWithMeta } from '@xyo-network/payload';
2
+ import { XyoPayloadWithMeta } from '@xyo-network/payload';
3
3
  import { XyoBoundWitnessArchivist } from './XyoBoundWitnessArchivist';
4
4
  import { XyoPayloadFindFilter } from './XyoPayloadFindFilter';
5
5
  export declare class XyoBoundWitnessMemoryArchivist<TRead extends XyoPayloadWithMeta = XyoPayloadWithMeta, TWrite extends XyoBoundWitnessWithMeta<XyoBoundWitness, TRead> & TRead = XyoBoundWitnessWithMeta<XyoBoundWitness, TRead> & TRead> extends XyoBoundWitnessArchivist<TRead, TWrite> {
6
6
  private cache;
7
7
  delete(hash: string): boolean;
8
8
  clear(): void;
9
- get(hash: string): TRead[] | Promise<TRead[] | undefined> | undefined;
9
+ get(hash: string): any;
10
10
  insert(boundWitness: TWrite): string[];
11
- find<T extends XyoPayload = XyoPayload>(filter: XyoPayloadFindFilter): T[];
11
+ find<T extends TRead = TRead>(filter: XyoPayloadFindFilter): T[];
12
12
  }
@@ -32,7 +32,13 @@ export class XyoBoundWitnessMemoryArchivist extends XyoBoundWitnessArchivist {
32
32
  return hashes;
33
33
  }
34
34
  find(filter) {
35
- return [this.cache.find((value) => value.schema === filter.schema)];
35
+ const result = [];
36
+ this.cache.forEach((value) => {
37
+ if (value.schema === filter.schema) {
38
+ result.push(value);
39
+ }
40
+ });
41
+ return result;
36
42
  }
37
43
  }
38
44
  //# sourceMappingURL=XyoBoundWitnessMemoryArchivist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoBoundWitnessMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoBoundWitnessMemoryArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAC5G,OAAO,EAAkC,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAGrE,MAAM,OAAO,8BAGX,SAAQ,wBAAuC;IAHjD;;QAIU,UAAK,GAAG,IAAI,QAAQ,CAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAiC7D,CAAC;IA/BQ,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEM,GAAG,CAAC,IAAY;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;IAEM,MAAM,CAAC,YAAoB;QAChC,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAA;QACxD,MAAM,oBAAoB,GAAG,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QAC7F,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAA;QAChE,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAC9C,MAAM,eAAe,GAAU,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAC1F,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,IAAI,CAAoC,MAA4B;QACzE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,CAAC;CACF"}
1
+ {"version":3,"file":"XyoBoundWitnessMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoBoundWitnessMemoryArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAC5G,OAAO,EAAsB,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAGrE,MAAM,OAAO,8BAGX,SAAQ,wBAAuC;IAHjD;;QAIU,UAAK,GAAG,IAAI,QAAQ,CAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAuC7D,CAAC;IArCQ,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEM,GAAG,CAAC,IAAY;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;IAEM,MAAM,CAAC,YAAoB;QAChC,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAA;QACxD,MAAM,oBAAoB,GAAG,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QAC7F,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAA;QAChE,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAC9C,MAAM,eAAe,GAAU,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAC1F,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,IAAI,CAA0B,MAA4B;QAC/D,MAAM,MAAM,GAAQ,EAAE,CAAA;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;gBAClC,MAAM,CAAC,IAAI,CAAC,KAAU,CAAC,CAAA;aACxB;QACH,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -1,11 +1,11 @@
1
1
  import { XyoPayload } from '@xyo-network/payload';
2
- import { XyoArchivist } from './XyoArchivist';
2
+ import { XyoArchivistBase } from './XyoArchivist';
3
3
  import { XyoPayloadFindFilter } from './XyoPayloadFindFilter';
4
- export declare class XyoMemoryArchivist<TRead extends XyoPayload = XyoPayload, TWrite extends XyoPayload & TRead = XyoPayload & TRead> extends XyoArchivist<TRead, TWrite> {
4
+ export declare class XyoMemoryArchivist<T extends XyoPayload = XyoPayload> extends XyoArchivistBase<T> {
5
5
  private cache;
6
- delete(hash: string): boolean;
7
- clear(): void;
8
- get(hash: string): TRead[] | Promise<TRead[] | undefined> | undefined;
9
- insert(payload: TWrite): string[];
10
- find<T extends XyoPayload = XyoPayload>(filter: XyoPayloadFindFilter): T[];
6
+ delete(hash: string): boolean | Promise<boolean>;
7
+ clear(): void | Promise<void>;
8
+ get(hash: string): T | Promise<T | undefined> | undefined;
9
+ insert(payloads: T[]): T[] | Promise<T[]>;
10
+ find<R extends T = T>(filter: XyoPayloadFindFilter): T[] | Promise<T[]>;
11
11
  }
@@ -1,7 +1,7 @@
1
1
  import { XyoPayloadWrapper } from '@xyo-network/payload';
2
2
  import LruCache from 'lru-cache';
3
- import { XyoArchivist } from './XyoArchivist';
4
- export class XyoMemoryArchivist extends XyoArchivist {
3
+ import { XyoArchivistBase } from './XyoArchivist';
4
+ export class XyoMemoryArchivist extends XyoArchivistBase {
5
5
  constructor() {
6
6
  super(...arguments);
7
7
  this.cache = new LruCache({ max: 10000 });
@@ -13,17 +13,24 @@ export class XyoMemoryArchivist extends XyoArchivist {
13
13
  this.cache.clear();
14
14
  }
15
15
  get(hash) {
16
- const localResult = this.cache.get(hash);
17
- return localResult ? [localResult] : this.parent?.get(hash);
16
+ return this.cache.get(hash) ?? this.parent?.get(hash);
18
17
  }
19
- insert(payload) {
20
- const wrapper = new XyoPayloadWrapper(payload);
21
- const payloadWithmeta = { ...payload, _hash: wrapper.hash, _timestamp: Date.now() };
22
- this.cache.set(payloadWithmeta._hash, payloadWithmeta);
23
- return [payloadWithmeta._hash];
18
+ insert(payloads) {
19
+ return payloads.map((payload) => {
20
+ const wrapper = new XyoPayloadWrapper(payload);
21
+ const payloadWithmeta = { ...payload, _hash: wrapper.hash, _timestamp: Date.now() };
22
+ this.cache.set(payloadWithmeta._hash, payloadWithmeta);
23
+ return payloadWithmeta;
24
+ });
24
25
  }
25
26
  find(filter) {
26
- return [this.cache.find((value) => value.schema === filter.schema)];
27
+ const result = [];
28
+ this.cache.forEach((value) => {
29
+ if (value.schema === filter.schema) {
30
+ result.push(value);
31
+ }
32
+ });
33
+ return result;
27
34
  }
28
35
  }
29
36
  //# sourceMappingURL=XyoMemoryArchivist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,MAAM,OAAO,kBAAkH,SAAQ,YAA2B;IAAlK;;QACU,UAAK,GAA4B,IAAI,QAAQ,CAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAyBtF,CAAC;IAvBQ,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEM,GAAG,CAAC,IAAY;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;IAEM,MAAM,CAAC,OAAe;QAC3B,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,eAAe,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QACnF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;QACtD,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAEM,IAAI,CAAoC,MAA4B;QACzE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,CAAC;CACF"}
1
+ {"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGjD,MAAM,OAAO,kBAAsD,SAAQ,gBAAmB;IAA9F;;QACU,UAAK,GAAG,IAAI,QAAQ,CAAY,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAgCzD,CAAC;IA9BQ,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEM,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IACvD,CAAC;IAEM,MAAM,CAAC,QAAa;QACzB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAC9C,MAAM,eAAe,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YACnF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;YACtD,OAAO,eAAe,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,IAAI,CAAkB,MAA4B;QACvD,MAAM,MAAM,GAAQ,EAAE,CAAA;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;gBAClC,MAAM,CAAC,IAAI,CAAC,KAAU,CAAC,CAAA;aACxB;QACH,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -1,7 +1,10 @@
1
+ import { XyoQueryPayload } from '@xyo-network/payload';
1
2
  export interface XyoPayloadFindFilter {
2
- [key: string]: unknown;
3
3
  order?: 'desc' | 'asc';
4
4
  timestamp?: number;
5
5
  limit?: number;
6
6
  schema?: string;
7
7
  }
8
+ export declare type XyoPayloadFindQuery = XyoQueryPayload<{
9
+ filter: XyoPayloadFindFilter;
10
+ }>;
@@ -1,6 +1,4 @@
1
1
  export * from './model';
2
2
  export * from './XyoArchivist';
3
- export * from './XyoBoundWitnessArchivist';
4
- export * from './XyoBoundWitnessMemoryArchivist';
5
3
  export * from './XyoMemoryArchivist';
6
4
  export * from './XyoPayloadFindFilter';
package/dist/esm/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
  export * from './model';
2
2
  export * from './XyoArchivist';
3
- export * from './XyoBoundWitnessArchivist';
4
- export * from './XyoBoundWitnessMemoryArchivist';
5
3
  export * from './XyoMemoryArchivist';
6
4
  export * from './XyoPayloadFindFilter';
7
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kCAAkC,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA"}
@@ -1,7 +1,7 @@
1
- export interface Archivist<TWriteResponse, TWrite, TReadResponse = TWriteResponse, TId = string, TQueryResponse = TReadResponse, TQuery = unknown> {
2
- get(id: TId): Promise<TReadResponse[] | undefined> | TReadResponse[] | undefined;
1
+ export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string> {
2
+ get(id: TId): Promise<TReadResponse | undefined> | TReadResponse | undefined;
3
3
  find?(query: TQuery): Promise<TQueryResponse[]> | TQueryResponse[];
4
- insert?(item: TWrite): Promise<TWriteResponse[]> | TWriteResponse[];
4
+ insert?(item: TWrite[]): Promise<TWriteResponse[]> | TWriteResponse[];
5
5
  delete?(id: TId): Promise<boolean> | boolean;
6
6
  clear?(): void;
7
7
  }
package/package.json CHANGED
@@ -10,10 +10,10 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@xylabs/sdk-js": "^2.6.2",
13
- "@xyo-network/account": "^2.22.3",
14
- "@xyo-network/boundwitness": "^2.22.3",
15
- "@xyo-network/core": "^2.22.3",
16
- "@xyo-network/payload": "^2.22.3",
13
+ "@xyo-network/account": "^2.22.6",
14
+ "@xyo-network/boundwitness": "^2.22.6",
15
+ "@xyo-network/core": "^2.22.6",
16
+ "@xyo-network/payload": "^2.22.6",
17
17
  "axios": "^0.27.2",
18
18
  "lru-cache": "^7.13.1",
19
19
  "pako": "^2.0.4"
@@ -56,6 +56,6 @@
56
56
  },
57
57
  "sideEffects": true,
58
58
  "types": "dist/esm/index.d.ts",
59
- "version": "2.22.3",
59
+ "version": "2.22.6",
60
60
  "packageManager": "yarn@3.1.1"
61
61
  }
@@ -2,21 +2,22 @@ import { XyoAccount } from '@xyo-network/account'
2
2
  import { XyoPayload } from '@xyo-network/payload'
3
3
 
4
4
  import { Archivist } from './model'
5
- import { XyoPayloadFindFilter } from './XyoPayloadFindFilter'
5
+ import { XyoPayloadFindQuery } from './XyoPayloadFindFilter'
6
6
 
7
- export abstract class XyoArchivist<TRead extends XyoPayload = XyoPayload, TWrite extends XyoPayload = XyoPayload>
8
- implements Archivist<string, TWrite, TRead | undefined, string, TRead, XyoPayloadFindFilter>
9
- {
10
- protected parent?: XyoArchivist<TRead, TWrite>
7
+ export type XyoArchivist<T extends XyoPayload = XyoPayload> = Archivist<T, T, T, T, XyoPayloadFindQuery>
8
+
9
+ export abstract class XyoArchivistBase<T extends XyoPayload = XyoPayload> implements XyoArchivist<T> {
10
+ protected parent?: XyoArchivist<T>
11
11
  protected account?: XyoAccount
12
- constructor(parent?: XyoArchivist<TRead, TWrite>, account?: XyoAccount) {
12
+ constructor(parent?: XyoArchivist<T>, account?: XyoAccount) {
13
13
  this.parent = parent
14
14
  this.account = account
15
15
  }
16
- abstract insert(item: TWrite): string[] | Promise<string[]>
17
- abstract find(query: XyoPayloadFindFilter): TRead[] | Promise<TRead[]>
18
- abstract get(hash: string): TRead[] | Promise<TRead[] | undefined> | undefined
19
- public all(): TRead[] | Promise<TRead[] | undefined> | undefined {
16
+
17
+ abstract insert(payloads: T[]): T[] | Promise<T[]>
18
+ abstract find(query: XyoPayloadFindQuery): T[] | Promise<T[]>
19
+ abstract get(hash: string): T | Promise<T | undefined> | undefined
20
+ public all(): T[] | Promise<T[]> {
20
21
  throw Error('getAll not supported')
21
22
  }
22
23
  public delete(_hash: string): boolean | Promise<boolean> {
@@ -1,33 +1,40 @@
1
1
  import { XyoPayload, XyoPayloadWrapper } from '@xyo-network/payload'
2
2
  import LruCache from 'lru-cache'
3
3
 
4
- import { XyoArchivist } from './XyoArchivist'
4
+ import { XyoArchivistBase } from './XyoArchivist'
5
5
  import { XyoPayloadFindFilter } from './XyoPayloadFindFilter'
6
6
 
7
- export class XyoMemoryArchivist<TRead extends XyoPayload = XyoPayload, TWrite extends XyoPayload & TRead = XyoPayload & TRead> extends XyoArchivist<TRead, TWrite> {
8
- private cache: LruCache<string, TRead> = new LruCache<string, TRead>({ max: 10000 })
7
+ export class XyoMemoryArchivist<T extends XyoPayload = XyoPayload> extends XyoArchivistBase<T> {
8
+ private cache = new LruCache<string, T>({ max: 10000 })
9
9
 
10
- public delete(hash: string) {
10
+ public delete(hash: string): boolean | Promise<boolean> {
11
11
  return this.cache.delete(hash)
12
12
  }
13
13
 
14
- public clear() {
14
+ public clear(): void | Promise<void> {
15
15
  this.cache.clear()
16
16
  }
17
17
 
18
- public get(hash: string) {
19
- const localResult = this.cache.get(hash)
20
- return localResult ? [localResult] : this.parent?.get(hash)
18
+ public get(hash: string): T | Promise<T | undefined> | undefined {
19
+ return this.cache.get(hash) ?? this.parent?.get(hash)
21
20
  }
22
21
 
23
- public insert(payload: TWrite) {
24
- const wrapper = new XyoPayloadWrapper(payload)
25
- const payloadWithmeta = { ...payload, _hash: wrapper.hash, _timestamp: Date.now() }
26
- this.cache.set(payloadWithmeta._hash, payloadWithmeta)
27
- return [payloadWithmeta._hash]
22
+ public insert(payloads: T[]): T[] | Promise<T[]> {
23
+ return payloads.map((payload) => {
24
+ const wrapper = new XyoPayloadWrapper(payload)
25
+ const payloadWithmeta = { ...payload, _hash: wrapper.hash, _timestamp: Date.now() }
26
+ this.cache.set(payloadWithmeta._hash, payloadWithmeta)
27
+ return payloadWithmeta
28
+ })
28
29
  }
29
30
 
30
- public find<T extends XyoPayload = XyoPayload>(filter: XyoPayloadFindFilter): T[] {
31
- return [this.cache.find((value) => value.schema === filter.schema)]
31
+ public find<R extends T = T>(filter: XyoPayloadFindFilter): T[] | Promise<T[]> {
32
+ const result: R[] = []
33
+ this.cache.forEach((value) => {
34
+ if (value.schema === filter.schema) {
35
+ result.push(value as R)
36
+ }
37
+ })
38
+ return result
32
39
  }
33
40
  }
@@ -1,7 +1,12 @@
1
+ import { XyoQueryPayload } from '@xyo-network/payload'
2
+
1
3
  export interface XyoPayloadFindFilter {
2
- [key: string]: unknown
3
4
  order?: 'desc' | 'asc'
4
5
  timestamp?: number
5
6
  limit?: number
6
7
  schema?: string
7
8
  }
9
+
10
+ export type XyoPayloadFindQuery = XyoQueryPayload<{
11
+ filter: XyoPayloadFindFilter
12
+ }>
package/src/index.ts CHANGED
@@ -1,6 +1,4 @@
1
1
  export * from './model'
2
2
  export * from './XyoArchivist'
3
- export * from './XyoBoundWitnessArchivist'
4
- export * from './XyoBoundWitnessMemoryArchivist'
5
3
  export * from './XyoMemoryArchivist'
6
4
  export * from './XyoPayloadFindFilter'
@@ -1,7 +1,7 @@
1
- export interface Archivist<TWriteResponse, TWrite, TReadResponse = TWriteResponse, TId = string, TQueryResponse = TReadResponse, TQuery = unknown> {
2
- get(id: TId): Promise<TReadResponse[] | undefined> | TReadResponse[] | undefined
1
+ export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string> {
2
+ get(id: TId): Promise<TReadResponse | undefined> | TReadResponse | undefined
3
3
  find?(query: TQuery): Promise<TQueryResponse[]> | TQueryResponse[]
4
- insert?(item: TWrite): Promise<TWriteResponse[]> | TWriteResponse[]
4
+ insert?(item: TWrite[]): Promise<TWriteResponse[]> | TWriteResponse[]
5
5
  delete?(id: TId): Promise<boolean> | boolean
6
6
  clear?(): void
7
7
  }
@@ -1,21 +0,0 @@
1
- import { assertEx } from '@xylabs/sdk-js'
2
- import { XyoBoundWitnessBuilder, XyoBoundWitnessWithMeta } from '@xyo-network/boundwitness'
3
- import { XyoPayload } from '@xyo-network/payload'
4
-
5
- import { XyoArchivist } from './XyoArchivist'
6
-
7
- export abstract class XyoBoundWitnessArchivist<TRead extends XyoPayload = XyoPayload, TWrite extends XyoBoundWitnessWithMeta = XyoBoundWitnessWithMeta> extends XyoArchivist<
8
- TRead,
9
- TWrite
10
- > {
11
- public async commit() {
12
- const parent = assertEx(this.parent, 'Parent is required for commit')
13
- const account = assertEx(this.account, 'Account is required for commit')
14
- const payloads = assertEx(await parent.all(), 'Nothing to commit')
15
- const builder = new XyoBoundWitnessBuilder<TWrite, TRead>()
16
- const block = builder.payloads(payloads).witness(account).build()
17
- const [hash] = await parent.insert(block)
18
- await this.clear()
19
- return hash
20
- }
21
- }
@@ -1,45 +0,0 @@
1
- import { XyoBoundWitness, XyoBoundWitnessWithMeta, XyoBoundWitnessWrapper } from '@xyo-network/boundwitness'
2
- import { XyoPayload, XyoPayloadWithMeta, XyoPayloadWrapper } from '@xyo-network/payload'
3
- import LruCache from 'lru-cache'
4
-
5
- import { XyoBoundWitnessArchivist } from './XyoBoundWitnessArchivist'
6
- import { XyoPayloadFindFilter } from './XyoPayloadFindFilter'
7
-
8
- export class XyoBoundWitnessMemoryArchivist<
9
- TRead extends XyoPayloadWithMeta = XyoPayloadWithMeta,
10
- TWrite extends XyoBoundWitnessWithMeta<XyoBoundWitness, TRead> & TRead = XyoBoundWitnessWithMeta<XyoBoundWitness, TRead> & TRead
11
- > extends XyoBoundWitnessArchivist<TRead, TWrite> {
12
- private cache = new LruCache<string, TRead>({ max: 10000 })
13
-
14
- public delete(hash: string) {
15
- return this.cache.delete(hash)
16
- }
17
-
18
- public clear() {
19
- this.cache.clear()
20
- }
21
-
22
- public get(hash: string) {
23
- const localResult = this.cache.get(hash)
24
- return localResult ? [localResult] : this.parent?.get(hash)
25
- }
26
-
27
- public insert(boundWitness: TWrite) {
28
- const wrapper = new XyoBoundWitnessWrapper(boundWitness)
29
- const boundWitnessWithMeta = { ...boundWitness, _hash: wrapper.hash, _timestamp: Date.now() }
30
- const hashes: string[] = []
31
- hashes.push(boundWitnessWithMeta._hash)
32
- this.cache.set(boundWitnessWithMeta._hash, boundWitnessWithMeta)
33
- boundWitness._payloads?.forEach((payload) => {
34
- const wrapper = new XyoPayloadWrapper(payload)
35
- const payloadWithMeta: TRead = { ...payload, _hash: wrapper.hash, _timestamp: Date.now() }
36
- hashes.push(payloadWithMeta._hash)
37
- this.cache.set(payloadWithMeta._hash, payloadWithMeta)
38
- })
39
- return hashes
40
- }
41
-
42
- public find<T extends XyoPayload = XyoPayload>(filter: XyoPayloadFindFilter): T[] {
43
- return [this.cache.find((value) => value.schema === filter.schema)]
44
- }
45
- }