@sinclair/typebox 0.32.0-dev-12 → 0.32.0-dev-14

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 (128) hide show
  1. package/build/import/index.d.mts +5 -5
  2. package/build/import/index.mjs +3 -3
  3. package/build/import/type/composite/composite.d.mts +2 -2
  4. package/build/import/type/extends/extends-mapped-result-from-result.d.mts +13 -0
  5. package/build/import/type/extends/extends-mapped-result-from-result.mjs +14 -0
  6. package/build/import/type/extends/extends-mapped-result.d.mts +13 -9
  7. package/build/import/type/extends/extends-mapped-result.mjs +15 -8
  8. package/build/import/type/extends/extends.d.mts +4 -4
  9. package/build/import/type/extends/extends.mjs +4 -4
  10. package/build/import/type/extends/index.d.mts +1 -1
  11. package/build/import/type/extends/index.mjs +1 -1
  12. package/build/import/type/guard/type.d.mts +47 -46
  13. package/build/import/type/guard/type.mjs +294 -293
  14. package/build/import/type/indexed/index.d.mts +2 -2
  15. package/build/import/type/indexed/index.mjs +2 -2
  16. package/build/import/type/indexed/{indexed-mapped.d.mts → indexed-mapped-result.d.mts} +4 -4
  17. package/build/import/type/indexed/{indexed-mapped.mjs → indexed-mapped-result.mjs} +3 -3
  18. package/build/import/type/indexed/indexed-property-keys.d.mts +3 -3
  19. package/build/import/type/indexed/indexed-property-keys.mjs +2 -2
  20. package/build/import/type/indexed/{indexed-type.d.mts → indexed-result.d.mts} +2 -2
  21. package/build/import/type/indexed/{indexed-type.mjs → indexed-result.mjs} +1 -1
  22. package/build/import/type/indexed/indexed.d.mts +6 -6
  23. package/build/import/type/indexed/indexed.mjs +6 -6
  24. package/build/import/type/intrinsic/capitalize.d.mts +4 -0
  25. package/build/import/type/intrinsic/capitalize.mjs +5 -0
  26. package/build/import/type/intrinsic/index.d.mts +5 -0
  27. package/build/import/type/intrinsic/index.mjs +5 -0
  28. package/build/import/type/intrinsic/intrinsic-mapped-result.d.mts +15 -0
  29. package/build/import/type/intrinsic/intrinsic-mapped-result.mjs +21 -0
  30. package/build/import/type/intrinsic/intrinsic.d.mts +9 -14
  31. package/build/import/type/intrinsic/intrinsic.mjs +10 -21
  32. package/build/import/type/intrinsic/lowercase.d.mts +4 -0
  33. package/build/import/type/intrinsic/lowercase.mjs +5 -0
  34. package/build/import/type/intrinsic/uncapitalize.d.mts +4 -0
  35. package/build/import/type/intrinsic/uncapitalize.mjs +5 -0
  36. package/build/import/type/intrinsic/uppercase.d.mts +4 -0
  37. package/build/import/type/intrinsic/uppercase.mjs +5 -0
  38. package/build/import/type/mapped/index.d.mts +2 -0
  39. package/build/import/type/mapped/index.mjs +2 -0
  40. package/build/import/type/mapped/mapped-key.d.mts +8 -0
  41. package/build/import/type/mapped/mapped-key.mjs +7 -0
  42. package/build/import/type/mapped/mapped-result.d.mts +9 -0
  43. package/build/import/type/mapped/mapped-result.mjs +7 -0
  44. package/build/import/type/mapped/mapped.d.mts +24 -31
  45. package/build/import/type/mapped/mapped.mjs +33 -36
  46. package/build/import/type/omit/index.d.mts +1 -0
  47. package/build/import/type/omit/index.mjs +1 -0
  48. package/build/import/type/omit/omit-mapped-result.d.mts +15 -0
  49. package/build/import/type/omit/omit-mapped-result.mjs +20 -0
  50. package/build/import/type/omit/omit.d.mts +5 -2
  51. package/build/import/type/omit/omit.mjs +12 -6
  52. package/build/import/type/pick/index.d.mts +1 -0
  53. package/build/import/type/pick/index.mjs +1 -0
  54. package/build/import/type/pick/pick-mapped-result.d.mts +15 -0
  55. package/build/import/type/pick/pick-mapped-result.mjs +20 -0
  56. package/build/import/type/pick/pick.d.mts +5 -2
  57. package/build/import/type/pick/pick.mjs +12 -6
  58. package/build/import/type/record/record.mjs +4 -4
  59. package/build/import/type/type/json.d.mts +15 -13
  60. package/build/import/value/transform/decode.mjs +2 -2
  61. package/build/import/value/transform/encode.mjs +2 -2
  62. package/build/require/index.d.ts +5 -5
  63. package/build/require/index.js +7 -6
  64. package/build/require/type/composite/composite.d.ts +2 -2
  65. package/build/require/type/extends/extends-mapped-result-from-result.d.ts +13 -0
  66. package/build/require/type/extends/extends-mapped-result-from-result.js +18 -0
  67. package/build/require/type/extends/extends-mapped-result.d.ts +13 -9
  68. package/build/require/type/extends/extends-mapped-result.js +17 -10
  69. package/build/require/type/extends/extends.d.ts +4 -4
  70. package/build/require/type/extends/extends.js +3 -3
  71. package/build/require/type/extends/index.d.ts +1 -1
  72. package/build/require/type/extends/index.js +1 -1
  73. package/build/require/type/guard/type.d.ts +47 -46
  74. package/build/require/type/guard/type.js +252 -250
  75. package/build/require/type/indexed/index.d.ts +2 -2
  76. package/build/require/type/indexed/index.js +2 -2
  77. package/build/require/type/indexed/{indexed-mapped.d.ts → indexed-mapped-result.d.ts} +4 -4
  78. package/build/require/type/indexed/{indexed-mapped.js → indexed-mapped-result.js} +5 -5
  79. package/build/require/type/indexed/indexed-property-keys.d.ts +3 -3
  80. package/build/require/type/indexed/indexed-property-keys.js +4 -4
  81. package/build/require/type/indexed/{indexed-type.d.ts → indexed-result.d.ts} +2 -2
  82. package/build/require/type/indexed/{indexed-type.js → indexed-result.js} +3 -3
  83. package/build/require/type/indexed/indexed.d.ts +6 -6
  84. package/build/require/type/indexed/indexed.js +5 -5
  85. package/build/require/type/intrinsic/capitalize.d.ts +4 -0
  86. package/build/require/type/intrinsic/capitalize.js +9 -0
  87. package/build/require/type/intrinsic/index.d.ts +5 -0
  88. package/build/require/type/intrinsic/index.js +5 -0
  89. package/build/require/type/intrinsic/intrinsic-mapped-result.d.ts +15 -0
  90. package/build/require/type/intrinsic/intrinsic-mapped-result.js +25 -0
  91. package/build/require/type/intrinsic/intrinsic.d.ts +9 -14
  92. package/build/require/type/intrinsic/intrinsic.js +10 -25
  93. package/build/require/type/intrinsic/lowercase.d.ts +4 -0
  94. package/build/require/type/intrinsic/lowercase.js +9 -0
  95. package/build/require/type/intrinsic/uncapitalize.d.ts +4 -0
  96. package/build/require/type/intrinsic/uncapitalize.js +9 -0
  97. package/build/require/type/intrinsic/uppercase.d.ts +4 -0
  98. package/build/require/type/intrinsic/uppercase.js +9 -0
  99. package/build/require/type/mapped/index.d.ts +2 -0
  100. package/build/require/type/mapped/index.js +2 -0
  101. package/build/require/type/mapped/mapped-key.d.ts +8 -0
  102. package/build/require/type/mapped/mapped-key.js +11 -0
  103. package/build/require/type/mapped/mapped-result.d.ts +9 -0
  104. package/build/require/type/mapped/mapped-result.js +11 -0
  105. package/build/require/type/mapped/mapped.d.ts +24 -31
  106. package/build/require/type/mapped/mapped.js +45 -52
  107. package/build/require/type/omit/index.d.ts +1 -0
  108. package/build/require/type/omit/index.js +1 -0
  109. package/build/require/type/omit/omit-mapped-result.d.ts +15 -0
  110. package/build/require/type/omit/omit-mapped-result.js +24 -0
  111. package/build/require/type/omit/omit.d.ts +5 -2
  112. package/build/require/type/omit/omit.js +10 -4
  113. package/build/require/type/pick/index.d.ts +1 -0
  114. package/build/require/type/pick/index.js +1 -0
  115. package/build/require/type/pick/pick-mapped-result.d.ts +15 -0
  116. package/build/require/type/pick/pick-mapped-result.js +24 -0
  117. package/build/require/type/pick/pick.d.ts +5 -2
  118. package/build/require/type/pick/pick.js +10 -4
  119. package/build/require/type/record/record.js +2 -2
  120. package/build/require/type/type/json.d.ts +15 -13
  121. package/build/require/value/transform/decode.js +1 -1
  122. package/build/require/value/transform/encode.js +1 -1
  123. package/package.json +1 -1
  124. package/readme.md +115 -47
  125. package/build/import/type/extends/extends-mapped.d.mts +0 -17
  126. package/build/import/type/extends/extends-mapped.mjs +0 -21
  127. package/build/require/type/extends/extends-mapped.d.ts +0 -17
  128. package/build/require/type/extends/extends-mapped.js +0 -25
