@xyo-network/api 2.22.3 → 2.22.6

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.
Files changed (40) hide show
  1. package/dist/cjs/Archivist/Account/Api.d.ts +2 -2
  2. package/dist/cjs/Archivist/Api.d.ts +2 -2
  3. package/dist/cjs/Archivist/Archive/Settings/Key/Api.d.ts +1 -1
  4. package/dist/cjs/Archivist/Payload/Schema/Api.d.ts +1 -1
  5. package/dist/cjs/Archivist/XyoApiArchivist.d.ts +5 -5
  6. package/dist/cjs/Archivist/XyoApiArchivist.js +24 -5
  7. package/dist/cjs/Archivist/XyoApiArchivist.js.map +1 -1
  8. package/dist/cjs/Archivist/XyoRemoteArchivist.d.ts +12 -0
  9. package/dist/cjs/Archivist/XyoRemoteArchivist.js +54 -0
  10. package/dist/cjs/Archivist/XyoRemoteArchivist.js.map +1 -0
  11. package/dist/cjs/Archivist/index.d.ts +1 -1
  12. package/dist/cjs/Archivist/index.js +1 -1
  13. package/dist/cjs/Archivist/index.js.map +1 -1
  14. package/dist/cjs/Simple.d.ts +3 -2
  15. package/dist/cjs/Simple.js.map +1 -1
  16. package/dist/cjs/User/Api.d.ts +2 -2
  17. package/dist/esm/Archivist/Account/Api.d.ts +2 -2
  18. package/dist/esm/Archivist/Api.d.ts +2 -2
  19. package/dist/esm/Archivist/Archive/Settings/Key/Api.d.ts +1 -1
  20. package/dist/esm/Archivist/Payload/Schema/Api.d.ts +1 -1
  21. package/dist/esm/Archivist/XyoApiArchivist.d.ts +5 -5
  22. package/dist/esm/Archivist/XyoApiArchivist.js +25 -5
  23. package/dist/esm/Archivist/XyoApiArchivist.js.map +1 -1
  24. package/dist/esm/Archivist/XyoRemoteArchivist.d.ts +12 -0
  25. package/dist/esm/Archivist/XyoRemoteArchivist.js +42 -0
  26. package/dist/esm/Archivist/XyoRemoteArchivist.js.map +1 -0
  27. package/dist/esm/Archivist/index.d.ts +1 -1
  28. package/dist/esm/Archivist/index.js +1 -1
  29. package/dist/esm/Archivist/index.js.map +1 -1
  30. package/dist/esm/Simple.d.ts +3 -2
  31. package/dist/esm/Simple.js.map +1 -1
  32. package/dist/esm/User/Api.d.ts +2 -2
  33. package/package.json +7 -7
  34. package/src/Archivist/Api.spec.ts +1 -1
  35. package/src/Archivist/ApiUtil.spec.ts +1 -2
  36. package/src/Archivist/Payload/Api.spec.ts +2 -2
  37. package/src/Archivist/XyoRemoteArchivist.ts +51 -0
  38. package/src/Archivist/index.ts +1 -1
  39. package/src/Simple.ts +3 -2
  40. package/src/Archivist/XyoApiArchivist.ts +0 -31
@@ -13,6 +13,6 @@ export interface XyoAccountVerify {
13
13
  token?: string;
14
14
  }
15
15
  export declare class XyoAccountApi extends XyoApiBase {
16
- get challenge(): XyoApiSimple<XyoAccountChallenge, XyoAccountChallenge, Record<string, never>, import("../../models/Api/Config").XyoApiConfig>;
17
- get verify(): XyoApiSimple<XyoAccountVerify, XyoAccountVerify, Record<string, never>, import("../../models/Api/Config").XyoApiConfig>;
16
+ get challenge(): XyoApiSimple<XyoAccountChallenge, XyoAccountChallenge, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../../models/Api/Config").XyoApiConfig>;
17
+ get verify(): XyoApiSimple<XyoAccountVerify, XyoAccountVerify, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../../models/Api/Config").XyoApiConfig>;
18
18
  }
