@sinclair/typebox 0.34.14 → 0.34.16

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 (85) hide show
  1. package/build/cjs/syntax/index.d.ts +1 -1
  2. package/build/cjs/syntax/index.js +1 -1
  3. package/build/cjs/syntax/runtime.d.ts +38 -54
  4. package/build/cjs/syntax/runtime.js +60 -202
  5. package/build/cjs/syntax/static.d.ts +62 -148
  6. package/build/cjs/syntax/syntax.d.ts +33 -0
  7. package/build/cjs/syntax/syntax.js +37 -0
  8. package/build/cjs/type/constructor-parameters/constructor-parameters.d.ts +3 -3
  9. package/build/cjs/type/constructor-parameters/constructor-parameters.js +3 -1
  10. package/build/cjs/type/instance-type/instance-type.d.ts +5 -4
  11. package/build/cjs/type/instance-type/instance-type.js +3 -1
  12. package/build/cjs/type/parameters/parameters.d.ts +3 -3
  13. package/build/cjs/type/parameters/parameters.js +3 -1
  14. package/build/cjs/type/return-type/return-type.d.ts +5 -4
  15. package/build/cjs/type/return-type/return-type.js +3 -1
  16. package/build/cjs/type/type/javascript.d.ts +4 -4
  17. package/build/cjs/value/convert/convert.js +1 -1
  18. package/build/esm/syntax/index.d.mts +1 -1
  19. package/build/esm/syntax/index.mjs +1 -1
  20. package/build/esm/syntax/runtime.d.mts +38 -54
  21. package/build/esm/syntax/runtime.mjs +60 -202
  22. package/build/esm/syntax/static.d.mts +62 -148
  23. package/build/esm/syntax/syntax.d.mts +33 -0
  24. package/build/esm/syntax/syntax.mjs +30 -0
  25. package/build/esm/type/constructor-parameters/constructor-parameters.d.mts +3 -3
  26. package/build/esm/type/constructor-parameters/constructor-parameters.mjs +3 -1
  27. package/build/esm/type/instance-type/instance-type.d.mts +5 -4
  28. package/build/esm/type/instance-type/instance-type.mjs +3 -1
  29. package/build/esm/type/parameters/parameters.d.mts +3 -3
  30. package/build/esm/type/parameters/parameters.mjs +3 -1
  31. package/build/esm/type/return-type/return-type.d.mts +5 -4
  32. package/build/esm/type/return-type/return-type.mjs +3 -1
  33. package/build/esm/type/type/javascript.d.mts +4 -4
  34. package/build/esm/value/convert/convert.mjs +1 -1
  35. package/package.json +11 -1
  36. package/parser/package.json +4 -0
  37. package/readme.md +86 -161
  38. package/build/cjs/syntax/parse.d.ts +0 -15
  39. package/build/cjs/syntax/parse.js +0 -19
  40. package/build/esm/syntax/parse.d.mts +0 -15
  41. package/build/esm/syntax/parse.mjs +0 -14
  42. /package/build/cjs/{syntax/parsebox → parser}/index.d.ts +0 -0
  43. /package/build/cjs/{syntax/parsebox → parser}/index.js +0 -0
  44. /package/build/cjs/{syntax/parsebox → parser}/runtime/guard.d.ts +0 -0
  45. /package/build/cjs/{syntax/parsebox → parser}/runtime/guard.js +0 -0
  46. /package/build/cjs/{syntax/parsebox → parser}/runtime/index.d.ts +0 -0
  47. /package/build/cjs/{syntax/parsebox → parser}/runtime/index.js +0 -0
  48. /package/build/cjs/{syntax/parsebox → parser}/runtime/module.d.ts +0 -0
  49. /package/build/cjs/{syntax/parsebox → parser}/runtime/module.js +0 -0
  50. /package/build/cjs/{syntax/parsebox → parser}/runtime/parse.d.ts +0 -0
  51. /package/build/cjs/{syntax/parsebox → parser}/runtime/parse.js +0 -0
  52. /package/build/cjs/{syntax/parsebox → parser}/runtime/token.d.ts +0 -0
  53. /package/build/cjs/{syntax/parsebox → parser}/runtime/token.js +0 -0
  54. /package/build/cjs/{syntax/parsebox → parser}/runtime/types.d.ts +0 -0
  55. /package/build/cjs/{syntax/parsebox → parser}/runtime/types.js +0 -0
  56. /package/build/cjs/{syntax/parsebox → parser}/static/index.d.ts +0 -0
  57. /package/build/cjs/{syntax/parsebox → parser}/static/index.js +0 -0
  58. /package/build/cjs/{syntax/parsebox → parser}/static/parse.d.ts +0 -0
  59. /package/build/cjs/{syntax/parsebox → parser}/static/parse.js +0 -0
  60. /package/build/cjs/{syntax/parsebox → parser}/static/token.d.ts +0 -0
  61. /package/build/cjs/{syntax/parsebox → parser}/static/token.js +0 -0
  62. /package/build/cjs/{syntax/parsebox → parser}/static/types.d.ts +0 -0
  63. /package/build/cjs/{syntax/parsebox → parser}/static/types.js +0 -0
  64. /package/build/esm/{syntax/parsebox → parser}/index.d.mts +0 -0
  65. /package/build/esm/{syntax/parsebox → parser}/index.mjs +0 -0
  66. /package/build/esm/{syntax/parsebox → parser}/runtime/guard.d.mts +0 -0
  67. /package/build/esm/{syntax/parsebox → parser}/runtime/guard.mjs +0 -0
  68. /package/build/esm/{syntax/parsebox → parser}/runtime/index.d.mts +0 -0
  69. /package/build/esm/{syntax/parsebox → parser}/runtime/index.mjs +0 -0
  70. /package/build/esm/{syntax/parsebox → parser}/runtime/module.d.mts +0 -0
  71. /package/build/esm/{syntax/parsebox → parser}/runtime/module.mjs +0 -0
  72. /package/build/esm/{syntax/parsebox → parser}/runtime/parse.d.mts +0 -0
  73. /package/build/esm/{syntax/parsebox → parser}/runtime/parse.mjs +0 -0
  74. /package/build/esm/{syntax/parsebox → parser}/runtime/token.d.mts +0 -0
  75. /package/build/esm/{syntax/parsebox → parser}/runtime/token.mjs +0 -0
  76. /package/build/esm/{syntax/parsebox → parser}/runtime/types.d.mts +0 -0
  77. /package/build/esm/{syntax/parsebox → parser}/runtime/types.mjs +0 -0
  78. /package/build/esm/{syntax/parsebox → parser}/static/index.d.mts +0 -0
  79. /package/build/esm/{syntax/parsebox → parser}/static/index.mjs +0 -0
  80. /package/build/esm/{syntax/parsebox → parser}/static/parse.d.mts +0 -0
  81. /package/build/esm/{syntax/parsebox → parser}/static/parse.mjs +0 -0
  82. /package/build/esm/{syntax/parsebox → parser}/static/token.d.mts +0 -0
  83. /package/build/esm/{syntax/parsebox → parser}/static/token.mjs +0 -0
  84. /package/build/esm/{syntax/parsebox → parser}/static/types.d.mts +0 -0
  85. /package/build/esm/{syntax/parsebox → parser}/static/types.mjs +0 -0
