typia 5.5.5 → 5.5.6-dev.20240320

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 (51) hide show
  1. package/lib/factories/MetadataCommentTagFactory.js +54 -0
  2. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  3. package/lib/factories/MetadataTypeTagFactory.js +20 -0
  4. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  5. package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +4 -0
  6. package/lib/factories/MetadataTypeTagSchemaFactory.js +84 -0
  7. package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -0
  8. package/lib/programmers/internal/application_array.js +5 -1
  9. package/lib/programmers/internal/application_array.js.map +1 -1
  10. package/lib/programmers/internal/application_boolean.js +12 -4
  11. package/lib/programmers/internal/application_boolean.js.map +1 -1
  12. package/lib/programmers/internal/application_string.js +5 -1
  13. package/lib/programmers/internal/application_string.js.map +1 -1
  14. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +1 -0
  15. package/lib/schemas/metadata/MetadataAtomic.js +2 -0
  16. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  17. package/lib/tags/Default.d.ts +3 -0
  18. package/lib/tags/ExclusiveMaximum.d.ts +4 -0
  19. package/lib/tags/ExclusiveMinimum.d.ts +4 -0
  20. package/lib/tags/Format.d.ts +3 -0
  21. package/lib/tags/MaxItems.d.ts +3 -0
  22. package/lib/tags/MaxLength.d.ts +3 -0
  23. package/lib/tags/Maximum.d.ts +3 -0
  24. package/lib/tags/MinItems.d.ts +3 -0
  25. package/lib/tags/MinLength.d.ts +3 -0
  26. package/lib/tags/Minimum.d.ts +3 -0
  27. package/lib/tags/MultipleOf.d.ts +3 -0
  28. package/lib/tags/Pattern.d.ts +3 -0
  29. package/lib/tags/TagBase.d.ts +6 -2
  30. package/package.json +1 -1
  31. package/src/factories/MetadataCommentTagFactory.ts +64 -9
  32. package/src/factories/MetadataTypeTagFactory.ts +20 -1
  33. package/src/factories/MetadataTypeTagSchemaFactory.ts +58 -0
  34. package/src/programmers/internal/application_array.ts +5 -1
  35. package/src/programmers/internal/application_boolean.ts +12 -3
  36. package/src/programmers/internal/application_string.ts +5 -1
  37. package/src/schemas/metadata/IMetadataTypeTag.ts +1 -0
  38. package/src/schemas/metadata/MetadataAtomic.ts +1 -0
  39. package/src/tags/Default.ts +7 -4
  40. package/src/tags/ExclusiveMaximum.ts +6 -0
  41. package/src/tags/ExclusiveMinimum.ts +6 -0
  42. package/src/tags/Format.ts +3 -0
  43. package/src/tags/MaxItems.ts +3 -0
  44. package/src/tags/MaxLength.ts +3 -0
  45. package/src/tags/Maximum.ts +5 -0
  46. package/src/tags/MinItems.ts +3 -0
  47. package/src/tags/MinLength.ts +3 -0
  48. package/src/tags/Minimum.ts +5 -0
  49. package/src/tags/MultipleOf.ts +5 -0
  50. package/src/tags/Pattern.ts +3 -0
  51. package/src/tags/TagBase.ts +9 -1
@@ -6,6 +6,11 @@ export type Minimum<Value extends number | bigint> = TagBase<{
6
6
  value: Value;
7
7
  validate: `${Numeric<Value>} <= $input`;
8
8
  exclusive: ["minimum", "exclusiveMinimum"];
9
+ schema: Value extends number
10
+ ? {
11
+ minimum: Value;
12
+ }
13
+ : undefined;
9
14
  }>;
10
15
 
11
16
  type Numeric<Value extends number | bigint> = Value extends number
@@ -8,6 +8,11 @@ export type MultipleOf<Value extends number | bigint> = TagBase<{
8
8
  ? Numeric<0n>
9
9
  : 0}`;
10
10
  exclusive: true;
11
+ schema: Value extends number
12
+ ? {
13
+ multipleOf: Value;
14
+ }
15
+ : undefined;
11
16
  }>;
12
17
 
13
18
  type Numeric<Value extends number | bigint> = Value extends number
@@ -6,4 +6,7 @@ export type Pattern<Value extends string> = TagBase<{
6
6
  value: Value;
7
7
  validate: `/${Value}/.test($input)`;
8
8
  exclusive: ["format", "pattern"];
9
+ schema: {
10
+ pattern: Value;
11
+ };
9
12
  }>;
@@ -1,4 +1,6 @@
1
- export type TagBase<Props extends TagBase.IProps<any, any, any, any, any>> = {
1
+ export type TagBase<
2
+ Props extends TagBase.IProps<any, any, any, any, any, any>,
3
+ > = {
2
4
  /**
3
5
  * This is a dummy property for compilation.
4
6
  *
@@ -17,6 +19,7 @@ export namespace TagBase {
17
19
  [key in Target]?: string;
18
20
  },
19
21
  Exclusive extends boolean | string[],
22
+ Schema extends object | undefined,
20
23
  > {
21
24
  /**
22
25
  * Target type.
@@ -64,5 +67,10 @@ export namespace TagBase {
64
67
  * @default false
65
68
  */
66
69
  exclusive?: Exclusive | string[];
70
+
71
+ /**
72
+ * Additional schema info assigned to the {@link IJsonSchema} object.
73
+ */
74
+ schema?: Schema;
67
75
  }
68
76
  }