@xyo-network/archivist 2.32.0-rc.1 → 2.32.0-rc.4

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 (65) hide show
  1. package/dist/cjs/Archivist.d.ts +5 -4
  2. package/dist/cjs/Archivist.d.ts.map +1 -1
  3. package/dist/cjs/XyoArchivist.d.ts +26 -5
  4. package/dist/cjs/XyoArchivist.d.ts.map +1 -1
  5. package/dist/cjs/XyoArchivist.js +53 -5
  6. package/dist/cjs/XyoArchivist.js.map +1 -1
  7. package/dist/cjs/XyoArchivistWrapper.d.ts +3 -2
  8. package/dist/cjs/XyoArchivistWrapper.d.ts.map +1 -1
  9. package/dist/cjs/XyoArchivistWrapper.js +2 -2
  10. package/dist/cjs/XyoArchivistWrapper.js.map +1 -1
  11. package/dist/cjs/XyoCookieArchivist.d.ts +33 -0
  12. package/dist/cjs/XyoCookieArchivist.d.ts.map +1 -0
  13. package/dist/cjs/XyoCookieArchivist.js +158 -0
  14. package/dist/cjs/XyoCookieArchivist.js.map +1 -0
  15. package/dist/cjs/XyoMemoryArchivist.d.ts +5 -10
  16. package/dist/cjs/XyoMemoryArchivist.d.ts.map +1 -1
  17. package/dist/cjs/XyoMemoryArchivist.js +27 -30
  18. package/dist/cjs/XyoMemoryArchivist.js.map +1 -1
  19. package/dist/cjs/XyoStorageArchivist.d.ts +33 -0
  20. package/dist/cjs/XyoStorageArchivist.d.ts.map +1 -0
  21. package/dist/cjs/XyoStorageArchivist.js +148 -0
  22. package/dist/cjs/XyoStorageArchivist.js.map +1 -0
  23. package/dist/cjs/index.d.ts +3 -0
  24. package/dist/cjs/index.d.ts.map +1 -1
  25. package/dist/cjs/index.js +3 -0
  26. package/dist/cjs/index.js.map +1 -1
  27. package/dist/docs.json +12677 -4302
  28. package/dist/esm/Archivist.d.ts +5 -4
  29. package/dist/esm/Archivist.d.ts.map +1 -1
  30. package/dist/esm/XyoArchivist.d.ts +26 -5
  31. package/dist/esm/XyoArchivist.d.ts.map +1 -1
  32. package/dist/esm/XyoArchivist.js +41 -5
  33. package/dist/esm/XyoArchivist.js.map +1 -1
  34. package/dist/esm/XyoArchivistWrapper.d.ts +3 -2
  35. package/dist/esm/XyoArchivistWrapper.d.ts.map +1 -1
  36. package/dist/esm/XyoArchivistWrapper.js +2 -2
  37. package/dist/esm/XyoArchivistWrapper.js.map +1 -1
  38. package/dist/esm/XyoCookieArchivist.d.ts +33 -0
  39. package/dist/esm/XyoCookieArchivist.d.ts.map +1 -0
  40. package/dist/esm/XyoCookieArchivist.js +139 -0
  41. package/dist/esm/XyoCookieArchivist.js.map +1 -0
  42. package/dist/esm/XyoMemoryArchivist.d.ts +5 -10
  43. package/dist/esm/XyoMemoryArchivist.d.ts.map +1 -1
  44. package/dist/esm/XyoMemoryArchivist.js +17 -18
  45. package/dist/esm/XyoMemoryArchivist.js.map +1 -1
  46. package/dist/esm/XyoStorageArchivist.d.ts +33 -0
  47. package/dist/esm/XyoStorageArchivist.d.ts.map +1 -0
  48. package/dist/esm/XyoStorageArchivist.js +130 -0
  49. package/dist/esm/XyoStorageArchivist.js.map +1 -0
  50. package/dist/esm/index.d.ts +3 -0
  51. package/dist/esm/index.d.ts.map +1 -1
  52. package/dist/esm/index.js +3 -0
  53. package/dist/esm/index.js.map +1 -1
  54. package/package.json +10 -5
  55. package/src/Archivist.ts +6 -5
  56. package/src/XyoArchivist.ts +58 -9
  57. package/src/XyoArchivistWrapper.ts +5 -4
  58. package/src/XyoCookieArchivist.spec.ts +9 -0
  59. package/src/XyoCookieArchivist.ts +176 -0
  60. package/src/XyoMemoryArchivist.ts +19 -28
  61. package/src/XyoStorageArchivist.spec.ts +14 -0
  62. package/src/XyoStorageArchivist.ts +167 -0
  63. package/src/index.ts +3 -0
  64. package/src/test.spec.test/index.ts +1 -0
  65. package/src/test.spec.test/testArchivist.ts +48 -0
@@ -1,3 +1,4 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness';
1
2
  import { Module } from '@xyo-network/module';
2
3
  import { XyoPayload } from '@xyo-network/payload';
3
4
  import { NullablePromisableArray, Promisable, PromisableArray } from '@xyo-network/promisable';
@@ -8,16 +9,16 @@ export interface ReadArchivist<TReadResponse, TId = string, TQuery extends XyoAr
8
9
  all?(): PromisableArray<TReadResponse>;
9
10
  }
10
11
  export interface WriteArchivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TId = string, TQuery extends XyoArchivistQuery = XyoArchivistQuery> extends Module<TQuery> {
11
- insert(item: TWrite[]): PromisableArray<TWriteResponse>;
12
+ insert(item: TWrite[]): Promisable<TWriteResponse>;
12
13
  delete?(ids: TId[]): PromisableArray<boolean>;
13
14
  clear?(): Promisable<void>;
14
15
  }
15
16
  export interface FindArchivist<TReadResponse, TFindResponse = TReadResponse, TFindFilter = unknown, TQuery extends XyoArchivistQuery = XyoArchivistQuery> extends Module<TQuery> {
16
17
  find(filter: TFindFilter): PromisableArray<TFindResponse>;
17
18
  }
