@sanity/validation 3.0.0-dev-preview.20 → 3.0.0-dev-preview.21
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/lib/dts/src/index.d.ts +36 -13
- package/lib/index.js +1525 -1291
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1542 -0
- package/lib/index.mjs.map +1 -0
- package/package.json +24 -18
- package/src/index.ts +3 -1
- package/src/util/requestIdleCallback.ts +31 -0
- package/src/validateDocument.test.ts +0 -80
- package/src/validateDocument.ts +82 -43
- package/src/validators/slugValidator.ts +16 -2
- package/lib/dts/src/Rule.d.ts +0 -4
- package/lib/dts/src/Rule.d.ts.map +0 -1
- package/lib/dts/src/Rule.js +0 -336
- package/lib/dts/src/Rule.js.map +0 -1
- package/lib/dts/src/ValidationError.d.ts +0 -4
- package/lib/dts/src/ValidationError.d.ts.map +0 -1
- package/lib/dts/src/ValidationError.js +0 -18
- package/lib/dts/src/ValidationError.js.map +0 -1
- package/lib/dts/src/index.d.ts.map +0 -1
- package/lib/dts/src/index.js +0 -7
- package/lib/dts/src/index.js.map +0 -1
- package/lib/dts/src/inferFromSchema.d.ts +0 -4
- package/lib/dts/src/inferFromSchema.d.ts.map +0 -1
- package/lib/dts/src/inferFromSchema.js +0 -14
- package/lib/dts/src/inferFromSchema.js.map +0 -1
- package/lib/dts/src/inferFromSchemaType.d.ts +0 -5
- package/lib/dts/src/inferFromSchemaType.d.ts.map +0 -1
- package/lib/dts/src/inferFromSchemaType.js +0 -33
- package/lib/dts/src/inferFromSchemaType.js.map +0 -1
- package/lib/dts/src/util/convertToValidationMarker.d.ts +0 -6
- package/lib/dts/src/util/convertToValidationMarker.d.ts.map +0 -1
- package/lib/dts/src/util/convertToValidationMarker.js +0 -51
- package/lib/dts/src/util/convertToValidationMarker.js.map +0 -1
- package/lib/dts/src/util/deepEquals.d.ts +0 -6
- package/lib/dts/src/util/deepEquals.d.ts.map +0 -1
- package/lib/dts/src/util/deepEquals.js +0 -65
- package/lib/dts/src/util/deepEquals.js.map +0 -1
- package/lib/dts/src/util/escapeRegex.d.ts +0 -3
- package/lib/dts/src/util/escapeRegex.d.ts.map +0 -1
- package/lib/dts/src/util/escapeRegex.js +0 -6
- package/lib/dts/src/util/escapeRegex.js.map +0 -1
- package/lib/dts/src/util/normalizeValidationRules.d.ts +0 -6
- package/lib/dts/src/util/normalizeValidationRules.d.ts.map +0 -1
- package/lib/dts/src/util/normalizeValidationRules.js +0 -104
- package/lib/dts/src/util/normalizeValidationRules.js.map +0 -1
- package/lib/dts/src/util/normalizeValidationRules.test.d.ts +0 -2
- package/lib/dts/src/util/normalizeValidationRules.test.d.ts.map +0 -1
- package/lib/dts/src/util/normalizeValidationRules.test.js +0 -150
- package/lib/dts/src/util/normalizeValidationRules.test.js.map +0 -1
- package/lib/dts/src/util/pathToString.d.ts +0 -3
- package/lib/dts/src/util/pathToString.d.ts.map +0 -1
- package/lib/dts/src/util/pathToString.js +0 -18
- package/lib/dts/src/util/pathToString.js.map +0 -1
- package/lib/dts/src/util/typeString.d.ts +0 -2
- package/lib/dts/src/util/typeString.d.ts.map +0 -1
- package/lib/dts/src/util/typeString.js +0 -23
- package/lib/dts/src/util/typeString.js.map +0 -1
- package/lib/dts/src/util/typeString.test.d.ts +0 -2
- package/lib/dts/src/util/typeString.test.d.ts.map +0 -1
- package/lib/dts/src/util/typeString.test.js +0 -24
- package/lib/dts/src/util/typeString.test.js.map +0 -1
- package/lib/dts/src/validateDocument.d.ts +0 -25
- package/lib/dts/src/validateDocument.d.ts.map +0 -1
- package/lib/dts/src/validateDocument.js +0 -165
- package/lib/dts/src/validateDocument.js.map +0 -1
- package/lib/dts/src/validateDocument.test.d.ts +0 -2
- package/lib/dts/src/validateDocument.test.d.ts.map +0 -1
- package/lib/dts/src/validateDocument.test.js +0 -717
- package/lib/dts/src/validateDocument.test.js.map +0 -1
- package/lib/dts/src/validators/arrayValidator.d.ts +0 -4
- package/lib/dts/src/validators/arrayValidator.d.ts.map +0 -1
- package/lib/dts/src/validators/arrayValidator.js +0 -79
- package/lib/dts/src/validators/arrayValidator.js.map +0 -1
- package/lib/dts/src/validators/booleanValidator.d.ts +0 -4
- package/lib/dts/src/validators/booleanValidator.d.ts.map +0 -1
- package/lib/dts/src/validators/booleanValidator.js +0 -12
- package/lib/dts/src/validators/booleanValidator.js.map +0 -1
- package/lib/dts/src/validators/dateValidator.d.ts +0 -5
- package/lib/dts/src/validators/dateValidator.d.ts.map +0 -1
- package/lib/dts/src/validators/dateValidator.js +0 -83
- package/lib/dts/src/validators/dateValidator.js.map +0 -1
- package/lib/dts/src/validators/genericValidator.d.ts +0 -4
- package/lib/dts/src/validators/genericValidator.d.ts.map +0 -1
- package/lib/dts/src/validators/genericValidator.js +0 -93
- package/lib/dts/src/validators/genericValidator.js.map +0 -1
- package/lib/dts/src/validators/numberValidator.d.ts +0 -4
- package/lib/dts/src/validators/numberValidator.d.ts.map +0 -1
- package/lib/dts/src/validators/numberValidator.js +0 -47
- package/lib/dts/src/validators/numberValidator.js.map +0 -1
- package/lib/dts/src/validators/objectValidator.d.ts +0 -4
- package/lib/dts/src/validators/objectValidator.d.ts.map +0 -1
- package/lib/dts/src/validators/objectValidator.js +0 -48
- package/lib/dts/src/validators/objectValidator.js.map +0 -1
- package/lib/dts/src/validators/slugValidator.d.ts +0 -9
- package/lib/dts/src/validators/slugValidator.d.ts.map +0 -1
- package/lib/dts/src/validators/slugValidator.js +0 -83
- package/lib/dts/src/validators/slugValidator.js.map +0 -1
- package/lib/dts/src/validators/stringValidator.d.ts +0 -4
- package/lib/dts/src/validators/stringValidator.d.ts.map +0 -1
- package/lib/dts/src/validators/stringValidator.js +0 -94
- package/lib/dts/src/validators/stringValidator.js.map +0 -1
- package/lib/dts/test/array.test.d.ts +0 -2
- package/lib/dts/test/array.test.d.ts.map +0 -1
- package/lib/dts/test/array.test.js +0 -55
- package/lib/dts/test/array.test.js.map +0 -1
- package/lib/dts/test/children.test.d.ts +0 -2
- package/lib/dts/test/children.test.d.ts.map +0 -1
- package/lib/dts/test/children.test.js +0 -70
- package/lib/dts/test/children.test.js.map +0 -1
- package/lib/dts/test/createSchema.d.ts +0 -6
- package/lib/dts/test/createSchema.d.ts.map +0 -1
- package/lib/dts/test/createSchema.js +0 -19
- package/lib/dts/test/createSchema.js.map +0 -1
- package/lib/dts/test/generics.test.d.ts +0 -2
- package/lib/dts/test/generics.test.d.ts.map +0 -1
- package/lib/dts/test/generics.test.js +0 -60
- package/lib/dts/test/generics.test.js.map +0 -1
- package/lib/dts/test/infer.test.d.ts +0 -2
- package/lib/dts/test/infer.test.d.ts.map +0 -1
- package/lib/dts/test/infer.test.js +0 -244
- package/lib/dts/test/infer.test.js.map +0 -1
- package/lib/dts/test/mocks/mockSanityClient.d.ts +0 -6
- package/lib/dts/test/mocks/mockSanityClient.d.ts.map +0 -1
- package/lib/dts/test/mocks/mockSanityClient.js +0 -8
- package/lib/dts/test/mocks/mockSanityClient.js.map +0 -1
- package/lib/dts/test/nullExport.d.ts +0 -3
- package/lib/dts/test/nullExport.d.ts.map +0 -1
- package/lib/dts/test/nullExport.js +0 -4
- package/lib/dts/test/nullExport.js.map +0 -1
- package/lib/dts/test/numbers.test.d.ts +0 -2
- package/lib/dts/test/numbers.test.d.ts.map +0 -1
- package/lib/dts/test/numbers.test.js +0 -57
- package/lib/dts/test/numbers.test.js.map +0 -1
- package/lib/dts/test/strings.test.d.ts +0 -2
- package/lib/dts/test/strings.test.d.ts.map +0 -1
- package/lib/dts/test/strings.test.js +0 -100
- package/lib/dts/test/strings.test.js.map +0 -1
- package/lib/dts/tsconfig.lib.tsbuildinfo +0 -1
- package/lib/dts/tsconfig.tsbuildinfo +0 -1
- package/lib/index.cjs +0 -1341
- package/lib/index.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inferFromSchema.d.ts","sourceRoot":"","sources":["../../../src/inferFromSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAA;AAIpC,iBAAS,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY/C;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import inferFromSchemaType from './inferFromSchemaType';
|
|
2
|
-
// Note: Mutates schema. Refactor when @sanity/schema supports middlewares
|
|
3
|
-
function inferFromSchema(schema) {
|
|
4
|
-
const typeNames = schema.getTypeNames();
|
|
5
|
-
typeNames.forEach((typeName) => {
|
|
6
|
-
const schemaType = schema.get(typeName);
|
|
7
|
-
if (schemaType) {
|
|
8
|
-
inferFromSchemaType(schemaType);
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
return schema;
|
|
12
|
-
}
|
|
13
|
-
export default inferFromSchema;
|
|
14
|
-
//# sourceMappingURL=inferFromSchema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inferFromSchema.js","sourceRoot":"","sources":["../../../src/inferFromSchema.ts"],"names":[],"mappings":"AACA,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AAEvD,0EAA0E;AAC1E,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;IAEvC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEvC,IAAI,UAAU,EAAE;YACd,mBAAmB,CAAC,UAAU,CAAC,CAAA;SAChC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { Schema, SchemaType } from '@sanity/types';
|
|
2
|
-
declare function inferFromSchemaType(typeDef: SchemaType, _schema: Schema, _visited?: Set<SchemaType>): SchemaType;
|
|
3
|
-
declare function inferFromSchemaType(typeDef: SchemaType): SchemaType;
|
|
4
|
-
export default inferFromSchemaType;
|
|
5
|
-
//# sourceMappingURL=inferFromSchemaType.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inferFromSchemaType.d.ts","sourceRoot":"","sources":["../../../src/inferFromSchemaType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,eAAe,CAAA;AAoChD,iBAAS,mBAAmB,CAC1B,OAAO,EAAE,UAAU,EAEnB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,GACzB,UAAU,CAAA;AAEb,iBAAS,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAAA;AAM7D,eAAe,mBAAmB,CAAA"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import normalizeValidationRules from './util/normalizeValidationRules';
|
|
2
|
-
function traverse(typeDef, visited) {
|
|
3
|
-
if (visited.has(typeDef)) {
|
|
4
|
-
return;
|
|
5
|
-
}
|
|
6
|
-
visited.add(typeDef);
|
|
7
|
-
typeDef.validation = normalizeValidationRules(typeDef);
|
|
8
|
-
if ('fields' in typeDef) {
|
|
9
|
-
for (const field of typeDef.fields) {
|
|
10
|
-
traverse(field.type, visited);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
if ('of' in typeDef) {
|
|
14
|
-
for (const candidate of typeDef.of) {
|
|
15
|
-
traverse(candidate, visited);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
// eslint-disable-next-line no-warning-comments
|
|
19
|
-
// @ts-expect-error TODO (eventually): `annotations` does not exist on the SchemaType yet
|
|
20
|
-
if (typeDef.annotations) {
|
|
21
|
-
// eslint-disable-next-line no-warning-comments
|
|
22
|
-
// @ts-expect-error TODO (eventually): `annotations` does not exist on the SchemaType yet
|
|
23
|
-
for (const annotation of typeDef.annotations) {
|
|
24
|
-
traverse(annotation, visited);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function inferFromSchemaType(typeDef) {
|
|
29
|
-
traverse(typeDef, new Set());
|
|
30
|
-
return typeDef;
|
|
31
|
-
}
|
|
32
|
-
export default inferFromSchemaType;
|
|
33
|
-
//# sourceMappingURL=inferFromSchemaType.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inferFromSchemaType.js","sourceRoot":"","sources":["../../../src/inferFromSchemaType.ts"],"names":[],"mappings":"AACA,OAAO,wBAAwB,MAAM,iCAAiC,CAAA;AAEtE,SAAS,QAAQ,CAAC,OAAmB,EAAE,OAAwB;IAC7D,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QACxB,OAAM;KACP;IAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAEpB,OAAO,CAAC,UAAU,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAEtD,IAAI,QAAQ,IAAI,OAAO,EAAE;QACvB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;YAClC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SAC9B;KACF;IAED,IAAI,IAAI,IAAI,OAAO,EAAE;QACnB,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,EAAE,EAAE;YAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;SAC7B;KACF;IAED,+CAA+C;IAC/C,yFAAyF;IACzF,IAAI,OAAO,CAAC,WAAW,EAAE;QACvB,+CAA+C;QAC/C,yFAAyF;QACzF,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE;YAC5C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;SAC9B;KACF;AACH,CAAC;AAWD,SAAS,mBAAmB,CAAC,OAAmB;IAC9C,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;IAC5B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ValidationMarker, ValidationError, ValidationContext } from '@sanity/types';
|
|
2
|
-
declare type ValidationErrorLike = Pick<ValidationError, 'message'> & Partial<ValidationError>;
|
|
3
|
-
export declare function isNonNullable<T>(t: T): t is NonNullable<T>;
|
|
4
|
-
export declare function convertToValidationMarker(validatorResult: true | true[] | string | string[] | ValidationError | ValidationError[] | ValidationErrorLike | ValidationErrorLike[], level: 'error' | 'warning' | 'info' | undefined, context: ValidationContext): ValidationMarker[];
|
|
5
|
-
export {};
|
|
6
|
-
//# sourceMappingURL=convertToValidationMarker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convertToValidationMarker.d.ts","sourceRoot":"","sources":["../../../../src/util/convertToValidationMarker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAA;AAIlF,aAAK,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;AAEtF,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAE1D;AAED,wBAAgB,yBAAyB,CACvC,eAAe,EACX,IAAI,GACJ,IAAI,EAAE,GACN,MAAM,GACN,MAAM,EAAE,GACR,eAAe,GACf,eAAe,EAAE,GACjB,mBAAmB,GACnB,mBAAmB,EAAE,EACzB,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EAC/C,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,EAAE,CA6DpB"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import ValidationErrorClass from '../ValidationError';
|
|
2
|
-
import pathToString from '../util/pathToString';
|
|
3
|
-
export function isNonNullable(t) {
|
|
4
|
-
return t !== null || t !== undefined;
|
|
5
|
-
}
|
|
6
|
-
export function convertToValidationMarker(validatorResult, level, context) {
|
|
7
|
-
if (!context) {
|
|
8
|
-
throw new Error('missing context');
|
|
9
|
-
}
|
|
10
|
-
if (validatorResult === true)
|
|
11
|
-
return [];
|
|
12
|
-
if (Array.isArray(validatorResult)) {
|
|
13
|
-
return validatorResult
|
|
14
|
-
.flatMap((child) => convertToValidationMarker(child, level, context))
|
|
15
|
-
.filter(isNonNullable);
|
|
16
|
-
}
|
|
17
|
-
if (typeof validatorResult === 'string') {
|
|
18
|
-
return convertToValidationMarker(new ValidationErrorClass(validatorResult), level, context);
|
|
19
|
-
}
|
|
20
|
-
if (!(validatorResult instanceof ValidationErrorClass)) {
|
|
21
|
-
// in order to accept the `ValidationErrorLike`, it at least needs to have
|
|
22
|
-
// a `message` in the object
|
|
23
|
-
if (typeof validatorResult?.message !== 'string') {
|
|
24
|
-
throw new Error(`${pathToString(context.path)}: Validator must return 'true' if valid or an error message as a string on errors`);
|
|
25
|
-
}
|
|
26
|
-
// this is the occurs when an object is returned that wasn't created with the
|
|
27
|
-
// `ValidationErrorClass`. in this case, we want to convert it to a class
|
|
28
|
-
return convertToValidationMarker(new ValidationErrorClass(validatorResult.message, validatorResult), level, context);
|
|
29
|
-
}
|
|
30
|
-
const results = [];
|
|
31
|
-
// the validator result does not include any item-level relative paths,
|
|
32
|
-
// then just return the top-level path with the validation result
|
|
33
|
-
if (!validatorResult.paths?.length) {
|
|
34
|
-
return [
|
|
35
|
-
{
|
|
36
|
-
level: level || 'error',
|
|
37
|
-
item: validatorResult,
|
|
38
|
-
path: context.path || [],
|
|
39
|
-
},
|
|
40
|
-
];
|
|
41
|
-
}
|
|
42
|
-
// if the validator result did include item-level relative paths, then for
|
|
43
|
-
// each item-level relative path, create a validation marker that concatenates
|
|
44
|
-
// the relative path with the path from the validation context
|
|
45
|
-
return results.concat(validatorResult.paths.map((path) => ({
|
|
46
|
-
path: (context.path || []).concat(path),
|
|
47
|
-
level: level || 'error',
|
|
48
|
-
item: validatorResult,
|
|
49
|
-
})));
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=convertToValidationMarker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convertToValidationMarker.js","sourceRoot":"","sources":["../../../../src/util/convertToValidationMarker.ts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,MAAM,oBAAoB,CAAA;AACrD,OAAO,YAAY,MAAM,sBAAsB,CAAA;AAI/C,MAAM,UAAU,aAAa,CAAI,CAAI;IACnC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,eAQyB,EACzB,KAA+C,EAC/C,OAA0B;IAE1B,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;KACnC;IAED,IAAI,eAAe,KAAK,IAAI;QAAE,OAAO,EAAE,CAAA;IAEvC,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;QAClC,OAAO,eAAe;aACnB,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;aACpE,MAAM,CAAC,aAAa,CAAC,CAAA;KACzB;IAED,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;QACvC,OAAO,yBAAyB,CAAC,IAAI,oBAAoB,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;KAC5F;IAED,IAAI,CAAC,CAAC,eAAe,YAAY,oBAAoB,CAAC,EAAE;QACtD,0EAA0E;QAC1E,4BAA4B;QAC5B,IAAI,OAAO,eAAe,EAAE,OAAO,KAAK,QAAQ,EAAE;YAChD,MAAM,IAAI,KAAK,CACb,GAAG,YAAY,CACb,OAAO,CAAC,IAAI,CACb,mFAAmF,CACrF,CAAA;SACF;QAED,6EAA6E;QAC7E,yEAAyE;QACzE,OAAO,yBAAyB,CAC9B,IAAI,oBAAoB,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,EAClE,KAAK,EACL,OAAO,CACR,CAAA;KACF;IAED,MAAM,OAAO,GAAuB,EAAE,CAAA;IAEtC,uEAAuE;IACvE,iEAAiE;IACjE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;QAClC,OAAO;YACL;gBACE,KAAK,EAAE,KAAK,IAAI,OAAO;gBACvB,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;aACzB;SACF,CAAA;KACF;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,8DAA8D;IAC9D,OAAO,OAAO,CAAC,MAAM,CACnB,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACvC,KAAK,EAAE,KAAK,IAAI,OAAO;QACvB,IAAI,EAAE,eAAe;KACtB,CAAC,CAAC,CACJ,CAAA;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deepEquals.d.ts","sourceRoot":"","sources":["../../../../src/util/deepEquals.ts"],"names":[],"mappings":"AAAA;;;IAGI;AAOJ,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAkElE"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Modified version of fast-deep-equal (https://github.com/epoberezkin/fast-deep-equal)
|
|
3
|
-
* MIT-licensed, copyright (c) 2017 Evgeny Poberezkin
|
|
4
|
-
**/
|
|
5
|
-
// NOTE: when converting to typescript, some of the checks were inlined (vs
|
|
6
|
-
// having them in a variable) because the type predicate type narrowing only
|
|
7
|
-
// works when type predicate is called inline in the condition that starts the
|
|
8
|
-
// control flow branch.
|
|
9
|
-
// see here: https://www.typescriptlang.org/docs/handbook/2/narrowing.html
|
|
10
|
-
export default function deepEquals(a, b) {
|
|
11
|
-
if (a === b) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
if (Array.isArray(a) && Array.isArray(b)) {
|
|
15
|
-
if (a.length != b.length)
|
|
16
|
-
return false;
|
|
17
|
-
for (let i = 0; i < a.length; i++) {
|
|
18
|
-
if (!deepEquals(a[i], b[i])) {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
if (Array.isArray(a) != Array.isArray(b)) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
if (a && b && typeof a === 'object' && typeof b === 'object') {
|
|
28
|
-
const keys = Object.keys(a);
|
|
29
|
-
if (keys.length !== Object.keys(b).length) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
if (a instanceof Date && b instanceof Date) {
|
|
33
|
-
return a.getTime() === b.getTime();
|
|
34
|
-
}
|
|
35
|
-
if (a instanceof Date != b instanceof Date) {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
if (a instanceof RegExp && b instanceof RegExp) {
|
|
39
|
-
return a.toString() == b.toString();
|
|
40
|
-
}
|
|
41
|
-
if (a instanceof RegExp != b instanceof RegExp) {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
for (let i = 0; i < keys.length; i++) {
|
|
45
|
-
if (keys[i] === '_key') {
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
for (let i = 0; i < keys.length; i++) {
|
|
53
|
-
const key = keys[i];
|
|
54
|
-
if (key === '_key') {
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
if (!deepEquals(a[key], b[key])) {
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=deepEquals.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deepEquals.js","sourceRoot":"","sources":["../../../../src/util/deepEquals.ts"],"names":[],"mappings":"AAAA;;;IAGI;AAEJ,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,uBAAuB;AACvB,0EAA0E;AAC1E,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAU,EAAE,CAAU;IACvD,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACxC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC3B,OAAO,KAAK,CAAA;aACb;SACF;QACD,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACxC,OAAO,KAAK,CAAA;KACb;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YACzC,OAAO,KAAK,CAAA;SACb;QAED,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE;YAC1C,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAA;SACnC;QAED,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE;YAC1C,OAAO,KAAK,CAAA;SACb;QAED,IAAI,CAAC,YAAY,MAAM,IAAI,CAAC,YAAY,MAAM,EAAE;YAC9C,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;SACpC;QAED,IAAI,CAAC,YAAY,MAAM,IAAI,CAAC,YAAY,MAAM,EAAE;YAC9C,OAAO,KAAK,CAAA;SACb;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;gBACtB,SAAQ;aACT;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACrD,OAAO,KAAK,CAAA;aACb;SACF;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAmB,CAAA;YACrC,IAAI,GAAG,KAAK,MAAM,EAAE;gBAClB,SAAQ;aACT;YAED,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC/B,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"escapeRegex.d.ts","sourceRoot":"","sources":["../../../../src/util/escapeRegex.ts"],"names":[],"mappings":"iCACwB,MAAM,KAAG,MAAM;AAAvC,wBAGC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"escapeRegex.js","sourceRoot":"","sources":["../../../../src/util/escapeRegex.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,eAAe,CAAC,MAAc,EAAU,EAAE;IACxC,8BAA8B;IAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,6CAA6C,EAAE,MAAM,CAAC,CAAA;AAC9E,CAAC,CAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { SchemaType, Rule } from '@sanity/types';
|
|
2
|
-
/**
|
|
3
|
-
* Takes in `SchemaValidationValue` and returns an array of `Rule` instances.
|
|
4
|
-
*/
|
|
5
|
-
export default function normalizeValidationRules(typeDef: SchemaType | undefined): Rule[];
|
|
6
|
-
//# sourceMappingURL=normalizeValidationRules.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeValidationRules.d.ts","sourceRoot":"","sources":["../../../../src/util/normalizeValidationRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,IAAI,EAAqB,MAAM,eAAe,CAAA;AA6ElE;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,EAAE,CAqCxF"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import RuleClass from '../Rule';
|
|
2
|
-
import { slugValidator } from '../validators/slugValidator';
|
|
3
|
-
const ruleConstraintTypes = {
|
|
4
|
-
array: true,
|
|
5
|
-
boolean: true,
|
|
6
|
-
date: true,
|
|
7
|
-
number: true,
|
|
8
|
-
object: true,
|
|
9
|
-
string: true,
|
|
10
|
-
};
|
|
11
|
-
const isRuleConstraint = (typeString) => typeString in ruleConstraintTypes;
|
|
12
|
-
function getTypeChain(type, visited) {
|
|
13
|
-
if (!type)
|
|
14
|
-
return [];
|
|
15
|
-
if (visited.has(type))
|
|
16
|
-
return [];
|
|
17
|
-
visited.add(type);
|
|
18
|
-
const next = type.type ? getTypeChain(type.type, visited) : [];
|
|
19
|
-
return [...next, type];
|
|
20
|
-
}
|
|
21
|
-
function baseRuleReducer(inputRule, type) {
|
|
22
|
-
let baseRule = inputRule;
|
|
23
|
-
if (isRuleConstraint(type.jsonType)) {
|
|
24
|
-
baseRule = baseRule.type(type.jsonType);
|
|
25
|
-
}
|
|
26
|
-
const typeOptionsList =
|
|
27
|
-
// if type.options is truthy
|
|
28
|
-
type?.options &&
|
|
29
|
-
// and type.options is an object (non-null from the previous)
|
|
30
|
-
typeof type.options === 'object' &&
|
|
31
|
-
// and if `list` is in options
|
|
32
|
-
'list' in type.options &&
|
|
33
|
-
// then finally access the list
|
|
34
|
-
type.options.list;
|
|
35
|
-
if (Array.isArray(typeOptionsList)) {
|
|
36
|
-
baseRule = baseRule.valid(typeOptionsList.map((option) => extractValueFromListOption(option, type)));
|
|
37
|
-
}
|
|
38
|
-
if (type.name === 'datetime')
|
|
39
|
-
return baseRule.type('Date');
|
|
40
|
-
if (type.name === 'date')
|
|
41
|
-
return baseRule.type('Date');
|
|
42
|
-
if (type.name === 'url')
|
|
43
|
-
return baseRule.uri();
|
|
44
|
-
if (type.name === 'slug')
|
|
45
|
-
return baseRule.custom(slugValidator);
|
|
46
|
-
if (type.name === 'reference')
|
|
47
|
-
return baseRule.reference();
|
|
48
|
-
if (type.name === 'email')
|
|
49
|
-
return baseRule.email();
|
|
50
|
-
return baseRule;
|
|
51
|
-
}
|
|
52
|
-
function hasValueField(typeDef) {
|
|
53
|
-
if (!typeDef)
|
|
54
|
-
return false;
|
|
55
|
-
if (!('fields' in typeDef) && typeDef.type)
|
|
56
|
-
return hasValueField(typeDef.type);
|
|
57
|
-
if (!('fields' in typeDef))
|
|
58
|
-
return false;
|
|
59
|
-
if (!Array.isArray(typeDef.fields))
|
|
60
|
-
return false;
|
|
61
|
-
return typeDef.fields.some((field) => field.name === 'value');
|
|
62
|
-
}
|
|
63
|
-
function extractValueFromListOption(option, typeDef) {
|
|
64
|
-
// If you define a `list` option with object items, where the item has a `value` field,
|
|
65
|
-
// we don't want to treat that as the value but rather the surrounding object
|
|
66
|
-
// This differs from the case where you have a title/value pair setup for a string/number, for instance
|
|
67
|
-
if (typeDef.jsonType === 'object' && hasValueField(typeDef))
|
|
68
|
-
return option;
|
|
69
|
-
return option.value === undefined
|
|
70
|
-
? option
|
|
71
|
-
: option.value;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Takes in `SchemaValidationValue` and returns an array of `Rule` instances.
|
|
75
|
-
*/
|
|
76
|
-
export default function normalizeValidationRules(typeDef) {
|
|
77
|
-
if (!typeDef) {
|
|
78
|
-
return [];
|
|
79
|
-
}
|
|
80
|
-
const validation = typeDef.validation;
|
|
81
|
-
if (Array.isArray(validation)) {
|
|
82
|
-
return validation.flatMap((i) => normalizeValidationRules({
|
|
83
|
-
...typeDef,
|
|
84
|
-
validation: i,
|
|
85
|
-
}));
|
|
86
|
-
}
|
|
87
|
-
if (validation instanceof RuleClass) {
|
|
88
|
-
return [validation];
|
|
89
|
-
}
|
|
90
|
-
const baseRule =
|
|
91
|
-
// using an object + Object.values to de-dupe the type chain by type name
|
|
92
|
-
Object.values(getTypeChain(typeDef, new Set()).reduce((acc, type) => {
|
|
93
|
-
acc[type.name] = type;
|
|
94
|
-
return acc;
|
|
95
|
-
}, {})).reduce(baseRuleReducer, new RuleClass(typeDef));
|
|
96
|
-
if (!validation) {
|
|
97
|
-
return [baseRule];
|
|
98
|
-
}
|
|
99
|
-
return normalizeValidationRules({
|
|
100
|
-
...typeDef,
|
|
101
|
-
validation: validation(baseRule),
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=normalizeValidationRules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeValidationRules.js","sourceRoot":"","sources":["../../../../src/util/normalizeValidationRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeValidationRules.test.d.ts","sourceRoot":"","sources":["../../../../src/util/normalizeValidationRules.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import RuleClass from '../Rule';
|
|
2
|
-
import normalizeValidationRules from './normalizeValidationRules';
|
|
3
|
-
describe('normalizeValidationRules', () => {
|
|
4
|
-
// see `infer.test.ts` for more related tests.
|
|
5
|
-
// note the Schema.compile runs this function indirectly via `inferFromSchema`
|
|
6
|
-
it('utilizes schema types to infer base rules', () => {
|
|
7
|
-
const coolNumberType = {
|
|
8
|
-
jsonType: 'number',
|
|
9
|
-
name: 'coolNumber',
|
|
10
|
-
};
|
|
11
|
-
const rules = normalizeValidationRules(coolNumberType);
|
|
12
|
-
expect(rules).toHaveLength(1);
|
|
13
|
-
const [rule] = rules;
|
|
14
|
-
expect(rule).toBeInstanceOf(RuleClass);
|
|
15
|
-
expect(rule._rules).toMatchObject([
|
|
16
|
-
{
|
|
17
|
-
constraint: 'Number',
|
|
18
|
-
flag: 'type',
|
|
19
|
-
},
|
|
20
|
-
]);
|
|
21
|
-
});
|
|
22
|
-
it('follows the type chain to determine the base rule', () => {
|
|
23
|
-
const sickDatetime = {
|
|
24
|
-
type: {
|
|
25
|
-
type: {
|
|
26
|
-
jsonType: 'string',
|
|
27
|
-
},
|
|
28
|
-
name: 'datetime',
|
|
29
|
-
},
|
|
30
|
-
name: 'sickDatetime',
|
|
31
|
-
};
|
|
32
|
-
const rules = normalizeValidationRules(sickDatetime);
|
|
33
|
-
expect(rules).toHaveLength(1);
|
|
34
|
-
const [rule] = rules;
|
|
35
|
-
// type chain is applied from inner to outer so the resulting type should be
|
|
36
|
-
// date instead of string
|
|
37
|
-
expect(rule._rules).toMatchObject([
|
|
38
|
-
{
|
|
39
|
-
constraint: 'Date',
|
|
40
|
-
flag: 'type',
|
|
41
|
-
},
|
|
42
|
-
]);
|
|
43
|
-
});
|
|
44
|
-
it('converts a validation function to a rule instance', () => {
|
|
45
|
-
const coolStringType = {
|
|
46
|
-
jsonType: 'string',
|
|
47
|
-
name: 'coolString',
|
|
48
|
-
validation: (rule) => rule.uppercase(),
|
|
49
|
-
};
|
|
50
|
-
const rules = normalizeValidationRules(coolStringType);
|
|
51
|
-
expect(rules).toHaveLength(1);
|
|
52
|
-
const [rule] = rules;
|
|
53
|
-
expect(rule).toBeInstanceOf(RuleClass);
|
|
54
|
-
expect(rule._rules).toMatchObject([
|
|
55
|
-
{
|
|
56
|
-
constraint: 'String',
|
|
57
|
-
flag: 'type',
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
constraint: 'uppercase',
|
|
61
|
-
flag: 'stringCasing',
|
|
62
|
-
},
|
|
63
|
-
]);
|
|
64
|
-
});
|
|
65
|
-
it('converts falsy values to an empty array', () => {
|
|
66
|
-
expect(normalizeValidationRules(undefined)).toEqual([]);
|
|
67
|
-
});
|
|
68
|
-
it('converts schema list options with titles to `rule.valid` constraints', () => {
|
|
69
|
-
const stringTypeWithOptions = {
|
|
70
|
-
jsonType: 'string',
|
|
71
|
-
name: 'stringTypeWithOptions',
|
|
72
|
-
options: {
|
|
73
|
-
list: [
|
|
74
|
-
{ title: 'Blue', value: 'blue' },
|
|
75
|
-
{ title: 'Red', value: 'red' },
|
|
76
|
-
],
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
const rules = normalizeValidationRules(stringTypeWithOptions);
|
|
80
|
-
expect(rules).toHaveLength(1);
|
|
81
|
-
const [rule] = rules;
|
|
82
|
-
expect(rule).toBeInstanceOf(RuleClass);
|
|
83
|
-
expect(rule._rules).toMatchObject([
|
|
84
|
-
{
|
|
85
|
-
constraint: 'String',
|
|
86
|
-
flag: 'type',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
constraint: ['blue', 'red'],
|
|
90
|
-
flag: 'valid',
|
|
91
|
-
},
|
|
92
|
-
]);
|
|
93
|
-
});
|
|
94
|
-
it('converts schema list options with strings only to `rule.valid` constraints', () => {
|
|
95
|
-
const stringTypeWithOptions = {
|
|
96
|
-
jsonType: 'string',
|
|
97
|
-
name: 'stringTypeWithOptions',
|
|
98
|
-
options: {
|
|
99
|
-
list: ['blue', 'red'],
|
|
100
|
-
},
|
|
101
|
-
};
|
|
102
|
-
const rules = normalizeValidationRules(stringTypeWithOptions);
|
|
103
|
-
expect(rules).toHaveLength(1);
|
|
104
|
-
const [rule] = rules;
|
|
105
|
-
expect(rule).toBeInstanceOf(RuleClass);
|
|
106
|
-
expect(rule._rules).toMatchObject([
|
|
107
|
-
{
|
|
108
|
-
constraint: 'String',
|
|
109
|
-
flag: 'type',
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
constraint: ['blue', 'red'],
|
|
113
|
-
flag: 'valid',
|
|
114
|
-
},
|
|
115
|
-
]);
|
|
116
|
-
});
|
|
117
|
-
it('converts arrays of validation', () => {
|
|
118
|
-
const coolNumberType = {
|
|
119
|
-
jsonType: 'number',
|
|
120
|
-
name: 'coolNumber',
|
|
121
|
-
validation: [(rule) => rule.greaterThan(3), RuleClass.number().lessThan(5)],
|
|
122
|
-
};
|
|
123
|
-
const rules = normalizeValidationRules(coolNumberType);
|
|
124
|
-
expect(rules).toHaveLength(2);
|
|
125
|
-
const [first, second] = rules;
|
|
126
|
-
expect(first).toBeInstanceOf(RuleClass);
|
|
127
|
-
expect(first._rules).toMatchObject([
|
|
128
|
-
{
|
|
129
|
-
constraint: 'Number',
|
|
130
|
-
flag: 'type',
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
constraint: 3,
|
|
134
|
-
flag: 'greaterThan',
|
|
135
|
-
},
|
|
136
|
-
]);
|
|
137
|
-
expect(second).toBeInstanceOf(RuleClass);
|
|
138
|
-
expect(second._rules).toMatchObject([
|
|
139
|
-
{
|
|
140
|
-
constraint: 'Number',
|
|
141
|
-
flag: 'type',
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
constraint: 5,
|
|
145
|
-
flag: 'lessThan',
|
|
146
|
-
},
|
|
147
|
-
]);
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
//# sourceMappingURL=normalizeValidationRules.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeValidationRules.test.js","sourceRoot":"","sources":["../../../../src/util/normalizeValidationRules.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pathToString.d.ts","sourceRoot":"","sources":["../../../../src/util/pathToString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAgB,MAAM,eAAe,CAAA;AAEjD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,IAAI,GAAE,IAAI,GAAG,SAAc,GAAG,MAAM,CAkBxE"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { isKeyedObject } from '@sanity/types';
|
|
2
|
-
export default function pathToString(path = []) {
|
|
3
|
-
return path.reduce((target, segment, i) => {
|
|
4
|
-
const segmentType = typeof segment;
|
|
5
|
-
if (segmentType === 'number') {
|
|
6
|
-
return `${target}[${segment}]`;
|
|
7
|
-
}
|
|
8
|
-
if (segmentType === 'string') {
|
|
9
|
-
const separator = i === 0 ? '' : '.';
|
|
10
|
-
return `${target}${separator}${segment}`;
|
|
11
|
-
}
|
|
12
|
-
if (isKeyedObject(segment)) {
|
|
13
|
-
return `${target}[_key=="${segment._key}"]`;
|
|
14
|
-
}
|
|
15
|
-
throw new Error(`Unsupported path segment "${segment}"`);
|
|
16
|
-
}, '');
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=pathToString.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pathToString.js","sourceRoot":"","sources":["../../../../src/util/pathToString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,aAAa,EAAC,MAAM,eAAe,CAAA;AAEjD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAyB,EAAE;IAC9D,OAAO,IAAI,CAAC,MAAM,CAAS,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;QAChD,MAAM,WAAW,GAAG,OAAO,OAAO,CAAA;QAClC,IAAI,WAAW,KAAK,QAAQ,EAAE;YAC5B,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,CAAA;SAC/B;QAED,IAAI,WAAW,KAAK,QAAQ,EAAE;YAC5B,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;YACpC,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,CAAA;SACzC;QAED,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;YAC1B,OAAO,GAAG,MAAM,WAAW,OAAO,CAAC,IAAI,IAAI,CAAA;SAC5C;QAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,GAAG,CAAC,CAAA;IAC1D,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typeString.d.ts","sourceRoot":"","sources":["../../../../src/util/typeString.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CASvD"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
// this file was adapted from a previous dependency `type-of-is`
|
|
2
|
-
// https://github.com/stephenhandley/type-of-is/blob/7138a7e79f5af7c286bf8123f60843a91aaebf38/index.js
|
|
3
|
-
const _toString = {}.toString;
|
|
4
|
-
const builtIns = [Object, Function, Array, String, Boolean, Number, Date, RegExp, Error];
|
|
5
|
-
function isBuiltIn(_constructor) {
|
|
6
|
-
for (let i = 0; i < builtIns.length; i++) {
|
|
7
|
-
if (builtIns[i] === _constructor)
|
|
8
|
-
return true;
|
|
9
|
-
}
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
export default function typeString(obj) {
|
|
13
|
-
// [object Blah] -> Blah
|
|
14
|
-
const stringType = _toString.call(obj).slice(8, -1);
|
|
15
|
-
if (obj === null || obj === undefined)
|
|
16
|
-
return stringType.toLowerCase();
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
18
|
-
const constructorType = obj.constructor;
|
|
19
|
-
if (constructorType && !isBuiltIn(constructorType))
|
|
20
|
-
return constructorType.name;
|
|
21
|
-
return stringType;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=typeString.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typeString.js","sourceRoot":"","sources":["../../../../src/util/typeString.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,sGAAsG;AACtG,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAA;AAE7B,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAExF,SAAS,SAAS,CAAC,YAAqB;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,YAAY;YAAE,OAAO,IAAI,CAAA;KAC9C;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,GAAY;IAC7C,wBAAwB;IACxB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACnD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,WAAW,EAAE,CAAA;IAEtE,wDAAwD;IACxD,MAAM,eAAe,GAAI,GAAc,CAAC,WAAW,CAAA;IACnD,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;QAAE,OAAO,eAAe,CAAC,IAAI,CAAA;IAC/E,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typeString.test.d.ts","sourceRoot":"","sources":["../../../../src/util/typeString.test.ts"],"names":[],"mappings":""}
|