@@ -1,5 +1,6 @@
1
- import type { SchemaOptions } from '../schema/index';
2
- import type { TFunction } from '../function/index';
3
- export type TReturnType<T extends TFunction> = T['returns'];
1
+ import { type TSchema, type SchemaOptions } from '../schema/index';
2
+ import { type TFunction } from '../function/index';
3
+ import { type TNever } from '../never/index';
4
+ export type TReturnType<Type extends TSchema, Result extends TSchema = Type extends TFunction<infer _Parameters extends TSchema[], infer ReturnType extends TSchema> ? ReturnType : TNever> = Result;
4
5
  /** `[JavaScript]` Extracts the ReturnType from the given Function type */
5
- export declare function ReturnType<T extends TFunction<any[], any>>(schema: T, options?: SchemaOptions): TReturnType<T>;
6
+ export declare function ReturnType<Type extends TSchema>(schema: Type, options?: SchemaOptions): TReturnType<Type>;
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.ReturnType = ReturnType;
5
5
  const type_1 = require("../create/type");
6
+ const index_1 = require("../never/index");
7
+ const KindGuard = require("../guard/kind");
6
8
  /** `[JavaScript]` Extracts the ReturnType from the given Function type */
7
9
  function ReturnType(schema, options) {
8
- return (0, type_1.CreateType)(schema.returns, options);
10
+ return (KindGuard.IsFunction(schema) ? (0, type_1.CreateType)(schema.returns, options) : (0, index_1.Never)(options));
9
11
  }