18
- export interface StashArchivist<TReadResponse, TQuery extends XyoArchivistQuery = XyoArchivistQuery> extends Module<TQuery> {
19
- commit?(): PromisableArray<TReadResponse>;
19
+ export interface StashArchivist<TWriteResponse, TQuery extends XyoArchivistQuery = XyoArchivistQuery> extends Module<TQuery> {
20
+ commit?(): Promisable<TWriteResponse>;
20
21
  }
21
- export interface Archivist<TReadResponse = XyoPayload | null, TWriteResponse = TReadResponse | null, TWrite = TReadResponse, TFindResponse = TReadResponse | null, TFindFilter = XyoPayloadFindFilter, TId = string, TQuery extends XyoArchivistQuery = XyoArchivistQuery> extends ReadArchivist<TReadResponse, TId, TQuery>, FindArchivist<TReadResponse, TFindResponse, TFindFilter, TQuery>, WriteArchivist<TReadResponse, TWriteResponse, TWrite, TId, TQuery>, StashArchivist<TReadResponse, TQuery> {
22
+ export interface Archivist<TReadResponse = XyoPayload | null, TWriteResponse = XyoBoundWitness | null, TWrite = TReadResponse, TFindResponse = TReadResponse | null, TFindFilter = XyoPayloadFindFilter, TId = string, TQuery extends XyoArchivistQuery = XyoArchivistQuery> extends ReadArchivist<TReadResponse, TId, TQuery>, FindArchivist<TReadResponse, TFindResponse, TFindFilter, TQuery>, WriteArchivist<TReadResponse, TWriteResponse, TWrite, TId, TQuery>, StashArchivist<TWriteResponse, TQuery> {
22
23
  }
23
24
  //# sourceMappingURL=Archivist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,WAAW,aAAa,CAAC,aAAa,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,MAAM,CAAC,MAAM,CAAC;IACtI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAA;IACvD,GAAG,CAAC,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,cAAc,CAC7B,aAAa,EACb,cAAc,GAAG,aAAa,EAC9B,MAAM,GAAG,aAAa,EACtB,GAAG,GAAG,MAAM,EACZ,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CACpD,SAAQ,MAAM,CAAC,MAAM,CAAC;IACtB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;IACvD,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IAC7C,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,aAAa,CAC5B,aAAa,EACb,aAAa,GAAG,aAAa,EAC7B,WAAW,GAAG,OAAO,EACrB,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CACpD,SAAQ,MAAM,CAAC,MAAM,CAAC;IACtB,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CAAC,aAAa,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,cAAc,CAAC,aAAa,EAAE,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,MAAM,CAAC,MAAM,CAAC;IACzH,MAAM,CAAC,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,SAAS,CACxB,aAAa,GAAG,UAAU,GAAG,IAAI,EACjC,cAAc,GAAG,aAAa,GAAG,IAAI,EACrC,MAAM,GAAG,aAAa,EACtB,aAAa,GAAG,aAAa,GAAG,IAAI,EACpC,WAAW,GAAG,oBAAoB,EAClC,GAAG,GAAG,MAAM,EACZ,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CACpD,SAAQ,aAAa,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,EAC/C,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,EAChE,cAAc,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAClE,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC;CAAG"}
1
+ {"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,WAAW,aAAa,CAAC,aAAa,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,MAAM,CAAC,MAAM,CAAC;IACtI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAA;IACvD,GAAG,CAAC,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,cAAc,CAC7B,aAAa,EACb,cAAc,GAAG,aAAa,EAC9B,MAAM,GAAG,aAAa,EACtB,GAAG,GAAG,MAAM,EACZ,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CACpD,SAAQ,MAAM,CAAC,MAAM,CAAC;IACtB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAClD,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IAC7C,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,aAAa,CAC5B,aAAa,EACb,aAAa,GAAG,aAAa,EAC7B,WAAW,GAAG,OAAO,EACrB,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CACpD,SAAQ,MAAM,CAAC,MAAM,CAAC;IACtB,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CAAC,aAAa,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,cAAc,CAAC,cAAc,EAAE,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,MAAM,CAAC,MAAM,CAAC;IAC1H,MAAM,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,SAAS,CACxB,aAAa,GAAG,UAAU,GAAG,IAAI,EACjC,cAAc,GAAG,eAAe,GAAG,IAAI,EACvC,MAAM,GAAG,aAAa,EACtB,aAAa,GAAG,aAAa,GAAG,IAAI,EACpC,WAAW,GAAG,oBAAoB,EAClC,GAAG,GAAG,MAAM,EACZ,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CACpD,SAAQ,aAAa,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,EAC/C,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,EAChE,cAAc,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAClE,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC;CAAG"}
@@ -1,21 +1,42 @@
1
- import { XyoModule, XyoModuleQueryResult } from '@xyo-network/module';
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness';
2
+ import { Module, XyoModule, XyoModuleQueryResult } from '@xyo-network/module';
2
3
  import { XyoPayload } from '@xyo-network/payload';
3
4
  import { NullablePromisableArray, Promisable, PromisableArray } from '@xyo-network/promisable';
4
5
  import { Archivist } from './Archivist';
5
6
  import { XyoArchivistConfig, XyoArchivistParents } from './Config';
6
7
  import { XyoArchivistQuery, XyoArchivistQuerySchema } from './Queries';
7
8
  import { XyoPayloadFindFilter } from './XyoPayloadFindFilter';
8
- export declare abstract class XyoArchivist<TConfig extends XyoPayload = XyoPayload> extends XyoModule<XyoArchivistConfig<TConfig>> implements Archivist<XyoPayload, XyoPayload, XyoPayload, XyoPayload, XyoPayloadFindFilter> {
9
- get queries(): XyoArchivistQuerySchema[];
9
+ export declare abstract class XyoArchivist<TConfig extends XyoPayload = XyoPayload> extends XyoModule<XyoArchivistConfig<TConfig>, XyoArchivistQuery> implements Archivist<XyoPayload, XyoPayload, XyoPayload, XyoPayload, XyoPayloadFindFilter> {
10
+ queries(): XyoArchivistQuerySchema[];
11
+ get cacheParentReads(): boolean;
12
+ get writeThrough(): boolean;
10
13
  all(): PromisableArray<XyoPayload>;
11
14
  clear(): Promisable<void>;
12
- commit(): PromisableArray<XyoPayload>;
15
+ commit(): Promisable<XyoBoundWitness>;
13
16
  delete(_hashes: string[]): PromisableArray<boolean>;
14
17
  find(_filter: XyoPayloadFindFilter): PromisableArray<XyoPayload>;
15
18
  abstract get(hashes: string[]): NullablePromisableArray<XyoPayload>;
16
- abstract insert(item: XyoPayload[]): PromisableArray<XyoPayload>;
19
+ abstract insert(item: XyoPayload[]): Promisable<XyoBoundWitness>;
17
20
  query(query: XyoArchivistQuery): Promise<XyoModuleQueryResult>;
18
21
  private resolveArchivists;
22
+ protected getFromParents(hash: string): Promise<{
23
+ schema: string;
24
+ previousHash?: string | undefined;
25
+ sources?: string[] | undefined;
26
+ timestamp?: number | undefined;
27
+ }>;
28
+ protected writeToParent(parent: Module, payloads: XyoPayload[]): Promise<({
29
+ schema: string;
30
+ previousHash?: string | undefined;
31
+ sources?: string[] | undefined;
32
+ timestamp?: number | undefined;
33
+ } | null)[]>;
34
+ protected writeToParents(payloads: XyoPayload[]): Promise<(({
35
+ schema: string;
36
+ previousHash?: string | undefined;
37
+ sources?: string[] | undefined;
38
+ timestamp?: number | undefined;
39
+ } | null)[] | undefined)[]>;
19
40
  private _parents?;
20
41
  get parents(): XyoArchivistParents;
21
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XyoArchivist.d.ts","sourceRoot":"","sources":["../../src/XyoArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,SAAS,EAAkC,oBAAoB,EAAgC,MAAM,qBAAqB,CAAA;AAC3I,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EAQL,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CACxE,SAAQ,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAC7C,YAAW,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,CAAC;IAE1F,IAAoB,OAAO,IAAI,uBAAuB,EAAE,CAEvD;IAEM,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC;IAIlC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC;IAIzB,MAAM,IAAI,eAAe,CAAC,UAAU,CAAC;IAIrC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;IAInD,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,eAAe,CAAC,UAAU,CAAC;IAIvE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAAC,UAAU,CAAC;IAEnE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC;IAE1D,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgCpE,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,QAAQ,CAAC,CAAqB;IACtC,IAAI,OAAO,wBAOV;CACF"}
1
+ {"version":3,"file":"XyoArchivist.d.ts","sourceRoot":"","sources":["../../src/XyoArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAkC,oBAAoB,EAAgC,MAAM,qBAAqB,CAAA;AAC3I,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG9F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EAUL,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CACxE,SAAQ,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAChE,YAAW,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,CAAC;IAE1E,OAAO,IAAI,uBAAuB,EAAE;IAUpD,IAAW,gBAAgB,YAE1B;IAED,IAAW,YAAY,YAEtB;IAEM,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC;IAIlC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC;IAIzB,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC;IAIrC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;IAInD,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,eAAe,CAAC,UAAU,CAAC;IAIvE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAAC,UAAU,CAAC;IAEnE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,eAAe,CAAC;IAE1D,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgCpE,OAAO,CAAC,iBAAiB;cAUT,cAAc,CAAC,IAAI,EAAE,MAAM;;;;;;cAiB3B,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE;;;;;;cAMpD,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;;;;;;IAQrD,OAAO,CAAC,QAAQ,CAAC,CAAqB;IACtC,IAAI,OAAO,wBAOV;CACF"}
@@ -4,10 +4,26 @@ exports.XyoArchivist = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const sdk_js_1 = require("@xylabs/sdk-js");
6
6
  const module_1 = require("@xyo-network/module");
7
+ const payload_1 = require("@xyo-network/payload");
8
+ const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
7
9
  const Queries_1 = require("./Queries");
8
10
  class XyoArchivist extends module_1.XyoModule {
9
- get queries() {
10
- return [module_1.XyoModuleInitializeQuerySchema, module_1.XyoModuleShutdownQuerySchema, Queries_1.XyoArchivistGetQuerySchema, Queries_1.XyoArchivistInsertQuerySchema];
11
+ queries() {
12
+ return [
13
+ module_1.XyoModuleInitializeQuerySchema,
14
+ module_1.XyoModuleShutdownQuerySchema,
15
+ Queries_1.XyoArchivistGetQuerySchema,
16
+ Queries_1.XyoArchivistInsertQuerySchema,
17
+ ...super.queries(),
18
+ ];
19
+ }
20
+ get cacheParentReads() {
21
+ var _a;
22
+ return !!((_a = this.config) === null || _a === void 0 ? void 0 : _a.cacheParentReads);
23
+ }
24
+ get writeThrough() {
25
+ var _a;
26
+ return !!((_a = this.config) === null || _a === void 0 ? void 0 : _a.writeThrough);
11
27
  }
12
28
  all() {
13
29
  throw Error('Not implemented');
@@ -26,7 +42,7 @@ class XyoArchivist extends module_1.XyoModule {
26
42
  }
27
43
  query(query) {
28
44
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
29
- if (!this.queries.find((schema) => schema === query.schema)) {
45
+ if (!this.queries().find((schema) => schema === query.schema)) {
30
46
  console.error(`Undeclared Module Query: ${query.schema}`);
31
47
  }
32
48
  const payloads = [];
@@ -38,7 +54,7 @@ class XyoArchivist extends module_1.XyoModule {
38
54
  yield this.clear();
39
55
  break;
40
56
  case Queries_1.XyoArchivistCommitQuerySchema:
41
- payloads.push(...(yield this.commit()));
57
+ payloads.push(yield this.commit());
42
58
  break;
43
59
  case Queries_1.XyoArchivistDeleteQuerySchema:
44
60
  yield this.delete(query.hashes);
@@ -50,7 +66,7 @@ class XyoArchivist extends module_1.XyoModule {
50
66
  payloads.push(...(yield this.get(query.hashes)));
51
67
  break;
52
68
  case Queries_1.XyoArchivistInsertQuerySchema:
53
- payloads.push(...(yield this.insert(query.payloads)));
69
+ payloads.push(yield this.insert(query.payloads), ...query.payloads);
54
70
  break;
55
71
  }
56
72
  return [this.bindPayloads(payloads), payloads];
@@ -66,6 +82,38 @@ class XyoArchivist extends module_1.XyoModule {
66
82
  }
67
83
  return resolved;
68
84
  }
85
+ getFromParents(hash) {
86
+ var _a, _b;
87
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
88
+ return (0, compact_1.default)(yield Promise.all(Object.values((_b = (_a = this.parents) === null || _a === void 0 ? void 0 : _a.read) !== null && _b !== void 0 ? _b : {}).map((parent) => tslib_1.__awaiter(this, void 0, void 0, function* () {
89
+ var _c;
90
+ const query = { hashes: [hash], schema: Queries_1.XyoArchivistGetQuerySchema };
91
+ const [, payloads] = (_c = (yield (parent === null || parent === void 0 ? void 0 : parent.query(query)))) !== null && _c !== void 0 ? _c : [];
92
+ const wrapper = (payloads === null || payloads === void 0 ? void 0 : payloads[0]) ? new payload_1.XyoPayloadWrapper(payloads === null || payloads === void 0 ? void 0 : payloads[0]) : undefined;
93
+ if (wrapper && wrapper.hash !== hash) {
94
+ console.warn(`Parent [${parent === null || parent === void 0 ? void 0 : parent.address}] returned payload with invalid hash [${hash} != ${wrapper.hash}]`);
95
+ return null;
96
+ }
97
+ return wrapper === null || wrapper === void 0 ? void 0 : wrapper.payload;
98
+ }))))[0];
99
+ });
100
+ }
101
+ writeToParent(parent, payloads) {
102
+ var _a;
103
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
104
+ const query = { payloads, schema: Queries_1.XyoArchivistInsertQuerySchema };
105
+ const [, writtenPayloads] = (_a = (yield (parent === null || parent === void 0 ? void 0 : parent.query(query)))) !== null && _a !== void 0 ? _a : [];
106
+ return writtenPayloads;
107
+ });
108
+ }
109
+ writeToParents(payloads) {
110
+ var _a, _b;
111
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
112
+ return yield Promise.all(Object.values((_b = (_a = this.parents) === null || _a === void 0 ? void 0 : _a.write) !== null && _b !== void 0 ? _b : {}).map((parent) => tslib_1.__awaiter(this, void 0, void 0, function* () {
113
+ return parent ? yield this.writeToParent(parent, payloads) : undefined;
114
+ })));
115
+ });
116
+ }
69
117
  get parents() {
70
118
  var _a, _b, _c, _d, _e, _f, _g;
71
119
  this._parents = (_a = this._parents) !== null && _a !== void 0 ? _a : {
@@ -1 +1 @@
1
- {"version":3,"file":"XyoArchivist.js","sourceRoot":"","sources":["../../src/XyoArchivist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XyoArchivist.js","sourceRoot":"","sources":["../../src/XyoArchivist.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness';
1
2
  import { XyoModuleWrapper } from '@xyo-network/module';
2
3
  import { XyoPayload } from '@xyo-network/payload';
3
4
  import { Archivist } from './Archivist';
@@ -6,9 +7,9 @@ export declare class XyoArchivistWrapper extends XyoModuleWrapper implements Arc
6
7
  delete(hashes: string[]): Promise<boolean[]>;
7
8
  clear(): Promise<void>;
8
9
  get(hashes: string[]): Promise<(XyoPayload | null)[]>;
9
- insert(payloads: XyoPayload[]): Promise<(XyoPayload | null)[]>;
10
+ insert(payloads: XyoPayload[]): Promise<XyoBoundWitness>;
10
11
  find(filter: XyoPayloadFindFilter): Promise<(XyoPayload | null)[]>;
11
12
  all(): Promise<(XyoPayload | null)[]>;
12
- commit(): Promise<(XyoPayload | null)[]>;
13
+ commit(): Promise<XyoBoundWitness>;
13
14
  }
14
15
  //# sourceMappingURL=XyoArchivistWrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoArchivistWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoArchivistWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAiBvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,qBAAa,mBAAoB,SAAQ,gBAAiB,YAAW,SAAS;IAC/D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;IAKvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAKrD,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAK9D,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAKlE,GAAG,IAAI,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAKrC,MAAM,IAAI,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;CAItD"}
1
+ {"version":3,"file":"XyoArchivistWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoArchivistWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAiBvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,qBAAa,mBAAoB,SAAQ,gBAAiB,YAAW,SAAS;IAC/D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;IAKvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAKrD,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAKxD,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAKlE,GAAG,IAAI,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAKrC,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;CAIhD"}
@@ -26,7 +26,7 @@ class XyoArchivistWrapper extends module_1.XyoModuleWrapper {
26
26
  insert(payloads) {
27
27
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
28
28
  const query = { payloads, schema: Queries_1.XyoArchivistInsertQuerySchema };
29
- return (yield this.module.query(query))[1];
29
+ return (yield this.module.query(query))[0];
30
30
  });
31
31
  }
32
32
  find(filter) {
@@ -44,7 +44,7 @@ class XyoArchivistWrapper extends module_1.XyoModuleWrapper {
44
44
  commit() {
45
45
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
46
46
  const query = { schema: Queries_1.XyoArchivistCommitQuerySchema };
47
- return (yield this.module.query(query))[1];
47
+ return (yield this.module.query(query))[0];
48
48
  });
49
49
  }
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XyoArchivistWrapper.js","sourceRoot":"","sources":["../../src/XyoArchivistWrapper.ts"],"names":[],"mappings":";;;;AAAA,gDAAsD;AAItD,uCAekB;AAGlB,MAAa,mBAAoB,SAAQ,yBAAgB;IAC1C,MAAM,CAAC,MAAgB;;YAClC,MAAM,KAAK,GAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,uCAA6B,EAAE,CAAA;YACxF,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QAC3E,CAAC;KAAA;IAEY,KAAK;;YAChB,MAAM,KAAK,GAA2B,EAAE,MAAM,EAAE,sCAA4B,EAAE,CAAA;YAC9E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAChC,CAAC;KAAA;IAEY,GAAG,CAAC,MAAgB;;YAC/B,MAAM,KAAK,GAAyB,EAAE,MAAM,EAAE,MAAM,EAAE,oCAA0B,EAAE,CAAA;YAClF,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;KAAA;IAEY,MAAM,CAAC,QAAsB;;YACxC,MAAM,KAAK,GAA4B,EAAE,QAAQ,EAAE,MAAM,EAAE,uCAA6B,EAAE,CAAA;YAC1F,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;KAAA;IAEY,IAAI,CAAC,MAA4B;;YAC5C,MAAM,KAAK,GAA0B,EAAE,MAAM,EAAE,MAAM,EAAE,qCAA2B,EAAE,CAAA;YACpF,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;KAAA;IAEY,GAAG;;YACd,MAAM,KAAK,GAAyB,EAAE,MAAM,EAAE,oCAA0B,EAAE,CAAA;YAC1E,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;KAAA;IAEY,MAAM;;YACjB,MAAM,KAAK,GAA4B,EAAE,MAAM,EAAE,uCAA6B,EAAE,CAAA;YAChF,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;KAAA;CACF;AAnCD,kDAmCC"}
1
+ {"version":3,"file":"XyoArchivistWrapper.js","sourceRoot":"","sources":["../../src/XyoArchivistWrapper.ts"],"names":[],"mappings":";;;;AACA,gDAAsD;AAItD,uCAekB;AAGlB,MAAa,mBAAoB,SAAQ,yBAAgB;IAC1C,MAAM,CAAC,MAAgB;;YAClC,MAAM,KAAK,GAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,uCAA6B,EAAE,CAAA;YACxF,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QAC3E,CAAC;KAAA;IAEY,KAAK;;YAChB,MAAM,KAAK,GAA2B,EAAE,MAAM,EAAE,sCAA4B,EAAE,CAAA;YAC9E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAChC,CAAC;KAAA;IAEY,GAAG,CAAC,MAAgB;;YAC/B,MAAM,KAAK,GAAyB,EAAE,MAAM,EAAE,MAAM,EAAE,oCAA0B,EAAE,CAAA;YAClF,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;KAAA;IAEY,MAAM,CAAC,QAAsB;;YACxC,MAAM,KAAK,GAA4B,EAAE,QAAQ,EAAE,MAAM,EAAE,uCAA6B,EAAE,CAAA;YAC1F,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;KAAA;IAEY,IAAI,CAAC,MAA4B;;YAC5C,MAAM,KAAK,GAA0B,EAAE,MAAM,EAAE,MAAM,EAAE,qCAA2B,EAAE,CAAA;YACpF,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;KAAA;IAEY,GAAG;;YACd,MAAM,KAAK,GAAyB,EAAE,MAAM,EAAE,oCAA0B,EAAE,CAAA;YAC1E,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;KAAA;IAEY,MAAM;;YACjB,MAAM,KAAK,GAA4B,EAAE,MAAM,EAAE,uCAA6B,EAAE,CAAA;YAChF,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;KAAA;CACF;AAnCD,kDAmCC"}
@@ -0,0 +1,33 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness';
2
+ import { XyoPayload } from '@xyo-network/payload';
3
+ import { PromisableArray } from '@xyo-network/promisable';
4
+ import { XyoArchivistConfig } from './Config';
5
+ import { PartialArchivistConfig } from './PartialArchivistConfig';
6
+ import { XyoArchivist } from './XyoArchivist';
7
+ import { XyoPayloadFindFilter } from './XyoPayloadFindFilter';
8
+ export declare type XyoCookieArchivistConfigSchema = 'network.xyo.module.config.archivist.cookie';
9
+ export declare const XyoCookieArchivistConfigSchema: XyoCookieArchivistConfigSchema;
10
+ export declare type XyoCookieArchivistConfig = XyoArchivistConfig<{
11
+ schema: XyoCookieArchivistConfigSchema;
12
+ domain?: string;
13
+ maxEntries?: number;
14
+ maxEntrySize?: number;
15
+ namespace?: string;
16
+ }>;
17
+ export declare class XyoCookieArchivist extends XyoArchivist<XyoCookieArchivistConfig> {
18
+ get domain(): string | undefined;
19
+ get namespace(): string;
20
+ get maxEntries(): number;
21
+ get maxEntrySize(): number;
22
+ queries(): import("./Queries").XyoArchivistQuerySchema<never>[];
23
+ constructor(config?: PartialArchivistConfig<XyoCookieArchivistConfig>);
24
+ private keyFromHash;
25
+ delete(hashes: string[]): PromisableArray<boolean>;
26
+ clear(): void | Promise<void>;
27
+ get(hashes: string[]): Promise<(XyoPayload | null)[]>;
28
+ insert(payloads: XyoPayload[]): Promise<XyoBoundWitness>;
29
+ find(filter: XyoPayloadFindFilter): Promise<XyoPayload[]>;
30
+ all(): PromisableArray<XyoPayload>;
31
+ commit(): Promise<XyoBoundWitness>;
32
+ }
33
+ //# sourceMappingURL=XyoCookieArchivist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoCookieArchivist.d.ts","sourceRoot":"","sources":["../../src/XyoCookieArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAIzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAUjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,oBAAY,8BAA8B,GAAG,4CAA4C,CAAA;AACzF,eAAO,MAAM,8BAA8B,EAAE,8BAA6E,CAAA;AAE1H,oBAAY,wBAAwB,GAAG,kBAAkB,CAAC;IACxD,MAAM,EAAE,8BAA8B,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAC,CAAA;AAQF,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,wBAAwB,CAAC;IAC5E,IAAW,MAAM,uBAEhB;IAED,IAAW,SAAS,WAEnB;IAED,IAAW,UAAU,WAGpB;IAED,IAAW,YAAY,WAGtB;IAEe,OAAO;gBAWX,MAAM,CAAC,EAAE,sBAAsB,CAAC,wBAAwB,CAAC;IAIrE,OAAO,CAAC,WAAW;IAIZ,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;IAWzC,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAarD,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAoBxD,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAc/D,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC;IAU5B,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;CAmBhD"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XyoCookieArchivist = exports.XyoCookieArchivistConfigSchema = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const sdk_js_1 = require("@xylabs/sdk-js");
6
+ const payload_1 = require("@xyo-network/payload");
7
+ const js_cookie_1 = tslib_1.__importDefault(require("js-cookie"));
8
+ const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
9
+ const Queries_1 = require("./Queries");
10
+ const XyoArchivist_1 = require("./XyoArchivist");
11
+ exports.XyoCookieArchivistConfigSchema = 'network.xyo.module.config.archivist.cookie';
12
+ class CookieArchivistError extends Error {
13
+ constructor(action, error, message) {
14
+ super(`Cookie Archivist [${action}] failed${message ? ` (${message})` : ''}`, { cause: error });
15
+ }
16
+ }
17
+ class XyoCookieArchivist extends XyoArchivist_1.XyoArchivist {
18
+ get domain() {
19
+ var _a;
20
+ return (_a = this.config) === null || _a === void 0 ? void 0 : _a.domain;
21
+ }
22
+ get namespace() {
23
+ var _a, _b;
24
+ return (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.namespace) !== null && _b !== void 0 ? _b : 'xyoarch';
25
+ }
26
+ get maxEntries() {
27
+ var _a, _b;
28
+ //all browsers support at least 60 cookies
29
+ return (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.maxEntries) !== null && _b !== void 0 ? _b : 60;
30
+ }
31
+ get maxEntrySize() {
32
+ var _a, _b;
33
+ //all browsers support at least 4000 length per cookie
34
+ return (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.maxEntrySize) !== null && _b !== void 0 ? _b : 4000;
35
+ }
36
+ queries() {
37
+ return [
38
+ Queries_1.XyoArchivistAllQuerySchema,
39
+ Queries_1.XyoArchivistDeleteQuerySchema,
40
+ Queries_1.XyoArchivistClearQuerySchema,
41
+ Queries_1.XyoArchivistFindQuerySchema,
42
+ Queries_1.XyoArchivistCommitQuerySchema,
43
+ ...super.queries(),
44
+ ];
45
+ }
46
+ constructor(config) {
47
+ super(Object.assign(Object.assign({}, config), { schema: exports.XyoCookieArchivistConfigSchema }));
48
+ }
49
+ keyFromHash(hash) {
50
+ return `${this.namespace}-${hash}`;
51
+ }
52
+ delete(hashes) {
53
+ try {
54
+ return hashes.map((hash) => {
55
+ js_cookie_1.default.remove(this.keyFromHash(hash));
56
+ return true;
57
+ });
58
+ }
59
+ catch (ex) {
60
+ throw new CookieArchivistError('delete', ex, 'unexpected');
61
+ }
62
+ }
63
+ clear() {
64
+ try {
65
+ Object.entries(js_cookie_1.default.get()).map(([key]) => {
66
+ if (key.startsWith(`${this.namespace}-`)) {
67
+ js_cookie_1.default.remove(key);
68
+ }
69
+ });
70
+ }
71
+ catch (ex) {
72
+ throw new CookieArchivistError('clear', ex, 'unexpected');
73
+ }
74
+ }
75
+ get(hashes) {
76
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
77
+ try {
78
+ return yield Promise.all(hashes.map((hash) => tslib_1.__awaiter(this, void 0, void 0, function* () {
79
+ var _a;
80
+ const cookieString = js_cookie_1.default.get(this.keyFromHash(hash));
81
+ return cookieString ? JSON.parse(cookieString) : (_a = (yield this.getFromParents(hash))) !== null && _a !== void 0 ? _a : null;
82
+ })));
83
+ }
84
+ catch (ex) {
85
+ throw new CookieArchivistError('get', ex, 'unexpected');
86
+ }
87
+ });
88
+ }
89
+ insert(payloads) {
90
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
91
+ try {
92
+ const storedPayloads = payloads.map((payload) => {
93
+ const wrapper = new payload_1.XyoPayloadWrapper(payload);
94
+ const key = this.keyFromHash(wrapper.hash);
95
+ const value = JSON.stringify(wrapper.payload);
96
+ (0, sdk_js_1.assertEx)(value.length < this.maxEntrySize, `Payload too large [${wrapper.hash}, ${value.length}]`);
97
+ js_cookie_1.default.set(key, JSON.stringify(wrapper.payload));
98
+ return wrapper.payload;
99
+ });
100
+ const boundwitness = this.bindPayloads(storedPayloads);
101
+ if (this.writeThrough) {
102
+ yield this.writeToParents([boundwitness, ...storedPayloads]);
103
+ }
104
+ return boundwitness;
105
+ }
106
+ catch (ex) {
107
+ throw new CookieArchivistError('insert', ex, 'unexpected');
108
+ }
109
+ });
110
+ }
111
+ find(filter) {
112
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
113
+ try {
114
+ const x = (yield this.all()).filter((payload) => {
115
+ if (filter.schema && filter.schema !== payload.schema) {
116
+ return false;
117
+ }
118
+ return true;
119
+ });
120
+ return x;
121
+ }
122
+ catch (ex) {
123
+ throw new CookieArchivistError('find', ex, 'unexpected');
124
+ }
125
+ });
126
+ }
127
+ all() {
128
+ try {
129
+ return Object.entries(js_cookie_1.default.get())
130
+ .filter(([key]) => key.startsWith(`${this.namespace}-`))
131
+ .map(([, value]) => JSON.parse(value));
132
+ }
133
+ catch (ex) {
134
+ throw new CookieArchivistError('all', ex, 'unexpected');
135
+ }
136
+ }
137
+ commit() {
138
+ var _a, _b, _c;
139
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
140
+ try {
141
+ const payloads = yield this.all();
142
+ (0, sdk_js_1.assertEx)(payloads.length > 0, 'Nothing to commit');
143
+ const block = this.bindPayloads(payloads);
144
+ yield Promise.allSettled((0, compact_1.default)((_c = Object.values((_b = (_a = this.parents) === null || _a === void 0 ? void 0 : _a.commit) !== null && _b !== void 0 ? _b : [])) === null || _c === void 0 ? void 0 : _c.map((parent) => tslib_1.__awaiter(this, void 0, void 0, function* () {
145
+ const query = { payloads: [block, ...payloads], schema: Queries_1.XyoArchivistInsertQuerySchema };
146
+ return yield (parent === null || parent === void 0 ? void 0 : parent.query(query));
147
+ }))));
148
+ yield this.clear();
149
+ return block;
150
+ }
151
+ catch (ex) {
152
+ throw new CookieArchivistError('commit', ex, 'unexpected');
153
+ }
154
+ });
155
+ }
156
+ }
157
+ exports.XyoCookieArchivist = XyoCookieArchivist;
158
+ //# sourceMappingURL=XyoCookieArchivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoCookieArchivist.js","sourceRoot":"","sources":["../../src/XyoCookieArchivist.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AAEzC,kDAAoE;AAEpE,kEAA+B;AAC/B,qEAAoC;AAIpC,uCAQkB;AAClB,iDAA6C;AAIhC,QAAA,8BAA8B,GAAmC,4CAA4C,CAAA;AAU1H,MAAM,oBAAqB,SAAQ,KAAK;IACtC,YAAY,MAAc,EAAE,KAAqB,EAAE,OAAgB;QACjE,KAAK,CAAC,qBAAqB,MAAM,WAAW,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IACjG,CAAC;CACF;AAED,MAAa,kBAAmB,SAAQ,2BAAsC;IAC5E,IAAW,MAAM;;QACf,OAAO,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAA;IAC5B,CAAC;IAED,IAAW,SAAS;;QAClB,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,mCAAI,SAAS,CAAA;IAC5C,CAAC;IAED,IAAW,UAAU;;QACnB,0CAA0C;QAC1C,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,mCAAI,EAAE,CAAA;IACtC,CAAC;IAED,IAAW,YAAY;;QACrB,sDAAsD;QACtD,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,YAAY,mCAAI,IAAI,CAAA;IAC1C,CAAC;IAEe,OAAO;QACrB,OAAO;YACL,oCAA0B;YAC1B,uCAA6B;YAC7B,sCAA4B;YAC5B,qCAA2B;YAC3B,uCAA6B;YAC7B,GAAG,KAAK,CAAC,OAAO,EAAE;SACnB,CAAA;IACH,CAAC;IAED,YAAY,MAAyD;QACnE,KAAK,iCAAM,MAAM,KAAE,MAAM,EAAE,sCAA8B,IAAG,CAAA;IAC9D,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAA;IACpC,CAAC;IAEM,MAAM,CAAC,MAAgB;QAC5B,IAAI;YACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,mBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;gBACtC,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;SACH;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,IAAI,oBAAoB,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;SAC3D;IACH,CAAC;IAEe,KAAK;QACnB,IAAI;YACF,MAAM,CAAC,OAAO,CAAC,mBAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;gBAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;oBACxC,mBAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;iBACpB;YACH,CAAC,CAAC,CAAA;SACH;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,IAAI,oBAAoB,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;SAC1D;IACH,CAAC;IAEY,GAAG,CAAC,MAAgB;;YAC/B,IAAI;gBACF,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,MAAM,CAAC,GAAG,CAAC,CAAO,IAAI,EAAE,EAAE;;oBACxB,MAAM,YAAY,GAAG,mBAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;oBACxD,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAA,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,mCAAI,IAAI,CAAA;gBAC5F,CAAC,CAAA,CAAC,CACH,CAAA;aACF;YAAC,OAAO,EAAE,EAAE;gBACX,MAAM,IAAI,oBAAoB,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;aACxD;QACH,CAAC;KAAA;IAEY,MAAM,CAAC,QAAsB;;YACxC,IAAI;gBACF,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC9C,MAAM,OAAO,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAA;oBAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;oBAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;oBAC7C,IAAA,iBAAQ,EAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,sBAAsB,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;oBAClG,mBAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;oBACjD,OAAO,OAAO,CAAC,OAAO,CAAA;gBACxB,CAAC,CAAC,CAAA;gBACF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;gBACtD,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,YAAY,EAAE,GAAG,cAAc,CAAC,CAAC,CAAA;iBAC7D;gBACD,OAAO,YAAY,CAAA;aACpB;YAAC,OAAO,EAAE,EAAE;gBACX,MAAM,IAAI,oBAAoB,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;aAC3D;QACH,CAAC;KAAA;IAEY,IAAI,CAAC,MAA4B;;YAC5C,IAAI;gBACF,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC9C,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE;wBACrD,OAAO,KAAK,CAAA;qBACb;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC,CAAC,CAAA;gBACF,OAAO,CAAC,CAAA;aACT;YAAC,OAAO,EAAE,EAAE;gBACX,MAAM,IAAI,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;aACzD;QACH,CAAC;KAAA;IAEM,GAAG;QACR,IAAI;YACF,OAAO,MAAM,CAAC,OAAO,CAAC,mBAAO,CAAC,GAAG,EAAE,CAAC;iBACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;iBACvD,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;SACzC;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,IAAI,oBAAoB,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;SACxD;IACH,CAAC;IAEY,MAAM;;;YACjB,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;gBACjC,IAAA,iBAAQ,EAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAA;gBAClD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;gBACzC,MAAM,OAAO,CAAC,UAAU,CACtB,IAAA,iBAAO,EACL,MAAA,MAAM,CAAC,MAAM,CAAC,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,mCAAI,EAAE,CAAC,0CAAE,GAAG,CAAC,CAAO,MAAM,EAAE,EAAE;oBAC9D,MAAM,KAAK,GAA4B,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,uCAA6B,EAAE,CAAA;oBAChH,OAAO,MAAM,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,KAAK,CAAC,CAAA,CAAA;gBACnC,CAAC,CAAA,CAAC,CACH,CACF,CAAA;gBACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;gBAClB,OAAO,KAAK,CAAA;aACb;YAAC,OAAO,EAAE,EAAE;gBACX,MAAM,IAAI,oBAAoB,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;aAC3D;;KACF;CACF;AAzID,gDAyIC"}
@@ -1,3 +1,4 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness';
1
2
  import { XyoPayload } from '@xyo-network/payload';
