@xyo-network/api 2.33.0-rc.5 → 2.33.0-rc.7

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.
@@ -0,0 +1,6 @@
1
+ export declare class RemoteArchivistError extends Error {
2
+ constructor(action: string, error: Error['cause'], message?: string);
3
+ isRemoteArchivistError: boolean;
4
+ static isRemoteArchivistError(error: unknown): RemoteArchivistError | undefined;
5
+ }
6
+ //# sourceMappingURL=RemoteArchivistError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteArchivistError.d.ts","sourceRoot":"","sources":["../../../src/Archivist/RemoteArchivistError.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;IAGnE,sBAAsB,UAAO;IAC7B,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS;CAGhF"}
@@ -0,0 +1,10 @@
1
+ export class RemoteArchivistError extends Error {
2
+ constructor(action, error, message) {
3
+ super(`Remote Archivist [${action}] failed${message ? ` (${message})` : ''}`, { cause: error });
4
+ }
5
+ isRemoteArchivistError = true;
6
+ static isRemoteArchivistError(error) {
7
+ return error.isRemoteArchivistError ? error : undefined;
8
+ }
9
+ }
10
+ //# sourceMappingURL=RemoteArchivistError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteArchivistError.js","sourceRoot":"","sources":["../../../src/Archivist/RemoteArchivistError.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,MAAc,EAAE,KAAqB,EAAE,OAAgB;QACjE,KAAK,CAAC,qBAAqB,MAAM,WAAW,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IACjG,CAAC;IACD,sBAAsB,GAAG,IAAI,CAAA;IAC7B,MAAM,CAAC,sBAAsB,CAAC,KAAc;QAC1C,OAAQ,KAA8B,CAAC,sBAAsB,CAAC,CAAC,CAAE,KAA8B,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7G,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"XyoRemoteArchivist.d.ts","sourceRoot":"","sources":["../../../src/Archivist/XyoRemoteArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAA+B,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACxG,OAAO,EAAE,eAAe,EAAyD,MAAM,2BAA2B,CAAA;AAClH,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAQrE,uFAAuF;AACvF,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,wBAAwB,CAAC;IAC5E,IAAW,GAAG,oCAEb;IAEe,OAAO;IAIvB,IAAW,OAAO,uBAEjB;IAEY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE;;;;;;IAiBpB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAuBxD,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAgBjG"}
1
+ {"version":3,"file":"XyoRemoteArchivist.d.ts","sourceRoot":"","sources":["../../../src/Archivist/XyoRemoteArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAA+B,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACxG,OAAO,EAAE,eAAe,EAAkF,MAAM,2BAA2B,CAAA;AAC3I,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,uFAAuF;AACvF,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,wBAAwB,CAAC;IAC5E,IAAW,GAAG,oCAEb;IAEe,OAAO;IAIvB,IAAW,OAAO,uBAEjB;IAEY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE;;;;;;IAoBpB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IA2BxD,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAmBjG"}
@@ -2,11 +2,7 @@ import { assertEx } from '@xylabs/sdk-js';
2
2
  import { XyoArchivist, XyoArchivistFindQuerySchema } 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
+ import { RemoteArchivistError } from './RemoteArchivistError';
10
6
  /** @description Archivist Context that connects to a remote archivist using the API */
11
7
  export class XyoRemoteArchivist extends XyoArchivist {
12
8
  get api() {
@@ -21,15 +17,18 @@ export class XyoRemoteArchivist extends XyoArchivist {
21
17
  async get(hashes) {
22
18
  return await Promise.all(hashes.map(async (hash) => {
23
19
  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);
20
+ const [payloads, response, error] = await this.api.archive(this.archive).payload.hash(hash).get('tuple');
21
+ if (error?.status >= 400) {
22
+ throw new RemoteArchivistError('get', `${error.statusText} [${error.status}]`);
23
+ }
24
+ if (response?.error?.length) {
25
+ throw new RemoteArchivistError('get', response?.error);
27
26
  }
28
27
  return payloads?.pop() ?? null;
29
28
  }
30
29
  catch (ex) {
31
- console.warn(`Error: ${JSON.stringify(ex, null, 2)}`);
32
- throw new RemoteArchivistError('get', ex, 'unexpected');
30
+ console.error(ex);
31
+ throw ex;
33
32
  }
34
33
  }));
35
34
  }
@@ -44,16 +43,20 @@ export class XyoRemoteArchivist extends XyoArchivist {
44
43
  });
45
44
  });
46
45
  const [boundwitness] = await this.bindPayloads(payloads);
47
- const result = await this.api.archive(this.archive).block.post([boundwitness], 'tuple');
48
- const [, { error }] = result;
49
- if (error?.length) {
50
- throw new RemoteArchivistError('insert', error);
46
+ const bwWithMeta = { ...boundwitness, _payloads: payloads };
47
+ const bwResult = await this.api.archive(this.archive).block.post([bwWithMeta], 'tuple');
48
+ const [, response, error] = bwResult;
49
+ if (error?.status >= 400) {
50
+ throw new RemoteArchivistError('insert', `${error.statusText} [${error.status}]`);
51
+ }
52
+ if (response?.error?.length) {
53
+ throw new RemoteArchivistError('insert', response?.error);
51
54
  }
52
55
  return boundwitness;
53
56
  }