@@ -26,7 +26,7 @@ export declare class JavaScriptTypeBuilder extends JsonTypeBuilder {
26
26
  /** `[JavaScript]` Creates a BigInt type */
27
27
  BigInt(options?: BigIntOptions): TBigInt;
28
28
  /** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */
29
- ConstructorParameters<Type extends TConstructor>(schema: Type, options?: SchemaOptions): TConstructorParameters<Type>;
29
+ ConstructorParameters<Type extends TSchema>(schema: Type, options?: SchemaOptions): TConstructorParameters<Type>;
30
30
  /** `[JavaScript]` Creates a Constructor type */
31
31
  Constructor<Parameters extends TSchema[], InstanceType extends TSchema>(parameters: [...Parameters], instanceType: InstanceType, options?: SchemaOptions): TConstructor<Parameters, InstanceType>;
32
32
  /** `[JavaScript]` Creates a Date type */
@@ -34,11 +34,11 @@ export declare class JavaScriptTypeBuilder extends JsonTypeBuilder {
34
34
  /** `[JavaScript]` Creates a Function type */
35
35
  Function<Parameters extends TSchema[], ReturnType extends TSchema>(parameters: [...Parameters], returnType: ReturnType, options?: SchemaOptions): TFunction<Parameters, ReturnType>;
36
36
  /** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
37
- InstanceType<Type extends TConstructor>(schema: Type, options?: SchemaOptions): TInstanceType<Type>;
37
+ InstanceType<Type extends TSchema>(schema: Type, options?: SchemaOptions): TInstanceType<Type>;
38
38
  /** `[JavaScript]` Creates an Iterator type */
39
39
  Iterator<Type extends TSchema>(items: Type, options?: SchemaOptions): TIterator<Type>;
40
40
  /** `[JavaScript]` Extracts the Parameters from the given Function type */
41
- Parameters<Type extends TFunction>(schema: Type, options?: SchemaOptions): TParameters<Type>;
41
+ Parameters<Type extends TSchema>(schema: Type, options?: SchemaOptions): TParameters<Type>;
42
42
  /** `[JavaScript]` Creates a Promise type */
43
43
  Promise<Type extends TSchema>(item: Type, options?: SchemaOptions): TPromise<Type>;
44
44
  /** `[JavaScript]` Creates a RegExp type */
@@ -46,7 +46,7 @@ export declare class JavaScriptTypeBuilder extends JsonTypeBuilder {
46
46
  /** `[JavaScript]` Creates a RegExp type */
47
47
  RegExp(regex: RegExp, options?: RegExpOptions): TRegExp;
48
48
  /** `[JavaScript]` Extracts the ReturnType from the given Function type */
49
- ReturnType<Type extends TFunction>(type: Type, options?: SchemaOptions): TReturnType<Type>;
49
+ ReturnType<Type extends TSchema>(type: Type, options?: SchemaOptions): TReturnType<Type>;
50
50
  /** `[JavaScript]` Creates a Symbol type */
51
51
  Symbol(options?: SchemaOptions): TSymbol;
52
52
  /** `[JavaScript]` Creates a Undefined type */
@@ -76,7 +76,7 @@ function TryConvertNumber(value) {
76
76
  return IsStringNumeric(value) ? parseFloat(value) : IsValueTrue(value) ? 1 : IsValueFalse(value) ? 0 : value;
77
77
  }
78
78
  function TryConvertInteger(value) {
79
- return IsStringNumeric(value) ? parseInt(value) : (0, index_5.IsNumber)(value) ? value | 0 : IsValueTrue(value) ? 1 : IsValueFalse(value) ? 0 : value;
79
+ return IsStringNumeric(value) ? parseInt(value) : (0, index_5.IsNumber)(value) ? Math.trunc(value) : IsValueTrue(value) ? 1 : IsValueFalse(value) ? 0 : value;
80
80
  }
81
81
  function TryConvertNull(value) {
82
82
  return (0, index_5.IsString)(value) && value.toLowerCase() === 'null' ? null : value;
@@ -1 +1 @@
1
- export * from './parse.mjs';
1
+ export * from './syntax.mjs';
@@ -1 +1 @@
1
- export * from './parse.mjs';
1
+ export * from './syntax.mjs';
@@ -1,71 +1,55 @@
1
- import { Runtime } from './parsebox/index.mjs';
2
- import * as Types from '../type/index.mjs';
1
+ import { Runtime } from '../parser/index.mjs';
2
+ import * as t from '../type/index.mjs';
3
3
  export declare const Module: Runtime.Module<{
4
- ExportModifier: Runtime.IUnion<boolean>;
5
- HeritageList: Runtime.IUnion<Types.TSchema[]>;
6
- Heritage: Runtime.IUnion<unknown[]>;
7
- InterfaceDeclaration: Runtime.ITuple<{
8
- [x: string]: Types.TIntersect<[...Types.TRef<string>[], Types.TObject<Types.TProperties>]>;
9
- }>;
10
- TypeAliasDeclaration: Runtime.ITuple<{
11
- [x: string]: Types.TSchema;
12
- }>;
13
- ModuleType: Runtime.IUnion<unknown>;
14
- ModuleProperties: Runtime.IUnion<Types.TProperties>;
15
- ModuleDeclaration: Runtime.ITuple<Types.TModule<Types.TProperties, {
16
- [x: string]: Types.TSchema;
17
- [x: number]: Types.TSchema;
18
- }>>;
19
- Literal: Runtime.IUnion<Types.TLiteral<string> | Types.TLiteral<number> | Types.TLiteral<boolean>>;
20
- Keyword: Runtime.IUnion<Types.TAny | Types.TNever | Types.TString | Types.TBoolean | Types.TNumber | Types.TInteger | Types.TBigInt | Types.TNull | Types.TSymbol | Types.TUndefined | Types.TUnknown | Types.TVoid>;
4
+ Literal: Runtime.IUnion<t.TLiteral<string> | t.TLiteral<number> | t.TLiteral<boolean>>;
5
+ Keyword: Runtime.IUnion<t.TAny | t.TNever | t.TString | t.TBoolean | t.TNumber | t.TInteger | t.TBigInt | t.TNull | t.TSymbol | t.TUndefined | t.TUnknown | t.TVoid>;
21
6
  KeyOf: Runtime.IUnion<boolean>;
22
7
  IndexArray: Runtime.IUnion<unknown[]>;
23
8
  Extends: Runtime.IUnion<unknown[]>;
24
9
  Base: Runtime.IUnion<unknown>;
25
- Factor: Runtime.ITuple<Types.TSchema>;
10
+ Factor: Runtime.ITuple<t.TSchema>;
26
11
  ExprTermTail: Runtime.IUnion<[] | ["&", unknown, unknown]>;
27
- ExprTerm: Runtime.ITuple<Types.TSchema>;
12
+ ExprTerm: Runtime.ITuple<t.TSchema>;
28
13
  ExprTail: Runtime.IUnion<[] | ["|", unknown, unknown]>;
29
- Expr: Runtime.ITuple<Types.TSchema>;
14
+ Expr: Runtime.ITuple<t.TSchema>;
30
15
  Type: Runtime.IRef<unknown>;
31
16
  PropertyKey: Runtime.IUnion<string>;
32
17
  Readonly: Runtime.IUnion<boolean>;
33
18
  Optional: Runtime.IUnion<boolean>;
34
19
  Property: Runtime.ITuple<{
35
- [x: string]: Types.TSchema;
20
+ [x: string]: t.TSchema;
36
21
  }>;
37
22
  PropertyDelimiter: Runtime.IUnion<[","] | [",", "\n"] | [";"] | [";", "\n"] | ["\n"]>;
38
- Properties: Runtime.IUnion<Types.TProperties>;
39
- Object: Runtime.ITuple<Types.TObject<Types.TProperties>>;
23
+ Properties: Runtime.IUnion<t.TProperties>;
24
+ Object: Runtime.ITuple<t.TObject<t.TProperties>>;
40
25
  Elements: Runtime.IUnion<unknown[]>;
41
- Tuple: Runtime.ITuple<Types.TTuple<Types.TSchema[]>>;
42
- Parameter: Runtime.ITuple<Types.TSchema>;
43
- Function: Runtime.ITuple<Types.TFunction<Types.TSchema[], Types.TSchema>>;
26
+ Tuple: Runtime.ITuple<t.TTuple<t.TSchema[]>>;
27
+ Parameter: Runtime.ITuple<t.TSchema>;
28
+ Function: Runtime.ITuple<t.TFunction<t.TSchema[], t.TSchema>>;
44
29
  Parameters: Runtime.IUnion<unknown[]>;
45
- Constructor: Runtime.ITuple<Types.TConstructor<Types.TSchema[], Types.TSchema>>;
46
- Mapped: Runtime.ITuple<Types.TLiteral<"Mapped types not supported">>;
47
- AsyncIterator: Runtime.ITuple<Types.TAsyncIterator<Types.TSchema>>;
48
- Iterator: Runtime.ITuple<Types.TIterator<Types.TSchema>>;
49
- Awaited: Runtime.ITuple<Types.TSchema>;
50
- Array: Runtime.ITuple<Types.TArray<Types.TSchema>>;
51
- Record: Runtime.ITuple<Types.TNever>;
52
- Promise: Runtime.ITuple<Types.TPromise<Types.TSchema>>;
53
- ConstructorParameters: Runtime.ITuple<Types.TTuple<Types.TSchema[]>>;
54
- FunctionParameters: Runtime.ITuple<Types.TTuple<Types.TSchema[]>>;
55
- InstanceType: Runtime.ITuple<Types.TSchema>;
56
- ReturnType: Runtime.ITuple<Types.TSchema>;
57
- Partial: Runtime.ITuple<Types.TObject<{}>>;
58
- Required: Runtime.ITuple<Types.TObject<{}>>;
59
- Pick: Runtime.ITuple<Types.TObject<{}>>;
60
- Omit: Runtime.ITuple<Types.TObject<{}>>;
61
- Exclude: Runtime.ITuple<Types.TNever>;
62
- Extract: Runtime.ITuple<Types.TSchema>;
63
- Uppercase: Runtime.ITuple<Types.TSchema>;
64
- Lowercase: Runtime.ITuple<Types.TSchema>;
65
- Capitalize: Runtime.ITuple<Types.TSchema>;
66
- Uncapitalize: Runtime.ITuple<Types.TSchema>;
67
- Date: Runtime.IConst<Types.TDate>;
68
- Uint8Array: Runtime.IConst<Types.TUint8Array>;
69
- Reference: Runtime.IIdent<Types.TSchema>;
70
- Main: Runtime.IUnion<unknown>;
30
+ Constructor: Runtime.ITuple<t.TConstructor<t.TSchema[], t.TSchema>>;
31
+ Mapped: Runtime.ITuple<t.TLiteral<"Mapped types not supported">>;
32
+ AsyncIterator: Runtime.ITuple<t.TAsyncIterator<t.TSchema>>;
33
+ Iterator: Runtime.ITuple<t.TIterator<t.TSchema>>;
34
+ Awaited: Runtime.ITuple<t.TSchema>;
35
+ Array: Runtime.ITuple<t.TArray<t.TSchema>>;
36
+ Record: Runtime.ITuple<t.TNever>;
37
+ Promise: Runtime.ITuple<t.TPromise<t.TSchema>>;
38
+ ConstructorParameters: Runtime.ITuple<t.TTuple<t.TSchema[]>>;
39
+ FunctionParameters: Runtime.ITuple<t.TTuple<t.TSchema[]>>;
40
+ InstanceType: Runtime.ITuple<t.TSchema>;
41
+ ReturnType: Runtime.ITuple<t.TSchema>;
42
+ Partial: Runtime.ITuple<t.TObject<{}>>;
43
+ Required: Runtime.ITuple<t.TObject<{}>>;
44
+ Pick: Runtime.ITuple<t.TObject<{}>>;
45
+ Omit: Runtime.ITuple<t.TObject<{}>>;
46
+ Exclude: Runtime.ITuple<t.TNever>;
47
+ Extract: Runtime.ITuple<t.TSchema>;
48
+ Uppercase: Runtime.ITuple<t.TSchema>;
49
+ Lowercase: Runtime.ITuple<t.TSchema>;
50
+ Capitalize: Runtime.ITuple<t.TSchema>;
51
+ Uncapitalize: Runtime.ITuple<t.TSchema>;
52
+ Date: Runtime.IConst<t.TDate>;
53
+ Uint8Array: Runtime.IConst<t.TUint8Array>;
54
+ Reference: Runtime.IIdent<t.TSchema>;
71
55
  }>;