2
3
  import { PromisableArray } from '@xyo-network/promisable';
3
4
  import { XyoArchivistConfig } from './Config';
@@ -13,20 +14,14 @@ export declare type XyoMemoryArchivistConfig = XyoArchivistConfig<{
13
14
  export declare class XyoMemoryArchivist extends XyoArchivist<XyoMemoryArchivistConfig> {
14
15
  get max(): number;
15
16
  private cache;
16
- get queries(): import("./Queries").XyoArchivistQuerySchema<never>[];
17
+ queries(): import("./Queries").XyoArchivistQuerySchema<never>[];
17
18
  constructor(config?: PartialArchivistConfig<XyoMemoryArchivistConfig>);
18
19
  delete(hashes: string[]): PromisableArray<boolean>;
19
20
  clear(): void | Promise<void>;
20
- protected getFromParents(hash: string): Promise<{
21
- schema: string;
22
- previousHash?: string | undefined;
23
- sources?: string[] | undefined;
24
- timestamp?: number | undefined;
25
- }>;
26
21
  get(hashes: string[]): Promise<(XyoPayload | null)[]>;
27
- insert(payloads: XyoPayload[]): PromisableArray<XyoPayload>;
22
+ insert(payloads: XyoPayload[]): Promise<XyoBoundWitness>;
28
23
  find<R extends XyoPayload = XyoPayload>(filter: XyoPayloadFindFilter): PromisableArray<R>;
29
- all(): Promise<XyoPayload[]> | XyoPayload[];
30
- commit(): Promise<XyoPayload[]>;
24
+ all(): PromisableArray<XyoPayload>;
25
+ commit(): Promise<XyoBoundWitness>;
31
26
  }
32
27
  //# sourceMappingURL=XyoMemoryArchivist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoMemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAIzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAYjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,oBAAY,8BAA8B,GAAG,4CAA4C,CAAA;AACzF,eAAO,MAAM,8BAA8B,EAAE,8BAA6E,CAAA;AAE1H,oBAAY,wBAAwB,GAAG,kBAAkB,CAAC;IACxD,MAAM,EAAE,8BAA8B,CAAA;IACtC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAC,CAAA;AAQF,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,wBAAwB,CAAC;IAC5E,IAAW,GAAG,WAEb;IAED,OAAO,CAAC,KAAK,CAA8B;IAE3C,IAAoB,OAAO,yDAS1B;gBAEW,MAAM,CAAC,EAAE,sBAAsB,CAAC,wBAAwB,CAAC;IAK9D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;IAUzC,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAQ7B,cAAc,CAAC,IAAI,EAAE,MAAM;;;;;;IAc9B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAY3D,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC;IAa3D,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,oBAAoB,GAAG,eAAe,CAAC,CAAC,CAAC;IAczF,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE;IAQrC,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAoB7C"}
1
+ {"version":3,"file":"XyoMemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAIzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAUjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,oBAAY,8BAA8B,GAAG,4CAA4C,CAAA;AACzF,eAAO,MAAM,8BAA8B,EAAE,8BAA6E,CAAA;AAE1H,oBAAY,wBAAwB,GAAG,kBAAkB,CAAC;IACxD,MAAM,EAAE,8BAA8B,CAAA;IACtC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAC,CAAA;AAQF,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,wBAAwB,CAAC;IAC5E,IAAW,GAAG,WAEb;IAED,OAAO,CAAC,KAAK,CAA8B;IAE3B,OAAO;gBAWX,MAAM,CAAC,EAAE,sBAAsB,CAAC,wBAAwB,CAAC;IAK9D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;IAUzC,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAgBrD,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAkB9D,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,oBAAoB,GAAG,eAAe,CAAC,CAAC,CAAC;IAczF,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC;IAQ5B,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;CAkBhD"}
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.XyoMemoryArchivist = exports.XyoMemoryArchivistConfigSchema = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const sdk_js_1 = require("@xylabs/sdk-js");
6
- const boundwitness_1 = require("@xyo-network/boundwitness");
7
6
  const payload_1 = require("@xyo-network/payload");
8
7
  const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
9
8
  const lru_cache_1 = tslib_1.__importDefault(require("lru-cache"));
@@ -24,14 +23,14 @@ class XyoMemoryArchivist extends XyoArchivist_1.XyoArchivist {
24
23
  var _a, _b;
25
24
  return (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.max) !== null && _b !== void 0 ? _b : 10000;
26
25
  }
27
- get queries() {
26
+ queries() {
28
27
  return [
29
- ...super.queries,
30
28
  Queries_1.XyoArchivistAllQuerySchema,
31
29
  Queries_1.XyoArchivistDeleteQuerySchema,
32
30
  Queries_1.XyoArchivistClearQuerySchema,
33
31
  Queries_1.XyoArchivistFindQuerySchema,
34
32
  Queries_1.XyoArchivistCommitQuerySchema,
33
+ ...super.queries(),
35
34
  ];
36
35
  }
37
36
  delete(hashes) {
@@ -52,23 +51,16 @@ class XyoMemoryArchivist extends XyoArchivist_1.XyoArchivist {
52
51
  throw new MemoryArchivistError('clear', ex, 'unexpected');
53
52
  }
54
53
  }
55
- getFromParents(hash) {
56
- var _a, _b;
57
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
58
- return (0, compact_1.default)(yield Promise.all((0, compact_1.default)(Object.values((_b = (_a = this.parents) === null || _a === void 0 ? void 0 : _a.read) !== null && _b !== void 0 ? _b : {}).map((parent) => tslib_1.__awaiter(this, void 0, void 0, function* () {
59
- var _c;
60
- const query = { hashes: [hash], schema: Queries_1.XyoArchivistGetQuerySchema };
61
- const [, payloads] = (_c = (yield (parent === null || parent === void 0 ? void 0 : parent.query(query)))) !== null && _c !== void 0 ? _c : [];
62
- return payloads === null || payloads === void 0 ? void 0 : payloads[0];
63
- })))))[0];
64
- });
65
- }
66
54
  get(hashes) {
67
55
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
68
56
  try {
69
57
  return yield Promise.all(hashes.map((hash) => tslib_1.__awaiter(this, void 0, void 0, function* () {
70
58
  var _a, _b;
71
- return (_b = (_a = this.cache.get(hash)) !== null && _a !== void 0 ? _a : (yield this.getFromParents(hash))) !== null && _b !== void 0 ? _b : null;
59
+ const payload = (_b = (_a = this.cache.get(hash)) !== null && _a !== void 0 ? _a : (yield this.getFromParents(hash))) !== null && _b !== void 0 ? _b : null;
60
+ if (this.cacheParentReads) {
61
+ this.cache.set(hash, payload);
62
+ }
63
+ return payload;
72
64
  })));
73
65
  }
74
66
  catch (ex) {
@@ -77,17 +69,24 @@ class XyoMemoryArchivist extends XyoArchivist_1.XyoArchivist {
77
69
  });
78
70
  }
