@xyo-network/archivist 2.22.11 → 2.22.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.
@@ -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,17 +10,14 @@
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",
17
- "axios": "^0.27.2",
18
- "lru-cache": "^7.13.1",
19
- "pako": "^2.0.4"
13
+ "@xyo-network/account": "^2.22.14",
14
+ "@xyo-network/boundwitness": "^2.22.14",
15
+ "@xyo-network/payload": "^2.22.14",
16
+ "lru-cache": "^7.13.1"
20
17
  },
21
18
  "description": "Primary SDK for using XYO Protocol 2.0",
22
19
  "devDependencies": {
23
- "@xylabs/tsconfig": "^1.0.14",
20
+ "@xylabs/tsconfig": "^2.5.2",
24
21
  "tslib": "^2.4.0"
25
22
  },
26
23
  "browser": "dist/esm/index.js",
@@ -56,6 +53,6 @@
56
53
  },
57
54
  "sideEffects": true,
58
55
  "types": "dist/esm/index.d.ts",
59
- "version": "2.22.11",
56
+ "version": "2.22.14",
60
57
  "packageManager": "yarn@3.1.1"
61
58
  }
@@ -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> {}
package/babel.config.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "presets": [
3
- "@babel/preset-env"
4
- ]
5
- }
@@ -1,6 +0,0 @@
1
- import { XyoBoundWitnessWithMeta } from '@xyo-network/boundwitness';
2
- import { XyoPayload } from '@xyo-network/payload';
3
- import { XyoArchivist } from './XyoArchivist';
4
- export declare abstract class XyoBoundWitnessArchivist<TRead extends XyoPayload = XyoPayload, TWrite extends XyoBoundWitnessWithMeta = XyoBoundWitnessWithMeta> extends XyoArchivist<TRead, TWrite> {
5
- commit(): Promise<string>;
6
- }
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XyoBoundWitnessArchivist = void 0;
4
- const tslib_1 = require("tslib");
5
- const sdk_js_1 = require("@xylabs/sdk-js");
6
- const boundwitness_1 = require("@xyo-network/boundwitness");
7
- const XyoArchivist_1 = require("./XyoArchivist");
8
- class XyoBoundWitnessArchivist extends XyoArchivist_1.XyoArchivist {
9
- commit() {
10
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
- const parent = (0, sdk_js_1.assertEx)(this.parent, 'Parent is required for commit');
12
- const account = (0, sdk_js_1.assertEx)(this.account, 'Account is required for commit');
13
- const payloads = (0, sdk_js_1.assertEx)(yield parent.all(), 'Nothing to commit');
14
- const builder = new boundwitness_1.XyoBoundWitnessBuilder();
15
- const block = builder.payloads(payloads).witness(account).build();
16
- const [hash] = yield parent.insert(block);
17
- yield this.clear();
18
- return hash;
19
- });
20
- }
21
- }
22
- exports.XyoBoundWitnessArchivist = XyoBoundWitnessArchivist;
23
- //# sourceMappingURL=XyoBoundWitnessArchivist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XyoBoundWitnessArchivist.js","sourceRoot":"","sources":["../../src/XyoBoundWitnessArchivist.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,4DAA2F;AAG3F,iDAA6C;AAE7C,MAAsB,wBAAkI,SAAQ,2BAG/J;IACc,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,MAAM,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAA;YAClE,MAAM,OAAO,GAAG,IAAI,qCAAsB,EAAiB,CAAA;YAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;YACjE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACzC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAClB,OAAO,IAAI,CAAA;QACb,CAAC;KAAA;CACF;AAdD,4DAcC"}
@@ -1,12 +0,0 @@
1
- import { XyoBoundWitness, XyoBoundWitnessWithMeta } from '@xyo-network/boundwitness';
2
- import { XyoPayloadWithMeta } from '@xyo-network/payload';
3
- import { XyoBoundWitnessArchivist } from './XyoBoundWitnessArchivist';
4
- import { XyoPayloadFindFilter } from './XyoPayloadFindFilter';
5
- export declare class XyoBoundWitnessMemoryArchivist<TRead extends XyoPayloadWithMeta = XyoPayloadWithMeta, TWrite extends XyoBoundWitnessWithMeta<XyoBoundWitness, TRead> & TRead = XyoBoundWitnessWithMeta<XyoBoundWitness, TRead> & TRead> extends XyoBoundWitnessArchivist<TRead, TWrite> {
6
- private cache;
7
- delete(hash: string): boolean;
8
- clear(): void;
9
- get(hash: string): TRead[] | Promise<TRead[] | undefined> | undefined;
10
- insert(boundWitness: TWrite): string[];
11
- find<T extends TRead = TRead>(filter: XyoPayloadFindFilter): T[];
12
- }
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XyoBoundWitnessMemoryArchivist = void 0;
4
- const tslib_1 = require("tslib");
5
- const boundwitness_1 = require("@xyo-network/boundwitness");
6
- const payload_1 = require("@xyo-network/payload");
7
- const lru_cache_1 = tslib_1.__importDefault(require("lru-cache"));
8
- const XyoBoundWitnessArchivist_1 = require("./XyoBoundWitnessArchivist");
9
- class XyoBoundWitnessMemoryArchivist extends XyoBoundWitnessArchivist_1.XyoBoundWitnessArchivist {
10
- constructor() {
11
- super(...arguments);
12
- this.cache = new lru_cache_1.default({ max: 10000 });
13
- }
14
- delete(hash) {
15
- return this.cache.delete(hash);
16
- }
17
- clear() {
18
- this.cache.clear();
19
- }
20
- get(hash) {
21
- var _a;
22
- const localResult = this.cache.get(hash);
23
- return localResult ? [localResult] : (_a = this.parent) === null || _a === void 0 ? void 0 : _a.get(hash);
24
- }
25
- insert(boundWitness) {
26
- var _a;
27
- const wrapper = new boundwitness_1.XyoBoundWitnessWrapper(boundWitness);
28
- const boundWitnessWithMeta = Object.assign(Object.assign({}, boundWitness), { _hash: wrapper.hash, _timestamp: Date.now() });
29
- const hashes = [];
30
- hashes.push(boundWitnessWithMeta._hash);
31
- this.cache.set(boundWitnessWithMeta._hash, boundWitnessWithMeta);
32
- (_a = boundWitness._payloads) === null || _a === void 0 ? void 0 : _a.forEach((payload) => {
33
- const wrapper = new payload_1.XyoPayloadWrapper(payload);
34
- const payloadWithMeta = Object.assign(Object.assign({}, payload), { _hash: wrapper.hash, _timestamp: Date.now() });
35
- hashes.push(payloadWithMeta._hash);
36
- this.cache.set(payloadWithMeta._hash, payloadWithMeta);
37
- });
38
- return hashes;
39
- }
40
- find(filter) {
41
- const result = [];
42
- this.cache.forEach((value) => {
43
- if (value.schema === filter.schema) {
44
- result.push(value);
45
- }
46
- });
47
- return result;
48
- }
49
- }
50
- exports.XyoBoundWitnessMemoryArchivist = XyoBoundWitnessMemoryArchivist;
51
- //# sourceMappingURL=XyoBoundWitnessMemoryArchivist.js.map
@@ -1 +0,0 @@
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,13 +0,0 @@
1
- import { XyoPayload } from '@xyo-network/payload';
2
- import { XyoArchivist } from './XyoArchivist';
3
- import { XyoArchivistConfigWrapper } from './XyoArchivistConfig';
4
- import { XyoPayloadFindQuery } from './XyoPayloadFindFilter';
5
- export declare abstract class XyoArchivistBase<T extends XyoPayload = XyoPayload> extends XyoArchivistConfigWrapper<T> implements XyoArchivist<T> {
6
- abstract insert(payloads: T[]): T[] | Promise<T[]>;
7
- abstract find<R extends T = T>(query: XyoPayloadFindQuery): R[] | Promise<R[]>;
8
- abstract get(hash: string[]): (T | null)[] | Promise<(T | null)[]>;
9
- all(): T[] | Promise<T[]>;
10
- delete(_hashes: string[]): boolean[] | Promise<boolean[]>;
11
- clear(): void | Promise<void>;
12
- commit(): void;
13
- }
@@ -1,16 +0,0 @@
1
- import { XyoArchivistConfigWrapper } from './XyoArchivistConfig';
2
- export class XyoArchivistBase extends XyoArchivistConfigWrapper {
3
- all() {
4
- throw Error('getAll not supported');
5
- }
6
- delete(_hashes) {
7
- throw Error('delete not supported');
8
- }
9
- clear() {
10
- throw Error('clear not supported');
11
- }
12
- commit() {
13
- throw Error('commit not supported');
14
- }
15
- }
16
- //# sourceMappingURL=XyoArchivistBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XyoArchivistBase.js","sourceRoot":"","sources":["../../src/XyoArchivistBase.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAGhE,MAAM,OAAgB,gBAAoD,SAAQ,yBAA4B;IAIrG,GAAG;QACR,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,CAAC;IACM,MAAM,CAAC,OAAiB;QAC7B,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 +0,0 @@
1
- import { XyoBoundWitnessWithMeta } from '@xyo-network/boundwitness';
2
- import { XyoPayload } from '@xyo-network/payload';
3
- import { XyoArchivist } from './XyoArchivist';
4
- export declare abstract class XyoBoundWitnessArchivist<TRead extends XyoPayload = XyoPayload, TWrite extends XyoBoundWitnessWithMeta = XyoBoundWitnessWithMeta> extends XyoArchivist<TRead, TWrite> {
5
- commit(): Promise<string>;
6
- }
@@ -1,15 +0,0 @@
1
- import { assertEx } from '@xylabs/sdk-js';
2
- import { XyoBoundWitnessBuilder } from '@xyo-network/boundwitness';
3
- export class XyoBoundWitnessArchivist extends XyoArchivist {
4
- async commit() {
5
- const parent = assertEx(this.parent, 'Parent is required for commit');
6
- const account = assertEx(this.account, 'Account is required for commit');
7
- const payloads = assertEx(await parent.all(), 'Nothing to commit');
8
- const builder = new XyoBoundWitnessBuilder();
9
- const block = builder.payloads(payloads).witness(account).build();
10
- const [hash] = await parent.insert(block);
11
- await this.clear();
12
- return hash;
13
- }
14
- }
15
- //# sourceMappingURL=XyoBoundWitnessArchivist.js.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- import { XyoBoundWitness, XyoBoundWitnessWithMeta } from '@xyo-network/boundwitness';
2
- import { XyoPayloadWithMeta } from '@xyo-network/payload';
3
- import { XyoBoundWitnessArchivist } from './XyoBoundWitnessArchivist';
4
- import { XyoPayloadFindFilter } from './XyoPayloadFindFilter';
5
- export declare class XyoBoundWitnessMemoryArchivist<TRead extends XyoPayloadWithMeta = XyoPayloadWithMeta, TWrite extends XyoBoundWitnessWithMeta<XyoBoundWitness, TRead> & TRead = XyoBoundWitnessWithMeta<XyoBoundWitness, TRead> & TRead> extends XyoBoundWitnessArchivist<TRead, TWrite> {
6
- private cache;
7
- delete(hash: string): boolean;
8
- clear(): void;
9
- get(hash: string): any;
10
- insert(boundWitness: TWrite): string[];
11
- find<T extends TRead = TRead>(filter: XyoPayloadFindFilter): T[];
12
- }
@@ -1,44 +0,0 @@
1
- import { XyoBoundWitnessWrapper } from '@xyo-network/boundwitness';
2
- import { XyoPayloadWrapper } from '@xyo-network/payload';
3
- import LruCache from 'lru-cache';
4
- import { XyoBoundWitnessArchivist } from './XyoBoundWitnessArchivist';
5
- export class XyoBoundWitnessMemoryArchivist extends XyoBoundWitnessArchivist {
6
- constructor() {
7
- super(...arguments);
8
- this.cache = new LruCache({ max: 10000 });
9
- }
10
- delete(hash) {
11
- return this.cache.delete(hash);
12
- }
13
- clear() {
14
- this.cache.clear();
15
- }
16
- get(hash) {
17
- const localResult = this.cache.get(hash);
18
- return localResult ? [localResult] : this.parent?.get(hash);
19
- }
20
- insert(boundWitness) {
21
- const wrapper = new XyoBoundWitnessWrapper(boundWitness);
22
- const boundWitnessWithMeta = { ...boundWitness, _hash: wrapper.hash, _timestamp: Date.now() };
23
- const hashes = [];
24
- hashes.push(boundWitnessWithMeta._hash);
25
- this.cache.set(boundWitnessWithMeta._hash, boundWitnessWithMeta);
26
- boundWitness._payloads?.forEach((payload) => {
27
- const wrapper = new XyoPayloadWrapper(payload);
28
- const payloadWithMeta = { ...payload, _hash: wrapper.hash, _timestamp: Date.now() };
29
- hashes.push(payloadWithMeta._hash);
30
- this.cache.set(payloadWithMeta._hash, payloadWithMeta);
31
- });
32
- return hashes;
33
- }
34
- find(filter) {
35
- const result = [];
36
- this.cache.forEach((value) => {
37
- if (value.schema === filter.schema) {
38
- result.push(value);
39
- }
40
- });
41
- return result;
42
- }
43
- }
44
- //# sourceMappingURL=XyoBoundWitnessMemoryArchivist.js.map
@@ -1 +0,0 @@
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"}
package/jest.config.cjs DELETED
@@ -1,26 +0,0 @@
1
- const generateJestConfig = ({ esModules }) => {
2
- const esModulesList = Array.isArray(esModules) ? esModules.join('|') : esModules
3
- return {
4
- globals: {
5
- 'ts-jest': {
6
- tsconfig: 'tsconfig.test.json',
7
- },
8
- },
9
- moduleNameMapper: {
10
- '^(\\.{1,2}/.*)\\.js$': '$1',
11
- },
12
- preset: 'ts-jest/presets/default-esm',
13
- setupFiles: ['dotenv/config'],
14
- setupFilesAfterEnv: ['jest-sorted', 'jest-extended/all'],
15
- testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
16
- testTimeout: 20000,
17
- transform: {
18
- [`(${esModulesList}).+\\.js$`]: 'babel-jest',
19
- '^.+\\.tsx?$': 'ts-jest/legacy',
20
- },
21
- transformIgnorePatterns: [`./node_modules/(?!${esModulesList})`],
22
- }
23
- }
24
-
25
- // eslint-disable-next-line no-undef
26
- module.exports = generateJestConfig({ esModules: ['is-ip', 'ip-regex', 'lodash-es', 'uuid'] })