@xyo-network/archivist 2.26.11 → 2.26.14

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 (122) hide show
  1. package/dist/cjs/Abstract.d.ts +15 -18
  2. package/dist/cjs/Abstract.d.ts.map +1 -1
  3. package/dist/cjs/Abstract.js +46 -0
  4. package/dist/cjs/Abstract.js.map +1 -1
  5. package/dist/cjs/Archivist.d.ts +2 -2
  6. package/dist/cjs/Archivist.d.ts.map +1 -1
  7. package/dist/cjs/Query/All.d.ts +5 -5
  8. package/dist/cjs/Query/All.d.ts.map +1 -1
  9. package/dist/cjs/Query/All.js +2 -2
  10. package/dist/cjs/Query/All.js.map +1 -1
  11. package/dist/cjs/Query/Clear.d.ts +7 -0
  12. package/dist/cjs/Query/Clear.d.ts.map +1 -0
  13. package/dist/cjs/Query/Clear.js +5 -0
  14. package/dist/cjs/Query/Clear.js.map +1 -0
  15. package/dist/cjs/Query/Commit.d.ts +7 -0
  16. package/dist/cjs/Query/Commit.d.ts.map +1 -0
  17. package/dist/cjs/Query/Commit.js +5 -0
  18. package/dist/cjs/Query/Commit.js.map +1 -0
  19. package/dist/cjs/Query/Delete.d.ts +8 -0
  20. package/dist/cjs/Query/Delete.d.ts.map +1 -0
  21. package/dist/cjs/Query/Delete.js +5 -0
  22. package/dist/cjs/Query/Delete.js.map +1 -0
  23. package/dist/cjs/Query/Find.d.ts +9 -0
  24. package/dist/cjs/Query/Find.d.ts.map +1 -0
  25. package/dist/cjs/Query/Find.js +5 -0
  26. package/dist/cjs/Query/Find.js.map +1 -0
  27. package/dist/cjs/Query/Get.d.ts +5 -5
  28. package/dist/cjs/Query/Get.d.ts.map +1 -1
  29. package/dist/cjs/Query/Get.js +2 -2
  30. package/dist/cjs/Query/Get.js.map +1 -1
  31. package/dist/cjs/Query/Insert.d.ts +8 -0
  32. package/dist/cjs/Query/Insert.d.ts.map +1 -0
  33. package/dist/cjs/Query/Insert.js +5 -0
  34. package/dist/cjs/Query/Insert.js.map +1 -0
  35. package/dist/cjs/Query/index.d.ts +15 -0
  36. package/dist/cjs/Query/index.d.ts.map +1 -1
  37. package/dist/cjs/Query/index.js +6 -0
  38. package/dist/cjs/Query/index.js.map +1 -1
  39. package/dist/cjs/XyoArchivist.d.ts +3 -15
  40. package/dist/cjs/XyoArchivist.d.ts.map +1 -1
  41. package/dist/cjs/XyoArchivist.js +0 -3
  42. package/dist/cjs/XyoArchivist.js.map +1 -1
  43. package/dist/cjs/XyoArchivistConfig.d.ts +3 -3
  44. package/dist/cjs/XyoArchivistConfig.d.ts.map +1 -1
  45. package/dist/cjs/XyoArchivistConfig.js.map +1 -1
  46. package/dist/cjs/XyoMemoryArchivist.d.ts +6 -8
  47. package/dist/cjs/XyoMemoryArchivist.d.ts.map +1 -1
  48. package/dist/cjs/XyoMemoryArchivist.js +17 -7
  49. package/dist/cjs/XyoMemoryArchivist.js.map +1 -1
  50. package/dist/cjs/index.d.ts +1 -0
  51. package/dist/cjs/index.d.ts.map +1 -1
  52. package/dist/cjs/index.js +1 -0
  53. package/dist/cjs/index.js.map +1 -1
  54. package/dist/docs.json +3328 -3066
  55. package/dist/esm/Abstract.d.ts +15 -18
  56. package/dist/esm/Abstract.d.ts.map +1 -1
  57. package/dist/esm/Abstract.js +43 -0
  58. package/dist/esm/Abstract.js.map +1 -1
  59. package/dist/esm/Archivist.d.ts +2 -2
  60. package/dist/esm/Archivist.d.ts.map +1 -1
  61. package/dist/esm/Query/All.d.ts +5 -5
  62. package/dist/esm/Query/All.d.ts.map +1 -1
  63. package/dist/esm/Query/All.js +1 -1
  64. package/dist/esm/Query/All.js.map +1 -1
  65. package/dist/esm/Query/Clear.d.ts +7 -0
  66. package/dist/esm/Query/Clear.d.ts.map +1 -0
  67. package/dist/esm/Query/Clear.js +2 -0
  68. package/dist/esm/Query/Clear.js.map +1 -0
  69. package/dist/esm/Query/Commit.d.ts +7 -0
  70. package/dist/esm/Query/Commit.d.ts.map +1 -0
  71. package/dist/esm/Query/Commit.js +2 -0
  72. package/dist/esm/Query/Commit.js.map +1 -0
  73. package/dist/esm/Query/Delete.d.ts +8 -0
  74. package/dist/esm/Query/Delete.d.ts.map +1 -0
  75. package/dist/esm/Query/Delete.js +2 -0
  76. package/dist/esm/Query/Delete.js.map +1 -0
  77. package/dist/esm/Query/Find.d.ts +9 -0
  78. package/dist/esm/Query/Find.d.ts.map +1 -0
  79. package/dist/esm/Query/Find.js +2 -0
  80. package/dist/esm/Query/Find.js.map +1 -0
  81. package/dist/esm/Query/Get.d.ts +5 -5
  82. package/dist/esm/Query/Get.d.ts.map +1 -1
  83. package/dist/esm/Query/Get.js +1 -1
  84. package/dist/esm/Query/Get.js.map +1 -1
  85. package/dist/esm/Query/Insert.d.ts +8 -0
  86. package/dist/esm/Query/Insert.d.ts.map +1 -0
  87. package/dist/esm/Query/Insert.js +2 -0
  88. package/dist/esm/Query/Insert.js.map +1 -0
  89. package/dist/esm/Query/index.d.ts +15 -0
  90. package/dist/esm/Query/index.d.ts.map +1 -1
  91. package/dist/esm/Query/index.js +6 -0
  92. package/dist/esm/Query/index.js.map +1 -1
  93. package/dist/esm/XyoArchivist.d.ts +3 -15
  94. package/dist/esm/XyoArchivist.d.ts.map +1 -1
  95. package/dist/esm/XyoArchivist.js +1 -2
  96. package/dist/esm/XyoArchivist.js.map +1 -1
  97. package/dist/esm/XyoArchivistConfig.d.ts +3 -3
  98. package/dist/esm/XyoArchivistConfig.d.ts.map +1 -1
  99. package/dist/esm/XyoArchivistConfig.js.map +1 -1
  100. package/dist/esm/XyoMemoryArchivist.d.ts +6 -8
  101. package/dist/esm/XyoMemoryArchivist.d.ts.map +1 -1
  102. package/dist/esm/XyoMemoryArchivist.js +15 -5
  103. package/dist/esm/XyoMemoryArchivist.js.map +1 -1
  104. package/dist/esm/index.d.ts +1 -0
  105. package/dist/esm/index.d.ts.map +1 -1
  106. package/dist/esm/index.js +1 -0
  107. package/dist/esm/index.js.map +1 -1
  108. package/package.json +6 -7
  109. package/src/Abstract.ts +55 -12
  110. package/src/Archivist.ts +2 -2
  111. package/src/Query/All.ts +5 -5
  112. package/src/Query/Clear.ts +8 -0
  113. package/src/Query/Commit.ts +8 -0
  114. package/src/Query/Delete.ts +9 -0
  115. package/src/Query/Find.ts +11 -0
  116. package/src/Query/Get.ts +5 -5
  117. package/src/Query/Insert.ts +9 -0
  118. package/src/Query/index.ts +32 -0
  119. package/src/XyoArchivist.ts +3 -21
  120. package/src/XyoArchivistConfig.ts +4 -7
  121. package/src/XyoMemoryArchivist.ts +32 -10
  122. package/src/index.ts +1 -0
