@sinclair/typebox 0.33.22 → 0.34.1

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 (202) hide show
  1. package/build/cjs/compiler/compiler.d.ts +2 -2
  2. package/build/cjs/compiler/compiler.js +13 -2
  3. package/build/cjs/errors/errors.js +7 -0
  4. package/build/cjs/index.d.ts +1 -2
  5. package/build/cjs/index.js +1 -2
  6. package/build/cjs/syntax/parse.d.ts +14 -15
  7. package/build/cjs/syntax/parse.js +6 -5
  8. package/build/cjs/syntax/runtime.d.ts +20 -4
  9. package/build/cjs/syntax/runtime.js +183 -28
  10. package/build/cjs/syntax/static.d.ts +107 -23
  11. package/build/cjs/type/array/array.d.ts +1 -1
  12. package/build/cjs/type/awaited/awaited.d.ts +8 -3
  13. package/build/cjs/type/awaited/awaited.js +20 -20
  14. package/build/cjs/type/computed/computed.d.ts +9 -0
  15. package/build/cjs/type/computed/computed.js +10 -0
  16. package/build/cjs/type/computed/index.d.ts +1 -0
  17. package/build/cjs/type/{deref → computed}/index.js +1 -1
  18. package/build/cjs/type/guard/kind.d.ts +12 -4
  19. package/build/cjs/type/guard/kind.js +15 -0
  20. package/build/cjs/type/guard/type.d.ts +9 -3
  21. package/build/cjs/type/guard/type.js +19 -0
  22. package/build/cjs/type/index.d.ts +1 -2
  23. package/build/cjs/type/index.js +1 -2
  24. package/build/cjs/type/indexed/indexed-from-mapped-key.d.ts +6 -6
  25. package/build/cjs/type/indexed/indexed-from-mapped-key.js +10 -10
  26. package/build/cjs/type/indexed/indexed-from-mapped-result.d.ts +5 -5
  27. package/build/cjs/type/indexed/indexed-from-mapped-result.js +11 -10
  28. package/build/cjs/type/indexed/indexed-property-keys.d.ts +6 -6
  29. package/build/cjs/type/indexed/indexed-property-keys.js +14 -14
  30. package/build/cjs/type/indexed/indexed.d.ts +34 -20
  31. package/build/cjs/type/indexed/indexed.js +59 -46
  32. package/build/cjs/type/intersect/intersect-evaluated.d.ts +6 -6
  33. package/build/cjs/type/intersect/intersect-evaluated.js +16 -16
  34. package/build/cjs/type/intersect/intersect.d.ts +2 -2
  35. package/build/cjs/type/intersect/intersect.js +6 -6
  36. package/build/cjs/type/keyof/keyof-from-mapped-result.d.ts +6 -6
  37. package/build/cjs/type/keyof/keyof-from-mapped-result.js +10 -10
  38. package/build/cjs/type/keyof/keyof-property-keys.d.ts +7 -7
  39. package/build/cjs/type/keyof/keyof-property-keys.js +22 -22
  40. package/build/cjs/type/keyof/keyof.d.ts +11 -6
  41. package/build/cjs/type/keyof/keyof.js +22 -13
  42. package/build/cjs/type/module/compute.d.ts +54 -0
  43. package/build/cjs/type/module/compute.js +154 -0
  44. package/build/cjs/type/module/index.d.ts +1 -0
  45. package/build/cjs/type/{strict → module}/index.js +1 -1
  46. package/build/cjs/type/module/infer.d.ts +43 -0
  47. package/build/cjs/type/module/infer.js +3 -0
  48. package/build/cjs/type/module/module.d.ts +27 -0
  49. package/build/cjs/type/module/module.js +37 -0
  50. package/build/cjs/type/not/not.d.ts +1 -1
  51. package/build/cjs/type/not/not.js +2 -2
  52. package/build/cjs/type/omit/omit-from-mapped-key.d.ts +6 -6
  53. package/build/cjs/type/omit/omit-from-mapped-key.js +10 -12
  54. package/build/cjs/type/omit/omit-from-mapped-result.d.ts +5 -5
  55. package/build/cjs/type/omit/omit-from-mapped-result.js +10 -10
  56. package/build/cjs/type/omit/omit.d.ts +26 -14
  57. package/build/cjs/type/omit/omit.js +46 -35
  58. package/build/cjs/type/partial/partial.d.ts +11 -7
  59. package/build/cjs/type/partial/partial.js +36 -24
  60. package/build/cjs/type/pick/pick-from-mapped-key.d.ts +6 -6
  61. package/build/cjs/type/pick/pick-from-mapped-key.js +10 -10
  62. package/build/cjs/type/pick/pick-from-mapped-result.d.ts +5 -5
  63. package/build/cjs/type/pick/pick-from-mapped-result.js +10 -10
  64. package/build/cjs/type/pick/pick.d.ts +25 -15
  65. package/build/cjs/type/pick/pick.js +47 -36
  66. package/build/cjs/type/record/record.d.ts +4 -2
  67. package/build/cjs/type/record/record.js +31 -28
  68. package/build/cjs/type/ref/ref.d.ts +4 -7
  69. package/build/cjs/type/ref/ref.js +3 -11
  70. package/build/cjs/type/required/required.d.ts +12 -8
  71. package/build/cjs/type/required/required.js +37 -25
  72. package/build/cjs/type/static/static.d.ts +1 -1
  73. package/build/cjs/type/tuple/tuple.d.ts +1 -1
  74. package/build/cjs/type/tuple/tuple.js +4 -4
  75. package/build/cjs/type/type/javascript.d.ts +10 -10
  76. package/build/cjs/type/type/javascript.js +6 -6
  77. package/build/cjs/type/type/json.d.ts +45 -68
  78. package/build/cjs/type/type/json.js +82 -98
  79. package/build/cjs/type/type/type.d.ts +1 -2
  80. package/build/cjs/type/type/type.js +55 -57
  81. package/build/cjs/type/union/union-evaluated.d.ts +6 -6
  82. package/build/cjs/type/union/union-evaluated.js +11 -10
  83. package/build/cjs/type/union/union.d.ts +1 -1
  84. package/build/cjs/type/union/union.js +4 -4
  85. package/build/cjs/value/cast/cast.js +8 -1
  86. package/build/cjs/value/check/check.js +11 -4
  87. package/build/cjs/value/clean/clean.js +8 -1
  88. package/build/cjs/value/convert/convert.js +7 -0
  89. package/build/cjs/value/create/create.js +7 -0
  90. package/build/cjs/value/default/default.js +7 -0
  91. package/build/cjs/value/transform/decode.js +18 -7
  92. package/build/cjs/value/transform/encode.js +18 -7
  93. package/build/cjs/value/transform/has.js +18 -18
  94. package/build/esm/compiler/compiler.d.mts +2 -2
  95. package/build/esm/compiler/compiler.mjs +13 -2
  96. package/build/esm/errors/errors.mjs +7 -0
  97. package/build/esm/index.d.mts +1 -2
  98. package/build/esm/index.mjs +1 -2
  99. package/build/esm/syntax/parse.d.mts +14 -15
  100. package/build/esm/syntax/parse.mjs +6 -5
  101. package/build/esm/syntax/runtime.d.mts +20 -4
  102. package/build/esm/syntax/runtime.mjs +183 -28
  103. package/build/esm/syntax/static.d.mts +107 -23
  104. package/build/esm/type/array/array.d.mts +1 -1
  105. package/build/esm/type/awaited/awaited.d.mts +8 -3
  106. package/build/esm/type/awaited/awaited.mjs +20 -20
  107. package/build/esm/type/computed/computed.d.mts +9 -0
  108. package/build/esm/type/computed/computed.mjs +6 -0
  109. package/build/esm/type/computed/index.d.mts +1 -0
  110. package/build/esm/type/computed/index.mjs +1 -0
  111. package/build/esm/type/guard/kind.d.mts +12 -4
  112. package/build/esm/type/guard/kind.mjs +12 -0
  113. package/build/esm/type/guard/type.d.mts +9 -3
  114. package/build/esm/type/guard/type.mjs +17 -0
  115. package/build/esm/type/index.d.mts +1 -2
  116. package/build/esm/type/index.mjs +1 -2
  117. package/build/esm/type/indexed/indexed-from-mapped-key.d.mts +6 -6
  118. package/build/esm/type/indexed/indexed-from-mapped-key.mjs +10 -10
  119. package/build/esm/type/indexed/indexed-from-mapped-result.d.mts +5 -5
  120. package/build/esm/type/indexed/indexed-from-mapped-result.mjs +11 -10
  121. package/build/esm/type/indexed/indexed-property-keys.d.mts +6 -6
  122. package/build/esm/type/indexed/indexed-property-keys.mjs +14 -14
  123. package/build/esm/type/indexed/indexed.d.mts +34 -20
  124. package/build/esm/type/indexed/indexed.mjs +55 -42
  125. package/build/esm/type/intersect/intersect-evaluated.d.mts +6 -6
  126. package/build/esm/type/intersect/intersect-evaluated.mjs +16 -16
  127. package/build/esm/type/intersect/intersect.d.mts +2 -2
  128. package/build/esm/type/intersect/intersect.mjs +6 -6
  129. package/build/esm/type/keyof/keyof-from-mapped-result.d.mts +6 -6
  130. package/build/esm/type/keyof/keyof-from-mapped-result.mjs +10 -10
  131. package/build/esm/type/keyof/keyof-property-keys.d.mts +7 -7
  132. package/build/esm/type/keyof/keyof-property-keys.mjs +22 -22
  133. package/build/esm/type/keyof/keyof.d.mts +11 -6
  134. package/build/esm/type/keyof/keyof.mjs +22 -13
  135. package/build/esm/type/module/compute.d.mts +54 -0
  136. package/build/esm/type/module/compute.mjs +148 -0
  137. package/build/esm/type/module/index.d.mts +1 -0
  138. package/build/esm/type/module/index.mjs +1 -0
  139. package/build/esm/type/module/infer.d.mts +43 -0
  140. package/build/esm/type/module/infer.mjs +1 -0
  141. package/build/esm/type/module/module.d.mts +27 -0
  142. package/build/esm/type/module/module.mjs +31 -0
  143. package/build/esm/type/not/not.d.mts +1 -1
  144. package/build/esm/type/not/not.mjs +2 -2
  145. package/build/esm/type/omit/omit-from-mapped-key.d.mts +6 -6
  146. package/build/esm/type/omit/omit-from-mapped-key.mjs +10 -12
  147. package/build/esm/type/omit/omit-from-mapped-result.d.mts +5 -5
  148. package/build/esm/type/omit/omit-from-mapped-result.mjs +10 -10
  149. package/build/esm/type/omit/omit.d.mts +26 -14
  150. package/build/esm/type/omit/omit.mjs +43 -32
  151. package/build/esm/type/partial/partial.d.mts +11 -7
  152. package/build/esm/type/partial/partial.mjs +29 -17
  153. package/build/esm/type/pick/pick-from-mapped-key.d.mts +6 -6
  154. package/build/esm/type/pick/pick-from-mapped-key.mjs +10 -10
  155. package/build/esm/type/pick/pick-from-mapped-result.d.mts +5 -5
  156. package/build/esm/type/pick/pick-from-mapped-result.mjs +10 -10
  157. package/build/esm/type/pick/pick.d.mts +25 -15
  158. package/build/esm/type/pick/pick.mjs +43 -32
  159. package/build/esm/type/record/record.d.mts +4 -2
  160. package/build/esm/type/record/record.mjs +15 -12
  161. package/build/esm/type/ref/ref.d.mts +4 -7
  162. package/build/esm/type/ref/ref.mjs +3 -11
  163. package/build/esm/type/required/required.d.mts +12 -8
  164. package/build/esm/type/required/required.mjs +33 -21
  165. package/build/esm/type/static/static.d.mts +1 -1
  166. package/build/esm/type/tuple/tuple.d.mts +1 -1
  167. package/build/esm/type/tuple/tuple.mjs +4 -4
  168. package/build/esm/type/type/javascript.d.mts +10 -10
  169. package/build/esm/type/type/javascript.mjs +6 -6
  170. package/build/esm/type/type/json.d.mts +45 -68
  171. package/build/esm/type/type/json.mjs +47 -63
  172. package/build/esm/type/type/type.d.mts +1 -2
  173. package/build/esm/type/type/type.mjs +1 -2
  174. package/build/esm/type/union/union-evaluated.d.mts +6 -6
  175. package/build/esm/type/union/union-evaluated.mjs +11 -10
  176. package/build/esm/type/union/union.d.mts +1 -1
  177. package/build/esm/type/union/union.mjs +4 -4
  178. package/build/esm/value/cast/cast.mjs +9 -2
  179. package/build/esm/value/check/check.mjs +11 -4
  180. package/build/esm/value/clean/clean.mjs +9 -2
  181. package/build/esm/value/convert/convert.mjs +7 -0
  182. package/build/esm/value/create/create.mjs +7 -0
  183. package/build/esm/value/default/default.mjs +7 -0
  184. package/build/esm/value/transform/decode.mjs +13 -2
  185. package/build/esm/value/transform/encode.mjs +13 -2
  186. package/build/esm/value/transform/has.mjs +2 -2
  187. package/package.json +1 -1
  188. package/readme.md +230 -97
  189. package/build/cjs/type/deref/deref.d.ts +0 -22
  190. package/build/cjs/type/deref/deref.js +0 -106
  191. package/build/cjs/type/deref/index.d.ts +0 -1
  192. package/build/cjs/type/strict/index.d.ts +0 -1
  193. package/build/cjs/type/strict/strict.d.ts +0 -12
  194. package/build/cjs/type/strict/strict.js +0 -16
  195. package/build/esm/type/deref/deref.d.mts +0 -22
  196. package/build/esm/type/deref/deref.mjs +0 -102
  197. package/build/esm/type/deref/index.d.mts +0 -1
  198. package/build/esm/type/deref/index.mjs +0 -1
  199. package/build/esm/type/strict/index.d.mts +0 -1
  200. package/build/esm/type/strict/index.mjs +0 -1
  201. package/build/esm/type/strict/strict.d.mts +0 -12
  202. package/build/esm/type/strict/strict.mjs +0 -12
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.String = exports.ReturnType = exports.Rest = exports.Required = exports.RegExp = exports.Ref = exports.Recursive = exports.Record = exports.ReadonlyOptional = exports.Readonly = exports.Promise = exports.Pick = exports.Partial = exports.Parameters = exports.Optional = exports.Omit = exports.Object = exports.Number = exports.Null = exports.Not = exports.Never = exports.Mapped = exports.Literal = exports.KeyOf = exports.Iterator = exports.Uppercase = exports.Lowercase = exports.Uncapitalize = exports.Capitalize = exports.Intersect = exports.Integer = exports.InstanceType = exports.Index = exports.Function = exports.Extract = exports.Extends = exports.Exclude = exports.Enum = exports.Deref = exports.Date = exports.ConstructorParameters = exports.Constructor = exports.Const = exports.Composite = exports.Boolean = exports.BigInt = exports.Awaited = exports.AsyncIterator = exports.Array = exports.Any = void 0;
5
- exports.Void = exports.Unsafe = exports.Unknown = exports.Union = exports.Undefined = exports.Uint8Array = exports.Tuple = exports.Transform = exports.TemplateLiteral = exports.Symbol = exports.Strict = void 0;
4
+ exports.String = exports.ReturnType = exports.Rest = exports.Required = exports.RegExp = exports.Ref = exports.Recursive = exports.Record = exports.ReadonlyOptional = exports.Readonly = exports.Promise = exports.Pick = exports.Partial = exports.Parameters = exports.Optional = exports.Omit = exports.Object = exports.Number = exports.Null = exports.Not = exports.Never = exports.Module = exports.Mapped = exports.Literal = exports.KeyOf = exports.Iterator = exports.Uppercase = exports.Lowercase = exports.Uncapitalize = exports.Capitalize = exports.Intersect = exports.Integer = exports.InstanceType = exports.Index = exports.Function = exports.Extract = exports.Extends = exports.Exclude = exports.Enum = exports.Date = exports.ConstructorParameters = exports.Constructor = exports.Const = exports.Composite = exports.Boolean = exports.BigInt = exports.Awaited = exports.AsyncIterator = exports.Array = exports.Any = void 0;
5
+ exports.Void = exports.Unsafe = exports.Unknown = exports.Union = exports.Undefined = exports.Uint8Array = exports.Tuple = exports.Transform = exports.TemplateLiteral = exports.Symbol = void 0;
6
6
  // ------------------------------------------------------------------
