@sinclair/typebox 0.32.0-dev-18 → 0.32.0-dev-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.
Files changed (78) hide show
  1. package/build/import/compiler/compiler.mjs +14 -8
  2. package/build/import/errors/errors.mjs +15 -11
  3. package/build/import/type/awaited/awaited.mjs +4 -4
  4. package/build/import/type/deref/deref.mjs +12 -12
  5. package/build/import/type/exclude/exclude.mjs +8 -5
  6. package/build/import/type/extends/extends-check.mjs +167 -167
  7. package/build/import/type/extends/extends.mjs +3 -3
  8. package/build/import/type/extract/extract.mjs +5 -5
  9. package/build/import/type/guard/type.d.mts +50 -50
  10. package/build/import/type/guard/type.mjs +136 -136
  11. package/build/import/type/indexed/indexed-property-keys.mjs +7 -7
  12. package/build/import/type/indexed/indexed.mjs +9 -9
  13. package/build/import/type/intersect/intersect-create.mjs +4 -4
  14. package/build/import/type/intersect/intersect-evaluated.mjs +1 -1
  15. package/build/import/type/intersect/intersect.mjs +2 -2
  16. package/build/import/type/intrinsic/intrinsic.mjs +5 -5
  17. package/build/import/type/keyof/keyof-property-keys.mjs +7 -7
  18. package/build/import/type/keyof/keyof.mjs +2 -2
  19. package/build/import/type/mapped/mapped.mjs +16 -16
  20. package/build/import/type/modifiers/modifiers.mjs +3 -3
  21. package/build/import/type/object/object.mjs +3 -3
  22. package/build/import/type/omit/omit.mjs +6 -6
  23. package/build/import/type/partial/partial.mjs +5 -5
  24. package/build/import/type/pick/pick.mjs +6 -6
  25. package/build/import/type/record/record.mjs +7 -7
  26. package/build/import/type/required/required.mjs +5 -5
  27. package/build/import/type/rest/rest.mjs +6 -2
  28. package/build/import/type/template-literal/pattern.mjs +9 -9
  29. package/build/import/type/transform/transform.mjs +1 -1
  30. package/build/import/type/union/union-evaluated.mjs +2 -2
  31. package/build/import/value/check/check.mjs +18 -11
  32. package/build/import/value/clean/clean.mjs +9 -7
  33. package/build/import/value/clone/clone.mjs +7 -4
  34. package/build/import/value/convert/convert.mjs +6 -2
  35. package/build/import/value/default/default.mjs +12 -4
  36. package/build/import/value/transform/decode.mjs +12 -6
  37. package/build/import/value/transform/encode.mjs +12 -6
  38. package/build/import/value/transform/has.mjs +24 -18
  39. package/build/require/compiler/compiler.js +77 -71
  40. package/build/require/errors/errors.js +58 -54
  41. package/build/require/type/awaited/awaited.js +3 -3
  42. package/build/require/type/deref/deref.js +11 -11
  43. package/build/require/type/exclude/exclude.js +7 -4
  44. package/build/require/type/extends/extends-check.js +167 -167
  45. package/build/require/type/extends/extends.js +2 -2
  46. package/build/require/type/extract/extract.js +4 -4
  47. package/build/require/type/guard/type.d.ts +50 -50
  48. package/build/require/type/guard/type.js +184 -184
  49. package/build/require/type/indexed/indexed-property-keys.js +6 -6
  50. package/build/require/type/indexed/indexed.js +9 -9
  51. package/build/require/type/intersect/intersect-create.js +3 -3
  52. package/build/require/type/intersect/intersect-evaluated.js +2 -2
  53. package/build/require/type/intersect/intersect.js +1 -1
  54. package/build/require/type/intrinsic/intrinsic.js +4 -4
  55. package/build/require/type/keyof/keyof-property-keys.js +6 -6
  56. package/build/require/type/keyof/keyof.js +1 -1
  57. package/build/require/type/mapped/mapped.js +15 -15
  58. package/build/require/type/modifiers/modifiers.js +2 -2
  59. package/build/require/type/object/object.js +2 -2
  60. package/build/require/type/omit/omit.js +5 -5
  61. package/build/require/type/partial/partial.js +4 -4
  62. package/build/require/type/pick/pick.js +5 -5
  63. package/build/require/type/record/record.js +6 -6
  64. package/build/require/type/required/required.js +4 -4
  65. package/build/require/type/rest/rest.js +5 -1
  66. package/build/require/type/template-literal/pattern.js +8 -8
  67. package/build/require/type/transform/transform.js +1 -1
  68. package/build/require/type/union/union-evaluated.js +1 -1
  69. package/build/require/value/check/check.js +63 -56
  70. package/build/require/value/clean/clean.js +31 -29
  71. package/build/require/value/clone/clone.js +7 -4
  72. package/build/require/value/convert/convert.js +42 -38
  73. package/build/require/value/default/default.js +24 -16
  74. package/build/require/value/transform/decode.js +27 -21
  75. package/build/require/value/transform/encode.js +28 -22
  76. package/build/require/value/transform/has.js +29 -23
  77. package/package.json +1 -1
  78. package/readme.md +5 -5
