@sinclair/typebox 0.32.24 → 0.32.25

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 (114) hide show
  1. package/build/import/type/awaited/awaited.mjs +1 -1
  2. package/build/import/type/clone/value.mjs +8 -3
  3. package/build/import/type/composite/composite.mjs +14 -10
  4. package/build/import/type/const/const.mjs +4 -3
  5. package/build/import/type/deref/deref.d.mts +1 -1
  6. package/build/import/type/deref/deref.mjs +6 -4
  7. package/build/import/type/exclude/exclude-from-mapped-result.mjs +4 -3
  8. package/build/import/type/exclude/exclude.mjs +1 -1
  9. package/build/import/type/extends/extends-from-mapped-result.mjs +4 -3
  10. package/build/import/type/extends/extends.mjs +1 -1
  11. package/build/import/type/extract/extract-from-mapped-result.mjs +4 -3
  12. package/build/import/type/extract/extract.mjs +1 -1
  13. package/build/import/type/guard/index.d.mts +1 -0
  14. package/build/import/type/guard/index.mjs +1 -0
  15. package/build/import/type/guard/kind.d.mts +136 -0
  16. package/build/import/type/guard/kind.mjs +217 -0
  17. package/build/import/type/guard/type.d.mts +2 -2
  18. package/build/import/type/indexed/indexed-from-mapped-result.mjs +5 -3
  19. package/build/import/type/indexed/indexed-property-keys.mjs +5 -4
  20. package/build/import/type/indexed/indexed.mjs +1 -1
  21. package/build/import/type/intersect/intersect-create.mjs +1 -1
  22. package/build/import/type/intersect/intersect-evaluated.mjs +1 -2
  23. package/build/import/type/intersect/intersect.mjs +1 -1
  24. package/build/import/type/intrinsic/intrinsic.mjs +1 -1
  25. package/build/import/type/keyof/keyof-from-mapped-result.mjs +4 -3
  26. package/build/import/type/keyof/keyof-property-keys.mjs +5 -4
  27. package/build/import/type/keyof/keyof.mjs +1 -1
  28. package/build/import/type/mapped/mapped.d.mts +1 -1
  29. package/build/import/type/mapped/mapped.mjs +14 -12
  30. package/build/import/type/object/object.mjs +4 -2
  31. package/build/import/type/omit/omit-from-mapped-result.mjs +4 -3
  32. package/build/import/type/omit/omit.mjs +2 -4
  33. package/build/import/type/optional/optional-from-mapped-result.mjs +4 -3
  34. package/build/import/type/optional/optional.mjs +1 -1
  35. package/build/import/type/partial/partial-from-mapped-result.mjs +4 -3
  36. package/build/import/type/partial/partial.mjs +5 -4
  37. package/build/import/type/pick/pick-from-mapped-result.mjs +4 -3
  38. package/build/import/type/pick/pick.d.mts +1 -1
  39. package/build/import/type/pick/pick.mjs +6 -4
  40. package/build/import/type/readonly/readonly-from-mapped-result.mjs +4 -3
  41. package/build/import/type/readonly/readonly.mjs +1 -1
  42. package/build/import/type/record/record.mjs +5 -3
  43. package/build/import/type/required/required-from-mapped-result.mjs +4 -3
  44. package/build/import/type/required/required.mjs +5 -4
  45. package/build/import/type/rest/rest.mjs +4 -4
  46. package/build/import/type/sets/set.mjs +4 -1
  47. package/build/import/type/template-literal/pattern.mjs +1 -2
  48. package/build/import/type/transform/transform.mjs +1 -1
  49. package/build/import/type/union/union-evaluated.mjs +1 -1
  50. package/build/import/value/clean/clean.mjs +1 -1
  51. package/build/import/value/clone/clone.mjs +8 -2
  52. package/build/import/value/create/create.mjs +11 -7
  53. package/build/import/value/hash/hash.mjs +1 -1
  54. package/build/import/value/mutate/mutate.mjs +2 -2
  55. package/build/import/value/transform/decode.mjs +30 -30
  56. package/build/import/value/transform/encode.mjs +33 -30
  57. package/build/require/type/awaited/awaited.js +4 -4
  58. package/build/require/type/clone/value.js +8 -3
  59. package/build/require/type/composite/composite.js +15 -11
  60. package/build/require/type/const/const.js +4 -3
  61. package/build/require/type/deref/deref.d.ts +1 -1
  62. package/build/require/type/deref/deref.js +17 -15
  63. package/build/require/type/exclude/exclude-from-mapped-result.js +4 -3
  64. package/build/require/type/exclude/exclude.js +4 -4
  65. package/build/require/type/extends/extends-from-mapped-result.js +4 -3
  66. package/build/require/type/extends/extends.js +3 -3
  67. package/build/require/type/extract/extract-from-mapped-result.js +4 -3
  68. package/build/require/type/extract/extract.js +4 -4
  69. package/build/require/type/guard/index.d.ts +1 -0
  70. package/build/require/type/guard/index.js +2 -1
  71. package/build/require/type/guard/kind.d.ts +136 -0
  72. package/build/require/type/guard/kind.js +266 -0
  73. package/build/require/type/guard/type.d.ts +2 -2
  74. package/build/require/type/indexed/indexed-from-mapped-result.js +5 -3
  75. package/build/require/type/indexed/indexed-property-keys.js +10 -9
  76. package/build/require/type/indexed/indexed.js +11 -11
  77. package/build/require/type/intersect/intersect-create.js +4 -4
  78. package/build/require/type/intersect/intersect-evaluated.js +4 -5
  79. package/build/require/type/intersect/intersect.js +2 -2
  80. package/build/require/type/intrinsic/intrinsic.js +5 -5
  81. package/build/require/type/keyof/keyof-from-mapped-result.js +4 -3
  82. package/build/require/type/keyof/keyof-property-keys.js +11 -10
  83. package/build/require/type/keyof/keyof.js +2 -2
  84. package/build/require/type/mapped/mapped.d.ts +1 -1
  85. package/build/require/type/mapped/mapped.js +29 -27
  86. package/build/require/type/object/object.js +6 -4
  87. package/build/require/type/omit/omit-from-mapped-result.js +4 -3
  88. package/build/require/type/omit/omit.js +8 -10
  89. package/build/require/type/optional/optional-from-mapped-result.js +4 -3
  90. package/build/require/type/optional/optional.js +2 -2
  91. package/build/require/type/partial/partial-from-mapped-result.js +4 -3
  92. package/build/require/type/partial/partial.js +9 -8
  93. package/build/require/type/pick/pick-from-mapped-result.js +4 -3
  94. package/build/require/type/pick/pick.d.ts +1 -1
  95. package/build/require/type/pick/pick.js +12 -10
  96. package/build/require/type/readonly/readonly-from-mapped-result.js +4 -3
  97. package/build/require/type/readonly/readonly.js +2 -2
  98. package/build/require/type/record/record.js +12 -10
  99. package/build/require/type/required/required-from-mapped-result.js +4 -3
  100. package/build/require/type/required/required.js +9 -8
  101. package/build/require/type/rest/rest.js +4 -4
  102. package/build/require/type/sets/set.js +4 -1
  103. package/build/require/type/template-literal/pattern.js +9 -10
  104. package/build/require/type/transform/transform.js +2 -2
  105. package/build/require/type/union/union-evaluated.js +3 -3
  106. package/build/require/value/clean/clean.js +1 -1
  107. package/build/require/value/clone/clone.js +8 -2
  108. package/build/require/value/create/create.js +11 -7
  109. package/build/require/value/hash/hash.js +1 -1
  110. package/build/require/value/mutate/mutate.js +2 -2
  111. package/build/require/value/transform/decode.js +30 -30
  112. package/build/require/value/transform/encode.js +33 -30
  113. package/package.json +1 -1
  114. package/readme.md +4 -4