79
71
  insert(payloads) {
80
- try {
81
- return payloads.map((payload) => {
82
- const wrapper = new payload_1.XyoPayloadWrapper(payload);
83
- const payloadWithmeta = Object.assign(Object.assign({}, payload), { _hash: wrapper.hash, _timestamp: Date.now() });
84
- this.cache.set(payloadWithmeta._hash, payloadWithmeta);
85
- return payloadWithmeta;
86
- });
87
- }
88
- catch (ex) {
89
- throw new MemoryArchivistError('insert', ex, 'unexpected');
90
- }
72
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
73
+ try {
74
+ payloads.map((payload) => {
75
+ const wrapper = new payload_1.XyoPayloadWrapper(payload);
76
+ const payloadWithmeta = Object.assign(Object.assign({}, payload), { _hash: wrapper.hash, _timestamp: Date.now() });
77
+ this.cache.set(payloadWithmeta._hash, payloadWithmeta);
78
+ return payloadWithmeta;
79
+ });
80
+ const boundwitness = this.bindPayloads(payloads);
81
+ if (this.writeThrough) {
82
+ yield this.writeToParents(payloads);
83
+ }
84
+ return boundwitness;
85
+ }
86
+ catch (ex) {
87
+ throw new MemoryArchivistError('insert', ex, 'unexpected');
88
+ }
89
+ });
91
90
  }
