@xyo-network/api 2.28.0 → 2.29.0-rc.2

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 +1 @@
1
- {"version":3,"file":"XyoRemoteArchivist.d.ts","sourceRoot":"","sources":["../../../src/Archivist/XyoRemoteArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAsC,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAEvH,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,uFAAuF;AACvF,qBAAa,kBAAmB,SAAQ,oBAAoB,CAAC,wBAAwB,CAAC;IACpF,IAAW,GAAG,oCAEb;IAED,IAAoB,OAAO,6EAE1B;IAED,IAAW,OAAO,uBAEjB;IAEY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE;;;;;;IASpB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE;;;;;;IAuB7B,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAKjG"}
1
+ {"version":3,"file":"XyoRemoteArchivist.d.ts","sourceRoot":"","sources":["../../../src/Archivist/XyoRemoteArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAsC,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAEvH,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAQrE,uFAAuF;AACvF,qBAAa,kBAAmB,SAAQ,oBAAoB,CAAC,wBAAwB,CAAC;IACpF,IAAW,GAAG,oCAEb;IAED,IAAoB,OAAO,6EAE1B;IAED,IAAW,OAAO,uBAEjB;IAEY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE;;;;;;IAgBpB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE;;;;;;IA8B7B,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAejG"}
@@ -2,6 +2,11 @@ import { assertEx } from '@xylabs/sdk-js';
2
2
  import { XyoAbstractArchivist, XyoArchivistFindQueryPayloadSchema } from '@xyo-network/archivist';
3
3
  import { XyoBoundWitnessSchema } from '@xyo-network/boundwitness';
4
4
  import { XyoPayloadWrapper } from '@xyo-network/payload';
5
+ class RemoteArchivistError extends Error {
6
+ constructor(action, error, message) {
7
+ super(`Remote Archivist [${action}] failed${message ? ` (${message})` : ''}`, { cause: error });
8
+ }
9
+ }
5
10
  /** @description Archivist Context that connects to a remote archivist using the API */
6
11
  export class XyoRemoteArchivist extends XyoAbstractArchivist {
7
12
  get api() {
@@ -15,36 +20,63 @@ export class XyoRemoteArchivist extends XyoAbstractArchivist {
15
20
  }
16
21
  async get(hashes) {
17
22
  return await Promise.all(hashes.map(async (hash) => {
18
- const [payloads] = await this.api.archive(this.archive).payload.hash(hash).get('tuple');
19
- return payloads?.pop() ?? null;
23
+ try {
24
+ const [payloads, { error }] = await this.api.archive(this.archive).payload.hash(hash).get('tuple');
25
+ if (error?.length) {
26
+ throw new RemoteArchivistError('get', error);
27
+ }
28
+ return payloads?.pop() ?? null;
29
+ }
30
+ catch (ex) {
31
+ throw new RemoteArchivistError('get', ex, 'unexpected');
32
+ }
20
33
  }));
21
34
  }
22
35
  async insert(payloads) {
23
- const boundwitnesses = payloads.filter((payload) => payload.schema === XyoBoundWitnessSchema);
24
- boundwitnesses.forEach((boundwitness) => {
25
- boundwitness._payloads ===
26
- payloads.filter((payload) => {
27
- const hash = new XyoPayloadWrapper(payload).hash;
28
- return boundwitness.payload_hashes.includes(hash);
36
+ try {
37
+ const boundwitnesses = payloads.filter((payload) => payload.schema === XyoBoundWitnessSchema);
38
+ boundwitnesses.forEach((boundwitness) => {
39
+ boundwitness._payloads ===
40
+ payloads.filter((payload) => {
41
+ const hash = new XyoPayloadWrapper(payload).hash;
42
+ return boundwitness.payload_hashes.includes(hash);
43
+ });
44
+ });
45
+ payloads.forEach((payload) => {
46
+ let found = false;
47
+ const hash = new XyoPayloadWrapper(payload).hash;
48
+ boundwitnesses.forEach((boundwitnesses) => {
49
+ if (boundwitnesses.payload_hashes.includes(hash)) {
50
+ found = true;
51
+ }
29
52
  });
30
- });
31
- payloads.forEach((payload) => {
32
- let found = false;
33
- const hash = new XyoPayloadWrapper(payload).hash;
34
- boundwitnesses.forEach((boundwitnesses) => {
35
- if (boundwitnesses.payload_hashes.includes(hash)) {
36
- found = true;
37
- }
53
+ assertEx(found, 'Payload not in Boundwitness received');
38
54
  });
39
- assertEx(found, 'Payload not in Boundwitness received');
40
- });
41
- await this.api.archive(this.archive).block.post(boundwitnesses);
42
- return payloads;
55
+ const [, { error }] = await this.api.archive(this.archive).block.post(boundwitnesses, 'tuple');
56
+ if (error?.length) {
57
+ throw new RemoteArchivistError('insert', error);
58
+ }
59
+ return payloads;
60
+ }
61
+ catch (ex) {
62
+ throw new RemoteArchivistError('insert', ex, 'unexpected');
63
+ }
43
64
  }
44
65
  async find(filter) {
45
- const [payloads = []] = await this.api.archive(this.archive).payload.find(filter, 'tuple');
46
- const [blocks = []] = await this.api.archive(this.archive).block.find(filter, 'tuple');
47
- return payloads.concat(blocks);
66
+ try {
67
+ const [payloads = [], { error: payloadError }] = await this.api.archive(this.archive).payload.find(filter, 'tuple');
68
+ if (payloadError?.length) {
69
+ throw new RemoteArchivistError('find', payloadError, 'payloads');
70
+ }
71
+ const [blocks = [], { error: blockError }] = await this.api.archive(this.archive).block.find(filter, 'tuple');
72
+ if (blockError?.length) {
73
+ throw new RemoteArchivistError('find', blockError, 'blocks');
74
+ }
75
+ return payloads.concat(blocks);
76
+ }
77
+ catch (ex) {
78
+ throw new RemoteArchivistError('find', ex, 'unexpected');
79
+ }
48
80
  }
49
81
  }
50
82
  //# sourceMappingURL=XyoRemoteArchivist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoRemoteArchivist.js","sourceRoot":"","sources":["../../../src/Archivist/XyoRemoteArchivist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XyoRemoteArchivist.js","sourceRoot":"","sources":["../../../src/Archivist/XyoRemoteArchivist.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -10,13 +10,13 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@xylabs/sdk-js": "^2.6.7",
13
- "@xyo-network/account": "^2.28.0",
14
- "@xyo-network/archivist": "^2.28.0",
15
- "@xyo-network/boundwitness": "^2.28.0",
16
- "@xyo-network/core": "^2.28.0",
17
- "@xyo-network/payload": "^2.28.0",
18
- "@xyo-network/schema-payload-plugin": "^2.28.0",
19
- "@xyo-network/typeof": "^2.28.0",
13
+ "@xyo-network/account": "^2.29.0-rc.2",
14
+ "@xyo-network/archivist": "^2.29.0-rc.2",
15
+ "@xyo-network/boundwitness": "^2.29.0-rc.2",
16
+ "@xyo-network/core": "^2.29.0-rc.2",
17
+ "@xyo-network/payload": "^2.29.0-rc.2",
18
+ "@xyo-network/schema-payload-plugin": "^2.29.0-rc.2",
19
+ "@xyo-network/typeof": "^2.29.0-rc.2",
20
20
  "axios": "^0.27.2",
21
21
  "pako": "^2.0.4",
22
22
  "tslib": "^2.4.0"
@@ -24,8 +24,7 @@
24
24
  "description": "Primary SDK for using XYO Protocol 2.0",
25
25
  "devDependencies": {
26
26
  "@ethersproject/wallet": "^5.7.0",
27
- "@types/pako": "^2.0.0",
28
- "@xylabs/tsconfig": "^2.5.127"
27
+ "@types/pako": "^2.0.0"
29
28
  },
30
29
  "browser": "dist/esm/index.js",
31
30
  "docs": "dist/docs.json",
@@ -60,5 +59,6 @@
60
59
  },
61
60
  "sideEffects": false,
62
61
  "types": "dist/esm/index.d.ts",
63
- "version": "2.28.0"
62
+ "version": "2.29.0-rc.2",
63
+ "stableVersion": "2.28.1"
64
64
  }
@@ -5,6 +5,12 @@ import { XyoPayload, XyoPayloadWrapper } from '@xyo-network/payload'
5
5
 
6
6
  import { XyoRemoteArchivistConfig } from './XyoRemoteArchivistConfig'
7
7
 
8
+ class RemoteArchivistError extends Error {
9
+ constructor(action: string, error: Error['cause'], message?: string) {
10
+ super(`Remote Archivist [${action}] failed${message ? ` (${message})` : ''}`, { cause: error })
11
+ }
12
+ }
13
+
8
14
  /** @description Archivist Context that connects to a remote archivist using the API */
9
15
  export class XyoRemoteArchivist extends XyoAbstractArchivist<XyoRemoteArchivistConfig> {
10
16
  public get api() {
@@ -22,38 +28,62 @@ export class XyoRemoteArchivist extends XyoAbstractArchivist<XyoRemoteArchivistC
22
28
  public async get(hashes: string[]) {
23
29
  return await Promise.all(
24
30
  hashes.map(async (hash) => {
25
- const [payloads] = await this.api.archive(this.archive).payload.hash(hash).get('tuple')
26
- return payloads?.pop() ?? null
31
+ try {
32
+ const [payloads, { error }] = await this.api.archive(this.archive).payload.hash(hash).get('tuple')
33
+ if (error?.length) {
34
+ throw new RemoteArchivistError('get', error)
35
+ }
36
+ return payloads?.pop() ?? null
37
+ } catch (ex) {
38
+ throw new RemoteArchivistError('get', ex, 'unexpected')
39
+ }
27
40
  }),
28
41
  )
29
42
  }
30
43
 
31
44
  public async insert(payloads: XyoPayload[]) {
32
- const boundwitnesses = payloads.filter((payload) => payload.schema === XyoBoundWitnessSchema) as XyoBoundWitnessWithPartialMeta[]
33
- boundwitnesses.forEach((boundwitness) => {
34
- boundwitness._payloads ===
35
- payloads.filter((payload) => {
36
- const hash = new XyoPayloadWrapper(payload).hash
37
- return boundwitness.payload_hashes.includes(hash)
45
+ try {
46
+ const boundwitnesses = payloads.filter((payload) => payload.schema === XyoBoundWitnessSchema) as XyoBoundWitnessWithPartialMeta[]
47
+ boundwitnesses.forEach((boundwitness) => {
48
+ boundwitness._payloads ===
49
+ payloads.filter((payload) => {
50
+ const hash = new XyoPayloadWrapper(payload).hash
51
+ return boundwitness.payload_hashes.includes(hash)
52
+ })
53
+ })
54
+ payloads.forEach((payload) => {
55
+ let found = false
56
+ const hash = new XyoPayloadWrapper(payload).hash
57
+ boundwitnesses.forEach((boundwitnesses) => {
58
+ if (boundwitnesses.payload_hashes.includes(hash)) {
59
+ found = true
60
+ }
38
61
  })
39
- })
40
- payloads.forEach((payload) => {
41
- let found = false
42
- const hash = new XyoPayloadWrapper(payload).hash
43
- boundwitnesses.forEach((boundwitnesses) => {
44
- if (boundwitnesses.payload_hashes.includes(hash)) {
45
- found = true
46
- }
62
+ assertEx(found, 'Payload not in Boundwitness received')
47
63
  })
48
- assertEx(found, 'Payload not in Boundwitness received')
49
- })
50
- await this.api.archive(this.archive).block.post(boundwitnesses)
51
- return payloads
64
+ const [, { error }] = await this.api.archive(this.archive).block.post(boundwitnesses, 'tuple')
65
+ if (error?.length) {
66
+ throw new RemoteArchivistError('insert', error)
67
+ }
68
+ return payloads
69
+ } catch (ex) {
70
+ throw new RemoteArchivistError('insert', ex, 'unexpected')
71
+ }
52
72
  }
53
73
 
54
74
  public async find<R extends XyoPayload = XyoPayload>(filter: XyoPayloadFindFilter): Promise<R[]> {
55
- const [payloads = []] = await this.api.archive(this.archive).payload.find(filter, 'tuple')
56
- const [blocks = []] = await this.api.archive(this.archive).block.find(filter, 'tuple')
57
- return payloads.concat(blocks) as R[]
75
+ try {
76
+ const [payloads = [], { error: payloadError }] = await this.api.archive(this.archive).payload.find(filter, 'tuple')
77
+ if (payloadError?.length) {
78
+ throw new RemoteArchivistError('find', payloadError, 'payloads')
79
+ }
80
+ const [blocks = [], { error: blockError }] = await this.api.archive(this.archive).block.find(filter, 'tuple')
81
+ if (blockError?.length) {
82
+ throw new RemoteArchivistError('find', blockError, 'blocks')
83
+ }
84
+ return payloads.concat(blocks) as R[]
85
+ } catch (ex) {
86
+ throw new RemoteArchivistError('find', ex, 'unexpected')
87
+ }
58
88
  }
59
89
  }