@@ -65,21 +65,21 @@ function FromIntersect(schema, references, path, value) {
65
65
  if (!IsStandardObject(value) || IsValueType(value))
66
66
  return Default(schema, path, value);
67
67
  const knownKeys = KeyOfPropertyKeys(schema);
68
- const knownProperties = knownKeys.reduce((value, key) => {
69
- return (key in value)
70
- ? { ...value, [key]: Visit(Index(schema, [key]), references, `${path}/${key}`, value[key]) }
71
- : value;
72
- }, value);
68
+ const knownProperties = { ...value };
69
+ for (const key of knownKeys)
70
+ if (key in knownProperties) {
71
+ knownProperties[key] = Visit(Index(schema, [key]), references, `${path}/${key}`, knownProperties[key]);
72
+ }
73
73
  if (!IsTransform(schema.unevaluatedProperties)) {
74
74
  return Default(schema, path, knownProperties);
75
75
  }
76
76
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
77
77
  const unevaluatedProperties = schema.unevaluatedProperties;
78
- const unknownProperties = unknownKeys.reduce((value, key) => {
79
- return !knownKeys.includes(key)
80
- ? { ...value, [key]: Default(unevaluatedProperties, `${path}/${key}`, value[key]) }
81
- : value;
82
- }, knownProperties);
78
+ const unknownProperties = { ...knownProperties };
79
+ for (const key of unknownKeys)
80
+ if (!knownKeys.includes(key)) {
81
+ unknownProperties[key] = Default(unevaluatedProperties, `${path}/${key}`, unknownProperties[key]);
82
+ }
83
83
  return Default(schema, path, unknownProperties);
84
84
  }
