@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.
Files changed (191) hide show
  1. package/{dist/dts → lib/dts/src}/Rule.d.ts +3 -3
  2. package/lib/dts/src/Rule.d.ts.map +1 -0
  3. package/lib/dts/src/Rule.js +336 -0
  4. package/lib/dts/src/Rule.js.map +1 -0
  5. package/{dist/dts → lib/dts/src}/ValidationError.d.ts +3 -3
  6. package/lib/dts/src/ValidationError.d.ts.map +1 -0
  7. package/lib/dts/src/ValidationError.js +18 -0
  8. package/lib/dts/src/ValidationError.js.map +1 -0
  9. package/{dist/dts → lib/dts/src}/index.d.ts +12 -12
  10. package/lib/dts/src/index.d.ts.map +1 -0
  11. package/lib/dts/src/index.js +7 -0
  12. package/lib/dts/src/index.js.map +1 -0
  13. package/{dist/dts → lib/dts/src}/inferFromSchema.d.ts +3 -3
  14. package/lib/dts/src/inferFromSchema.d.ts.map +1 -0
  15. package/lib/dts/src/inferFromSchema.js +14 -0
  16. package/lib/dts/src/inferFromSchema.js.map +1 -0
  17. package/{dist/dts → lib/dts/src}/inferFromSchemaType.d.ts +4 -4
  18. package/lib/dts/src/inferFromSchemaType.d.ts.map +1 -0
  19. package/lib/dts/src/inferFromSchemaType.js +33 -0
  20. package/lib/dts/src/inferFromSchemaType.js.map +1 -0
  21. package/{dist/dts → lib/dts/src}/util/convertToValidationMarker.d.ts +5 -5
  22. package/lib/dts/src/util/convertToValidationMarker.d.ts.map +1 -0
  23. package/lib/dts/src/util/convertToValidationMarker.js +51 -0
  24. package/lib/dts/src/util/convertToValidationMarker.js.map +1 -0
  25. package/{dist/dts → lib/dts/src}/util/deepEquals.d.ts +5 -5
  26. package/lib/dts/src/util/deepEquals.d.ts.map +1 -0
  27. package/lib/dts/src/util/deepEquals.js +65 -0
  28. package/lib/dts/src/util/deepEquals.js.map +1 -0
  29. package/{dist/dts → lib/dts/src}/util/escapeRegex.d.ts +2 -2
  30. package/lib/dts/src/util/escapeRegex.d.ts.map +1 -0
  31. package/lib/dts/src/util/escapeRegex.js +6 -0
  32. package/lib/dts/src/util/escapeRegex.js.map +1 -0
  33. package/{dist/dts → lib/dts/src}/util/normalizeValidationRules.d.ts +5 -5
  34. package/lib/dts/src/util/normalizeValidationRules.d.ts.map +1 -0
  35. package/lib/dts/src/util/normalizeValidationRules.js +104 -0
  36. package/lib/dts/src/util/normalizeValidationRules.js.map +1 -0
  37. package/{dist/dts → lib/dts/src}/util/normalizeValidationRules.test.d.ts +0 -0
  38. package/lib/dts/src/util/normalizeValidationRules.test.d.ts.map +1 -0
  39. package/lib/dts/src/util/normalizeValidationRules.test.js +150 -0
  40. package/lib/dts/src/util/normalizeValidationRules.test.js.map +1 -0
  41. package/{dist/dts → lib/dts/src}/util/pathToString.d.ts +2 -2
  42. package/lib/dts/src/util/pathToString.d.ts.map +1 -0
  43. package/lib/dts/src/util/pathToString.js +18 -0
  44. package/lib/dts/src/util/pathToString.js.map +1 -0
  45. package/{dist/dts → lib/dts/src}/util/typeString.d.ts +1 -1
  46. package/lib/dts/src/util/typeString.d.ts.map +1 -0
  47. package/lib/dts/src/util/typeString.js +23 -0
  48. package/lib/dts/src/util/typeString.js.map +1 -0
  49. package/{dist/dts → lib/dts/src}/util/typeString.test.d.ts +0 -0
  50. package/lib/dts/src/util/typeString.test.d.ts.map +1 -0
  51. package/lib/dts/src/util/typeString.test.js +24 -0
  52. package/lib/dts/src/util/typeString.test.js.map +1 -0
  53. package/{dist/dts → lib/dts/src}/validateDocument.d.ts +22 -21
  54. package/lib/dts/src/validateDocument.d.ts.map +1 -0
  55. package/lib/dts/src/validateDocument.js +142 -0
  56. package/lib/dts/src/validateDocument.js.map +1 -0
  57. package/{dist/dts → lib/dts/src}/validateDocument.test.d.ts +0 -0
  58. package/lib/dts/src/validateDocument.test.d.ts.map +1 -0
  59. package/lib/dts/src/validateDocument.test.js +703 -0
  60. package/lib/dts/src/validateDocument.test.js.map +1 -0
  61. package/{dist/dts → lib/dts/src}/validators/arrayValidator.d.ts +3 -3
  62. package/lib/dts/src/validators/arrayValidator.d.ts.map +1 -0
  63. package/lib/dts/src/validators/arrayValidator.js +79 -0
  64. package/lib/dts/src/validators/arrayValidator.js.map +1 -0
  65. package/{dist/dts → lib/dts/src}/validators/booleanValidator.d.ts +3 -3
  66. package/lib/dts/src/validators/booleanValidator.d.ts.map +1 -0
  67. package/lib/dts/src/validators/booleanValidator.js +12 -0
  68. package/lib/dts/src/validators/booleanValidator.js.map +1 -0
  69. package/{dist/dts → lib/dts/src}/validators/dateValidator.d.ts +4 -4
  70. package/lib/dts/src/validators/dateValidator.d.ts.map +1 -0
  71. package/lib/dts/src/validators/dateValidator.js +83 -0
  72. package/lib/dts/src/validators/dateValidator.js.map +1 -0
  73. package/{dist/dts → lib/dts/src}/validators/genericValidator.d.ts +3 -3
  74. package/lib/dts/src/validators/genericValidator.d.ts.map +1 -0
  75. package/lib/dts/src/validators/genericValidator.js +93 -0
  76. package/lib/dts/src/validators/genericValidator.js.map +1 -0
  77. package/{dist/dts → lib/dts/src}/validators/numberValidator.d.ts +3 -3
  78. package/lib/dts/src/validators/numberValidator.d.ts.map +1 -0
  79. package/lib/dts/src/validators/numberValidator.js +47 -0
  80. package/lib/dts/src/validators/numberValidator.js.map +1 -0
  81. package/{dist/dts → lib/dts/src}/validators/objectValidator.d.ts +3 -3
  82. package/lib/dts/src/validators/objectValidator.d.ts.map +1 -0
  83. package/lib/dts/src/validators/objectValidator.js +48 -0
  84. package/lib/dts/src/validators/objectValidator.js.map +1 -0
  85. package/{dist/dts → lib/dts/src}/validators/slugValidator.d.ts +8 -8
  86. package/lib/dts/src/validators/slugValidator.d.ts.map +1 -0
  87. package/lib/dts/src/validators/slugValidator.js +83 -0
  88. package/lib/dts/src/validators/slugValidator.js.map +1 -0
  89. package/{dist/dts → lib/dts/src}/validators/stringValidator.d.ts +3 -3
  90. package/lib/dts/src/validators/stringValidator.d.ts.map +1 -0
  91. package/lib/dts/src/validators/stringValidator.js +94 -0
  92. package/lib/dts/src/validators/stringValidator.js.map +1 -0
  93. package/lib/dts/test/array.test.d.ts +2 -0
  94. package/lib/dts/test/array.test.d.ts.map +1 -0
  95. package/lib/dts/test/array.test.js +55 -0
  96. package/lib/dts/test/array.test.js.map +1 -0
  97. package/lib/dts/test/children.test.d.ts +2 -0
  98. package/lib/dts/test/children.test.d.ts.map +1 -0
  99. package/lib/dts/test/children.test.js +70 -0
  100. package/lib/dts/test/children.test.js.map +1 -0
  101. package/lib/dts/test/createSchema.d.ts +6 -0
  102. package/lib/dts/test/createSchema.d.ts.map +1 -0
  103. package/lib/dts/test/createSchema.js +19 -0
  104. package/lib/dts/test/createSchema.js.map +1 -0
  105. package/lib/dts/test/generics.test.d.ts +2 -0
  106. package/lib/dts/test/generics.test.d.ts.map +1 -0
  107. package/lib/dts/test/generics.test.js +60 -0
  108. package/lib/dts/test/generics.test.js.map +1 -0
  109. package/lib/dts/test/infer.test.d.ts +2 -0
  110. package/lib/dts/test/infer.test.d.ts.map +1 -0
  111. package/lib/dts/test/infer.test.js +243 -0
  112. package/lib/dts/test/infer.test.js.map +1 -0
  113. package/lib/dts/test/mocks/mockSanityClient.d.ts +6 -0
  114. package/lib/dts/test/mocks/mockSanityClient.d.ts.map +1 -0
  115. package/lib/dts/test/mocks/mockSanityClient.js +8 -0
  116. package/lib/dts/test/mocks/mockSanityClient.js.map +1 -0
  117. package/lib/dts/test/nullExport.d.ts +3 -0
  118. package/lib/dts/test/nullExport.d.ts.map +1 -0
  119. package/lib/dts/test/nullExport.js +4 -0
  120. package/lib/dts/test/nullExport.js.map +1 -0
  121. package/lib/dts/test/numbers.test.d.ts +2 -0
  122. package/lib/dts/test/numbers.test.d.ts.map +1 -0
  123. package/lib/dts/test/numbers.test.js +57 -0
  124. package/lib/dts/test/numbers.test.js.map +1 -0
  125. package/lib/dts/test/strings.test.d.ts +2 -0
  126. package/lib/dts/test/strings.test.d.ts.map +1 -0
  127. package/lib/dts/test/strings.test.js +100 -0
  128. package/lib/dts/test/strings.test.js.map +1 -0
  129. package/lib/dts/tsconfig.lib.tsbuildinfo +1 -0
  130. package/lib/dts/tsconfig.tsbuildinfo +1 -0
  131. package/lib/index.cjs +1318 -0
  132. package/lib/index.cjs.map +1 -0
  133. package/lib/index.js +1308 -48
  134. package/lib/index.js.map +1 -0
  135. package/package.json +21 -11
  136. package/src/Rule.ts +6 -2
  137. package/src/inferFromSchema.ts +7 -1
  138. package/src/util/convertToValidationMarker.ts +5 -3
  139. package/src/validateDocument.test.ts +22 -23
  140. package/src/validateDocument.ts +3 -1
  141. package/src/validators/dateValidator.ts +11 -7
  142. package/src/validators/slugValidator.ts +3 -3
  143. package/src/validators/stringValidator.ts +2 -1
  144. package/dist/dts/Rule.d.ts.map +0 -1
  145. package/dist/dts/ValidationError.d.ts.map +0 -1
  146. package/dist/dts/getClient.d.ts +0 -3
  147. package/dist/dts/getClient.d.ts.map +0 -1
  148. package/dist/dts/index.d.ts.map +0 -1
  149. package/dist/dts/inferFromSchema.d.ts.map +0 -1
  150. package/dist/dts/inferFromSchemaType.d.ts.map +0 -1
  151. package/dist/dts/util/convertToValidationMarker.d.ts.map +0 -1
  152. package/dist/dts/util/deepEquals.d.ts.map +0 -1
  153. package/dist/dts/util/escapeRegex.d.ts.map +0 -1
  154. package/dist/dts/util/normalizeValidationRules.d.ts.map +0 -1
  155. package/dist/dts/util/normalizeValidationRules.test.d.ts.map +0 -1
  156. package/dist/dts/util/pathToString.d.ts.map +0 -1
  157. package/dist/dts/util/typeString.d.ts.map +0 -1
  158. package/dist/dts/util/typeString.test.d.ts.map +0 -1
  159. package/dist/dts/validateDocument.d.ts.map +0 -1
  160. package/dist/dts/validateDocument.test.d.ts.map +0 -1
  161. package/dist/dts/validators/arrayValidator.d.ts.map +0 -1
  162. package/dist/dts/validators/booleanValidator.d.ts.map +0 -1
  163. package/dist/dts/validators/dateValidator.d.ts.map +0 -1
  164. package/dist/dts/validators/genericValidator.d.ts.map +0 -1
  165. package/dist/dts/validators/numberValidator.d.ts.map +0 -1
  166. package/dist/dts/validators/objectValidator.d.ts.map +0 -1
  167. package/dist/dts/validators/slugValidator.d.ts.map +0 -1
  168. package/dist/dts/validators/stringValidator.d.ts.map +0 -1
  169. package/jest.config.js +0 -5
  170. package/lib/Rule.js +0 -491
  171. package/lib/ValidationError.js +0 -39
  172. package/lib/getClient.js +0 -20
  173. package/lib/inferFromSchema.js +0 -22
  174. package/lib/inferFromSchemaType.js +0 -86
  175. package/lib/util/convertToValidationMarker.js +0 -65
  176. package/lib/util/deepEquals.js +0 -87
  177. package/lib/util/escapeRegex.js +0 -14
  178. package/lib/util/normalizeValidationRules.js +0 -115
  179. package/lib/util/pathToString.js +0 -30
  180. package/lib/util/typeString.js +0 -29
  181. package/lib/validateDocument.js +0 -231
  182. package/lib/validators/arrayValidator.js +0 -123
  183. package/lib/validators/booleanValidator.js +0 -29
  184. package/lib/validators/dateValidator.js +0 -120
  185. package/lib/validators/genericValidator.js +0 -135
  186. package/lib/validators/numberValidator.js +0 -70
  187. package/lib/validators/objectValidator.js +0 -93
  188. package/lib/validators/slugValidator.js +0 -133
  189. package/lib/validators/stringValidator.js +0 -131
  190. package/src/getClient.ts +0 -13
  191. 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;
@@ -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
- }
@@ -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;