@hestia-earth/schema-validation 33.3.0 → 33.5.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
package/validators/index.d.ts
CHANGED
|
@@ -3,8 +3,10 @@ import { keyword as arraySameSize } from './arraySameSize';
|
|
|
3
3
|
import { keyword as datePattern } from './datePattern';
|
|
4
4
|
import { keyword as dateTimePattern } from './dateTimePattern';
|
|
5
5
|
import { keyword as geojson } from './geojson';
|
|
6
|
+
import { keyword as matrixSameSize } from './matrixSameSize';
|
|
7
|
+
import { keyword as sumIs100 } from './sumIs100';
|
|
8
|
+
import { keyword as sumMax100 } from './sumMax100';
|
|
6
9
|
import { keyword as uniqueArrayItem } from './uniqueArrayItem';
|
|
7
10
|
import { keyword as uniquePrimaryItem } from './uniquePrimaryItem';
|
|
8
|
-
|
|
9
|
-
export { arraySameSize, datePattern, dateTimePattern, geojson, uniqueArrayItem, uniquePrimaryItem, sumIs100 };
|
|
11
|
+
export { arraySameSize, datePattern, dateTimePattern, geojson, matrixSameSize, sumIs100, sumMax100, uniqueArrayItem, uniquePrimaryItem };
|
|
10
12
|
export declare const init: (ajv: Ajv) => void;
|
package/validators/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.init = exports.
|
|
3
|
+
exports.init = exports.uniquePrimaryItem = exports.uniqueArrayItem = exports.sumMax100 = exports.sumIs100 = exports.matrixSameSize = exports.geojson = exports.dateTimePattern = exports.datePattern = exports.arraySameSize = void 0;
|
|
4
4
|
var arraySameSize_1 = require("./arraySameSize");
|
|
5
5
|
Object.defineProperty(exports, "arraySameSize", { enumerable: true, get: function () { return arraySameSize_1.keyword; } });
|
|
6
6
|
var datePattern_1 = require("./datePattern");
|
|
@@ -9,19 +9,25 @@ var dateTimePattern_1 = require("./dateTimePattern");
|
|
|
9
9
|
Object.defineProperty(exports, "dateTimePattern", { enumerable: true, get: function () { return dateTimePattern_1.keyword; } });
|
|
10
10
|
var geojson_1 = require("./geojson");
|
|
11
11
|
Object.defineProperty(exports, "geojson", { enumerable: true, get: function () { return geojson_1.keyword; } });
|
|
12
|
+
var matrixSameSize_1 = require("./matrixSameSize");
|
|
13
|
+
Object.defineProperty(exports, "matrixSameSize", { enumerable: true, get: function () { return matrixSameSize_1.keyword; } });
|
|
14
|
+
var sumIs100_1 = require("./sumIs100");
|
|
15
|
+
Object.defineProperty(exports, "sumIs100", { enumerable: true, get: function () { return sumIs100_1.keyword; } });
|
|
16
|
+
var sumMax100_1 = require("./sumMax100");
|
|
17
|
+
Object.defineProperty(exports, "sumMax100", { enumerable: true, get: function () { return sumMax100_1.keyword; } });
|
|
12
18
|
var uniqueArrayItem_1 = require("./uniqueArrayItem");
|
|
13
19
|
Object.defineProperty(exports, "uniqueArrayItem", { enumerable: true, get: function () { return uniqueArrayItem_1.keyword; } });
|
|
14
20
|
var uniquePrimaryItem_1 = require("./uniquePrimaryItem");
|
|
15
21
|
Object.defineProperty(exports, "uniquePrimaryItem", { enumerable: true, get: function () { return uniquePrimaryItem_1.keyword; } });
|
|
16
|
-
var sumIs100_1 = require("./sumIs100");
|
|
17
|
-
Object.defineProperty(exports, "sumIs100", { enumerable: true, get: function () { return sumIs100_1.keyword; } });
|
|
18
22
|
var init = function (ajv) {
|
|
19
23
|
(0, arraySameSize_1.init)(ajv);
|
|
20
24
|
(0, datePattern_1.init)(ajv);
|
|
21
25
|
(0, dateTimePattern_1.init)(ajv);
|
|
22
26
|
(0, geojson_1.init)(ajv);
|
|
27
|
+
(0, matrixSameSize_1.init)(ajv);
|
|
28
|
+
(0, sumIs100_1.init)(ajv);
|
|
29
|
+
(0, sumMax100_1.init)(ajv);
|
|
23
30
|
(0, uniqueArrayItem_1.init)(ajv);
|
|
24
31
|
(0, uniquePrimaryItem_1.init)(ajv);
|
|
25
|
-
(0, sumIs100_1.init)(ajv);
|
|
26
32
|
};
|
|
27
33
|
exports.init = init;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.init = exports.validate = exports.keyword = void 0;
|
|
4
|
+
exports.keyword = 'matrixSameSize';
|
|
5
|
+
var validate = function (schema, data, _parentSchema, dataPath, parentData) {
|
|
6
|
+
var matrixFields = parentData[schema];
|
|
7
|
+
exports.validate.errors = [
|
|
8
|
+
data.length === matrixFields.length - 1
|
|
9
|
+
? null
|
|
10
|
+
: {
|
|
11
|
+
dataPath: dataPath,
|
|
12
|
+
keyword: exports.keyword,
|
|
13
|
+
schemaPath: '#/invalid',
|
|
14
|
+
message: "must contain one less item than ".concat(schema),
|
|
15
|
+
params: { keyword: exports.keyword, current: data.length, expected: matrixFields.length - 1 }
|
|
16
|
+
},
|
|
17
|
+
data.flat(2).every(function (v) { return !v || (-1 <= v && v <= 1); })
|
|
18
|
+
? null
|
|
19
|
+
: {
|
|
20
|
+
dataPath: dataPath,
|
|
21
|
+
keyword: exports.keyword,
|
|
22
|
+
schemaPath: '#/invalid',
|
|
23
|
+
message: 'every value must be between -1 and 1',
|
|
24
|
+
params: { keyword: exports.keyword }
|
|
25
|
+
},
|
|
26
|
+
data.every(function (value, index) { return value.length === index + 1; })
|
|
27
|
+
? null
|
|
28
|
+
: {
|
|
29
|
+
dataPath: dataPath,
|
|
30
|
+
keyword: exports.keyword,
|
|
31
|
+
schemaPath: '#/invalid',
|
|
32
|
+
message: 'the length of each array is incorrect',
|
|
33
|
+
params: { keyword: exports.keyword }
|
|
34
|
+
}
|
|
35
|
+
].filter(Boolean);
|
|
36
|
+
return exports.validate.errors.length === 0;
|
|
37
|
+
};
|
|
38
|
+
exports.validate = validate;
|
|
39
|
+
var init = function (ajv) {
|
|
40
|
+
return ajv.addKeyword(exports.keyword, {
|
|
41
|
+
type: 'array',
|
|
42
|
+
errors: 'full',
|
|
43
|
+
validate: exports.validate
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
exports.init = init;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.init = exports.validate = exports.keyword = void 0;
|
|
20
|
+
exports.keyword = 'sumMax100';
|
|
21
|
+
var parseValue = function (value) { return (typeof value === 'string' || typeof value == 'number' ? +value : 0); };
|
|
22
|
+
var validate = function (schema, data, _parentSchema, dataPath) {
|
|
23
|
+
if (dataPath === void 0) { dataPath = ''; }
|
|
24
|
+
var totals = Object.fromEntries(schema.map(function (key) { return [schema, data.reduce(function (prev, item) { return prev + parseValue(item[key]); }, 0)]; }));
|
|
25
|
+
exports.validate.errors = Object.entries(totals)
|
|
26
|
+
.map(function (_a) {
|
|
27
|
+
var _b = __read(_a, 2), key = _b[0], total = _b[1];
|
|
28
|
+
return total <= 100
|
|
29
|
+
? null
|
|
30
|
+
: {
|
|
31
|
+
dataPath: dataPath,
|
|
32
|
+
keyword: exports.keyword,
|
|
33
|
+
schemaPath: '#/invalid',
|
|
34
|
+
message: "sum of ".concat(key, " must be 100"),
|
|
35
|
+
params: {
|
|
36
|
+
current: total,
|
|
37
|
+
expected: 100
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
})
|
|
41
|
+
.filter(Boolean);
|
|
42
|
+
return exports.validate.errors.length === 0;
|
|
43
|
+
};
|
|
44
|
+
exports.validate = validate;
|
|
45
|
+
var init = function (ajv) {
|
|
46
|
+
return ajv.addKeyword(exports.keyword, {
|
|
47
|
+
type: 'array',
|
|
48
|
+
errors: 'full',
|
|
49
|
+
validate: exports.validate
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
exports.init = init;
|