@xyo-network/archivist-mongodb 2.72.9 → 2.73.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.
package/package.json CHANGED
@@ -10,52 +10,66 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^2.9.3",
14
- "@xylabs/exists": "^2.9.3",
15
- "@xylabs/promise": "^2.9.3",
16
- "@xyo-network/archivist-abstract": "~2.72.9",
17
- "@xyo-network/archivist-model": "~2.72.9",
18
- "@xyo-network/boundwitness-builder": "~2.72.9",
19
- "@xyo-network/boundwitness-model": "~2.72.9",
20
- "@xyo-network/boundwitness-wrapper": "~2.72.9",
21
- "@xyo-network/module": "~2.72.9",
22
- "@xyo-network/node-core-model": "~2.72.9",
23
- "@xyo-network/payload-model": "~2.72.9",
24
- "@xyo-network/payload-wrapper": "~2.72.9",
25
- "lodash": "^4.17.21"
13
+ "@xylabs/assert": "^2.10.7",
14
+ "@xylabs/exists": "^2.10.7",
15
+ "@xylabs/lodash": "^2.10.7",
16
+ "@xylabs/promise": "^2.10.7",
17
+ "@xyo-network/archivist-abstract": "~2.73.1",
18
+ "@xyo-network/archivist-model": "~2.73.1",
19
+ "@xyo-network/boundwitness-builder": "~2.73.1",
20
+ "@xyo-network/boundwitness-model": "~2.73.1",
21
+ "@xyo-network/boundwitness-wrapper": "~2.73.1",
22
+ "@xyo-network/module": "~2.73.1",
23
+ "@xyo-network/node-core-model": "~2.73.1",
24
+ "@xyo-network/payload-model": "~2.73.1",
25
+ "@xyo-network/payload-wrapper": "~2.73.1"
26
26
  },
27
27
  "optionalDependencies": {
28
- "@xyo-network/sdk-xyo-mongo-js": "~2.72.9"
28
+ "@xyo-network/sdk-xyo-mongo-js": "~2.73.1"
29
29
  },
30
30
  "devDependencies": {
31
- "@xylabs/ts-scripts-yarn3": "^2.19.3",
32
- "@xylabs/tsconfig": "^2.19.3",
33
- "@xyo-network/sdk-xyo-mongo-js": "~2.72.9",
31
+ "@xylabs/ts-scripts-yarn3": "^2.19.5",
32
+ "@xylabs/tsconfig": "^2.19.5",
33
+ "@xyo-network/sdk-xyo-mongo-js": "~2.73.1",
34
34
  "fake-indexeddb": "^4.0.2",
35
+ "publint": "^0.2.2",
36
+ "tsup": "^7.2.0",
35
37
  "typescript": "^5.2.2"
36
38
  },
39
+ "scripts": {
40
+ "package-compile": "tsup && publint",
41
+ "package-recompile": "tsup && publint"
42
+ },
37
43
  "description": "Primary SDK for using XYO Protocol 2.0",
38
- "browser": "dist/esm/index.js",
39
44
  "docs": "dist/docs.json",
45
+ "types": "dist/index.d.ts",
40
46
  "exports": {
41
47
  ".": {
42
- "node": {
43
- "import": "./dist/esm/index.js",
44
- "require": "./dist/cjs/index.js"
45
- },
46
- "browser": {
47
- "import": "./dist/esm/index.js",
48
- "require": "./dist/cjs/index.js"
48
+ "require": {
49
+ "types": "./dist/index.d.ts",
50
+ "default": "./dist/index.js"
49
51
  },
50
- "default": "./dist/esm/index.js"
52
+ "import": {
53
+ "types": "./dist/index.d.mts",
54
+ "default": "./dist/index.mjs"
55
+ }
51
56
  },
52
57
  "./dist/docs.json": {
53
58
  "default": "./dist/docs.json"
54
59
  },
60
+ "./cjs": {
61
+ "default": "./dist/index.js"
62
+ },
63
+ "./docs": {
64
+ "default": "./dist/docs.json"
65
+ },
66
+ "./esm": {
67
+ "default": "./dist/index.mjs"
68
+ },
55
69
  "./package.json": "./package.json"
56
70
  },
57
- "main": "dist/cjs/index.js",
58
- "module": "dist/esm/index.js",
71
+ "main": "dist/index.js",
72
+ "module": "dist/index.mjs",
59
73
  "homepage": "https://xyo.network",
60
74
  "license": "LGPL-3.0",
61
75
  "publishConfig": {
@@ -66,6 +80,5 @@
66
80
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
67
81
  },
68
82
  "sideEffects": false,
69
- "types": "dist/types/index.d.ts",
70
- "version": "2.72.9"
83
+ "version": "2.73.1"
71
84
  }
