@expo/schemer 2.2.2-canary-20260624-9d83b81 → 2.3.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/build/Error.js +10 -32
- package/build/Error.js.map +1 -1
- package/build/Util.js +22 -42
- package/build/Util.js.map +1 -1
- package/build/index.js +106 -180
- package/build/index.js.map +1 -1
- package/package.json +8 -8
package/build/Error.js
CHANGED
|
@@ -1,45 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
});
|
|
5
|
-
0 && (module.exports = {
|
|
6
|
-
ErrorCodes: null,
|
|
7
|
-
SchemerError: null,
|
|
8
|
-
ValidationError: null
|
|
9
|
-
});
|
|
10
|
-
function _export(target, all) {
|
|
11
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
_export(exports, {
|
|
17
|
-
get ErrorCodes () {
|
|
18
|
-
return ErrorCodes;
|
|
19
|
-
},
|
|
20
|
-
get SchemerError () {
|
|
21
|
-
return SchemerError;
|
|
22
|
-
},
|
|
23
|
-
get ValidationError () {
|
|
24
|
-
return ValidationError;
|
|
25
|
-
}
|
|
26
|
-
});
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorCodes = exports.ValidationError = exports.SchemerError = void 0;
|
|
27
4
|
class SchemerError extends Error {
|
|
28
5
|
name = 'SchemerError';
|
|
29
6
|
errors;
|
|
30
|
-
constructor(errors){
|
|
7
|
+
constructor(errors) {
|
|
31
8
|
super('');
|
|
32
|
-
this.message = errors.map((error)=>error.message).join('\n');
|
|
9
|
+
this.message = errors.map((error) => error.message).join('\n');
|
|
33
10
|
this.errors = errors;
|
|
34
11
|
}
|
|
35
12
|
}
|
|
13
|
+
exports.SchemerError = SchemerError;
|
|
36
14
|
class ValidationError extends Error {
|
|
37
15
|
name = 'ValidationError';
|
|
38
16
|
errorCode;
|
|
39
17
|
fieldPath;
|
|
40
18
|
data;
|
|
41
19
|
meta;
|
|
42
|
-
constructor({ errorCode, fieldPath, message, data, meta }){
|
|
20
|
+
constructor({ errorCode, fieldPath, message, data, meta, }) {
|
|
43
21
|
super(message);
|
|
44
22
|
this.errorCode = errorCode;
|
|
45
23
|
this.fieldPath = fieldPath;
|
|
@@ -47,7 +25,8 @@ class ValidationError extends Error {
|
|
|
47
25
|
this.meta = meta;
|
|
48
26
|
}
|
|
49
27
|
}
|
|
50
|
-
|
|
28
|
+
exports.ValidationError = ValidationError;
|
|
29
|
+
exports.ErrorCodes = {
|
|
51
30
|
SCHEMA_VALIDATION_ERROR: 'SCHEMA_VALIDATION_ERROR',
|
|
52
31
|
SCHEMA_ADDITIONAL_PROPERTY: 'SCHEMA_ADDITIONAL_PROPERTY',
|
|
53
32
|
SCHEMA_MISSING_REQUIRED_PROPERTY: 'SCHEMA_MISSING_REQUIRED_PROPERTY',
|
|
@@ -57,7 +36,6 @@ const ErrorCodes = {
|
|
|
57
36
|
INVALID_DIMENSIONS: 'INVALID_DIMENSIONS',
|
|
58
37
|
INVALID_CONTENT_TYPE: 'INVALID_CONTENT_TYPE',
|
|
59
38
|
NOT_SQUARE: 'NOT_SQUARE',
|
|
60
|
-
FILE_EXTENSION_MISMATCH: 'FILE_EXTENSION_MISMATCH'
|
|
39
|
+
FILE_EXTENSION_MISMATCH: 'FILE_EXTENSION_MISMATCH',
|
|
61
40
|
};
|
|
62
|
-
|
|
63
|
-
//# sourceMappingURL=Error.js.map
|
|
41
|
+
//# sourceMappingURL=Error.js.map
|
package/build/Error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Error.js","sourceRoot":"","sources":["../src/Error.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAa,SAAQ,KAAK;IAC5B,IAAI,GAAG,cAAc,CAAC;IAC/B,MAAM,CAAoB;IAE1B,YAAY,MAAyB;QACnC,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AATD,oCASC;AAED,MAAa,eAAgB,SAAQ,KAAK;IAC/B,IAAI,GAAG,iBAAiB,CAAC;IAClC,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,IAAI,CAAM;IACV,IAAI,CAAM;IACV,YAAY,EACV,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EACJ,IAAI,GAOL;QACC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAzBD,0CAyBC;AAIY,QAAA,UAAU,GAAG;IACxB,uBAAuB,EAAE,yBAAyB;IAClD,0BAA0B,EAAE,4BAA4B;IACxD,gCAAgC,EAAE,kCAAkC;IACpE,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,oBAAoB;IAExC,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,oBAAoB,EAAE,sBAAsB;IAC5C,UAAU,EAAE,YAAY;IACxB,uBAAuB,EAAE,yBAAyB;CACnD,CAAC"}
|
package/build/Util.js
CHANGED
|
@@ -1,46 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
schemaPointerToFieldPath: null
|
|
11
|
-
});
|
|
12
|
-
function _export(target, all) {
|
|
13
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
_export(exports, {
|
|
19
|
-
get fieldPathToSchema () {
|
|
20
|
-
return fieldPathToSchema;
|
|
21
|
-
},
|
|
22
|
-
get fieldPathToSchemaPath () {
|
|
23
|
-
return fieldPathToSchemaPath;
|
|
24
|
-
},
|
|
25
|
-
get get () {
|
|
26
|
-
return get;
|
|
27
|
-
},
|
|
28
|
-
get pathToSegments () {
|
|
29
|
-
return pathToSegments;
|
|
30
|
-
},
|
|
31
|
-
get schemaPointerToFieldPath () {
|
|
32
|
-
return schemaPointerToFieldPath;
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
const fieldPathToSchemaPath = (fieldPath)=>{
|
|
36
|
-
return pathToSegments(fieldPath).map((segment)=>`properties.${segment}`).join('.');
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fieldPathToSchema = exports.schemaPointerToFieldPath = exports.fieldPathToSchemaPath = void 0;
|
|
4
|
+
exports.pathToSegments = pathToSegments;
|
|
5
|
+
exports.get = get;
|
|
6
|
+
const fieldPathToSchemaPath = (fieldPath) => {
|
|
7
|
+
return pathToSegments(fieldPath)
|
|
8
|
+
.map((segment) => `properties.${segment}`)
|
|
9
|
+
.join('.');
|
|
37
10
|
};
|
|
38
|
-
|
|
39
|
-
|
|
11
|
+
exports.fieldPathToSchemaPath = fieldPathToSchemaPath;
|
|
12
|
+
// Assumption: used only for jsonPointer returned from traverse
|
|
13
|
+
const schemaPointerToFieldPath = (jsonPointer) => {
|
|
14
|
+
return jsonPointer
|
|
15
|
+
.split('/')
|
|
16
|
+
.slice(2)
|
|
17
|
+
.filter((error) => error !== 'properties')
|
|
18
|
+
.join('.');
|
|
40
19
|
};
|
|
41
|
-
|
|
42
|
-
|
|
20
|
+
exports.schemaPointerToFieldPath = schemaPointerToFieldPath;
|
|
21
|
+
const fieldPathToSchema = (schema, fieldPath) => {
|
|
22
|
+
return get(schema, (0, exports.fieldPathToSchemaPath)(fieldPath));
|
|
43
23
|
};
|
|
24
|
+
exports.fieldPathToSchema = fieldPathToSchema;
|
|
44
25
|
function pathToSegments(path) {
|
|
45
26
|
return Array.isArray(path) ? path : path.split('.');
|
|
46
27
|
}
|
|
@@ -48,10 +29,9 @@ function get(object, path) {
|
|
|
48
29
|
const segments = pathToSegments(path);
|
|
49
30
|
const length = segments.length;
|
|
50
31
|
let index = 0;
|
|
51
|
-
while(object != null && index < length){
|
|
32
|
+
while (object != null && index < length) {
|
|
52
33
|
object = object[segments[index++]];
|
|
53
34
|
}
|
|
54
35
|
return index && index === length ? object : undefined;
|
|
55
36
|
}
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=Util.js.map
|
|
37
|
+
//# sourceMappingURL=Util.js.map
|
package/build/Util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Util.js","sourceRoot":"","sources":["../src/Util.ts"],"names":[],"mappings":";;;AAkBA,wCAEC;AAED,kBAUC;AAhCM,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,EAAE;IACzD,OAAO,cAAc,CAAC,SAAS,CAAC;SAC7B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,OAAO,EAAE,CAAC;SACzC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC;AACF,+DAA+D;AACxD,MAAM,wBAAwB,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC9D,OAAO,WAAW;SACf,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,CAAC,CAAC;SACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,YAAY,CAAC;SACzC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC,CAAC;AANW,QAAA,wBAAwB,4BAMnC;AAEK,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAE,EAAE;IACrE,OAAO,GAAG,CAAC,MAAM,EAAE,IAAA,6BAAqB,EAAC,SAAS,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AAEF,SAAgB,cAAc,CAAC,IAAuB;IACpD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,GAAG,CAAC,MAAW,EAAE,IAAuB;IACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,MAAM,IAAI,IAAI,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;QACxC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAE,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -1,85 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
_export(exports, {
|
|
18
|
-
get ErrorCodes () {
|
|
19
|
-
return _Error.ErrorCodes;
|
|
20
|
-
},
|
|
21
|
-
get SchemerError () {
|
|
22
|
-
return _Error.SchemerError;
|
|
23
|
-
},
|
|
24
|
-
get ValidationError () {
|
|
25
|
-
return _Error.ValidationError;
|
|
26
|
-
},
|
|
27
|
-
get default () {
|
|
28
|
-
return Schemer;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
function _ajv() {
|
|
32
|
-
const data = /*#__PURE__*/ _interop_require_default(require("ajv"));
|
|
33
|
-
_ajv = function() {
|
|
34
|
-
return data;
|
|
35
|
-
};
|
|
36
|
-
return data;
|
|
37
|
-
}
|
|
38
|
-
function _ajvformats() {
|
|
39
|
-
const data = /*#__PURE__*/ _interop_require_default(require("ajv-formats"));
|
|
40
|
-
_ajvformats = function() {
|
|
41
|
-
return data;
|
|
42
|
-
};
|
|
43
|
-
return data;
|
|
44
|
-
}
|
|
45
|
-
function _fs() {
|
|
46
|
-
const data = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
47
|
-
_fs = function() {
|
|
48
|
-
return data;
|
|
49
|
-
};
|
|
50
|
-
return data;
|
|
51
|
-
}
|
|
52
|
-
function _jsonschematraverse() {
|
|
53
|
-
const data = /*#__PURE__*/ _interop_require_default(require("json-schema-traverse"));
|
|
54
|
-
_jsonschematraverse = function() {
|
|
55
|
-
return data;
|
|
56
|
-
};
|
|
57
|
-
return data;
|
|
58
|
-
}
|
|
59
|
-
function _path() {
|
|
60
|
-
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
61
|
-
_path = function() {
|
|
62
|
-
return data;
|
|
63
|
-
};
|
|
64
|
-
return data;
|
|
65
|
-
}
|
|
66
|
-
function _probeimagesize() {
|
|
67
|
-
const data = /*#__PURE__*/ _interop_require_default(require("probe-image-size"));
|
|
68
|
-
_probeimagesize = function() {
|
|
69
|
-
return data;
|
|
70
|
-
};
|
|
71
|
-
return data;
|
|
72
|
-
}
|
|
73
|
-
const _Error = require("./Error");
|
|
74
|
-
const _Util = require("./Util");
|
|
75
|
-
function _interop_require_default(obj) {
|
|
76
|
-
return obj && obj.__esModule ? obj : {
|
|
77
|
-
default: obj
|
|
78
|
-
};
|
|
79
|
-
}
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ErrorCodes = exports.ValidationError = exports.SchemerError = void 0;
|
|
7
|
+
const ajv_1 = __importDefault(require("ajv"));
|
|
8
|
+
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const json_schema_traverse_1 = __importDefault(require("json-schema-traverse"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const probe_image_size_1 = __importDefault(require("probe-image-size"));
|
|
13
|
+
const Error_1 = require("./Error");
|
|
14
|
+
const Util_1 = require("./Util");
|
|
80
15
|
function lowerFirst(str) {
|
|
81
16
|
return str.charAt(0).toLowerCase() + str.slice(1);
|
|
82
17
|
}
|
|
18
|
+
var Error_2 = require("./Error");
|
|
19
|
+
Object.defineProperty(exports, "SchemerError", { enumerable: true, get: function () { return Error_2.SchemerError; } });
|
|
20
|
+
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return Error_2.ValidationError; } });
|
|
21
|
+
Object.defineProperty(exports, "ErrorCodes", { enumerable: true, get: function () { return Error_2.ErrorCodes; } });
|
|
83
22
|
class Schemer {
|
|
84
23
|
options;
|
|
85
24
|
ajv;
|
|
@@ -87,78 +26,77 @@ class Schemer {
|
|
|
87
26
|
rootDir;
|
|
88
27
|
manualValidationErrors;
|
|
89
28
|
// Schema is a JSON Schema object
|
|
90
|
-
constructor(schema, options = {}){
|
|
29
|
+
constructor(schema, options = {}) {
|
|
91
30
|
this.options = {
|
|
92
31
|
allErrors: true,
|
|
93
32
|
verbose: true,
|
|
94
33
|
meta: true,
|
|
95
34
|
strict: false,
|
|
96
35
|
unicodeRegExp: false,
|
|
97
|
-
...options
|
|
36
|
+
...options,
|
|
98
37
|
};
|
|
99
|
-
this.ajv = new
|
|
100
|
-
(0,
|
|
101
|
-
mode: 'full'
|
|
102
|
-
});
|
|
38
|
+
this.ajv = new ajv_1.default(this.options);
|
|
39
|
+
(0, ajv_formats_1.default)(this.ajv, { mode: 'full' });
|
|
103
40
|
this.schema = schema;
|
|
104
41
|
this.rootDir = this.options.rootDir || __dirname;
|
|
105
42
|
this.manualValidationErrors = [];
|
|
106
43
|
}
|
|
107
|
-
_formatAjvErrorMessage({ keyword, instancePath, params, parentSchema, data, message }) {
|
|
44
|
+
_formatAjvErrorMessage({ keyword, instancePath, params, parentSchema, data, message, }) {
|
|
108
45
|
const meta = parentSchema && parentSchema.meta;
|
|
109
46
|
// This removes the "." in front of a fieldPath
|
|
110
47
|
instancePath = instancePath.slice(1);
|
|
111
|
-
switch(keyword){
|
|
112
|
-
case 'additionalProperties':
|
|
113
|
-
{
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
48
|
+
switch (keyword) {
|
|
49
|
+
case 'additionalProperties': {
|
|
50
|
+
return new Error_1.ValidationError({
|
|
51
|
+
errorCode: 'SCHEMA_ADDITIONAL_PROPERTY',
|
|
52
|
+
fieldPath: instancePath,
|
|
53
|
+
message: `should NOT have additional property '${params.additionalProperty}'`,
|
|
54
|
+
data,
|
|
55
|
+
meta,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
122
58
|
case 'required':
|
|
123
|
-
return new
|
|
59
|
+
return new Error_1.ValidationError({
|
|
124
60
|
errorCode: 'SCHEMA_MISSING_REQUIRED_PROPERTY',
|
|
125
61
|
fieldPath: instancePath,
|
|
126
62
|
message: `is missing required property '${params.missingProperty}'`,
|
|
127
63
|
data,
|
|
128
|
-
meta
|
|
64
|
+
meta,
|
|
129
65
|
});
|
|
130
|
-
case 'pattern':
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
66
|
+
case 'pattern': {
|
|
67
|
+
//@TODO Parse the message in a less hacky way. Perhaps for regex validation errors, embed the error message under the meta tag?
|
|
68
|
+
const regexHuman = meta?.regexHuman;
|
|
69
|
+
const regexErrorMessage = regexHuman
|
|
70
|
+
? `'${instancePath}' should be a ${regexHuman[0].toLowerCase() + regexHuman.slice(1)}`
|
|
71
|
+
: `'${instancePath}' ${message}`;
|
|
72
|
+
return new Error_1.ValidationError({
|
|
73
|
+
errorCode: 'SCHEMA_INVALID_PATTERN',
|
|
74
|
+
fieldPath: instancePath,
|
|
75
|
+
message: regexErrorMessage,
|
|
76
|
+
data,
|
|
77
|
+
meta,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
case 'not': {
|
|
81
|
+
const notHuman = meta?.notHuman;
|
|
82
|
+
const notHumanErrorMessage = notHuman
|
|
83
|
+
? `'${instancePath}' should be ${notHuman[0].toLowerCase() + notHuman.slice(1)}`
|
|
84
|
+
: `'${instancePath}' ${message}`;
|
|
85
|
+
return new Error_1.ValidationError({
|
|
86
|
+
errorCode: 'SCHEMA_INVALID_NOT',
|
|
87
|
+
fieldPath: instancePath,
|
|
88
|
+
message: notHumanErrorMessage,
|
|
89
|
+
data,
|
|
90
|
+
meta,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
155
93
|
default:
|
|
156
|
-
return new
|
|
94
|
+
return new Error_1.ValidationError({
|
|
157
95
|
errorCode: 'SCHEMA_VALIDATION_ERROR',
|
|
158
96
|
fieldPath: instancePath,
|
|
159
97
|
message: message || 'Validation error',
|
|
160
98
|
data,
|
|
161
|
-
meta
|
|
99
|
+
meta,
|
|
162
100
|
});
|
|
163
101
|
}
|
|
164
102
|
}
|
|
@@ -166,12 +104,9 @@ class Schemer {
|
|
|
166
104
|
// Convert AJV JSONSchema errors to our ValidationErrors
|
|
167
105
|
let valErrors = [];
|
|
168
106
|
if (this.ajv.errors) {
|
|
169
|
-
valErrors = this.ajv.errors.map((error)=>this._formatAjvErrorMessage(error));
|
|
107
|
+
valErrors = this.ajv.errors.map((error) => this._formatAjvErrorMessage(error));
|
|
170
108
|
}
|
|
171
|
-
return [
|
|
172
|
-
...valErrors,
|
|
173
|
-
...this.manualValidationErrors
|
|
174
|
-
];
|
|
109
|
+
return [...valErrors, ...this.manualValidationErrors];
|
|
175
110
|
}
|
|
176
111
|
_throwOnErrors() {
|
|
177
112
|
// Clean error state after each validation
|
|
@@ -179,7 +114,7 @@ class Schemer {
|
|
|
179
114
|
if (errors.length > 0) {
|
|
180
115
|
this.manualValidationErrors = [];
|
|
181
116
|
this.ajv.errors = [];
|
|
182
|
-
throw new
|
|
117
|
+
throw new Error_1.SchemerError(errors);
|
|
183
118
|
}
|
|
184
119
|
}
|
|
185
120
|
async validateAll(data) {
|
|
@@ -200,15 +135,13 @@ class Schemer {
|
|
|
200
135
|
}
|
|
201
136
|
async _validateAssetsAsync(data) {
|
|
202
137
|
const assets = [];
|
|
203
|
-
(0,
|
|
204
|
-
allKeys: true
|
|
205
|
-
}, (subSchema, jsonPointer, a, b, c, d, property)=>{
|
|
138
|
+
(0, json_schema_traverse_1.default)(this.schema, { allKeys: true }, (subSchema, jsonPointer, a, b, c, d, property) => {
|
|
206
139
|
if (property && subSchema.meta && subSchema.meta.asset) {
|
|
207
|
-
const fieldPath = (0,
|
|
140
|
+
const fieldPath = (0, Util_1.schemaPointerToFieldPath)(jsonPointer);
|
|
208
141
|
assets.push({
|
|
209
142
|
fieldPath,
|
|
210
|
-
data: (0,
|
|
211
|
-
meta: subSchema.meta
|
|
143
|
+
data: (0, Util_1.get)(data, lowerFirst(fieldPath)) || (0, Util_1.get)(data, fieldPath),
|
|
144
|
+
meta: subSchema.meta,
|
|
212
145
|
});
|
|
213
146
|
}
|
|
214
147
|
});
|
|
@@ -218,93 +151,97 @@ class Schemer {
|
|
|
218
151
|
if (meta && meta.asset && data) {
|
|
219
152
|
const { dimensions, square, contentTypePattern } = meta;
|
|
220
153
|
// filePath could be an URL
|
|
221
|
-
const filePath =
|
|
154
|
+
const filePath = path_1.default.resolve(this.rootDir, data);
|
|
222
155
|
try {
|
|
223
156
|
// This cases on whether filePath is a remote URL or located on the machine
|
|
224
|
-
const isLocalFile =
|
|
225
|
-
const probeResult = isLocalFile
|
|
157
|
+
const isLocalFile = fs_1.default.existsSync(filePath);
|
|
158
|
+
const probeResult = isLocalFile
|
|
159
|
+
? await (0, probe_image_size_1.default)(require('fs').createReadStream(filePath))
|
|
160
|
+
: await (0, probe_image_size_1.default)(data);
|
|
226
161
|
if (!probeResult) {
|
|
227
162
|
return;
|
|
228
163
|
}
|
|
229
164
|
const { width, height, type, mime } = probeResult;
|
|
230
165
|
const fileExtension = filePath.split('.').pop();
|
|
231
166
|
if (isLocalFile && mime !== `image/${fileExtension}`) {
|
|
232
|
-
this.manualValidationErrors.push(new
|
|
167
|
+
this.manualValidationErrors.push(new Error_1.ValidationError({
|
|
233
168
|
errorCode: 'FILE_EXTENSION_MISMATCH',
|
|
234
169
|
fieldPath,
|
|
235
170
|
message: `the file extension should match the content, but the file extension is .${fileExtension} while the file content at '${data}' is of type ${type}`,
|
|
236
171
|
data,
|
|
237
|
-
meta
|
|
172
|
+
meta,
|
|
238
173
|
}));
|
|
239
174
|
}
|
|
240
175
|
if (contentTypePattern && !mime.match(new RegExp(contentTypePattern))) {
|
|
241
|
-
this.manualValidationErrors.push(new
|
|
176
|
+
this.manualValidationErrors.push(new Error_1.ValidationError({
|
|
242
177
|
errorCode: 'INVALID_CONTENT_TYPE',
|
|
243
178
|
fieldPath,
|
|
244
179
|
message: `field '${fieldPath}' should point to ${meta.contentTypeHuman} but the file at '${data}' has type ${type}`,
|
|
245
180
|
data,
|
|
246
|
-
meta
|
|
181
|
+
meta,
|
|
247
182
|
}));
|
|
248
183
|
}
|
|
249
184
|
if (dimensions && (dimensions.height !== height || dimensions.width !== width)) {
|
|
250
|
-
this.manualValidationErrors.push(new
|
|
185
|
+
this.manualValidationErrors.push(new Error_1.ValidationError({
|
|
251
186
|
errorCode: 'INVALID_DIMENSIONS',
|
|
252
187
|
fieldPath,
|
|
253
188
|
message: `'${fieldPath}' should have dimensions ${dimensions.width}x${dimensions.height}, but the file at '${data}' has dimensions ${width}x${height}`,
|
|
254
189
|
data,
|
|
255
|
-
meta
|
|
190
|
+
meta,
|
|
256
191
|
}));
|
|
257
192
|
}
|
|
258
193
|
if (square && width !== height) {
|
|
259
|
-
this.manualValidationErrors.push(new
|
|
194
|
+
this.manualValidationErrors.push(new Error_1.ValidationError({
|
|
260
195
|
errorCode: 'NOT_SQUARE',
|
|
261
196
|
fieldPath,
|
|
262
197
|
message: `image should be square, but the file at '${data}' has dimensions ${width}x${height}`,
|
|
263
198
|
data,
|
|
264
|
-
meta
|
|
199
|
+
meta,
|
|
265
200
|
}));
|
|
266
201
|
}
|
|
267
|
-
}
|
|
268
|
-
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
this.manualValidationErrors.push(new Error_1.ValidationError({
|
|
269
205
|
errorCode: 'INVALID_ASSET_URI',
|
|
270
206
|
fieldPath,
|
|
271
207
|
message: `cannot access file at '${data}'`,
|
|
272
208
|
data,
|
|
273
|
-
meta
|
|
209
|
+
meta,
|
|
274
210
|
}));
|
|
275
211
|
}
|
|
276
212
|
}
|
|
277
213
|
}
|
|
278
214
|
async _validateDirectoryAsync({ fieldPath, data, meta }) {
|
|
279
215
|
if (meta && meta.asset && data) {
|
|
280
|
-
const filePath =
|
|
216
|
+
const filePath = path_1.default.resolve(this.rootDir, data);
|
|
281
217
|
try {
|
|
282
|
-
if (!
|
|
283
|
-
this.manualValidationErrors.push(new
|
|
218
|
+
if (!fs_1.default.existsSync(filePath)) {
|
|
219
|
+
this.manualValidationErrors.push(new Error_1.ValidationError({
|
|
284
220
|
errorCode: 'INVALID_ASSET_URI',
|
|
285
221
|
fieldPath,
|
|
286
222
|
message: `directory does not exist at '${data}'`,
|
|
287
223
|
data,
|
|
288
|
-
meta
|
|
224
|
+
meta,
|
|
289
225
|
}));
|
|
290
226
|
return;
|
|
291
227
|
}
|
|
292
|
-
if (!
|
|
293
|
-
this.manualValidationErrors.push(new
|
|
228
|
+
if (!fs_1.default.lstatSync(filePath).isDirectory()) {
|
|
229
|
+
this.manualValidationErrors.push(new Error_1.ValidationError({
|
|
294
230
|
errorCode: 'INVALID_CONTENT_TYPE',
|
|
295
231
|
fieldPath,
|
|
296
232
|
message: `field '${fieldPath}' should point to ${meta.contentTypeHuman} but the path at '${data}' is not a directory`,
|
|
297
233
|
data,
|
|
298
|
-
meta
|
|
234
|
+
meta,
|
|
299
235
|
}));
|
|
300
236
|
}
|
|
301
|
-
}
|
|
302
|
-
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
this.manualValidationErrors.push(new Error_1.ValidationError({
|
|
303
240
|
errorCode: 'INVALID_ASSET_URI',
|
|
304
241
|
fieldPath,
|
|
305
242
|
message: `cannot access directory at '${data}'`,
|
|
306
243
|
data,
|
|
307
|
-
meta
|
|
244
|
+
meta,
|
|
308
245
|
}));
|
|
309
246
|
}
|
|
310
247
|
}
|
|
@@ -312,29 +249,18 @@ class Schemer {
|
|
|
312
249
|
async _validateAssetAsync({ fieldPath, data, meta }) {
|
|
313
250
|
if (meta && meta.asset && data) {
|
|
314
251
|
if (meta.contentTypePattern && meta.contentTypePattern.startsWith('^image')) {
|
|
315
|
-
await this._validateImageAsync({
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
});
|
|
320
|
-
} else if (meta.contentTypePattern === 'directory') {
|
|
321
|
-
await this._validateDirectoryAsync({
|
|
322
|
-
fieldPath,
|
|
323
|
-
data,
|
|
324
|
-
meta
|
|
325
|
-
});
|
|
252
|
+
await this._validateImageAsync({ fieldPath, data, meta });
|
|
253
|
+
}
|
|
254
|
+
else if (meta.contentTypePattern === 'directory') {
|
|
255
|
+
await this._validateDirectoryAsync({ fieldPath, data, meta });
|
|
326
256
|
}
|
|
327
257
|
}
|
|
328
258
|
}
|
|
329
259
|
async validateProperty(fieldPath, data) {
|
|
330
|
-
const subSchema = (0,
|
|
260
|
+
const subSchema = (0, Util_1.fieldPathToSchema)(this.schema, fieldPath);
|
|
331
261
|
this.ajv.validate(subSchema, data);
|
|
332
262
|
if (subSchema.meta && subSchema.meta.asset) {
|
|
333
|
-
await this._validateAssetAsync({
|
|
334
|
-
fieldPath,
|
|
335
|
-
data,
|
|
336
|
-
meta: subSchema.meta
|
|
337
|
-
});
|
|
263
|
+
await this._validateAssetAsync({ fieldPath, data, meta: subSchema.meta });
|
|
338
264
|
}
|
|
339
265
|
this._throwOnErrors();
|
|
340
266
|
}
|
|
@@ -351,5 +277,5 @@ class Schemer {
|
|
|
351
277
|
return this.validateProperty('icon', iconPath);
|
|
352
278
|
}
|
|
353
279
|
}
|
|
354
|
-
|
|
355
|
-
//# sourceMappingURL=index.js.map
|
|
280
|
+
exports.default = Schemer;
|
|
281
|
+
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/schemer",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Centralized scheme validation library for Expo",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./build/index.js",
|
|
@@ -25,19 +25,19 @@
|
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/probe-image-size": "^7.2.4",
|
|
28
|
-
"expo-module-scripts": "56.0.
|
|
28
|
+
"expo-module-scripts": "56.0.3"
|
|
29
29
|
},
|
|
30
30
|
"publishConfig": {
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "e3eb896c5fdcd89e0cded98ff4e35c9db12cc9c0",
|
|
34
34
|
"scripts": {
|
|
35
|
-
"build": "expo-
|
|
35
|
+
"build": "expo-module tsc",
|
|
36
36
|
"clean": "expo-module clean",
|
|
37
37
|
"lint": "expo-module lint",
|
|
38
|
-
"test": "
|
|
39
|
-
"test:e2e": "
|
|
40
|
-
"
|
|
41
|
-
"
|
|
38
|
+
"test": "expo-module test",
|
|
39
|
+
"test:e2e": "expo-module test --config e2e/jest.config.js",
|
|
40
|
+
"typecheck": "expo-module typecheck",
|
|
41
|
+
"watch": "pnpm run --watch --preserveWatchOutput"
|
|
42
42
|
}
|
|
43
43
|
}
|