typebox 1.1.9 → 1.1.10

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.
@@ -3,10 +3,10 @@ import { type TIdentifier } from '../types/identifier.mjs';
3
3
  import { type TDeferred } from '../types/deferred.mjs';
4
4
  import { type TInstantiate } from '../engine/instantiate.mjs';
5
5
  /** Creates a deferred Mapped action. */
6
- export type TMappedDeferred<Identifier extends TIdentifier, Key extends TSchema, As extends TSchema, Property extends TSchema> = (TDeferred<'Mapped', [Identifier, Key, As, Property]>);
6
+ export type TMappedDeferred<Identifier extends TIdentifier, Type extends TSchema, As extends TSchema, Property extends TSchema> = (TDeferred<'Mapped', [Identifier, Type, As, Property]>);
7
7
  /** Creates a deferred Mapped action. */
8
- export declare function MappedDeferred<Identifier extends TIdentifier, Key extends TSchema, As extends TSchema, Property extends TSchema>(identifier: Identifier, key: Key, as: As, property: Property, options?: TSchemaOptions): TMappedDeferred<Identifier, Key, As, Property>;
8
+ export declare function MappedDeferred<Identifier extends TIdentifier, Type extends TSchema, As extends TSchema, Property extends TSchema>(identifier: Identifier, type: Type, as: As, property: Property, options?: TSchemaOptions): TMappedDeferred<Identifier, Type, As, Property>;
9
9
  /** Applies a Mapped action using the given types. */
10
- export type TMapped<Identifier extends TIdentifier, Key extends TSchema, As extends TSchema, Property extends TSchema> = (TInstantiate<{}, TMappedDeferred<Identifier, Key, As, Property>>);
10
+ export type TMapped<Identifier extends TIdentifier, Type extends TSchema, As extends TSchema, Property extends TSchema> = (TInstantiate<{}, TMappedDeferred<Identifier, Type, As, Property>>);
11
11
  /** Applies a Mapped action using the given types. */
12
- export declare function Mapped<Identifier extends TIdentifier, Key extends TSchema, As extends TSchema, Property extends TSchema>(identifier: Identifier, key: Key, as: As, property: Property, options?: TSchemaOptions): TMapped<Identifier, Key, As, Property>;
12
+ export declare function Mapped<Identifier extends TIdentifier, Type extends TSchema, As extends TSchema, Property extends TSchema>(identifier: Identifier, type: Type, as: As, property: Property, options?: TSchemaOptions): TMapped<Identifier, Type, As, Property>;
@@ -2,10 +2,10 @@
2
2
  import { Deferred } from '../types/deferred.mjs';
3
3
  import { Instantiate } from '../engine/instantiate.mjs';
4
4
  /** Creates a deferred Mapped action. */
