@xyo-network/boundwitness-validator 2.72.8 → 2.73.0

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,51 +10,64 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xyo-network/account": "~2.72.8",
14
- "@xyo-network/boundwitness-model": "~2.72.8",
15
- "@xyo-network/core": "~2.72.8",
16
- "@xyo-network/payload-validator": "~2.72.8",
17
- "@xyo-network/typeof": "~2.72.8",
13
+ "@xyo-network/account": "~2.73.0",
14
+ "@xyo-network/boundwitness-model": "~2.73.0",
15
+ "@xyo-network/core": "~2.73.0",
16
+ "@xyo-network/payload-validator": "~2.73.0",
17
+ "@xyo-network/typeof": "~2.73.0",
18
18
  "lodash": "^4.17.21"
19
19
  },
20
20
  "description": "Primary SDK for using XYO Protocol 2.0",
21
21
  "devDependencies": {
22
22
  "@types/lodash": "^4.14.198",
23
- "@xylabs/ts-scripts-yarn3": "^2.19.3",
24
- "@xylabs/tsconfig": "^2.19.3",
23
+ "@xylabs/ts-scripts-yarn3": "^2.19.5",
24
+ "@xylabs/tsconfig": "^2.19.5",
25
+ "publint": "^0.2.2",
26
+ "tsup": "^7.2.0",
25
27
  "typescript": "^5.2.2"
26
28
  },
27
- "browser": "dist/esm/index.js",
28
29
  "docs": "dist/docs.json",
29
30
  "exports": {
30
31
  ".": {
31
- "node": {
32
- "import": "./dist/esm/index.js",
33
- "require": "./dist/cjs/index.js"
32
+ "require": {
33
+ "types": "./dist/index.d.ts",
34
+ "default": "./dist/index.js"
34
35
  },
35
- "browser": {
36
- "import": "./dist/esm/index.js",
37
- "require": "./dist/cjs/index.js"
38
- },
39
- "default": "./dist/esm/index.js"
36
+ "import": {
37
+ "types": "./dist/index.d.mts",
38
+ "default": "./dist/index.mjs"
39
+ }
40
40
  },
41
41
  "./dist/docs.json": {
42
42
  "default": "./dist/docs.json"
43
43
  },
44
+ "./cjs": {
45
+ "default": "./dist/index.js"
46
+ },
47
+ "./docs": {
48
+ "default": "./dist/docs.json"
49
+ },
50
+ "./esm": {
51
+ "default": "./dist/index.mjs"
52
+ },
44
53
  "./package.json": "./package.json"
45
54
  },
46
- "main": "dist/cjs/index.js",
47
- "module": "dist/esm/index.js",
55
+ "main": "dist/index.js",
56
+ "module": "dist/index.mjs",
48
57
  "homepage": "https://xyo.network",
49
58
  "license": "LGPL-3.0",
50
59
  "publishConfig": {
51
60
  "access": "public"
52
61
  },
62
+ "scripts": {
63
+ "package-compile": "tsup && publint",
64
+ "package-recompile": "tsup && publint"
65
+ },
53
66
  "repository": {
54
67
  "type": "git",
55
68
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
56
69
  },
57
70
  "sideEffects": false,
58
- "types": "dist/types/index.d.ts",
59
- "version": "2.72.8"
71
+ "types": "dist/index.d.ts",
72
+ "version": "2.73.0"
60
73
  }
package/src/Validator.ts CHANGED
@@ -1,9 +1,9 @@
1
+ import { uniq } from '@xylabs/lodash'
1
2
  import { AddressValue } from '@xyo-network/account'