@@ -2,13 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Convert = exports.ValueConvertUnknownTypeError = void 0;
5
- const index_1 = require("../guard/index");
6
- const index_2 = require("../clone/index");
7
- const index_3 = require("../check/index");
8
- const index_4 = require("../deref/index");
5
+ const index_1 = require("../clone/index");
6
+ const index_2 = require("../check/index");
7
+ const index_3 = require("../deref/index");
9
8
  const type_1 = require("../../type/guard/type");
10
- const index_5 = require("../../type/symbols/index");
11
- const index_6 = require("../../type/composite/index");
9
+ const index_4 = require("../../type/symbols/index");
10
+ const index_5 = require("../../type/composite/index");
11
+ // ------------------------------------------------------------------
12
+ // ValueGuard
13
+ // ------------------------------------------------------------------
14
+ // prettier-ignore
15
+ const index_6 = require("../guard/index");
12
16
  // ------------------------------------------------------------------
13
17
  // Errors
14
18
  // ------------------------------------------------------------------
@@ -23,31 +27,31 @@ exports.ValueConvertUnknownTypeError = ValueConvertUnknownTypeError;
23
27
  // Conversions
24
28
  // ------------------------------------------------------------------
25
29
  function IsStringNumeric(value) {
26
- return (0, index_1.IsString)(value) && !isNaN(value) && !isNaN(parseFloat(value));
30
+ return (0, index_6.IsString)(value) && !isNaN(value) && !isNaN(parseFloat(value));
27
31
  }
28
32
  function IsValueToString(value) {
29
- return (0, index_1.IsBigInt)(value) || (0, index_1.IsBoolean)(value) || (0, index_1.IsNumber)(value);
33
+ return (0, index_6.IsBigInt)(value) || (0, index_6.IsBoolean)(value) || (0, index_6.IsNumber)(value);
30
34
  }
31
35
  function IsValueTrue(value) {
32
- return value === true || ((0, index_1.IsNumber)(value) && value === 1) || ((0, index_1.IsBigInt)(value) && value === BigInt('1')) || ((0, index_1.IsString)(value) && (value.toLowerCase() === 'true' || value === '1'));
36
+ return value === true || ((0, index_6.IsNumber)(value) && value === 1) || ((0, index_6.IsBigInt)(value) && value === BigInt('1')) || ((0, index_6.IsString)(value) && (value.toLowerCase() === 'true' || value === '1'));
33
37
  }
34
38
  function IsValueFalse(value) {
35
- return value === false || ((0, index_1.IsNumber)(value) && (value === 0 || Object.is(value, -0))) || ((0, index_1.IsBigInt)(value) && value === BigInt('0')) || ((0, index_1.IsString)(value) && (value.toLowerCase() === 'false' || value === '0' || value === '-0'));
39
+ return value === false || ((0, index_6.IsNumber)(value) && (value === 0 || Object.is(value, -0))) || ((0, index_6.IsBigInt)(value) && value === BigInt('0')) || ((0, index_6.IsString)(value) && (value.toLowerCase() === 'false' || value === '0' || value === '-0'));
36
40
  }
37
41
  function IsTimeStringWithTimeZone(value) {
38
- return (0, index_1.IsString)(value) && /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i.test(value);
42
+ return (0, index_6.IsString)(value) && /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i.test(value);
39
43
  }
40
44
  function IsTimeStringWithoutTimeZone(value) {
41
- return (0, index_1.IsString)(value) && /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)?$/i.test(value);
45
+ return (0, index_6.IsString)(value) && /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)?$/i.test(value);
42
46
  }
43
47
  function IsDateTimeStringWithTimeZone(value) {
44
- return (0, index_1.IsString)(value) && /^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i.test(value);
48
+ return (0, index_6.IsString)(value) && /^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i.test(value);
45
49
  }
46
50
  function IsDateTimeStringWithoutTimeZone(value) {
47
- return (0, index_1.IsString)(value) && /^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)?$/i.test(value);
51
+ return (0, index_6.IsString)(value) && /^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)?$/i.test(value);
48
52
  }