92
91
  find(filter) {
93
92
  try {
@@ -115,16 +114,14 @@ class XyoMemoryArchivist extends XyoArchivist_1.XyoArchivist {
115
114
  var _a, _b, _c;
116
115
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
117
116
  try {
118
- const account = (0, sdk_js_1.assertEx)(this.account, 'Account is required for commit');
119
117
  const payloads = (0, sdk_js_1.assertEx)(yield this.all(), 'Nothing to commit');
120
- const builder = new boundwitness_1.XyoBoundWitnessBuilder();
121
- const block = builder.payloads(payloads).witness(account).build();
118
+ const block = this.bindPayloads(payloads);
122
119
  yield Promise.allSettled((0, compact_1.default)((_c = Object.values((_b = (_a = this.parents) === null || _a === void 0 ? void 0 : _a.commit) !== null && _b !== void 0 ? _b : [])) === null || _c === void 0 ? void 0 : _c.map((parent) => tslib_1.__awaiter(this, void 0, void 0, function* () {
123
120
  const query = { payloads: [block, ...payloads], schema: Queries_1.XyoArchivistInsertQuerySchema };
124
121
  return yield (parent === null || parent === void 0 ? void 0 : parent.query(query));
125
122
  }))));
126
123
  yield this.clear();
127
- return payloads;
124
+ return block;
128
125
  }
129
126
  catch (ex) {
130
127
  throw new MemoryArchivistError('commit', ex, 'unexpected');