7
7
  // Type: Module
8
8
  // ------------------------------------------------------------------
@@ -28,39 +28,39 @@ var index_10 = require("../constructor-parameters/index");
28
28
  Object.defineProperty(exports, "ConstructorParameters", { enumerable: true, get: function () { return index_10.ConstructorParameters; } });
29
29
  var index_11 = require("../date/index");
30
30
  Object.defineProperty(exports, "Date", { enumerable: true, get: function () { return index_11.Date; } });
31
- var index_12 = require("../deref/index");
32
- Object.defineProperty(exports, "Deref", { enumerable: true, get: function () { return index_12.Deref; } });
33
- var index_13 = require("../enum/index");
34
- Object.defineProperty(exports, "Enum", { enumerable: true, get: function () { return index_13.Enum; } });
35
- var index_14 = require("../exclude/index");
36
- Object.defineProperty(exports, "Exclude", { enumerable: true, get: function () { return index_14.Exclude; } });
37
- var index_15 = require("../extends/index");
38
- Object.defineProperty(exports, "Extends", { enumerable: true, get: function () { return index_15.Extends; } });
39
- var index_16 = require("../extract/index");
40
- Object.defineProperty(exports, "Extract", { enumerable: true, get: function () { return index_16.Extract; } });
41
- var index_17 = require("../function/index");
42
- Object.defineProperty(exports, "Function", { enumerable: true, get: function () { return index_17.Function; } });
43
- var index_18 = require("../indexed/index");
44
- Object.defineProperty(exports, "Index", { enumerable: true, get: function () { return index_18.Index; } });
45
- var index_19 = require("../instance-type/index");
46
- Object.defineProperty(exports, "InstanceType", { enumerable: true, get: function () { return index_19.InstanceType; } });
47
- var index_20 = require("../integer/index");
48
- Object.defineProperty(exports, "Integer", { enumerable: true, get: function () { return index_20.Integer; } });
49
- var index_21 = require("../intersect/index");
50
- Object.defineProperty(exports, "Intersect", { enumerable: true, get: function () { return index_21.Intersect; } });
51
- var index_22 = require("../intrinsic/index");
52
- Object.defineProperty(exports, "Capitalize", { enumerable: true, get: function () { return index_22.Capitalize; } });
53
- Object.defineProperty(exports, "Uncapitalize", { enumerable: true, get: function () { return index_22.Uncapitalize; } });
54
- Object.defineProperty(exports, "Lowercase", { enumerable: true, get: function () { return index_22.Lowercase; } });
55
- Object.defineProperty(exports, "Uppercase", { enumerable: true, get: function () { return index_22.Uppercase; } });
56
- var index_23 = require("../iterator/index");
57
- Object.defineProperty(exports, "Iterator", { enumerable: true, get: function () { return index_23.Iterator; } });
58
- var index_24 = require("../keyof/index");
59
- Object.defineProperty(exports, "KeyOf", { enumerable: true, get: function () { return index_24.KeyOf; } });
60
- var index_25 = require("../literal/index");
61
- Object.defineProperty(exports, "Literal", { enumerable: true, get: function () { return index_25.Literal; } });
62
- var index_26 = require("../mapped/index");
63
- Object.defineProperty(exports, "Mapped", { enumerable: true, get: function () { return index_26.Mapped; } });
31
+ var index_12 = require("../enum/index");
32
+ Object.defineProperty(exports, "Enum", { enumerable: true, get: function () { return index_12.Enum; } });
33
+ var index_13 = require("../exclude/index");
34
+ Object.defineProperty(exports, "Exclude", { enumerable: true, get: function () { return index_13.Exclude; } });
35
+ var index_14 = require("../extends/index");
36
+ Object.defineProperty(exports, "Extends", { enumerable: true, get: function () { return index_14.Extends; } });
37
+ var index_15 = require("../extract/index");
38
+ Object.defineProperty(exports, "Extract", { enumerable: true, get: function () { return index_15.Extract; } });
39
+ var index_16 = require("../function/index");
40
+ Object.defineProperty(exports, "Function", { enumerable: true, get: function () { return index_16.Function; } });
41
+ var index_17 = require("../indexed/index");
42
+ Object.defineProperty(exports, "Index", { enumerable: true, get: function () { return index_17.Index; } });
43
+ var index_18 = require("../instance-type/index");
44
+ Object.defineProperty(exports, "InstanceType", { enumerable: true, get: function () { return index_18.InstanceType; } });
45
+ var index_19 = require("../integer/index");
46
+ Object.defineProperty(exports, "Integer", { enumerable: true, get: function () { return index_19.Integer; } });
47
+ var index_20 = require("../intersect/index");
48
+ Object.defineProperty(exports, "Intersect", { enumerable: true, get: function () { return index_20.Intersect; } });
49
+ var index_21 = require("../intrinsic/index");
50
+ Object.defineProperty(exports, "Capitalize", { enumerable: true, get: function () { return index_21.Capitalize; } });
51
+ Object.defineProperty(exports, "Uncapitalize", { enumerable: true, get: function () { return index_21.Uncapitalize; } });
52
+ Object.defineProperty(exports, "Lowercase", { enumerable: true, get: function () { return index_21.Lowercase; } });
53
+ Object.defineProperty(exports, "Uppercase", { enumerable: true, get: function () { return index_21.Uppercase; } });
54
+ var index_22 = require("../iterator/index");
55
+ Object.defineProperty(exports, "Iterator", { enumerable: true, get: function () { return index_22.Iterator; } });
56
+ var index_23 = require("../keyof/index");
57
+ Object.defineProperty(exports, "KeyOf", { enumerable: true, get: function () { return index_23.KeyOf; } });
58
+ var index_24 = require("../literal/index");
59
+ Object.defineProperty(exports, "Literal", { enumerable: true, get: function () { return index_24.Literal; } });
60
+ var index_25 = require("../mapped/index");
61
+ Object.defineProperty(exports, "Mapped", { enumerable: true, get: function () { return index_25.Mapped; } });
62
+ var index_26 = require("../module/index");
63
+ Object.defineProperty(exports, "Module", { enumerable: true, get: function () { return index_26.Module; } });
64
64
  var index_27 = require("../never/index");