@@ -13,14 +13,14 @@ export declare class XyoArchivistApi extends XyoApiBase {
13
13
  private _archives?;
14
14
  get archives(): XyoArchivistArchivesApi;
15
15
  private _stats?;
16
- get stats(): XyoApiSimple<unknown[], unknown[], Record<string, never>, import("../models/Api/Config").XyoApiConfig>;
16
+ get stats(): XyoApiSimple<unknown[], unknown[], import("@xyo-network/archivist").XyoPayloadFindFilter, import("../models/Api/Config").XyoApiConfig>;
17
17
  private _user?;
18
18
  get user(): XyoUserApi;
19
19
  archive(archive?: string): XyoArchivistArchiveApi;
20
20
  /** @deprecated use account instead */
21
21
  wallet(address: XyoDataLike): XyoAccountApi;
22
22
  account(address: XyoDataLike): XyoAccountApi;
23
- huri(huri: Huri | string): XyoApiSimple<import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/payload").XyoPayloadBase, Record<string, never>, import("../models/Api/Config").XyoApiConfig>;
23
+ huri(huri: Huri | string): XyoApiSimple<import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../models/Api/Config").XyoApiConfig>;
24
24
  /**
25
25
  * Issues commands/queries as XyoBoundWitness wrapped XyoPayloads against a Node in the network
26
26
  * @param archive Optional, the archive to issue the requests against
@@ -1,5 +1,5 @@
1
1
  import { XyoArchiveKey } from '../../../../models';
2
2
  import { XyoApiSimple } from '../../../../Simple';
3
3
  export declare class XyoArchivistArchiveSettingsKeyApi extends XyoApiSimple<XyoArchiveKey[]> {
4
- key(key: string): XyoApiSimple<XyoArchiveKey, XyoArchiveKey, Record<string, never>, import("../../../../models/Api/Config").XyoApiConfig>;
4
+ key(key: string): XyoApiSimple<XyoArchiveKey, XyoArchiveKey, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../../../../models/Api/Config").XyoApiConfig>;
5
5
  }
@@ -4,5 +4,5 @@ export interface XyoArchivistArchivePayloadSchemaStats {
4
4
  }
5
5
  export declare class XyoArchivistArchivePayloadSchemaApi extends XyoApiSimple<string[]> {
6
6
  private _stats?;
7
- get stats(): XyoApiSimple<XyoArchivistArchivePayloadSchemaStats, XyoArchivistArchivePayloadSchemaStats, Record<string, never>, import("../../../models/Api/Config").XyoApiConfig>;
7
+ get stats(): XyoApiSimple<XyoArchivistArchivePayloadSchemaStats, XyoArchivistArchivePayloadSchemaStats, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../../../models/Api/Config").XyoApiConfig>;
8
8
  }
@@ -1,12 +1,12 @@
1
1
  import { XyoAccount } from '@xyo-network/account';
2
- import { XyoArchivist, XyoBoundWitnessArchivist, XyoPayloadFindFilter } from '@xyo-network/archivist';
3
- import { XyoBoundWitnessWithPartialMeta } from '@xyo-network/boundwitness';
2
+ import { XyoArchivist, XyoArchivistBase, XyoPayloadFindFilter } from '@xyo-network/archivist';
3
+ import { XyoPayload } from '@xyo-network/payload';
4
4
  import { XyoArchivistApi } from './Api';
5
- export declare class XyoApiArchivist extends XyoBoundWitnessArchivist {
5
+ export declare class XyoApiArchivist extends XyoArchivistBase {
6
6
  protected api: XyoArchivistApi;
7
7
  protected archive: string;
8
8
  constructor(api: XyoArchivistApi, archive: string, parent?: XyoArchivist, account?: XyoAccount);
9
- get(hash: string): Promise<import("@xyo-network/payload").XyoPayloadBase[] | undefined>;
10
- insert(payload: XyoBoundWitnessWithPartialMeta): Promise<string[]>;
9
+ get(hash: string): Promise<import("@xyo-network/payload").XyoPayloadBase | undefined>;
10
+ insert(payloads: XyoPayload[]): Promise<import("@xyo-network/payload").XyoPayloadBase[]>;
11
11
  find(filter: XyoPayloadFindFilter): Promise<import("@xyo-network/payload").XyoPayloadWithPartialMeta<import("@xyo-network/core").EmptyObject>[]>;
12
12
  }
@@ -4,7 +4,8 @@ exports.XyoApiArchivist = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const sdk_js_1 = require("@xylabs/sdk-js");
6
6
  const archivist_1 = require("@xyo-network/archivist");
7
- class XyoApiArchivist extends archivist_1.XyoBoundWitnessArchivist {
7
+ const payload_1 = require("@xyo-network/payload");
8
+ class XyoApiArchivist extends archivist_1.XyoArchivistBase {
8
9
  constructor(api, archive, parent, account) {
9
10
  super(parent, account);
10
11
  this.api = api;
@@ -13,13 +14,31 @@ class XyoApiArchivist extends archivist_1.XyoBoundWitnessArchivist {
13
14
  get(hash) {
14
15
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
16
  const [payloads] = yield this.api.archive(this.archive).payload.hash(hash).get('tuple');
16
- return payloads;
17
+ return payloads === null || payloads === void 0 ? void 0 : payloads.pop();
17
18
  });
18
19
  }
19
- insert(payload) {
20
- var _a, _b;
20
+ insert(payloads) {
21
21
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
22
- return (_b = (_a = (yield this.api.archive(this.archive).block.post([payload]))) === null || _a === void 0 ? void 0 : _a.map((value) => (0, sdk_js_1.assertEx)(value._hash))) !== null && _b !== void 0 ? _b : [];
22
+ const boundwitnesses = payloads.filter((payload) => payload.schema === 'network.xyo.payload');
23
+ boundwitnesses.forEach((boundwitness) => {
24
+ boundwitness._payloads ===
25
+ payloads.filter((payload) => {
26
+ const hash = new payload_1.XyoPayloadWrapper(payload).hash;
27
+ return boundwitness.payload_hashes.includes(hash);
28
+ });
29
+ });
30
+ payloads.forEach((payload) => {
31
+ let found = false;
32
+ const hash = new payload_1.XyoPayloadWrapper(payload).hash;
33
+ boundwitnesses.forEach((boundwitnesses) => {
34
+ if (boundwitnesses.payload_hashes.includes(hash)) {
35
+ found = true;
36
+ }
37
+ });
38
+ (0, sdk_js_1.assertEx)(found, 'Payload not in Boundwitness received');
39
+ });
40
+ yield this.api.archive(this.archive).block.post(boundwitnesses);
41
+ return payloads;
23
42
  });
24
43
  }
25
44
  find(filter) {
@@ -1 +1 @@
1
- {"version":3,"file":"XyoApiArchivist.js","sourceRoot":"","sources":["../../../src/Archivist/XyoApiArchivist.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AAEzC,sDAAqG;AAKrG,MAAa,eAAgB,SAAQ,oCAAwB;IAG3D,YAAY,GAAoB,EAAE,OAAe,EAAE,MAAqB,EAAE,OAAoB;QAC5F,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEY,GAAG,CAAC,IAAY;;YAC3B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACvF,OAAO,QAAQ,CAAA;QACjB,CAAC;KAAA;IAEY,MAAM,CAAC,OAAuC;;;YACzD,OAAO,MAAA,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,mCAAI,EAAE,CAAA;;KACjH;IAEY,IAAI,CAAC,MAA4B;;;YAC5C,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,mCAAI,EAAE,CAAA;YAClG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,mCAAI,EAAE,CAAA;YAC9F,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;;KAC/B;CACF;AAvBD,0CAuBC"}
1
+ {"version":3,"file":"XyoApiArchivist.js","sourceRoot":"","sources":["../../../src/Archivist/XyoApiArchivist.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AAEzC,sDAA6F;AAE7F,kDAAoE;AAIpE,MAAa,eAAgB,SAAQ,4BAAgB;IAGnD,YAAY,GAAoB,EAAE,OAAe,EAAE,MAAqB,EAAE,OAAoB;QAC5F,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEY,GAAG,CAAC,IAAY;;YAC3B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACvF,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,EAAE,CAAA;QACxB,CAAC;KAAA;IAEY,MAAM,CAAC,QAAsB;;YACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,qBAAqB,CAAqC,CAAA;YACjI,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;gBACtC,YAAY,CAAC,SAAS;oBACpB,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC1B,MAAM,IAAI,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;wBAChD,OAAO,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;oBACnD,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,IAAI,KAAK,GAAG,KAAK,CAAA;gBACjB,MAAM,IAAI,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;gBAChD,cAAc,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;oBACxC,IAAI,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;wBAChD,KAAK,GAAG,IAAI,CAAA;qBACb;gBACH,CAAC,CAAC,CAAA;gBACF,IAAA,iBAAQ,EAAC,KAAK,EAAE,sCAAsC,CAAC,CAAA;YACzD,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC/D,OAAO,QAAQ,CAAA;QACjB,CAAC;KAAA;IAEY,IAAI,CAAC,MAA4B;;;YAC5C,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,mCAAI,EAAE,CAAA;YAClG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,mCAAI,EAAE,CAAA;YAC9F,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;;KAC/B;CACF;AA1CD,0CA0CC"}
@@ -0,0 +1,12 @@
1
+ import { XyoAccount } from '@xyo-network/account';
2
+ import { XyoArchivist, XyoArchivistBase, XyoPayloadFindFilter } from '@xyo-network/archivist';
3
+ import { XyoPayload } from '@xyo-network/payload';
4
+ import { XyoArchivistApi } from './Api';
5
+ export declare class XyoRemoteArchivist extends XyoArchivistBase {
6
+ protected api: XyoArchivistApi;
7
+ protected archive: string;
8
+ constructor(api: XyoArchivistApi, archive: string, parent?: XyoArchivist, account?: XyoAccount);
9
+ get(hash: string): Promise<import("@xyo-network/payload").XyoPayloadBase | undefined>;
10
+ insert(payloads: XyoPayload[]): Promise<import("@xyo-network/payload").XyoPayloadBase[]>;
11
+ find(filter: XyoPayloadFindFilter): Promise<import("@xyo-network/payload").XyoPayloadWithPartialMeta<import("@xyo-network/core").EmptyObject>[]>;
12
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XyoRemoteArchivist = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const sdk_js_1 = require("@xylabs/sdk-js");
6
+ const archivist_1 = require("@xyo-network/archivist");
7
+ const payload_1 = require("@xyo-network/payload");
8
+ class XyoRemoteArchivist extends archivist_1.XyoArchivistBase {
9
+ constructor(api, archive, parent, account) {
10
+ super(parent, account);
11
+ this.api = api;
12
+ this.archive = archive;
13
+ }
14
+ get(hash) {
15
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
16
+ const [payloads] = yield this.api.archive(this.archive).payload.hash(hash).get('tuple');
17
+ return payloads === null || payloads === void 0 ? void 0 : payloads.pop();
18
+ });
19
+ }
20
+ insert(payloads) {
21
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ const boundwitnesses = payloads.filter((payload) => payload.schema === 'network.xyo.payload');
23
+ boundwitnesses.forEach((boundwitness) => {
24
+ boundwitness._payloads ===
25
+ payloads.filter((payload) => {
26
+ const hash = new payload_1.XyoPayloadWrapper(payload).hash;
27
+ return boundwitness.payload_hashes.includes(hash);
28
+ });
29
+ });
30
+ payloads.forEach((payload) => {
31
+ let found = false;
32
+ const hash = new payload_1.XyoPayloadWrapper(payload).hash;
33
+ boundwitnesses.forEach((boundwitnesses) => {
34
+ if (boundwitnesses.payload_hashes.includes(hash)) {
35
+ found = true;
36
+ }
37
+ });
38
+ (0, sdk_js_1.assertEx)(found, 'Payload not in Boundwitness received');
39
+ });
40
+ yield this.api.archive(this.archive).block.post(boundwitnesses);
41
+ return payloads;
42
+ });
43
+ }
44
+ find(filter) {
45
+ var _a, _b;
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ const [payloads = []] = (_a = (yield this.api.archive(this.archive).payload.find(filter, 'tuple'))) !== null && _a !== void 0 ? _a : [];
48
+ const [blocks = []] = (_b = (yield this.api.archive(this.archive).block.find(filter, 'tuple'))) !== null && _b !== void 0 ? _b : [];
49
+ return payloads.concat(blocks);
50
+ });
51
+ }
52
+ }
53
+ exports.XyoRemoteArchivist = XyoRemoteArchivist;
54
+ //# sourceMappingURL=XyoRemoteArchivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoRemoteArchivist.js","sourceRoot":"","sources":["../../../src/Archivist/XyoRemoteArchivist.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AAEzC,sDAA6F;AAE7F,kDAAoE;AAIpE,MAAa,kBAAmB,SAAQ,4BAAgB;IAGtD,YAAY,GAAoB,EAAE,OAAe,EAAE,MAAqB,EAAE,OAAoB;QAC5F,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEY,GAAG,CAAC,IAAY;;YAC3B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACvF,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,EAAE,CAAA;QACxB,CAAC;KAAA;IAEY,MAAM,CAAC,QAAsB;;YACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,qBAAqB,CAAqC,CAAA;YACjI,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;gBACtC,YAAY,CAAC,SAAS;oBACpB,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC1B,MAAM,IAAI,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;wBAChD,OAAO,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;oBACnD,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,IAAI,KAAK,GAAG,KAAK,CAAA;gBACjB,MAAM,IAAI,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;gBAChD,cAAc,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;oBACxC,IAAI,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;wBAChD,KAAK,GAAG,IAAI,CAAA;qBACb;gBACH,CAAC,CAAC,CAAA;gBACF,IAAA,iBAAQ,EAAC,KAAK,EAAE,sCAAsC,CAAC,CAAA;YACzD,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC/D,OAAO,QAAQ,CAAA;QACjB,CAAC;KAAA;IAEY,IAAI,CAAC,MAA4B;;;YAC5C,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,mCAAI,EAAE,CAAA;YAClG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,mCAAI,EAAE,CAAA;YAC9F,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;;KAC/B;CACF;AA1CD,gDA0CC"}
@@ -4,4 +4,4 @@ export * from './Archive';
4
4
  export * from './Archives';
5
5
  export * from './Block';
6
6
  export * from './Payload';
7
- export * from './XyoApiArchivist';
7
+ export * from './XyoRemoteArchivist';
@@ -7,5 +7,5 @@ tslib_1.__exportStar(require("./Archive"), exports);
7
7
  tslib_1.__exportStar(require("./Archives"), exports);
8
8
  tslib_1.__exportStar(require("./Block"), exports);
9
9
  tslib_1.__exportStar(require("./Payload"), exports);
10
- tslib_1.__exportStar(require("./XyoApiArchivist"), exports);
10
+ tslib_1.__exportStar(require("./XyoRemoteArchivist"), exports);
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Archivist/index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB;AACzB,gDAAqB;AACrB,oDAAyB;AACzB,qDAA0B;AAC1B,kDAAuB;AACvB,oDAAyB;AACzB,4DAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Archivist/index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB;AACzB,gDAAqB;AACrB,oDAAyB;AACzB,qDAA0B;AAC1B,kDAAuB;AACvB,oDAAyB;AACzB,+DAAoC"}
@@ -1,8 +1,9 @@
1
+ import { XyoPayloadFindFilter } from '@xyo-network/archivist';
1
2
  import { XyoPayload } from '@xyo-network/payload';
2
3
  import { XyoApiBase } from './Base';
3
4
  import { XyoApiConfig, XyoApiResponseBody, XyoApiResponseTuple } from './models';
4
- export declare type XyoApiSimpleQuery = Record<string, unknown>;
5
- export declare class XyoApiSimple<T = XyoPayload, D = T, Q extends XyoApiSimpleQuery = Record<string, never>, C extends XyoApiConfig = XyoApiConfig> extends XyoApiBase<C> {
5
+ export declare type XyoApiSimpleQuery = XyoPayloadFindFilter;
6
+ export declare class XyoApiSimple<T = XyoPayload, D = T, Q extends XyoApiSimpleQuery = XyoApiSimpleQuery, C extends XyoApiConfig = XyoApiConfig> extends XyoApiBase<C> {
6
7
  get(): Promise<XyoApiResponseBody<T>>;
7
8
  get(responseType?: 'body'): Promise<XyoApiResponseBody<T>>;
8
9
  get(responseType?: 'tuple'): Promise<XyoApiResponseTuple<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Simple.js","sourceRoot":"","sources":["../../src/Simple.ts"],"names":[],"mappings":";;;;AAEA,iCAAmC;AAEnC,6CAAyC;AAIzC,MAAa,YAAgI,SAAQ,iBAAa;IAInJ,GAAG,CAAC,YAAiC;;YAChD,QAAQ,YAAY,EAAE;gBACpB,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;gBACnD;oBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;aAC3C;QACH,CAAC;KAAA;IAKY,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,YAAiC;;YAC7D,QAAQ,YAAY,EAAE;gBACpB,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,IAAA,uBAAU,EAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;gBAC3D;oBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC,CAAA;aACnD;QACH,CAAC;KAAA;IAKY,IAAI,CAAC,IAAQ,EAAE,YAAiC;;YAC3D,QAAQ,YAAY,EAAE;gBACpB,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;gBAC1D;oBACE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;aAClD;QACH,CAAC;KAAA;IAKY,GAAG,CAAC,IAAQ,EAAE,YAAiC;;YAC1D,QAAQ,YAAY,EAAE;gBACpB,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;gBACzD;oBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;aACjD;QACH,CAAC;KAAA;IAKY,MAAM,CAAC,YAAiC;;YACnD,QAAQ,YAAY,EAAE;gBACpB,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;gBACtD;oBACE,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;aAC9C;QACH,CAAC;KAAA;CACF;AA5DD,oCA4DC"}
1
+ {"version":3,"file":"Simple.js","sourceRoot":"","sources":["../../src/Simple.ts"],"names":[],"mappings":";;;;AAGA,iCAAmC;AAEnC,6CAAyC;AAIzC,MAAa,YAA4H,SAAQ,iBAAa;IAI/I,GAAG,CAAC,YAAiC;;YAChD,QAAQ,YAAY,EAAE;gBACpB,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;gBACnD;oBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;aAC3C;QACH,CAAC;KAAA;IAKY,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,YAAiC;;YAC7D,QAAQ,YAAY,EAAE;gBACpB,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,IAAA,uBAAU,EAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;gBAC3D;oBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC,CAAA;aACnD;QACH,CAAC;KAAA;IAKY,IAAI,CAAC,IAAQ,EAAE,YAAiC;;YAC3D,QAAQ,YAAY,EAAE;gBACpB,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;gBAC1D;oBACE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;aAClD;QACH,CAAC;KAAA;IAKY,GAAG,CAAC,IAAQ,EAAE,YAAiC;;YAC1D,QAAQ,YAAY,EAAE;gBACpB,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;gBACzD;oBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;aACjD;QACH,CAAC;KAAA;IAKY,MAAM,CAAC,YAAiC;;YACnD,QAAQ,YAAY,EAAE;gBACpB,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;gBACtD;oBACE,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;aAC9C;QACH,CAAC;KAAA;CACF;AA5DD,oCA4DC"}
@@ -11,8 +11,8 @@ export interface XyoUserLogin {
11
11
  export declare class XyoUserApi extends XyoApiBase {
12
12
  get authenticated(): boolean;
13
13
  get headers(): Record<string, string>;
14
- get login(): XyoApiSimple<XyoUserLogin, XyoUserLogin, Record<string, never>, import("../models/Api/Config").XyoApiConfig>;
15
- get profile(): XyoApiSimple<import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/payload").XyoPayloadBase, Record<string, never>, {
14
+ get login(): XyoApiSimple<XyoUserLogin, XyoUserLogin, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../models/Api/Config").XyoApiConfig>;
15
+ get profile(): XyoApiSimple<import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/archivist").XyoPayloadFindFilter, {
16
16
  root: string;
17
17
  apiDomain: string; /** @field Password of the user [in] */
18
18
  userid?: string | undefined;
@@ -13,6 +13,6 @@ export interface XyoAccountVerify {
13
13
  token?: string;
14
14
  }
15
15
  export declare class XyoAccountApi extends XyoApiBase {
16
- get challenge(): XyoApiSimple<XyoAccountChallenge, XyoAccountChallenge, Record<string, never>, import("../../models/Api/Config").XyoApiConfig>;
17
- get verify(): XyoApiSimple<XyoAccountVerify, XyoAccountVerify, Record<string, never>, import("../../models/Api/Config").XyoApiConfig>;
16
+ get challenge(): XyoApiSimple<XyoAccountChallenge, XyoAccountChallenge, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../../models/Api/Config").XyoApiConfig>;
17
+ get verify(): XyoApiSimple<XyoAccountVerify, XyoAccountVerify, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../../models/Api/Config").XyoApiConfig>;
18
18
  }
@@ -13,14 +13,14 @@ export declare class XyoArchivistApi extends XyoApiBase {
13
13
  private _archives?;
14
14
  get archives(): XyoArchivistArchivesApi;
15
15
  private _stats?;
16
- get stats(): XyoApiSimple<unknown[], unknown[], Record<string, never>, import("../models/Api/Config").XyoApiConfig>;
16
+ get stats(): XyoApiSimple<unknown[], unknown[], import("@xyo-network/archivist").XyoPayloadFindFilter, import("../models/Api/Config").XyoApiConfig>;
17
17
  private _user?;
18
18
  get user(): XyoUserApi;
19
19
  archive(archive?: string): XyoArchivistArchiveApi;
20
20
  /** @deprecated use account instead */
21
21
  wallet(address: XyoDataLike): XyoAccountApi;
22
22
  account(address: XyoDataLike): XyoAccountApi;
23
- huri(huri: Huri | string): XyoApiSimple<import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/payload").XyoPayloadBase, Record<string, never>, import("../models/Api/Config").XyoApiConfig>;
23
+ huri(huri: Huri | string): XyoApiSimple<import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../models/Api/Config").XyoApiConfig>;
24
24
  /**
25
25
  * Issues commands/queries as XyoBoundWitness wrapped XyoPayloads against a Node in the network
26
26
  * @param archive Optional, the archive to issue the requests against
@@ -1,5 +1,5 @@
1
1
  import { XyoArchiveKey } from '../../../../models';
2
2
  import { XyoApiSimple } from '../../../../Simple';
3
3
  export declare class XyoArchivistArchiveSettingsKeyApi extends XyoApiSimple<XyoArchiveKey[]> {
4
- key(key: string): XyoApiSimple<XyoArchiveKey, XyoArchiveKey, Record<string, never>, import("../../../../models/Api/Config").XyoApiConfig>;
4
+ key(key: string): XyoApiSimple<XyoArchiveKey, XyoArchiveKey, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../../../../models/Api/Config").XyoApiConfig>;
5
5
  }
@@ -4,5 +4,5 @@ export interface XyoArchivistArchivePayloadSchemaStats {
4
4
  }
5
5
  export declare class XyoArchivistArchivePayloadSchemaApi extends XyoApiSimple<string[]> {
6
6
  private _stats?;
7
- get stats(): XyoApiSimple<XyoArchivistArchivePayloadSchemaStats, XyoArchivistArchivePayloadSchemaStats, Record<string, never>, import("../../../models/Api/Config").XyoApiConfig>;
7
+ get stats(): XyoApiSimple<XyoArchivistArchivePayloadSchemaStats, XyoArchivistArchivePayloadSchemaStats, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../../../models/Api/Config").XyoApiConfig>;
8
8
  }
@@ -1,12 +1,12 @@
1
1
  import { XyoAccount } from '@xyo-network/account';
2
- import { XyoArchivist, XyoBoundWitnessArchivist, XyoPayloadFindFilter } from '@xyo-network/archivist';
3
- import { XyoBoundWitnessWithPartialMeta } from '@xyo-network/boundwitness';
2
+ import { XyoArchivist, XyoArchivistBase, XyoPayloadFindFilter } from '@xyo-network/archivist';
3
+ import { XyoPayload } from '@xyo-network/payload';
4
4
  import { XyoArchivistApi } from './Api';
5
- export declare class XyoApiArchivist extends XyoBoundWitnessArchivist {
5
+ export declare class XyoApiArchivist extends XyoArchivistBase {
6
6
  protected api: XyoArchivistApi;
7
7
  protected archive: string;
8
8
  constructor(api: XyoArchivistApi, archive: string, parent?: XyoArchivist, account?: XyoAccount);
9
- get(hash: string): Promise<import("@xyo-network/payload").XyoPayloadBase[] | undefined>;
10
- insert(payload: XyoBoundWitnessWithPartialMeta): Promise<string[]>;
9
+ get(hash: string): Promise<import("@xyo-network/payload").XyoPayloadBase | undefined>;
10
+ insert(payloads: XyoPayload[]): Promise<import("@xyo-network/payload").XyoPayloadBase[]>;
11
11
  find(filter: XyoPayloadFindFilter): Promise<import("@xyo-network/payload").XyoPayloadWithPartialMeta<import("@xyo-network/core").EmptyObject>[]>;
12
12
  }
@@ -1,6 +1,7 @@
1
1
  import { assertEx } from '@xylabs/sdk-js';
2
- import { XyoBoundWitnessArchivist } from '@xyo-network/archivist';
3
- export class XyoApiArchivist extends XyoBoundWitnessArchivist {
2
+ import { XyoArchivistBase } from '@xyo-network/archivist';
3
+ import { XyoPayloadWrapper } from '@xyo-network/payload';
4
+ export class XyoApiArchivist extends XyoArchivistBase {
4
5
  constructor(api, archive, parent, account) {
5
6
  super(parent, account);
6
7
  this.api = api;
@@ -8,10 +9,29 @@ export class XyoApiArchivist extends XyoBoundWitnessArchivist {
8
9
  }
9
10
  async get(hash) {
10
11
  const [payloads] = await this.api.archive(this.archive).payload.hash(hash).get('tuple');
11
- return payloads;
12
+ return payloads?.pop();
12
13
  }
13
- async insert(payload) {
14
- return (await this.api.archive(this.archive).block.post([payload]))?.map((value) => assertEx(value._hash)) ?? [];
14
+ async insert(payloads) {
15
+ const boundwitnesses = payloads.filter((payload) => payload.schema === 'network.xyo.payload');
16
+ boundwitnesses.forEach((boundwitness) => {
17
+ boundwitness._payloads ===
18
+ payloads.filter((payload) => {
19
+ const hash = new XyoPayloadWrapper(payload).hash;
20
+ return boundwitness.payload_hashes.includes(hash);
21
+ });
22
+ });
23
+ payloads.forEach((payload) => {
24
+ let found = false;
25
+ const hash = new XyoPayloadWrapper(payload).hash;
26
+ boundwitnesses.forEach((boundwitnesses) => {
27
+ if (boundwitnesses.payload_hashes.includes(hash)) {
28
+ found = true;
29
+ }
30
+ });
31
+ assertEx(found, 'Payload not in Boundwitness received');
32
+ });
33
+ await this.api.archive(this.archive).block.post(boundwitnesses);
34
+ return payloads;
15
35
  }
16
36
  async find(filter) {
17
37
  const [payloads = []] = (await this.api.archive(this.archive).payload.find(filter, 'tuple')) ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"XyoApiArchivist.js","sourceRoot":"","sources":["../../../src/Archivist/XyoApiArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAgB,wBAAwB,EAAwB,MAAM,wBAAwB,CAAA;AAKrG,MAAM,OAAO,eAAgB,SAAQ,wBAAwB;IAG3D,YAAY,GAAoB,EAAE,OAAe,EAAE,MAAqB,EAAE,OAAoB;QAC5F,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QAC3B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvF,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAAuC;QACzD,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IAClH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAA4B;QAC5C,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QAClG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QAC9F,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"XyoApiArchivist.js","sourceRoot":"","sources":["../../../src/Archivist/XyoApiArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAgB,gBAAgB,EAAwB,MAAM,wBAAwB,CAAA;AAE7F,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAIpE,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IAGnD,YAAY,GAAoB,EAAE,OAAe,EAAE,MAAqB,EAAE,OAAoB;QAC5F,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QAC3B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvF,OAAO,QAAQ,EAAE,GAAG,EAAE,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,QAAsB;QACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,qBAAqB,CAAqC,CAAA;QACjI,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YACtC,YAAY,CAAC,SAAS;gBACpB,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;oBAChD,OAAO,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACnD,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QACF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;YAChD,cAAc,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;gBACxC,IAAI,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAChD,KAAK,GAAG,IAAI,CAAA;iBACb;YACH,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC/D,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAA4B;QAC5C,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QAClG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QAC9F,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { XyoAccount } from '@xyo-network/account';
2
+ import { XyoArchivist, XyoArchivistBase, XyoPayloadFindFilter } from '@xyo-network/archivist';
3
+ import { XyoPayload } from '@xyo-network/payload';
4
+ import { XyoArchivistApi } from './Api';
5
+ export declare class XyoRemoteArchivist extends XyoArchivistBase {
6
+ protected api: XyoArchivistApi;
7
+ protected archive: string;
8
+ constructor(api: XyoArchivistApi, archive: string, parent?: XyoArchivist, account?: XyoAccount);
9
+ get(hash: string): Promise<import("@xyo-network/payload").XyoPayloadBase | undefined>;
10
+ insert(payloads: XyoPayload[]): Promise<import("@xyo-network/payload").XyoPayloadBase[]>;
11
+ find(filter: XyoPayloadFindFilter): Promise<import("@xyo-network/payload").XyoPayloadWithPartialMeta<import("@xyo-network/core").EmptyObject>[]>;
12
+ }
@@ -0,0 +1,42 @@
1
+ import { assertEx } from '@xylabs/sdk-js';
2
+ import { XyoArchivistBase } from '@xyo-network/archivist';
3
+ import { XyoPayloadWrapper } from '@xyo-network/payload';
4
+ export class XyoRemoteArchivist extends XyoArchivistBase {
5
+ constructor(api, archive, parent, account) {
6
+ super(parent, account);
7
+ this.api = api;
8
+ this.archive = archive;
9
+ }
10
+ async get(hash) {
11
+ const [payloads] = await this.api.archive(this.archive).payload.hash(hash).get('tuple');
12
+ return payloads?.pop();
13
+ }
14
+ async insert(payloads) {
15
+ const boundwitnesses = payloads.filter((payload) => payload.schema === 'network.xyo.payload');
16
+ boundwitnesses.forEach((boundwitness) => {
17
+ boundwitness._payloads ===
18
+ payloads.filter((payload) => {
19
+ const hash = new XyoPayloadWrapper(payload).hash;
20
+ return boundwitness.payload_hashes.includes(hash);
21
+ });
22
+ });
23
+ payloads.forEach((payload) => {
24
+ let found = false;
25
+ const hash = new XyoPayloadWrapper(payload).hash;
26
+ boundwitnesses.forEach((boundwitnesses) => {
27
+ if (boundwitnesses.payload_hashes.includes(hash)) {
28
+ found = true;
29
+ }
30
+ });
31
+ assertEx(found, 'Payload not in Boundwitness received');
32
+ });
33
+ await this.api.archive(this.archive).block.post(boundwitnesses);
34
+ return payloads;
35
+ }
36
+ async find(filter) {
37
+ const [payloads = []] = (await this.api.archive(this.archive).payload.find(filter, 'tuple')) ?? [];
38
+ const [blocks = []] = (await this.api.archive(this.archive).block.find(filter, 'tuple')) ?? [];
39
+ return payloads.concat(blocks);
40
+ }
41
+ }
42
+ //# sourceMappingURL=XyoRemoteArchivist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoRemoteArchivist.js","sourceRoot":"","sources":["../../../src/Archivist/XyoRemoteArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAgB,gBAAgB,EAAwB,MAAM,wBAAwB,CAAA;AAE7F,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAIpE,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IAGtD,YAAY,GAAoB,EAAE,OAAe,EAAE,MAAqB,EAAE,OAAoB;QAC5F,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QAC3B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvF,OAAO,QAAQ,EAAE,GAAG,EAAE,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,QAAsB;QACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,qBAAqB,CAAqC,CAAA;QACjI,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YACtC,YAAY,CAAC,SAAS;gBACpB,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;oBAChD,OAAO,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACnD,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QACF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;YAChD,cAAc,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;gBACxC,IAAI,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAChD,KAAK,GAAG,IAAI,CAAA;iBACb;YACH,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC/D,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAA4B;QAC5C,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QAClG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QAC9F,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;CACF"}
@@ -4,4 +4,4 @@ export * from './Archive';
4
4
  export * from './Archives';
5
5
  export * from './Block';
6
6
  export * from './Payload';
7
- export * from './XyoApiArchivist';
7
+ export * from './XyoRemoteArchivist';
@@ -4,5 +4,5 @@ export * from './Archive';
4
4
  export * from './Archives';
5
5
  export * from './Block';
6
6
  export * from './Payload';
7
- export * from './XyoApiArchivist';
7
+ export * from './XyoRemoteArchivist';
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Archivist/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Archivist/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA"}
@@ -1,8 +1,9 @@
1
+ import { XyoPayloadFindFilter } from '@xyo-network/archivist';
1
2
  import { XyoPayload } from '@xyo-network/payload';
2
3
  import { XyoApiBase } from './Base';
3
4
  import { XyoApiConfig, XyoApiResponseBody, XyoApiResponseTuple } from './models';
4
- export declare type XyoApiSimpleQuery = Record<string, unknown>;
5
- export declare class XyoApiSimple<T = XyoPayload, D = T, Q extends XyoApiSimpleQuery = Record<string, never>, C extends XyoApiConfig = XyoApiConfig> extends XyoApiBase<C> {
5
+ export declare type XyoApiSimpleQuery = XyoPayloadFindFilter;
6
+ export declare class XyoApiSimple<T = XyoPayload, D = T, Q extends XyoApiSimpleQuery = XyoApiSimpleQuery, C extends XyoApiConfig = XyoApiConfig> extends XyoApiBase<C> {
6
7
  get(): Promise<XyoApiResponseBody<T>>;
7
8
  get(responseType?: 'body'): Promise<XyoApiResponseBody<T>>;
8
9
  get(responseType?: 'tuple'): Promise<XyoApiResponseTuple<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Simple.js","sourceRoot":"","sources":["../../src/Simple.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAIzC,MAAM,OAAO,YAAgI,SAAQ,UAAa;IAIzJ,KAAK,CAAC,GAAG,CAAC,YAAiC;QAChD,QAAQ,YAAY,EAAE;YACpB,KAAK,OAAO;gBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACnD;gBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;SAC3C;IACH,CAAC;IAKM,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,YAAiC;QAC7D,QAAQ,YAAY,EAAE;YACpB,KAAK,OAAO;gBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;YAC3D;gBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;SACnD;IACH,CAAC;IAKM,KAAK,CAAC,IAAI,CAAC,IAAQ,EAAE,YAAiC;QAC3D,QAAQ,YAAY,EAAE;YACpB,KAAK,OAAO;gBACV,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YAC1D;gBACE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;SAClD;IACH,CAAC;IAKM,KAAK,CAAC,GAAG,CAAC,IAAQ,EAAE,YAAiC;QAC1D,QAAQ,YAAY,EAAE;YACpB,KAAK,OAAO;gBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YACzD;gBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;SACjD;IACH,CAAC;IAKM,KAAK,CAAC,MAAM,CAAC,YAAiC;QACnD,QAAQ,YAAY,EAAE;YACpB,KAAK,OAAO;gBACV,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACtD;gBACE,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;SAC9C;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"Simple.js","sourceRoot":"","sources":["../../src/Simple.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAIzC,MAAM,OAAO,YAA4H,SAAQ,UAAa;IAIrJ,KAAK,CAAC,GAAG,CAAC,YAAiC;QAChD,QAAQ,YAAY,EAAE;YACpB,KAAK,OAAO;gBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACnD;gBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;SAC3C;IACH,CAAC;IAKM,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,YAAiC;QAC7D,QAAQ,YAAY,EAAE;YACpB,KAAK,OAAO;gBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;YAC3D;gBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;SACnD;IACH,CAAC;IAKM,KAAK,CAAC,IAAI,CAAC,IAAQ,EAAE,YAAiC;QAC3D,QAAQ,YAAY,EAAE;YACpB,KAAK,OAAO;gBACV,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YAC1D;gBACE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;SAClD;IACH,CAAC;IAKM,KAAK,CAAC,GAAG,CAAC,IAAQ,EAAE,YAAiC;QAC1D,QAAQ,YAAY,EAAE;YACpB,KAAK,OAAO;gBACV,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YACzD;gBACE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;SACjD;IACH,CAAC;IAKM,KAAK,CAAC,MAAM,CAAC,YAAiC;QACnD,QAAQ,YAAY,EAAE;YACpB,KAAK,OAAO;gBACV,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACtD;gBACE,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;SAC9C;IACH,CAAC;CACF"}
@@ -11,8 +11,8 @@ export interface XyoUserLogin {
11
11
  export declare class XyoUserApi extends XyoApiBase {
12
12
  get authenticated(): boolean;
13
13
  get headers(): Record<string, string>;
14
- get login(): XyoApiSimple<XyoUserLogin, XyoUserLogin, Record<string, never>, import("../models/Api/Config").XyoApiConfig>;
15
- get profile(): XyoApiSimple<import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/payload").XyoPayloadBase, Record<string, never>, {
14
+ get login(): XyoApiSimple<XyoUserLogin, XyoUserLogin, import("@xyo-network/archivist").XyoPayloadFindFilter, import("../models/Api/Config").XyoApiConfig>;
15
+ get profile(): XyoApiSimple<import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/payload").XyoPayloadBase, import("@xyo-network/archivist").XyoPayloadFindFilter, {
16
16
  root: string;
17
17
  apiDomain: string; /** @field Password of the user [in] */
18
18
  userid?: string | undefined;
package/package.json CHANGED
@@ -10,12 +10,12 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@xylabs/sdk-js": "^2.6.2",
13
- "@xyo-network/account": "^2.22.3",
14
- "@xyo-network/archivist": "^2.22.3",
15
- "@xyo-network/boundwitness": "^2.22.3",
16
- "@xyo-network/core": "^2.22.3",
17
- "@xyo-network/payload": "^2.22.3",
18
- "@xyo-network/typeof": "^2.22.3",
13
+ "@xyo-network/account": "^2.22.6",
14
+ "@xyo-network/archivist": "^2.22.6",
15
+ "@xyo-network/boundwitness": "^2.22.6",
16
+ "@xyo-network/core": "^2.22.6",
17
+ "@xyo-network/payload": "^2.22.6",
18
+ "@xyo-network/typeof": "^2.22.6",
19
19
  "axios": "^0.27.2",
20
20
  "lru-cache": "^7.13.1",
21
21
  "pako": "^2.0.4",
@@ -62,6 +62,6 @@
62
62
  },
63
63
  "sideEffects": true,
64
64
  "types": "dist/esm/index.d.ts",
65
- "version": "2.22.3",
65
+ "version": "2.22.6",
66
66
  "packageManager": "yarn@3.1.1"
67
67
  }