@@ -80,303 +80,304 @@ function IsOptionalFormat(value) {
80
80
  function IsOptionalSchema(value) {
81
81
  return ValueGuard.IsUndefined(value) || TSchema(value);
82
82
  }
83
- export function TReadonly(schema) {
84
- return ValueGuard.IsObject(schema) && schema[ReadonlyKind] === 'Readonly';
85
- }
86
- export function TOptional(schema) {
87
- return ValueGuard.IsObject(schema) && schema[OptionalKind] === 'Optional';
88
- }
89
- export function TAny(schema) {
90
- return (TKindOf(schema, 'Any') &&
91
- IsOptionalString(schema.$id));
92
- }
93
- export function TArray(schema) {
94
- return (TKindOf(schema, 'Array') &&
95
- schema.type === 'array' &&
96
- IsOptionalString(schema.$id) &&
97
- TSchema(schema.items) &&
98
- IsOptionalNumber(schema.minItems) &&
99
- IsOptionalNumber(schema.maxItems) &&
100
- IsOptionalBoolean(schema.uniqueItems) &&
101
- IsOptionalSchema(schema.contains) &&
102
- IsOptionalNumber(schema.minContains) &&
103
- IsOptionalNumber(schema.maxContains));
104
- }
105
- export function TAsyncIterator(schema) {
106
- return (TKindOf(schema, 'AsyncIterator') &&
107
- schema.type === 'AsyncIterator' &&
108
- IsOptionalString(schema.$id) &&
109
- TSchema(schema.items));
110
- }
111
- export function TBigInt(schema) {
112
- return (TKindOf(schema, 'BigInt') &&
113
- schema.type === 'bigint' &&
114
- IsOptionalString(schema.$id) &&
115
- IsOptionalBigInt(schema.exclusiveMaximum) &&
116
- IsOptionalBigInt(schema.exclusiveMinimum) &&
117
- IsOptionalBigInt(schema.maximum) &&
118
- IsOptionalBigInt(schema.minimum) &&
119
- IsOptionalBigInt(schema.multipleOf));
120
- }
121
- export function TBoolean(schema) {
122
- return (TKindOf(schema, 'Boolean') &&
123
- schema.type === 'boolean' &&
124
- IsOptionalString(schema.$id));
125
- }
126
- export function TConstructor(schema) {
127
- return (TKindOf(schema, 'Constructor') &&
128
- schema.type === 'Constructor' &&
129
- IsOptionalString(schema.$id) &&
130
- ValueGuard.IsArray(schema.parameters) &&
131
- schema.parameters.every(schema => TSchema(schema)) &&
132
- TSchema(schema.returns));
133
- }
134
- export function TDate(schema) {
135
- return (TKindOf(schema, 'Date') &&
136
- schema.type === 'Date' &&
137
- IsOptionalString(schema.$id) &&
138
- IsOptionalNumber(schema.exclusiveMaximumTimestamp) &&
139
- IsOptionalNumber(schema.exclusiveMinimumTimestamp) &&
140
- IsOptionalNumber(schema.maximumTimestamp) &&
141
- IsOptionalNumber(schema.minimumTimestamp) &&
142
- IsOptionalNumber(schema.multipleOfTimestamp));
143
- }
144
- export function TFunction(schema) {
145
- return (TKindOf(schema, 'Function') &&
146
- schema.type === 'Function' &&
147
- IsOptionalString(schema.$id) &&
148
- ValueGuard.IsArray(schema.parameters) &&
149
- schema.parameters.every(schema => TSchema(schema)) &&
150
- TSchema(schema.returns));
151
- }
152
- export function TInteger(schema) {
153
- return (TKindOf(schema, 'Integer') &&
154
- schema.type === 'integer' &&
155
- IsOptionalString(schema.$id) &&
156
- IsOptionalNumber(schema.exclusiveMaximum) &&
157
- IsOptionalNumber(schema.exclusiveMinimum) &&
158
- IsOptionalNumber(schema.maximum) &&
159
- IsOptionalNumber(schema.minimum) &&
160
- IsOptionalNumber(schema.multipleOf));
161
- }
162
- export function TProperties(schema) {
163
- return (ValueGuard.IsObject(schema) &&
164
- Object.entries(schema).every(([key, schema]) => IsControlCharacterFree(key) && TSchema(schema)));
165
- }
166
- export function TIntersect(schema) {
167
- return (TKindOf(schema, 'Intersect') &&
168
- (ValueGuard.IsString(schema.type) && schema.type !== 'object' ? false : true) &&
169
- ValueGuard.IsArray(schema.allOf) &&
170
- schema.allOf.every(schema => TSchema(schema) && !TTransform(schema)) &&
171
- IsOptionalString(schema.type) &&
172
- (IsOptionalBoolean(schema.unevaluatedProperties) || IsOptionalSchema(schema.unevaluatedProperties)) &&
173
- IsOptionalString(schema.$id));
174
- }
175
- export function TIterator(schema) {
176
- return (TKindOf(schema, 'Iterator') &&
177
- schema.type === 'Iterator' &&
178
- IsOptionalString(schema.$id) &&
179
- TSchema(schema.items));
180
- }
181
- export function TKindOf(schema, kind) {
182
- return ValueGuard.IsObject(schema) && Kind in schema && schema[Kind] === kind;
183
- }
184
- export function TLiteralString(schema) {
185
- return TLiteral(schema) && ValueGuard.IsString(schema.const);
186
- }
187
- export function TLiteralNumber(schema) {
188
- return TLiteral(schema) && ValueGuard.IsNumber(schema.const);
189
- }
190
- export function TLiteralBoolean(schema) {
191
- return TLiteral(schema) && ValueGuard.IsBoolean(schema.const);
192
- }
193
- export function TLiteral(schema) {
194
- return (TKindOf(schema, 'Literal') &&
195
- IsOptionalString(schema.$id) && (ValueGuard.IsBoolean(schema.const) ||
196
- ValueGuard.IsNumber(schema.const) ||
197
- ValueGuard.IsString(schema.const)));
198
- }
199
- export function TMappedKey(schema) {
200
- return (TKindOf(schema, 'MappedKey') &&
201
- ValueGuard.IsArray(schema.keys) &&
202
- schema.keys.every(key => ValueGuard.IsNumber(key) || ValueGuard.IsString(key)));
203
- }
204
- export function TMappedResult(schema) {
205
- return (TKindOf(schema, 'MappedResult') &&
206
- TProperties(schema.properties));
207
- }
208
- export function TNever(schema) {
209
- return (TKindOf(schema, 'Never') &&
210
- ValueGuard.IsObject(schema.not) &&
211
- Object.getOwnPropertyNames(schema.not).length === 0);
212
- }
213
- export function TNot(schema) {
214
- return (TKindOf(schema, 'Not') &&
215
- TSchema(schema.not));
216
- }
217
- export function TNull(schema) {
218
- return (TKindOf(schema, 'Null') &&
219
- schema.type === 'null' &&
220
- IsOptionalString(schema.$id));
221
- }
222
- export function TNumber(schema) {
223
- return (TKindOf(schema, 'Number') &&
224
- schema.type === 'number' &&
225
- IsOptionalString(schema.$id) &&
226
- IsOptionalNumber(schema.exclusiveMaximum) &&
227
- IsOptionalNumber(schema.exclusiveMinimum) &&
228
- IsOptionalNumber(schema.maximum) &&
229
- IsOptionalNumber(schema.minimum) &&
230
- IsOptionalNumber(schema.multipleOf));
231
- }
232
- export function TObject(schema) {
233
- return (TKindOf(schema, 'Object') &&
234
- schema.type === 'object' &&
235
- IsOptionalString(schema.$id) &&
236
- TProperties(schema.properties) &&
237
- IsAdditionalProperties(schema.additionalProperties) &&
238
- IsOptionalNumber(schema.minProperties) &&
239
- IsOptionalNumber(schema.maxProperties));
240
- }
241
- export function TPromise(schema) {
242
- return (TKindOf(schema, 'Promise') &&
243
- schema.type === 'Promise' &&
244
- IsOptionalString(schema.$id) &&
245
- TSchema(schema.item));
246
- }
247
- export function TRecord(schema) {
248
- return (TKindOf(schema, 'Record') &&
249
- schema.type === 'object' &&
250
- IsOptionalString(schema.$id) &&
251
- IsAdditionalProperties(schema.additionalProperties) &&
252
- ValueGuard.IsObject(schema.patternProperties) &&
83
+ export function TReadonly(value) {
84
+ return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly';
85
+ }
86
+ export function TOptional(value) {
87
+ return ValueGuard.IsObject(value) && value[OptionalKind] === 'Optional';
88
+ }
89
+ export function TAny(value) {
90
+ return (TKindOf(value, 'Any') &&
91
+ IsOptionalString(value.$id));
92
+ }
93
+ export function TArray(value) {
94
+ return (TKindOf(value, 'Array') &&
95
+ value.type === 'array' &&
96
+ IsOptionalString(value.$id) &&
97
+ TSchema(value.items) &&
98
+ IsOptionalNumber(value.minItems) &&
99
+ IsOptionalNumber(value.maxItems) &&
100
+ IsOptionalBoolean(value.uniqueItems) &&
101
+ IsOptionalSchema(value.contains) &&
102
+ IsOptionalNumber(value.minContains) &&
103
+ IsOptionalNumber(value.maxContains));
104
+ }
105
+ export function TAsyncIterator(value) {
106
+ return (TKindOf(value, 'AsyncIterator') &&
107
+ value.type === 'AsyncIterator' &&
108
+ IsOptionalString(value.$id) &&
109
+ TSchema(value.items));
110
+ }
111
+ export function TBigInt(value) {
112
+ return (TKindOf(value, 'BigInt') &&
113
+ value.type === 'bigint' &&
114
+ IsOptionalString(value.$id) &&
115
+ IsOptionalBigInt(value.exclusiveMaximum) &&
116
+ IsOptionalBigInt(value.exclusiveMinimum) &&
117
+ IsOptionalBigInt(value.maximum) &&
118
+ IsOptionalBigInt(value.minimum) &&
119
+ IsOptionalBigInt(value.multipleOf));
120
+ }
121
+ export function TBoolean(value) {
122
+ return (TKindOf(value, 'Boolean') &&
123
+ value.type === 'boolean' &&
124
+ IsOptionalString(value.$id));
125
+ }
126
+ export function TConstructor(value) {
127
+ return (TKindOf(value, 'Constructor') &&
128
+ value.type === 'Constructor' &&
129
+ IsOptionalString(value.$id) &&
130
+ ValueGuard.IsArray(value.parameters) &&
131
+ value.parameters.every(schema => TSchema(schema)) &&
132
+ TSchema(value.returns));
133
+ }
134
+ export function TDate(value) {
135
+ return (TKindOf(value, 'Date') &&
136
+ value.type === 'Date' &&
137
+ IsOptionalString(value.$id) &&
138
+ IsOptionalNumber(value.exclusiveMaximumTimestamp) &&
139
+ IsOptionalNumber(value.exclusiveMinimumTimestamp) &&
140
+ IsOptionalNumber(value.maximumTimestamp) &&
141
+ IsOptionalNumber(value.minimumTimestamp) &&
142
+ IsOptionalNumber(value.multipleOfTimestamp));
143
+ }
144
+ export function TFunction(value) {
145
+ return (TKindOf(value, 'Function') &&
146
+ value.type === 'Function' &&
147
+ IsOptionalString(value.$id) &&
148
+ ValueGuard.IsArray(value.parameters) &&
149
+ value.parameters.every(schema => TSchema(schema)) &&
150
+ TSchema(value.returns));
151
+ }
152
+ export function TInteger(value) {
153
+ return (TKindOf(value, 'Integer') &&
154
+ value.type === 'integer' &&
155
+ IsOptionalString(value.$id) &&
156
+ IsOptionalNumber(value.exclusiveMaximum) &&
157
+ IsOptionalNumber(value.exclusiveMinimum) &&
158
+ IsOptionalNumber(value.maximum) &&
159
+ IsOptionalNumber(value.minimum) &&
160
+ IsOptionalNumber(value.multipleOf));
161
+ }
162
+ export function TProperties(value) {
163
+ return (ValueGuard.IsObject(value) &&
164
+ Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && TSchema(schema)));
165
+ }
166
+ export function TIntersect(value) {
167
+ return (TKindOf(value, 'Intersect') &&
168
+ (ValueGuard.IsString(value.type) && value.type !== 'object' ? false : true) &&
169
+ ValueGuard.IsArray(value.allOf) &&
170
+ value.allOf.every(schema => TSchema(schema) && !TTransform(schema)) &&
171
+ IsOptionalString(value.type) &&
172
+ (IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) &&
173
+ IsOptionalString(value.$id));
174
+ }
175
+ export function TIterator(value) {
176
+ return (TKindOf(value, 'Iterator') &&
177
+ value.type === 'Iterator' &&
178
+ IsOptionalString(value.$id) &&
179
+ TSchema(value.items));
180
+ }
181
+ export function TKindOf(value, kind) {
182
+ return ValueGuard.IsObject(value) && Kind in value && value[Kind] === kind;
183
+ }
184
+ export function TLiteralString(value) {
185
+ return TLiteral(value) && ValueGuard.IsString(value.const);
186
+ }
187
+ export function TLiteralNumber(value) {
188
+ return TLiteral(value) && ValueGuard.IsNumber(value.const);
189
+ }
190
+ export function TLiteralBoolean(value) {
191
+ return TLiteral(value) && ValueGuard.IsBoolean(value.const);
192
+ }
193
+ export function TLiteral(value) {
194
+ return (TKindOf(value, 'Literal') &&
195
+ IsOptionalString(value.$id) && TLiteralValue(value.const));
196
+ }
197
+ export function TLiteralValue(value) {
198
+ return ValueGuard.IsBoolean(value) || ValueGuard.IsNumber(value) || ValueGuard.IsString(value);
199
+ }
200
+ export function TMappedKey(value) {
201
+ return (TKindOf(value, 'MappedKey') &&
202
+ ValueGuard.IsArray(value.keys) &&
203
+ value.keys.every(key => ValueGuard.IsNumber(key) || ValueGuard.IsString(key)));
204
+ }
205
+ export function TMappedResult(value) {
206
+ return (TKindOf(value, 'MappedResult') &&
207
+ TProperties(value.properties));
208
+ }
209
+ export function TNever(value) {
210
+ return (TKindOf(value, 'Never') &&
211
+ ValueGuard.IsObject(value.not) &&
212
+ Object.getOwnPropertyNames(value.not).length === 0);
213
+ }
214
+ export function TNot(value) {
215
+ return (TKindOf(value, 'Not') &&
216
+ TSchema(value.not));
217
+ }
218
+ export function TNull(value) {
219
+ return (TKindOf(value, 'Null') &&
220
+ value.type === 'null' &&
221
+ IsOptionalString(value.$id));
222
+ }
223
+ export function TNumber(value) {
224
+ return (TKindOf(value, 'Number') &&
225
+ value.type === 'number' &&
226
+ IsOptionalString(value.$id) &&
227
+ IsOptionalNumber(value.exclusiveMaximum) &&
228
+ IsOptionalNumber(value.exclusiveMinimum) &&
229
+ IsOptionalNumber(value.maximum) &&
230
+ IsOptionalNumber(value.minimum) &&
231
+ IsOptionalNumber(value.multipleOf));
232
+ }
233
+ export function TObject(value) {
234
+ return (TKindOf(value, 'Object') &&
235
+ value.type === 'object' &&
236
+ IsOptionalString(value.$id) &&
237
+ TProperties(value.properties) &&
238
+ IsAdditionalProperties(value.additionalProperties) &&
239
+ IsOptionalNumber(value.minProperties) &&
240
+ IsOptionalNumber(value.maxProperties));
241
+ }
242
+ export function TPromise(value) {
243
+ return (TKindOf(value, 'Promise') &&
244
+ value.type === 'Promise' &&
245
+ IsOptionalString(value.$id) &&
246
+ TSchema(value.item));
247
+ }
248
+ export function TRecord(value) {
249
+ return (TKindOf(value, 'Record') &&
250
+ value.type === 'object' &&
251
+ IsOptionalString(value.$id) &&
252
+ IsAdditionalProperties(value.additionalProperties) &&
253
+ ValueGuard.IsObject(value.patternProperties) &&
253
254
  ((schema) => {
254
255
  const keys = Object.getOwnPropertyNames(schema.patternProperties);
255
256
  return (keys.length === 1 &&
256
257
  IsPattern(keys[0]) &&
257
258
  ValueGuard.IsObject(schema.patternProperties) &&
258
259
  TSchema(schema.patternProperties[keys[0]]));
259
- })(schema));
260
- }
261
- export function TRecursive(schema) {
262
- return ValueGuard.IsObject(schema) && Hint in schema && schema[Hint] === 'Recursive';
263
- }
264
- export function TRef(schema) {
265
- return (TKindOf(schema, 'Ref') &&
266
- IsOptionalString(schema.$id) &&
267
- ValueGuard.IsString(schema.$ref));
268
- }
269
- export function TString(schema) {
270
- return (TKindOf(schema, 'String') &&
271
- schema.type === 'string' &&
272
- IsOptionalString(schema.$id) &&
273
- IsOptionalNumber(schema.minLength) &&
274
- IsOptionalNumber(schema.maxLength) &&
275
- IsOptionalPattern(schema.pattern) &&
276
- IsOptionalFormat(schema.format));
277
- }
278
- export function TSymbol(schema) {
279
- return (TKindOf(schema, 'Symbol') &&
280
- schema.type === 'symbol' &&
281
- IsOptionalString(schema.$id));
282
- }
283
- export function TTemplateLiteral(schema) {
284
- return (TKindOf(schema, 'TemplateLiteral') &&
285
- schema.type === 'string' &&
286
- ValueGuard.IsString(schema.pattern) &&
287
- schema.pattern[0] === '^' &&
288
- schema.pattern[schema.pattern.length - 1] === '$');
289
- }
290
- export function TThis(schema) {
291
- return (TKindOf(schema, 'This') &&
292
- IsOptionalString(schema.$id) &&
293
- ValueGuard.IsString(schema.$ref));
294
- }
295
- export function TTransform(schema) {
296
- return ValueGuard.IsObject(schema) && TransformKind in schema;
297
- }
298
- export function TTuple(schema) {
299
- return (TKindOf(schema, 'Tuple') &&
300
- schema.type === 'array' &&
301
- IsOptionalString(schema.$id) &&
302
- ValueGuard.IsNumber(schema.minItems) &&
303
- ValueGuard.IsNumber(schema.maxItems) &&
304
- schema.minItems === schema.maxItems &&
305
- ((ValueGuard.IsUndefined(schema.items) &&
306
- ValueGuard.IsUndefined(schema.additionalItems) &&
307
- schema.minItems === 0) || (ValueGuard.IsArray(schema.items) &&
308
- schema.items.every(schema => TSchema(schema)))));
309
- }
310
- export function TUndefined(schema) {
311
- return (TKindOf(schema, 'Undefined') &&
312
- schema.type === 'undefined' &&
313
- IsOptionalString(schema.$id));
314
- }
315
- export function TUnionLiteral(schema) {
316
- return TUnion(schema) && schema.anyOf.every((schema) => TLiteralString(schema) || TLiteralNumber(schema));
317
- }
318
- export function TUnion(schema) {
319
- return (TKindOf(schema, 'Union') &&
320
- IsOptionalString(schema.$id) &&
321
- ValueGuard.IsObject(schema) &&
322
- ValueGuard.IsArray(schema.anyOf) &&
323
- schema.anyOf.every(schema => TSchema(schema)));
324
- }
325
- export function TUint8Array(schema) {
326
- return (TKindOf(schema, 'Uint8Array') &&
327
- schema.type === 'Uint8Array' &&
328
- IsOptionalString(schema.$id) &&
329
- IsOptionalNumber(schema.minByteLength) &&
330
- IsOptionalNumber(schema.maxByteLength));
331
- }
332
- export function TUnknown(schema) {
333
- return (TKindOf(schema, 'Unknown') &&
334
- IsOptionalString(schema.$id));
335
- }
336
- export function TUnsafe(schema) {
337
- return TKindOf(schema, 'Unsafe');
338
- }
339
- export function TVoid(schema) {
340
- return (TKindOf(schema, 'Void') &&
341
- schema.type === 'void' &&
342
- IsOptionalString(schema.$id));
343
- }
344
- export function TKind(schema) {
345
- return ValueGuard.IsObject(schema) && Kind in schema && ValueGuard.IsString(schema[Kind]) && !KnownTypes.includes(schema[Kind]);
346
- }
347
- export function TSchema(schema) {
348
- return (ValueGuard.IsObject(schema)) && (TAny(schema) ||
349
- TArray(schema) ||
350
- TBoolean(schema) ||
351
- TBigInt(schema) ||
352
- TAsyncIterator(schema) ||
353
- TConstructor(schema) ||
354
- TDate(schema) ||
355
- TFunction(schema) ||
356
- TInteger(schema) ||
357
- TIntersect(schema) ||
358
- TIterator(schema) ||
359
- TLiteral(schema) ||
360
- TMappedKey(schema) ||
361
- TMappedResult(schema) ||
362
- TNever(schema) ||
363
- TNot(schema) ||
364
- TNull(schema) ||
365
- TNumber(schema) ||
366
- TObject(schema) ||
367
- TPromise(schema) ||
368
- TRecord(schema) ||
369
- TRef(schema) ||
370
- TString(schema) ||
371
- TSymbol(schema) ||
372
- TTemplateLiteral(schema) ||
373
- TThis(schema) ||
374
- TTuple(schema) ||
375
- TUndefined(schema) ||
376
- TUnion(schema) ||
377
- TUint8Array(schema) ||
378
- TUnknown(schema) ||
379
- TUnsafe(schema) ||
380
- TVoid(schema) ||
381
- TKind(schema));
260
+ })(value));
261
+ }
262
+ export function TRecursive(value) {
263
+ return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive';
264
+ }
265
+ export function TRef(value) {
266
+ return (TKindOf(value, 'Ref') &&
267
+ IsOptionalString(value.$id) &&
268
+ ValueGuard.IsString(value.$ref));
269
+ }
270
+ export function TString(value) {
271
+ return (TKindOf(value, 'String') &&
272
+ value.type === 'string' &&
273
+ IsOptionalString(value.$id) &&
274
+ IsOptionalNumber(value.minLength) &&
275
+ IsOptionalNumber(value.maxLength) &&
276
+ IsOptionalPattern(value.pattern) &&
277
+ IsOptionalFormat(value.format));
278
+ }
279
+ export function TSymbol(value) {
280
+ return (TKindOf(value, 'Symbol') &&
281
+ value.type === 'symbol' &&
282
+ IsOptionalString(value.$id));
283
+ }
284
+ export function TTemplateLiteral(value) {
285
+ return (TKindOf(value, 'TemplateLiteral') &&
286
+ value.type === 'string' &&
287
+ ValueGuard.IsString(value.pattern) &&
288
+ value.pattern[0] === '^' &&
289
+ value.pattern[value.pattern.length - 1] === '$');
290
+ }
291
+ export function TThis(value) {
292
+ return (TKindOf(value, 'This') &&
293
+ IsOptionalString(value.$id) &&
294
+ ValueGuard.IsString(value.$ref));
295
+ }
296
+ export function TTransform(value) {
297
+ return ValueGuard.IsObject(value) && TransformKind in value;
298
+ }
299
+ export function TTuple(value) {
300
+ return (TKindOf(value, 'Tuple') &&
301
+ value.type === 'array' &&
302
+ IsOptionalString(value.$id) &&
303
+ ValueGuard.IsNumber(value.minItems) &&
304
+ ValueGuard.IsNumber(value.maxItems) &&
305
+ value.minItems === value.maxItems &&
306
+ ((ValueGuard.IsUndefined(value.items) &&
307
+ ValueGuard.IsUndefined(value.additionalItems) &&
308
+ value.minItems === 0) || (ValueGuard.IsArray(value.items) &&
309
+ value.items.every(schema => TSchema(schema)))));
310
+ }
311
+ export function TUndefined(value) {
312
+ return (TKindOf(value, 'Undefined') &&
313
+ value.type === 'undefined' &&
314
+ IsOptionalString(value.$id));
315
+ }
316
+ export function TUnionLiteral(value) {
317
+ return TUnion(value) && value.anyOf.every((schema) => TLiteralString(schema) || TLiteralNumber(schema));
318
+ }
319
+ export function TUnion(value) {
320
+ return (TKindOf(value, 'Union') &&
321
+ IsOptionalString(value.$id) &&
322
+ ValueGuard.IsObject(value) &&
323
+ ValueGuard.IsArray(value.anyOf) &&
324
+ value.anyOf.every(schema => TSchema(schema)));
325
+ }
326
+ export function TUint8Array(value) {
327
+ return (TKindOf(value, 'Uint8Array') &&
328
+ value.type === 'Uint8Array' &&
329
+ IsOptionalString(value.$id) &&
330
+ IsOptionalNumber(value.minByteLength) &&
331
+ IsOptionalNumber(value.maxByteLength));
332
+ }
333
+ export function TUnknown(value) {
334
+ return (TKindOf(value, 'Unknown') &&
335
+ IsOptionalString(value.$id));
336
+ }
337
+ export function TUnsafe(value) {
338
+ return TKindOf(value, 'Unsafe');
339
+ }
340
+ export function TVoid(value) {
341
+ return (TKindOf(value, 'Void') &&
342
+ value.type === 'void' &&
343
+ IsOptionalString(value.$id));
344
+ }
345
+ export function TKind(value) {
346
+ return ValueGuard.IsObject(value) && Kind in value && ValueGuard.IsString(value[Kind]) && !KnownTypes.includes(value[Kind]);
347
+ }
348
+ export function TSchema(value) {
349
+ return (ValueGuard.IsObject(value)) && (TAny(value) ||
350
+ TArray(value) ||
351
+ TBoolean(value) ||
352
+ TBigInt(value) ||
353
+ TAsyncIterator(value) ||
354
+ TConstructor(value) ||
355
+ TDate(value) ||
356
+ TFunction(value) ||
357
+ TInteger(value) ||
358
+ TIntersect(value) ||
359
+ TIterator(value) ||
360
+ TLiteral(value) ||
361
+ TMappedKey(value) ||
362
+ TMappedResult(value) ||
363
+ TNever(value) ||
364
+ TNot(value) ||
365
+ TNull(value) ||
366
+ TNumber(value) ||
367
+ TObject(value) ||
368
+ TPromise(value) ||
369
+ TRecord(value) ||
370
+ TRef(value) ||
371
+ TString(value) ||
372
+ TSymbol(value) ||
373
+ TTemplateLiteral(value) ||
374
+ TThis(value) ||
375
+ TTuple(value) ||
376
+ TUndefined(value) ||
377
+ TUnion(value) ||
378
+ TUint8Array(value) ||
379
+ TUnknown(value) ||
380
+ TUnsafe(value) ||
381
+ TVoid(value) ||
382
+ TKind(value));
382
383
  }