package/src/Archivist.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { exists } from '@xylabs/exists'
3
+ import { merge } from '@xylabs/lodash'
3
4
  import { fulfilledValues } from '@xylabs/promise'
4
5
  import { AbstractArchivist } from '@xyo-network/archivist-abstract'
5
6
  import { ArchivistConfig, ArchivistConfigSchema, ArchivistInsertQuerySchema, ArchivistParams } from '@xyo-network/archivist-model'
@@ -11,7 +12,6 @@ import { BoundWitnessWithMeta, PayloadWithMeta, PayloadWithPartialMeta } from '@
11
12
  import { Payload } from '@xyo-network/payload-model'
12
13
  import { PayloadWrapper } from '@xyo-network/payload-wrapper'
13
14
  import { BaseMongoSdk, BaseMongoSdkConfig, BaseMongoSdkPrivateConfig, BaseMongoSdkPublicConfig } from '@xyo-network/sdk-xyo-mongo-js'
14
- import merge from 'lodash/merge'
15
15
 
16
16
  import { validByType } from './validByType'
17
17
 
package/tsup.config.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { defineConfig } from 'tsup'
2
+
3
+ // eslint-disable-next-line import/no-default-export
4
+ export default defineConfig({
5
+ bundle: true,
6
+ cjsInterop: true,
7
+ clean: true,
8
+ dts: {
9
+ entry: ['src/index.ts'],
10
+ },
11
+ entry: ['src/index.ts'],
12
+ format: ['cjs', 'esm'],
13
+ sourcemap: true,
14
+ splitting: false,
15
+ tsconfig: 'tsconfig.json',
16
+ })
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MongoDBArchivist = exports.MongoDBArchivistConfigSchema = void 0;
4
- const tslib_1 = require("tslib");
5
- const assert_1 = require("@xylabs/assert");
6
- const exists_1 = require("@xylabs/exists");
7
- const promise_1 = require("@xylabs/promise");
8
- const archivist_abstract_1 = require("@xyo-network/archivist-abstract");
9
- const archivist_model_1 = require("@xyo-network/archivist-model");
10
- const payload_wrapper_1 = require("@xyo-network/payload-wrapper");
11
- const sdk_xyo_mongo_js_1 = require("@xyo-network/sdk-xyo-mongo-js");
12
- const merge_1 = tslib_1.__importDefault(require("lodash/merge"));
13
- const validByType_1 = require("./validByType");
14
- exports.MongoDBArchivistConfigSchema = 'network.xyo.archivist.mongodb.config';
15
- const toBoundWitnessWithMeta = (wrapper) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
16
- const bw = wrapper.boundwitness;
17
- return Object.assign(Object.assign({}, bw), { _hash: yield wrapper.hashAsync(), _timestamp: Date.now() });
18
- });
19
- const toReturnValue = (value) => {
20
- const _signatures = value === null || value === void 0 ? void 0 : value._signatures;
21
- if (_signatures) {
22
- return Object.assign(Object.assign({}, payload_wrapper_1.PayloadWrapper.wrap(value).body()), { _signatures });
23
- }
24
- else {
25
- return Object.assign({}, payload_wrapper_1.PayloadWrapper.wrap(value).body());
26
- }
27
- };
28
- const toPayloadWithMeta = (wrapper) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
29
- return Object.assign(Object.assign({}, wrapper.payload()), { _hash: yield wrapper.hashAsync(), _timestamp: Date.now() });
30
- });
31
- class MongoDBArchivist extends archivist_abstract_1.AbstractArchivist {
32
- get boundWitnessSdkConfig() {
33
- var _a, _b, _c, _d;
34
- return (0, merge_1.default)({}, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
35
- collection: (_d = (_b = (_a = this.config.boundWitnessSdkConfig) === null || _a === void 0 ? void 0 : _a.collection) !== null && _b !== void 0 ? _b : (_c = this.params.boundWitnessSdkConfig) === null || _c === void 0 ? void 0 : _c.collection) !== null && _d !== void 0 ? _d : 'bound_witnesses',
36
- });
37
- }
38
- get boundWitnesses() {
39
- var _a;
40
- this._boundWitnessSdk = (_a = this._boundWitnessSdk) !== null && _a !== void 0 ? _a : new sdk_xyo_mongo_js_1.BaseMongoSdk(this.boundWitnessSdkConfig);
41
- return (0, assert_1.assertEx)(this._boundWitnessSdk);
42
- }
43
- get payloadSdkConfig() {
44
- var _a, _b, _c, _d;
45
- return (0, merge_1.default)({}, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
46
- collection: (_d = (_b = (_a = this.config.payloadSdkConfig) === null || _a === void 0 ? void 0 : _a.collection) !== null && _b !== void 0 ? _b : (_c = this.params.payloadSdkConfig) === null || _c === void 0 ? void 0 : _c.collection) !== null && _d !== void 0 ? _d : 'payload',
47
- });
48
- }
49
- get payloads() {
50
- var _a;
51
- this._payloadSdk = (_a = this._payloadSdk) !== null && _a !== void 0 ? _a : new sdk_xyo_mongo_js_1.BaseMongoSdk(this.payloadSdkConfig);
52
- return (0, assert_1.assertEx)(this._payloadSdk);
53
- }
54
- get queries() {
55
- return [archivist_model_1.ArchivistInsertQuerySchema, ...super.queries];
56
- }
57
- head() {
58
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
59
- const head = yield (yield this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray();
60
- return head[0] ? payload_wrapper_1.PayloadWrapper.wrap(head[0]).body() : undefined;
61
- });
62
- }
63
- getHandler(hashes) {
64
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
65
- const payloads = hashes.map((_hash) => this.payloads.findOne({ _hash }));
66
- const bws = hashes.map((_hash) => this.boundWitnesses.findOne({ _hash }));
67
- const gets = yield Promise.allSettled([payloads, bws].flat());
68
- const succeeded = gets.reduce(promise_1.fulfilledValues, []);
69
- return succeeded.filter(exists_1.exists).map(toReturnValue);
70
- });
71
- }
72
- insertHandler(payloads) {
73
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
74
- const [bw, p] = yield (0, validByType_1.validByType)(payloads);
75
- const boundWitnesses = yield Promise.all(bw.map((x) => toBoundWitnessWithMeta(x)));
76
- const payloadsWithMeta = yield Promise.all(p.map((x) => toPayloadWithMeta(x)));
77
- if (boundWitnesses.length) {
78
- const boundWitnessesResult = yield this.boundWitnesses.insertMany(boundWitnesses);
79
- if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnesses.length)
80
- throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses');
81
- }
82
- if (payloadsWithMeta.length) {
83
- const payloadsResult = yield this.payloads.insertMany(payloadsWithMeta);
84
- if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithMeta.length)
85
- throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads');
86
- }
87
- return payloads !== null && payloads !== void 0 ? payloads : [];
88
- });
89
- }
90
- }
91
- exports.MongoDBArchivist = MongoDBArchivist;
92
- MongoDBArchivist.configSchemas = [exports.MongoDBArchivistConfigSchema, archivist_model_1.ArchivistConfigSchema];
93
- //# sourceMappingURL=Archivist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Archivist.js","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"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"}
package/dist/cjs/index.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./Archivist"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validByType = void 0;
4
- const tslib_1 = require("tslib");
5
- const boundwitness_builder_1 = require("@xyo-network/boundwitness-builder");
6
- const boundwitness_model_1 = require("@xyo-network/boundwitness-model");
7
- const boundwitness_wrapper_1 = require("@xyo-network/boundwitness-wrapper");
8
- const payload_wrapper_1 = require("@xyo-network/payload-wrapper");
9
- const validByType = (payloads = []) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
10
- const results = [[], []];
11
- yield Promise.all(payloads.map((payload) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
12
- if ((0, boundwitness_model_1.isBoundWitness)(payload)) {
13
- const wrapper = (0, boundwitness_builder_1.isQueryBoundWitness)(payload) ? boundwitness_builder_1.QueryBoundWitnessWrapper : boundwitness_wrapper_1.BoundWitnessWrapper;
14
- const bw = wrapper.parse(payload);
15
- if (yield bw.getValid()) {
16
- results[0].push(bw);
17
- }
18
- }
19
- else {
20
- const payloadWrapper = payload_wrapper_1.PayloadWrapper.wrap(payload);
21
- if (yield payloadWrapper.getValid()) {
22
- results[1].push(payloadWrapper);
23
- }
24
- }
25
- })));
26
- return results;
27
- });
28
- exports.validByType = validByType;
29
- //# sourceMappingURL=validByType.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validByType.js","sourceRoot":"","sources":["../../src/validByType.ts"],"names":[],"mappings":";;;;AAAA,4EAAiG;AACjG,wEAAgE;AAChE,4EAAuE;AAEvE,kEAA6D;AAEtD,MAAM,WAAW,GAAG,CAAO,WAAsB,EAAE,EAAE,EAAE;IAC5D,MAAM,OAAO,GAA8C,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACnE,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,CAAO,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAA,mCAAc,EAAC,OAAO,CAAC,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAA,0CAAmB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,+CAAwB,CAAC,CAAC,CAAC,0CAAmB,CAAA;YAC7F,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACjC,IAAI,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACvB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;aACpB;SACF;aAAM;YACL,MAAM,cAAc,GAAG,gCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE;gBACnC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;aAChC;SACF;IACH,CAAC,CAAA,CAAC,CACH,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA,CAAA;AAnBY,QAAA,WAAW,eAmBvB"}
@@ -1,80 +0,0 @@
1
- import { assertEx } from '@xylabs/assert';
2
- import { exists } from '@xylabs/exists';
3
- import { fulfilledValues } from '@xylabs/promise';
4
- import { AbstractArchivist } from '@xyo-network/archivist-abstract';
5
- import { ArchivistConfigSchema, ArchivistInsertQuerySchema } from '@xyo-network/archivist-model';
6
- import { PayloadWrapper } from '@xyo-network/payload-wrapper';
7
- import { BaseMongoSdk } from '@xyo-network/sdk-xyo-mongo-js';
8
- import merge from 'lodash/merge';
9
- import { validByType } from './validByType';
10
- export const MongoDBArchivistConfigSchema = 'network.xyo.archivist.mongodb.config';
11
- const toBoundWitnessWithMeta = async (wrapper) => {
12
- const bw = wrapper.boundwitness;
13
- return { ...bw, _hash: await wrapper.hashAsync(), _timestamp: Date.now() };
14
- };
15
- const toReturnValue = (value) => {
16
- const _signatures = value?._signatures;
17
- if (_signatures) {
18
- return { ...PayloadWrapper.wrap(value).body(), _signatures };
19
- }
20
- else {
21
- return { ...PayloadWrapper.wrap(value).body() };
22
- }
23
- };
24
- const toPayloadWithMeta = async (wrapper) => {
25
- return { ...wrapper.payload(), _hash: await wrapper.hashAsync(), _timestamp: Date.now() };
26
- };
27
- export class MongoDBArchivist extends AbstractArchivist {
28
- static configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema];
29
- _boundWitnessSdk;
30
- _payloadSdk;
31
- get boundWitnessSdkConfig() {
32
- return merge({}, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
33
- collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? 'bound_witnesses',
34
- });
35
- }
36
- get boundWitnesses() {
37
- this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk(this.boundWitnessSdkConfig);
38
- return assertEx(this._boundWitnessSdk);
39
- }
40
- get payloadSdkConfig() {
41
- return merge({}, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
42
- collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? 'payload',
43
- });
44
- }
45
- get payloads() {
46
- this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk(this.payloadSdkConfig);
47
- return assertEx(this._payloadSdk);
48
- }
49
- get queries() {
50
- return [ArchivistInsertQuerySchema, ...super.queries];
51
- }
52
- async head() {
53
- const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray();
54
- return head[0] ? PayloadWrapper.wrap(head[0]).body() : undefined;
55
- }
56
- async getHandler(hashes) {
57
- const payloads = hashes.map((_hash) => this.payloads.findOne({ _hash }));
58
- const bws = hashes.map((_hash) => this.boundWitnesses.findOne({ _hash }));
59
- const gets = await Promise.allSettled([payloads, bws].flat());
60
- const succeeded = gets.reduce(fulfilledValues, []);
61
- return succeeded.filter(exists).map(toReturnValue);
62
- }
63
- async insertHandler(payloads) {
64
- const [bw, p] = await validByType(payloads);
65
- const boundWitnesses = await Promise.all(bw.map((x) => toBoundWitnessWithMeta(x)));
66
- const payloadsWithMeta = await Promise.all(p.map((x) => toPayloadWithMeta(x)));
67
- if (boundWitnesses.length) {
68
- const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnesses);
69
- if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnesses.length)
70
- throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses');
71
- }
72
- if (payloadsWithMeta.length) {
73
- const payloadsResult = await this.payloads.insertMany(payloadsWithMeta);
74
- if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithMeta.length)
75
- throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads');
76
- }
77
- return payloads ?? [];
78
- }
79
- }
80
- //# sourceMappingURL=Archivist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Archivist.js","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js DELETED
@@ -1,2 +0,0 @@
1
- export * from './Archivist';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
@@ -1,24 +0,0 @@
1
- import { isQueryBoundWitness, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder';
2
- import { isBoundWitness } from '@xyo-network/boundwitness-model';
3
- import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
4
- import { PayloadWrapper } from '@xyo-network/payload-wrapper';
5
- export const validByType = async (payloads = []) => {
6
- const results = [[], []];
7
- await Promise.all(payloads.map(async (payload) => {
8
- if (isBoundWitness(payload)) {
9
- const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper;
10
- const bw = wrapper.parse(payload);
11
- if (await bw.getValid()) {
12
- results[0].push(bw);
13
- }
14
- }
15
- else {
16
- const payloadWrapper = PayloadWrapper.wrap(payload);
17
- if (await payloadWrapper.getValid()) {
18
- results[1].push(payloadWrapper);
19
- }
20
- }
21
- }));
22
- return results;
23
- };
24
- //# sourceMappingURL=validByType.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validByType.js","sourceRoot":"","sources":["../../src/validByType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,WAAsB,EAAE,EAAE,EAAE;IAC5D,MAAM,OAAO,GAA8C,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACnE,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7B,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;YAC3B,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,mBAAmB,CAAA;YAC7F,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACjC,IAAI,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACvB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;aACpB;SACF;aAAM;YACL,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE;gBACnC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;aAChC;SACF;IACH,CAAC,CAAC,CACH,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAqD,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAIlI,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAA2C,MAAM,8BAA8B,CAAA;AAC5G,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAKrI,eAAO,MAAM,4BAA4B,yCAAyC,CAAA;AAClF,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAA;AAE9E,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC;IACnD,qBAAqB,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAA;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAA;IACpD,MAAM,EAAE,4BAA4B,CAAA;CACrC,CAAC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAClD,eAAe,CAAC,sBAAsB,CAAC,EACvC;IACE,qBAAqB,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;IACpF,gBAAgB,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;CAChF,CACF,CAAA;AAoBD,qBAAa,gBAAgB,CAAC,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,CAAE,SAAQ,iBAAiB,CAAC,OAAO,CAAC;IAC/H,OAAgB,aAAa,WAAwD;IAErF,OAAO,CAAC,gBAAgB,CAAgD;IACxE,OAAO,CAAC,WAAW,CAA2C;IAE9D,IAAI,qBAAqB,IAAI,kBAAkB,CAI9C;IAED,IAAI,cAAc,uCAGjB;IAED,IAAI,gBAAgB,IAAI,kBAAkB,CAIzC;IAED,IAAI,QAAQ;;OAGX;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAEc,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAK1B,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAQhD,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAgBjF"}
@@ -1,2 +0,0 @@
1
- export * from './Archivist';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
@@ -1,11 +0,0 @@
1
- import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
2
- import { Payload } from '@xyo-network/payload-model';
3
- import { PayloadWrapper } from '@xyo-network/payload-wrapper';
4
- export declare const validByType: (payloads?: Payload[]) => Promise<[BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
5
- schema: "network.xyo.boundwitness";
6
- }, import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
7
- schema: string;
8
- }>[], PayloadWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
9
- schema: string;
10
- }>[]]>;
11
- //# sourceMappingURL=validByType.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validByType.d.ts","sourceRoot":"","sources":["../../src/validByType.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;;;MAmBpD,CAAA"}