package/src/Abstract.ts CHANGED
@@ -1,28 +1,71 @@
1
1
  import { assertEx } from '@xylabs/sdk-js'
2
- import { XyoBoundWitness } from '@xyo-network/boundwitness'
3
- import { XyoAbstractModule } from '@xyo-network/module'
2
+ import { XyoAbstractModule, XyoModuleQueryResult } from '@xyo-network/module'
4
3
  import { XyoPayload } from '@xyo-network/payload'
5
4
  import { NullablePromisableArray, Promisable, PromisableArray } from '@xyo-network/promisable'
6
5
 
7
6
  import { Archivist } from './Archivist'
8
- import { XyoArchivist, XyoArchivistQueryPayload } from './XyoArchivist'
7
+ import { XyoArchivistFindQueryPayloadSchema, XyoArchivistGetQueryPayloadSchema, XyoArchivistQueryPayload } from './Query'
8
+ import { XyoArchivist } from './XyoArchivist'
9
9
  import { XyoArchivistConfig, XyoArchivistParents } from './XyoArchivistConfig'
10
10
  import { XyoPayloadFindFilter } from './XyoPayloadFindFilter'
11
11
 
12
- export abstract class XyoAbstractArchivist<
13
- Q extends XyoArchivistQueryPayload = XyoArchivistQueryPayload,
14
- C extends XyoArchivistConfig = XyoArchivistConfig,
15
- >
16
- extends XyoAbstractModule<Q, C>
12
+ export abstract class XyoAbstractArchivist<TConfig extends XyoPayload = XyoPayload>
13
+ extends XyoAbstractModule<XyoArchivistQueryPayload, XyoArchivistConfig<TConfig>>
17
14
  implements XyoArchivist<XyoArchivistQueryPayload>, Archivist<XyoPayload, XyoPayload, XyoPayload, XyoPayload, XyoPayloadFindFilter>