54
57
  catch (ex) {
55
- console.warn(`Error: ${JSON.stringify(ex, null, 2)}`);
56
- throw new RemoteArchivistError('insert', ex, 'unexpected');
58
+ console.error(ex);
59
+ throw ex;
57
60
  }
58
61
  }
59
62
  async find(filter) {
@@ -62,15 +65,18 @@ export class XyoRemoteArchivist extends XyoArchivist {
62
65
  if (payloadError?.length) {
63
66
  throw new RemoteArchivistError('find', payloadError, 'payloads');
64
67
  }
65
- const [blocks = [], { error: blockError }] = await this.api.archive(this.archive).block.find(filter, 'tuple');
66
- if (blockError?.length) {
67
- throw new RemoteArchivistError('find', blockError, 'blocks');
68
+ const [blocks = [], response, error] = await this.api.archive(this.archive).block.find(filter, 'tuple');
69
+ if (error?.status >= 400) {
70
+ throw new RemoteArchivistError('find', `${error.statusText} [${error.status}]`);
71
+ }
72
+ if (response?.error?.length) {
73
+ throw new RemoteArchivistError('find', response?.error);
68
74
  }
69
75
  return payloads.concat(blocks);
70
76
  }
71
77
  catch (ex) {
72
- console.warn(`Error: ${JSON.stringify(ex, null, 2)}`);
73
- throw new RemoteArchivistError('find', ex, 'unexpected');
78
+ console.error(ex);
79
+ throw ex;
74
80
  }
75
81
  }
76
82
  }
@@ -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,12 +10,12 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@xylabs/sdk-js": "^2.6.7",
13
- "@xyo-network/account": "^2.33.0-rc.5",
14
- "@xyo-network/archivist": "^2.33.0-rc.5",
15
- "@xyo-network/boundwitness": "^2.33.0-rc.5",
16
- "@xyo-network/core": "^2.33.0-rc.5",
17
- "@xyo-network/payload": "^2.33.0-rc.5",
18
- "@xyo-network/schema-payload-plugin": "^2.33.0-rc.5",
13
+ "@xyo-network/account": "^2.33.0-rc.7",
14
+ "@xyo-network/archivist": "^2.33.0-rc.7",
15
+ "@xyo-network/boundwitness": "^2.33.0-rc.7",
16
+ "@xyo-network/core": "^2.33.0-rc.7",
17
+ "@xyo-network/payload": "^2.33.0-rc.7",
18
+ "@xyo-network/schema-payload-plugin": "^2.33.0-rc.7",
19
19
  "axios": "^0.27.2",
20
20
  "pako": "^2.0.4",
21
21
  "tslib": "^2.4.0"
@@ -57,6 +57,6 @@
57
57
  },
58
58
  "sideEffects": false,
59
59
  "types": "dist/esm/index.d.ts",
60
- "version": "2.33.0-rc.5",
60
+ "version": "2.33.0-rc.7",
61
61
  "stableVersion": "2.32.1"
62
62
  }
@@ -0,0 +1,9 @@
1
+ export class RemoteArchivistError extends Error {
2
+ constructor(action: string, error: Error['cause'], message?: string) {
3
+ super(`Remote Archivist [${action}] failed${message ? ` (${message})` : ''}`, { cause: error })
4
+ }
5
+ isRemoteArchivistError = true
6
+ static isRemoteArchivistError(error: unknown): RemoteArchivistError | undefined {
7
+ return (error as RemoteArchivistError).isRemoteArchivistError ? (error as RemoteArchivistError) : undefined
8
+ }
9
+ }
@@ -1,3 +1,5 @@
1
+ import { XyoPayloadWrapper } from '@xyo-network/payload'
2
+
1
3
  import { XyoApiConfig } from '../models'
2
4
  import { XyoArchivistApi } from './Api'
3
5
  import { XyoRemoteArchivist } from './XyoRemoteArchivist'
@@ -14,10 +16,13 @@ test('XyoRemoteArchivist', async () => {
14
16
  const api = new XyoArchivistApi(configData)
15
17
  const archivist = new XyoRemoteArchivist({ api, schema: XyoRemoteArchivistConfigSchema })
16
18
  const payload = {
17
- salt: 'test',
19
+ salt: `${Math.random() * 10000}`,
18
20
  schema: 'network.xyo.id',
19
21
  }
20
22
  const result = await archivist.insert([payload])
21
- console.log(`Result: ${JSON.stringify(result)}`)
22
23
  expect(result.payload_hashes.length).toBe(1)
24
+ const getResult = await archivist.get([new XyoPayloadWrapper(payload).hash])
25
+ console.log(`getResult: ${JSON.stringify(getResult)}`)
26
+ expect(getResult.length).toBe(1)
27
+ expect(getResult[0]?.schema).toBe(payload.schema)
23
28
  })
