shapedef 1.0.17 → 1.0.19

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.
@@ -4,5 +4,6 @@ export type Prettify<T> = {
4
4
  } & {};
5
5
  export type UnionToIntersection<union> = (union extends any ? (k: union) => void : never) extends ((k: infer intersection) => void) ? intersection : never;
6
6
  export type IsUnion<a> = [a] extends [UnionToIntersection<a>] ? false : true;
7
+ export type IsTuple<T> = T extends readonly any[] ? number extends T["length"] ? false : true : false;
7
8
  export type UnionToTuple<union, output extends any[] = []> = UnionToIntersection<union extends any ? (t: union) => union : never> extends ((_: any) => infer elem) ? UnionToTuple<Exclude<union, elem>, [elem, ...output]> : output;
8
9
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,mBAAmB,CAAC,KAAK,IACnC,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CACvD,CAAC,CAAC,EAAE,MAAM,YAAY,KAAK,IAAI,CAChC,GACC,YAAY,GACZ,KAAK,CAAC;AAEV,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAE7E,MAAM,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,IACvD,mBAAmB,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,SAAS,CAC3E,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,IAAI,CACvB,GACC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GACrD,MAAM,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,mBAAmB,CAAC,KAAK,IACnC,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CACvD,CAAC,CAAC,EAAE,MAAM,YAAY,KAAK,IAAI,CAChC,GACC,YAAY,GACZ,KAAK,CAAC;AAEV,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAE7E,MAAM,MAAM,OAAO,CAAC,CAAC,IACnB,CAAC,SAAS,SAAS,GAAG,EAAE,GACtB,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GACxB,KAAK,GACL,IAAI,GACN,KAAK,CAAC;AAEV,MAAM,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,IACvD,mBAAmB,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,SAAS,CAC3E,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,IAAI,CACvB,GACC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GACrD,MAAM,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Prettify, TupleOf } from "./common/types";
1
+ import { IsTuple, IsUnion, Prettify, TupleOf, UnionToTuple } from "./common/types";
2
2
  export declare const ShapeBrandSymbol: unique symbol;
3
3
  export type ShapeBrandSymbol = typeof ShapeBrandSymbol;