49
53
  function IsDateString(value) {
50
- return (0, index_1.IsString)(value) && /^\d\d\d\d-[0-1]\d-[0-3]\d$/i.test(value);
54
+ return (0, index_6.IsString)(value) && /^\d\d\d\d-[0-1]\d-[0-3]\d$/i.test(value);
51
55
  }
52
56
  // ------------------------------------------------------------------
53
57
  // Convert
@@ -66,31 +70,31 @@ function TryConvertLiteralBoolean(value, target) {
66
70
  }
67
71
  // prettier-ignore
68
72
  function TryConvertLiteral(schema, value) {
69
- return ((0, index_1.IsString)(schema.const) ? TryConvertLiteralString(value, schema.const) :
70
- (0, index_1.IsNumber)(schema.const) ? TryConvertLiteralNumber(value, schema.const) :
71
- (0, index_1.IsBoolean)(schema.const) ? TryConvertLiteralBoolean(value, schema.const) :
72
- (0, index_2.Clone)(value));
73
+ return ((0, index_6.IsString)(schema.const) ? TryConvertLiteralString(value, schema.const) :
74
+ (0, index_6.IsNumber)(schema.const) ? TryConvertLiteralNumber(value, schema.const) :
75
+ (0, index_6.IsBoolean)(schema.const) ? TryConvertLiteralBoolean(value, schema.const) :
76
+ (0, index_1.Clone)(value));
73
77
  }
74
78
  function TryConvertBoolean(value) {
75
79
  return IsValueTrue(value) ? true : IsValueFalse(value) ? false : value;
76
80
  }
77
81
  function TryConvertBigInt(value) {
78
- return IsStringNumeric(value) ? BigInt(parseInt(value)) : (0, index_1.IsNumber)(value) ? BigInt(value | 0) : IsValueFalse(value) ? BigInt(0) : IsValueTrue(value) ? BigInt(1) : value;
82
+ return IsStringNumeric(value) ? BigInt(parseInt(value)) : (0, index_6.IsNumber)(value) ? BigInt(value | 0) : IsValueFalse(value) ? BigInt(0) : IsValueTrue(value) ? BigInt(1) : value;
79
83
  }
80
84
  function TryConvertString(value) {
81
- return IsValueToString(value) ? value.toString() : (0, index_1.IsSymbol)(value) && value.description !== undefined ? value.description.toString() : value;
85
+ return IsValueToString(value) ? value.toString() : (0, index_6.IsSymbol)(value) && value.description !== undefined ? value.description.toString() : value;
82
86
  }
83
87
  function TryConvertNumber(value) {
84
88
  return IsStringNumeric(value) ? parseFloat(value) : IsValueTrue(value) ? 1 : IsValueFalse(value) ? 0 : value;
85
89
  }
86
90
  function TryConvertInteger(value) {
87
- return IsStringNumeric(value) ? parseInt(value) : (0, index_1.IsNumber)(value) ? value | 0 : IsValueTrue(value) ? 1 : IsValueFalse(value) ? 0 : value;
91
+ return IsStringNumeric(value) ? parseInt(value) : (0, index_6.IsNumber)(value) ? value | 0 : IsValueTrue(value) ? 1 : IsValueFalse(value) ? 0 : value;
88
92
  }
89
93
  function TryConvertNull(value) {
90
- return (0, index_1.IsString)(value) && value.toLowerCase() === 'null' ? null : value;
94
+ return (0, index_6.IsString)(value) && value.toLowerCase() === 'null' ? null : value;
91
95
  }
92
96
  function TryConvertUndefined(value) {
93
- return (0, index_1.IsString)(value) && value === 'undefined' ? undefined : value;
97
+ return (0, index_6.IsString)(value) && value === 'undefined' ? undefined : value;
94
98
  }
95
99
  // ------------------------------------------------------------------
96
100
  // note: this function may return an invalid dates for the regex
