typia 4.0.9 → 4.0.10-dev.20230616

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 (58) hide show
  1. package/lib/factories/MetadataTagFactory.js +64 -20
  2. package/lib/factories/MetadataTagFactory.js.map +1 -1
  3. package/lib/factories/internal/metadata/explore_metadata.js +4 -2
  4. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  5. package/lib/factories/internal/metadata/iterate_metadata_collection.js +3 -3
  6. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  7. package/lib/factories/internal/metadata/iterate_metadata_resolve.js +9 -3
  8. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
  9. package/lib/factories/internal/metadata/iterate_metadata_sort.js +1 -1
  10. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  11. package/lib/metadata/IMetadata.d.ts +2 -1
  12. package/lib/metadata/IMetadataResolved.d.ts +5 -0
  13. package/lib/metadata/IMetadataResolved.js +3 -0
  14. package/lib/metadata/IMetadataResolved.js.map +1 -0
  15. package/lib/metadata/Metadata.d.ts +2 -1
  16. package/lib/metadata/Metadata.js +31 -24
  17. package/lib/metadata/Metadata.js.map +1 -1
  18. package/lib/metadata/MetadataArray.d.ts +4 -2
  19. package/lib/metadata/MetadataArray.js.map +1 -1
  20. package/lib/metadata/MetadataResolved.d.ts +12 -0
  21. package/lib/metadata/MetadataResolved.js +31 -0
  22. package/lib/metadata/MetadataResolved.js.map +1 -0
  23. package/lib/programmers/CloneProgrammer.js +1 -1
  24. package/lib/programmers/CloneProgrammer.js.map +1 -1
  25. package/lib/programmers/RandomProgrammer.js +1 -1
  26. package/lib/programmers/RandomProgrammer.js.map +1 -1
  27. package/lib/programmers/StringifyProgrammer.js +1 -1
  28. package/lib/programmers/StringifyProgrammer.js.map +1 -1
  29. package/lib/programmers/helpers/StringifyPredicator.js +1 -1
  30. package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
  31. package/lib/programmers/internal/application_resolved.d.ts +4 -0
  32. package/lib/programmers/internal/application_resolved.js +50 -0
  33. package/lib/programmers/internal/application_resolved.js.map +1 -0
  34. package/lib/programmers/internal/application_schema.js +28 -5
  35. package/lib/programmers/internal/application_schema.js.map +1 -1
  36. package/lib/transformers/features/miscellaneous/MetadataTransformer.js +1 -1
  37. package/lib/transformers/features/miscellaneous/MetadataTransformer.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/factories/MetadataTagFactory.ts +80 -25
  40. package/src/factories/internal/metadata/emend_metadata_atomics.ts +33 -33
  41. package/src/factories/internal/metadata/explore_metadata.ts +40 -37
  42. package/src/factories/internal/metadata/iterate_metadata.ts +85 -85
  43. package/src/factories/internal/metadata/iterate_metadata_collection.ts +3 -3
  44. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +49 -38
  45. package/src/factories/internal/metadata/iterate_metadata_sort.ts +2 -1
  46. package/src/factories/internal/metadata/iterate_metadata_union.ts +24 -24
  47. package/src/metadata/IMetadata.ts +2 -1
  48. package/src/metadata/IMetadataResolved.ts +6 -0
  49. package/src/metadata/Metadata.ts +17 -4
  50. package/src/metadata/MetadataArray.ts +4 -1
  51. package/src/metadata/MetadataResolved.ts +51 -0
  52. package/src/programmers/CloneProgrammer.ts +1 -1
  53. package/src/programmers/RandomProgrammer.ts +5 -1
  54. package/src/programmers/StringifyProgrammer.ts +983 -983
  55. package/src/programmers/helpers/StringifyPredicator.ts +1 -1
  56. package/src/programmers/internal/application_resolved.ts +55 -0
  57. package/src/programmers/internal/application_schema.ts +7 -6
  58. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +1 -1
@@ -12,6 +12,7 @@ import { MetadataArray } from "./MetadataArray";
12
12
  import { MetadataConstant } from "./MetadataConstant";
13
13
  import { MetadataObject } from "./MetadataObject";
14
14
  import { MetadataProperty } from "./MetadataProperty";
15
+ import { MetadataResolved } from "./MetadataResolved";
15
16
  import { MetadataTuple } from "./MetadataTuple";
16
17
 