4
4
  export type ShapeAnnotation = {
@@ -30,6 +30,18 @@ export type LooseShape = {
30
30
  export type OutputOfShape<T> = [
31
31
  T
32
32
  ] extends [LooseShape] ? T["__phantom"]["out"] : never;
33
+ type _TupleToShapes<T extends readonly any[]> = T extends [] ? [] : T extends [infer H, ...infer Rest extends readonly any[]] ? [
34
+ _ToShape<H>,
35
+ ..._TupleToShapes<Rest>
36
+ ] : Shape[];
37
+ export type _ToShape<U, T extends Exclude<U, undefined> = Exclude<U, undefined>> = [
38
+ T
39
+ ] extends [Shape] ? T : IsUnion<T> extends true ? UnionToTuple<T> extends infer Tup extends readonly any[] ? ShapeUnion<_TupleToShapes<Tup>> : ShapeUnknown : IsTuple<T> extends true ? T extends [infer H, ...infer Rest extends readonly any[]] ? ShapeTuple<[_ToShape<H>, ..._TupleToShapes<Rest>]> : ShapeUnknown : [T] extends [Array<infer A>] ? ShapeArray<_ToShape<A>> : [T] extends [Date] ? ShapeDate : [T] extends [null] ? ShapeNil : [T] extends [string] ? ShapeStr : [T] extends [number] ? ShapeNumber : [T] extends [boolean] ? ShapeBool : [T] extends [Record<string, any>] ? ShapeMapping<{
40
+ [P in keyof T & string]: _ToShape<T[P]>;
41
+ }> : ShapeUnknown;
42
+ export type ToShape<T> = [
43
+ _ToShape<T>
44
+ ] extends [infer S extends Shape] ? S : ShapeUnknown;
33
45
  export type AnnoOfShape<T> = [T] extends [LooseShape] ? T["anno"] : never;
34
46
  export type ShapeIsOptional<T> = [
35
47
  AnnoOfShape<T>["optional"]
@@ -166,4 +178,5 @@ export declare namespace annotate {
166
178
  preferLiterals?: boolean;
167
179
  }): Shape;
168
180
  }
181
+ export {};
169
182
  //# sourceMappingURL=shape.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GACxB;IACE,EAAE,EAAE,IAAI,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAkBN,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAyGnE;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAG3E;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,CAAC,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAwEN,wBAAgB,KAAK,CAAC,CAAC,SAAS,KAAK,EACnC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,CAAC,GACH,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAK/B"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GACxB;IACE,EAAE,EAAE,IAAI,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAkBN,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAmJnE;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAG3E;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,CAAC,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAwEN,wBAAgB,KAAK,CAAC,CAAC,SAAS,KAAK,EACnC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,CAAC,GACH,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAK/B"}
@@ -20,16 +20,47 @@ function validate(x, shape) {
20
20
  case "literal-float":
21
21
  case "literal-number":
22
22
  return maybe(x === shape.value, `expected literal ${shape.value}`, path);
23
- case "str":
24
- return maybe(typeof x === "string", "expected a string", path);
23
+ case "str": {
24
+ if (typeof x !== "string")
25
+ return err("expected a string", path);
26
+ if (shape.anno.min !== undefined && x.length < shape.anno.min)
27
+ return err(`expected string length >= ${shape.anno.min}`, path);
28
+ if (shape.anno.max !== undefined && x.length > shape.anno.max)
29
+ return err(`expected string length <= ${shape.anno.max}`, path);
30
+ if (shape.anno.pattern !== undefined &&
31
+ !new RegExp(shape.anno.pattern).test(x))
32
+ return err(`expected string to match pattern /${shape.anno.pattern}/`, path);
33
+ return ok();
34
+ }
25
35
  case "bool":
26
36
  return maybe(typeof x === "boolean", "expected a boolean", path);
27
- case "int":
28
- return maybe(typeof x === "number" && Number.isInteger(x), "expected an integer", path);
29
- case "float":
30
- return maybe(typeof x === "number" && !Number.isInteger(x), "expected a float", path);
31
- case "number":
32
- return maybe(typeof x === "number", "expected a number", path);
37
+ case "int": {
38
+ if (!(typeof x === "number" && Number.isInteger(x)))
39
+ return err("expected an integer", path);
40
+ if (shape.anno.min !== undefined && x < shape.anno.min)
41
+ return err(`expected value >= ${shape.anno.min}`, path);
42
+ if (shape.anno.max !== undefined && x > shape.anno.max)
43
+ return err(`expected value <= ${shape.anno.max}`, path);
44
+ return ok();
45
+ }
46
+ case "float": {
47
+ if (!(typeof x === "number" && !Number.isInteger(x)))
48
+ return err("expected a float", path);
49
+ if (shape.anno.min !== undefined && x < shape.anno.min)
50
+ return err(`expected value >= ${shape.anno.min}`, path);
51
+ if (shape.anno.max !== undefined && x > shape.anno.max)
52
+ return err(`expected value <= ${shape.anno.max}`, path);
53
+ return ok();
54
+ }
55
+ case "number": {
56
+ if (typeof x !== "number")
57
+ return err("expected a number", path);
58
+ if (shape.anno.min !== undefined && x < shape.anno.min)
59
+ return err(`expected value >= ${shape.anno.min}`, path);
60
+ if (shape.anno.max !== undefined && x > shape.anno.max)
61
+ return err(`expected value <= ${shape.anno.max}`, path);
62
+ return ok();
63
+ }
33
64
  case "nil":
34
65
  return maybe(x === null, "expected null", path);
35
66
  case "date":
@@ -39,12 +70,28 @@ function validate(x, shape) {
39
70
  case "array": {
40
71
  if (!Array.isArray(x))
41
72
  return err("expected an array", path);
73
+ if (shape.anno.min !== undefined && x.length < shape.anno.min)
74
+ return err(`expected array length >= ${shape.anno.min}`, path);
75
+ if (shape.anno.max !== undefined && x.length > shape.anno.max)
76
+ return err(`expected array length <= ${shape.anno.max}`, path);
42
77
  for (let i = 0; i < x.length; i++) {
43
78
  const item = x[i];
44
79
  const result = check(item, shape.item, [...path, i]);
45
80
  if (!result.ok)
46
81
  return result;
47
82
  }
83
+ if (shape.anno.uniqueWithin) {
84
+ const seen = new Set();
85
+ for (let i = 0; i < x.length; i++) {
86
+ const key = JSON.stringify(x[i]);
87
+ if (seen.has(key))
88
+ return err(`expected all array elements to be unique`, [
89
+ ...path,
90
+ i,
91
+ ]);
92
+ seen.add(key);
93
+ }
94
+ }
48
95
  return ok();
49
96
  }
50
97
  case "mapping": {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ export type Prettify<T> = {
4
4
  } & {};
5
5
  export type UnionToIntersection<union> = (union extends any ? (k: union) => void : never) extends ((k: infer intersection) => void) ? intersection : never;
6
6
  export type IsUnion<a> = [a] extends [UnionToIntersection<a>] ? false : true;
7
+ export type IsTuple<T> = T extends readonly any[] ? number extends T["length"] ? false : true : false;
7
8
  export type UnionToTuple<union, output extends any[] = []> = UnionToIntersection<union extends any ? (t: union) => union : never> extends ((_: any) => infer elem) ? UnionToTuple<Exclude<union, elem>, [elem, ...output]> : output;
8
9
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,mBAAmB,CAAC,KAAK,IACnC,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CACvD,CAAC,CAAC,EAAE,MAAM,YAAY,KAAK,IAAI,CAChC,GACC,YAAY,GACZ,KAAK,CAAC;AAEV,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAE7E,MAAM,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,IACvD,mBAAmB,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,SAAS,CAC3E,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,IAAI,CACvB,GACC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GACrD,MAAM,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,mBAAmB,CAAC,KAAK,IACnC,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CACvD,CAAC,CAAC,EAAE,MAAM,YAAY,KAAK,IAAI,CAChC,GACC,YAAY,GACZ,KAAK,CAAC;AAEV,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAE7E,MAAM,MAAM,OAAO,CAAC,CAAC,IACnB,CAAC,SAAS,SAAS,GAAG,EAAE,GACtB,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GACxB,KAAK,GACL,IAAI,GACN,KAAK,CAAC;AAEV,MAAM,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,IACvD,mBAAmB,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,SAAS,CAC3E,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,IAAI,CACvB,GACC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GACrD,MAAM,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Prettify, TupleOf } from "./common/types";
1
+ import { IsTuple, IsUnion, Prettify, TupleOf, UnionToTuple } from "./common/types";
2
2
  export declare const ShapeBrandSymbol: unique symbol;
3
3
  export type ShapeBrandSymbol = typeof ShapeBrandSymbol;
4
4
  export type ShapeAnnotation = {
@@ -30,6 +30,18 @@ export type LooseShape = {
30
30
  export type OutputOfShape<T> = [
31
31
  T
32
32
  ] extends [LooseShape] ? T["__phantom"]["out"] : never;
33
+ type _TupleToShapes<T extends readonly any[]> = T extends [] ? [] : T extends [infer H, ...infer Rest extends readonly any[]] ? [
34
+ _ToShape<H>,
35
+ ..._TupleToShapes<Rest>
36
+ ] : Shape[];
37
+ export type _ToShape<U, T extends Exclude<U, undefined> = Exclude<U, undefined>> = [
38
+ T
39
+ ] extends [Shape] ? T : IsUnion<T> extends true ? UnionToTuple<T> extends infer Tup extends readonly any[] ? ShapeUnion<_TupleToShapes<Tup>> : ShapeUnknown : IsTuple<T> extends true ? T extends [infer H, ...infer Rest extends readonly any[]] ? ShapeTuple<[_ToShape<H>, ..._TupleToShapes<Rest>]> : ShapeUnknown : [T] extends [Array<infer A>] ? ShapeArray<_ToShape<A>> : [T] extends [Date] ? ShapeDate : [T] extends [null] ? ShapeNil : [T] extends [string] ? ShapeStr : [T] extends [number] ? ShapeNumber : [T] extends [boolean] ? ShapeBool : [T] extends [Record<string, any>] ? ShapeMapping<{
40
+ [P in keyof T & string]: _ToShape<T[P]>;
41
+ }> : ShapeUnknown;
42
+ export type ToShape<T> = [
43
+ _ToShape<T>
44
+ ] extends [infer S extends Shape] ? S : ShapeUnknown;
33
45
  export type AnnoOfShape<T> = [T] extends [LooseShape] ? T["anno"] : never;
34
46
  export type ShapeIsOptional<T> = [
35
47
  AnnoOfShape<T>["optional"]
@@ -166,4 +178,5 @@ export declare namespace annotate {
166
178
  preferLiterals?: boolean;
167
179
  }): Shape;
168
180
  }
181
+ export {};
169
182
  //# sourceMappingURL=shape.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACb,MAAM,gBAAgB,CAAC;AAGxB,eAAO,MAAM,gBAAgB,eAAkB,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,IACzB;IAAC,CAAC;CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAE3D,KAAK,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,IAC1C,CAAC,SAAS,EAAE,GAAG,EAAE,GACf,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,SAAS,SAAS,GAAG,EAAE,CAAC,GACzD;IAAC,QAAQ,CAAC,CAAC,CAAC;IAAE,GAAG,cAAc,CAAC,IAAI,CAAC;CAAC,GACtC,KAAK,EAAE,CAAC;AAEZ,MAAM,MAAM,QAAQ,CAClB,CAAC,EACD,CAAC,SAAS,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,IAEvD;IAAC,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACvB,YAAY,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,SAAS,GAAG,EAAE,GACtD,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAC/B,YAAY,GACd,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACvB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,SAAS,SAAS,GAAG,EAAE,CAAC,GACvD,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,GAClD,YAAY,GACd,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GACtD,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,GAC9B,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,GAC7B,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,GAC/B,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,WAAW,GAClC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,GACjC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GACjC,YAAY,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,GACzD,YAAY,CAAC;AAEjB,MAAM,MAAM,OAAO,CAAC,CAAC,IACnB;IAAC,QAAQ,CAAC,CAAC,CAAC;CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;AAEnE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,eAAe,CAAC,CAAC,IAC3B;IAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAE7D,MAAM,MAAM,aAAa,CACvB,CAAC,SAAS,UAAU,EACpB,IAAI,SAAS,eAAe,IAC1B,CAAC,GAAG;IAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,SAAS,CAAC,IAAI,SAAS,MAAM,CAAE,SAAQ,UAAU;IAChE,IAAI,EAAE,IAAI,CAAC;IACX,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe,CAC9B,IAAI,SAAS,MAAM,EACnB,GAAG,CACH,SAAQ,SAAS,CAAC,IAAI,CAAC;IACvB,SAAS,EAAE;QAAE,GAAG,EAAE,GAAG,CAAA;KAAE,CAAC;CACzB;AAED,MAAM,WAAW,UAAW,SAAQ,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC;CAAG;AACvE,MAAM,WAAW,QAAS,SAAQ,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;CAAG;AACnE,MAAM,WAAW,WAAY,SAAQ,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC;CAAG;AACzE,MAAM,WAAW,SAAU,SAAQ,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG;AACtE,MAAM,WAAW,QAAS,SAAQ,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;CAAG;AACnE,MAAM,WAAW,SAAU,SAAQ,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;CAAG;AACnE,MAAM,WAAW,QAAS,SAAQ,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC;CAAG;AACjE,MAAM,WAAW,YAAa,SAAQ,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC;CAAG;AAE5E,MAAM,WAAW,iBAAiB,CAChC,KAAK,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC;IAC/C,KAAK,EAAE,KAAK,CAAC;CACd;AACD,MAAM,WAAW,eAAe,CAC9B,KAAK,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,eAAe,CAAC,aAAa,EAAE,KAAK,CAAC;IAC7C,KAAK,EAAE,KAAK,CAAC;CACd;AACD,MAAM,WAAW,kBAAkB,CACjC,KAAK,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,eAAe,CAAC,gBAAgB,EAAE,KAAK,CAAC;IAChD,KAAK,EAAE,KAAK,CAAC;CACd;AACD,MAAM,WAAW,gBAAgB,CAC/B,KAAK,SAAS,OAAO,GAAG,OAAO,CAC/B,SAAQ,eAAe,CAAC,cAAc,EAAE,KAAK,CAAC;IAC9C,KAAK,EAAE,KAAK,CAAC;CACd;AACD,MAAM,WAAW,eAAe,CAC9B,KAAK,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,eAAe,CAAC,aAAa,EAAE,KAAK,CAAC;IAC7C,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,QAAQ,CACvB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,KAAK,GAAG,YAAY,CACjC,SAAQ,SAAS,CAAC,KAAK,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,SAAS,EAAE;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU,CACzB,IAAI,SAAS,KAAK,GAAG,KAAK,CAC1B,SAAQ,SAAS,CAAC,OAAO,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE;QAAE,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,UAAU,CACzB,GAAG,CAAC,KAAK,SAAS,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CACjD,SAAQ,SAAS,CAAC,OAAO,CAAC;IAC1B,GAAG,EAAE,KAAK,CAAC;IACX,SAAS,EAAE;QAAE,GAAG,EAAE;YAAE,CAAC,UAAU,CAAC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;SAAE,CAAA;KAAE,CAAC;CAChE;AAED,MAAM,WAAW,YAAY,CAC3B,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACzD,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE;QACT,GAAG,EAAE,QAAQ,CACX;YACE,CAAC,UAAU,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACnE,KAAK,GACL,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5B,GAAG;YACF,CAAC,UAAU,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACnE,CAAC,GACD,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACjC,CACF,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,WAAW,CAC1B,IAAI,SAAS,MAAM,GAAG,MAAM,CAC5B,SAAQ,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC3C,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,UAAU,CACzB,GAAG,CAAC,GAAG,SAAS,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAC7E,SAAQ,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,GAAG,EAAE,GAAG,CAAC;CACV;AAED,MAAM,MAAM,KAAK,GACb,UAAU,GACV,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,iBAAiB,GACjB,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,UAAU,GACV,WAAW,GACX,UAAU,CAAC;AASf,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAK9C;AAED,yBAAiB,MAAM,CAAC;IACtB,SAAgB,KAAK,IAAI,UAAU,CAMlC;IAED,SAAgB,GAAG,IAAI,QAAQ,CAM9B;IAED,SAAgB,MAAM,IAAI,WAAW,CAMpC;IAED,SAAgB,IAAI,IAAI,SAAS,CAMhC;IAED,SAAgB,GAAG,IAAI,QAAQ,CAM9B;IAED,SAAgB,IAAI,IAAI,SAAS,CAMhC;IAED,SAAgB,GAAG,IAAI,QAAQ,CAM9B;IAED,SAAgB,OAAO,IAAI,YAAY,CAMtC;IAED,SAAgB,YAAY,CAAC,KAAK,SAAS,MAAM,EAC/C,KAAK,EAAE,KAAK,GACX,iBAAiB,CAAC,KAAK,CAAC,CAO1B;IAED,SAAgB,UAAU,CAAC,KAAK,SAAS,MAAM,EAC7C,KAAK,EAAE,KAAK,GACX,eAAe,CAAC,KAAK,CAAC,CAOxB;IAED,SAAgB,aAAa,CAAC,KAAK,SAAS,MAAM,EAChD,KAAK,EAAE,KAAK,GACX,kBAAkB,CAAC,KAAK,CAAC,CAO3B;IAED,SAAgB,WAAW,CAAC,KAAK,SAAS,OAAO,EAC/C,KAAK,EAAE,KAAK,GACX,gBAAgB,CAAC,KAAK,CAAC,CAOzB;IAED,SAAgB,UAAU,CAAC,KAAK,SAAS,MAAM,EAC7C,KAAK,EAAE,KAAK,GACX,eAAe,CAAC,KAAK,CAAC,CAOxB;IAED,SAAgB,OAAO,CAAC,KAAK,SAAS,MAAM,EAC1C,KAAK,EAAE,KAAK,GACX,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7B,SAAgB,OAAO,CAAC,KAAK,SAAS,OAAO,EAC3C,KAAK,EAAE,KAAK,GACX,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC3B,SAAgB,OAAO,CAAC,KAAK,SAAS,MAAM,EAC1C,KAAK,EAAE,KAAK,GACX,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1B,SAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAC/B,kBAAkB,GAAG,gBAAgB,GAAG,eAAe,CAAC;IAS3D,SAAgB,GAAG,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,SAAS,KAAK,GAAG,YAAY,EACxE,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE,IAAI,GACV,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAYtB;IAED,SAAgB,KAAK,CAAC,IAAI,SAAS,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAOtE;IAED,SAAgB,KAAK,CAAC,KAAK,SAAS,OAAO,CAAC,KAAK,CAAC,EAChD,GAAG,KAAK,EAAE,KAAK,GACd,UAAU,CAAC,KAAK,CAAC,CAOnB;IAED,SAAgB,OAAO,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACvD,GAAG,EAAE,GAAG,GACP,YAAY,CAAC,GAAG,CAAC,CAOnB;IAED,SAAgB,MAAM,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAOzE;IAED,SAAgB,KAAK,CAAC,GAAG,SAAS,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9E,SAAgB,KAAK,CAAC,GAAG,SAAS,OAAO,CAAC,KAAK,CAAC,EAC9C,GAAG,GAAG,EAAE,GAAG,GACV,UAAU,CAAC,GAAG,CAAC,CAAC;CAWpB;AAED,yBAAiB,QAAQ,CAAC;IACxB,SAAgB,EAAE,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,SAAS,eAAe,EAC9D,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,IAAI,GACT,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAQxB;IAED,SAAgB,QAAQ,CAAC,CAAC,SAAS,KAAK,EACtC,KAAK,EAAE,CAAC,GACP,aAAa,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,CAAC,CAEtC;IAED,SAAgB,OAAO,CAAC,CAAC,SAAS,KAAK,EACrC,KAAK,EAAE,CAAC,GACP,aAAa,CAAC,CAAC,EAAE;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAErC;IAED,SAAgB,MAAM,CAAC,CAAC,SAAS,KAAK,EACpC,KAAK,EAAE,CAAC,GACP,aAAa,CAAC,CAAC,EAAE;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAEpC;IAED,SAAgB,KAAK,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,SAAS,MAAM,EACxD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,IAAI,GACT,aAAa,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAElC;IAED,SAAgB,OAAO,CACrB,CAAC,SAAS,KAAK,EACf,SAAS,SAAS,MAAM,EACxB,SAAS,SAAS,MAAM,EAExB,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GACnB,aAAa,CACd,CAAC,EACD;QAAE,OAAO,EAAE;YAAE,SAAS,EAAE,SAAS,CAAC;YAAC,SAAS,EAAE,SAAS,CAAA;SAAE,CAAA;KAAE,CAC5D,CAEA;IAED,SAAgB,IAAI,CAClB,CAAC,EAAE,OAAO,EACV,OAAO,GAAE;QACP,cAAc,CAAC,EAAE,OAAO,CAAC;KACrB,GACL,KAAK,CA6BP;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/shape.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GACxB;IACE,EAAE,EAAE,IAAI,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAkBN,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAyGnE;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAG3E;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,CAAC,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAwEN,wBAAgB,KAAK,CAAC,CAAC,SAAS,KAAK,EACnC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,CAAC,GACH,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAK/B"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GACxB;IACE,EAAE,EAAE,IAAI,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAkBN,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAmJnE;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAG3E;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,CAAC,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAwEN,wBAAgB,KAAK,CAAC,CAAC,SAAS,KAAK,EACnC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,CAAC,GACH,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAK/B"}
@@ -20,16 +20,47 @@ function validate(x, shape) {
20
20
  case "literal-float":
21
21
  case "literal-number":
22
22
  return maybe(x === shape.value, `expected literal ${shape.value}`, path);
23
- case "str":
24
- return maybe(typeof x === "string", "expected a string", path);
23
+ case "str": {
24
+ if (typeof x !== "string")
25
+ return err("expected a string", path);
26
+ if (shape.anno.min !== undefined && x.length < shape.anno.min)
27
+ return err(`expected string length >= ${shape.anno.min}`, path);
28
+ if (shape.anno.max !== undefined && x.length > shape.anno.max)
29
+ return err(`expected string length <= ${shape.anno.max}`, path);
30
+ if (shape.anno.pattern !== undefined &&
31
+ !new RegExp(shape.anno.pattern).test(x))
32
+ return err(`expected string to match pattern /${shape.anno.pattern}/`, path);
33
+ return ok();
34
+ }
25
35
  case "bool":
26
36
  return maybe(typeof x === "boolean", "expected a boolean", path);
27
- case "int":
28
- return maybe(typeof x === "number" && Number.isInteger(x), "expected an integer", path);
29
- case "float":
30
- return maybe(typeof x === "number" && !Number.isInteger(x), "expected a float", path);
31
- case "number":
32
- return maybe(typeof x === "number", "expected a number", path);
37
+ case "int": {
38
+ if (!(typeof x === "number" && Number.isInteger(x)))
39
+ return err("expected an integer", path);
40
+ if (shape.anno.min !== undefined && x < shape.anno.min)
41
+ return err(`expected value >= ${shape.anno.min}`, path);
42
+ if (shape.anno.max !== undefined && x > shape.anno.max)
43
+ return err(`expected value <= ${shape.anno.max}`, path);
44
+ return ok();
45
+ }
46
+ case "float": {
47
+ if (!(typeof x === "number" && !Number.isInteger(x)))
48
+ return err("expected a float", path);
49
+ if (shape.anno.min !== undefined && x < shape.anno.min)
50
+ return err(`expected value >= ${shape.anno.min}`, path);
51
+ if (shape.anno.max !== undefined && x > shape.anno.max)
52
+ return err(`expected value <= ${shape.anno.max}`, path);
53
+ return ok();
54
+ }
55
+ case "number": {
56
+ if (typeof x !== "number")
57
+ return err("expected a number", path);
58
+ if (shape.anno.min !== undefined && x < shape.anno.min)
59
+ return err(`expected value >= ${shape.anno.min}`, path);
60
+ if (shape.anno.max !== undefined && x > shape.anno.max)
61
+ return err(`expected value <= ${shape.anno.max}`, path);
62
+ return ok();
63
+ }
33
64
  case "nil":
34
65
  return maybe(x === null, "expected null", path);
35
66
  case "date":
@@ -39,12 +70,28 @@ function validate(x, shape) {
39
70
  case "array": {
40
71
  if (!Array.isArray(x))
41
72
  return err("expected an array", path);
73
+ if (shape.anno.min !== undefined && x.length < shape.anno.min)
74
+ return err(`expected array length >= ${shape.anno.min}`, path);
75
+ if (shape.anno.max !== undefined && x.length > shape.anno.max)
76
+ return err(`expected array length <= ${shape.anno.max}`, path);
42
77
  for (let i = 0; i < x.length; i++) {
43
78
  const item = x[i];
44
79
  const result = check(item, shape.item, [...path, i]);
45
80
  if (!result.ok)
46
81
  return result;
47
82
  }
83
+ if (shape.anno.uniqueWithin) {
84
+ const seen = new Set();
85
+ for (let i = 0; i < x.length; i++) {
86
+ const key = JSON.stringify(x[i]);
87
+ if (seen.has(key))
88
+ return err(`expected all array elements to be unique`, [
89
+ ...path,
90
+ i,
91
+ ]);
92
+ seen.add(key);
93
+ }
94
+ }
48
95
  return ok();
49
96
  }
50
97
  case "mapping": {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shapedef",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/cjs/index.d.ts",
@@ -13,6 +13,13 @@ export type UnionToIntersection<union> =
13
13
 
14
14
  export type IsUnion<a> = [a] extends [UnionToIntersection<a>] ? false : true;
15
15
 
16
+ export type IsTuple<T> =
17
+ T extends readonly any[] ?
18
+ number extends T["length"] ?
19
+ false
20
+ : true
21
+ : false;
22
+
16
23
  export type UnionToTuple<union, output extends any[] = []> =
17
24
  UnionToIntersection<union extends any ? (t: union) => union : never> extends (
18
25
  (_: any) => infer elem
package/src/shape.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  import { has, isPlainObject } from "./common";
2
- import { Prettify, TupleOf } from "./common/types";
2
+ import {
3
+ IsTuple,
4
+ IsUnion,
5
+ Prettify,
6
+ TupleOf,
7
+ UnionToTuple,
8
+ } from "./common/types";
3
9
  import { Phantom, PhantomIgnore } from "./phantom";
4
10
 
5
11
  export const ShapeBrandSymbol = Symbol("Shape");
@@ -16,7 +22,7 @@ export type ShapeAnnotation = {
16
22
  max?: number;
17
23
  format?: string;
18
24
  pattern?: string;
19
- uniqueWithin?: boolean;
25
+ uniqueWithin?: boolean; // For example if all elements in an array should be unique
20
26
  defaultValue?: any;
21
27
  foreign?: {
22
28
  shapeName: string;
@@ -37,6 +43,38 @@ export type LooseShape = {
37
43
  export type OutputOfShape<T> =
38
44
  [T] extends [LooseShape] ? T["__phantom"]["out"] : never;
39
45
 
46
+ type _TupleToShapes<T extends readonly any[]> =
47
+ T extends [] ? []
48
+ : T extends [infer H, ...infer Rest extends readonly any[]] ?
49
+ [_ToShape<H>, ..._TupleToShapes<Rest>]
50
+ : Shape[];
51
+
52
+ export type _ToShape<
53
+ U,
54
+ T extends Exclude<U, undefined> = Exclude<U, undefined>,
55
+ > =
56
+ [T] extends [Shape] ? T
57
+ : IsUnion<T> extends true ?
58
+ UnionToTuple<T> extends infer Tup extends readonly any[] ?
59
+ ShapeUnion<_TupleToShapes<Tup>>
60
+ : ShapeUnknown
61
+ : IsTuple<T> extends true ?
62
+ T extends [infer H, ...infer Rest extends readonly any[]] ?
63
+ ShapeTuple<[_ToShape<H>, ..._TupleToShapes<Rest>]>
64
+ : ShapeUnknown
65
+ : [T] extends [Array<infer A>] ? ShapeArray<_ToShape<A>>
66
+ : [T] extends [Date] ? ShapeDate
67
+ : [T] extends [null] ? ShapeNil
68
+ : [T] extends [string] ? ShapeStr
69
+ : [T] extends [number] ? ShapeNumber
70
+ : [T] extends [boolean] ? ShapeBool
71
+ : [T] extends [Record<string, any>] ?
72
+ ShapeMapping<{ [P in keyof T & string]: _ToShape<T[P]> }>
73
+ : ShapeUnknown;
74
+
75
+ export type ToShape<T> =
76
+ [_ToShape<T>] extends [infer S extends Shape] ? S : ShapeUnknown;
77
+
40
78
  export type AnnoOfShape<T> = [T] extends [LooseShape] ? T["anno"] : never;
41
79
 
42
80
  export type ShapeIsOptional<T> =
@@ -176,4 +176,59 @@ describe("validate", (it) => {
176
176
  ok: false,
177
177
  });
178
178
  });
179
+
180
+ it("validates str with min/max length", () => {
181
+ const shape = annotate.by(shapes.str(), { min: 2, max: 5 });
182
+ expect(validate("hi", shape)).toEqual({ ok: true });
183
+ expect(validate("hello", shape)).toEqual({ ok: true });
184
+ expect(validate("a", shape)).toMatchObject({ ok: false });
185
+ expect(validate("toolong", shape)).toMatchObject({ ok: false });
186
+ });
187
+
188
+ it("validates str with pattern", () => {
189
+ const shape = annotate.by(shapes.str(), { pattern: "^\\d+$" });
190
+ expect(validate("123", shape)).toEqual({ ok: true });
191
+ expect(validate("abc", shape)).toMatchObject({ ok: false });
192
+ });
193
+
194
+ it("validates int with min/max", () => {
195
+ const shape = annotate.by(shapes.int(), { min: 1, max: 10 });
196
+ expect(validate(1, shape)).toEqual({ ok: true });
197
+ expect(validate(10, shape)).toEqual({ ok: true });
198
+ expect(validate(0, shape)).toMatchObject({ ok: false });
199
+ expect(validate(11, shape)).toMatchObject({ ok: false });
200
+ });
201
+
202
+ it("validates float with min/max", () => {
203
+ const shape = annotate.by(shapes.float(), { min: 0.5, max: 1.5 });
204
+ expect(validate(1.1, shape)).toEqual({ ok: true });
205
+ expect(validate(0.4, shape)).toMatchObject({ ok: false });
206
+ expect(validate(1.6, shape)).toMatchObject({ ok: false });
207
+ });
208
+
209
+ it("validates number with min/max", () => {
210
+ const shape = annotate.by(shapes.number(), { min: 0, max: 100 });
211
+ expect(validate(0, shape)).toEqual({ ok: true });
212
+ expect(validate(50.5, shape)).toEqual({ ok: true });
213
+ expect(validate(100, shape)).toEqual({ ok: true });
214
+ expect(validate(-1, shape)).toMatchObject({ ok: false });
215
+ expect(validate(101, shape)).toMatchObject({ ok: false });
216
+ });
217
+
218
+ it("validates array with min/max length", () => {
219
+ const shape = annotate.by(shapes.array(shapes.int()), { min: 1, max: 3 });
220
+ expect(validate([1], shape)).toEqual({ ok: true });
221
+ expect(validate([1, 2, 3], shape)).toEqual({ ok: true });
222
+ expect(validate([], shape)).toMatchObject({ ok: false });
223
+ expect(validate([1, 2, 3, 4], shape)).toMatchObject({ ok: false });
224
+ });
225
+
226
+ it("validates array with uniqueWithin", () => {
227
+ const shape = annotate.by(shapes.array(shapes.int()), {
228
+ uniqueWithin: true,
229
+ });
230
+ expect(validate([1, 2, 3], shape)).toEqual({ ok: true });
231
+ expect(validate([], shape)).toEqual({ ok: true });
232
+ expect(validate([1, 2, 1], shape)).toMatchObject({ ok: false, path: [2] });
233
+ });
179
234
  });
package/src/validation.ts CHANGED
@@ -44,24 +44,50 @@ export function validate(x: unknown, shape: Shape): ValidationResult {
44
44
  `expected literal ${shape.value}`,
45
45
  path,
46
46
  );
47
- case "str":
48
- return maybe(typeof x === "string", "expected a string", path);
47
+ case "str": {
48
+ if (typeof x !== "string") return err("expected a string", path);
49
+ if (shape.anno.min !== undefined && x.length < shape.anno.min)
50
+ return err(`expected string length >= ${shape.anno.min}`, path);
51
+ if (shape.anno.max !== undefined && x.length > shape.anno.max)
52
+ return err(`expected string length <= ${shape.anno.max}`, path);
53
+ if (
54
+ shape.anno.pattern !== undefined &&
55
+ !new RegExp(shape.anno.pattern).test(x)
56
+ )
57
+ return err(
58
+ `expected string to match pattern /${shape.anno.pattern}/`,
59
+ path,
60
+ );
61
+ return ok();
62
+ }
49
63
  case "bool":
50
64
  return maybe(typeof x === "boolean", "expected a boolean", path);
51
- case "int":
52
- return maybe(
53
- typeof x === "number" && Number.isInteger(x),
54
- "expected an integer",
55
- path,
56
- );
57
- case "float":
58
- return maybe(
59
- typeof x === "number" && !Number.isInteger(x),
60
- "expected a float",
61
- path,
62
- );
63
- case "number":
64
- return maybe(typeof x === "number", "expected a number", path);
65
+ case "int": {
66
+ if (!(typeof x === "number" && Number.isInteger(x)))
67
+ return err("expected an integer", path);
68
+ if (shape.anno.min !== undefined && x < shape.anno.min)
69
+ return err(`expected value >= ${shape.anno.min}`, path);
70
+ if (shape.anno.max !== undefined && x > shape.anno.max)
71
+ return err(`expected value <= ${shape.anno.max}`, path);
72
+ return ok();
73
+ }
74
+ case "float": {
75
+ if (!(typeof x === "number" && !Number.isInteger(x)))
76
+ return err("expected a float", path);
77
+ if (shape.anno.min !== undefined && x < shape.anno.min)
78
+ return err(`expected value >= ${shape.anno.min}`, path);
79
+ if (shape.anno.max !== undefined && x > shape.anno.max)
80
+ return err(`expected value <= ${shape.anno.max}`, path);
81
+ return ok();
82
+ }
83
+ case "number": {
84
+ if (typeof x !== "number") return err("expected a number", path);
85
+ if (shape.anno.min !== undefined && x < shape.anno.min)
86
+ return err(`expected value >= ${shape.anno.min}`, path);
87
+ if (shape.anno.max !== undefined && x > shape.anno.max)
88
+ return err(`expected value <= ${shape.anno.max}`, path);
89
+ return ok();
90
+ }
65
91
  case "nil":
66
92
  return maybe(x === null, "expected null", path);
67
93
  case "date":
@@ -70,11 +96,27 @@ export function validate(x: unknown, shape: Shape): ValidationResult {
70
96
  return ok();
71
97
  case "array": {
72
98
  if (!Array.isArray(x)) return err("expected an array", path);
99
+ if (shape.anno.min !== undefined && x.length < shape.anno.min)
100
+ return err(`expected array length >= ${shape.anno.min}`, path);
101
+ if (shape.anno.max !== undefined && x.length > shape.anno.max)
102
+ return err(`expected array length <= ${shape.anno.max}`, path);
73
103
  for (let i = 0; i < x.length; i++) {
74
104
  const item = x[i];
75
105
  const result = check(item, shape.item, [...path, i]);
76
106
  if (!result.ok) return result;
77
107
  }
108
+ if (shape.anno.uniqueWithin) {
109
+ const seen = new Set<string>();
110
+ for (let i = 0; i < x.length; i++) {
111
+ const key = JSON.stringify(x[i]);
112
+ if (seen.has(key))
113
+ return err(`expected all array elements to be unique`, [
114
+ ...path,
115
+ i,
116
+ ]);
117
+ seen.add(key);
118
+ }
119
+ }
78
120
  return ok();
79
121
  }
80
122
  case "mapping": {
@@ -1 +0,0 @@
1
- {"type":"module"}