@xyo-network/archivist 2.28.0-rc.7 → 2.29.0-rc.1

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.
@@ -16,7 +16,7 @@ export declare class XyoMemoryArchivist extends XyoAbstractArchivist<XyoMemoryAr
16
16
  constructor(config: XyoMemoryArchivistConfig);
17
17
  delete(hashes: string[]): PromisableArray<boolean>;
18
18
  clear(): void | Promise<void>;
19
- getFromParents(hash: string): Promise<{
19
+ protected getFromParents(hash: string): Promise<{
20
20
  schema: string;
21
21
  previousHash?: string | undefined;
22
22
  sources?: string[] | undefined;
@@ -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,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAUjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,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;AAEF,qBAAa,kBAAmB,SAAQ,oBAAoB,CAAC,wBAAwB,CAAC;IACpF,IAAW,GAAG,WAEb;IAED,OAAO,CAAC,KAAK,CAA8B;IAE3C,IAAoB,OAAO,8DAS1B;gBAEW,MAAM,EAAE,wBAAwB;IAKrC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;IAMzC,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC,cAAc,CAAC,IAAI,EAAE,MAAM;;;;;;IAa3B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAQ3D,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC;IAS3D,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,oBAAoB,GAAG,eAAe,CAAC,CAAC,CAAC;IAUzF,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE;IAIrC,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAe7C"}
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,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAUjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,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,oBAAoB,CAAC,wBAAwB,CAAC;IACpF,IAAW,GAAG,WAEb;IAED,OAAO,CAAC,KAAK,CAA8B;IAE3C,IAAoB,OAAO,8DAS1B;gBAEW,MAAM,EAAE,wBAAwB;IAKrC,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;;;;;;IAa9B,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;CAmB7C"}
@@ -10,6 +10,11 @@ const lru_cache_1 = tslib_1.__importDefault(require("lru-cache"));
10
10
  const Abstract_1 = require("./Abstract");
11
11
  const Query_1 = require("./Query");
12
12
  exports.XyoMemoryArchivistConfigSchema = 'network.xyo.module.config.archivist.memory';
13
+ class MemoryArchivistError extends Error {
14
+ constructor(action, error, message) {
15
+ super(`Memory Archivist [${action}] failed${message ? ` (${message})` : ''}`, { cause: error });
16
+ }
17
+ }
13
18
  class XyoMemoryArchivist extends Abstract_1.XyoAbstractArchivist {
14
19
  constructor(config) {
15
20
  super(config);
@@ -30,12 +35,22 @@ class XyoMemoryArchivist extends Abstract_1.XyoAbstractArchivist {
30
35
  ];
31
36
  }
32
37
  delete(hashes) {
33
- return hashes.map((hash) => {
34
- return this.cache.delete(hash);
35
- });
38
+ try {
39
+ return hashes.map((hash) => {
40
+ return this.cache.delete(hash);
41
+ });
42
+ }
43
+ catch (ex) {
44
+ throw new MemoryArchivistError('delete', ex, 'unexpected');
45
+ }
36
46
  }
37
47
  clear() {
38
- this.cache.clear();
48
+ try {
49
+ this.cache.clear();
50
+ }
51
+ catch (ex) {
52
+ throw new MemoryArchivistError('clear', ex, 'unexpected');
53
+ }
39
54
  }
40
55
  getFromParents(hash) {
41
56
  var _a, _b;
@@ -49,42 +64,67 @@ class XyoMemoryArchivist extends Abstract_1.XyoAbstractArchivist {
49
64
  }
50
65
  get(hashes) {
51
66
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
52
- return yield Promise.all(hashes.map((hash) => tslib_1.__awaiter(this, void 0, void 0, function* () {
53
- var _a, _b;
54
- return (_b = (_a = this.cache.get(hash)) !== null && _a !== void 0 ? _a : (yield this.getFromParents(hash))) !== null && _b !== void 0 ? _b : null;
55
- })));
67
+ try {
68
+ return yield Promise.all(hashes.map((hash) => tslib_1.__awaiter(this, void 0, void 0, function* () {
69
+ var _a, _b;
70
+ return (_b = (_a = this.cache.get(hash)) !== null && _a !== void 0 ? _a : (yield this.getFromParents(hash))) !== null && _b !== void 0 ? _b : null;
71
+ })));
72
+ }
73
+ catch (ex) {
74
+ throw new MemoryArchivistError('get', ex, 'unexpected');
75
+ }
56
76
  });
57
77
  }
58
78
  insert(payloads) {
59
- return payloads.map((payload) => {
60
- const wrapper = new payload_1.XyoPayloadWrapper(payload);
61
- const payloadWithmeta = Object.assign(Object.assign({}, payload), { _hash: wrapper.hash, _timestamp: Date.now() });
62
- this.cache.set(payloadWithmeta._hash, payloadWithmeta);
63
- return payloadWithmeta;
64
- });
79
+ try {
80
+ return payloads.map((payload) => {
81
+ const wrapper = new payload_1.XyoPayloadWrapper(payload);
82
+ const payloadWithmeta = Object.assign(Object.assign({}, payload), { _hash: wrapper.hash, _timestamp: Date.now() });
83
+ this.cache.set(payloadWithmeta._hash, payloadWithmeta);
84
+ return payloadWithmeta;
85
+ });
86
+ }
87
+ catch (ex) {
88
+ throw new MemoryArchivistError('insert', ex, 'unexpected');
89
+ }
65
90
  }
66
91
  find(filter) {
67
- const result = [];
68
- this.cache.forEach((value) => {
69
- if (value.schema === filter.schema) {
70
- result.push(value);
71
- }
72
- });
73
- return result;
92
+ try {
93
+ const result = [];
94
+ this.cache.forEach((value) => {
95
+ if (value.schema === filter.schema) {
96
+ result.push(value);
97
+ }
98
+ });
99
+ return result;
100
+ }
101
+ catch (ex) {
102
+ throw new MemoryArchivistError('find', ex, 'unexpected');
103
+ }
74
104
  }
75
105
  all() {
76
- return this.cache.dump().map((value) => value[1].value);
106
+ try {
107
+ return this.cache.dump().map((value) => value[1].value);
108
+ }
109
+ catch (ex) {
110
+ throw new MemoryArchivistError('all', ex, 'unexpected');
111
+ }
77
112
  }
78
113
  commit() {
79
114
  var _a, _b, _c;
80
115
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
81
- const account = (0, sdk_js_1.assertEx)(this.account, 'Account is required for commit');
82
- const payloads = (0, sdk_js_1.assertEx)(yield this.all(), 'Nothing to commit');
83
- const builder = new boundwitness_1.XyoBoundWitnessBuilder();
84
- const block = builder.payloads(payloads).witness(account).build();
85
- 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* () { return yield (parent === null || parent === void 0 ? void 0 : parent.query({ payloads: [block, ...payloads], schema: Query_1.XyoArchivistInsertQueryPayloadSchema })); }))));
86
- yield this.clear();
87
- return payloads;
116
+ try {
117
+ const account = (0, sdk_js_1.assertEx)(this.account, 'Account is required for commit');
118
+ const payloads = (0, sdk_js_1.assertEx)(yield this.all(), 'Nothing to commit');
119
+ const builder = new boundwitness_1.XyoBoundWitnessBuilder();
120
+ const block = builder.payloads(payloads).witness(account).build();
121
+ 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* () { return yield (parent === null || parent === void 0 ? void 0 : parent.query({ payloads: [block, ...payloads], schema: Query_1.XyoArchivistInsertQueryPayloadSchema })); }))));
122
+ yield this.clear();
123
+ return payloads;
124
+ }
125
+ catch (ex) {
126
+ throw new MemoryArchivistError('commit', ex, 'unexpected');
127
+ }
88
128
  });
89
129
  }
90
130
  }
@@ -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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"}