2
3
  import { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'
3
4
  import { PayloadHasher } from '@xyo-network/core'
4
5
  import { PayloadValidator } from '@xyo-network/payload-validator'
5
6
  import { validateType } from '@xyo-network/typeof'
6
- import uniq from 'lodash/uniq'
7
7
 
8
8
  const validateArraysSameLength = (a: unknown[], b: unknown[], message = 'Array length mismatch') => {
9
9
  return a.length != b.length ? [Error(`${message} []`)] : []
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,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BoundWitnessValidator = void 0;
4
- const tslib_1 = require("tslib");
5
- const account_1 = require("@xyo-network/account");
6
- const boundwitness_model_1 = require("@xyo-network/boundwitness-model");
7
- const core_1 = require("@xyo-network/core");
8
- const payload_validator_1 = require("@xyo-network/payload-validator");
9
- const typeof_1 = require("@xyo-network/typeof");
10
- const uniq_1 = tslib_1.__importDefault(require("lodash/uniq"));
11
- const validateArraysSameLength = (a, b, message = 'Array length mismatch') => {
12
- return a.length != b.length ? [Error(`${message} []`)] : [];
13
- };
14
- class BoundWitnessValidator extends payload_validator_1.PayloadValidator {
15
- get expectedSchema() {
16
- return boundwitness_model_1.BoundWitnessSchema;
17
- }
18
- static validateSignature(hash, address, signature) {
19
- if (!signature) {
20
- return [Error(`Missing signature [${address}]`)];
21
- }
22
- if (!new account_1.AddressValue(address).verify(hash, signature)) {
23
- return [Error(`Invalid signature [${address}] [${signature}]`)];
24
- }
25
- return [];
26
- }
27
- addresses() {
28
- const errors = [];
29
- //const { addresses } = this.obj
30
- //if (!addresses?.length) errors.push(new Error('addresses missing [at least one address required]'))
31
- errors.push(...this.addressesUniqueness());
32
- return errors;
33
- }
34
- addressesUniqueness() {
35
- const errors = [];
36
- const { addresses } = this.obj;
37
- const uniqAddresses = (0, uniq_1.default)(addresses);
38
- if ((addresses === null || addresses === void 0 ? void 0 : addresses.length) !== (uniqAddresses === null || uniqAddresses === void 0 ? void 0 : uniqAddresses.length))
39
- errors.push(Error('addresses must be unique'));
40
- return errors;
41
- }
42
- previousHashes() {
43
- const errors = [];
44
- return errors;
45
- }
46
- schema() {
47
- const errors = [];
48
- if (this.obj.schema !== this.expectedSchema) {
49
- errors.push(Error(`invalid schema [${this.expectedSchema} !== ${this.obj.schema}]`));
50
- }
51
- return errors;
52
- }
53
- schemas() {
54
- const errors = [];
55
- const Schemas = this.obj.payload_schemas;
56
- if (Schemas) {
57
- const schemaValidators = Schemas.map((schema) => {
58
- var _a;
59
- return (_a = payload_validator_1.PayloadValidator.schemaNameValidatorFactory) === null || _a === void 0 ? void 0 : _a.call(payload_validator_1.PayloadValidator, schema);
60
- });
61
- schemaValidators.forEach((validator) => {
62
- if (validator) {
63
- errors.push(...validator.all());
64
- }
65
- });
66
- }
67
- return errors;
68
- }
69
- signatures() {
70
- var _a;
71
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
72
- return [
73
- ...validateArraysSameLength((_a = this.obj._signatures) !== null && _a !== void 0 ? _a : [], this.obj.addresses, 'Length mismatch: address/_signature'),
74
- ...(yield Promise.all(this.obj.addresses.map((address, index) => tslib_1.__awaiter(this, void 0, void 0, function* () { var _b; return BoundWitnessValidator.validateSignature(yield core_1.PayloadHasher.hashAsync(this.payload), address, (_b = this.obj._signatures) === null || _b === void 0 ? void 0 : _b[index]); }), []))).flat(),
75
- ];
76
- });
77
- }
78
- validate() {
79
- const _super = Object.create(null, {
80
- validate: { get: () => super.validate }
81
- });
82
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
83
- return [
84
- ...(yield this.signatures()),
85
- ...this.addresses(),
86
- ...this.validateArrayLengths(),
87
- ...this.schemas(),
88
- ...this.previousHashes(),
89
- ...this.schema(),
90
- ...(yield _super.validate.call(this)),
91
- ];
92
- });
93
- }
94
- validateArrayLengths() {
95
- const errors = [];
96
- errors.push(...this.validatePayloadHashesLength());
97
- return errors;
98
- }
99
- validatePayloadHashesLength() {
100
- const errors = [];
101
- errors.push(...this.validateArrayLength('payload_hashes', 'payload_schemas'));
102
- return errors;
103
- }
104
- validateArrayLength(fieldName, compareArrayName) {
105
- const errors = [];
106
- const [array, arrayErrors] = (0, typeof_1.validateType)('array', this.stringKeyObj[fieldName], true);
107
- const [compareArray, compareArrayErrors] = (0, typeof_1.validateType)('array', this.stringKeyObj[compareArrayName], true);
108
- if ((array === null || array === void 0 ? void 0 : array.length) !== (compareArray === null || compareArray === void 0 ? void 0 : compareArray.length)) {
109
- errors.push(new Error(`${fieldName}/${compareArrayName} count mismatch [${array === null || array === void 0 ? void 0 : array.length} !== ${compareArray === null || compareArray === void 0 ? void 0 : compareArray.length}]`));
110
- }
111
- return [...arrayErrors, ...compareArrayErrors, ...errors];
112
- }
113
- }
114
- exports.BoundWitnessValidator = BoundWitnessValidator;
115
- //# sourceMappingURL=Validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../src/Validator.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("./Validator"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B"}