85
85
  function FromNot(schema, references, path, value) {
@@ -90,21 +90,21 @@ function FromObject(schema, references, path, value) {
90
90
  if (!IsStandardObject(value))
91
91
  return Default(schema, path, value);
92
92
  const knownKeys = KeyOfPropertyKeys(schema);
93
- const knownProperties = knownKeys.reduce((value, key) => {
94
- return (key in value)
95
- ? { ...value, [key]: Visit(schema.properties[key], references, `${path}/${key}`, value[key]) }
96
- : value;
97
- }, value);
93
+ const knownProperties = { ...value };
94
+ for (const key of knownKeys)
95
+ if (key in knownProperties) {
96
+ knownProperties[key] = Visit(schema.properties[key], references, `${path}/${key}`, knownProperties[key]);
97
+ }
98
98
  if (!IsSchema(schema.additionalProperties)) {
99
99
  return Default(schema, path, knownProperties);
100
100
  }
101
101
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
102
102
  const additionalProperties = schema.additionalProperties;
103
- const unknownProperties = unknownKeys.reduce((value, key) => {
104
- return !knownKeys.includes(key)
105
- ? { ...value, [key]: Default(additionalProperties, `${path}/${key}`, value[key]) }
106
- : value;
107
- }, knownProperties);
103
+ const unknownProperties = { ...knownProperties };
104
+ for (const key of unknownKeys)
105
+ if (!knownKeys.includes(key)) {
106
+ unknownProperties[key] = Default(additionalProperties, `${path}/${key}`, unknownProperties[key]);
107
+ }
108
108
  return Default(schema, path, unknownProperties);
109
109
  }
110
110
  // prettier-ignore
@@ -113,21 +113,21 @@ function FromRecord(schema, references, path, value) {
113
113
  return Default(schema, path, value);
114
114
  const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
115
115
  const knownKeys = new RegExp(pattern);
116
- const knownProperties = Object.getOwnPropertyNames(value).reduce((value, key) => {
117
- return knownKeys.test(key)
118
- ? { ...value, [key]: Visit(schema.patternProperties[pattern], references, `${path}/${key}`, value[key]) }
119
- : value;
120
- }, value);
116
+ const knownProperties = { ...value };
117
+ for (const key of Object.getOwnPropertyNames(value))
118
+ if (knownKeys.test(key)) {
119
+ knownProperties[key] = Visit(schema.patternProperties[pattern], references, `${path}/${key}`, knownProperties[key]);
120
+ }
121
121
  if (!IsSchema(schema.additionalProperties)) {
122
122
  return Default(schema, path, knownProperties);
123
123
  }
124
124
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
125
125
  const additionalProperties = schema.additionalProperties;
126
- const unknownProperties = unknownKeys.reduce((value, key) => {
127
- return !knownKeys.test(key)
128
- ? { ...value, [key]: Default(additionalProperties, `${path}/${key}`, value[key]) }
129
- : value;
130
- }, knownProperties);
126
+ const unknownProperties = { ...knownProperties };
127
+ for (const key of unknownKeys)
128
+ if (!knownKeys.test(key)) {
129
+ unknownProperties[key] = Default(additionalProperties, `${path}/${key}`, unknownProperties[key]);
130
+ }
131
131
  return Default(schema, path, unknownProperties);
132
132
  }
133
133
  // prettier-ignore
@@ -66,21 +66,22 @@ function FromIntersect(schema, references, path, value) {
66
66
  if (!IsStandardObject(value) || IsValueType(value))
67
67
  return defaulted;
68
68
  const knownKeys = KeyOfPropertyKeys(schema);
69
- const knownProperties = knownKeys.reduce((value, key) => {
70
- return key in defaulted
71
- ? { ...value, [key]: Visit(Index(schema, [key]), references, `${path}/${key}`, value[key]) }
72
- : value;
73
- }, defaulted);
69
+ const knownProperties = { ...defaulted };
70
+ for (const key of knownKeys)
71
+ if (key in knownProperties) {
72
+ knownProperties[key] = Visit(Index(schema, [key]), references, `${path}/${key}`, knownProperties[key]);
73
+ }
74
74
  if (!IsTransform(schema.unevaluatedProperties)) {
75
75
  return Default(schema, path, knownProperties);
76
76
  }
77
77
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
78
78
  const unevaluatedProperties = schema.unevaluatedProperties;
79
- return unknownKeys.reduce((value, key) => {
80
- return !knownKeys.includes(key)
81
- ? { ...value, [key]: Default(unevaluatedProperties, `${path}/${key}`, value[key]) }
82
- : value;
83
- }, knownProperties);
79
+ const properties = { ...knownProperties };
80
+ for (const key of unknownKeys)
81
+ if (!knownKeys.includes(key)) {
82
+ properties[key] = Default(unevaluatedProperties, `${path}/${key}`, properties[key]);
83
+ }
84
+ return properties;
84
85
  }
85
86
  // prettier-ignore
86
87
  function FromNot(schema, references, path, value) {
@@ -92,21 +93,22 @@ function FromObject(schema, references, path, value) {
92
93
  if (!IsStandardObject(value))
93
94
  return defaulted;
94
95
  const knownKeys = KeyOfPropertyKeys(schema);
95
- const knownProperties = knownKeys.reduce((value, key) => {
96
- return key in value
97
- ? { ...value, [key]: Visit(schema.properties[key], references, `${path}/${key}`, value[key]) }
98
- : value;
99
- }, defaulted);
96
+ const knownProperties = { ...defaulted };
97
+ for (const key of knownKeys)
98
+ if (key in value) {
99
+ knownProperties[key] = Visit(schema.properties[key], references, `${path}/${key}`, knownProperties[key]);
100
+ }
100
101
  if (!IsSchema(schema.additionalProperties)) {
101
102
  return knownProperties;
102
103
  }
103
104
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
104
105
  const additionalProperties = schema.additionalProperties;
105
- return unknownKeys.reduce((value, key) => {
106
- return !knownKeys.includes(key)
107
- ? { ...value, [key]: Default(additionalProperties, `${path}/${key}`, value[key]) }
108
- : value;
109
- }, knownProperties);
106
+ const properties = { ...knownProperties };
107
+ for (const key of unknownKeys)
108
+ if (!knownKeys.includes(key)) {
109
+ properties[key] = Default(additionalProperties, `${path}/${key}`, properties[key]);
110
+ }
111
+ return properties;
110
112
  }
111
113
  // prettier-ignore
112
114
  function FromRecord(schema, references, path, value) {
@@ -115,21 +117,22 @@ function FromRecord(schema, references, path, value) {
115
117
  return defaulted;
116
118
  const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
117
119
  const knownKeys = new RegExp(pattern);
118
- const knownProperties = Object.getOwnPropertyNames(value).reduce((value, key) => {
119
- return knownKeys.test(key)
120
- ? { ...value, [key]: Visit(schema.patternProperties[pattern], references, `${path}/${key}`, value[key]) }
121
- : value;
122
- }, defaulted);
120
+ const knownProperties = { ...defaulted };
121
+ for (const key of Object.getOwnPropertyNames(value))
122
+ if (knownKeys.test(key)) {
123
+ knownProperties[key] = Visit(schema.patternProperties[pattern], references, `${path}/${key}`, knownProperties[key]);
124
+ }
123
125
  if (!IsSchema(schema.additionalProperties)) {
124
126
  return Default(schema, path, knownProperties);
125
127
  }
126
128
  const unknownKeys = Object.getOwnPropertyNames(knownProperties);
127
129
  const additionalProperties = schema.additionalProperties;
128
- return unknownKeys.reduce((value, key) => {
129
- return !knownKeys.test(key)
130
- ? { ...value, [key]: Default(additionalProperties, `${path}/${key}`, value[key]) }
131
- : value;
132
- }, knownProperties);
130
+ const properties = { ...knownProperties };
131
+ for (const key of unknownKeys)
132
+ if (!knownKeys.test(key)) {
133
+ properties[key] = Default(additionalProperties, `${path}/${key}`, properties[key]);
134
+ }
135
+ return properties;
133
136
  }
134
137
  // prettier-ignore
135
138
  function FromRef(schema, references, path, value) {
@@ -8,7 +8,7 @@ const type_1 = require("../clone/type");
8
8
  // ------------------------------------------------------------------
9
9
  // TypeGuard
10
10
  // ------------------------------------------------------------------
11
- const type_2 = require("../guard/type");
11
+ const kind_1 = require("../guard/kind");
12
12
  // prettier-ignore
13
13
  function FromRest(T) {
14
14
  return T.map(L => AwaitedResolve(L));
@@ -30,9 +30,9 @@ function FromPromise(T) {
30
30
  // ----------------------------------------------------------------
31
31
  // prettier-ignore
32
32
  function AwaitedResolve(T) {
33
- return ((0, type_2.IsIntersect)(T) ? FromIntersect(T.allOf) :
34
- (0, type_2.IsUnion)(T) ? FromUnion(T.anyOf) :
35
- (0, type_2.IsPromise)(T) ? FromPromise(T.item) :
33
+ return ((0, kind_1.IsIntersect)(T) ? FromIntersect(T.allOf) :
34
+ (0, kind_1.IsUnion)(T) ? FromUnion(T.anyOf) :
35
+ (0, kind_1.IsPromise)(T) ? FromPromise(T.item) :
36
36
  T);
37
37
  }
38
38
  /** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */
@@ -16,9 +16,14 @@ function RegExpType(value) {
16
16
  return new RegExp(value.source, value.flags);
17
17
  }
18
18
  function ObjectType(value) {
19
- const clonedProperties = Object.getOwnPropertyNames(value).reduce((acc, key) => ({ ...acc, [key]: Visit(value[key]) }), {});
20
- const clonedSymbols = Object.getOwnPropertySymbols(value).reduce((acc, key) => ({ ...acc, [key]: Visit(value[key]) }), {});
21
- return { ...clonedProperties, ...clonedSymbols };
19
+ const result = {};
20
+ for (const key of Object.getOwnPropertyNames(value)) {
21
+ result[key] = Visit(value[key]);
22
+ }
23
+ for (const key of Object.getOwnPropertySymbols(value)) {
24
+ result[key] = Visit(value[key]);
25
+ }
26
+ return result;
22
27
  }
23
28
  // prettier-ignore
24
29
  function Visit(value) {
@@ -10,28 +10,32 @@ const index_5 = require("../sets/index");
10
10
  // ------------------------------------------------------------------
11
11
  // TypeGuard
12
12
  // ------------------------------------------------------------------
13
- const type_1 = require("../guard/type");
13
+ const kind_1 = require("../guard/kind");
14
14
  // prettier-ignore
15
15
  function CompositeKeys(T) {
16
- return (0, index_5.SetDistinct)(T.reduce((Acc, L) => {
17
- return ([...Acc, ...(0, index_3.KeyOfPropertyKeys)(L)]);
18
- }, []));
16
+ const Acc = [];
17
+ for (const L of T)
18
+ Acc.push(...(0, index_3.KeyOfPropertyKeys)(L));
19
+ return (0, index_5.SetDistinct)(Acc);
19
20
  }
20
21
  // prettier-ignore
21
22
  function FilterNever(T) {
22
- return T.filter(L => !(0, type_1.IsNever)(L));
23
+ return T.filter(L => !(0, kind_1.IsNever)(L));
23
24
  }
24
25
  // prettier-ignore
25
26
  function CompositeProperty(T, K) {
26
- return FilterNever(T.reduce((Acc, L) => {
27
- return [...Acc, ...(0, index_2.IndexFromPropertyKeys)(L, [K])];
28
- }, []));
27
+ const Acc = [];
28
+ for (const L of T)
29
+ Acc.push(...(0, index_2.IndexFromPropertyKeys)(L, [K]));
30
+ return FilterNever(Acc);
29
31
  }
30
32
  // prettier-ignore
31
33
  function CompositeProperties(T, K) {
32
- return K.reduce((Acc, L) => {
33
- return { ...Acc, [L]: (0, index_1.IntersectEvaluated)(CompositeProperty(T, L)) };
34
- }, {});
34
+ const Acc = {};
35
+ for (const L of K) {
36
+ Acc[L] = (0, index_1.IntersectEvaluated)(CompositeProperty(T, L));
37
+ }
38
+ return Acc;
35
39
  }
36
40
  // prettier-ignore
37
41
  function Composite(T, options = {}) {
@@ -26,9 +26,10 @@ function FromArray(T) {
26
26
  }
27
27
  // prettier-ignore
28
28
  function FromProperties(value) {
29
- return globalThis.Object.getOwnPropertyNames(value).reduce((acc, key) => {
30
- return { ...acc, [key]: (0, index_10.Readonly)(FromValue(value[key], false)) };
31
- }, {});
29
+ const Acc = {};
30
+ for (const K of globalThis.Object.getOwnPropertyNames(value))
31
+ Acc[K] = (0, index_10.Readonly)(FromValue(value[K], false));
32
+ return Acc;
32
33
  }
33
34
  function ConditionalReadonly(T, root) {
34
35
  return (root === true ? T : (0, index_10.Readonly)(T));
@@ -15,7 +15,7 @@ export type TFromRest<T extends TSchema[], Acc extends TSchema[] = []> = (T exte
15
15
  type FromProperties<T extends TProperties> = Evaluate<{
16
16
  [K in keyof T]: TDeref<T[K]>;
17
17
  }>;
18
- declare function FromProperties(properties: TProperties, references: TSchema[]): TProperties;
18
+ declare function FromProperties(properties: TProperties, references: TSchema[]): never;
19
19
  export type TDeref<T extends TSchema> = T extends TConstructor<infer S extends TSchema[], infer R extends TSchema> ? TConstructor<TFromRest<S>, TDeref<R>> : T extends TFunction<infer S extends TSchema[], infer R extends TSchema> ? TFunction<TFromRest<S>, TDeref<R>> : T extends TIntersect<infer S extends TSchema[]> ? TIntersect<TFromRest<S>> : T extends TUnion<infer S extends TSchema[]> ? TUnion<TFromRest<S>> : T extends TTuple<infer S extends TSchema[]> ? TTuple<TFromRest<S>> : T extends TObject<infer S extends TProperties> ? TObject<FromProperties<S>> : T extends TArray<infer S extends TSchema> ? TArray<TDeref<S>> : T extends TPromise<infer S extends TSchema> ? TPromise<TDeref<S>> : T extends TAsyncIterator<infer S extends TSchema> ? TAsyncIterator<TDeref<S>> : T extends TIterator<infer S extends TSchema> ? TIterator<TDeref<S>> : T extends TRef<infer S extends TSchema> ? TDeref<S> : T;
20
20
  /** `[Json]` Creates a dereferenced type */
21
21
  export declare function Deref<T extends TSchema>(schema: T, references: TSchema[]): TDeref<T>;
@@ -8,15 +8,17 @@ const value_1 = require("../guard/value");
8
8
  // ------------------------------------------------------------------
9
9
  // TypeGuard
10
10
  // ------------------------------------------------------------------
11
- const type_2 = require("../guard/type");
11
+ const kind_1 = require("../guard/kind");
12
12
  function FromRest(schema, references) {
13
13
  return schema.map((schema) => Deref(schema, references));
14
14
  }
15
15
  // prettier-ignore
16
16
  function FromProperties(properties, references) {
17
- return globalThis.Object.getOwnPropertyNames(properties).reduce((acc, key) => {
18
- return { ...acc, [key]: Deref(properties[key], references) };
19
- }, {});
17
+ const Acc = {};
18
+ for (const K of globalThis.Object.getOwnPropertyNames(properties)) {
19
+ Acc[K] = Deref(properties[K], references);
20
+ }
21
+ return Acc;
20
22
  }
21
23
  // prettier-ignore
22
24
  function FromConstructor(schema, references) {
@@ -82,17 +84,17 @@ function FromRef(schema, references) {
82
84
  }
83
85
  // prettier-ignore
84
86
  function DerefResolve(schema, references) {
85
- return ((0, type_2.IsConstructor)(schema) ? FromConstructor(schema, references) :
86
- (0, type_2.IsFunction)(schema) ? FromFunction(schema, references) :
87
- (0, type_2.IsIntersect)(schema) ? FromIntersect(schema, references) :
88
- (0, type_2.IsUnion)(schema) ? FromUnion(schema, references) :
89
- (0, type_2.IsTuple)(schema) ? FromTuple(schema, references) :
90
- (0, type_2.IsArray)(schema) ? FromArray(schema, references) :
91
- (0, type_2.IsObject)(schema) ? FromObject(schema, references) :
92
- (0, type_2.IsPromise)(schema) ? FromPromise(schema, references) :
93
- (0, type_2.IsAsyncIterator)(schema) ? FromAsyncIterator(schema, references) :
94
- (0, type_2.IsIterator)(schema) ? FromIterator(schema, references) :
95
- (0, type_2.IsRef)(schema) ? FromRef(schema, references) :
87
+ return ((0, kind_1.IsConstructor)(schema) ? FromConstructor(schema, references) :
88
+ (0, kind_1.IsFunction)(schema) ? FromFunction(schema, references) :
89
+ (0, kind_1.IsIntersect)(schema) ? FromIntersect(schema, references) :
90
+ (0, kind_1.IsUnion)(schema) ? FromUnion(schema, references) :
91
+ (0, kind_1.IsTuple)(schema) ? FromTuple(schema, references) :
92
+ (0, kind_1.IsArray)(schema) ? FromArray(schema, references) :
93
+ (0, kind_1.IsObject)(schema) ? FromObject(schema, references) :
94
+ (0, kind_1.IsPromise)(schema) ? FromPromise(schema, references) :
95
+ (0, kind_1.IsAsyncIterator)(schema) ? FromAsyncIterator(schema, references) :
96
+ (0, kind_1.IsIterator)(schema) ? FromIterator(schema, references) :
97
+ (0, kind_1.IsRef)(schema) ? FromRef(schema, references) :
96
98
  schema);
97
99
  }
98
100
  // ------------------------------------------------------------------
@@ -6,9 +6,10 @@ const index_1 = require("../mapped/index");
6
6
  const exclude_1 = require("./exclude");
7
7
  // prettier-ignore
8
8
  function FromProperties(P, U) {
9
- return globalThis.Object.getOwnPropertyNames(P).reduce((Acc, K2) => {
10
- return { ...Acc, [K2]: (0, exclude_1.Exclude)(P[K2], U) };
11
- }, {});
9
+ const Acc = {};
10
+ for (const K2 of globalThis.Object.getOwnPropertyNames(P))
11
+ Acc[K2] = (0, exclude_1.Exclude)(P[K2], U);
12
+ return Acc;
12
13
  }
13
14
  // prettier-ignore
14
15
  function FromMappedResult(R, T) {
@@ -11,7 +11,7 @@ const exclude_from_template_literal_1 = require("./exclude-from-template-literal
11
11
  // ------------------------------------------------------------------
12
12
  // TypeGuard
13
13
  // ------------------------------------------------------------------
14
- const type_2 = require("../guard/type");
14
+ const kind_1 = require("../guard/kind");
15
15
  function ExcludeRest(L, R) {
16
16
  const excluded = L.filter((inner) => (0, index_3.ExtendsCheck)(inner, R) === index_3.ExtendsResult.False);
17
17
  return excluded.length === 1 ? excluded[0] : (0, index_1.Union)(excluded);
@@ -19,12 +19,12 @@ function ExcludeRest(L, R) {
19
19
  /** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */
20
20
  function Exclude(L, R, options = {}) {
21
21
  // overloads
22
- if ((0, type_2.IsTemplateLiteral)(L))
22
+ if ((0, kind_1.IsTemplateLiteral)(L))
23
23
  return (0, type_1.CloneType)((0, exclude_from_template_literal_1.ExcludeFromTemplateLiteral)(L, R), options);
24
- if ((0, type_2.IsMappedResult)(L))
24
+ if ((0, kind_1.IsMappedResult)(L))
25
25
  return (0, type_1.CloneType)((0, exclude_from_mapped_result_1.ExcludeFromMappedResult)(L, R), options);
26
26
  // prettier-ignore
27
- return (0, type_1.CloneType)((0, type_2.IsUnion)(L) ? ExcludeRest(L.anyOf, R) :
27
+ return (0, type_1.CloneType)((0, kind_1.IsUnion)(L) ? ExcludeRest(L.anyOf, R) :
28
28
  (0, index_3.ExtendsCheck)(L, R) !== index_3.ExtendsResult.False ? (0, index_2.Never)() : L, options);
29
29
  }
30
30
  exports.Exclude = Exclude;
@@ -6,9 +6,10 @@ const index_1 = require("../mapped/index");
6
6
  const extends_1 = require("./extends");
7
7
  // prettier-ignore
8
8
  function FromProperties(P, Right, True, False, options) {
9
- return globalThis.Object.getOwnPropertyNames(P).reduce((Acc, K2) => {
10
- return { ...Acc, [K2]: (0, extends_1.Extends)(P[K2], Right, True, False, options) };
11
- }, {});
9
+ const Acc = {};
10
+ for (const K2 of globalThis.Object.getOwnPropertyNames(P))
11
+ Acc[K2] = (0, extends_1.Extends)(P[K2], Right, True, False, options);
12
+ return Acc;
12
13
  }
13
14
  // prettier-ignore
14
15
  function FromMappedResult(Left, Right, True, False, options) {
@@ -10,7 +10,7 @@ const extends_from_mapped_result_1 = require("./extends-from-mapped-result");
10
10
  // ------------------------------------------------------------------
11
11
  // TypeGuard
12
12
  // ------------------------------------------------------------------
13
- const type_2 = require("../guard/type");
13
+ const kind_1 = require("../guard/kind");
14
14
  // prettier-ignore
15
15
  function ExtendsResolve(left, right, trueType, falseType) {
16
16
  const R = (0, extends_check_1.ExtendsCheck)(left, right);
@@ -21,8 +21,8 @@ function ExtendsResolve(left, right, trueType, falseType) {
21
21
  /** `[Json]` Creates a Conditional type */
22
22
  function Extends(L, R, T, F, options = {}) {
23
23
  // prettier-ignore
24
- return ((0, type_2.IsMappedResult)(L) ? (0, extends_from_mapped_result_1.ExtendsFromMappedResult)(L, R, T, F, options) :
25
- (0, type_2.IsMappedKey)(L) ? (0, type_1.CloneType)((0, extends_from_mapped_key_1.ExtendsFromMappedKey)(L, R, T, F, options)) :
24
+ return ((0, kind_1.IsMappedResult)(L) ? (0, extends_from_mapped_result_1.ExtendsFromMappedResult)(L, R, T, F, options) :
25
+ (0, kind_1.IsMappedKey)(L) ? (0, type_1.CloneType)((0, extends_from_mapped_key_1.ExtendsFromMappedKey)(L, R, T, F, options)) :
26
26
  (0, type_1.CloneType)(ExtendsResolve(L, R, T, F), options));
27
27
  }
28
28
  exports.Extends = Extends;
@@ -6,9 +6,10 @@ const index_1 = require("../mapped/index");
6
6
  const extract_1 = require("./extract");
7
7
  // prettier-ignore
8
8
  function FromProperties(P, T) {
9
- return globalThis.Object.getOwnPropertyNames(P).reduce((Acc, K2) => {
10
- return { ...Acc, [K2]: (0, extract_1.Extract)(P[K2], T) };
11
- }, {});
9
+ const Acc = {};
10
+ for (const K2 of globalThis.Object.getOwnPropertyNames(P))
11
+ Acc[K2] = (0, extract_1.Extract)(P[K2], T);
12
+ return Acc;
12
13
  }
13
14
  // prettier-ignore
14
15
  function FromMappedResult(R, T) {
@@ -11,7 +11,7 @@ const extract_from_template_literal_1 = require("./extract-from-template-literal
11
11
  // ------------------------------------------------------------------
12
12
  // TypeGuard
13
13
  // ------------------------------------------------------------------
14
- const type_2 = require("../guard/type");
14
+ const kind_1 = require("../guard/kind");
15
15
  function ExtractRest(L, R) {
16
16
  const extracted = L.filter((inner) => (0, index_3.ExtendsCheck)(inner, R) !== index_3.ExtendsResult.False);
17
17
  return extracted.length === 1 ? extracted[0] : (0, index_1.Union)(extracted);
@@ -19,12 +19,12 @@ function ExtractRest(L, R) {
19
19
  /** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */
20
20
  function Extract(L, R, options = {}) {
21
21
  // overloads
22
- if ((0, type_2.IsTemplateLiteral)(L))
22
+ if ((0, kind_1.IsTemplateLiteral)(L))
23
23
  return (0, type_1.CloneType)((0, extract_from_template_literal_1.ExtractFromTemplateLiteral)(L, R), options);
24
- if ((0, type_2.IsMappedResult)(L))
24
+ if ((0, kind_1.IsMappedResult)(L))
25
25
  return (0, type_1.CloneType)((0, extract_from_mapped_result_1.ExtractFromMappedResult)(L, R), options);
26
26
  // prettier-ignore
27
- return (0, type_1.CloneType)((0, type_2.IsUnion)(L) ? ExtractRest(L.anyOf, R) :
27
+ return (0, type_1.CloneType)((0, kind_1.IsUnion)(L) ? ExtractRest(L.anyOf, R) :
28
28
  (0, index_3.ExtendsCheck)(L, R) !== index_3.ExtendsResult.False ? L : (0, index_2.Never)(), options);
29
29
  }
30
30
  exports.Extract = Extract;
@@ -1,2 +1,3 @@
1
+ export * as KindGuard from './kind';
1
2
  export * as TypeGuard from './type';
2
3
  export * as ValueGuard from './value';
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ValueGuard = exports.TypeGuard = void 0;
4
+ exports.ValueGuard = exports.TypeGuard = exports.KindGuard = void 0;
5
+ exports.KindGuard = require("./kind");
5
6
  exports.TypeGuard = require("./type");
6
7
  exports.ValueGuard = require("./value");