65
65
  Object.defineProperty(exports, "Never", { enumerable: true, get: function () { return index_27.Never; } });
66
66
  var index_28 = require("../not/index");
@@ -103,25 +103,23 @@ var index_46 = require("../return-type/index");
103
103
  Object.defineProperty(exports, "ReturnType", { enumerable: true, get: function () { return index_46.ReturnType; } });
104
104
  var index_47 = require("../string/index");
105
105
  Object.defineProperty(exports, "String", { enumerable: true, get: function () { return index_47.String; } });
106
- var index_48 = require("../strict/index");
107
- Object.defineProperty(exports, "Strict", { enumerable: true, get: function () { return index_48.Strict; } });
108
- var index_49 = require("../symbol/index");
109
- Object.defineProperty(exports, "Symbol", { enumerable: true, get: function () { return index_49.Symbol; } });
110
- var index_50 = require("../template-literal/index");
111
- Object.defineProperty(exports, "TemplateLiteral", { enumerable: true, get: function () { return index_50.TemplateLiteral; } });
112
- var index_51 = require("../transform/index");
113
- Object.defineProperty(exports, "Transform", { enumerable: true, get: function () { return index_51.Transform; } });
114
- var index_52 = require("../tuple/index");
115
- Object.defineProperty(exports, "Tuple", { enumerable: true, get: function () { return index_52.Tuple; } });
116
- var index_53 = require("../uint8array/index");
117
- Object.defineProperty(exports, "Uint8Array", { enumerable: true, get: function () { return index_53.Uint8Array; } });
118
- var index_54 = require("../undefined/index");
119
- Object.defineProperty(exports, "Undefined", { enumerable: true, get: function () { return index_54.Undefined; } });
120
- var index_55 = require("../union/index");
121
- Object.defineProperty(exports, "Union", { enumerable: true, get: function () { return index_55.Union; } });
122
- var index_56 = require("../unknown/index");
123
- Object.defineProperty(exports, "Unknown", { enumerable: true, get: function () { return index_56.Unknown; } });
124
- var index_57 = require("../unsafe/index");
125
- Object.defineProperty(exports, "Unsafe", { enumerable: true, get: function () { return index_57.Unsafe; } });
126
- var index_58 = require("../void/index");
127
- Object.defineProperty(exports, "Void", { enumerable: true, get: function () { return index_58.Void; } });
106
+ var index_48 = require("../symbol/index");
107
+ Object.defineProperty(exports, "Symbol", { enumerable: true, get: function () { return index_48.Symbol; } });
108
+ var index_49 = require("../template-literal/index");
109
+ Object.defineProperty(exports, "TemplateLiteral", { enumerable: true, get: function () { return index_49.TemplateLiteral; } });
110
+ var index_50 = require("../transform/index");
111
+ Object.defineProperty(exports, "Transform", { enumerable: true, get: function () { return index_50.Transform; } });
112
+ var index_51 = require("../tuple/index");
113
+ Object.defineProperty(exports, "Tuple", { enumerable: true, get: function () { return index_51.Tuple; } });
114
+ var index_52 = require("../uint8array/index");
115
+ Object.defineProperty(exports, "Uint8Array", { enumerable: true, get: function () { return index_52.Uint8Array; } });
116
+ var index_53 = require("../undefined/index");
117
+ Object.defineProperty(exports, "Undefined", { enumerable: true, get: function () { return index_53.Undefined; } });
118
+ var index_54 = require("../union/index");
119
+ Object.defineProperty(exports, "Union", { enumerable: true, get: function () { return index_54.Union; } });
120
+ var index_55 = require("../unknown/index");
121
+ Object.defineProperty(exports, "Unknown", { enumerable: true, get: function () { return index_55.Unknown; } });
122
+ var index_56 = require("../unsafe/index");
123
+ Object.defineProperty(exports, "Unsafe", { enumerable: true, get: function () { return index_56.Unsafe; } });
124
+ var index_57 = require("../void/index");
125
+ Object.defineProperty(exports, "Void", { enumerable: true, get: function () { return index_57.Void; } });
@@ -3,11 +3,11 @@ import { type TNever } from '../never/index';
3
3
  import { type TOptional } from '../optional/index';