17
18
  export class Metadata {
@@ -21,7 +22,7 @@ export class Metadata {
21
22
  public nullable: boolean;
22
23
  public functional: boolean;
23
24
 
24
- public resolved: Metadata | null;
25
+ public resolved: MetadataResolved | null;
25
26
  public atomics: Atomic.Literal[];
26
27
  public constants: MetadataConstant[];
27
28
  public templates: Metadata[][];
@@ -207,7 +208,9 @@ export class Metadata {
207
208
  templates: meta.templates.map((tpl) =>
208
209
  tpl.map((meta) => this._From(meta, dict)),
209
210
  ),
210
- resolved: meta.resolved ? this._From(meta.resolved, dict) : null,
211
+ resolved: meta.resolved
212
+ ? MetadataResolved._From(meta.resolved, dict)
213
+ : null,
211
214
 
212
215
  rest: meta.rest ? this._From(meta.rest, dict) : null,
213
216
  arrays: meta.arrays.map((id) => {
@@ -482,8 +485,18 @@ export namespace Metadata {
482
485
 
483
486
  resolved:
484
487
  x.resolved !== null && y.resolved !== null
485
- ? merge(x.resolved, y.resolved)
486
- : x.resolved || y.resolved,
488
+ ? //? merge(x.resolved, y.resolved)
489
+ MetadataResolved.create({
490
+ original: merge(
491
+ x.resolved.original,
492
+ y.resolved.original,
493
+ ),
494
+ returns: merge(
495
+ x.resolved.returns,
496
+ y.resolved.returns,
497
+ ),
498
+ })
499
+ : x.resolved ?? y.resolved,
487
500
  atomics: [...new Set([...x.atomics, ...y.atomics])],
488
501
  constants: [...x.constants],
489
502
  templates: x.templates.slice(),
@@ -11,7 +11,7 @@ export class MetadataArray {
11
11
  public readonly index: number | null;
12
12
 
13
13
  /**
14
- * @internal
14
+ * @hidden
15
15
  */
16
16
  private constructor(props: ClassProperties<MetadataArray>) {
17
17
  this.name = props.name;
@@ -36,6 +36,9 @@ export class MetadataArray {
36
36
  });
37
37
  }
38
38
 
39
+ /**
40
+ * @internal
41
+ */
39
42
  public static create(props: ClassProperties<MetadataArray>): MetadataArray {
40
43
  return new MetadataArray(props);
41
44
  }
@@ -0,0 +1,51 @@
1
+ import { ClassProperties } from "../typings/ClassProperties";
2
+
3
+ import { IMetadataDictionary } from "./IMetadataDictionary";
4
+ import { IMetadataResolved } from "./IMetadataResolved";
5
+ import { Metadata } from "./Metadata";
6
+
7
+ export class MetadataResolved {
8
+ public readonly original: Metadata;
9
+ public readonly returns: Metadata;
10
+
11
+ /**
12
+ * @hidden
13
+ */
14
+ private constructor(props: ClassProperties<MetadataResolved>) {
15
+ this.original = props.original;
16
+ this.returns = props.returns;
17
+ }
18
+
19
+ /**
20
+ * @internal
21
+ */
22
+ public static _From(
23
+ props: IMetadataResolved,
24
+ dict: IMetadataDictionary,
25
+ ): MetadataResolved {
26
+ return this.create({
27
+ original: Metadata._From(props.original, dict),
28
+ returns: Metadata._From(props.returns, dict),
29
+ });
30
+ }
31
+
32
+ /**
33
+ * @internal
34
+ */
35
+ public static create(
36
+ props: ClassProperties<MetadataResolved>,
37
+ ): MetadataResolved {
38
+ return new MetadataResolved(props);
39
+ }
40
+
41
+ public getName(): string {
42
+ return this.returns.getName();
43
+ }
44
+
45
+ public toJSON(): IMetadataResolved {
46
+ return {
47
+ original: this.original.toJSON(),
48
+ returns: this.returns.toJSON(),
49
+ };
50
+ }
51
+ }
@@ -153,7 +153,7 @@ export namespace CloneProgrammer {
153
153
  value: () =>
154
154
  decode_to_json(project)(config)(importer)(
155
155
  input,
156
- meta.resolved!,
156
+ meta.resolved!.returns,
157
157
  explore,
158
158
  ),
159
159
  });
@@ -263,7 +263,11 @@ export namespace RandomProgrammer {
263
263
  // INSTANCE TYPES
264
264
  if (meta.resolved)
265
265
  expressions.push(
266
- decode(importer)(explore)(meta.resolved, tags, comments),
266
+ decode(importer)(explore)(
267
+ meta.resolved.returns,
268
+ tags,
269
+ comments,
270
+ ),
267
271
  );
268
272
  for (const array of meta.arrays)
269
273
  expressions.push(