typia 13.0.0-dev.20260507 → 13.0.0-dev.20260510

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 (124) hide show
  1. package/lib/executable/TypiaGenerateWizard.js +54 -45
  2. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  3. package/lib/executable/TypiaGenerateWizard2.mjs +64 -55
  4. package/lib/executable/TypiaGenerateWizard2.mjs.map +1 -1
  5. package/lib/executable/typia.d.ts +1 -1
  6. package/lib/executable/typia.js +1 -14
  7. package/lib/executable/typia.js.map +1 -1
  8. package/lib/executable/typia2.mjs +1 -16
  9. package/lib/executable/typia2.mjs.map +1 -1
  10. package/native/adapter/adapter.go +3 -3
  11. package/native/go.mod +0 -4
  12. package/native/internal/printer/printer.go +229 -0
  13. package/package.json +11 -8
  14. package/src/executable/TypiaGenerateWizard.ts +25 -23
  15. package/src/executable/typia.ts +1 -13
  16. package/lib/_virtual/ArgumentParser.mjs +0 -4
  17. package/lib/_virtual/ArgumentParser.mjs.map +0 -1
  18. package/lib/_virtual/CommandExecutor.mjs +0 -4
  19. package/lib/_virtual/CommandExecutor.mjs.map +0 -1
  20. package/lib/_virtual/FileRetriever.mjs +0 -4
  21. package/lib/_virtual/FileRetriever.mjs.map +0 -1
  22. package/lib/_virtual/PackageManager.mjs +0 -4
  23. package/lib/_virtual/PackageManager.mjs.map +0 -1
  24. package/lib/_virtual/PluginConfigurator.mjs +0 -4
  25. package/lib/_virtual/PluginConfigurator.mjs.map +0 -1
  26. package/lib/_virtual/TypiaSetupWizard.mjs +0 -4
  27. package/lib/_virtual/TypiaSetupWizard.mjs.map +0 -1
  28. package/lib/executable/TypiaSetupWizard.d.ts +0 -7
  29. package/lib/executable/TypiaSetupWizard.js +0 -133
  30. package/lib/executable/TypiaSetupWizard.js.map +0 -1
  31. package/lib/executable/TypiaSetupWizard.mjs +0 -3
  32. package/lib/executable/TypiaSetupWizard.mjs.map +0 -1
  33. package/lib/executable/TypiaSetupWizard2.mjs +0 -144
  34. package/lib/executable/TypiaSetupWizard2.mjs.map +0 -1
  35. package/lib/executable/setup/ArgumentParser.d.ts +0 -7
  36. package/lib/executable/setup/ArgumentParser.js +0 -36
  37. package/lib/executable/setup/ArgumentParser.js.map +0 -1
  38. package/lib/executable/setup/ArgumentParser.mjs +0 -3
  39. package/lib/executable/setup/ArgumentParser.mjs.map +0 -1
  40. package/lib/executable/setup/ArgumentParser2.mjs +0 -41
  41. package/lib/executable/setup/ArgumentParser2.mjs.map +0 -1
  42. package/lib/executable/setup/CommandExecutor.d.ts +0 -3
  43. package/lib/executable/setup/CommandExecutor.js +0 -15
  44. package/lib/executable/setup/CommandExecutor.js.map +0 -1
  45. package/lib/executable/setup/CommandExecutor.mjs +0 -3
  46. package/lib/executable/setup/CommandExecutor.mjs.map +0 -1
  47. package/lib/executable/setup/CommandExecutor2.mjs +0 -19
  48. package/lib/executable/setup/CommandExecutor2.mjs.map +0 -1
  49. package/lib/executable/setup/FileRetriever.d.ts +0 -7
  50. package/lib/executable/setup/FileRetriever.js +0 -25
  51. package/lib/executable/setup/FileRetriever.js.map +0 -1
  52. package/lib/executable/setup/FileRetriever.mjs +0 -3
  53. package/lib/executable/setup/FileRetriever.mjs.map +0 -1
  54. package/lib/executable/setup/FileRetriever2.mjs +0 -30
  55. package/lib/executable/setup/FileRetriever2.mjs.map +0 -1
  56. package/lib/executable/setup/PackageManager.d.ts +0 -24
  57. package/lib/executable/setup/PackageManager.js +0 -79
  58. package/lib/executable/setup/PackageManager.js.map +0 -1
  59. package/lib/executable/setup/PackageManager.mjs +0 -3
  60. package/lib/executable/setup/PackageManager.mjs.map +0 -1
  61. package/lib/executable/setup/PackageManager2.mjs +0 -88
  62. package/lib/executable/setup/PackageManager2.mjs.map +0 -1
  63. package/lib/executable/setup/PluginConfigurator.d.ts +0 -4
  64. package/lib/executable/setup/PluginConfigurator.js +0 -60
  65. package/lib/executable/setup/PluginConfigurator.js.map +0 -1
  66. package/lib/executable/setup/PluginConfigurator.mjs +0 -3
  67. package/lib/executable/setup/PluginConfigurator.mjs.map +0 -1
  68. package/lib/executable/setup/PluginConfigurator2.mjs +0 -65
  69. package/lib/executable/setup/PluginConfigurator2.mjs.map +0 -1
  70. package/native/go.work +0 -20
  71. package/native/go.work.sum +0 -11
  72. package/native/shim/printer/go.mod +0 -5
  73. package/native/shim/printer/shim.go +0 -249
  74. package/native/third_party/ttsc/driver/host.go +0 -31
  75. package/native/third_party/ttsc/driver/program.go +0 -466
  76. package/native/third_party/ttsc/driver/rewrite.go +0 -341
  77. package/native/third_party/ttsc/go.mod +0 -48
  78. package/native/third_party/ttsc/go.sum +0 -22
  79. package/native/third_party/ttsc/shim/ast/extra-shim.json +0 -4
  80. package/native/third_party/ttsc/shim/ast/go.mod +0 -5
  81. package/native/third_party/ttsc/shim/ast/lint.go +0 -331
  82. package/native/third_party/ttsc/shim/ast/shim.go +0 -210
  83. package/native/third_party/ttsc/shim/bundled/extra-shim.json +0 -1
  84. package/native/third_party/ttsc/shim/bundled/go.mod +0 -5
  85. package/native/third_party/ttsc/shim/bundled/shim.go +0 -23
  86. package/native/third_party/ttsc/shim/checker/extra-shim.json +0 -31
  87. package/native/third_party/ttsc/shim/checker/go.mod +0 -5
  88. package/native/third_party/ttsc/shim/checker/shim.go +0 -166
  89. package/native/third_party/ttsc/shim/compiler/extra-shim.json +0 -4
  90. package/native/third_party/ttsc/shim/compiler/go.mod +0 -5
  91. package/native/third_party/ttsc/shim/compiler/shim.go +0 -65
  92. package/native/third_party/ttsc/shim/core/extra-shim.json +0 -4
  93. package/native/third_party/ttsc/shim/core/go.mod +0 -5
  94. package/native/third_party/ttsc/shim/core/shim.go +0 -29
  95. package/native/third_party/ttsc/shim/diagnosticwriter/go.mod +0 -5
  96. package/native/third_party/ttsc/shim/diagnosticwriter/lint.go +0 -137
  97. package/native/third_party/ttsc/shim/diagnosticwriter/shim.go +0 -29
  98. package/native/third_party/ttsc/shim/parser/extra-shim.json +0 -4
  99. package/native/third_party/ttsc/shim/parser/go.mod +0 -5
  100. package/native/third_party/ttsc/shim/parser/shim.go +0 -61
  101. package/native/third_party/ttsc/shim/scanner/extra-shim.json +0 -4
  102. package/native/third_party/ttsc/shim/scanner/go.mod +0 -5
  103. package/native/third_party/ttsc/shim/scanner/shim.go +0 -134
  104. package/native/third_party/ttsc/shim/tsoptions/extra-shim.json +0 -4
  105. package/native/third_party/ttsc/shim/tsoptions/go.mod +0 -5
  106. package/native/third_party/ttsc/shim/tsoptions/shim.go +0 -173
  107. package/native/third_party/ttsc/shim/tspath/extra-shim.json +0 -4
  108. package/native/third_party/ttsc/shim/tspath/go.mod +0 -5
  109. package/native/third_party/ttsc/shim/tspath/shim.go +0 -236
  110. package/native/third_party/ttsc/shim/vfs/cachedvfs/extra-shim.json +0 -4
  111. package/native/third_party/ttsc/shim/vfs/cachedvfs/go.mod +0 -5
  112. package/native/third_party/ttsc/shim/vfs/cachedvfs/shim.go +0 -12
  113. package/native/third_party/ttsc/shim/vfs/extra-shim.json +0 -4
  114. package/native/third_party/ttsc/shim/vfs/go.mod +0 -5
  115. package/native/third_party/ttsc/shim/vfs/osvfs/extra-shim.json +0 -4
  116. package/native/third_party/ttsc/shim/vfs/osvfs/go.mod +0 -5
  117. package/native/third_party/ttsc/shim/vfs/osvfs/shim.go +0 -13
  118. package/native/third_party/ttsc/shim/vfs/shim.go +0 -22
  119. package/src/executable/TypiaSetupWizard.ts +0 -167
  120. package/src/executable/setup/ArgumentParser.ts +0 -42
  121. package/src/executable/setup/CommandExecutor.ts +0 -8
  122. package/src/executable/setup/FileRetriever.ts +0 -19
  123. package/src/executable/setup/PackageManager.ts +0 -87
  124. package/src/executable/setup/PluginConfigurator.ts +0 -65