4
4
  import type { TReadonly } from '../readonly/index';
5
5
  import type { TUnion } from './union-type';
6
- type TIsUnionOptional<T extends TSchema[]> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? L extends TOptional<TSchema> ? true : TIsUnionOptional<R> : false);
7
- type TRemoveOptionalFromRest<T extends TSchema[], Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? L extends TOptional<infer S extends TSchema> ? TRemoveOptionalFromRest<R, [...Acc, TRemoveOptionalFromType<S>]> : TRemoveOptionalFromRest<R, [...Acc, L]> : Acc);
8
- type TRemoveOptionalFromType<T extends TSchema> = (T extends TReadonly<infer S extends TSchema> ? TReadonly<TRemoveOptionalFromType<S>> : T extends TOptional<infer S extends TSchema> ? TRemoveOptionalFromType<S> : T);
9
- type TResolveUnion<T extends TSchema[], R extends TSchema[] = TRemoveOptionalFromRest<T>> = (TIsUnionOptional<T> extends true ? TOptional<TUnion<R>> : TUnion<R>);
10
- export type TUnionEvaluated<T extends TSchema[]> = (T extends [] ? TNever : T extends [TSchema] ? T[0] : TResolveUnion<T>);
6
+ type TIsUnionOptional<Types extends TSchema[]> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? Left extends TOptional<TSchema> ? true : TIsUnionOptional<Right> : false);
7
+ type TRemoveOptionalFromRest<Types extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? Left extends TOptional<infer S extends TSchema> ? TRemoveOptionalFromRest<Right, [...Result, TRemoveOptionalFromType<S>]> : TRemoveOptionalFromRest<Right, [...Result, Left]> : Result);
8
+ type TRemoveOptionalFromType<Type extends TSchema> = (Type extends TReadonly<infer Type extends TSchema> ? TReadonly<TRemoveOptionalFromType<Type>> : Type extends TOptional<infer Type extends TSchema> ? TRemoveOptionalFromType<Type> : Type);
9
+ type TResolveUnion<Types extends TSchema[], Result extends TSchema[] = TRemoveOptionalFromRest<Types>, IsOptional extends boolean = TIsUnionOptional<Types>> = (IsOptional extends true ? TOptional<TUnion<Result>> : TUnion<Result>);
10
+ export type TUnionEvaluated<Types extends TSchema[]> = (Types extends [TSchema] ? Types[0] : Types extends [] ? TNever : TResolveUnion<Types>);
11
11
  /** `[Json]` Creates an evaluated Union type */