@@ -1,4 +1,4 @@
1
- export * from './indexed-mapped.mjs';
1
+ export * from './indexed-mapped-result.mjs';
2
2
  export * from './indexed-property-keys.mjs';
3
- export * from './indexed-type.mjs';
3
+ export * from './indexed-result.mjs';
4
4
  export * from './indexed.mjs';
@@ -1,4 +1,4 @@
1
- export * from './indexed-mapped.mjs';
1
+ export * from './indexed-mapped-result.mjs';
2
2
  export * from './indexed-property-keys.mjs';
3
- export * from './indexed-type.mjs';
3
+ export * from './indexed-result.mjs';
4
4
  export * from './indexed.mjs';
@@ -1,16 +1,16 @@
1
1
  import { type TSchema } from '../schema/index.mjs';
2
2
  import { type TProperties } from '../object/index.mjs';
3
- import { IndexedType } from './indexed-type.mjs';
3
+ import { type TIndexResult } from './indexed-result.mjs';
4
4
  import { type TMappedResult, type TMappedKey } from '../mapped/index.mjs';
5
5
  import { Evaluate } from '../helpers/index.mjs';
6
6
  type MappedIndexPropertyKey<T extends TSchema, K extends PropertyKey> = {
7
- [_ in K]: IndexedType<T, [K]>;
7
+ [_ in K]: TIndexResult<T, [K]>;
8
8
  };
