ttsc 0.5.0-dev.20260429-4 → 0.5.0-dev.20260429-5

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.
package/README.md CHANGED
@@ -6,6 +6,7 @@
6
6
  [![NPM Version](https://img.shields.io/npm/v/ttsc.svg)](https://www.npmjs.com/package/ttsc)
7
7
  [![NPM Downloads](https://img.shields.io/npm/dm/ttsc.svg)](https://www.npmjs.com/package/ttsc)
8
8
  [![Build Status](https://github.com/samchon/ttsc/workflows/test/badge.svg)](https://github.com/samchon/ttsc/actions?query=workflow%3Atest)
9
+ [![Guide Documents](https://img.shields.io/badge/Guide-Documents-forestgreen)](https://github.com/samchon/ttsc/tree/master/docs)
9
10
  [![Discord Badge](https://img.shields.io/badge/discord-samchon-d91965?style=flat&labelColor=5866f2&logo=discord&logoColor=white&link=https://discord.gg/E94XhzrUCZ)](https://discord.gg/E94XhzrUCZ)
10
11
 
11
12
  A `typescript-go` toolchain for compiler-powered transforms and type-safe execution.
@@ -142,15 +143,17 @@ It is transformed into dedicated JavaScript:
142
143
 
143
144
  `ttsc` ships a few small utility plugins in this repository.
144
145
 
145
- - [`{ "transform": "@ttsc/banner", ... }`](https://github.com/samchon/ttsc/tree/master/packages/banner)
146
- - [`{ "transform": "@ttsc/lint", ... }`](https://github.com/samchon/ttsc/tree/master/packages/lint)
147
- - [`{ "transform": "@ttsc/paths" }`](https://github.com/samchon/ttsc/tree/master/packages/paths)
148
- - [`{ "transform": "@ttsc/strip", ... }`](https://github.com/samchon/ttsc/tree/master/packages/strip)
146
+ - [`@ttsc/banner`](https://github.com/samchon/ttsc/tree/master/packages/banner): adds banner comments to emitted JS and declarations.
147
+ - [`@ttsc/lint`](https://github.com/samchon/ttsc/tree/master/packages/lint): fails compilation on lint violations.
148
+ - [`@ttsc/paths`](https://github.com/samchon/ttsc/tree/master/packages/paths): rewrites path aliases in emitted imports.
149
+ - [`@ttsc/strip`](https://github.com/samchon/ttsc/tree/master/packages/strip): removes configured calls and `debugger` statements.
150
+
151
+ Plugin authors should start from the [`Guide Documents`](https://github.com/samchon/ttsc/tree/master/docs).
149
152
 
150
153
  Ecosystem plugins are listed below; PRs adding `ttsc` plugins are welcome.
151
154
 
152
- - [`{ "transform": "@nestia/core/lib/transform" }`](https://github.com/samchon/nestia)
153
- - [`{ "transform": "typia/lib/transform" }`](https://github.com/samchon/typia)
155
+ - [`@nestia/core`](https://github.com/samchon/nestia): generates NestJS routes, OpenAPI, and SDKs.
156
+ - [`typia`](https://github.com/samchon/typia): generates validators, serializers, and type-driven runtime code.
154
157
 
155
158
  ## References
156
159
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ttsc",
3
- "version": "0.5.0-dev.20260429-4",
3
+ "version": "0.5.0-dev.20260429-5",
4
4
  "description": "General-purpose TypeScript-Go compiler, plugin host, and runtime.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -31,13 +31,13 @@
31
31
  "rimraf": "^6.1.2"
32
32
  },
33
33
  "optionalDependencies": {
34
- "@ttsc/linux-x64": "0.5.0-dev.20260429-4",
35
- "@ttsc/linux-arm64": "0.5.0-dev.20260429-4",
36
- "@ttsc/darwin-x64": "0.5.0-dev.20260429-4",
37
- "@ttsc/win32-x64": "0.5.0-dev.20260429-4",
38
- "@ttsc/linux-arm": "0.5.0-dev.20260429-4",
39
- "@ttsc/darwin-arm64": "0.5.0-dev.20260429-4",
40
- "@ttsc/win32-arm64": "0.5.0-dev.20260429-4"
34
+ "@ttsc/linux-x64": "0.5.0-dev.20260429-5",
35
+ "@ttsc/linux-arm": "0.5.0-dev.20260429-5",
36
+ "@ttsc/darwin-x64": "0.5.0-dev.20260429-5",
37
+ "@ttsc/linux-arm64": "0.5.0-dev.20260429-5",
38
+ "@ttsc/win32-x64": "0.5.0-dev.20260429-5",
39
+ "@ttsc/win32-arm64": "0.5.0-dev.20260429-5",
40
+ "@ttsc/darwin-arm64": "0.5.0-dev.20260429-5"
41
41
  },
42
42
  "sideEffects": false,
43
43
  "files": [
package/shim/ast/shim.go CHANGED
@@ -8,11 +8,55 @@ import (
8
8
  type CallExpression = innerast.CallExpression
9
9
  type Diagnostic = innerast.Diagnostic
10
10
  type Identifier = innerast.Identifier
11
+ type IdentifierNode = innerast.IdentifierNode
12
+ type ImportAttributesNode = innerast.ImportAttributesNode
13
+ type ImportClauseNode = innerast.ImportClauseNode
14
+ type ImportPhaseModifierSyntaxKind = innerast.ImportPhaseModifierSyntaxKind
15
+ type ImportSpecifierList = innerast.ImportSpecifierList
11
16
  type IntersectionTypeNode = innerast.IntersectionTypeNode
12
17
  type Kind = innerast.Kind
18
+ type KeywordExpressionSyntaxKind = innerast.KeywordExpressionSyntaxKind
19
+ type KeywordTypeSyntaxKind = innerast.KeywordTypeSyntaxKind
13
20
  type LiteralTypeNode = innerast.LiteralTypeNode
14
21
  type NoSubstitutionTemplateLiteral = innerast.NoSubstitutionTemplateLiteral
15
22
  type Node = innerast.Node
23
+ type NodeFactory = innerast.NodeFactory
24
+ type NodeFactoryHooks = innerast.NodeFactoryHooks
25
+ type NodeVisitor = innerast.NodeVisitor
26
+ type NodeVisitorHooks = innerast.NodeVisitorHooks
27
+ type TokenFlags = innerast.TokenFlags
28
+ type ModifierList = innerast.ModifierList
29
+ type StatementList = innerast.StatementList
30
+ type VariableDeclarationNodeList = innerast.VariableDeclarationNodeList
31
+ type BindingElementList = innerast.BindingElementList
32
+ type TypeParameterList = innerast.TypeParameterList
33
+ type ParameterList = innerast.ParameterList
34
+ type ElementList = innerast.ElementList
35
+ type TypeList = innerast.TypeList
36
+ type TypeElementList = innerast.TypeElementList
37
+ type Statement = innerast.Statement
38
+ type Expression = innerast.Expression
39
+ type TypeNode = innerast.TypeNode
40
+ type TypePredicateParameterName = innerast.TypePredicateParameterName
41
+ type AssertsKeyword = innerast.AssertsKeyword
42
+ type BindingName = innerast.BindingName
43
+ type BinaryOperatorToken = innerast.BinaryOperatorToken
44
+ type PropertyName = innerast.PropertyName
45
+ type MemberName = innerast.MemberName
46
+ type EntityName = innerast.EntityName
47
+ type ModuleExportName = innerast.ModuleExportName
48
+ type NamedImportBindings = innerast.NamedImportBindings
49
+ type ConciseBody = innerast.ConciseBody
50
+ type TemplateSpanList = innerast.TemplateSpanList
51
+ type TemplateMiddleOrTail = innerast.TemplateMiddleOrTail
52
+ type TemplateHeadNode = innerast.TemplateHeadNode
53
+ type QuestionDotToken = innerast.QuestionDotToken
54
+ type QuestionToken = innerast.QuestionToken
55
+ type DotDotDotToken = innerast.DotDotDotToken
56
+ type ExclamationToken = innerast.ExclamationToken
57
+ type EqualsGreaterThanToken = innerast.EqualsGreaterThanToken
58
+ type AsteriskToken = innerast.AsteriskToken
59
+ type TokenNode = innerast.TokenNode
16
60
  type TemplateHead = innerast.TemplateHead
17
61
  type TemplateLiteralTypeNode = innerast.TemplateLiteralTypeNode
18
62
  type TemplateLiteralTypeSpan = innerast.TemplateLiteralTypeSpan
@@ -62,6 +106,7 @@ const (
62
106
  KindBooleanKeyword = innerast.KindBooleanKeyword
63
107
  KindBigIntKeyword = innerast.KindBigIntKeyword
64
108
  KindAnyKeyword = innerast.KindAnyKeyword
109
+ KindUnknownKeyword = innerast.KindUnknownKeyword
65
110
  KindNeverKeyword = innerast.KindNeverKeyword
66
111
  KindUndefinedKeyword = innerast.KindUndefinedKeyword
67
112
  KindNullKeyword = innerast.KindNullKeyword
@@ -103,13 +148,60 @@ const (
103
148
  KindModuleDeclaration = innerast.KindModuleDeclaration
104
149
  KindFunctionDeclaration = innerast.KindFunctionDeclaration
105
150
  KindMinusToken = innerast.KindMinusToken
151
+ KindQuestionDotToken = innerast.KindQuestionDotToken
152
+ KindAssertsKeyword = innerast.KindAssertsKeyword
153
+ KindEqualsGreaterThanToken = innerast.KindEqualsGreaterThanToken
154
+
155
+ NodeFlagsOptionalChain = innerast.NodeFlagsOptionalChain
156
+
157
+ TokenFlagsNone = innerast.TokenFlagsNone
106
158
 
107
159
  SymbolFlagsOptional = innerast.SymbolFlagsOptional
108
160
  SymbolFlagsAlias = innerast.SymbolFlagsAlias
109
161
  SymbolFlagsType = innerast.SymbolFlagsType
110
162
  SymbolFlagsNamespace = innerast.SymbolFlagsNamespace
163
+
164
+ ModifierFlagsPrivate = innerast.ModifierFlagsPrivate
165
+ ModifierFlagsProtected = innerast.ModifierFlagsProtected
166
+ ModifierFlagsReadonly = innerast.ModifierFlagsReadonly
111
167
  )
112
168
 
169
+ func NewNodeFactory(hooks NodeFactoryHooks) *NodeFactory {
170
+ return innerast.NewNodeFactory(hooks)
171
+ }
172
+
173
+ func NewNodeVisitor(visit func(node *Node) *Node, factory *NodeFactory, hooks NodeVisitorHooks) *NodeVisitor {
174
+ return innerast.NewNodeVisitor(visit, factory, hooks)
175
+ }
176
+
177
+ func IsFunctionLike(node *Node) bool {
178
+ return innerast.IsFunctionLike(node)
179
+ }
180
+
181
+ func IsPropertyAssignment(node *Node) bool {
182
+ return innerast.IsPropertyAssignment(node)
183
+ }
184
+
185
+ func IsPropertyDeclaration(node *Node) bool {
186
+ return innerast.IsPropertyDeclaration(node)
187
+ }
188
+
189
+ func IsModuleBlock(node *Node) bool {
190
+ return innerast.IsModuleBlock(node)
191
+ }
192
+
193
+ func IsStringLiteral(node *Node) bool {
194
+ return innerast.IsStringLiteral(node)
195
+ }
196
+
197
+ func IsPropertyAccessExpression(node *Node) bool {
198
+ return innerast.IsPropertyAccessExpression(node)
199
+ }
200
+
201
+ func IsElementAccessExpression(node *Node) bool {
202
+ return innerast.IsElementAccessExpression(node)
203
+ }
204
+
113
205
  //go:linkname GetSourceFileOfNode github.com/microsoft/typescript-go/internal/ast.GetSourceFileOfNode
114
206
  func GetSourceFileOfNode(node *innerast.Node) *innerast.SourceFile
115
207
 
@@ -13,6 +13,7 @@ type SignatureKind = innerchecker.SignatureKind
13
13
  type Type = innerchecker.Type
14
14
  type TypeFlags = innerchecker.TypeFlags
15
15
  type ObjectFlags = innerchecker.ObjectFlags
16
+ type ElementFlags = innerchecker.ElementFlags
16
17
 
17
18
  const (
18
19
  SignatureKindCall = innerchecker.SignatureKindCall
@@ -38,7 +39,16 @@ const (
38
39
  TypeFlagsBigIntLike = innerchecker.TypeFlagsBigIntLike
39
40
  TypeFlagsBooleanLike = innerchecker.TypeFlagsBooleanLike
40
41
 
41
- ObjectFlagsReference = innerchecker.ObjectFlagsReference
42
+ ObjectFlagsReference = innerchecker.ObjectFlagsReference
43
+ ObjectFlagsClass = innerchecker.ObjectFlagsClass
44
+ ObjectFlagsInterface = innerchecker.ObjectFlagsInterface
45
+ ObjectFlagsClassOrInterface = innerchecker.ObjectFlagsClassOrInterface
46
+
47
+ ElementFlagsNone = innerchecker.ElementFlagsNone
48
+ ElementFlagsRequired = innerchecker.ElementFlagsRequired
49
+ ElementFlagsOptional = innerchecker.ElementFlagsOptional
50
+ ElementFlagsRest = innerchecker.ElementFlagsRest
51
+ ElementFlagsVariadic = innerchecker.ElementFlagsVariadic
42
52
  )
43
53
 
44
54
  func IsTupleType(t *innerchecker.Type) bool {
@@ -144,3 +154,13 @@ func checkerIsArrayType(recv *innerchecker.Checker, t *innerchecker.Type) bool
144
154
  func Checker_isArrayType(recv *innerchecker.Checker, t *innerchecker.Type) bool {
145
155
  return checkerIsArrayType(recv, t)
146
156
  }
157
+
158
+ //go:linkname checkerGetBaseTypes github.com/microsoft/typescript-go/internal/checker.(*Checker).getBaseTypes
159
+ func checkerGetBaseTypes(recv *innerchecker.Checker, t *innerchecker.Type) []*innerchecker.Type
160
+
161
+ func Checker_getBaseTypes(recv *innerchecker.Checker, t *innerchecker.Type) []*innerchecker.Type {
162
+ if recv == nil || t == nil {
163
+ return nil
164
+ }
165
+ return checkerGetBaseTypes(recv, t)
166
+ }