@@ -198,7 +198,7 @@ describe.skip('XyoArchivistApi', () => {
198
198
  const boundWitness = new XyoBoundWitnessBuilder().witness(XyoAccount.random()).build()
199
199
  await api.archives.archive(archive).block.post([boundWitness])
200
200
  const timestamp = Date.now() - 10000
201
- const response = await api.archives.archive(archive).block.find({ order: 'asc', timestamp })
201
+ const response = await api.archives.archive(archive).block.find({ order: 'asc', schema: 'netowrk.xyo.query', timestamp })
202
202
  expect(response?.length).toBe(1)
203
203
  const actual = response?.[0]
204
204
  expect(actual?._timestamp).toBeTruthy()
@@ -18,8 +18,7 @@ export const getTokenForNewUser = async (api: XyoArchivistApi): Promise<string>
18
18
  const account = XyoAccount.random()
19
19
  const address = new Wallet(account.private.bytes)
20
20
  const challenge = await api.account(account.public).challenge.post()
21
- expect(challenge?.state).toBeTruthy()
22
- const message = challenge?.state || ''
21
+ const message = assertEx(challenge?.state, 'Missing state from login challenge')
23
22
  const signature = await address.signMessage(message)
24
23
  const verify = await api.account(account.public).verify.post({ message, signature })
25
24
  const jwtToken = assertEx(verify?.token, 'Missing JWT token in response')
@@ -27,7 +27,7 @@ describe('XyoArchivistPayloadApi', () => {
27
27
  const boundWitness = new XyoBoundWitnessBuilder().witness(XyoAccount.random()).build()
28
28
  const blockResult = await api.archive(archive).block.post([boundWitness])
29
29
  expect(blockResult?.length).toBe(1)
30
- const response = await api.archive(archive).block.find({ order: 'asc', timestamp })
30
+ const response = await api.archive(archive).block.find({ order: 'asc', schema: 'netowrk.xyo.query', timestamp })
31
31
  expect(response?.length).toBe(1)
32
32
  const actual = response?.[0]
33
33
  expect(actual?._timestamp).toBeTruthy()
@@ -46,7 +46,7 @@ describe('XyoArchivistPayloadApi', () => {
46
46
  const blockResult = await api.archive(archive).block.post([boundWitness])
47
47
  expect(blockResult?.length).toBe(1)
48
48
  const timestamp = getTimestampMinutesFromNow(1)
49
- const response = await api.archive(archive).block.find({ order: 'desc', timestamp })
49
+ const response = await api.archive(archive).block.find({ order: 'desc', schema: 'netowrk.xyo.query', timestamp })
50
50
  expect(response?.length).toBe(1)
51
51
  const actual = response?.[0]
52
52
  expect(actual?._timestamp).toBeTruthy()
@@ -0,0 +1,51 @@
1
+ import { assertEx } from '@xylabs/sdk-js'
2
+ import { XyoAccount } from '@xyo-network/account'
3
+ import { XyoArchivist, XyoArchivistBase, XyoPayloadFindFilter } from '@xyo-network/archivist'
4
+ import { XyoBoundWitnessWithPartialMeta } from '@xyo-network/boundwitness'
5
+ import { XyoPayload, XyoPayloadWrapper } from '@xyo-network/payload'
6
+
7
+ import { XyoArchivistApi } from './Api'
8
+
9
+ export class XyoRemoteArchivist extends XyoArchivistBase {
10
+ protected api: XyoArchivistApi
11
+ protected archive: string
12
+ constructor(api: XyoArchivistApi, archive: string, parent?: XyoArchivist, account?: XyoAccount) {
13
+ super(parent, account)
14
+ this.api = api
15
+ this.archive = archive
16
+ }
17
+
18
+ public async get(hash: string) {
19
+ const [payloads] = await this.api.archive(this.archive).payload.hash(hash).get('tuple')
20
+ return payloads?.pop()
21
+ }
22
+
23
+ public async insert(payloads: XyoPayload[]) {
24
+ const boundwitnesses = payloads.filter((payload) => payload.schema === 'network.xyo.payload') as XyoBoundWitnessWithPartialMeta[]
25
+ boundwitnesses.forEach((boundwitness) => {
26
+ boundwitness._payloads ===
27
+ payloads.filter((payload) => {
28
+ const hash = new XyoPayloadWrapper(payload).hash
29
+ return boundwitness.payload_hashes.includes(hash)
30
+ })
31
+ })
32
+ payloads.forEach((payload) => {
33
+ let found = false
34
+ const hash = new XyoPayloadWrapper(payload).hash
35
+ boundwitnesses.forEach((boundwitnesses) => {
36
+ if (boundwitnesses.payload_hashes.includes(hash)) {
37
+ found = true
38
+ }
39
+ })
40
+ assertEx(found, 'Payload not in Boundwitness received')
41
+ })
42
+ await this.api.archive(this.archive).block.post(boundwitnesses)
43
+ return payloads
44
+ }
45
+
46
+ public async find(filter: XyoPayloadFindFilter) {
47
+ const [payloads = []] = (await this.api.archive(this.archive).payload.find(filter, 'tuple')) ?? []
48
+ const [blocks = []] = (await this.api.archive(this.archive).block.find(filter, 'tuple')) ?? []
49
+ return payloads.concat(blocks)
50
+ }
51
+ }
@@ -4,4 +4,4 @@ export * from './Archive'
4
4
  export * from './Archives'
5
5
  export * from './Block'
6
6
  export * from './Payload'
7
- export * from './XyoApiArchivist'
7
+ export * from './XyoRemoteArchivist'
package/src/Simple.ts CHANGED
@@ -1,12 +1,13 @@
1
+ import { XyoPayloadFindFilter } from '@xyo-network/archivist'
1
2
  import { XyoPayload } from '@xyo-network/payload'
2
3
 
3
4
  import { XyoApiBase } from './Base'
4
5
  import { XyoApiConfig, XyoApiResponseBody, XyoApiResponseTuple, XyoApiResponseTupleOrBody, XyoApiResponseType } from './models'
5
6
  import { objToQuery } from './objToQuery'
6
7
 
7
- export type XyoApiSimpleQuery = Record<string, unknown>
8
+ export type XyoApiSimpleQuery = XyoPayloadFindFilter
8
9
 
9
- export class XyoApiSimple<T = XyoPayload, D = T, Q extends XyoApiSimpleQuery = Record<string, never>, C extends XyoApiConfig = XyoApiConfig> extends XyoApiBase<C> {
10
+ export class XyoApiSimple<T = XyoPayload, D = T, Q extends XyoApiSimpleQuery = XyoApiSimpleQuery, C extends XyoApiConfig = XyoApiConfig> extends XyoApiBase<C> {
10
11
  public async get(): Promise<XyoApiResponseBody<T>>
11
12
  public async get(responseType?: 'body'): Promise<XyoApiResponseBody<T>>
12
13
  public async get(responseType?: 'tuple'): Promise<XyoApiResponseTuple<T>>
@@ -1,31 +0,0 @@
1
- import { assertEx } from '@xylabs/sdk-js'
2
- import { XyoAccount } from '@xyo-network/account'
3
- import { XyoArchivist, XyoBoundWitnessArchivist, XyoPayloadFindFilter } from '@xyo-network/archivist'
4
- import { XyoBoundWitnessWithPartialMeta } from '@xyo-network/boundwitness'
5
-
6
- import { XyoArchivistApi } from './Api'
7
-
8
- export class XyoApiArchivist extends XyoBoundWitnessArchivist {
9
- protected api: XyoArchivistApi
10
- protected archive: string
11
- constructor(api: XyoArchivistApi, archive: string, parent?: XyoArchivist, account?: XyoAccount) {
12
- super(parent, account)
13
- this.api = api
14
- this.archive = archive
15
- }
16
-
17
- public async get(hash: string) {
18
- const [payloads] = await this.api.archive(this.archive).payload.hash(hash).get('tuple')
19
- return payloads
20
- }
21
-
22
- public async insert(payload: XyoBoundWitnessWithPartialMeta) {
23
- return (await this.api.archive(this.archive).block.post([payload]))?.map((value) => assertEx(value._hash)) ?? []
24
- }
25
-
26
- public async find(filter: XyoPayloadFindFilter) {
27
- const [payloads = []] = (await this.api.archive(this.archive).payload.find(filter, 'tuple')) ?? []
28
- const [blocks = []] = (await this.api.archive(this.archive).block.find(filter, 'tuple')) ?? []
29
- return payloads.concat(blocks)
30
- }
31
- }