typia 13.2.0 → 14.0.0

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 (135) hide show
  1. package/lib/http.d.ts +3 -3
  2. package/lib/http.js.map +1 -1
  3. package/lib/http.mjs.map +1 -1
  4. package/lib/internal/_assertGuard.js +13 -3
  5. package/lib/internal/_assertGuard.js.map +1 -1
  6. package/lib/internal/_assertGuard.mjs +4 -2
  7. package/lib/internal/_assertGuard.mjs.map +1 -1
  8. package/lib/internal/_isFormatIdnHostname.js +5 -1
  9. package/lib/internal/_isFormatIdnHostname.js.map +1 -1
  10. package/lib/internal/_isFormatIdnHostname.mjs +1 -1
  11. package/lib/internal/_isFormatIdnHostname.mjs.map +1 -1
  12. package/lib/internal/_isFormatTime.js +19 -2
  13. package/lib/internal/_isFormatTime.js.map +1 -1
  14. package/lib/internal/_isFormatTime.mjs +9 -2
  15. package/lib/internal/_isFormatTime.mjs.map +1 -1
  16. package/lib/internal/_randomArray.js +37 -4
  17. package/lib/internal/_randomArray.js.map +1 -1
  18. package/lib/internal/_randomArray.mjs +16 -3
  19. package/lib/internal/_randomArray.mjs.map +1 -1
  20. package/lib/internal/_randomFormatByte.js +15 -12
  21. package/lib/internal/_randomFormatByte.js.map +1 -1
  22. package/lib/internal/_randomFormatByte.mjs +11 -10
  23. package/lib/internal/_randomFormatByte.mjs.map +1 -1
  24. package/lib/internal/_randomFormatDatetime.mjs +1 -1
  25. package/lib/internal/_randomFormatHostname.d.ts +2 -2
  26. package/lib/internal/_randomFormatHostname.js +2 -2
  27. package/lib/internal/_randomFormatHostname.mjs +2 -2
  28. package/lib/internal/_randomFormatHostname.mjs.map +1 -1
  29. package/lib/internal/_randomFormatIdnHostname.js +9 -10
  30. package/lib/internal/_randomFormatIdnHostname.js.map +1 -1
  31. package/lib/internal/_randomFormatIdnHostname.mjs +3 -4
  32. package/lib/internal/_randomFormatIdnHostname.mjs.map +1 -1
  33. package/lib/internal/_randomFormatRegex.js +4 -4
  34. package/lib/internal/_randomFormatRegex.js.map +1 -1
  35. package/lib/internal/_randomFormatRegex.mjs +1 -2
  36. package/lib/internal/_randomFormatRegex.mjs.map +1 -1
  37. package/lib/internal/_randomFormatTime.js +15 -10
  38. package/lib/internal/_randomFormatTime.js.map +1 -1
  39. package/lib/internal/_randomFormatTime.mjs +6 -3
  40. package/lib/internal/_randomFormatTime.mjs.map +1 -1
  41. package/lib/internal/_randomPattern.js +20 -3
  42. package/lib/internal/_randomPattern.js.map +1 -1
  43. package/lib/internal/_randomPattern.mjs +5 -1
  44. package/lib/internal/_randomPattern.mjs.map +1 -1
  45. package/lib/internal/_randomStringLength.js +9 -2
  46. package/lib/internal/_randomStringLength.js.map +1 -1
  47. package/lib/internal/_randomStringLength.mjs +3 -1
  48. package/lib/internal/_randomStringLength.mjs.map +1 -1
  49. package/lib/internal/private/__randomComposition.d.ts +8 -0
  50. package/lib/internal/private/__randomComposition.js +21 -1
  51. package/lib/internal/private/__randomComposition.js.map +1 -1
  52. package/lib/internal/private/__randomComposition.mjs +18 -1
  53. package/lib/internal/private/__randomComposition.mjs.map +1 -1
  54. package/lib/json.d.ts +2 -2
  55. package/lib/json.js.map +1 -1
  56. package/lib/json.mjs.map +1 -1
  57. package/lib/module.d.ts +28 -13
  58. package/lib/module.js.map +1 -1
  59. package/lib/module.mjs.map +1 -1
  60. package/lib/notations.d.ts +4 -4
  61. package/lib/notations.js.map +1 -1
  62. package/lib/notations.mjs.map +1 -1
  63. package/lib/plain.d.ts +3 -3
  64. package/lib/plain.js.map +1 -1
  65. package/lib/plain.mjs.map +1 -1
  66. package/lib/protobuf.d.ts +2 -2
  67. package/lib/protobuf.js.map +1 -1
  68. package/lib/protobuf.mjs.map +1 -1
  69. package/lib/transform.mjs +1 -1
  70. package/native/cmd/ttsc-typia/assert_guard_factory_contract_test.go +17 -4
  71. package/native/cmd/ttsc-typia/create_assert_error_factory_arity_test.go +309 -0
  72. package/native/cmd/ttsc-typia/dynamic_key_tags_transform_test.go +206 -0
  73. package/native/cmd/ttsc-typia/local_function_named_like_typia_operation_transform_test.go +185 -0
  74. package/native/cmd/ttsc-typia/notation_kebab_case_transform_test.go +2 -2
  75. package/native/cmd/ttsc-typia/project_catalog_transform_coverage_test.go +84 -85
  76. package/native/cmd/ttsc-typia/recursive_conditional_alias_name_transform_test.go +307 -0
  77. package/native/cmd/ttsc-typia/shadowed_typia_module_declaration_diagnostic_test.go +152 -0
  78. package/native/cmd/ttsc-typia/transform.go +2 -2
  79. package/native/cmd/ttsc-typia/transform_helpers_test.go +96 -18
  80. package/native/core/factories/FormatCheatSheet.go +2 -2
  81. package/native/core/factories/MetadataCommentTagFactory.go +91 -7
  82. package/native/core/factories/factory_utility_coverage_test.go +896 -907
  83. package/native/core/factories/internal/metadata/MetadataHelper.go +5 -28
  84. package/native/core/factories/metadata_comment_tag_factory_rejects_out_of_range_integer_test.go +124 -0
  85. package/native/core/programmers/AssertProgrammer.go +20 -6
  86. package/native/core/programmers/RandomProgrammer.go +78 -3
  87. package/native/core/programmers/ValidateProgrammer.go +21 -6
  88. package/native/core/programmers/helpers/RandomJoiner.go +8 -1
  89. package/native/core/programmers/iterate/check_dynamic_properties.go +177 -3
  90. package/native/core/programmers/iterate/check_object.go +12 -1
  91. package/native/core/schemas/metadata/MetadataCollection.go +47 -5
  92. package/native/transform/CallExpressionTransformer.go +167 -0
  93. package/package.json +3 -12
  94. package/src/http.ts +18 -4
  95. package/src/internal/_assertGuard.ts +13 -2
  96. package/src/internal/_isFormatIdnHostname.ts +5 -1
  97. package/src/internal/_isFormatTime.ts +19 -2
  98. package/src/internal/_randomArray.ts +42 -6
  99. package/src/internal/_randomFormatByte.ts +17 -12
  100. package/src/internal/_randomFormatHostname.ts +2 -2
  101. package/src/internal/_randomFormatIdnHostname.ts +8 -9
  102. package/src/internal/_randomFormatRegex.ts +4 -6
  103. package/src/internal/_randomFormatTime.ts +15 -10
  104. package/src/internal/_randomPattern.ts +18 -3
  105. package/src/internal/_randomStringLength.ts +9 -2
  106. package/src/internal/private/__randomComposition.ts +24 -0
  107. package/src/json.ts +16 -4
  108. package/src/module.ts +56 -22
  109. package/src/notations.ts +16 -4
  110. package/src/plain.ts +12 -3
  111. package/src/protobuf.ts +16 -4
  112. package/lib/executable/FileSystemIdentity.d.ts +0 -44
  113. package/lib/executable/FileSystemIdentity.js +0 -213
  114. package/lib/executable/FileSystemIdentity.js.map +0 -1
  115. package/lib/executable/FileSystemIdentity.mjs +0 -133
  116. package/lib/executable/FileSystemIdentity.mjs.map +0 -1
  117. package/lib/executable/TypiaGenerateWizard.d.ts +0 -9
  118. package/lib/executable/TypiaGenerateWizard.js +0 -852
  119. package/lib/executable/TypiaGenerateWizard.js.map +0 -1
  120. package/lib/executable/TypiaGenerateWizard.mjs +0 -618
  121. package/lib/executable/TypiaGenerateWizard.mjs.map +0 -1
  122. package/lib/executable/generate/ttsc.d.ts +0 -1
  123. package/lib/executable/generate/ttsc.js +0 -53
  124. package/lib/executable/generate/ttsc.js.map +0 -1
  125. package/lib/executable/generate/ttsc.mjs +0 -37
  126. package/lib/executable/generate/ttsc.mjs.map +0 -1
  127. package/lib/executable/typia.d.ts +0 -2
  128. package/lib/executable/typia.js +0 -84
  129. package/lib/executable/typia.js.map +0 -1
  130. package/lib/executable/typia.mjs +0 -60
  131. package/lib/executable/typia.mjs.map +0 -1
  132. package/src/executable/FileSystemIdentity.ts +0 -222
  133. package/src/executable/TypiaGenerateWizard.ts +0 -1133
  134. package/src/executable/generate/ttsc.ts +0 -70
  135. package/src/executable/typia.ts +0 -80