12
- export declare function UnionEvaluated<T extends TSchema[], R = TUnionEvaluated<T>>(T: [...T], options?: SchemaOptions): R;
12
+ export declare function UnionEvaluated<Types extends TSchema[], Result = TUnionEvaluated<Types>>(T: [...Types], options?: SchemaOptions): Result;
13
13
  export {};
@@ -13,27 +13,28 @@ const union_create_1 = require("./union-create");
13
13
  // ------------------------------------------------------------------
14
14
  const kind_1 = require("../guard/kind");
15
15
  // prettier-ignore
16
- function IsUnionOptional(T) {
17
- return T.some(L => (0, kind_1.IsOptional)(L));
16
+ function IsUnionOptional(types) {
17
+ return types.some(type => (0, kind_1.IsOptional)(type));
18
18
  }
19
19
  // prettier-ignore
20
- function RemoveOptionalFromRest(T) {
21
- return T.map(L => (0, kind_1.IsOptional)(L) ? RemoveOptionalFromType(L) : L);
20
+ function RemoveOptionalFromRest(types) {
21
+ return types.map(left => (0, kind_1.IsOptional)(left) ? RemoveOptionalFromType(left) : left);
22
22
  }
23
23
  // prettier-ignore
24
24
  function RemoveOptionalFromType(T) {
25
25
  return ((0, index_2.Discard)(T, [index_1.OptionalKind]));
26
26
  }
27
27
  // prettier-ignore
28
- function ResolveUnion(T, options) {
29
- return (IsUnionOptional(T)
30
- ? (0, index_4.Optional)((0, union_create_1.UnionCreate)(RemoveOptionalFromRest(T), options))
31
- : (0, union_create_1.UnionCreate)(RemoveOptionalFromRest(T), options));
28
+ function ResolveUnion(types, options) {
29
+ const isOptional = IsUnionOptional(types);
30
+ return (isOptional
31
+ ? (0, index_4.Optional)((0, union_create_1.UnionCreate)(RemoveOptionalFromRest(types), options))
32
+ : (0, union_create_1.UnionCreate)(RemoveOptionalFromRest(types), options));
32
33
  }
33
34
  /** `[Json]` Creates an evaluated Union type */
34
35
  function UnionEvaluated(T, options) {
35
36
  // prettier-ignore
36
- return (T.length === 0 ? (0, index_3.Never)(options) :
37
- T.length === 1 ? (0, type_1.CreateType)(T[0], options) :
37
+ return (T.length === 1 ? (0, type_1.CreateType)(T[0], options) :
38
+ T.length === 0 ? (0, index_3.Never)(options) :
38
39
  ResolveUnion(T, options));
39
40
  }
@@ -3,4 +3,4 @@ import { type TNever } from '../never/index';
3
3
  import type { TUnion } from './union-type';
4
4
  export type Union<T extends TSchema[]> = (T extends [] ? TNever : T extends [TSchema] ? T[0] : TUnion<T>);
5
5
  /** `[Json]` Creates a Union type */
6
- export declare function Union<T extends TSchema[]>(T: [...T], options?: SchemaOptions): Union<T>;
6
+ export declare function Union<Types extends TSchema[]>(types: [...Types], options?: SchemaOptions): Union<Types>;
@@ -6,9 +6,9 @@ const index_1 = require("../never/index");
6
6
  const type_1 = require("../create/type");
7
7
  const union_create_1 = require("./union-create");
8
8
  /** `[Json]` Creates a Union type */
9
- function Union(T, options) {
9
+ function Union(types, options) {
10
10
  // prettier-ignore
11
- return (T.length === 0 ? (0, index_1.Never)(options) :
12
- T.length === 1 ? (0, type_1.CreateType)(T[0], options) :
13
- (0, union_create_1.UnionCreate)(T, options));
11
+ return (types.length === 0 ? (0, index_1.Never)(options) :
12
+ types.length === 1 ? (0, type_1.CreateType)(types[0], options) :
13
+ (0, union_create_1.UnionCreate)(types, options));
14
14
  }
@@ -104,6 +104,11 @@ function FromConstructor(schema, references, value) {
104
104
  }
105
105
  return result;
106
106
  }
107
+ function FromImport(schema, references, value) {
108
+ const definitions = globalThis.Object.values(schema.$defs);
109
+ const target = schema.$defs[schema.$ref];
110
+ return Visit(target, [...references, ...definitions], value);
111
+ }
107
112
  function FromIntersect(schema, references, value) {
108
113
  const created = (0, index_4.Create)(schema, references);
109
114
  const mapped = (0, index_1.IsObject)(created) && (0, index_1.IsObject)(value) ? { ...created, ...value } : value;
@@ -167,7 +172,7 @@ function FromUnion(schema, references, value) {
167
172
  return (0, index_5.Check)(schema, references, value) ? (0, index_6.Clone)(value) : CastUnion(schema, references, value);
168
173
  }
169
174
  function Visit(schema, references, value) {
170
- const references_ = (0, index_1.IsString)(schema.$id) ? [...references, schema] : references;
175
+ const references_ = (0, index_1.IsString)(schema.$id) ? (0, index_7.Pushref)(schema, references) : references;
171
176
  const schema_ = schema;
172
177
  switch (schema[index_3.Kind]) {
173
178
  // --------------------------------------------------------------
@@ -177,6 +182,8 @@ function Visit(schema, references, value) {
177
182
  return FromArray(schema_, references_, value);
178
183
  case 'Constructor':
179
184
  return FromConstructor(schema_, references_, value);
185
+ case 'Import':
186
+ return FromImport(schema_, references_, value);
180
187
  case 'Intersect':
181
188
  return FromIntersect(schema_, references_, value);
182
189
  case 'Never':
@@ -17,9 +17,9 @@ const index_9 = require("../../type/never/index");
17
17
  // ------------------------------------------------------------------
18
18
  const index_10 = require("../guard/index");
19
19
  // ------------------------------------------------------------------
20
- // TypeGuard
20
+ // KindGuard
21
21
  // ------------------------------------------------------------------
22
- const type_1 = require("../../type/guard/type");
22
+ const kind_1 = require("../../type/guard/kind");
23
23
  // ------------------------------------------------------------------
24
24
  // Errors
25
25
  // ------------------------------------------------------------------
@@ -141,6 +141,11 @@ function FromDate(schema, references, value) {
141
141
  function FromFunction(schema, references, value) {
142
142
  return (0, index_10.IsFunction)(value);
143
143
  }
144
+ function FromImport(schema, references, value) {
145
+ const definitions = globalThis.Object.values(schema.$defs);
146
+ const target = schema.$defs[schema.$ref];
147
+ return Visit(target, [...references, ...definitions], value);
148
+ }
144
149
  function FromInteger(schema, references, value) {
145
150
  if (!(0, index_10.IsInteger)(value)) {
146
151
  return false;
@@ -169,7 +174,7 @@ function FromIntersect(schema, references, value) {
169
174
  const check2 = Object.getOwnPropertyNames(value).every((key) => keyPattern.test(key));
170
175
  return check1 && check2;
171
176
  }
172
- else if ((0, type_1.IsSchema)(schema.unevaluatedProperties)) {
177
+ else if ((0, kind_1.IsSchema)(schema.unevaluatedProperties)) {
173
178
  const keyCheck = new RegExp((0, index_5.KeyOfPattern)(schema));
174
179
  const check2 = Object.getOwnPropertyNames(value).every((key) => keyCheck.test(key) || Visit(schema.unevaluatedProperties, references, value[key]));
175
180
  return check1 && check2;
@@ -386,7 +391,7 @@ function FromKind(schema, references, value) {
386
391
  return func(schema, value);
387
392
  }
388
393
  function Visit(schema, references, value) {
389
- const references_ = IsDefined(schema.$id) ? [...references, schema] : references;
394
+ const references_ = IsDefined(schema.$id) ? (0, index_2.Pushref)(schema, references) : references;
390
395
  const schema_ = schema;
391
396
  switch (schema_[index_4.Kind]) {
392
397
  case 'Any':
@@ -405,6 +410,8 @@ function Visit(schema, references, value) {
405
410
  return FromDate(schema_, references_, value);
406
411
  case 'Function':
407
412
  return FromFunction(schema_, references_, value);
413
+ case 'Import':
414
+ return FromImport(schema_, references_, value);
408
415
  case 'Integer':
409
416
  return FromInteger(schema_, references_, value);
410
417
  case 'Intersect':
@@ -31,6 +31,11 @@ function FromArray(schema, references, value) {
31
31
  return value;
32
32
  return value.map((value) => Visit(schema.items, references, value));
33
33
  }
34
+ function FromImport(schema, references, value) {
35
+ const definitions = globalThis.Object.values(schema.$defs);
36
+ const target = schema.$defs[schema.$ref];
37
+ return Visit(target, [...references, ...definitions], value);
38
+ }
34
39
  function FromIntersect(schema, references, value) {
35
40
  const unevaluatedProperties = schema.unevaluatedProperties;
36
41
  const intersections = schema.allOf.map((schema) => Visit(schema, references, (0, index_3.Clone)(value)));
@@ -113,11 +118,13 @@ function FromUnion(schema, references, value) {
113
118
  return value;
114
119
  }
115
120
  function Visit(schema, references, value) {
116
- const references_ = (0, index_6.IsString)(schema.$id) ? [...references, schema] : references;
121
+ const references_ = (0, index_6.IsString)(schema.$id) ? (0, index_4.Pushref)(schema, references) : references;
117
122
  const schema_ = schema;
118
123
  switch (schema_[index_5.Kind]) {
119
124
  case 'Array':
120
125
  return FromArray(schema_, references_, value);
126
+ case 'Import':
127
+ return FromImport(schema_, references_, value);
121
128
  case 'Intersect':
122
129
  return FromIntersect(schema_, references_, value);
123
130
  case 'Object':
@@ -127,6 +127,11 @@ function FromBoolean(schema, references, value) {
127
127
  function FromDate(schema, references, value) {
128
128
  return TryConvertDate(value);
129
129
  }
130
+ function FromImport(schema, references, value) {
131
+ const definitions = globalThis.Object.values(schema.$defs);
132
+ const target = schema.$defs[schema.$ref];
133
+ return Visit(target, [...references, ...definitions], value);
134
+ }
130
135
  function FromInteger(schema, references, value) {
131
136
  return TryConvertInteger(value);
132
137
  }
@@ -211,6 +216,8 @@ function Visit(schema, references, value) {
211
216
  return FromBoolean(schema_, references_, value);
212
217
  case 'Date':
213
218
  return FromDate(schema_, references_, value);
219
+ case 'Import':
220
+ return FromImport(schema_, references_, value);
214
221
  case 'Integer':
215
222
  return FromInteger(schema_, references_, value);
216
223
  case 'Intersect':
@@ -124,6 +124,11 @@ function FromFunction(schema, references) {
124
124
  return () => Visit(schema.returns, references);
125
125
  }
126
126
  }
127
+ function FromImport(schema, references) {
128
+ const definitions = globalThis.Object.values(schema.$defs);
129
+ const target = schema.$defs[schema.$ref];
130
+ return Visit(target, [...references, ...definitions]);
131
+ }
127
132
  function FromInteger(schema, references) {
128
133
  if ((0, index_1.HasPropertyKey)(schema, 'default')) {
129
134
  return FromDefault(schema.default);
@@ -407,6 +412,8 @@ function Visit(schema, references) {
407
412
  return FromDate(schema_, references_);
408
413
  case 'Function':
409
414
  return FromFunction(schema_, references_);
415
+ case 'Import':
416
+ return FromImport(schema_, references_);
410
417
  case 'Integer':
411
418
  return FromInteger(schema_, references_);
412
419
  case 'Intersect':
@@ -44,6 +44,11 @@ function FromDate(schema, references, value) {
44
44
  // special case intercept for dates
45
45
  return (0, index_5.IsDate)(value) ? value : ValueOrDefault(schema, value);
46
46
  }
47
+ function FromImport(schema, references, value) {
48
+ const definitions = globalThis.Object.values(schema.$defs);
49
+ const target = schema.$defs[schema.$ref];
50
+ return Visit(target, [...references, ...definitions], value);
51
+ }
47
52
  function FromIntersect(schema, references, value) {
48
53
  const defaulted = ValueOrDefault(schema, value);
49
54
  return schema.allOf.reduce((acc, schema) => {
@@ -137,6 +142,8 @@ function Visit(schema, references, value) {
137
142
  return FromArray(schema_, references_, value);
138
143
  case 'Date':
139
144
  return FromDate(schema_, references_, value);
145
+ case 'Import':
146
+ return FromImport(schema_, references_, value);
140
147
  case 'Intersect':
141
148
  return FromIntersect(schema_, references_, value);
142
149
  case 'Object':
@@ -14,9 +14,9 @@ const index_5 = require("../check/index");
14
14
  // ------------------------------------------------------------------
15
15
  const index_6 = require("../guard/index");
16
16
  // ------------------------------------------------------------------
17
- // TypeGuard
17
+ // KindGuard
18
18
  // ------------------------------------------------------------------
19
- const type_1 = require("../../type/guard/type");
19
+ const kind_1 = require("../../type/guard/kind");
20
20
  // ------------------------------------------------------------------
21
21
  // Errors
22
22
  // ------------------------------------------------------------------
@@ -48,7 +48,7 @@ exports.TransformDecodeError = TransformDecodeError;
48
48
  // prettier-ignore
49
49
  function Default(schema, path, value) {
50
50
  try {
51
- return (0, type_1.IsTransform)(schema) ? schema[index_1.TransformKind].Decode(value) : value;
51
+ return (0, kind_1.IsTransform)(schema) ? schema[index_1.TransformKind].Decode(value) : value;
52
52
  }
53
53
  catch (error) {
54
54
  throw new TransformDecodeError(schema, path, value, error);
@@ -71,7 +71,7 @@ function FromIntersect(schema, references, path, value) {
71
71
  if (knownKey in knownProperties) {
72
72
  knownProperties[knownKey] = Visit(knownSchema, references, `${path}/${knownKey}`, knownProperties[knownKey]);
73
73
  }
74
- if (!(0, type_1.IsTransform)(schema.unevaluatedProperties)) {
74
+ if (!(0, kind_1.IsTransform)(schema.unevaluatedProperties)) {
75
75
  return Default(schema, path, knownProperties);
76
76
  }
77
77
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -83,6 +83,15 @@ function FromIntersect(schema, references, path, value) {
83
83
  }
84
84
  return Default(schema, path, unknownProperties);
85
85
  }
86
+ // prettier-ignore
87
+ function FromImport(schema, references, path, value) {
88
+ const definitions = globalThis.Object.values(schema.$defs);
89
+ const target = schema.$defs[schema.$ref];
90
+ const transform = schema[index_1.TransformKind];
91
+ // Note: we need to re-spec the target as TSchema + [TransformKind]
92
+ const transformTarget = { [index_1.TransformKind]: transform, ...target };
93
+ return Visit(transformTarget, [...references, ...definitions], path, value);
94
+ }
86
95
  function FromNot(schema, references, path, value) {
87
96
  return Default(schema, path, Visit(schema.not, references, path, value));
88
97
  }
@@ -98,13 +107,13 @@ function FromObject(schema, references, path, value) {
98
107
  // if the property value is undefined, but the target is not, nor does it satisfy exact optional
99
108
  // property policy, then we need to continue. This is a special case for optional property handling
100
109
  // where a transforms wrapped in a optional modifiers should not run.
101
- if ((0, index_6.IsUndefined)(knownProperties[key]) && (!(0, type_1.IsUndefined)(schema.properties[key]) ||
110
+ if ((0, index_6.IsUndefined)(knownProperties[key]) && (!(0, kind_1.IsUndefined)(schema.properties[key]) ||
102
111
  policy_1.TypeSystemPolicy.IsExactOptionalProperty(knownProperties, key)))
103
112
  continue;
104
113
  // decode property
105
114
  knownProperties[key] = Visit(schema.properties[key], references, `${path}/${key}`, knownProperties[key]);
106
115
  }
107
- if (!(0, type_1.IsSchema)(schema.additionalProperties)) {
116
+ if (!(0, kind_1.IsSchema)(schema.additionalProperties)) {
108
117
  return Default(schema, path, knownProperties);
109
118
  }
110
119
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -127,7 +136,7 @@ function FromRecord(schema, references, path, value) {
127
136
  if (knownKeys.test(key)) {
128
137
  knownProperties[key] = Visit(schema.patternProperties[pattern], references, `${path}/${key}`, knownProperties[key]);
129
138
  }
130
- if (!(0, type_1.IsSchema)(schema.additionalProperties)) {
139
+ if (!(0, kind_1.IsSchema)(schema.additionalProperties)) {
131
140
  return Default(schema, path, knownProperties);
132
141
  }
133
142
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -173,6 +182,8 @@ function Visit(schema, references, path, value) {
173
182
  switch (schema[index_1.Kind]) {
174
183
  case 'Array':
175
184
  return FromArray(schema_, references_, path, value);
185
+ case 'Import':
186
+ return FromImport(schema_, references_, path, value);
176
187
  case 'Intersect':
177
188
  return FromIntersect(schema_, references_, path, value);
178
189
  case 'Not':
@@ -14,9 +14,9 @@ const index_5 = require("../check/index");
14
14
  // ------------------------------------------------------------------
15
15
  const index_6 = require("../guard/index");
16
16
  // ------------------------------------------------------------------
17
- // TypeGuard
17
+ // KindGuard
18
18
  // ------------------------------------------------------------------
19
- const type_1 = require("../../type/guard/type");
19
+ const kind_1 = require("../../type/guard/kind");
20
20
  // ------------------------------------------------------------------
21
21
  // Errors
22
22
  // ------------------------------------------------------------------
@@ -47,7 +47,7 @@ exports.TransformEncodeError = TransformEncodeError;
47
47
  // prettier-ignore
48
48
  function Default(schema, path, value) {
49
49
  try {
50
- return (0, type_1.IsTransform)(schema) ? schema[index_1.TransformKind].Encode(value) : value;
50
+ return (0, kind_1.IsTransform)(schema) ? schema[index_1.TransformKind].Encode(value) : value;
51
51
  }
52
52
  catch (error) {
53
53
  throw new TransformEncodeError(schema, path, value, error);
@@ -61,6 +61,15 @@ function FromArray(schema, references, path, value) {
61
61
  : defaulted;
62
62
  }
63
63
  // prettier-ignore
64
+ function FromImport(schema, references, path, value) {
65
+ const definitions = globalThis.Object.values(schema.$defs);
66
+ const target = schema.$defs[schema.$ref];
67
+ const transform = schema[index_1.TransformKind];
68
+ // Note: we need to re-spec the target as TSchema + [TransformKind]
69
+ const transformTarget = { [index_1.TransformKind]: transform, ...target };
70
+ return Visit(transformTarget, [...references, ...definitions], path, value);
71
+ }
72
+ // prettier-ignore
64
73
  function FromIntersect(schema, references, path, value) {
65
74
  const defaulted = Default(schema, path, value);
66
75
  if (!(0, index_6.IsObject)(value) || (0, index_6.IsValueType)(value))
@@ -72,7 +81,7 @@ function FromIntersect(schema, references, path, value) {
72
81
  if (knownKey in knownProperties) {
73
82
  knownProperties[knownKey] = Visit(knownSchema, references, `${path}/${knownKey}`, knownProperties[knownKey]);
74
83
  }
75
- if (!(0, type_1.IsTransform)(schema.unevaluatedProperties)) {
84
+ if (!(0, kind_1.IsTransform)(schema.unevaluatedProperties)) {
76
85
  return knownProperties;
77
86
  }
78
87
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -101,13 +110,13 @@ function FromObject(schema, references, path, value) {
101
110
  // if the property value is undefined, but the target is not, nor does it satisfy exact optional
102
111
  // property policy, then we need to continue. This is a special case for optional property handling
103
112
  // where a transforms wrapped in a optional modifiers should not run.
104
- if ((0, index_6.IsUndefined)(knownProperties[key]) && (!(0, type_1.IsUndefined)(schema.properties[key]) ||
113
+ if ((0, index_6.IsUndefined)(knownProperties[key]) && (!(0, kind_1.IsUndefined)(schema.properties[key]) ||
105
114
  policy_1.TypeSystemPolicy.IsExactOptionalProperty(knownProperties, key)))
106
115
  continue;
107
116
  // encode property
108
117
  knownProperties[key] = Visit(schema.properties[key], references, `${path}/${key}`, knownProperties[key]);
109
118
  }
110
- if (!(0, type_1.IsSchema)(schema.additionalProperties)) {
119
+ if (!(0, kind_1.IsSchema)(schema.additionalProperties)) {
111
120
  return knownProperties;
112
121
  }
113
122
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -131,7 +140,7 @@ function FromRecord(schema, references, path, value) {
131
140
  if (knownKeys.test(key)) {
132
141
  knownProperties[key] = Visit(schema.patternProperties[pattern], references, `${path}/${key}`, knownProperties[key]);
133
142
  }
134
- if (!(0, type_1.IsSchema)(schema.additionalProperties)) {
143
+ if (!(0, kind_1.IsSchema)(schema.additionalProperties)) {
135
144
  return knownProperties;
136
145
  }
137
146
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
@@ -185,6 +194,8 @@ function Visit(schema, references, path, value) {
185
194
  switch (schema[index_1.Kind]) {
186
195
  case 'Array':
187
196
  return FromArray(schema_, references_, path, value);
197
+ case 'Import':
198
+ return FromImport(schema_, references_, path, value);
188
199
  case 'Intersect':
189
200
  return FromIntersect(schema_, references_, path, value);
190
201
  case 'Not':