9
9
  declare function MappedIndexPropertyKey<T extends TSchema, K extends PropertyKey>(T: T, K: K): MappedIndexPropertyKey<T, K>;
10
10
  type MappedIndexPropertyKeys<T extends TSchema, K extends PropertyKey[]> = (K extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? MappedIndexPropertyKey<T, L> & MappedIndexPropertyKeys<T, R> : {});
11
11
  declare function MappedIndexPropertyKeys<T extends TSchema, K extends PropertyKey[]>(T: T, K: [...K]): MappedIndexPropertyKeys<T, K>;
12
12
  type MappedIndexProperties<T extends TSchema, K extends TMappedKey> = Evaluate<MappedIndexPropertyKeys<T, K['keys']>>;
13
13
  declare function MappedIndexProperties<T extends TSchema, K extends TMappedKey>(T: T, K: K): MappedIndexProperties<T, K>;
14
- export type TMappedIndex<T extends TSchema, K extends TMappedKey, P extends TProperties = MappedIndexProperties<T, K>> = TMappedResult<P>;
15
- export declare function MappedIndex<T extends TSchema, K extends TMappedKey, P extends TProperties = MappedIndexProperties<T, K>>(T: T, K: K): TMappedResult<P>;
14
+ export type TIndexMappedResult<T extends TSchema, K extends TMappedKey, P extends TProperties = MappedIndexProperties<T, K>> = (TMappedResult<P>);
15
+ export declare function IndexMappedResult<T extends TSchema, K extends TMappedKey, P extends TProperties = MappedIndexProperties<T, K>>(T: T, K: K): TMappedResult<P>;
16
16
  export {};