@xyo-network/archivist 2.22.11 → 2.22.12

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.
@@ -1,14 +1,20 @@
1
1
  import { XyoPayload } from '@xyo-network/payload';
2
+ import { PromisableArray } from './model';
2
3
  import { XyoArchivist } from './XyoArchivist';
3
- import { XyoArchivistConfigWrapper } from './XyoArchivistConfig';
4
+ import { XyoArchivistConfig, XyoArchivistConfigWrapper } from './XyoArchivistConfig';
4
5
  import { XyoPayloadFindQuery } from './XyoPayloadFindFilter';
5
- export declare class XyoMemoryArchivist extends XyoArchivistConfigWrapper<XyoPayload> implements XyoArchivist {
6
+ export interface XyoMemoryArchivistConfig<T extends XyoPayload = XyoPayload> extends XyoArchivistConfig<T> {
7
+ max?: number;
8
+ }
9
+ export declare class XyoMemoryArchivist<C extends XyoMemoryArchivistConfig<XyoPayload> = XyoMemoryArchivistConfig<XyoPayload>> extends XyoArchivistConfigWrapper<XyoPayload, C> implements XyoArchivist {
10
+ get max(): number;
6
11
  private cache;
7
- delete(hashes: string[]): boolean[] | Promise<boolean[]>;
12
+ constructor(config?: C);
13
+ delete(hashes: string[]): PromisableArray<boolean>;
8
14
  clear(): void | Promise<void>;
9
15
  get(hashes: string[]): Promise<(XyoPayload | null)[]>;
10
- insert(payloads: XyoPayload[]): XyoPayload[] | Promise<XyoPayload[]>;
11
- find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery): R[] | Promise<R[]>;
16
+ insert(payloads: XyoPayload[]): PromisableArray<XyoPayload>;
17
+ find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery): PromisableArray<R>;
12
18
  all(): Promise<XyoPayload[]> | XyoPayload[];
13
- commit(): Promise<import("@xyo-network/payload").XyoPayloadBase[] | undefined>;
19
+ commit(): Promise<import("@xyo-network/payload").XyoPayloadBase[]>;
14
20
  }
@@ -8,9 +8,13 @@ const payload_1 = require("@xyo-network/payload");
8
8
  const lru_cache_1 = tslib_1.__importDefault(require("lru-cache"));
9
9
  const XyoArchivistConfig_1 = require("./XyoArchivistConfig");