package/native/go.mod CHANGED
@@ -2,10 +2,6 @@ module github.com/samchon/typia/packages/typia/native
2
2
 
3
3
  go 1.26
4
4
 
5
- replace github.com/microsoft/typescript-go/shim/printer => ./shim/printer
6
-
7
- replace github.com/samchon/ttsc/packages/ttsc => ./third_party/ttsc
8
-
9
5
  require (
10
6
  github.com/microsoft/typescript-go/shim/ast v0.0.0
11
7
  github.com/microsoft/typescript-go/shim/checker v0.0.0
@@ -0,0 +1,229 @@
1
+ package printer
2
+
3
+ import (
4
+ shimast "github.com/microsoft/typescript-go/shim/ast"
5
+ shimprinter "github.com/microsoft/typescript-go/shim/printer"
6
+ )
7
+
8
+ const kindColonToken = shimast.KindQuestionToken + 1
9
+
10
+ func EmitWithIdentifierSubstitutions(node *shimast.Node, sourceFile *shimast.SourceFile, substitutions map[string]string) string {
11
+ node = stripTypeSyntax(node)
12
+ node = rewriteIdentifiers(node, substitutions)
13
+ normalizeSyntheticTokens(node)
14
+ return emit(node, sourceFile)
15
+ }
16
+
17
+ func EmitPreservingTypesWithIdentifierSubstitutions(node *shimast.Node, sourceFile *shimast.SourceFile, substitutions map[string]string) string {
18
+ node = rewriteIdentifiers(node, substitutions)
19
+ normalizeSyntheticTokens(node)
20
+ return emit(node, sourceFile)
21
+ }
22
+
23
+ func emit(node *shimast.Node, sourceFile *shimast.SourceFile) string {
24
+ return shimprinter.NewPrinter(shimprinter.PrinterOptions{
25
+ RemoveComments: true,
26
+ NewLine: 2,
27
+ }, shimprinter.PrintHandlers{}, nil).Emit(node, sourceFile)
28
+ }
29
+
30
+ func stripTypeSyntax(node *shimast.Node) *shimast.Node {
31
+ if node == nil {
32
+ return nil
33
+ }
34
+ factory := shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
35
+ var visitor *shimast.NodeVisitor
36
+ visitor = shimast.NewNodeVisitor(func(current *shimast.Node) *shimast.Node {
37
+ if current == nil {
38
+ return nil
39
+ }
40
+ switch current.Kind {
41
+ case shimast.KindAsExpression, shimast.KindSatisfiesExpression, shimast.KindTypeAssertionExpression, shimast.KindNonNullExpression:
42
+ return visitor.VisitNode(current.Expression())
43
+ case shimast.KindVariableDeclaration:
44
+ decl := current.AsVariableDeclaration()
45
+ return factory.UpdateVariableDeclaration(
46
+ decl,
47
+ visitor.VisitNode(decl.Name()),
48
+ nil,
49
+ nil,
50
+ visitor.VisitNode(decl.Initializer),
51
+ )
52
+ case shimast.KindParameter:
53
+ parameter := current.AsParameterDeclaration()
54
+ return factory.UpdateParameterDeclaration(
55
+ parameter,
56
+ visitor.VisitModifiers(parameter.Modifiers()),
57
+ visitor.VisitNode(parameter.DotDotDotToken),
58
+ visitor.VisitNode(parameter.Name()),
59
+ nil,
60
+ nil,
61
+ visitor.VisitNode(parameter.Initializer),
62
+ )
63
+ case shimast.KindArrowFunction:
64
+ arrow := current.AsArrowFunction()
65
+ return factory.UpdateArrowFunction(
66
+ arrow,
67
+ visitor.VisitModifiers(arrow.Modifiers()),
68
+ nil,
69
+ visitor.VisitNodes(arrow.Parameters),
70
+ nil,
71
+ nil,
72
+ visitor.VisitNode(arrow.EqualsGreaterThanToken),
73
+ visitor.VisitNode(arrow.Body),
74
+ )
75
+ case shimast.KindCallExpression:
76
+ call := current.AsCallExpression()
77
+ return factory.UpdateCallExpression(
78
+ call,
79
+ visitor.VisitNode(call.Expression),
80
+ visitor.VisitNode(call.QuestionDotToken),
81
+ nil,
82
+ visitor.VisitNodes(call.Arguments),
83
+ call.Flags,
84
+ )
85
+ case shimast.KindNewExpression:
86
+ expr := current.AsNewExpression()
87
+ return factory.UpdateNewExpression(
88
+ expr,
89
+ visitor.VisitNode(expr.Expression),
90
+ nil,
91
+ visitor.VisitNodes(expr.Arguments),
92
+ )
93
+ default:
94
+ return visitor.VisitEachChild(current)
95
+ }
96
+ }, factory, shimast.NodeVisitorHooks{})
97
+ return visitor.VisitNode(node)
98
+ }
99
+
100
+ func rewriteIdentifiers(node *shimast.Node, substitutions map[string]string) *shimast.Node {
101
+ if node == nil || len(substitutions) == 0 {
102
+ return node
103
+ }
104
+ factory := shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
105
+ var visitor *shimast.NodeVisitor
106
+ visitor = shimast.NewNodeVisitor(func(current *shimast.Node) *shimast.Node {
107
+ if current == nil {
108
+ return nil
109
+ }
110
+ switch current.Kind {
111
+ case shimast.KindIdentifier:
112
+ if replacement, ok := substitutions[current.Text()]; ok {
113
+ return rewriteIdentifierExpression(factory, replacement)
114
+ }
115
+ return current
116
+ case shimast.KindVariableDeclaration:
117
+ decl := current.AsVariableDeclaration()
118
+ return factory.UpdateVariableDeclaration(
119
+ decl,
120
+ decl.Name(),
121
+ nil,
122
+ nil,
123
+ visitor.VisitNode(decl.Initializer),
124
+ )
125
+ case shimast.KindParameter:
126
+ parameter := current.AsParameterDeclaration()
127
+ return factory.UpdateParameterDeclaration(
128
+ parameter,
129
+ parameter.Modifiers(),
130
+ parameter.DotDotDotToken,
131
+ parameter.Name(),
132
+ nil,
133
+ nil,
134
+ visitor.VisitNode(parameter.Initializer),
135
+ )
136
+ case shimast.KindPropertyAssignment:
137
+ assignment := current.AsPropertyAssignment()
138
+ return factory.UpdatePropertyAssignment(
139
+ assignment,
140
+ assignment.Modifiers(),
141
+ assignment.Name(),
142
+ assignment.PostfixToken,
143
+ nil,
144
+ visitor.VisitNode(assignment.Initializer),
145
+ )
146
+ case shimast.KindShorthandPropertyAssignment:
147
+ assignment := current.AsShorthandPropertyAssignment()
148
+ name := assignment.Name()
149
+ if name != nil && name.Kind == shimast.KindIdentifier {
150
+ if replacement, ok := substitutions[name.Text()]; ok && assignment.ObjectAssignmentInitializer == nil {
151
+ return factory.NewPropertyAssignment(
152
+ assignment.Modifiers(),
153
+ name,
154
+ assignment.PostfixToken,
155
+ nil,
156
+ rewriteIdentifierExpression(factory, replacement),
157
+ )
158
+ }
159
+ }
160
+ return factory.UpdateShorthandPropertyAssignment(
161
+ assignment,
162
+ assignment.Modifiers(),
163
+ name,
164
+ assignment.PostfixToken,
165
+ nil,
166
+ nil,
167
+ visitor.VisitNode(assignment.ObjectAssignmentInitializer),
168
+ )
169
+ case shimast.KindPropertyAccessExpression:
170
+ access := current.AsPropertyAccessExpression()
171
+ return factory.UpdatePropertyAccessExpression(
172
+ access,
173
+ visitor.VisitNode(access.Expression),
174
+ access.QuestionDotToken,
175
+ access.Name(),
176
+ access.Flags,
177
+ )
178
+ default:
179
+ return visitor.VisitEachChild(current)
180
+ }
181
+ }, factory, shimast.NodeVisitorHooks{})
182
+ return visitor.VisitNode(node)
183
+ }
184
+
185
+ func rewriteIdentifierExpression(factory *shimast.NodeFactory, replacement string) *shimast.Node {
186
+ parts := []string{}
187
+ start := 0
188
+ for i := 0; i <= len(replacement); i++ {
189
+ if i == len(replacement) || replacement[i] == '.' {
190
+ if start < i {
191
+ parts = append(parts, replacement[start:i])
192
+ }
193
+ start = i + 1
194
+ }
195
+ }
196
+ if len(parts) == 0 {
197
+ return factory.NewIdentifier(replacement)
198
+ }
199
+ output := factory.NewIdentifier(parts[0])
200
+ for _, part := range parts[1:] {
201
+ output = factory.NewPropertyAccessExpression(
202
+ output,
203
+ nil,
204
+ factory.NewIdentifier(part),
205
+ shimast.NodeFlagsNone,
206
+ )
207
+ }
208
+ return output
209
+ }
210
+
211
+ func normalizeSyntheticTokens(node *shimast.Node) {
212
+ if node == nil {
213
+ return
214
+ }
215
+ if node.Kind == shimast.KindConditionalExpression {
216
+ conditional := node.AsConditionalExpression()
217
+ factory := shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
218
+ if conditional.QuestionToken == nil {
219
+ conditional.QuestionToken = factory.NewToken(shimast.KindQuestionToken)
220
+ }
221
+ if conditional.ColonToken == nil {
222
+ conditional.ColonToken = factory.NewToken(kindColonToken)
223
+ }
224
+ }
225
+ node.ForEachChild(func(child *shimast.Node) bool {
226
+ normalizeSyntheticTokens(child)
227
+ return false
228
+ })
229
+ }
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "13.0.0-dev.20260507",
3
+ "version": "13.0.0-dev.20260510",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
- "types": "lib/index.d.ts",
7
6
  "exports": {
8
7
  ".": {
9
8
  "types": "./lib/index.d.ts",
@@ -25,6 +24,11 @@
25
24
  "bin": {
26
25
  "typia": "./lib/executable/typia.js"
27
26
  },
27
+ "ttsc": {
28
+ "plugin": {
29
+ "transform": "typia/lib/transform"
30
+ }
31
+ },
28
32
  "repository": {
29
33
  "type": "git",
30
34
  "url": "https://github.com/samchon/typia"
@@ -38,12 +42,10 @@
38
42
  "dependencies": {
39
43
  "@standard-schema/spec": "^1.0.0",
40
44
  "commander": "^10.0.0",
41
- "comment-json": "^4.2.3",
42
45
  "inquirer": "^8.2.5",
43
- "package-manager-detector": "^0.2.0",
44
46
  "randexp": "^0.5.3",
45
- "@typia/interface": "^13.0.0-dev.20260507",
46
- "@typia/utils": "^13.0.0-dev.20260507"
47
+ "@typia/interface": "^13.0.0-dev.20260510",
48
+ "@typia/utils": "^13.0.0-dev.20260510"
47
49
  },
48
50
  "devDependencies": {
49
51
  "@rollup/plugin-commonjs": "^29.0.0",
@@ -52,7 +54,7 @@
52
54
  "@types/node": "^25.3.0",
53
55
  "@typescript-eslint/eslint-plugin": "^8.1.0",
54
56
  "@typescript-eslint/parser": "^8.1.0",
55
- "@typescript/native-preview": "7.0.0-dev.20260505.1",
57
+ "@typescript/native-preview": "7.0.0-dev.20260510.1",
56
58
  "chalk": "^4.0.0",
57
59
  "eslint-plugin-deprecation": "^3.0.0",
58
60
  "rimraf": "^6.1.2",
@@ -61,7 +63,7 @@
61
63
  "rollup-plugin-node-externals": "^8.1.2",
62
64
  "suppress-warnings": "^1.0.2",
63
65
  "tinyglobby": "^0.2.12",
64
- "ttsc": "^0.8.1"
66
+ "ttsc": "^0.10.0"
65
67
  },
66
68
  "sideEffects": [
67
69
  "./lib/_virtual/*.mjs",
@@ -116,5 +118,6 @@
116
118
  "build": "rimraf lib && ttsc && rollup -c && cp ../../README.md README.md",
117
119
  "dev": "ttsc --watch"
118
120
  },
121
+ "types": "lib/index.d.ts",
119
122
  "module": "lib/index.mjs"
120
123
  }
@@ -1,4 +1,6 @@
1
+ import commander from "commander";
1
2
  import fs from "fs";
3
+ import inquirer from "inquirer";
2
4
  import { createRequire } from "module";
3
5
  import path from "path";
4
6
  import {
@@ -7,33 +9,26 @@ import {
7
9
  TtscCompiler,
8
10
  } from "ttsc";
9
11
 
10
- import { ArgumentParser } from "./setup/ArgumentParser";
11
- import { PackageManager } from "./setup/PackageManager";
12
-
13
12
  export namespace TypiaGenerateWizard {
14
13
  export async function generate(): Promise<void> {
15
14
  console.log("----------------------------------------");
16
15
  console.log(" Typia Generate Wizard");
17
16
  console.log("----------------------------------------");
18
17
 
19
- // LOAD PACKAGE.JSON INFO
20
- const pack: PackageManager = await PackageManager.mount();
21
- const options: IArguments = await ArgumentParser.parse(pack, inquiry);
18
+ const options: IArguments = await parseArguments();
22
19
  await build(options);
23
20
  }
24
21
 
25
- const inquiry: ArgumentParser.Inquiry<IArguments> = async (
26
- _pack,
27
- command,
28
- prompt,
29
- action,
30
- ) => {
31
- // PREPARE ASSETS
32
- command.option("--input [path]", "input directory");
33
- command.option("--output [directory]", "output directory");
34
- command.option("--project [project]", "tsconfig.json file location");
22
+ async function parseArguments(): Promise<IArguments> {
23
+ commander.program.option("--input [path]", "input directory");
24
+ commander.program.option("--output [directory]", "output directory");
25
+ commander.program.option(
26
+ "--project [project]",
27
+ "tsconfig.json file location",
28
+ );
35
29
 
36
30
  const questioned = { value: false };
31
+ const prompt = inquirer.createPromptModule;
37
32
 
38
33
  const input = (name: string) => async (message: string) => {
39
34
  const result = await prompt()({
@@ -72,13 +67,21 @@ export namespace TypiaGenerateWizard {
72
67
  return select("tsconfig")("TS Config File")(files);
73
68
  };
74
69
 
75
- return action(async (options) => {
76
- options.input ??= await input("input")("input directory");
77
- options.output ??= await input("output")("output directory");
78
- options.project ??= await configure();
79
- return options as IArguments;
70
+ return new Promise<IArguments>((resolve, reject) => {
71
+ commander.program.action(async (options: Partial<IArguments>) => {
72
+ try {
73
+ options.input ??= await input("input")("input directory");
74
+ options.output ??= await input("output")("output directory");
75
+ options.project ??= await configure();
76
+ if (questioned.value) console.log("");
77
+ resolve(options as IArguments);
78
+ } catch (exp) {
79
+ reject(exp);
80
+ }
81
+ });
82
+ commander.program.parseAsync().catch(reject);
80
83
  });
81
- };
84
+ }
82
85
 
83
86
  export interface IArguments {
84
87
  input: string;
@@ -144,7 +147,6 @@ export namespace TypiaGenerateWizard {
144
147
  const result: ITtscCompilerTransformation = new TtscCompiler({
145
148
  binary: props.binary,
146
149
  cwd: props.cwd,
147
- plugins: [{ transform: "typia/lib/transform" }],
148
150
  tsconfig: props.tsconfig,
149
151
  }).transform();
150
152
  if (result.type === "success") {
@@ -1,14 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  const USAGE = `Wrong command has been detected. Use like below:
3
3
 
4
- npx typia setup \\
5
- --manager (npm|pnpm|yarn) \\
6
- --project {tsconfig.json file path}
7
-
8
- - npx typia setup
9
- - npx typia setup --manager pnpm
10
- - npx typia setup --project tsconfig.test.json
11
-
12
4
  npx typia generate
13
5
  --input {directory} \\
14
6
  --output {directory}
@@ -42,7 +34,6 @@ const loadNativePreview = (): void => {
42
34
 
43
35
  const main = async (): Promise<void> => {
44
36
  try {
45
- await import("comment-json");
46
37
  await import("inquirer");
47
38
  await import("commander");
48
39
  } catch {
@@ -50,10 +41,7 @@ const main = async (): Promise<void> => {
50
41
  }
51
42
 
52
43
  const type: string | undefined = process.argv[2];
53
- if (type === "setup") {
54
- const { TypiaSetupWizard } = await import("./TypiaSetupWizard");
55
- await TypiaSetupWizard.setup();
56
- } else if (type === "generate") {
44
+ if (type === "generate") {
57
45
  loadNativePreview();
58
46
  const { TypiaGenerateWizard } = await import("./TypiaGenerateWizard");
59
47
  await TypiaGenerateWizard.generate();
@@ -1,4 +0,0 @@
1
- var ArgumentParser = {};
2
-
3
- export { ArgumentParser as __exports };
4
- //# sourceMappingURL=ArgumentParser.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArgumentParser.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,4 +0,0 @@
1
- var CommandExecutor = {};
2
-
3
- export { CommandExecutor as __exports };
4
- //# sourceMappingURL=CommandExecutor.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CommandExecutor.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,4 +0,0 @@
1
- var FileRetriever = {};
2
-
3
- export { FileRetriever as __exports };
4
- //# sourceMappingURL=FileRetriever.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileRetriever.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,4 +0,0 @@
1
- var PackageManager = {};
2
-
3
- export { PackageManager as __exports };
4
- //# sourceMappingURL=PackageManager.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PackageManager.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,4 +0,0 @@
1
- var PluginConfigurator = {};
2
-
3
- export { PluginConfigurator as __exports };
4
- //# sourceMappingURL=PluginConfigurator.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PluginConfigurator.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,4 +0,0 @@
1
- var TypiaSetupWizard = {};
2
-
3
- export { TypiaSetupWizard as __exports };
4
- //# sourceMappingURL=TypiaSetupWizard.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypiaSetupWizard.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,7 +0,0 @@
1
- export declare namespace TypiaSetupWizard {
2
- interface IArguments {
3
- manager: "npm" | "pnpm" | "yarn" | "bun";
4
- project: string | null;
5
- }
6
- const setup: () => Promise<void>;
7
- }
@@ -1,133 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.TypiaSetupWizard = void 0;
16
- const fs_1 = __importDefault(require("fs"));
17
- const package_manager_detector_1 = require("package-manager-detector");
18
- const ArgumentParser_1 = require("./setup/ArgumentParser");
19
- const PackageManager_1 = require("./setup/PackageManager");
20
- const PluginConfigurator_1 = require("./setup/PluginConfigurator");
21
- var TypiaSetupWizard;
22
- (function (TypiaSetupWizard) {
23
- const TTSC_PACKAGE = "ttsc";
24
- const TSGO_COMPILER_PACKAGE = "@typescript/native-preview";
25
- TypiaSetupWizard.setup = () => __awaiter(this, void 0, void 0, function* () {
26
- var _a;
27
- console.log("----------------------------------------");
28
- console.log(" Typia Setup Wizard");
29
- console.log("----------------------------------------");
30
- // PREPARE ASSETS
31
- const pack = yield PackageManager_1.PackageManager.mount();
32
- const args = yield ArgumentParser_1.ArgumentParser.parse(pack, inquiry);
33
- (_a = args.project) !== null && _a !== void 0 ? _a : (args.project = (() => {
34
- fs_1.default.writeFileSync("tsconfig.json", `${JSON.stringify({ compilerOptions: {} }, null, 2)}\n`, "utf8");
35
- return (args.project = "tsconfig.json");
36
- })());
37
- // CONFIGURE TYPIA
38
- yield PluginConfigurator_1.PluginConfigurator.configure(args);
39
- // NORMALIZE PROJECT SETTINGS
40
- yield pack.save((data) => {
41
- var _a, _b, _c;
42
- if (typeof ((_a = data.scripts) === null || _a === void 0 ? void 0 : _a.prepare) === "string") {
43
- const prepare = removeLegacyCompilerPatchSteps(data.scripts.prepare);
44
- if (prepare.length !== 0)
45
- data.scripts.prepare = prepare;
46
- else
47
- delete data.scripts.prepare;
48
- if (Object.keys(data.scripts).length === 0)
49
- delete data.scripts;
50
- }
51
- if (((_b = data.devDependencies) === null || _b === void 0 ? void 0 : _b["ts-patch"]) !== undefined) {
52
- delete data.devDependencies["ts-patch"];
53
- if (Object.keys(data.devDependencies).length === 0)
54
- delete data.devDependencies;
55
- }
56
- if (((_c = data.dependencies) === null || _c === void 0 ? void 0 : _c["ts-patch"]) !== undefined) {
57
- delete data.dependencies["ts-patch"];
58
- if (Object.keys(data.dependencies).length === 0)
59
- delete data.dependencies;
60
- }
61
- });
62
- // INSTALL TSGO TOOLCHAIN
63
- pack.install({
64
- dev: true,
65
- modulo: TSGO_COMPILER_PACKAGE,
66
- version: "latest",
67
- });
68
- pack.install({ dev: true, modulo: TTSC_PACKAGE, version: "latest" });
69
- });
70
- const inquiry = (pack, command, prompt, action) => __awaiter(this, void 0, void 0, function* () {
71
- // PREPARE ASSETS
72
- command.option("--manager [manager", "package manager");
73
- command.option("--project [project]", "tsconfig.json file location");
74
- // INTERNAL PROCEDURES
75
- const questioned = { value: false };
76
- const select = (name) => (message) => (choices, filter) => __awaiter(this, void 0, void 0, function* () {
77
- questioned.value = true;
78
- return (yield prompt()(Object.assign({ type: "list", name: name, message: message, choices: choices }, (filter ? { filter } : {}))))[name];
79
- });
80
- const configure = () => __awaiter(this, void 0, void 0, function* () {
81
- const fileList = yield (yield fs_1.default.promises.readdir(process.cwd()))
82
- .filter((str) => str.substring(0, 8) === "tsconfig" &&
83
- str.substring(str.length - 5) === ".json")
84
- .sort((x, y) => x === "tsconfig.json"
85
- ? -1
86
- : y === "tsconfig.json"
87
- ? 1
88
- : x < y
89
- ? -1
90
- : 1);
91
- if (fileList.length === 0) {
92
- if (process.cwd() !== pack.directory)
93
- throw new URIError(`Unable to find "tsconfig.json" file.`);
94
- return null;
95
- }
96
- else if (fileList.length === 1)
97
- return fileList[0];
98
- return select("tsconfig")("TS Config File")(fileList);
99
- });
100
- // DO CONSTRUCT
101
- return action((options) => __awaiter(this, void 0, void 0, function* () {
102
- var _a, _b, _c;
103
- pack.manager = (_a = options.manager) !== null && _a !== void 0 ? _a : (options.manager = (_b = (yield detectManager())) !== null && _b !== void 0 ? _b : (yield select("manager")("Package Manager")([
104
- "npm",
105
- "pnpm",
106
- "bun",
107
- "yarn (berry is not supported)",
108
- ], (value) => value.split(" ")[0])));
109
- (_c = options.project) !== null && _c !== void 0 ? _c : (options.project = yield configure());
110
- if (questioned.value)
111
- console.log("");
112
- return options;
113
- }));
114
- });
115
- const detectManager = () => __awaiter(this, void 0, void 0, function* () {
116
- var _a;
117
- const result = yield (0, package_manager_detector_1.detect)({ cwd: process.cwd() });
118
- switch (result === null || result === void 0 ? void 0 : result.name) {
119
- case "npm":
120
- case "deno":
121
- return null; // NPM case is still selectable & Deno is not supported
122
- default:
123
- return (_a = result === null || result === void 0 ? void 0 : result.name) !== null && _a !== void 0 ? _a : null;
124
- }
125
- });
126
- const isLegacyCompilerPatchStep = (str) => str === "typia patch" || str.includes("ts-patch install");
127
- const removeLegacyCompilerPatchSteps = (script) => script
128
- .split("&&")
129
- .map((str) => str.trim())
130
- .filter((str) => str.length !== 0 && isLegacyCompilerPatchStep(str) === false)
131
- .join(" && ");
132
- })(TypiaSetupWizard || (exports.TypiaSetupWizard = TypiaSetupWizard = {}));
133
- //# sourceMappingURL=TypiaSetupWizard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypiaSetupWizard.js","sourceRoot":"","sources":["../../src/executable/TypiaSetupWizard.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export { TypiaSetupWizard } from './TypiaSetupWizard2.mjs';
2
- export { __exports as default } from '../_virtual/TypiaSetupWizard.mjs';
3
- //# sourceMappingURL=TypiaSetupWizard.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypiaSetupWizard.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}