@sanity/validation 2.29.5 → 2.30.1-dev-preview.1013
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/{dist/dts → lib/dts/src}/Rule.d.ts +3 -3
- package/lib/dts/src/Rule.d.ts.map +1 -0
- package/lib/dts/src/Rule.js +336 -0
- package/lib/dts/src/Rule.js.map +1 -0
- package/{dist/dts → lib/dts/src}/ValidationError.d.ts +3 -3
- package/lib/dts/src/ValidationError.d.ts.map +1 -0
- package/lib/dts/src/ValidationError.js +18 -0
- package/lib/dts/src/ValidationError.js.map +1 -0
- package/{dist/dts → lib/dts/src}/index.d.ts +12 -12
- package/lib/dts/src/index.d.ts.map +1 -0
- package/lib/dts/src/index.js +7 -0
- package/lib/dts/src/index.js.map +1 -0
- package/{dist/dts → lib/dts/src}/inferFromSchema.d.ts +3 -3
- package/lib/dts/src/inferFromSchema.d.ts.map +1 -0
- package/lib/dts/src/inferFromSchema.js +14 -0
- package/lib/dts/src/inferFromSchema.js.map +1 -0
- package/{dist/dts → lib/dts/src}/inferFromSchemaType.d.ts +4 -4
- package/lib/dts/src/inferFromSchemaType.d.ts.map +1 -0
- package/lib/dts/src/inferFromSchemaType.js +33 -0
- package/lib/dts/src/inferFromSchemaType.js.map +1 -0
- package/{dist/dts → lib/dts/src}/util/convertToValidationMarker.d.ts +5 -5
- package/lib/dts/src/util/convertToValidationMarker.d.ts.map +1 -0
- package/lib/dts/src/util/convertToValidationMarker.js +51 -0
- package/lib/dts/src/util/convertToValidationMarker.js.map +1 -0
- package/{dist/dts → lib/dts/src}/util/deepEquals.d.ts +5 -5
- package/lib/dts/src/util/deepEquals.d.ts.map +1 -0
- package/lib/dts/src/util/deepEquals.js +65 -0
- package/lib/dts/src/util/deepEquals.js.map +1 -0
- package/{dist/dts → lib/dts/src}/util/escapeRegex.d.ts +2 -2
- package/lib/dts/src/util/escapeRegex.d.ts.map +1 -0
- package/lib/dts/src/util/escapeRegex.js +6 -0
- package/lib/dts/src/util/escapeRegex.js.map +1 -0
- package/{dist/dts → lib/dts/src}/util/normalizeValidationRules.d.ts +5 -5
- package/lib/dts/src/util/normalizeValidationRules.d.ts.map +1 -0
- package/lib/dts/src/util/normalizeValidationRules.js +104 -0
- package/lib/dts/src/util/normalizeValidationRules.js.map +1 -0
- package/{dist/dts → lib/dts/src}/util/normalizeValidationRules.test.d.ts +0 -0
- package/lib/dts/src/util/normalizeValidationRules.test.d.ts.map +1 -0
- package/lib/dts/src/util/normalizeValidationRules.test.js +150 -0
- package/lib/dts/src/util/normalizeValidationRules.test.js.map +1 -0
- package/{dist/dts → lib/dts/src}/util/pathToString.d.ts +2 -2
- package/lib/dts/src/util/pathToString.d.ts.map +1 -0
- package/lib/dts/src/util/pathToString.js +18 -0
- package/lib/dts/src/util/pathToString.js.map +1 -0
- package/{dist/dts → lib/dts/src}/util/typeString.d.ts +1 -1
- package/lib/dts/src/util/typeString.d.ts.map +1 -0
- package/lib/dts/src/util/typeString.js +23 -0
- package/lib/dts/src/util/typeString.js.map +1 -0
- package/{dist/dts → lib/dts/src}/util/typeString.test.d.ts +0 -0
- package/lib/dts/src/util/typeString.test.d.ts.map +1 -0
- package/lib/dts/src/util/typeString.test.js +24 -0
- package/lib/dts/src/util/typeString.test.js.map +1 -0
- package/{dist/dts → lib/dts/src}/validateDocument.d.ts +22 -21
- package/lib/dts/src/validateDocument.d.ts.map +1 -0
- package/lib/dts/src/validateDocument.js +142 -0
- package/lib/dts/src/validateDocument.js.map +1 -0
- package/{dist/dts → lib/dts/src}/validateDocument.test.d.ts +0 -0
- package/lib/dts/src/validateDocument.test.d.ts.map +1 -0
- package/lib/dts/src/validateDocument.test.js +703 -0
- package/lib/dts/src/validateDocument.test.js.map +1 -0
- package/{dist/dts → lib/dts/src}/validators/arrayValidator.d.ts +3 -3
- package/lib/dts/src/validators/arrayValidator.d.ts.map +1 -0
- package/lib/dts/src/validators/arrayValidator.js +79 -0
- package/lib/dts/src/validators/arrayValidator.js.map +1 -0
- package/{dist/dts → lib/dts/src}/validators/booleanValidator.d.ts +3 -3
- package/lib/dts/src/validators/booleanValidator.d.ts.map +1 -0
- package/lib/dts/src/validators/booleanValidator.js +12 -0
- package/lib/dts/src/validators/booleanValidator.js.map +1 -0
- package/{dist/dts → lib/dts/src}/validators/dateValidator.d.ts +4 -4
- package/lib/dts/src/validators/dateValidator.d.ts.map +1 -0
- package/lib/dts/src/validators/dateValidator.js +83 -0
- package/lib/dts/src/validators/dateValidator.js.map +1 -0
- package/{dist/dts → lib/dts/src}/validators/genericValidator.d.ts +3 -3
- package/lib/dts/src/validators/genericValidator.d.ts.map +1 -0
- package/lib/dts/src/validators/genericValidator.js +93 -0
- package/lib/dts/src/validators/genericValidator.js.map +1 -0
- package/{dist/dts → lib/dts/src}/validators/numberValidator.d.ts +3 -3
- package/lib/dts/src/validators/numberValidator.d.ts.map +1 -0
- package/lib/dts/src/validators/numberValidator.js +47 -0
- package/lib/dts/src/validators/numberValidator.js.map +1 -0
- package/{dist/dts → lib/dts/src}/validators/objectValidator.d.ts +3 -3
- package/lib/dts/src/validators/objectValidator.d.ts.map +1 -0
- package/lib/dts/src/validators/objectValidator.js +48 -0
- package/lib/dts/src/validators/objectValidator.js.map +1 -0
- package/{dist/dts → lib/dts/src}/validators/slugValidator.d.ts +8 -8
- package/lib/dts/src/validators/slugValidator.d.ts.map +1 -0
- package/lib/dts/src/validators/slugValidator.js +83 -0
- package/lib/dts/src/validators/slugValidator.js.map +1 -0
- package/{dist/dts → lib/dts/src}/validators/stringValidator.d.ts +3 -3
- package/lib/dts/src/validators/stringValidator.d.ts.map +1 -0
- package/lib/dts/src/validators/stringValidator.js +94 -0
- package/lib/dts/src/validators/stringValidator.js.map +1 -0
- package/lib/dts/test/array.test.d.ts +2 -0
- package/lib/dts/test/array.test.d.ts.map +1 -0
- package/lib/dts/test/array.test.js +55 -0
- package/lib/dts/test/array.test.js.map +1 -0
- package/lib/dts/test/children.test.d.ts +2 -0
- package/lib/dts/test/children.test.d.ts.map +1 -0
- package/lib/dts/test/children.test.js +70 -0
- package/lib/dts/test/children.test.js.map +1 -0
- package/lib/dts/test/createSchema.d.ts +6 -0
- package/lib/dts/test/createSchema.d.ts.map +1 -0
- package/lib/dts/test/createSchema.js +19 -0
- package/lib/dts/test/createSchema.js.map +1 -0
- package/lib/dts/test/generics.test.d.ts +2 -0
- package/lib/dts/test/generics.test.d.ts.map +1 -0
- package/lib/dts/test/generics.test.js +60 -0
- package/lib/dts/test/generics.test.js.map +1 -0
- package/lib/dts/test/infer.test.d.ts +2 -0
- package/lib/dts/test/infer.test.d.ts.map +1 -0
- package/lib/dts/test/infer.test.js +243 -0
- package/lib/dts/test/infer.test.js.map +1 -0
- package/lib/dts/test/mocks/mockSanityClient.d.ts +6 -0
- package/lib/dts/test/mocks/mockSanityClient.d.ts.map +1 -0
- package/lib/dts/test/mocks/mockSanityClient.js +8 -0
- package/lib/dts/test/mocks/mockSanityClient.js.map +1 -0
- package/lib/dts/test/nullExport.d.ts +3 -0
- package/lib/dts/test/nullExport.d.ts.map +1 -0
- package/lib/dts/test/nullExport.js +4 -0
- package/lib/dts/test/nullExport.js.map +1 -0
- package/lib/dts/test/numbers.test.d.ts +2 -0
- package/lib/dts/test/numbers.test.d.ts.map +1 -0
- package/lib/dts/test/numbers.test.js +57 -0
- package/lib/dts/test/numbers.test.js.map +1 -0
- package/lib/dts/test/strings.test.d.ts +2 -0
- package/lib/dts/test/strings.test.d.ts.map +1 -0
- package/lib/dts/test/strings.test.js +100 -0
- package/lib/dts/test/strings.test.js.map +1 -0
- package/lib/dts/tsconfig.lib.tsbuildinfo +1 -0
- package/lib/dts/tsconfig.tsbuildinfo +1 -0
- package/lib/index.cjs +1318 -0
- package/lib/index.cjs.map +1 -0
- package/lib/index.js +1308 -48
- package/lib/index.js.map +1 -0
- package/package.json +21 -11
- package/src/Rule.ts +6 -2
- package/src/inferFromSchema.ts +7 -1
- package/src/util/convertToValidationMarker.ts +5 -3
- package/src/validateDocument.test.ts +22 -23
- package/src/validateDocument.ts +3 -1
- package/src/validators/dateValidator.ts +11 -7
- package/src/validators/slugValidator.ts +3 -3
- package/src/validators/stringValidator.ts +2 -1
- package/dist/dts/Rule.d.ts.map +0 -1
- package/dist/dts/ValidationError.d.ts.map +0 -1
- package/dist/dts/getClient.d.ts +0 -3
- package/dist/dts/getClient.d.ts.map +0 -1
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/inferFromSchema.d.ts.map +0 -1
- package/dist/dts/inferFromSchemaType.d.ts.map +0 -1
- package/dist/dts/util/convertToValidationMarker.d.ts.map +0 -1
- package/dist/dts/util/deepEquals.d.ts.map +0 -1
- package/dist/dts/util/escapeRegex.d.ts.map +0 -1
- package/dist/dts/util/normalizeValidationRules.d.ts.map +0 -1
- package/dist/dts/util/normalizeValidationRules.test.d.ts.map +0 -1
- package/dist/dts/util/pathToString.d.ts.map +0 -1
- package/dist/dts/util/typeString.d.ts.map +0 -1
- package/dist/dts/util/typeString.test.d.ts.map +0 -1
- package/dist/dts/validateDocument.d.ts.map +0 -1
- package/dist/dts/validateDocument.test.d.ts.map +0 -1
- package/dist/dts/validators/arrayValidator.d.ts.map +0 -1
- package/dist/dts/validators/booleanValidator.d.ts.map +0 -1
- package/dist/dts/validators/dateValidator.d.ts.map +0 -1
- package/dist/dts/validators/genericValidator.d.ts.map +0 -1
- package/dist/dts/validators/numberValidator.d.ts.map +0 -1
- package/dist/dts/validators/objectValidator.d.ts.map +0 -1
- package/dist/dts/validators/slugValidator.d.ts.map +0 -1
- package/dist/dts/validators/stringValidator.d.ts.map +0 -1
- package/jest.config.js +0 -5
- package/lib/Rule.js +0 -491
- package/lib/ValidationError.js +0 -39
- package/lib/getClient.js +0 -20
- package/lib/inferFromSchema.js +0 -22
- package/lib/inferFromSchemaType.js +0 -86
- package/lib/util/convertToValidationMarker.js +0 -65
- package/lib/util/deepEquals.js +0 -87
- package/lib/util/escapeRegex.js +0 -14
- package/lib/util/normalizeValidationRules.js +0 -115
- package/lib/util/pathToString.js +0 -30
- package/lib/util/typeString.js +0 -29
- package/lib/validateDocument.js +0 -231
- package/lib/validators/arrayValidator.js +0 -123
- package/lib/validators/booleanValidator.js +0 -29
- package/lib/validators/dateValidator.js +0 -120
- package/lib/validators/genericValidator.js +0 -135
- package/lib/validators/numberValidator.js +0 -70
- package/lib/validators/objectValidator.js +0 -93
- package/lib/validators/slugValidator.js +0 -133
- package/lib/validators/stringValidator.js +0 -131
- package/src/getClient.ts +0 -13
- package/tsconfig.json +0 -10
package/lib/Rule.js
DELETED
|
@@ -1,491 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
9
|
-
|
|
10
|
-
var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
11
|
-
|
|
12
|
-
var _ValidationError = _interopRequireDefault(require("./ValidationError"));
|
|
13
|
-
|
|
14
|
-
var _escapeRegex = _interopRequireDefault(require("./util/escapeRegex"));
|
|
15
|
-
|
|
16
|
-
var _convertToValidationMarker = _interopRequireDefault(require("./util/convertToValidationMarker"));
|
|
17
|
-
|
|
18
|
-
var _pathToString = _interopRequireDefault(require("./util/pathToString"));
|
|
19
|
-
|
|
20
|
-
var _genericValidator = _interopRequireDefault(require("./validators/genericValidator"));
|
|
21
|
-
|
|
22
|
-
var _booleanValidator = _interopRequireDefault(require("./validators/booleanValidator"));
|
|
23
|
-
|
|
24
|
-
var _numberValidator = _interopRequireDefault(require("./validators/numberValidator"));
|
|
25
|
-
|
|
26
|
-
var _stringValidator = _interopRequireDefault(require("./validators/stringValidator"));
|
|
27
|
-
|
|
28
|
-
var _arrayValidator = _interopRequireDefault(require("./validators/arrayValidator"));
|
|
29
|
-
|
|
30
|
-
var _objectValidator = _interopRequireDefault(require("./validators/objectValidator"));
|
|
31
|
-
|
|
32
|
-
var _dateValidator = _interopRequireDefault(require("./validators/dateValidator"));
|
|
33
|
-
|
|
34
|
-
var _class;
|
|
35
|
-
|
|
36
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
|
-
|
|
38
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
39
|
-
|
|
40
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
41
|
-
|
|
42
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
43
|
-
|
|
44
|
-
var typeValidators = {
|
|
45
|
-
Boolean: _booleanValidator.default,
|
|
46
|
-
Number: _numberValidator.default,
|
|
47
|
-
String: _stringValidator.default,
|
|
48
|
-
Array: _arrayValidator.default,
|
|
49
|
-
Object: _objectValidator.default,
|
|
50
|
-
Date: _dateValidator.default
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
var getBaseType = type => {
|
|
54
|
-
return type && type.type ? getBaseType(type.type) : type;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
var isFieldRef = constraint => {
|
|
58
|
-
if (typeof constraint !== 'object' || !constraint) return false;
|
|
59
|
-
return constraint.type === Rule.FIELD_REF;
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
var EMPTY_ARRAY = [];
|
|
63
|
-
var FIELD_REF = Symbol('FIELD_REF');
|
|
64
|
-
var ruleConstraintTypes = ['Array', 'Boolean', 'Date', 'Number', 'Object', 'String']; // Note: `RuleClass` and `Rule` are split to fit the current `@sanity/types`
|
|
65
|
-
// setup. Classes are a bit weird in the `@sanity/types` package because classes
|
|
66
|
-
// create an actual javascript class while simultaneously creating a type
|
|
67
|
-
// definition.
|
|
68
|
-
//
|
|
69
|
-
// This implicitly creates two types:
|
|
70
|
-
// 1. the instance type — `Rule` and
|
|
71
|
-
// 2. the static/class type - `RuleClass`
|
|
72
|
-
//
|
|
73
|
-
// The `RuleClass` type contains the static methods and the `Rule` instance
|
|
74
|
-
// contains the instance methods.
|
|
75
|
-
//
|
|
76
|
-
// This package exports the RuleClass as a value without implicitly exporting
|
|
77
|
-
// an instance definition. This should help reminder downstream users to import
|
|
78
|
-
// from the `@sanity/types` package.
|
|
79
|
-
|
|
80
|
-
var Rule = (_class = class Rule {
|
|
81
|
-
constructor(typeDef) {
|
|
82
|
-
_defineProperty(this, "_type", undefined);
|
|
83
|
-
|
|
84
|
-
_defineProperty(this, "_level", undefined);
|
|
85
|
-
|
|
86
|
-
_defineProperty(this, "_required", undefined);
|
|
87
|
-
|
|
88
|
-
_defineProperty(this, "_typeDef", undefined);
|
|
89
|
-
|
|
90
|
-
_defineProperty(this, "_message", undefined);
|
|
91
|
-
|
|
92
|
-
_defineProperty(this, "_rules", []);
|
|
93
|
-
|
|
94
|
-
_defineProperty(this, "_fieldRules", undefined);
|
|
95
|
-
|
|
96
|
-
_defineProperty(this, "valueOfField", Rule.valueOfField.bind(Rule));
|
|
97
|
-
|
|
98
|
-
this._typeDef = typeDef;
|
|
99
|
-
this.reset();
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
_mergeRequired(next) {
|
|
103
|
-
if (this._required === 'required' || next._required === 'required') return 'required';
|
|
104
|
-
if (this._required === 'optional' || next._required === 'optional') return 'optional';
|
|
105
|
-
return undefined;
|
|
106
|
-
} // Alias to static method, since we often have access to an _instance_ of a rule but not the actual Rule class
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
error(message) {
|
|
110
|
-
var rule = this.clone();
|
|
111
|
-
rule._level = 'error';
|
|
112
|
-
rule._message = message || undefined;
|
|
113
|
-
return rule;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
warning(message) {
|
|
117
|
-
var rule = this.clone();
|
|
118
|
-
rule._level = 'warning';
|
|
119
|
-
rule._message = message || undefined;
|
|
120
|
-
return rule;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
info(message) {
|
|
124
|
-
var rule = this.clone();
|
|
125
|
-
rule._level = 'info';
|
|
126
|
-
rule._message = message || undefined;
|
|
127
|
-
return rule;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
reset() {
|
|
131
|
-
this._type = this._type || undefined;
|
|
132
|
-
this._rules = (this._rules || []).filter(rule => rule.flag === 'type');
|
|
133
|
-
this._message = undefined;
|
|
134
|
-
this._required = undefined;
|
|
135
|
-
this._level = 'error';
|
|
136
|
-
this._fieldRules = undefined;
|
|
137
|
-
return this;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
isRequired() {
|
|
141
|
-
return this._required === 'required';
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
clone() {
|
|
145
|
-
var rule = new Rule();
|
|
146
|
-
rule._type = this._type;
|
|
147
|
-
rule._message = this._message;
|
|
148
|
-
rule._required = this._required;
|
|
149
|
-
rule._rules = (0, _cloneDeep2.default)(this._rules);
|
|
150
|
-
rule._level = this._level;
|
|
151
|
-
rule._fieldRules = this._fieldRules;
|
|
152
|
-
rule._typeDef = this._typeDef;
|
|
153
|
-
return rule;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
cloneWithRules(rules) {
|
|
157
|
-
var rule = this.clone();
|
|
158
|
-
var newRules = new Set();
|
|
159
|
-
rules.forEach(curr => {
|
|
160
|
-
if (curr.flag === 'type') {
|
|
161
|
-
rule._type = curr.constraint;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
newRules.add(curr.flag);
|
|
165
|
-
});
|
|
166
|
-
rule._rules = rule._rules.filter(curr => {
|
|
167
|
-
var disallowDuplicate = ['type', 'uri', 'email'].includes(curr.flag);
|
|
168
|
-
var isDuplicate = newRules.has(curr.flag);
|
|
169
|
-
return !(disallowDuplicate && isDuplicate);
|
|
170
|
-
}).concat(rules);
|
|
171
|
-
return rule;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
merge(rule) {
|
|
175
|
-
if (this._type && rule._type && this._type !== rule._type) {
|
|
176
|
-
throw new Error('merge() failed: conflicting types');
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
var newRule = this.cloneWithRules(rule._rules);
|
|
180
|
-
newRule._type = this._type || rule._type;
|
|
181
|
-
newRule._message = this._message || rule._message;
|
|
182
|
-
newRule._required = this._mergeRequired(rule);
|
|
183
|
-
newRule._level = this._level === 'error' ? rule._level : this._level;
|
|
184
|
-
return newRule;
|
|
185
|
-
} // Validation flag setters
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
type(targetType) {
|
|
189
|
-
var type = "".concat(targetType.slice(0, 1).toUpperCase()).concat(targetType.slice(1));
|
|
190
|
-
|
|
191
|
-
if (!ruleConstraintTypes.includes(type)) {
|
|
192
|
-
throw new Error("Unknown type \"".concat(targetType, "\""));
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
var rule = this.cloneWithRules([{
|
|
196
|
-
flag: 'type',
|
|
197
|
-
constraint: type
|
|
198
|
-
}]);
|
|
199
|
-
rule._type = type;
|
|
200
|
-
return rule;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
all(children) {
|
|
204
|
-
return this.cloneWithRules([{
|
|
205
|
-
flag: 'all',
|
|
206
|
-
constraint: children
|
|
207
|
-
}]);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
either(children) {
|
|
211
|
-
return this.cloneWithRules([{
|
|
212
|
-
flag: 'either',
|
|
213
|
-
constraint: children
|
|
214
|
-
}]);
|
|
215
|
-
} // Shared rules
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
optional() {
|
|
219
|
-
var rule = this.cloneWithRules([{
|
|
220
|
-
flag: 'presence',
|
|
221
|
-
constraint: 'optional'
|
|
222
|
-
}]);
|
|
223
|
-
rule._required = 'optional';
|
|
224
|
-
return rule;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
required() {
|
|
228
|
-
var rule = this.cloneWithRules([{
|
|
229
|
-
flag: 'presence',
|
|
230
|
-
constraint: 'required'
|
|
231
|
-
}]);
|
|
232
|
-
rule._required = 'required';
|
|
233
|
-
return rule;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
custom(fn) {
|
|
237
|
-
return this.cloneWithRules([{
|
|
238
|
-
flag: 'custom',
|
|
239
|
-
constraint: fn
|
|
240
|
-
}]);
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* @deprecated use `Rule.custom` instead
|
|
244
|
-
*/
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
block(fn) {
|
|
248
|
-
return this.cloneWithRules([{
|
|
249
|
-
flag: 'custom',
|
|
250
|
-
constraint: fn
|
|
251
|
-
}]);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
min(len) {
|
|
255
|
-
return this.cloneWithRules([{
|
|
256
|
-
flag: 'min',
|
|
257
|
-
constraint: len
|
|
258
|
-
}]);
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
max(len) {
|
|
262
|
-
return this.cloneWithRules([{
|
|
263
|
-
flag: 'max',
|
|
264
|
-
constraint: len
|
|
265
|
-
}]);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
length(len) {
|
|
269
|
-
return this.cloneWithRules([{
|
|
270
|
-
flag: 'length',
|
|
271
|
-
constraint: len
|
|
272
|
-
}]);
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
valid(value) {
|
|
276
|
-
var values = Array.isArray(value) ? value : [value];
|
|
277
|
-
return this.cloneWithRules([{
|
|
278
|
-
flag: 'valid',
|
|
279
|
-
constraint: values
|
|
280
|
-
}]);
|
|
281
|
-
} // Numbers only
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
integer() {
|
|
285
|
-
return this.cloneWithRules([{
|
|
286
|
-
flag: 'integer'
|
|
287
|
-
}]);
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
precision(limit) {
|
|
291
|
-
return this.cloneWithRules([{
|
|
292
|
-
flag: 'precision',
|
|
293
|
-
constraint: limit
|
|
294
|
-
}]);
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
positive() {
|
|
298
|
-
return this.cloneWithRules([{
|
|
299
|
-
flag: 'min',
|
|
300
|
-
constraint: 0
|
|
301
|
-
}]);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
negative() {
|
|
305
|
-
return this.cloneWithRules([{
|
|
306
|
-
flag: 'lessThan',
|
|
307
|
-
constraint: 0
|
|
308
|
-
}]);
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
greaterThan(num) {
|
|
312
|
-
return this.cloneWithRules([{
|
|
313
|
-
flag: 'greaterThan',
|
|
314
|
-
constraint: num
|
|
315
|
-
}]);
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
lessThan(num) {
|
|
319
|
-
return this.cloneWithRules([{
|
|
320
|
-
flag: 'lessThan',
|
|
321
|
-
constraint: num
|
|
322
|
-
}]);
|
|
323
|
-
} // String only
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
uppercase() {
|
|
327
|
-
return this.cloneWithRules([{
|
|
328
|
-
flag: 'stringCasing',
|
|
329
|
-
constraint: 'uppercase'
|
|
330
|
-
}]);
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
lowercase() {
|
|
334
|
-
return this.cloneWithRules([{
|
|
335
|
-
flag: 'stringCasing',
|
|
336
|
-
constraint: 'lowercase'
|
|
337
|
-
}]);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
regex(pattern, a, b) {
|
|
341
|
-
var _a$name, _a$invert;
|
|
342
|
-
|
|
343
|
-
var name = typeof a === 'string' ? a : (_a$name = a === null || a === void 0 ? void 0 : a.name) !== null && _a$name !== void 0 ? _a$name : b === null || b === void 0 ? void 0 : b.name;
|
|
344
|
-
var invert = typeof a === 'string' ? false : (_a$invert = a === null || a === void 0 ? void 0 : a.invert) !== null && _a$invert !== void 0 ? _a$invert : b === null || b === void 0 ? void 0 : b.invert;
|
|
345
|
-
var constraint = {
|
|
346
|
-
pattern,
|
|
347
|
-
name,
|
|
348
|
-
invert: invert || false
|
|
349
|
-
};
|
|
350
|
-
return this.cloneWithRules([{
|
|
351
|
-
flag: 'regex',
|
|
352
|
-
constraint
|
|
353
|
-
}]);
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
email() {
|
|
357
|
-
return this.cloneWithRules([{
|
|
358
|
-
flag: 'email'
|
|
359
|
-
}]);
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
uri(opts) {
|
|
363
|
-
var optsScheme = (opts === null || opts === void 0 ? void 0 : opts.scheme) || ['http', 'https'];
|
|
364
|
-
var schemes = Array.isArray(optsScheme) ? optsScheme : [optsScheme];
|
|
365
|
-
|
|
366
|
-
if (!schemes.length) {
|
|
367
|
-
throw new Error('scheme must have at least 1 scheme specified');
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
var constraint = {
|
|
371
|
-
options: {
|
|
372
|
-
scheme: schemes.map(scheme => {
|
|
373
|
-
if (!(scheme instanceof RegExp) && typeof scheme !== 'string') {
|
|
374
|
-
throw new Error('scheme must be a RegExp or a String');
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
return typeof scheme === 'string' ? new RegExp("^".concat((0, _escapeRegex.default)(scheme), "$")) : scheme;
|
|
378
|
-
}),
|
|
379
|
-
allowRelative: (opts === null || opts === void 0 ? void 0 : opts.allowRelative) || false,
|
|
380
|
-
relativeOnly: (opts === null || opts === void 0 ? void 0 : opts.relativeOnly) || false,
|
|
381
|
-
allowCredentials: (opts === null || opts === void 0 ? void 0 : opts.allowCredentials) || false
|
|
382
|
-
}
|
|
383
|
-
};
|
|
384
|
-
return this.cloneWithRules([{
|
|
385
|
-
flag: 'uri',
|
|
386
|
-
constraint
|
|
387
|
-
}]);
|
|
388
|
-
} // Array only
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
unique() {
|
|
392
|
-
return this.cloneWithRules([{
|
|
393
|
-
flag: 'unique'
|
|
394
|
-
}]);
|
|
395
|
-
} // Objects only
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
reference() {
|
|
399
|
-
return this.cloneWithRules([{
|
|
400
|
-
flag: 'reference'
|
|
401
|
-
}]);
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
fields(rules) {
|
|
405
|
-
if (this._type !== 'Object') {
|
|
406
|
-
throw new Error('fields() can only be called on an object type');
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
var rule = this.cloneWithRules([]);
|
|
410
|
-
rule._fieldRules = rules;
|
|
411
|
-
return rule;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
assetRequired() {
|
|
415
|
-
var base = getBaseType(this._typeDef);
|
|
416
|
-
var assetType;
|
|
417
|
-
|
|
418
|
-
if (base && ['image', 'file'].includes(base.name)) {
|
|
419
|
-
assetType = base.name === 'image' ? 'Image' : 'File';
|
|
420
|
-
} else {
|
|
421
|
-
assetType = 'Asset';
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
return this.cloneWithRules([{
|
|
425
|
-
flag: 'assetRequired',
|
|
426
|
-
constraint: {
|
|
427
|
-
assetType
|
|
428
|
-
}
|
|
429
|
-
}]);
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
validate(value) {
|
|
433
|
-
var _arguments = arguments,
|
|
434
|
-
_this = this;
|
|
435
|
-
|
|
436
|
-
return _asyncToGenerator(function* () {
|
|
437
|
-
var context = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : {};
|
|
438
|
-
var valueIsEmpty = value === null || value === undefined; // Short-circuit on optional, empty fields
|
|
439
|
-
|
|
440
|
-
if (valueIsEmpty && _this._required === 'optional') {
|
|
441
|
-
return EMPTY_ARRAY;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
var rules = // Run only the _custom_ functions if the rule is not set to required or optional
|
|
445
|
-
_this._required === undefined && valueIsEmpty ? _this._rules.filter(curr => curr.flag === 'custom') : _this._rules;
|
|
446
|
-
var validators = _this._type && typeValidators[_this._type] || _genericValidator.default;
|
|
447
|
-
var results = yield Promise.all(rules.map( /*#__PURE__*/function () {
|
|
448
|
-
var _ref = _asyncToGenerator(function* (curr) {
|
|
449
|
-
if (curr.flag === undefined) {
|
|
450
|
-
throw new Error('Invalid rule, did not contain "flag"-property');
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
var validator = validators[curr.flag];
|
|
454
|
-
|
|
455
|
-
if (!validator) {
|
|
456
|
-
var forType = _this._type ? "type \"".concat(_this._type, "\"") : 'rule without declared type';
|
|
457
|
-
throw new Error("Validator for flag \"".concat(curr.flag, "\" not found for ").concat(forType));
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
var specConstraint = 'constraint' in curr ? curr.constraint : null;
|
|
461
|
-
|
|
462
|
-
if (isFieldRef(specConstraint)) {
|
|
463
|
-
specConstraint = (0, _get2.default)(context.parent, specConstraint.path);
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
var result;
|
|
467
|
-
|
|
468
|
-
try {
|
|
469
|
-
result = yield validator(specConstraint, value, _this._message, context);
|
|
470
|
-
} catch (err) {
|
|
471
|
-
var errorFromException = new _ValidationError.default("".concat((0, _pathToString.default)(context.path), ": Exception occurred while validating value: ").concat(err.message));
|
|
472
|
-
return (0, _convertToValidationMarker.default)(errorFromException, 'error', context);
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
return (0, _convertToValidationMarker.default)(result, _this._level, context);
|
|
476
|
-
});
|
|
477
|
-
|
|
478
|
-
return function (_x) {
|
|
479
|
-
return _ref.apply(this, arguments);
|
|
480
|
-
};
|
|
481
|
-
}()));
|
|
482
|
-
return results.flat();
|
|
483
|
-
})();
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
-
}, _defineProperty(_class, "FIELD_REF", FIELD_REF), _defineProperty(_class, "array", def => new _class(def).type('Array')), _defineProperty(_class, "object", def => new _class(def).type('Object')), _defineProperty(_class, "string", def => new _class(def).type('String')), _defineProperty(_class, "number", def => new _class(def).type('Number')), _defineProperty(_class, "boolean", def => new _class(def).type('Boolean')), _defineProperty(_class, "dateTime", def => new _class(def).type('Date')), _defineProperty(_class, "valueOfField", path => ({
|
|
487
|
-
type: FIELD_REF,
|
|
488
|
-
path
|
|
489
|
-
})), _class);
|
|
490
|
-
var _default = Rule;
|
|
491
|
-
exports.default = _default;
|
package/lib/ValidationError.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
|
-
|
|
10
|
-
// Follows the same pattern as Rule and RuleClass. @see Rule
|
|
11
|
-
var ValidationError = class ValidationError {
|
|
12
|
-
constructor(message) {
|
|
13
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
14
|
-
|
|
15
|
-
_defineProperty(this, "message", void 0);
|
|
16
|
-
|
|
17
|
-
_defineProperty(this, "paths", void 0);
|
|
18
|
-
|
|
19
|
-
_defineProperty(this, "children", void 0);
|
|
20
|
-
|
|
21
|
-
_defineProperty(this, "operation", void 0);
|
|
22
|
-
|
|
23
|
-
this.message = message;
|
|
24
|
-
this.paths = options.paths || [];
|
|
25
|
-
this.children = options.children;
|
|
26
|
-
this.operation = options.operation;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
cloneWithMessage(msg) {
|
|
30
|
-
return new ValidationError(msg, {
|
|
31
|
-
paths: this.paths,
|
|
32
|
-
children: this.children,
|
|
33
|
-
operation: this.operation
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
};
|
|
38
|
-
var _default = ValidationError;
|
|
39
|
-
exports.default = _default;
|
package/lib/getClient.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = getClient;
|
|
7
|
-
var client;
|
|
8
|
-
|
|
9
|
-
function getClient() {
|
|
10
|
-
if (!client) {
|
|
11
|
-
// Lazy-loading to not cause issues when loading schema in node environment
|
|
12
|
-
var sanityClient = require('part:@sanity/base/client');
|
|
13
|
-
|
|
14
|
-
client = sanityClient.withConfig({
|
|
15
|
-
apiVersion: '1'
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return client;
|
|
20
|
-
}
|
package/lib/inferFromSchema.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _inferFromSchemaType = _interopRequireDefault(require("./inferFromSchemaType"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
// Note: Mutates schema. Refactor when @sanity/schema supports middlewares
|
|
13
|
-
function inferFromSchema(schema) {
|
|
14
|
-
var typeNames = schema.getTypeNames();
|
|
15
|
-
typeNames.forEach(typeName => {
|
|
16
|
-
(0, _inferFromSchemaType.default)(schema.get(typeName));
|
|
17
|
-
});
|
|
18
|
-
return schema;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
var _default = inferFromSchema;
|
|
22
|
-
exports.default = _default;
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _normalizeValidationRules = _interopRequireDefault(require("./util/normalizeValidationRules"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
13
|
-
|
|
14
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
|
-
|
|
16
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
17
|
-
|
|
18
|
-
function traverse(typeDef, visited) {
|
|
19
|
-
if (visited.has(typeDef)) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
visited.add(typeDef);
|
|
24
|
-
typeDef.validation = (0, _normalizeValidationRules.default)(typeDef);
|
|
25
|
-
|
|
26
|
-
if ('fields' in typeDef) {
|
|
27
|
-
var _iterator = _createForOfIteratorHelper(typeDef.fields),
|
|
28
|
-
_step;
|
|
29
|
-
|
|
30
|
-
try {
|
|
31
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
32
|
-
var field = _step.value;
|
|
33
|
-
traverse(field.type, visited);
|
|
34
|
-
}
|
|
35
|
-
} catch (err) {
|
|
36
|
-
_iterator.e(err);
|
|
37
|
-
} finally {
|
|
38
|
-
_iterator.f();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if ('of' in typeDef) {
|
|
43
|
-
var _iterator2 = _createForOfIteratorHelper(typeDef.of),
|
|
44
|
-
_step2;
|
|
45
|
-
|
|
46
|
-
try {
|
|
47
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
48
|
-
var candidate = _step2.value;
|
|
49
|
-
traverse(candidate, visited);
|
|
50
|
-
}
|
|
51
|
-
} catch (err) {
|
|
52
|
-
_iterator2.e(err);
|
|
53
|
-
} finally {
|
|
54
|
-
_iterator2.f();
|
|
55
|
-
}
|
|
56
|
-
} // eslint-disable-next-line no-warning-comments
|
|
57
|
-
// @ts-expect-error TODO (eventually): `annotations` does not exist on the SchemaType yet
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (typeDef.annotations) {
|
|
61
|
-
// eslint-disable-next-line no-warning-comments
|
|
62
|
-
// @ts-expect-error TODO (eventually): `annotations` does not exist on the SchemaType yet
|
|
63
|
-
var _iterator3 = _createForOfIteratorHelper(typeDef.annotations),
|
|
64
|
-
_step3;
|
|
65
|
-
|
|
66
|
-
try {
|
|
67
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
68
|
-
var annotation = _step3.value;
|
|
69
|
-
traverse(annotation, visited);
|
|
70
|
-
}
|
|
71
|
-
} catch (err) {
|
|
72
|
-
_iterator3.e(err);
|
|
73
|
-
} finally {
|
|
74
|
-
_iterator3.f();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
} // NOTE: this overload is for TS API compatibility with a previous implementation
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
function inferFromSchemaType(typeDef) {
|
|
81
|
-
traverse(typeDef, new Set());
|
|
82
|
-
return typeDef;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
var _default = inferFromSchemaType;
|
|
86
|
-
exports.default = _default;
|