10
10
  class XyoMemoryArchivist extends XyoArchivistConfig_1.XyoArchivistConfigWrapper {
11
- constructor() {
12
- super(...arguments);
13
- this.cache = new lru_cache_1.default({ max: 10000 });
11
+ constructor(config) {
12
+ super(config);
13
+ this.cache = new lru_cache_1.default({ max: this.max });
14
+ }
15
+ get max() {
16
+ var _a, _b;
17
+ return (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.max) !== null && _b !== void 0 ? _b : 10000;
14
18
  }
15
19
  delete(hashes) {
16
20
  return hashes.map((hash) => {
@@ -1 +1 @@
1
- {"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,4DAAmF;AACnF,kDAAoE;AACpE,kEAAgC;AAGhC,6DAAgE;AAGhE,MAAa,kBAAmB,SAAQ,8CAAqC;IAA7E;;QACU,UAAK,GAAG,IAAI,mBAAQ,CAAqB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAqDlE,CAAC;IAnDQ,MAAM,CAAC,MAAgB;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEY,GAAG,CAAC,MAAgB;;YAC/B,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,MAAM,CAAC,GAAG,CAAC,CAAO,IAAI,EAAE,EAAE;;gBACxB,OAAO,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,MAAA,CAAC,MAAM,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC,0CAAE,GAAG,EAAE,mCAAI,IAAI,CAAA;YAChF,CAAC,CAAA,CAAC,CACH,CAAA;QACH,CAAC;KAAA;IAEM,MAAM,CAAC,QAAsB;QAClC,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,CAAoC,KAA0B;QACvE,MAAM,MAAM,GAAQ,EAAE,CAAA;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;gBACxC,MAAM,CAAC,IAAI,CAAC,KAAU,CAAC,CAAA;aACxB;QACH,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,GAAG;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACzD,CAAC;IAEY,MAAM;;;YACjB,MAAM,MAAM,GAAG,IAAA,iBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAA;YACrE,MAAM,OAAO,GAAG,IAAA,iBAAQ,EAAC,IAAI,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAA;YACxE,MAAM,QAAQ,GAAG,IAAA,iBAAQ,EAAC,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAA;YAChE,MAAM,OAAO,GAAG,IAAI,qCAAsB,EAA+B,CAAA;YACzE,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;YACjE,MAAM,MAAM,GAAG,MAAM,CAAA,MAAA,MAAM,CAAC,MAAM,uDAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAA;YAC9D,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAClB,OAAO,MAAM,CAAA;;KACd;CACF;AAtDD,gDAsDC"}
1
+ {"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,23 @@
1
- export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string> {
2
- get(ids: TId[]): Promise<(TReadResponse | null)[]> | (TReadResponse | null)[];
3
- all?(): Promise<TReadResponse[]> | TReadResponse[];
4
- find?(query: TQuery): Promise<TQueryResponse[]> | TQueryResponse[];
5
- insert?(item: TWrite[]): Promise<TWriteResponse[]> | TWriteResponse[];
6
- delete?(ids: TId[]): Promise<boolean[]> | boolean[];
1
+ export declare type Promisable<T> = Promise<T> | T;
2
+ export declare type PromisableArray<T> = Promisable<T[]>;
3
+ export declare type OptionalPromisable<T> = Promisable<T | undefined>;
4
+ export declare type OptionalPromisableArray<T> = PromisableArray<T | undefined>;
5
+ export declare type NullablePromisable<T> = Promisable<T | null>;
6
+ export declare type NullablePromisableArray<T> = PromisableArray<T | null>;
7
+ export interface ReadArchivist<TReadResponse, TId = string> {
8
+ get(ids: TId[]): NullablePromisableArray<TReadResponse>;
9
+ all?(): PromisableArray<TReadResponse>;
10
+ }
11
+ export interface WriteArchivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TId = string> {
12
+ insert(item: TWrite[]): PromisableArray<TWriteResponse>;
13
+ delete?(ids: TId[]): PromisableArray<boolean>;
7
14
  clear?(): void;
8
- commit?(): void;
15
+ }
16
+ export interface QueryArchivist<TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown> {
17
+ find(query: TQuery): PromisableArray<TQueryResponse>;
18
+ }
19
+ export interface StashArchivist<TReadResponse> {
20
+ commit?(): PromisableArray<TReadResponse>;
21
+ }
22
+ export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string> extends ReadArchivist<TReadResponse, TId>, QueryArchivist<TReadResponse, TQueryResponse, TQuery>, WriteArchivist<TReadResponse, TWriteResponse, TWrite, TId>, StashArchivist<TReadResponse> {
9
23
  }
@@ -1,14 +1,20 @@
1
1
  import { XyoPayload } from '@xyo-network/payload';
2
+ import { PromisableArray } from './model';
2
3
  import { XyoArchivist } from './XyoArchivist';
3
- import { XyoArchivistConfigWrapper } from './XyoArchivistConfig';
4
+ import { XyoArchivistConfig, XyoArchivistConfigWrapper } from './XyoArchivistConfig';
4
5
  import { XyoPayloadFindQuery } from './XyoPayloadFindFilter';
5
- export declare class XyoMemoryArchivist extends XyoArchivistConfigWrapper<XyoPayload> implements XyoArchivist {
6
+ export interface XyoMemoryArchivistConfig<T extends XyoPayload = XyoPayload> extends XyoArchivistConfig<T> {
7
+ max?: number;
8
+ }
9
+ export declare class XyoMemoryArchivist<C extends XyoMemoryArchivistConfig<XyoPayload> = XyoMemoryArchivistConfig<XyoPayload>> extends XyoArchivistConfigWrapper<XyoPayload, C> implements XyoArchivist {
10
+ get max(): number;
6
11
  private cache;
7
- delete(hashes: string[]): boolean[] | Promise<boolean[]>;
12
+ constructor(config?: C);
13
+ delete(hashes: string[]): PromisableArray<boolean>;
8
14
  clear(): void | Promise<void>;
9
15
  get(hashes: string[]): Promise<(XyoPayload | null)[]>;
10
- insert(payloads: XyoPayload[]): XyoPayload[] | Promise<XyoPayload[]>;
11
- find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery): R[] | Promise<R[]>;
16
+ insert(payloads: XyoPayload[]): PromisableArray<XyoPayload>;
17
+ find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery): PromisableArray<R>;
12
18
  all(): Promise<XyoPayload[]> | XyoPayload[];
13
- commit(): Promise<import("@xyo-network/payload").XyoPayloadBase[] | undefined>;
19
+ commit(): Promise<import("@xyo-network/payload").XyoPayloadBase[]>;
14
20
  }
@@ -4,9 +4,12 @@ import { XyoPayloadWrapper } from '@xyo-network/payload';
4
4
  import LruCache from 'lru-cache';
5
5
  import { XyoArchivistConfigWrapper } from './XyoArchivistConfig';
6
6
  export class XyoMemoryArchivist extends XyoArchivistConfigWrapper {
7
- constructor() {
8
- super(...arguments);
9
- this.cache = new LruCache({ max: 10000 });
7
+ constructor(config) {
8
+ super(config);
9
+ this.cache = new LruCache({ max: this.max });
10
+ }
11
+ get max() {
12
+ return this.config?.max ?? 10000;
10
13
  }
11
14
  delete(hashes) {
12
15
  return hashes.map((hash) => {
@@ -1 +1 @@
1
- {"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,23 @@
1
- export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string> {
2
- get(ids: TId[]): Promise<(TReadResponse | null)[]> | (TReadResponse | null)[];
3
- all?(): Promise<TReadResponse[]> | TReadResponse[];
4
- find?(query: TQuery): Promise<TQueryResponse[]> | TQueryResponse[];
5
- insert?(item: TWrite[]): Promise<TWriteResponse[]> | TWriteResponse[];
6
- delete?(ids: TId[]): Promise<boolean[]> | boolean[];
1
+ export declare type Promisable<T> = Promise<T> | T;
2
+ export declare type PromisableArray<T> = Promisable<T[]>;
3
+ export declare type OptionalPromisable<T> = Promisable<T | undefined>;
4
+ export declare type OptionalPromisableArray<T> = PromisableArray<T | undefined>;
5
+ export declare type NullablePromisable<T> = Promisable<T | null>;
6
+ export declare type NullablePromisableArray<T> = PromisableArray<T | null>;
7
+ export interface ReadArchivist<TReadResponse, TId = string> {
8
+ get(ids: TId[]): NullablePromisableArray<TReadResponse>;
9
+ all?(): PromisableArray<TReadResponse>;
10
+ }
11
+ export interface WriteArchivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TId = string> {
12
+ insert(item: TWrite[]): PromisableArray<TWriteResponse>;
13
+ delete?(ids: TId[]): PromisableArray<boolean>;
7
14
  clear?(): void;
8
- commit?(): void;
15
+ }
16
+ export interface QueryArchivist<TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown> {
17
+ find(query: TQuery): PromisableArray<TQueryResponse>;
18
+ }
19
+ export interface StashArchivist<TReadResponse> {
20
+ commit?(): PromisableArray<TReadResponse>;
21
+ }
22
+ export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string> extends ReadArchivist<TReadResponse, TId>, QueryArchivist<TReadResponse, TQueryResponse, TQuery>, WriteArchivist<TReadResponse, TWriteResponse, TWrite, TId>, StashArchivist<TReadResponse> {
9
23
  }
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.11",
14
- "@xyo-network/boundwitness": "^2.22.11",
15
- "@xyo-network/core": "^2.22.11",
16
- "@xyo-network/payload": "^2.22.11",
13
+ "@xyo-network/account": "^2.22.12",
14
+ "@xyo-network/boundwitness": "^2.22.12",
15
+ "@xyo-network/core": "^2.22.12",
16
+ "@xyo-network/payload": "^2.22.12",
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.11",
59
+ "version": "2.22.12",
60
60
  "packageManager": "yarn@3.1.1"
61
61
  }
@@ -3,14 +3,31 @@ import { XyoBoundWitness, XyoBoundWitnessBuilder } from '@xyo-network/boundwitne
3
3
  import { XyoPayload, XyoPayloadWrapper } from '@xyo-network/payload'
4
4
  import LruCache from 'lru-cache'
5
5
 
6
+ import { PromisableArray } from './model'
6
7
  import { XyoArchivist } from './XyoArchivist'
7
- import { XyoArchivistConfigWrapper } from './XyoArchivistConfig'
8
+ import { XyoArchivistConfig, XyoArchivistConfigWrapper } from './XyoArchivistConfig'
8
9
  import { XyoPayloadFindQuery } from './XyoPayloadFindFilter'
9
10
 
10
- export class XyoMemoryArchivist extends XyoArchivistConfigWrapper<XyoPayload> implements XyoArchivist {
11
- private cache = new LruCache<string, XyoPayload>({ max: 10000 })
11
+ export interface XyoMemoryArchivistConfig<T extends XyoPayload = XyoPayload> extends XyoArchivistConfig<T> {
12
+ max?: number
13
+ }
14
+
15
+ export class XyoMemoryArchivist<C extends XyoMemoryArchivistConfig<XyoPayload> = XyoMemoryArchivistConfig<XyoPayload>>
16
+ extends XyoArchivistConfigWrapper<XyoPayload, C>
17
+ implements XyoArchivist
18
+ {
19
+ public get max() {
20
+ return this.config?.max ?? 10000
21
+ }
22
+
23
+ private cache: LruCache<string, XyoPayload>
24
+
25
+ constructor(config?: C) {
26
+ super(config)
27
+ this.cache = new LruCache<string, XyoPayload>({ max: this.max })
28
+ }
12
29
 
13
- public delete(hashes: string[]): boolean[] | Promise<boolean[]> {
30
+ public delete(hashes: string[]): PromisableArray<boolean> {
14
31
  return hashes.map((hash) => {
15
32
  return this.cache.delete(hash)
16
33
  })
@@ -28,7 +45,7 @@ export class XyoMemoryArchivist extends XyoArchivistConfigWrapper<XyoPayload> im
28
45
  )
29
46
  }
30
47
 
31
- public insert(payloads: XyoPayload[]): XyoPayload[] | Promise<XyoPayload[]> {
48
+ public insert(payloads: XyoPayload[]): PromisableArray<XyoPayload> {
32
49
  return payloads.map((payload) => {
33
50
  const wrapper = new XyoPayloadWrapper(payload)
34
51
  const payloadWithmeta = { ...payload, _hash: wrapper.hash, _timestamp: Date.now() }
@@ -37,7 +54,7 @@ export class XyoMemoryArchivist extends XyoArchivistConfigWrapper<XyoPayload> im
37
54
  })
38
55
  }
39
56
 
40
- public find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery): R[] | Promise<R[]> {
57
+ public find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery): PromisableArray<R> {
41
58
  const result: R[] = []
42
59
  this.cache.forEach((value) => {
43
60
  if (value.schema === query.filter.schema) {
@@ -1,9 +1,31 @@
1
- export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string> {
2
- get(ids: TId[]): Promise<(TReadResponse | null)[]> | (TReadResponse | null)[]
3
- all?(): Promise<TReadResponse[]> | TReadResponse[]
4
- find?(query: TQuery): Promise<TQueryResponse[]> | TQueryResponse[]
5
- insert?(item: TWrite[]): Promise<TWriteResponse[]> | TWriteResponse[]
6
- delete?(ids: TId[]): Promise<boolean[]> | boolean[]
1
+ export type Promisable<T> = Promise<T> | T
2
+ export type PromisableArray<T> = Promisable<T[]>
3
+ export type OptionalPromisable<T> = Promisable<T | undefined>
4
+ export type OptionalPromisableArray<T> = PromisableArray<T | undefined>
5
+ export type NullablePromisable<T> = Promisable<T | null>
6
+ export type NullablePromisableArray<T> = PromisableArray<T | null>
7
+
8
+ export interface ReadArchivist<TReadResponse, TId = string> {
9
+ get(ids: TId[]): NullablePromisableArray<TReadResponse>
10
+ all?(): PromisableArray<TReadResponse>
11
+ }
12
+
13
+ export interface WriteArchivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TId = string> {
14
+ insert(item: TWrite[]): PromisableArray<TWriteResponse>
15
+ delete?(ids: TId[]): PromisableArray<boolean>
7
16
  clear?(): void
8
- commit?(): void
9
17
  }
18
+
19
+ export interface QueryArchivist<TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown> {
20
+ find(query: TQuery): PromisableArray<TQueryResponse>
21
+ }
22
+
23
+ export interface StashArchivist<TReadResponse> {
24
+ commit?(): PromisableArray<TReadResponse>
25
+ }
26
+
27
+ export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string>
28
+ extends ReadArchivist<TReadResponse, TId>,
29
+ QueryArchivist<TReadResponse, TQueryResponse, TQuery>,
30
+ WriteArchivist<TReadResponse, TWriteResponse, TWrite, TId>,
31
+ StashArchivist<TReadResponse> {}