@@ -1,16 +1,11 @@
1
1
  import { assertEx } from '@xylabs/sdk-js'
2
2
  import { XyoArchivist, XyoArchivistFindQuerySchema, XyoPayloadFindFilter } from '@xyo-network/archivist'
3
- import { XyoBoundWitness, XyoBoundWitnessSchema, XyoBoundWitnessWithPartialMeta } from '@xyo-network/boundwitness'
3
+ import { XyoBoundWitness, XyoBoundWitnessSchema, XyoBoundWitnessWithMeta, XyoBoundWitnessWithPartialMeta } from '@xyo-network/boundwitness'
4
4
  import { XyoPayload, XyoPayloadWrapper } from '@xyo-network/payload'
5
5
 
6
+ import { RemoteArchivistError } from './RemoteArchivistError'
6
7
  import { XyoRemoteArchivistConfig } from './XyoRemoteArchivistConfig'
7
8
 
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
-
14
9
  /** @description Archivist Context that connects to a remote archivist using the API */
15
10
  export class XyoRemoteArchivist extends XyoArchivist<XyoRemoteArchivistConfig> {
16
11
  public get api() {
@@ -29,14 +24,17 @@ export class XyoRemoteArchivist extends XyoArchivist<XyoRemoteArchivistConfig> {
29
24
  return await Promise.all(
30
25
  hashes.map(async (hash) => {
31
26
  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)
27
+ const [payloads, response, error] = await this.api.archive(this.archive).payload.hash(hash).get('tuple')
28
+ if (error?.status >= 400) {
29
+ throw new RemoteArchivistError('get', `${error.statusText} [${error.status}]`)
30
+ }
31
+ if (response?.error?.length) {
32
+ throw new RemoteArchivistError('get', response?.error)
35
33
  }
36
34
  return payloads?.pop() ?? null
37
35
  } catch (ex) {
38
- console.warn(`Error: ${JSON.stringify(ex, null, 2)}`)
39
- throw new RemoteArchivistError('get', ex, 'unexpected')
36
+ console.error(ex)
37
+ throw ex
40
38
  }
41
39
  }),
42
40
  )
@@ -53,15 +51,19 @@ export class XyoRemoteArchivist extends XyoArchivist<XyoRemoteArchivistConfig> {
53
51
  })
54
52
  })
55
53
  const [boundwitness] = await this.bindPayloads(payloads)
56
- const result = await this.api.archive(this.archive).block.post([boundwitness], 'tuple')
57
- const [, { error }] = result
58
- if (error?.length) {
59
- throw new RemoteArchivistError('insert', error)
54
+ const bwWithMeta: Partial<XyoBoundWitnessWithMeta> & XyoBoundWitness = { ...boundwitness, _payloads: payloads }
55
+ const bwResult = await this.api.archive(this.archive).block.post([bwWithMeta], 'tuple')
56
+ const [, response, error] = bwResult
57
+ if (error?.status >= 400) {
58
+ throw new RemoteArchivistError('insert', `${error.statusText} [${error.status}]`)
59
+ }
60
+ if (response?.error?.length) {
61
+ throw new RemoteArchivistError('insert', response?.error)
60
62
  }
61
63
  return boundwitness
62
64
  } catch (ex) {
63
- console.warn(`Error: ${JSON.stringify(ex, null, 2)}`)
64
- throw new RemoteArchivistError('insert', ex, 'unexpected')
65
+ console.error(ex)
66
+ throw ex
65
67
  }
66
68
  }
67
69
 
@@ -71,14 +73,17 @@ export class XyoRemoteArchivist extends XyoArchivist<XyoRemoteArchivistConfig> {
71
73
  if (payloadError?.length) {
72
74
  throw new RemoteArchivistError('find', payloadError, 'payloads')
73
75
  }
74
- const [blocks = [], { error: blockError }] = await this.api.archive(this.archive).block.find(filter, 'tuple')
75
- if (blockError?.length) {
76
- throw new RemoteArchivistError('find', blockError, 'blocks')
76
+ const [blocks = [], response, error] = await this.api.archive(this.archive).block.find(filter, 'tuple')
77
+ if (error?.status >= 400) {
78
+ throw new RemoteArchivistError('find', `${error.statusText} [${error.status}]`)
79
+ }
80
+ if (response?.error?.length) {
81
+ throw new RemoteArchivistError('find', response?.error)
77
82
  }
78
83
  return payloads.concat(blocks) as R[]
79
84
  } catch (ex) {
80
- console.warn(`Error: ${JSON.stringify(ex, null, 2)}`)
81
- throw new RemoteArchivistError('find', ex, 'unexpected')
85
+ console.error(ex)
86
+ throw ex
82
87
  }
83
88
  }
84
89
  }