5
- export function MappedDeferred(identifier, key, as, property, options = {}) {
6
- return Deferred('Mapped', [identifier, key, as, property], options);
5
+ export function MappedDeferred(identifier, type, as, property, options = {}) {
6
+ return Deferred('Mapped', [identifier, type, as, property], options);
7
7
  }
8
8
  /** Applies a Mapped action using the given types. */
9
- export function Mapped(identifier, key, as, property, options = {}) {
10
- return Instantiate({}, MappedDeferred(identifier, key, as, property, options));
9
+ export function Mapped(identifier, type, as, property, options = {}) {
10
+ return Instantiate({}, MappedDeferred(identifier, type, as, property, options));
11
11
  }
@@ -3,13 +3,13 @@ import { type TUnion } from '../../types/union.mjs';
3
3
  import { type TDeferred } from '../../types/deferred.mjs';
4
4
  import { type TRef } from '../../types/ref.mjs';
5
5
  import { type TParameter } from '../../types/parameter.mjs';
6
- type TCollectDistributionNames<Expression extends TSchema, Result extends string[] = []> = (Expression extends TDeferred<'Conditional', [infer Left extends TSchema, infer _Right extends TSchema, infer True extends TSchema, infer False extends TSchema]> ? Left extends TRef<infer Name extends string> ? TCollectDistributionNames<True, TCollectDistributionNames<False, [...Result, Name]>> : TCollectDistributionNames<True, TCollectDistributionNames<False, Result>> : Result);
6
+ type TCollectDistributionNames<Expression extends TSchema, Result extends string[] = []> = (Expression extends TDeferred<'Conditional', [infer Left extends TSchema, infer _Right extends TSchema, infer True extends TSchema, infer False extends TSchema]> ? Left extends TRef<infer Name extends string> ? TCollectDistributionNames<True, TCollectDistributionNames<False, [...Result, Name]>> : TCollectDistributionNames<True, TCollectDistributionNames<False, Result>> : Expression extends TDeferred<'Mapped', [infer _Identifier extends TSchema, infer Type extends TSchema, infer _As extends TSchema, infer _Property extends TSchema]> ? (Type extends TDeferred<'KeyOf', [infer Ref extends TRef]> ? [...Result, Ref['$ref']] : Result) : Result);
7
7
  type TBuildDistributionArray<Parameters extends TParameter[], Names extends string[], Result extends boolean[] = []> = (Parameters extends [infer Left extends TParameter, ...infer Right extends TParameter[]] ? Left['name'] extends Names[number] ? TBuildDistributionArray<Right, Names, [...Result, true]> : TBuildDistributionArray<Right, Names, [...Result, false]> : Result);
8
8
  type TZipDistributionArray<Arguments extends TSchema[], DistributionArray extends boolean[], Result extends [boolean, TSchema][] = []> = (Arguments extends [infer ArgumentLeft extends TSchema, ...infer ArgumentRight extends TSchema[]] ? DistributionArray extends [infer BooleanLeft extends boolean, ...infer BooleanRight extends boolean[]] ? TZipDistributionArray<ArgumentRight, BooleanRight, [...Result, [BooleanLeft, ArgumentLeft]]> : Result : Result);
9
9
  type TExpand<Type extends TSchema> = (Type extends TUnion<infer Types extends TSchema[]> ? [...Types] : [Type]);
10
10
  type TAppend<Current extends TSchema[][], Type extends TSchema, Result extends TSchema[][] = []> = (Current extends [infer Left extends TSchema[], ...infer Right extends TSchema[][]] ? TAppend<Right, Type, [...Result, [...Left, Type]]> : Result);
11
11
  type TCross<Current extends TSchema[][], Variants extends TSchema[], Result extends TSchema[][] = []> = (Variants extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TCross<Current, Right, [...Result, ...TAppend<Current, Left>]> : Result);
12
12
  type TDistribute<ZippedArguments extends [boolean, TSchema][], Result extends TSchema[][] = [[]]> = (ZippedArguments extends [infer Left extends [boolean, TSchema], ...infer Right extends [boolean, TSchema][]] ? Left[0] extends true ? TDistribute<Right, TCross<Result, TExpand<Left[1]>>> : TDistribute<Right, TCross<Result, [Left[1]]>> : Result);
13
- export type TDistributeArguments<Parameters extends TParameter[], Arguments extends TSchema[], Expression extends TSchema, DistributionNames extends string[] = TCollectDistributionNames<Expression>, DistributionArray extends boolean[] = TBuildDistributionArray<Parameters, DistributionNames>, ZippedArguments extends [boolean, TSchema][] = TZipDistributionArray<Arguments, DistributionArray>, Result extends TSchema[][] = Expression extends TDeferred<'Conditional', TSchema[]> ? TDistribute<ZippedArguments> : [Arguments]> = Result;
13
+ export type TDistributeArguments<Parameters extends TParameter[], Arguments extends TSchema[], Expression extends TSchema, DistributionNames extends string[] = TCollectDistributionNames<Expression>, DistributionArray extends boolean[] = TBuildDistributionArray<Parameters, DistributionNames>, ZippedArguments extends [boolean, TSchema][] = TZipDistributionArray<Arguments, DistributionArray>, Result extends TSchema[][] = (Expression extends TDeferred<'Conditional', TSchema[]> ? TDistribute<ZippedArguments> : Expression extends TDeferred<'Mapped', TSchema[]> ? TDistribute<ZippedArguments> : [Arguments])> = Result;
14
14
  export declare function DistributeArguments<Parameters extends TParameter[], Arguments extends TSchema[], Expression extends TSchema>(parameters: [...Parameters], arguments_: [...Arguments], expression: Expression): TDistributeArguments<Parameters, Arguments, Expression>;
15
15
  export {};
@@ -4,11 +4,16 @@ import { IsUnion } from '../../types/union.mjs';
4
4
  import { IsDeferred } from '../../types/deferred.mjs';
5
5
  import { IsRef } from '../../types/ref.mjs';
6
6
  function CollectDistributionNames(expression, result = []) {
7
- return (IsDeferred(expression) && Guard.IsEqual(expression.action, 'Conditional')
7
+ return (
8
+ // Conditional
9
+ IsDeferred(expression) && Guard.IsEqual(expression.action, 'Conditional')
8
10
  ? IsRef(expression.parameters[0])
9
11
  ? CollectDistributionNames(expression.parameters[2], CollectDistributionNames(expression.parameters[3], [...result, expression.parameters[0].$ref]))
10
12
  : CollectDistributionNames(expression.parameters[2], CollectDistributionNames(expression.parameters[3], result))
11
- : result);
13
+ // Mapped
14
+ : IsDeferred(expression) && Guard.IsEqual(expression.action, 'Mapped')
15
+ ? (IsDeferred(expression.parameters[1]) && Guard.IsEqual(expression.parameters[1].action, 'KeyOf') && IsRef(expression.parameters[1].parameters[0]) ? [...result, expression.parameters[1].parameters[0]['$ref']] :
16
+ result) : result);
12
17
  }
13
18
  function BuildDistributionArray(parameters, names) {
14
19
  return parameters.reduce((result, left) => [...result, names.includes(left.name)], []);
@@ -48,5 +53,7 @@ export function DistributeArguments(parameters, arguments_, expression) {
48
53
  const zippedArguments = ZipDistributionArray(arguments_, distributionArray);
49
54
  return (IsDeferred(expression) && Guard.IsEqual(expression.action, 'Conditional')
50
55
  ? Distribute(zippedArguments)
51
- : [arguments_]);
56
+ : IsDeferred(expression) && Guard.IsEqual(expression.action, 'Mapped')
57
+ ? Distribute(zippedArguments)
58
+ : [arguments_]);
52
59
  }
@@ -31,7 +31,7 @@ function CallDistributed(context, state, target, parameters, expression, distrib
31
31
  function CallImmediate(context, state, target, parameters, expression, arguments_) {
32
32
  const distributedArguments = DistributeArguments(parameters, arguments_, expression);
33
33
  const returnTypes = CallDistributed(context, state, target, parameters, expression, distributedArguments);
34
- const result = returnTypes.length === 1 ? returnTypes[0] : EvaluateUnion(returnTypes);
34
+ const result = Guard.IsEqual(returnTypes.length, 1) ? returnTypes[0] : EvaluateUnion(returnTypes);
35
35
  return result;
36
36
  }
37
37
  export function CallInstantiate(context, state, target, arguments_) {
@@ -4,25 +4,22 @@ import { type TLiteral } from '../../types/literal.mjs';
4
4
  import { type TObject } from '../../types/object.mjs';
5
5
  import { type TProperties } from '../../types/properties.mjs';
6
6
  import { type TIdentifier } from '../../types/identifier.mjs';
7
- import { type TMappedKeys } from './mapped-keys.mjs';
8
7
  import { type TTemplateLiteral } from '../../types/template-literal.mjs';
9
8
  import { type TMappedDeferred } from '../../action/mapped.mjs';
10
9
  import { type TTemplateLiteralDecode } from '../template-literal/decode.mjs';
11
10
  import { type TState, type TInstantiateType, type TCanInstantiate } from '../instantiate.mjs';
12
- type TInstantiateKeyAs<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Key extends TSchema, As extends TSchema, ContextWithKey extends TProperties = Memory.TAssign<Context, {
13
- [_ in Identifier['name']]: Key;
14
- }>, InstantiatedKeyAs extends TSchema = TInstantiateType<ContextWithKey, State, As>, Result extends TSchema = InstantiatedKeyAs extends TTemplateLiteral<infer Pattern extends string> ? TTemplateLiteralDecode<Pattern> : InstantiatedKeyAs> = Result;
15
- type TInstantiateProperty<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Key extends TSchema, Property extends TSchema, ContextWithKey extends TProperties = Memory.TAssign<Context, {
16
- [_ in Identifier['name']]: Key;
17
- }>, InstantiatedProperty extends TSchema = TInstantiateType<ContextWithKey, State, Property>> = InstantiatedProperty;
18
- type TMappedProperty<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Key extends TSchema, As extends TSchema, Property extends TSchema, InstantiatedProperty extends TSchema = TInstantiateProperty<Context, State, Identifier, Key, Property>, InstantiatedKeyAs extends TSchema = TInstantiateKeyAs<Context, State, Identifier, Key, As>, Result extends TProperties = (InstantiatedKeyAs extends TLiteral<string | number> ? {
19
- [_ in InstantiatedKeyAs['const']]: InstantiatedProperty;
20
- } : {})> = Result;
21
- type TMappedProperties<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Keys extends TSchema[], As extends TSchema, Type extends TSchema, Result extends TProperties = {}> = (Keys extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TMappedProperties<Context, State, Identifier, Right, As, Type, Result & TMappedProperty<Context, State, Identifier, Left, As, Type>> : Result);
22
- type TMappedAction<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Key extends TSchema, As extends TSchema, Property extends TSchema, Keys extends TSchema[] = TMappedKeys<Key>, Mapped extends TProperties = TMappedProperties<Context, State, Identifier, Keys, As, Property>, Result extends TSchema = TObject<{
23
- [Key in keyof Mapped]: Mapped[Key];
24
- }>> = Result;
25
- type TMappedImmediate<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Key extends TSchema, As extends TSchema, Property extends TSchema, InstantiatedKey extends TSchema = TInstantiateType<Context, State, Key>> = TMappedAction<Context, State, Identifier, InstantiatedKey, As, Property>;
26
- export type TMappedInstantiate<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Key extends TSchema, As extends TSchema, Property extends TSchema> = TCanInstantiate<Context, [Key]> extends true ? TMappedImmediate<Context, State, Identifier, Key, As, Property> : TMappedDeferred<Identifier, Key, As, Property>;
27
- export declare function MappedInstantiate<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Key extends TSchema, As extends TSchema, Property extends TSchema>(context: Context, state: State, identifier: Identifier, key: Key, as: As, property: Property, options: TSchemaOptions): TMappedInstantiate<Context, State, Identifier, Key, As, Property>;
11
+ import { type TMappedVariants } from './mapped-variants.mjs';
12
+ import { type TEvaluateIntersect } from '../evaluate/index.mjs';
13
+ type TCanonicalAs<InstantiatedAs extends TSchema, Result extends TSchema = InstantiatedAs extends TTemplateLiteral<infer Pattern extends string> ? TTemplateLiteralDecode<Pattern> : InstantiatedAs> = Result;
14
+ type TMappedVariant<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Variant extends TSchema, As extends TSchema, Property extends TSchema, VariantContext extends TProperties = Memory.TAssign<Context, {
15
+ [_ in Identifier['name']]: Variant;
16
+ }>, InstantiatedAs extends TSchema = TInstantiateType<VariantContext, State, As>, CanonicalAs extends TSchema = TCanonicalAs<InstantiatedAs>, InstantiatedProperty extends TSchema = TInstantiateType<VariantContext, State, Property>, Result extends TProperties = CanonicalAs extends TLiteral<string | number> ? {
17
+ [_ in CanonicalAs['const']]: InstantiatedProperty;
18
+ } : {}> = Result;
19
+ type TMappedProperties<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Variants extends TSchema[], As extends TSchema, Property extends TSchema, Result extends TProperties[] = []> = (Variants extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TMappedProperties<Context, State, Identifier, Right, As, Property, [...Result, TMappedVariant<Context, State, Identifier, Left, As, Property>]> : Result);
20
+ type TReduceProperties<Properties extends TProperties[], Result extends TSchema[] = []> = (Properties extends [infer Left extends TProperties, ...infer Right extends TProperties[]] ? TReduceProperties<Right, [...Result, TObject<Left>]> : Result);
21
+ type TMappedAction<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Type extends TSchema, As extends TSchema, Property extends TSchema, Variants extends TSchema[] = TMappedVariants<Type>, MappedProperties extends TProperties[] = TMappedProperties<Context, State, Identifier, Variants, As, Property>, MappedObjects extends TSchema[] = TReduceProperties<MappedProperties>, Result extends TSchema = TEvaluateIntersect<MappedObjects>> = Result;
22
+ type TMappedImmediate<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Type extends TSchema, As extends TSchema, Property extends TSchema, InstantiatedType extends TSchema = TInstantiateType<Context, State, Type>> = TMappedAction<Context, State, Identifier, InstantiatedType, As, Property>;
23
+ export type TMappedInstantiate<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Type extends TSchema, As extends TSchema, Property extends TSchema> = TCanInstantiate<Context, [Type]> extends true ? TMappedImmediate<Context, State, Identifier, Type, As, Property> : TMappedDeferred<Identifier, Type, As, Property>;
24
+ export declare function MappedInstantiate<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Type extends TSchema, As extends TSchema, Property extends TSchema>(context: Context, state: State, identifier: Identifier, type: Type, as: As, property: Property, options: TSchemaOptions): TMappedInstantiate<Context, State, Identifier, Type, As, Property>;
28
25
  export {};
@@ -2,46 +2,48 @@
2
2
  import { Memory } from '../../../system/memory/index.mjs';
3
3
  import { IsLiteralNumber, IsLiteralString } from '../../types/literal.mjs';
4
4
  import { Object } from '../../types/object.mjs';
5
- import { MappedKeys } from './mapped-keys.mjs';
6
5
  import { IsTemplateLiteral } from '../../types/template-literal.mjs';
7
6
  import { MappedDeferred } from '../../action/mapped.mjs';
8
7
  import { TemplateLiteralDecode } from '../template-literal/decode.mjs';
9
8
  import { InstantiateType, CanInstantiate } from '../instantiate.mjs';
10
- function InstantiateKeyAs(context, state, identifier, key, as) {
11
- const contextWithKey = Memory.Assign(context, { [identifier['name']]: key });
12
- const instantiatedKeyAs = InstantiateType(contextWithKey, state, as);
13
- const result = IsTemplateLiteral(instantiatedKeyAs) ? TemplateLiteralDecode(instantiatedKeyAs.pattern) : instantiatedKeyAs;
9
+ import { MappedVariants } from './mapped-variants.mjs';
10
+ import { EvaluateIntersect } from '../evaluate/index.mjs';
11
+ function CanonicalAs(instantiatedAs) {
12
+ const result = IsTemplateLiteral(instantiatedAs) ? TemplateLiteralDecode(instantiatedAs.pattern) : instantiatedAs;
14
13
  return result;
15
14
  }
16
- function InstantiateProperty(context, state, identifier, key, property) {
17
- const contextWithKey = Memory.Assign(context, { [identifier['name']]: key });
18
- const instantiatedProperty = InstantiateType(contextWithKey, state, property);
19
- return instantiatedProperty;
20
- }
21
- function MappedProperty(context, state, identifier, key, as, property) {
22
- const instantiatedProperty = InstantiateProperty(context, state, identifier, key, property);
23
- const instantiatedKeyAs = InstantiateKeyAs(context, state, identifier, key, as);
24
- return (IsLiteralString(instantiatedKeyAs) || IsLiteralNumber(instantiatedKeyAs)
25
- ? { [instantiatedKeyAs.const]: instantiatedProperty }
15
+ function MappedVariant(context, state, identifier, variant, as, property) {
16
+ const variantContext = Memory.Assign(context, { [identifier['name']]: variant });
17
+ const instantiatedAs = InstantiateType(variantContext, state, as);
18
+ const canonicalAs = CanonicalAs(instantiatedAs);
19
+ const instantiatedProperty = InstantiateType(variantContext, state, property);
20
+ return (IsLiteralNumber(canonicalAs) || IsLiteralString(canonicalAs)
21
+ ? { [canonicalAs.const]: instantiatedProperty }
26
22
  : {});
27
23
  }
28
- function MappedProperties(context, state, identifier, keys, as, type) {
29
- return keys.reduce((result, left) => {
30
- return { ...result, ...MappedProperty(context, state, identifier, left, as, type) };
31
- }, {});
24
+ function MappedProperties(context, state, identifier, variants, as, property) {
25
+ return variants.reduce((result, left) => {
26
+ return [...result, MappedVariant(context, state, identifier, left, as, property)];
27
+ }, []);
28
+ }
29
+ function MappedObjects(properties) {
30
+ return properties.reduce((result, left) => {
31
+ return [...result, Object(left)];
32
+ }, []);
32
33
  }
33
- function MappedAction(context, state, identifier, key, as, type) {
34
- const keys = MappedKeys(key);
35
- const mapped = MappedProperties(context, state, identifier, keys, as, type);
36
- const result = Object(mapped);
34
+ function MappedAction(context, state, identifier, type, as, property) {
35
+ const variants = MappedVariants(type);
36
+ const mappedProperties = MappedProperties(context, state, identifier, variants, as, property);
37
+ const mappedObjects = MappedObjects(mappedProperties);
38
+ const result = EvaluateIntersect(mappedObjects);
37
39
  return result;
38
40
  }
39
- function MappedImmediate(context, state, identifier, key, as, property, options) {
40
- const instantiatedKey = InstantiateType(context, state, key);
41
- return Memory.Update(MappedAction(context, state, identifier, instantiatedKey, as, property), {}, options);
41
+ function MappedImmediate(context, state, identifier, type, as, property, options) {
42
+ const instantiatedType = InstantiateType(context, state, type);
43
+ return Memory.Update(MappedAction(context, state, identifier, instantiatedType, as, property), {}, options);
42
44
  }
43
- export function MappedInstantiate(context, state, identifier, key, as, property, options) {
44
- return (CanInstantiate(context, [key])
45
- ? MappedImmediate(context, state, identifier, key, as, property, options)
46
- : MappedDeferred(identifier, key, as, property, options));
45
+ export function MappedInstantiate(context, state, identifier, type, as, property, options) {
46
+ return (CanInstantiate(context, [type])
47
+ ? MappedImmediate(context, state, identifier, type, as, property, options)
48
+ : MappedDeferred(identifier, type, as, property, options));
47
49
  }
@@ -5,10 +5,11 @@ import { type TTemplateLiteral } from '../../types/template-literal.mjs';
5
5
  import { type TUnion } from '../../types/union.mjs';
6
6
  import { type TEnumValuesToVariants } from '../enum/index.mjs';
7
7
  import { type TTemplateLiteralDecode } from '../template-literal/decode.mjs';
8
- type TFromTemplateLiteral<Pattern extends string, Decoded extends TSchema = TTemplateLiteralDecode<Pattern>, Result extends TSchema = TFromType<Decoded>> = Result;
8
+ type TFromTemplateLiteral<Pattern extends string, Decoded extends TSchema = TTemplateLiteralDecode<Pattern>, Result extends TSchema[] = TFromType<Decoded>> = Result;
9
9
  type TFromUnion<Types extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TFromUnion<Right, [...Result, ...TFromType<Left>]> : Result);
10
10
  type TFromType<Type extends TSchema, Result extends TSchema[] = (Type extends TEnum<infer Values extends TEnumValue[]> ? TFromUnion<TEnumValuesToVariants<Values>> : Type extends TLiteral<string | number> ? [Type] : Type extends TTemplateLiteral<infer Pattern extends string> ? TFromTemplateLiteral<Pattern> : Type extends TUnion<infer Types extends TSchema[]> ? TFromUnion<Types> : [
11
+ Type
11
12
  ])> = Result;
12
- export type TMappedKeys<Type extends TSchema, Result extends TSchema[] = TFromType<Type>> = Result;
13
- export declare function MappedKeys<Type extends TSchema>(type: Type): TMappedKeys<Type>;
13
+ export type TMappedVariants<Type extends TSchema, Result extends TSchema[] = TFromType<Type>> = Result;
14
+ export declare function MappedVariants<Type extends TSchema>(type: Type): TMappedVariants<Type>;
14
15
  export {};
@@ -20,10 +20,10 @@ function FromType(type) {
20
20
  IsLiteralString(type) || IsLiteralNumber(type) ? [type] :
21
21
  IsTemplateLiteral(type) ? FromTemplateLiteral(type.pattern) :
22
22
  IsUnion(type) ? FromUnion(type.anyOf) :
23
- []);
23
+ [type]);
24
24
  return result;
25
25
  }
26
- export function MappedKeys(type) {
26
+ export function MappedVariants(type) {
27
27
  const result = FromType(type);
28
28
  return result;
29
29
  }
@@ -274,7 +274,7 @@ export type TMappedOptionalMapping<Input extends [unknown, unknown] | [unknown]
274
274
  export declare function MappedOptionalMapping(input: [unknown, unknown] | [unknown] | []): unknown;
275
275
  export type TMappedAsMapping<Input extends [unknown, unknown] | []> = (Input extends ['as', infer Type extends T.TSchema] ? [Type] : []);
276
276
  export declare function MappedAsMapping(input: [unknown, unknown] | []): unknown;
277
- export type TMappedMapping<Input extends [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown]> = (Input extends ['{', infer Readonly extends TModifierOperation, '[', infer Key extends string, 'in', infer Union extends T.TSchema, infer As extends T.TSchema[], ']', infer Optional extends TModifierOperation, ':', infer Type extends T.TSchema, null, '}'] ? (As extends [infer As extends T.TSchema] ? C.TMappedDeferred<T.TIdentifier<Key>, Union, As, TApplyReadonly<Readonly, TApplyOptional<Optional, Type>>> : C.TMappedDeferred<T.TIdentifier<Key>, Union, T.TRef<Key>, TApplyReadonly<Readonly, TApplyOptional<Optional, Type>>>) : never);
277
+ export type TMappedMapping<Input extends [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown]> = (Input extends ['{', infer Readonly extends TModifierOperation, '[', infer Key extends string, 'in', infer Type extends T.TSchema, infer As extends T.TSchema[], ']', infer Optional extends TModifierOperation, ':', infer Property extends T.TSchema, null, '}'] ? (As extends [infer As extends T.TSchema] ? C.TMappedDeferred<T.TIdentifier<Key>, Type, As, TApplyReadonly<Readonly, TApplyOptional<Optional, Property>>> : C.TMappedDeferred<T.TIdentifier<Key>, Type, T.TRef<Key>, TApplyReadonly<Readonly, TApplyOptional<Optional, Property>>>) : never);
278
278
  export declare function MappedMapping(input: [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown]): unknown;
279
279
  export type TReferenceMapping<Input extends string, Result extends T.TSchema = T.TRef<Input>> = Result;
280
280
  export declare function ReferenceMapping(input: string): unknown;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "typebox",
3
3
  "description": "Json Schema Type Builder with Static Type Resolution for TypeScript",
4
- "version": "1.1.9",
4
+ "version": "1.1.10",
5
5
  "keywords": [
6
6
  "typescript",
7
7
  "jsonschema"