@@ -101,8 +105,8 @@ function TryConvertUndefined(value) {
101
105
  // ------------------------------------------------------------------
102
106
  // prettier-ignore
103
107
  function TryConvertDate(value) {
104
- return ((0, index_1.IsDate)(value) ? value :
105
- (0, index_1.IsNumber)(value) ? new Date(value) :
108
+ return ((0, index_6.IsDate)(value) ? value :
109
+ (0, index_6.IsNumber)(value) ? new Date(value) :
106
110
  IsValueTrue(value) ? new Date(1) :
107
111
  IsValueFalse(value) ? new Date(0) :
108
112
  IsStringNumeric(value) ? new Date(parseInt(value)) :
@@ -123,7 +127,7 @@ function Default(value) {
123
127
  // Convert
124
128
  // ------------------------------------------------------------------
125
129
  function TArray(schema, references, value) {
126
- if ((0, index_1.IsArray)(value)) {
130
+ if ((0, index_6.IsArray)(value)) {
127
131
  return value.map((value) => Visit(schema.items, references, value));
128
132
  }
129
133
  return value;
@@ -142,9 +146,9 @@ function TInteger(schema, references, value) {
142
146
  }
143
147
  // prettier-ignore
144
148
  function TIntersect(schema, references, value) {
145
- const allObjects = schema.allOf.every(schema => (0, type_1.TObject)(schema));
149
+ const allObjects = schema.allOf.every(schema => (0, type_1.IsObject)(schema));
146
150
  if (allObjects)
147
- return Visit((0, index_6.Composite)(schema.allOf), references, value);
151
+ return Visit((0, index_5.Composite)(schema.allOf), references, value);
148
152
  return Visit(schema.allOf[0], references, value); // todo: fix this
149
153
  }
150
154
  function TLiteral(schema, references, value) {
@@ -158,11 +162,11 @@ function TNumber(schema, references, value) {
158
162
  }
159
163
  // prettier-ignore
160
164
  function TObject(schema, references, value) {
161
- const isConvertable = (0, index_1.IsObject)(value);
165
+ const isConvertable = (0, index_6.IsObject)(value);
162
166
  if (!isConvertable)
163
167
  return value;
164
168
  return Object.getOwnPropertyNames(schema.properties).reduce((value, key) => {
165
- return !(0, index_1.IsUndefined)(value[key])
169
+ return !(0, index_6.IsUndefined)(value[key])
166
170
  ? ({ ...value, [key]: Visit(schema.properties[key], references, value[key]) })
167
171
  : ({ ...value });
168
172
  }, value);
@@ -177,20 +181,20 @@ function TRecord(schema, references, value) {
177
181
  return result;
178
182
  }
179
183
  function TRef(schema, references, value) {
180
- return Visit((0, index_4.Deref)(schema, references), references, value);
184
+ return Visit((0, index_3.Deref)(schema, references), references, value);
181
185
  }
182
186
  function TString(schema, references, value) {
183
187
  return TryConvertString(value);
184
188
  }
185
189
  function TSymbol(schema, references, value) {
186
- return (0, index_1.IsString)(value) || (0, index_1.IsNumber)(value) ? Symbol(value) : value;
190
+ return (0, index_6.IsString)(value) || (0, index_6.IsNumber)(value) ? Symbol(value) : value;
187
191
  }
188
192
  function TThis(schema, references, value) {
189
- return Visit((0, index_4.Deref)(schema, references), references, value);
193
+ return Visit((0, index_3.Deref)(schema, references), references, value);
190
194
  }
191
195
  // prettier-ignore
192
196
  function TTuple(schema, references, value) {
193
- const isConvertable = (0, index_1.IsArray)(value) && !(0, index_1.IsUndefined)(schema.items);
197
+ const isConvertable = (0, index_6.IsArray)(value) && !(0, index_6.IsUndefined)(schema.items);
194
198
  if (!isConvertable)
195
199
  return value;
196
200
  return value.map((value, index) => {
@@ -205,16 +209,16 @@ function TUndefined(schema, references, value) {
205
209
  function TUnion(schema, references, value) {
206
210
  for (const subschema of schema.anyOf) {
207
211
  const converted = Visit(subschema, references, value);
208
- if ((0, index_3.Check)(subschema, references, converted)) {
212
+ if ((0, index_2.Check)(subschema, references, converted)) {
209
213
  return converted;
210
214
  }
211
215
  }
212
216
  return value;
213
217
  }
214
218
  function Visit(schema, references, value) {
215
- const references_ = (0, index_1.IsString)(schema.$id) ? [...references, schema] : references;
219
+ const references_ = (0, index_6.IsString)(schema.$id) ? [...references, schema] : references;
216
220
  const schema_ = schema;
217
- switch (schema[index_5.Kind]) {
221
+ switch (schema[index_4.Kind]) {
218
222
  case 'Array':
219
223
  return TArray(schema_, references_, value);
220
224
  case 'BigInt':
@@ -2,11 +2,19 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Default = void 0;
5
- const index_1 = require("../guard/index");
5
+ const index_1 = require("../check/index");
6
+ const index_2 = require("../deref/index");
7
+ const index_3 = require("../../type/symbols/index");
8
+ // ------------------------------------------------------------------
9
+ // ValueGuard
10
+ // ------------------------------------------------------------------
11
+ // prettier-ignore
12
+ const index_4 = require("../guard/index");
13
+ // ------------------------------------------------------------------
14
+ // TypeGuard
15
+ // ------------------------------------------------------------------
16
+ // prettier-ignore
6
17
  const type_1 = require("../../type/guard/type");
7
- const index_2 = require("../check/index");
8
- const index_3 = require("../deref/index");
9
- const index_4 = require("../../type/symbols/index");
10
18
  // ------------------------------------------------------------------
11
19
  // ValueOrDefault
12
20
  // ------------------------------------------------------------------
@@ -17,20 +25,20 @@ function ValueOrDefault(schema, value) {
17
25
  // IsCheckable
18
26
  // ------------------------------------------------------------------
19
27
  function IsCheckable(schema) {
20
- return (0, type_1.TSchema)(schema) && schema[index_4.Kind] !== 'Unsafe';
28
+ return (0, type_1.IsSchema)(schema) && schema[index_3.Kind] !== 'Unsafe';
21
29
  }
22
30
  // ------------------------------------------------------------------
23
31
  // IsDefaultSchema
24
32
  // ------------------------------------------------------------------
25
33
  function IsDefaultSchema(value) {
26
- return (0, type_1.TSchema)(value) && 'default' in value;
34
+ return (0, type_1.IsSchema)(value) && 'default' in value;
27
35
  }
28
36
  // ------------------------------------------------------------------
29
37
  // Types
30
38
  // ------------------------------------------------------------------
31
39
  function TArray(schema, references, value) {
32
40
  const defaulted = ValueOrDefault(schema, value);
33
- if (!(0, index_1.IsArray)(defaulted))
41
+ if (!(0, index_4.IsArray)(defaulted))
34
42
  return defaulted;
35
43
  for (let i = 0; i < defaulted.length; i++) {
36
44
  defaulted[i] = Visit(schema.items, references, defaulted[i]);
@@ -41,12 +49,12 @@ function TIntersect(schema, references, value) {
41
49
  const defaulted = ValueOrDefault(schema, value);
42
50
  return schema.allOf.reduce((acc, schema) => {
43
51
  const next = Visit(schema, references, defaulted);
44
- return (0, index_1.IsObject)(next) ? { ...acc, ...next } : next;
52
+ return (0, index_4.IsObject)(next) ? { ...acc, ...next } : next;
45
53
  }, {});
46
54
  }
47
55
  function TObject(schema, references, value) {
48
56
  const defaulted = ValueOrDefault(schema, value);
49
- if (!(0, index_1.IsObject)(defaulted))
57
+ if (!(0, index_4.IsObject)(defaulted))
50
58
  return defaulted;
51
59
  const additionalPropertiesSchema = schema.additionalProperties;
52
60
  const knownPropertyKeys = Object.getOwnPropertyNames(schema.properties);
@@ -69,7 +77,7 @@ function TObject(schema, references, value) {
69
77
  }
70
78
  function TRecord(schema, references, value) {
71
79
  const defaulted = ValueOrDefault(schema, value);
72
- if (!(0, index_1.IsObject)(defaulted))
80
+ if (!(0, index_4.IsObject)(defaulted))
73
81
  return defaulted;
74
82
  const additionalPropertiesSchema = schema.additionalProperties;
75
83
  const [propertyKeyPattern, propertySchema] = Object.entries(schema.patternProperties)[0];
@@ -92,14 +100,14 @@ function TRecord(schema, references, value) {
92
100
  return defaulted;
93
101
  }
94
102
  function TRef(schema, references, value) {
95
- return Visit((0, index_3.Deref)(schema, references), references, ValueOrDefault(schema, value));
103
+ return Visit((0, index_2.Deref)(schema, references), references, ValueOrDefault(schema, value));
96
104
  }
97
105
  function TThis(schema, references, value) {
98
- return Visit((0, index_3.Deref)(schema, references), references, value);
106
+ return Visit((0, index_2.Deref)(schema, references), references, value);
99
107
  }
100
108
  function TTuple(schema, references, value) {
101
109
  const defaulted = ValueOrDefault(schema, value);
102
- if (!(0, index_1.IsArray)(defaulted) || (0, index_1.IsUndefined)(schema.items))
110
+ if (!(0, index_4.IsArray)(defaulted) || (0, index_4.IsUndefined)(schema.items))
103
111
  return defaulted;
104
112
  const [items, max] = [schema.items, Math.max(schema.items.length, defaulted.length)];
105
113
  for (let i = 0; i < max; i++) {
@@ -112,16 +120,16 @@ function TUnion(schema, references, value) {
112
120
  const defaulted = ValueOrDefault(schema, value);
113
121
  for (const inner of schema.anyOf) {
114
122
  const result = Visit(inner, references, defaulted);
115
- if (IsCheckable(inner) && (0, index_2.Check)(inner, result)) {
123
+ if (IsCheckable(inner) && (0, index_1.Check)(inner, result)) {
116
124
  return result;
117
125
  }
118
126
  }
119
127
  return defaulted;
120
128
  }
121
129
  function Visit(schema, references, value) {
122
- const references_ = (0, index_1.IsString)(schema.$id) ? [...references, schema] : references;
130
+ const references_ = (0, index_4.IsString)(schema.$id) ? [...references, schema] : references;
123
131
  const schema_ = schema;
124
- switch (schema_[index_4.Kind]) {
132
+ switch (schema_[index_3.Kind]) {
125
133
  case 'Array':
126
134
  return TArray(schema_, references_, value);
127
135
  case 'Intersect':
@@ -2,13 +2,19 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.TransformDecode = exports.TransformDecodeError = exports.TransformDecodeCheckError = void 0;
5
- const type_1 = require("../../type/guard/type");
6
5
  const index_1 = require("../../type/symbols/index");
7
- const index_2 = require("../guard/index");
8
- const index_3 = require("../../type/keyof/index");
9
- const index_4 = require("../../type/indexed/index");
10
- const index_5 = require("../deref/index");
11
- const index_6 = require("../check/index");
6
+ const index_2 = require("../../type/keyof/index");
7
+ const index_3 = require("../../type/indexed/index");
8
+ const index_4 = require("../deref/index");
9
+ const index_5 = require("../check/index");
10
+ // ------------------------------------------------------------------
11
+ // ValueGuard
12
+ // ------------------------------------------------------------------
13
+ const index_6 = require("../guard/index");
14
+ // ------------------------------------------------------------------
15
+ // TypeGuard
16
+ // ------------------------------------------------------------------
17
+ const type_1 = require("../../type/guard/type");
12
18
  // ------------------------------------------------------------------
13
19
  // Errors
14
20
  // ------------------------------------------------------------------
@@ -36,7 +42,7 @@ exports.TransformDecodeError = TransformDecodeError;
36
42
  // prettier-ignore
37
43
  function Default(schema, value) {
38
44
  try {
39
- return (0, type_1.TTransform)(schema) ? schema[index_1.TransformKind].Decode(value) : value;
45
+ return (0, type_1.IsTransform)(schema) ? schema[index_1.TransformKind].Decode(value) : value;
40
46
  }
41
47
  catch (error) {
42
48
  throw new TransformDecodeError(schema, value, error);
@@ -44,21 +50,21 @@ function Default(schema, value) {
44
50
  }
45
51
  // prettier-ignore
46
52
  function TArray(schema, references, value) {
47
- return ((0, index_2.IsArray)(value))
53
+ return ((0, index_6.IsArray)(value))
48
54
  ? Default(schema, value.map((value) => Visit(schema.items, references, value)))
49
55
  : Default(schema, value);
50
56
  }
51
57
  // prettier-ignore
52
58
  function TIntersect(schema, references, value) {
53
- if (!(0, index_2.IsPlainObject)(value) || (0, index_2.IsValueType)(value))
59
+ if (!(0, index_6.IsPlainObject)(value) || (0, index_6.IsValueType)(value))
54
60
  return Default(schema, value);
55
- const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
61
+ const knownKeys = (0, index_2.KeyOfPropertyKeys)(schema);
56
62
  const knownProperties = knownKeys.reduce((value, key) => {
57
63
  return (key in value)
58
- ? { ...value, [key]: Visit((0, index_4.Index)(schema, [key]), references, value[key]) }
64
+ ? { ...value, [key]: Visit((0, index_3.Index)(schema, [key]), references, value[key]) }
59
65
  : value;
60
66
  }, value);
61
- if (!(0, type_1.TTransform)(schema.unevaluatedProperties)) {
67
+ if (!(0, type_1.IsTransform)(schema.unevaluatedProperties)) {
62
68
  return Default(schema, knownProperties);
63
69
  }
64
70
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -75,15 +81,15 @@ function TNot(schema, references, value) {
75
81
  }
76
82
  // prettier-ignore
77
83
  function TObject(schema, references, value) {
78
- if (!(0, index_2.IsPlainObject)(value))
84
+ if (!(0, index_6.IsPlainObject)(value))
79
85
  return Default(schema, value);
80
- const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
86
+ const knownKeys = (0, index_2.KeyOfPropertyKeys)(schema);
81
87
  const knownProperties = knownKeys.reduce((value, key) => {
82
88
  return (key in value)
83
89
  ? { ...value, [key]: Visit(schema.properties[key], references, value[key]) }
84
90
  : value;
85
91
  }, value);
86
- if (!(0, type_1.TSchema)(schema.additionalProperties)) {
92
+ if (!(0, type_1.IsSchema)(schema.additionalProperties)) {
87
93
  return Default(schema, knownProperties);
88
94
  }
89
95
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -97,7 +103,7 @@ function TObject(schema, references, value) {
97
103
  }
98
104
  // prettier-ignore
99
105
  function TRecord(schema, references, value) {
100
- if (!(0, index_2.IsPlainObject)(value))
106
+ if (!(0, index_6.IsPlainObject)(value))
101
107
  return Default(schema, value);
102
108
  const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
103
109
  const knownKeys = new RegExp(pattern);
@@ -106,7 +112,7 @@ function TRecord(schema, references, value) {
106
112
  ? { ...value, [key]: Visit(schema.patternProperties[pattern], references, value[key]) }
107
113
  : value;
108
114
  }, value);
109
- if (!(0, type_1.TSchema)(schema.additionalProperties)) {
115
+ if (!(0, type_1.IsSchema)(schema.additionalProperties)) {
110
116
  return Default(schema, knownProperties);
111
117
  }
112
118
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -120,24 +126,24 @@ function TRecord(schema, references, value) {
120
126
  }
121
127
  // prettier-ignore
122
128
  function TRef(schema, references, value) {
123
- const target = (0, index_5.Deref)(schema, references);
129
+ const target = (0, index_4.Deref)(schema, references);
124
130
  return Default(schema, Visit(target, references, value));
125
131
  }
126
132
  // prettier-ignore
127
133
  function TThis(schema, references, value) {
128
- const target = (0, index_5.Deref)(schema, references);
134
+ const target = (0, index_4.Deref)(schema, references);
129
135
  return Default(schema, Visit(target, references, value));
130
136
  }
131
137
  // prettier-ignore
132
138
  function TTuple(schema, references, value) {
133
- return ((0, index_2.IsArray)(value) && (0, index_2.IsArray)(schema.items))
139
+ return ((0, index_6.IsArray)(value) && (0, index_6.IsArray)(schema.items))
134
140
  ? Default(schema, schema.items.map((schema, index) => Visit(schema, references, value[index])))
135
141
  : Default(schema, value);
136
142
  }
137
143
  // prettier-ignore
138
144
  function TUnion(schema, references, value) {
139
145
  for (const subschema of schema.anyOf) {
140
- if (!(0, index_6.Check)(subschema, references, value))
146
+ if (!(0, index_5.Check)(subschema, references, value))
141
147
  continue;
142
148
  // note: ensure interior is decoded first
143
149
  const decoded = Visit(subschema, references, value);
@@ -2,13 +2,19 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.TransformEncode = exports.TransformEncodeError = exports.TransformEncodeCheckError = void 0;
5
- const type_1 = require("../../type/guard/type");
6
5
  const index_1 = require("../../type/symbols/index");
7
- const index_2 = require("../guard/index");
8
- const index_3 = require("../../type/keyof/index");
9
- const index_4 = require("../../type/indexed/index");
10
- const index_5 = require("../deref/index");
11
- const index_6 = require("../check/index");
6
+ const index_2 = require("../../type/keyof/index");
7
+ const index_3 = require("../../type/indexed/index");
8
+ const index_4 = require("../deref/index");
9
+ const index_5 = require("../check/index");
10
+ // ------------------------------------------------------------------
11
+ // ValueGuard
12
+ // ------------------------------------------------------------------
13
+ const index_6 = require("../guard/index");
14
+ // ------------------------------------------------------------------
15
+ // TypeGuard
16
+ // ------------------------------------------------------------------
17
+ const type_1 = require("../../type/guard/type");
12
18
  // ------------------------------------------------------------------
13
19
  // Errors
14
20
  // ------------------------------------------------------------------
@@ -35,7 +41,7 @@ exports.TransformEncodeError = TransformEncodeError;
35
41
  // prettier-ignore
36
42
  function Default(schema, value) {
37
43
  try {
38
- return (0, type_1.TTransform)(schema) ? schema[index_1.TransformKind].Encode(value) : value;
44
+ return (0, type_1.IsTransform)(schema) ? schema[index_1.TransformKind].Encode(value) : value;
39
45
  }
40
46
  catch (error) {
41
47
  throw new TransformEncodeError(schema, value, error);
@@ -44,22 +50,22 @@ function Default(schema, value) {
44
50
  // prettier-ignore
45
51
  function TArray(schema, references, value) {
46
52
  const defaulted = Default(schema, value);
47
- return (0, index_2.IsArray)(defaulted)
53
+ return (0, index_6.IsArray)(defaulted)
48
54
  ? defaulted.map((value) => Visit(schema.items, references, value))
49
55
  : defaulted;
50
56
  }
51
57
  // prettier-ignore
52
58
  function TIntersect(schema, references, value) {
53
59
  const defaulted = Default(schema, value);
54
- if (!(0, index_2.IsPlainObject)(value) || (0, index_2.IsValueType)(value))
60
+ if (!(0, index_6.IsPlainObject)(value) || (0, index_6.IsValueType)(value))
55
61
  return defaulted;
56
- const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
62
+ const knownKeys = (0, index_2.KeyOfPropertyKeys)(schema);
57
63
  const knownProperties = knownKeys.reduce((value, key) => {
58
64
  return key in defaulted
59
- ? { ...value, [key]: Visit((0, index_4.Index)(schema, [key]), references, value[key]) }
65
+ ? { ...value, [key]: Visit((0, index_3.Index)(schema, [key]), references, value[key]) }
60
66
  : value;
61
67
  }, defaulted);
62
- if (!(0, type_1.TTransform)(schema.unevaluatedProperties)) {
68
+ if (!(0, type_1.IsTransform)(schema.unevaluatedProperties)) {
63
69
  return Default(schema, knownProperties);
64
70
  }
65
71
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -77,15 +83,15 @@ function TNot(schema, references, value) {
77
83
  // prettier-ignore
78
84
  function TObject(schema, references, value) {
79
85
  const defaulted = Default(schema, value);
80
- if (!(0, index_2.IsPlainObject)(value))
86
+ if (!(0, index_6.IsPlainObject)(value))
81
87
  return defaulted;
82
- const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
88
+ const knownKeys = (0, index_2.KeyOfPropertyKeys)(schema);
83
89
  const knownProperties = knownKeys.reduce((value, key) => {
84
90
  return key in value
85
91
  ? { ...value, [key]: Visit(schema.properties[key], references, value[key]) }
86
92
  : value;
87
93
  }, defaulted);
88
- if (!(0, type_1.TSchema)(schema.additionalProperties)) {
94
+ if (!(0, type_1.IsSchema)(schema.additionalProperties)) {
89
95
  return knownProperties;
90
96
  }
91
97
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -99,7 +105,7 @@ function TObject(schema, references, value) {
99
105
  // prettier-ignore
100
106
  function TRecord(schema, references, value) {
101
107
  const defaulted = Default(schema, value);
102
- if (!(0, index_2.IsPlainObject)(value))
108
+ if (!(0, index_6.IsPlainObject)(value))
103
109
  return defaulted;
104
110
  const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
105
111
  const knownKeys = new RegExp(pattern);
@@ -108,7 +114,7 @@ function TRecord(schema, references, value) {
108
114
  ? { ...value, [key]: Visit(schema.patternProperties[pattern], references, value[key]) }
109
115
  : value;
110
116
  }, defaulted);
111
- if (!(0, type_1.TSchema)(schema.additionalProperties)) {
117
+ if (!(0, type_1.IsSchema)(schema.additionalProperties)) {
112
118
  return Default(schema, knownProperties);
113
119
  }
114
120
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -121,26 +127,26 @@ function TRecord(schema, references, value) {
121
127
  }
122
128
  // prettier-ignore
123
129
  function TRef(schema, references, value) {
124
- const target = (0, index_5.Deref)(schema, references);
130
+ const target = (0, index_4.Deref)(schema, references);
125
131
  const resolved = Visit(target, references, value);
126
132
  return Default(schema, resolved);
127
133
  }
128
134
  // prettier-ignore
129
135
  function TThis(schema, references, value) {
130
- const target = (0, index_5.Deref)(schema, references);
136
+ const target = (0, index_4.Deref)(schema, references);
131
137
  const resolved = Visit(target, references, value);
132
138
  return Default(schema, resolved);
133
139
  }
134
140
  // prettier-ignore
135
141
  function TTuple(schema, references, value) {
136
142
  const value1 = Default(schema, value);
137
- return (0, index_2.IsArray)(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];
143
+ return (0, index_6.IsArray)(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];
138
144
  }
139
145
  // prettier-ignore
140
146
  function TUnion(schema, references, value) {
141
147
  // test value against union variants
142
148
  for (const subschema of schema.anyOf) {
143
- if (!(0, index_6.Check)(subschema, references, value))
149
+ if (!(0, index_5.Check)(subschema, references, value))
144
150
  continue;
145
151
  const value1 = Visit(subschema, references, value);
146
152
  return Default(schema, value1);
@@ -148,7 +154,7 @@ function TUnion(schema, references, value) {
148
154
  // test transformed value against union variants
149
155
  for (const subschema of schema.anyOf) {
150
156
  const value1 = Visit(subschema, references, value);
151
- if (!(0, index_6.Check)(schema, references, value1))
157
+ if (!(0, index_5.Check)(schema, references, value1))
152
158
  continue;
153
159
  return Default(schema, value1);
154
160
  }