@sanity/validation 2.30.0 → 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 +4 -4
- 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
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _genericValidator = _interopRequireDefault(require("./genericValidator"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
|
-
|
|
14
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
|
-
|
|
16
|
-
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; }
|
|
17
|
-
|
|
18
|
-
var precisionRx = /(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/;
|
|
19
|
-
|
|
20
|
-
var numberValidators = _objectSpread(_objectSpread({}, _genericValidator.default), {}, {
|
|
21
|
-
integer: (_unused, value, message) => {
|
|
22
|
-
if (!Number.isInteger(value)) {
|
|
23
|
-
return message || 'Must be an integer';
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return true;
|
|
27
|
-
},
|
|
28
|
-
precision: (limit, value, message) => {
|
|
29
|
-
if (value === undefined) return true;
|
|
30
|
-
var places = value.toString().match(precisionRx);
|
|
31
|
-
var decimals = Math.max((places[1] ? places[1].length : 0) - (places[2] ? parseInt(places[2], 10) : 0), 0);
|
|
32
|
-
|
|
33
|
-
if (decimals > limit) {
|
|
34
|
-
return message || "Max precision is ".concat(limit);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return true;
|
|
38
|
-
},
|
|
39
|
-
min: (minNum, value, message) => {
|
|
40
|
-
if (value >= minNum) {
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return message || "Must be greater than or equal ".concat(minNum);
|
|
45
|
-
},
|
|
46
|
-
max: (maxNum, value, message) => {
|
|
47
|
-
if (value <= maxNum) {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return message || "Must be less than or equal ".concat(maxNum);
|
|
52
|
-
},
|
|
53
|
-
greaterThan: (num, value, message) => {
|
|
54
|
-
if (value > num) {
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return message || "Must be greater than ".concat(num);
|
|
59
|
-
},
|
|
60
|
-
lessThan: (maxNum, value, message) => {
|
|
61
|
-
if (value < maxNum) {
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return message || "Must be less than ".concat(maxNum);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
var _default = numberValidators;
|
|
70
|
-
exports.default = _default;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _types = require("@sanity/types");
|
|
9
|
-
|
|
10
|
-
var _genericValidator = _interopRequireDefault(require("./genericValidator"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
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); } }
|
|
15
|
-
|
|
16
|
-
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); }); }; }
|
|
17
|
-
|
|
18
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
-
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
-
|
|
22
|
-
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; }
|
|
23
|
-
|
|
24
|
-
var metaKeys = ['_key', '_type', '_weak'];
|
|
25
|
-
|
|
26
|
-
var objectValidators = _objectSpread(_objectSpread({}, _genericValidator.default), {}, {
|
|
27
|
-
presence: (expected, value, message) => {
|
|
28
|
-
if (expected !== 'required') {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
var keys = value && Object.keys(value).filter(key => !metaKeys.includes(key));
|
|
33
|
-
|
|
34
|
-
if (value === undefined || keys && keys.length === 0) {
|
|
35
|
-
return message || 'Required';
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return true;
|
|
39
|
-
},
|
|
40
|
-
reference: function () {
|
|
41
|
-
var _reference = _asyncToGenerator(function* (_unused, value, message, context) {
|
|
42
|
-
if (!value) {
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (!(0, _types.isReference)(value)) {
|
|
47
|
-
return message || true;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
var type = context.type,
|
|
51
|
-
getDocumentExists = context.getDocumentExists;
|
|
52
|
-
|
|
53
|
-
if (!type) {
|
|
54
|
-
throw new Error("`type` was not provided in validation context");
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if ('weak' in type && type.weak) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (!getDocumentExists) {
|
|
62
|
-
throw new Error("`getDocumentExists` was not provided in validation context");
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
var exists = yield getDocumentExists({
|
|
66
|
-
id: value._ref
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
if (!exists) {
|
|
70
|
-
return 'This reference must be published';
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return true;
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
function reference(_x, _x2, _x3, _x4) {
|
|
77
|
-
return _reference.apply(this, arguments);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return reference;
|
|
81
|
-
}(),
|
|
82
|
-
assetRequired: (flag, value, message) => {
|
|
83
|
-
if (!value || !value.asset || !value.asset._ref) {
|
|
84
|
-
var assetType = flag.assetType || 'Asset';
|
|
85
|
-
return message || "".concat(assetType, " required");
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return true;
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
var _default = objectValidators;
|
|
93
|
-
exports.default = _default;
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.slugValidator = void 0;
|
|
7
|
-
|
|
8
|
-
var _memoize2 = _interopRequireDefault(require("lodash/memoize"));
|
|
9
|
-
|
|
10
|
-
var _types = require("@sanity/types");
|
|
11
|
-
|
|
12
|
-
var _getClient = _interopRequireDefault(require("../getClient"));
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
-
|
|
18
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
-
|
|
20
|
-
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; }
|
|
21
|
-
|
|
22
|
-
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); } }
|
|
23
|
-
|
|
24
|
-
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); }); }; }
|
|
25
|
-
|
|
26
|
-
var memoizedWarnOnArraySlug = (0, _memoize2.default)(warnOnArraySlug);
|
|
27
|
-
|
|
28
|
-
function getDocumentIds(id) {
|
|
29
|
-
var isDraft = id.indexOf('drafts.') === 0;
|
|
30
|
-
return {
|
|
31
|
-
published: isDraft ? id.slice('drafts.'.length) : id,
|
|
32
|
-
draft: isDraft ? id : "drafts.".concat(id)
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function serializePath(path) {
|
|
37
|
-
return path.reduce((target, part, i) => {
|
|
38
|
-
var isIndex = typeof part === 'number';
|
|
39
|
-
var isKey = (0, _types.isKeyedObject)(part);
|
|
40
|
-
var separator = i === 0 ? '' : '.';
|
|
41
|
-
var add = isIndex || isKey ? '[]' : "".concat(separator).concat(part);
|
|
42
|
-
return "".concat(target).concat(add);
|
|
43
|
-
}, '');
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
var defaultIsUnique = (slug, context) => {
|
|
47
|
-
var document = context.document,
|
|
48
|
-
path = context.path,
|
|
49
|
-
type = context.type;
|
|
50
|
-
var schemaOptions = type === null || type === void 0 ? void 0 : type.options;
|
|
51
|
-
|
|
52
|
-
if (!document) {
|
|
53
|
-
throw new Error("`document` was not provided in validation context.");
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if (!path) {
|
|
57
|
-
throw new Error("`path` was not provided in validation context.");
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
var disableArrayWarning = (schemaOptions === null || schemaOptions === void 0 ? void 0 : schemaOptions.disableArrayWarning) || false;
|
|
61
|
-
|
|
62
|
-
var _getDocumentIds = getDocumentIds(document._id),
|
|
63
|
-
published = _getDocumentIds.published,
|
|
64
|
-
draft = _getDocumentIds.draft;
|
|
65
|
-
|
|
66
|
-
var docType = document._type;
|
|
67
|
-
var atPath = serializePath(path.concat('current'));
|
|
68
|
-
|
|
69
|
-
if (!disableArrayWarning && atPath.includes('[]')) {
|
|
70
|
-
memoizedWarnOnArraySlug(serializePath(path));
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
var constraints = ['_type == $docType', "!(_id in [$draft, $published])", "".concat(atPath, " == $slug")].join(' && ');
|
|
74
|
-
return (0, _getClient.default)().fetch("!defined(*[".concat(constraints, "][0]._id)"), {
|
|
75
|
-
docType,
|
|
76
|
-
draft,
|
|
77
|
-
published,
|
|
78
|
-
slug
|
|
79
|
-
}, {
|
|
80
|
-
tag: 'validation.slug-is-unique'
|
|
81
|
-
});
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
function warnOnArraySlug(serializedPath) {
|
|
85
|
-
/* eslint-disable no-console */
|
|
86
|
-
console.warn(["Slug field at path ".concat(serializedPath, " is within an array and cannot be automatically checked for uniqueness"), "If you need to check for uniqueness, provide your own \"isUnique\" method", "To disable this message, set `disableArrayWarning: true` on the slug `options` field"].join('\n'));
|
|
87
|
-
/* eslint-enable no-console */
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Validates slugs values by querying for uniqueness from the client.
|
|
91
|
-
*
|
|
92
|
-
* This is a custom rule implementation (e.g. `Rule.custom(slugValidator)`)
|
|
93
|
-
* that's populated in `inferFromSchemaType` when the type name is `slug`
|
|
94
|
-
*/
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
var slugValidator = /*#__PURE__*/function () {
|
|
98
|
-
var _ref = _asyncToGenerator(function* (value, context) {
|
|
99
|
-
var _context$type;
|
|
100
|
-
|
|
101
|
-
if (!value) {
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
if (typeof value !== 'object') {
|
|
106
|
-
return 'Slug must be an object';
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
var slugValue = value.current;
|
|
110
|
-
|
|
111
|
-
if (!slugValue) {
|
|
112
|
-
return 'Slug must have a value';
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
var options = context === null || context === void 0 ? void 0 : (_context$type = context.type) === null || _context$type === void 0 ? void 0 : _context$type.options;
|
|
116
|
-
var isUnique = (options === null || options === void 0 ? void 0 : options.isUnique) || defaultIsUnique;
|
|
117
|
-
var wasUnique = yield isUnique(slugValue, _objectSpread(_objectSpread({}, context), {}, {
|
|
118
|
-
defaultIsUnique
|
|
119
|
-
}));
|
|
120
|
-
|
|
121
|
-
if (wasUnique) {
|
|
122
|
-
return true;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return 'Slug is already in use';
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
return function slugValidator(_x, _x2) {
|
|
129
|
-
return _ref.apply(this, arguments);
|
|
130
|
-
};
|
|
131
|
-
}();
|
|
132
|
-
|
|
133
|
-
exports.slugValidator = slugValidator;
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _genericValidator = _interopRequireDefault(require("./genericValidator"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
|
-
|
|
14
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
|
-
|
|
16
|
-
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; }
|
|
17
|
-
|
|
18
|
-
var DUMMY_ORIGIN = 'http://sanity';
|
|
19
|
-
var emailRegex = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
20
|
-
|
|
21
|
-
var isRelativeUrl = url => /^\.*\//.test(url);
|
|
22
|
-
|
|
23
|
-
var stringValidators = _objectSpread(_objectSpread({}, _genericValidator.default), {}, {
|
|
24
|
-
min: (minLength, value, message) => {
|
|
25
|
-
if (!value || value.length >= minLength) {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return message || "Must be at least ".concat(minLength, " characters long");
|
|
30
|
-
},
|
|
31
|
-
max: (maxLength, value, message) => {
|
|
32
|
-
if (!value || value.length <= maxLength) {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return message || "Must be at most ".concat(maxLength, " characters long");
|
|
37
|
-
},
|
|
38
|
-
length: (wantedLength, value, message) => {
|
|
39
|
-
var strValue = value || '';
|
|
40
|
-
|
|
41
|
-
if (strValue.length === wantedLength) {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return message || "Must be exactly ".concat(wantedLength, " characters long");
|
|
46
|
-
},
|
|
47
|
-
uri: (constraints, value, message) => {
|
|
48
|
-
var strValue = value || '';
|
|
49
|
-
var options = constraints.options;
|
|
50
|
-
var allowCredentials = options.allowCredentials,
|
|
51
|
-
relativeOnly = options.relativeOnly;
|
|
52
|
-
var allowRelative = options.allowRelative || relativeOnly;
|
|
53
|
-
var url;
|
|
54
|
-
|
|
55
|
-
try {
|
|
56
|
-
// WARNING: Safari checks for a given `base` param by looking at the length of arguments passed
|
|
57
|
-
// to new URL(str, base), and will fail if invoked with new URL(strValue, undefined)
|
|
58
|
-
url = allowRelative ? new URL(strValue, DUMMY_ORIGIN) : new URL(strValue);
|
|
59
|
-
} catch (err) {
|
|
60
|
-
return message || 'Not a valid URL';
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (relativeOnly && url.origin !== DUMMY_ORIGIN) {
|
|
64
|
-
return message || 'Only relative URLs are allowed';
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (!allowRelative && url.origin === DUMMY_ORIGIN && isRelativeUrl(strValue)) {
|
|
68
|
-
return message || 'Relative URLs are not allowed';
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (!allowCredentials && (url.username || url.password)) {
|
|
72
|
-
return message || "Username/password not allowed";
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
var urlScheme = url.protocol.replace(/:$/, '');
|
|
76
|
-
var matchesAllowedScheme = options.scheme.some(scheme => scheme.test(urlScheme));
|
|
77
|
-
|
|
78
|
-
if (!matchesAllowedScheme) {
|
|
79
|
-
return message || 'Does not match allowed protocols/schemes';
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return true;
|
|
83
|
-
},
|
|
84
|
-
stringCasing: (casing, value, message) => {
|
|
85
|
-
var strValue = value || '';
|
|
86
|
-
|
|
87
|
-
if (casing === 'uppercase' && strValue !== strValue.toLocaleUpperCase()) {
|
|
88
|
-
return message || "Must be all uppercase letters";
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
if (casing === 'lowercase' && strValue !== strValue.toLocaleLowerCase()) {
|
|
92
|
-
return message || "Must be all lowercase letters";
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return true;
|
|
96
|
-
},
|
|
97
|
-
presence: (flag, value, message) => {
|
|
98
|
-
if (flag === 'required' && !value) {
|
|
99
|
-
return message || 'Required';
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return true;
|
|
103
|
-
},
|
|
104
|
-
regex: (options, value, message) => {
|
|
105
|
-
var pattern = options.pattern,
|
|
106
|
-
name = options.name,
|
|
107
|
-
invert = options.invert;
|
|
108
|
-
var regName = name || "\"".concat(pattern.toString(), "\"");
|
|
109
|
-
var strValue = value || '';
|
|
110
|
-
var matches = pattern.test(strValue);
|
|
111
|
-
|
|
112
|
-
if (!invert && !matches || invert && matches) {
|
|
113
|
-
var defaultMessage = invert ? "Should not match ".concat(regName, "-pattern") : "Does not match ".concat(regName, "-pattern");
|
|
114
|
-
return message || defaultMessage;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return true;
|
|
118
|
-
},
|
|
119
|
-
email: (_unused, value, message) => {
|
|
120
|
-
var strValue = "".concat(value || '').trim();
|
|
121
|
-
|
|
122
|
-
if (!strValue || emailRegex.test(strValue)) {
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return message || 'Must be a valid email address';
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
var _default = stringValidators;
|
|
131
|
-
exports.default = _default;
|
package/src/getClient.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type {SanityClient} from '@sanity/client'
|
|
2
|
-
|
|
3
|
-
let client: SanityClient
|
|
4
|
-
|
|
5
|
-
export default function getClient(): SanityClient {
|
|
6
|
-
if (!client) {
|
|
7
|
-
// Lazy-loading to not cause issues when loading schema in node environment
|
|
8
|
-
const sanityClient = require('part:@sanity/base/client')
|
|
9
|
-
client = sanityClient.withConfig({apiVersion: '1'})
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
return client
|
|
13
|
-
}
|