18
15
  {
19
- abstract get(ids: string[]): NullablePromisableArray<XyoPayload<{ schema: string }>>
16
+ public override get queries() {
17
+ return [XyoArchivistGetQueryPayloadSchema, XyoArchivistFindQueryPayloadSchema]
18
+ }
19
+
20
+ abstract get(hashes: string[]): NullablePromisableArray<XyoPayload>
21
+
22
+ public all(): PromisableArray<XyoPayload> {
23
+ throw Error('Not implemented')
24
+ }
25
+
26
+ public clear(): Promisable<void> {
27
+ throw Error('Not implemented')
28
+ }
20
29
 
21
- abstract find(filter: XyoPayloadFindFilter): PromisableArray<XyoPayload<{ schema: string }>>
30
+ public commit(): PromisableArray<XyoPayload> {
31
+ throw Error('Not implemented')
32
+ }
33
+
34
+ public delete(_hashes: string[]): PromisableArray<boolean> {
35
+ throw Error('Not implemented')
36
+ }
22
37
 
23
- abstract insert(item: XyoPayload<{ schema: string }>[]): PromisableArray<XyoPayload<{ schema: string }>>
38
+ abstract find(filter: XyoPayloadFindFilter): PromisableArray<XyoPayload>
24
39
 
25
- abstract override query<Q>(query: Q): Promisable<[XyoBoundWitness, XyoPayload[]]>
40
+ abstract insert(item: XyoPayload[]): PromisableArray<XyoPayload>
41
+
42
+ async query(query: XyoArchivistQueryPayload): Promise<XyoModuleQueryResult> {
43
+ const payloads: (XyoPayload | null)[] = []
44
+ switch (query.schema) {
45
+ case 'network.xyo.query.archivist.all':
46
+ payloads.concat(await this.all())
47
+ break
48
+ case 'network.xyo.query.archivist.clear':
49
+ await this.clear()
50
+ break
51
+ case 'network.xyo.query.archivist.commit':
52
+ payloads.concat(await this.commit())
53
+ break
54
+ case 'network.xyo.query.archivist.delete':
55
+ await this.delete(query.hashes)
56
+ break
57
+ case 'network.xyo.query.archivist.find':
58
+ payloads.concat(await this.find(query.filter))
59
+ break
60
+ case 'network.xyo.query.archivist.get':
61
+ payloads.concat(await this.get(query.hashes))
62
+ break
63
+ case 'network.xyo.query.archivist.insert':
64
+ payloads.concat(await this.insert(query.payloads))
65
+ break
66
+ }
67
+ return [this.bindPayloads(payloads), payloads]
68
+ }
26
69
 
27
70
  get resolver() {
28
71
  return this.config.resolver
package/src/Archivist.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { NullablePromisableArray, PromisableArray } from '@xyo-network/promisable'
1
+ import { NullablePromisableArray, Promisable, PromisableArray } from '@xyo-network/promisable'
2
2
 
3
3
  export interface ReadArchivist<TReadResponse, TId = string> {
4
4
  get(ids: TId[]): NullablePromisableArray<TReadResponse>
@@ -8,7 +8,7 @@ export interface ReadArchivist<TReadResponse, TId = string> {
8
8
  export interface WriteArchivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TId = string> {
9
9
  insert(item: TWrite[]): PromisableArray<TWriteResponse>
10
10
  delete?(ids: TId[]): PromisableArray<boolean>
11
- clear?(): void
11
+ clear?(): Promisable<void>
12
12
  }
13
13
 
14
14
  export interface FindArchivist<TReadResponse, TFindResponse = TReadResponse, TFindFilter = unknown> {
package/src/Query/All.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { XyoArchivistQueryPayload } from '../XyoArchivist'
1
+ import { XyoQueryPayload } from '@xyo-network/payload'
2
2
 
3
- export type XyoArchvistAllQueryPayloadSchema = 'network.xyo.query.archivist.all'
4
- export const XyoArchvistAllQueryPayloadSchema = 'network.xyo.query.archivist.all'
3
+ export type XyoArchivistAllQueryPayloadSchema = 'network.xyo.query.archivist.all'
4
+ export const XyoArchivistAllQueryPayloadSchema = 'network.xyo.query.archivist.all'
5
5
 
6
- export type XyoArchvistAllQueryPayload = XyoArchivistQueryPayload<{
7
- schema: XyoArchvistAllQueryPayloadSchema
6
+ export type XyoArchivistAllQueryPayload = XyoQueryPayload<{
7
+ schema: XyoArchivistAllQueryPayloadSchema
8
8
  }>
@@ -0,0 +1,8 @@
1
+ import { XyoQueryPayload } from '@xyo-network/payload'
2
+
3
+ export type XyoArchivistClearQueryPayloadSchema = 'network.xyo.query.archivist.clear'
4
+ export const XyoArchivistClearQueryPayloadSchema = 'network.xyo.query.archivist.clear'
5
+
6
+ export type XyoArchivistClearQueryPayload = XyoQueryPayload<{
7
+ schema: XyoArchivistClearQueryPayloadSchema
8
+ }>
@@ -0,0 +1,8 @@
1
+ import { XyoQueryPayload } from '@xyo-network/payload'
2
+
3
+ export type XyoArchivistCommitQueryPayloadSchema = 'network.xyo.query.archivist.commit'
4
+ export const XyoArchivistCommitQueryPayloadSchema = 'network.xyo.query.archivist.commit'
5
+
6
+ export type XyoArchivistCommitQueryPayload = XyoQueryPayload<{
7
+ schema: XyoArchivistCommitQueryPayloadSchema
8
+ }>
@@ -0,0 +1,9 @@
1
+ import { XyoQueryPayload } from '@xyo-network/payload'
2
+
3
+ export type XyoArchivistDeleteQueryPayloadSchema = 'network.xyo.query.archivist.delete'
4
+ export const XyoArchivistDeleteQueryPayloadSchema = 'network.xyo.query.archivist.delete'
5
+
6
+ export type XyoArchivistDeleteQueryPayload = XyoQueryPayload<{
7
+ schema: XyoArchivistDeleteQueryPayloadSchema
8
+ hashes: string[]
9
+ }>
@@ -0,0 +1,11 @@
1
+ import { XyoQueryPayload } from '@xyo-network/payload'
2
+
3
+ import { XyoPayloadFindFilter } from '../XyoPayloadFindFilter'
4
+
5
+ export type XyoArchivistFindQueryPayloadSchema = 'network.xyo.query.archivist.find'
6
+ export const XyoArchivistFindQueryPayloadSchema = 'network.xyo.query.archivist.find'
7
+
8
+ export type XyoArchivistFindQueryPayload = XyoQueryPayload<{
9
+ schema: XyoArchivistFindQueryPayloadSchema
10
+ filter: XyoPayloadFindFilter
11
+ }>
package/src/Query/Get.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { XyoArchivistQueryPayload } from '../XyoArchivist'
1
+ import { XyoQueryPayload } from '@xyo-network/payload'
2
2
 
3
- export type XyoArchvistGetQueryPayloadSchema = 'network.xyo.query.archivist.get'
4
- export const XyoArchvistGetQueryPayloadSchema = 'network.xyo.query.archivist.get'
3
+ export type XyoArchivistGetQueryPayloadSchema = 'network.xyo.query.archivist.get'
4
+ export const XyoArchivistGetQueryPayloadSchema = 'network.xyo.query.archivist.get'
5
5
 
6
- export type XyoArchvistGetQueryPayload = XyoArchivistQueryPayload<{
7
- schema: XyoArchvistGetQueryPayloadSchema
6
+ export type XyoArchivistGetQueryPayload = XyoQueryPayload<{
7
+ schema: XyoArchivistGetQueryPayloadSchema
8
8
  hashes: string[]
9
9
  }>
@@ -0,0 +1,9 @@
1
+ import { XyoPayload, XyoQueryPayload } from '@xyo-network/payload'
2
+
3
+ export type XyoArchivistInsertQueryPayloadSchema = 'network.xyo.query.archivist.insert'
4
+ export const XyoArchivistInsertQueryPayloadSchema = 'network.xyo.query.archivist.insert'
5
+
6
+ export type XyoArchivistInsertQueryPayload = XyoQueryPayload<{
7
+ schema: XyoArchivistInsertQueryPayloadSchema
8
+ payloads: XyoPayload[]
9
+ }>
@@ -1 +1,33 @@
1
+ import { XyoArchivistAllQueryPayload, XyoArchivistAllQueryPayloadSchema } from './All'
2
+ import { XyoArchivistClearQueryPayload, XyoArchivistClearQueryPayloadSchema } from './Clear'
3
+ import { XyoArchivistCommitQueryPayload, XyoArchivistCommitQueryPayloadSchema } from './Commit'
4
+ import { XyoArchivistDeleteQueryPayload, XyoArchivistDeleteQueryPayloadSchema } from './Delete'
5
+ import { XyoArchivistFindQueryPayload, XyoArchivistFindQueryPayloadSchema } from './Find'
6
+ import { XyoArchivistGetQueryPayload, XyoArchivistGetQueryPayloadSchema } from './Get'
7
+ import { XyoArchivistInsertQueryPayload, XyoArchivistInsertQueryPayloadSchema } from './Insert'
8
+
9
+ export * from './All'
10
+ export * from './Clear'
11
+ export * from './Commit'
12
+ export * from './Delete'
13
+ export * from './Find'
1
14
  export * from './Get'
15
+ export * from './Insert'
16
+
17
+ export type XyoArchivistQueryPayloadSchema =
18
+ | XyoArchivistAllQueryPayloadSchema
19
+ | XyoArchivistClearQueryPayloadSchema
20
+ | XyoArchivistCommitQueryPayloadSchema
21
+ | XyoArchivistDeleteQueryPayloadSchema
22
+ | XyoArchivistFindQueryPayloadSchema
23
+ | XyoArchivistGetQueryPayloadSchema
24
+ | XyoArchivistInsertQueryPayloadSchema
25
+
26
+ export type XyoArchivistQueryPayload =
27
+ | XyoArchivistAllQueryPayload
28
+ | XyoArchivistClearQueryPayload
29
+ | XyoArchivistCommitQueryPayload
30
+ | XyoArchivistDeleteQueryPayload
31
+ | XyoArchivistFindQueryPayload
32
+ | XyoArchivistGetQueryPayload
33
+ | XyoArchivistInsertQueryPayload
@@ -1,23 +1,5 @@
1
- import { XyoBoundWitness } from '@xyo-network/boundwitness'
2
- import { XyoModule, XyoQueryPayload } from '@xyo-network/module'
3
- import { XyoPayload } from '@xyo-network/payload'
4
- import { Promisable } from '@xyo-network/promisable'
1
+ import { XyoModule } from '@xyo-network/module'
5
2
 
6
- import { Archivist } from './Archivist'
7
- import { XyoPayloadFindFilter } from './XyoPayloadFindFilter'
3
+ import { XyoArchivistQueryPayload } from './Query'
8
4
 
9
- export type XyoArchivistQueryPayloadGetSchema = 'network.xyo.query.archivist.get'
10
- export const XyoArchivistQueryPayloadGetSchema = 'network.xyo.query.archivist.get'
11
-
12
- export type XyoArchivistQueryPayloadAllSchema = 'network.xyo.query.archivist.all'
13
- export const XyoArchivistQueryPayloadAllSchema = 'network.xyo.query.archivist.all'
14
-
15
- export type XyoArchivistQueryPayloadSchema = XyoArchivistQueryPayloadGetSchema | XyoArchivistQueryPayloadAllSchema
16
-
17
- export type XyoArchivistQueryPayload<T extends XyoPayload = XyoPayload> = XyoQueryPayload<T>
18
-
19
- export interface XyoArchivist<Q extends XyoArchivistQueryPayload = XyoArchivistQueryPayload>
20
- extends XyoModule<Q>,
21
- Archivist<XyoPayload, XyoPayload, XyoPayload, XyoPayload, XyoPayloadFindFilter> {
22
- query<T extends Q>(query: T): Promisable<[XyoBoundWitness, XyoPayload[]]>
23
- }
5
+ export type XyoArchivist<Q extends XyoArchivistQueryPayload = XyoArchivistQueryPayload> = XyoModule<Q>
@@ -1,7 +1,7 @@
1
1
  import { XyoModuleConfig } from '@xyo-network/module'
2
2
  import { XyoPayload } from '@xyo-network/payload'
3
3
 
4
- import { XyoArchivist, XyoArchivistQueryPayload } from './XyoArchivist'
4
+ import { XyoArchivist } from './XyoArchivist'
5
5
 
6
6
  export interface XyoArchivistParents {
7
7
  read?: Record<string, XyoArchivist | null | undefined>
@@ -9,18 +9,15 @@ export interface XyoArchivistParents {
9
9
  commit?: Record<string, XyoArchivist | null | undefined>
10
10
  }
11
11
 
12
- export type XyoArchivistConfig<
13
- T extends XyoPayload = XyoPayload,
14
- M extends XyoArchivist = XyoArchivist<XyoArchivistQueryPayload<T>>,
15
- > = XyoModuleConfig<
12
+ export type XyoArchivistConfig<TConfig extends XyoPayload = XyoPayload, TQuery extends XyoPayload = XyoPayload> = XyoModuleConfig<
16
13
  {
17
14
  /** @field address of one or more parent archivists to read from */
18
15
  parents?: XyoArchivistParents
19
16
  cacheParentReads?: boolean
20
17
  /** @field address of archivist to write through to */
21
18
  writeThrough?: string
22
- } & T,
23
- M
19
+ } & TConfig,
20
+ TQuery
24
21
  >
25
22
 
26
23
  export class XyoArchivistConfigWrapper<C extends XyoArchivistConfig = XyoArchivistConfig> {
@@ -1,30 +1,47 @@
1
1
  import { assertEx } from '@xylabs/sdk-js'
2
2
  import { XyoBoundWitness, XyoBoundWitnessBuilder } from '@xyo-network/boundwitness'
3
3
  import { XyoPayload, XyoPayloadWrapper } from '@xyo-network/payload'
4
- import { Promisable, PromisableArray } from '@xyo-network/promisable'
4
+ import { PromisableArray } from '@xyo-network/promisable'
5
5
  import compact from 'lodash/compact'
6
6
  import LruCache from 'lru-cache'
7
7
 
8
8
  import { XyoAbstractArchivist } from './Abstract'
9
- import { XyoArchivistQueryPayload } from './XyoArchivist'
9
+ import {
10
+ XyoArchivistAllQueryPayloadSchema,
11
+ XyoArchivistClearQueryPayloadSchema,
12
+ XyoArchivistCommitQueryPayloadSchema,
13
+ XyoArchivistDeleteQueryPayloadSchema,
14
+ XyoArchivistFindQueryPayloadSchema,
15
+ } from './Query'
10
16
  import { XyoArchivistConfig } from './XyoArchivistConfig'
11
17
  import { XyoPayloadFindFilter } from './XyoPayloadFindFilter'
12
18
 
19
+ export type XyoMemoryArchivistConfigSchema = 'network.xyo.module.config.archivist.memory'
20
+ export const XyoMemoryArchivistConfigSchema = 'network.xyo.module.config.archivist.memory'
21
+
13
22
  export type XyoMemoryArchivistConfig = XyoArchivistConfig<{
14
- schema: 'network.xyo.module.config.archivist.memory'
23
+ schema: XyoMemoryArchivistConfigSchema
15
24
  max?: number
16
25
  }>
17
26
 
18
- export class XyoMemoryArchivist extends XyoAbstractArchivist<XyoArchivistQueryPayload, XyoMemoryArchivistConfig> {
19
- query<Q>(_query: Q): Promisable<[XyoBoundWitness, XyoPayload<{ schema: string }>[]]> {
20
- throw new Error('Method not implemented.')
21
- }
27
+ export class XyoMemoryArchivist extends XyoAbstractArchivist<XyoMemoryArchivistConfig> {
22
28
  public get max() {
23
29
  return this.config?.max ?? 10000
24
30
  }
25
31
 
26
32
  private cache: LruCache<string, XyoPayload>
27
33
 
34
+ public override get queries() {
35
+ return [
36
+ ...super.queries,
37
+ XyoArchivistAllQueryPayloadSchema,
38
+ XyoArchivistDeleteQueryPayloadSchema,
39
+ XyoArchivistClearQueryPayloadSchema,
40
+ XyoArchivistFindQueryPayloadSchema,
41
+ XyoArchivistCommitQueryPayloadSchema,
42
+ ]
43
+ }
44
+
28
45
  constructor(config: XyoMemoryArchivistConfig) {
29
46
  super(config)
30
47
  this.cache = new LruCache<string, XyoPayload>({ max: this.max })
@@ -36,7 +53,7 @@ export class XyoMemoryArchivist extends XyoAbstractArchivist<XyoArchivistQueryPa
36
53
  })
37
54
  }
38
55
 
39
- public clear(): void | Promise<void> {
56
+ public override clear(): void | Promise<void> {
40
57
  this.cache.clear()
41
58
  }
42
59
 
@@ -45,7 +62,8 @@ export class XyoMemoryArchivist extends XyoAbstractArchivist<XyoArchivistQueryPa
45
62
  await Promise.all(
46
63
  compact(
47
64
  Object.values(this.parents?.read ?? {}).map(async (parent) => {
48
- return (await parent?.get([hash]))?.[0] ?? null
65
+ const [, payloads] = (await parent?.query({ hashes: [hash], schema: 'network.xyo.query.archivist.get' })) ?? []
66
+ return payloads?.[0]
49
67
  }),
50
68
  ),
51
69
  ),
@@ -89,7 +107,11 @@ export class XyoMemoryArchivist extends XyoAbstractArchivist<XyoArchivistQueryPa
89
107
  const builder = new XyoBoundWitnessBuilder<XyoBoundWitness, XyoPayload>()
90
108
  const block = builder.payloads(payloads).witness(account).build()
91
109
  await Promise.allSettled(
92
- compact(Object.values(this.parents?.commit ?? [])?.map(async (parent) => await parent?.insert?.(payloads.concat([block])))),
110
+ compact(
111
+ Object.values(this.parents?.commit ?? [])?.map(
112
+ async (parent) => await parent?.query({ payloads: [block, ...payloads], schema: 'network.xyo.query.archivist.insert' }),
113
+ ),
114
+ ),
93
115
  )
94
116
  await this.clear()
95
117
  return payloads
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './Abstract'
2
2
  export * from './Archivist'
3
+ export * from './Query'
3
4
  export * from './XyoArchivist'
4
5
  export * from './XyoArchivistConfig'
5
6
  export * from './XyoMemoryArchivist'