@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.
- package/build/cjs/compiler/compiler.d.ts +2 -2
- package/build/cjs/compiler/compiler.js +13 -2
- package/build/cjs/errors/errors.js +7 -0
- package/build/cjs/index.d.ts +1 -2
- package/build/cjs/index.js +1 -2
- package/build/cjs/syntax/parse.d.ts +14 -15
- package/build/cjs/syntax/parse.js +6 -5
- package/build/cjs/syntax/runtime.d.ts +20 -4
- package/build/cjs/syntax/runtime.js +183 -28
- package/build/cjs/syntax/static.d.ts +107 -23
- package/build/cjs/type/array/array.d.ts +1 -1
- package/build/cjs/type/awaited/awaited.d.ts +8 -3
- package/build/cjs/type/awaited/awaited.js +20 -20
- package/build/cjs/type/computed/computed.d.ts +9 -0
- package/build/cjs/type/computed/computed.js +10 -0
- package/build/cjs/type/computed/index.d.ts +1 -0
- package/build/cjs/type/{deref → computed}/index.js +1 -1
- package/build/cjs/type/guard/kind.d.ts +12 -4
- package/build/cjs/type/guard/kind.js +15 -0
- package/build/cjs/type/guard/type.d.ts +9 -3
- package/build/cjs/type/guard/type.js +19 -0
- package/build/cjs/type/index.d.ts +1 -2
- package/build/cjs/type/index.js +1 -2
- package/build/cjs/type/indexed/indexed-from-mapped-key.d.ts +6 -6
- package/build/cjs/type/indexed/indexed-from-mapped-key.js +10 -10
- package/build/cjs/type/indexed/indexed-from-mapped-result.d.ts +5 -5
- package/build/cjs/type/indexed/indexed-from-mapped-result.js +11 -10
- package/build/cjs/type/indexed/indexed-property-keys.d.ts +6 -6
- package/build/cjs/type/indexed/indexed-property-keys.js +14 -14
- package/build/cjs/type/indexed/indexed.d.ts +34 -20
- package/build/cjs/type/indexed/indexed.js +59 -46
- package/build/cjs/type/intersect/intersect-evaluated.d.ts +6 -6
- package/build/cjs/type/intersect/intersect-evaluated.js +16 -16
- package/build/cjs/type/intersect/intersect.d.ts +2 -2
- package/build/cjs/type/intersect/intersect.js +6 -6
- package/build/cjs/type/keyof/keyof-from-mapped-result.d.ts +6 -6
- package/build/cjs/type/keyof/keyof-from-mapped-result.js +10 -10
- package/build/cjs/type/keyof/keyof-property-keys.d.ts +7 -7
- package/build/cjs/type/keyof/keyof-property-keys.js +22 -22
- package/build/cjs/type/keyof/keyof.d.ts +11 -6
- package/build/cjs/type/keyof/keyof.js +22 -13
- package/build/cjs/type/module/compute.d.ts +54 -0
- package/build/cjs/type/module/compute.js +154 -0
- package/build/cjs/type/module/index.d.ts +1 -0
- package/build/cjs/type/{strict → module}/index.js +1 -1
- package/build/cjs/type/module/infer.d.ts +43 -0
- package/build/cjs/type/module/infer.js +3 -0
- package/build/cjs/type/module/module.d.ts +27 -0
- package/build/cjs/type/module/module.js +37 -0
- package/build/cjs/type/not/not.d.ts +1 -1
- package/build/cjs/type/not/not.js +2 -2
- package/build/cjs/type/omit/omit-from-mapped-key.d.ts +6 -6
- package/build/cjs/type/omit/omit-from-mapped-key.js +10 -12
- package/build/cjs/type/omit/omit-from-mapped-result.d.ts +5 -5
- package/build/cjs/type/omit/omit-from-mapped-result.js +10 -10
- package/build/cjs/type/omit/omit.d.ts +26 -14
- package/build/cjs/type/omit/omit.js +46 -35
- package/build/cjs/type/partial/partial.d.ts +11 -7
- package/build/cjs/type/partial/partial.js +36 -24
- package/build/cjs/type/pick/pick-from-mapped-key.d.ts +6 -6
- package/build/cjs/type/pick/pick-from-mapped-key.js +10 -10
- package/build/cjs/type/pick/pick-from-mapped-result.d.ts +5 -5
- package/build/cjs/type/pick/pick-from-mapped-result.js +10 -10
- package/build/cjs/type/pick/pick.d.ts +25 -15
- package/build/cjs/type/pick/pick.js +47 -36
- package/build/cjs/type/record/record.d.ts +4 -2
- package/build/cjs/type/record/record.js +31 -28
- package/build/cjs/type/ref/ref.d.ts +4 -7
- package/build/cjs/type/ref/ref.js +3 -11
- package/build/cjs/type/required/required.d.ts +12 -8
- package/build/cjs/type/required/required.js +37 -25
- package/build/cjs/type/static/static.d.ts +1 -1
- package/build/cjs/type/tuple/tuple.d.ts +1 -1
- package/build/cjs/type/tuple/tuple.js +4 -4
- package/build/cjs/type/type/javascript.d.ts +10 -10
- package/build/cjs/type/type/javascript.js +6 -6
- package/build/cjs/type/type/json.d.ts +45 -68
- package/build/cjs/type/type/json.js +82 -98
- package/build/cjs/type/type/type.d.ts +1 -2
- package/build/cjs/type/type/type.js +55 -57
- package/build/cjs/type/union/union-evaluated.d.ts +6 -6
- package/build/cjs/type/union/union-evaluated.js +11 -10
- package/build/cjs/type/union/union.d.ts +1 -1
- package/build/cjs/type/union/union.js +4 -4
- package/build/cjs/value/cast/cast.js +8 -1
- package/build/cjs/value/check/check.js +11 -4
- package/build/cjs/value/clean/clean.js +8 -1
- package/build/cjs/value/convert/convert.js +7 -0
- package/build/cjs/value/create/create.js +7 -0
- package/build/cjs/value/default/default.js +7 -0
- package/build/cjs/value/transform/decode.js +18 -7
- package/build/cjs/value/transform/encode.js +18 -7
- package/build/cjs/value/transform/has.js +18 -18
- package/build/esm/compiler/compiler.d.mts +2 -2
- package/build/esm/compiler/compiler.mjs +13 -2
- package/build/esm/errors/errors.mjs +7 -0
- package/build/esm/index.d.mts +1 -2
- package/build/esm/index.mjs +1 -2
- package/build/esm/syntax/parse.d.mts +14 -15
- package/build/esm/syntax/parse.mjs +6 -5
- package/build/esm/syntax/runtime.d.mts +20 -4
- package/build/esm/syntax/runtime.mjs +183 -28
- package/build/esm/syntax/static.d.mts +107 -23
- package/build/esm/type/array/array.d.mts +1 -1
- package/build/esm/type/awaited/awaited.d.mts +8 -3
- package/build/esm/type/awaited/awaited.mjs +20 -20
- package/build/esm/type/computed/computed.d.mts +9 -0
- package/build/esm/type/computed/computed.mjs +6 -0
- package/build/esm/type/computed/index.d.mts +1 -0
- package/build/esm/type/computed/index.mjs +1 -0
- package/build/esm/type/guard/kind.d.mts +12 -4
- package/build/esm/type/guard/kind.mjs +12 -0
- package/build/esm/type/guard/type.d.mts +9 -3
- package/build/esm/type/guard/type.mjs +17 -0
- package/build/esm/type/index.d.mts +1 -2
- package/build/esm/type/index.mjs +1 -2
- package/build/esm/type/indexed/indexed-from-mapped-key.d.mts +6 -6
- package/build/esm/type/indexed/indexed-from-mapped-key.mjs +10 -10
- package/build/esm/type/indexed/indexed-from-mapped-result.d.mts +5 -5
- package/build/esm/type/indexed/indexed-from-mapped-result.mjs +11 -10
- package/build/esm/type/indexed/indexed-property-keys.d.mts +6 -6
- package/build/esm/type/indexed/indexed-property-keys.mjs +14 -14
- package/build/esm/type/indexed/indexed.d.mts +34 -20
- package/build/esm/type/indexed/indexed.mjs +55 -42
- package/build/esm/type/intersect/intersect-evaluated.d.mts +6 -6
- package/build/esm/type/intersect/intersect-evaluated.mjs +16 -16
- package/build/esm/type/intersect/intersect.d.mts +2 -2
- package/build/esm/type/intersect/intersect.mjs +6 -6
- package/build/esm/type/keyof/keyof-from-mapped-result.d.mts +6 -6
- package/build/esm/type/keyof/keyof-from-mapped-result.mjs +10 -10
- package/build/esm/type/keyof/keyof-property-keys.d.mts +7 -7
- package/build/esm/type/keyof/keyof-property-keys.mjs +22 -22
- package/build/esm/type/keyof/keyof.d.mts +11 -6
- package/build/esm/type/keyof/keyof.mjs +22 -13
- package/build/esm/type/module/compute.d.mts +54 -0
- package/build/esm/type/module/compute.mjs +148 -0
- package/build/esm/type/module/index.d.mts +1 -0
- package/build/esm/type/module/index.mjs +1 -0
- package/build/esm/type/module/infer.d.mts +43 -0
- package/build/esm/type/module/infer.mjs +1 -0
- package/build/esm/type/module/module.d.mts +27 -0
- package/build/esm/type/module/module.mjs +31 -0
- package/build/esm/type/not/not.d.mts +1 -1
- package/build/esm/type/not/not.mjs +2 -2
- package/build/esm/type/omit/omit-from-mapped-key.d.mts +6 -6
- package/build/esm/type/omit/omit-from-mapped-key.mjs +10 -12
- package/build/esm/type/omit/omit-from-mapped-result.d.mts +5 -5
- package/build/esm/type/omit/omit-from-mapped-result.mjs +10 -10
- package/build/esm/type/omit/omit.d.mts +26 -14
- package/build/esm/type/omit/omit.mjs +43 -32
- package/build/esm/type/partial/partial.d.mts +11 -7
- package/build/esm/type/partial/partial.mjs +29 -17
- package/build/esm/type/pick/pick-from-mapped-key.d.mts +6 -6
- package/build/esm/type/pick/pick-from-mapped-key.mjs +10 -10
- package/build/esm/type/pick/pick-from-mapped-result.d.mts +5 -5
- package/build/esm/type/pick/pick-from-mapped-result.mjs +10 -10
- package/build/esm/type/pick/pick.d.mts +25 -15
- package/build/esm/type/pick/pick.mjs +43 -32
- package/build/esm/type/record/record.d.mts +4 -2
- package/build/esm/type/record/record.mjs +15 -12
- package/build/esm/type/ref/ref.d.mts +4 -7
- package/build/esm/type/ref/ref.mjs +3 -11
- package/build/esm/type/required/required.d.mts +12 -8
- package/build/esm/type/required/required.mjs +33 -21
- package/build/esm/type/static/static.d.mts +1 -1
- package/build/esm/type/tuple/tuple.d.mts +1 -1
- package/build/esm/type/tuple/tuple.mjs +4 -4
- package/build/esm/type/type/javascript.d.mts +10 -10
- package/build/esm/type/type/javascript.mjs +6 -6
- package/build/esm/type/type/json.d.mts +45 -68
- package/build/esm/type/type/json.mjs +47 -63
- package/build/esm/type/type/type.d.mts +1 -2
- package/build/esm/type/type/type.mjs +1 -2
- package/build/esm/type/union/union-evaluated.d.mts +6 -6
- package/build/esm/type/union/union-evaluated.mjs +11 -10
- package/build/esm/type/union/union.d.mts +1 -1
- package/build/esm/type/union/union.mjs +4 -4
- package/build/esm/value/cast/cast.mjs +9 -2
- package/build/esm/value/check/check.mjs +11 -4
- package/build/esm/value/clean/clean.mjs +9 -2
- package/build/esm/value/convert/convert.mjs +7 -0
- package/build/esm/value/create/create.mjs +7 -0
- package/build/esm/value/default/default.mjs +7 -0
- package/build/esm/value/transform/decode.mjs +13 -2
- package/build/esm/value/transform/encode.mjs +13 -2
- package/build/esm/value/transform/has.mjs +2 -2
- package/package.json +1 -1
- package/readme.md +230 -97
- package/build/cjs/type/deref/deref.d.ts +0 -22
- package/build/cjs/type/deref/deref.js +0 -106
- package/build/cjs/type/deref/index.d.ts +0 -1
- package/build/cjs/type/strict/index.d.ts +0 -1
- package/build/cjs/type/strict/strict.d.ts +0 -12
- package/build/cjs/type/strict/strict.js +0 -16
- package/build/esm/type/deref/deref.d.mts +0 -22
- package/build/esm/type/deref/deref.mjs +0 -102
- package/build/esm/type/deref/index.d.mts +0 -1
- package/build/esm/type/deref/index.mjs +0 -1
- package/build/esm/type/strict/index.d.mts +0 -1
- package/build/esm/type/strict/index.mjs +0 -1
- package/build/esm/type/strict/strict.d.mts +0 -12
- 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.
|
|
5
|
-
exports.Void = exports.Unsafe = exports.Unknown = exports.Union = exports.Undefined = exports.Uint8Array = exports.Tuple = exports.Transform = exports.TemplateLiteral = exports.Symbol =
|
|
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("../
|
|
32
|
-
Object.defineProperty(exports, "
|
|
33
|
-
var index_13 = require("../
|
|
34
|
-
Object.defineProperty(exports, "
|
|
35
|
-
var index_14 = require("../
|
|
36
|
-
Object.defineProperty(exports, "
|
|
37
|
-
var index_15 = require("../
|
|
38
|
-
Object.defineProperty(exports, "
|
|
39
|
-
var index_16 = require("../
|
|
40
|
-
Object.defineProperty(exports, "
|
|
41
|
-
var index_17 = require("../
|
|
42
|
-
Object.defineProperty(exports, "
|
|
43
|
-
var index_18 = require("../
|
|
44
|
-
Object.defineProperty(exports, "
|
|
45
|
-
var index_19 = require("../
|
|
46
|
-
Object.defineProperty(exports, "
|
|
47
|
-
var index_20 = require("../
|
|
48
|
-
Object.defineProperty(exports, "
|
|
49
|
-
var index_21 = require("../
|
|
50
|
-
Object.defineProperty(exports, "
|
|
51
|
-
|
|
52
|
-
Object.defineProperty(exports, "
|
|
53
|
-
Object.defineProperty(exports, "
|
|
54
|
-
|
|
55
|
-
Object.defineProperty(exports, "
|
|
56
|
-
var index_23 = require("../
|
|
57
|
-
Object.defineProperty(exports, "
|
|
58
|
-
var index_24 = require("../
|
|
59
|
-
Object.defineProperty(exports, "
|
|
60
|
-
var index_25 = require("../
|
|
61
|
-
Object.defineProperty(exports, "
|
|
62
|
-
var index_26 = require("../
|
|
63
|
-
Object.defineProperty(exports, "
|
|
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("../
|
|
107
|
-
Object.defineProperty(exports, "
|
|
108
|
-
var index_49 = require("../
|
|
109
|
-
Object.defineProperty(exports, "
|
|
110
|
-
var index_50 = require("../
|
|
111
|
-
Object.defineProperty(exports, "
|
|
112
|
-
var index_51 = require("../
|
|
113
|
-
Object.defineProperty(exports, "
|
|
114
|
-
var index_52 = require("../
|
|
115
|
-
Object.defineProperty(exports, "
|
|
116
|
-
var index_53 = require("../
|
|
117
|
-
Object.defineProperty(exports, "
|
|
118
|
-
var index_54 = require("../
|
|
119
|
-
Object.defineProperty(exports, "
|
|
120
|
-
var index_55 = require("../
|
|
121
|
-
Object.defineProperty(exports, "
|
|
122
|
-
var index_56 = require("../
|
|
123
|
-
Object.defineProperty(exports, "
|
|
124
|
-
var index_57 = require("../
|
|
125
|
-
Object.defineProperty(exports, "
|
|
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<
|
|
7
|
-
type TRemoveOptionalFromRest<
|
|
8
|
-
type TRemoveOptionalFromType<
|
|
9
|
-
type TResolveUnion<
|
|
10
|
-
export type TUnionEvaluated<
|
|
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<
|
|
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(
|
|
17
|
-
return
|
|
16
|
+
function IsUnionOptional(types) {
|
|
17
|
+
return types.some(type => (0, kind_1.IsOptional)(type));
|
|
18
18
|
}
|
|
19
19
|
// prettier-ignore
|
|
20
|
-
function RemoveOptionalFromRest(
|
|
21
|
-
return
|
|
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(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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 ===
|
|
37
|
-
T.length ===
|
|
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<
|
|
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(
|
|
9
|
+
function Union(types, options) {
|
|
10
10
|
// prettier-ignore
|
|
11
|
-
return (
|
|
12
|
-
|
|
13
|
-
(0, union_create_1.UnionCreate)(
|
|
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) ?
|
|
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
|
-
//
|
|
20
|
+
// KindGuard
|
|
21
21
|
// ------------------------------------------------------------------
|
|
22
|
-
const
|
|
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,
|
|
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) ?
|
|
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) ?
|
|
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
|
-
//
|
|
17
|
+
// KindGuard
|
|
18
18
|
// ------------------------------------------------------------------
|
|
19
|
-
const
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
-
//
|
|
17
|
+
// KindGuard
|
|
18
18
|
// ------------------------------------------------------------------
|
|
19
|
-
const
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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':
|