@@ -1,70 +0,0 @@
1
- import { spawnSync } from "node:child_process";
2
- import fs from "node:fs";
3
- import path from "node:path";
4
-
5
- const packageRoot = path.resolve(
6
- path.dirname(path.resolve(process.argv[1] ?? "")),
7
- "..",
8
- "..",
9
- "..",
10
- );
11
- const nativeProject = path.resolve(packageRoot, "native");
12
- const nativeEntrypoint = path.resolve(
13
- nativeProject,
14
- "cmd",
15
- "ttsc-typia",
16
- "main.go",
17
- );
18
- const command = process.platform === "win32" ? "go.exe" : "go";
19
- const invocationCwd = process.cwd();
20
- const argv = [...process.argv.slice(2)];
21
-
22
- if (
23
- process.env.TYPIA_TTSC_TRANSFORM_OUTPUT === "ts" &&
24
- argv[0] === "transform" &&
25
- !argv.some((value) => value === "--output" || value.startsWith("--output="))
26
- ) {
27
- argv.push("--output=ts");
28
- }
29
-
30
- if (
31
- argv.length > 0 &&
32
- needsCwd(argv[0]!) &&
33
- !argv.some((value) => value === "--cwd" || value.startsWith("--cwd="))
34
- ) {
35
- argv.push(`--cwd=${invocationCwd}`);
36
- }
37
-
38
- const hasSourceEntrypoint = fs.existsSync(nativeEntrypoint);
39
-
40
- if (!hasSourceEntrypoint) {
41
- process.stderr.write(
42
- "ttsc-typia: backend source is missing. Expected native/cmd/ttsc-typia/main.go inside the typia package.\n",
43
- );
44
- process.exitCode = 1;
45
- } else {
46
- const result = spawnSync(command, ["run", "./cmd/ttsc-typia", ...argv], {
47
- cwd: nativeProject,
48
- env: process.env,
49
- stdio: "inherit",
50
- windowsHide: true,
51
- });
52
- if (result.error) {
53
- process.stderr.write(
54
- `ttsc-typia: failed to launch source backend via ${command}: ${result.error.message}\n`,
55
- );
56
- process.exitCode = 1;
57
- } else {
58
- process.exitCode = result.status ?? 1;
59
- }
60
- }
61
-
62
- function needsCwd(commandName: string): boolean {
63
- return (
64
- commandName === "build" ||
65
- commandName === "check" ||
66
- commandName === "transform" ||
67
- commandName === "-p" ||
68
- commandName === "--project"
69
- );
70
- }
@@ -1,80 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire } from "node:module";
3
- import path from "node:path";
4
-
5
- const USAGE = `Wrong command has been detected. Use like below:
6
-
7
- npx typia generate [options] [files...]
8
-
9
- npx typia generate
10
- --input src/templates \\
11
- --output src/generated
12
-
13
- npx typia generate
14
- --output src/generated \\
15
- "src/**/*.typia.ts"
16
- `;
17
-
18
- const halt = (desc: string): never => {
19
- console.error(desc);
20
- process.exit(-1);
21
- };
22
-
23
- const loadTypeScript = (): void => {
24
- loadPackage(
25
- "typescript/package.json",
26
- `typescript has not been installed. Run "npm i -D ttsc typescript" before.`,
27
- );
28
- };
29
-
30
- const loadTtsc = (): void => {
31
- loadPackage(
32
- "ttsc/package.json",
33
- `ttsc has not been installed. Run "npm i -D ttsc typescript" before.`,
34
- );
35
- };
36
-
37
- const loadPackage = (request: string, desc: string): void => {
38
- // The ambient CJS `require` does not exist in the transcoded `.mjs`;
39
- // anchor explicit resolvers on the consuming project (cwd) first, then on
40
- // this executable's own location, mirroring the original lookup order.
41
- const resolvers: Array<() => string> = [
42
- () =>
43
- createRequire(path.join(process.cwd(), "package.json")).resolve(request),
44
- () => createRequire(path.resolve(process.argv[1] ?? "")).resolve(request),
45
- ];
46
- for (const resolve of resolvers) {
47
- try {
48
- resolve();
49
- return;
50
- } catch {}
51
- }
52
- halt(desc);
53
- };
54
-
55
- const isHelp = (args: string[]): boolean => {
56
- return args.some((arg) => arg === "--help" || arg === "-h");
57
- };
58
-
59
- const main = async (): Promise<void> => {
60
- try {
61
- await import("inquirer");
62
- await import("commander");
63
- } catch {
64
- halt(`typia has not been installed. Run "npm i typia" before.`);
65
- }
66
-
67
- const type: string | undefined = process.argv[2];
68
- if (type === "generate") {
69
- if (isHelp(process.argv.slice(3)) === false) {
70
- loadTtsc();
71
- loadTypeScript();
72
- }
73
- const { TypiaGenerateWizard } = await import("./TypiaGenerateWizard.js");
74
- await TypiaGenerateWizard.generate();
75
- } else halt(USAGE);
76
- };
77
- main().catch((exp) => {
78
- console.error(exp instanceof URIError ? exp.message : exp);
79
- process.exit(-1);
80
- });