ttsc 0.7.2 → 0.8.0-dev.20260505

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 (72) hide show
  1. package/README.md +5 -5
  2. package/cmd/platform/main.go +86 -76
  3. package/cmd/ttsc/api_compile.go +122 -105
  4. package/cmd/ttsc/api_transform.go +57 -49
  5. package/cmd/ttsc/build.go +116 -103
  6. package/cmd/ttsc/main.go +117 -117
  7. package/cmd/ttsc/main_test.go +191 -191
  8. package/driver/host.go +9 -9
  9. package/driver/program.go +285 -285
  10. package/driver/rewrite.go +266 -219
  11. package/lib/compiler/internal/compileProjectInMemory.js +3 -3
  12. package/lib/compiler/internal/compileProjectInMemory.js.map +1 -1
  13. package/lib/compiler/internal/resolveEmittedJavaScript.js +2 -1
  14. package/lib/compiler/internal/resolveEmittedJavaScript.js.map +1 -1
  15. package/lib/compiler/internal/resolveTsgo.js.map +1 -1
  16. package/lib/compiler/internal/runBuild.js +47 -49
  17. package/lib/compiler/internal/runBuild.js.map +1 -1
  18. package/lib/compiler/internal/transformProjectInMemory.js +44 -4
  19. package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
  20. package/lib/launcher/internal/getCompilerVersionText.js +1 -2
  21. package/lib/launcher/internal/getCompilerVersionText.js.map +1 -1
  22. package/lib/launcher/internal/prepareExecution.js +6 -4
  23. package/lib/launcher/internal/prepareExecution.js.map +1 -1
  24. package/lib/launcher/internal/runTtsc.js +49 -5
  25. package/lib/launcher/internal/runTtsc.js.map +1 -1
  26. package/lib/launcher/internal/runTtsx.js +7 -2
  27. package/lib/launcher/internal/runTtsx.js.map +1 -1
  28. package/lib/plugin/internal/buildSourcePlugin.js +6 -0
  29. package/lib/plugin/internal/buildSourcePlugin.js.map +1 -1
  30. package/lib/plugin/internal/loadProjectPlugins.js +55 -2
  31. package/lib/plugin/internal/loadProjectPlugins.js.map +1 -1
  32. package/lib/structures/ITtscPlugin.d.ts +19 -3
  33. package/lib/structures/ITtscPlugin.js +4 -0
  34. package/lib/structures/ITtscPlugin.js.map +1 -1
  35. package/lib/structures/TtscPluginStage.d.ts +4 -10
  36. package/lib/structures/internal/ITtscLoadedNativePlugin.d.ts +5 -0
  37. package/package.json +11 -10
  38. package/shim/ast/lint.go +172 -171
  39. package/shim/ast/shim.go +84 -83
  40. package/shim/bundled/shim.go +5 -1
  41. package/shim/checker/shim.go +79 -79
  42. package/shim/compiler/emit_hooks.go +494 -0
  43. package/shim/compiler/shim.go +16 -1
  44. package/shim/core/shim.go +13 -10
  45. package/shim/diagnosticwriter/lint.go +79 -79
  46. package/shim/diagnosticwriter/shim.go +19 -19
  47. package/shim/parser/shim.go +7 -1
  48. package/shim/scanner/shim.go +39 -1
  49. package/shim/tsoptions/shim.go +51 -1
  50. package/shim/tspath/shim.go +72 -1
  51. package/shim/vfs/cachedvfs/shim.go +1 -1
  52. package/shim/vfs/osvfs/shim.go +1 -1
  53. package/shim/vfs/shim.go +4 -1
  54. package/src/compiler/internal/compileProjectInMemory.ts +6 -3
  55. package/src/compiler/internal/resolveEmittedJavaScript.ts +2 -1
  56. package/src/compiler/internal/resolveTsgo.ts +0 -1
  57. package/src/compiler/internal/runBuild.ts +58 -86
  58. package/src/compiler/internal/transformProjectInMemory.ts +51 -6
  59. package/src/launcher/internal/getCompilerVersionText.ts +1 -2
  60. package/src/launcher/internal/prepareExecution.ts +6 -6
  61. package/src/launcher/internal/runTtsc.ts +52 -5
  62. package/src/launcher/internal/runTtsx.ts +16 -5
  63. package/src/plugin/internal/buildSourcePlugin.ts +30 -2
  64. package/src/plugin/internal/loadProjectPlugins.ts +81 -2
  65. package/src/structures/ITtscPlugin.ts +30 -3
  66. package/src/structures/TtscPluginStage.ts +4 -10
  67. package/src/structures/internal/ITtscLoadedNativePlugin.ts +5 -0
  68. package/test/compiler.test.ts +3 -3
  69. package/test/platform.test.ts +1 -3
  70. package/test/tsgo.test.ts +15 -7
  71. package/tools/gen_shims/main.go +409 -409
  72. package/utility/host.go +707 -0
package/driver/rewrite.go CHANGED
@@ -14,32 +14,32 @@
14
14
  package driver
15
15
 
16
16
  import (
17
- "context"
18
- "errors"
19
- "fmt"
20
- "os"
21
- "path/filepath"
22
- "strings"
23
- "unicode"
17
+ "context"
18
+ "errors"
19
+ "fmt"
20
+ "os"
21
+ "path/filepath"
22
+ "strings"
23
+ "unicode"
24
24
 
25
- "github.com/microsoft/typescript-go/shim/ast"
26
- shimcompiler "github.com/microsoft/typescript-go/shim/compiler"
25
+ "github.com/microsoft/typescript-go/shim/ast"
26
+ shimcompiler "github.com/microsoft/typescript-go/shim/compiler"
27
27
  )
28
28
 
29
29
  // Rewrite describes one emit-time patch. Produced by CollectCallSites after
30
30
  // the engine has generated a replacement JS fragment for the call.
31
31
  type Rewrite struct {
32
- File *ast.SourceFile
33
- RootName string
34
- Namespaces []string
35
- Method string
36
- Replacement string
37
- ConsumeParens bool
32
+ File *ast.SourceFile
33
+ RootName string
34
+ Namespaces []string
35
+ Method string
36
+ Replacement string
37
+ ConsumeParens bool
38
38
  }
39
39
 
40
40
  // RewriteSet groups rewrites by file, preserving source order.
41
41
  type RewriteSet struct {
42
- byPath map[string][]Rewrite
42
+ byPath map[string][]Rewrite
43
43
  }
44
44
 
45
45
  // NewRewriteSet returns an empty set.
@@ -47,20 +47,20 @@ func NewRewriteSet() *RewriteSet { return &RewriteSet{byPath: map[string][]Rewri
47
47
 
48
48
  // Add registers a rewrite under the absolute path of its source file.
49
49
  func (rs *RewriteSet) Add(r Rewrite) {
50
- if r.File == nil {
51
- return
52
- }
53
- path := filepath.ToSlash(r.File.FileName())
54
- rs.byPath[path] = append(rs.byPath[path], r)
50
+ if r.File == nil {
51
+ return
52
+ }
53
+ path := filepath.ToSlash(r.File.FileName())
54
+ rs.byPath[path] = append(rs.byPath[path], r)
55
55
  }
56
56
 
57
57
  // Len returns the total number of rewrites across every file.
58
58
  func (rs *RewriteSet) Len() int {
59
- n := 0
60
- for _, rws := range rs.byPath {
61
- n += len(rws)
62
- }
63
- return n
59
+ n := 0
60
+ for _, rws := range rs.byPath {
61
+ n += len(rws)
62
+ }
63
+ return n
64
64
  }
65
65
 
66
66
  // RewriteSentinel is the marker inserted at the top of a patched file so
@@ -72,244 +72,291 @@ const RewriteSentinel = "/* @ttsc-rewritten */"
72
72
  // `writeFile` is nil, the patched JS is written to disk via the standard
73
73
  // tsgo WriteFile.
74
74
  func (p *Program) EmitAll(rs *RewriteSet, writeFile shimcompiler.WriteFile) (*shimcompiler.EmitResult, []Diagnostic, error) {
75
- return p.emit(rs, nil, writeFile)
75
+ return p.emit(rs, nil, writeFile)
76
+ }
77
+
78
+ // EmitAllRaw runs TypeScript-Go emit without ttsc output-text rewrites.
79
+ func (p *Program) EmitAllRaw(writeFile shimcompiler.WriteFile) (*shimcompiler.EmitResult, []Diagnostic, error) {
80
+ if p == nil || p.TSProgram == nil {
81
+ return nil, nil, errors.New("driver: nil program")
82
+ }
83
+ wf := writeFile
84
+ if wf == nil {
85
+ wf = func(fileName, text string, data *shimcompiler.WriteFileData) error {
86
+ return DefaultWriteFile(fileName, text)
87
+ }
88
+ }
89
+ result := p.TSProgram.Emit(context.Background(), shimcompiler.EmitOptions{
90
+ WriteFile: wf,
91
+ })
92
+ if result == nil {
93
+ return nil, nil, errors.New("driver: Emit returned nil")
94
+ }
95
+ return result, convertDiagnostics(result.Diagnostics), nil
96
+ }
97
+
98
+ // EmitAllRawWithHooks runs TypeScript-Go emit without ttsc output-text rewrites,
99
+ // while allowing ttsc-owned AST hooks immediately before JS/declaration print.
100
+ func (p *Program) EmitAllRawWithHooks(writeFile shimcompiler.WriteFile, hooks shimcompiler.EmitHooks) (*shimcompiler.EmitResult, []Diagnostic, error) {
101
+ if p == nil || p.TSProgram == nil {
102
+ return nil, nil, errors.New("driver: nil program")
103
+ }
104
+ wf := writeFile
105
+ if wf == nil {
106
+ wf = func(fileName, text string, data *shimcompiler.WriteFileData) error {
107
+ return DefaultWriteFile(fileName, text)
108
+ }
109
+ }
110
+ result := shimcompiler.EmitWithHooks(context.Background(), p.TSProgram, shimcompiler.EmitOptions{
111
+ WriteFile: wf,
112
+ }, hooks)
113
+ if result == nil {
114
+ return nil, nil, errors.New("driver: Emit returned nil")
115
+ }
116
+ return result, convertDiagnostics(result.Diagnostics), nil
76
117
  }
77
118
 
78
119
  // EmitFile runs tsgo's emitter for one source file, applying the same rewrite
79
120
  // pipeline as EmitAll.
80
121
  func (p *Program) EmitFile(rs *RewriteSet, target *ast.SourceFile, writeFile shimcompiler.WriteFile) (*shimcompiler.EmitResult, []Diagnostic, error) {
81
- return p.emit(rs, target, writeFile)
122
+ return p.emit(rs, target, writeFile)
82
123
  }
83
124
 
84
125
  func (p *Program) emit(rs *RewriteSet, target *ast.SourceFile, writeFile shimcompiler.WriteFile) (*shimcompiler.EmitResult, []Diagnostic, error) {
85
- if p == nil || p.TSProgram == nil {
86
- return nil, nil, errors.New("driver: nil program")
87
- }
88
- if rs == nil {
89
- rs = NewRewriteSet()
90
- }
91
- cursors := map[string]int{}
92
- wf := func(fileName, text string, data *shimcompiler.WriteFileData) error {
93
- if strings.Contains(text, RewriteSentinel) {
94
- if writeFile != nil {
95
- return writeFile(fileName, text, data)
96
- }
97
- return DefaultWriteFile(fileName, text)
98
- }
99
- patched, err := applyRewrites(fileName, text, rs, cursors)
100
- if err != nil {
101
- return err
102
- }
103
- if patched != text {
104
- patched = insertSentinel(patched)
105
- }
106
- if writeFile != nil {
107
- return writeFile(fileName, patched, data)
108
- }
109
- return DefaultWriteFile(fileName, patched)
110
- }
126
+ if p == nil || p.TSProgram == nil {
127
+ return nil, nil, errors.New("driver: nil program")
128
+ }
129
+ if rs == nil {
130
+ rs = NewRewriteSet()
131
+ }
132
+ cursors := map[string]int{}
133
+ wf := func(fileName, text string, data *shimcompiler.WriteFileData) error {
134
+ // A patched file is idempotent: once the sentinel exists, the emitted text
135
+ // is passed through unchanged. This matters for watch/rebuild loops and
136
+ // tests that re-run emit over the same output directory.
137
+ if strings.Contains(text, RewriteSentinel) {
138
+ if writeFile != nil {
139
+ return writeFile(fileName, text, data)
140
+ }
141
+ return DefaultWriteFile(fileName, text)
142
+ }
143
+ // Rewrites are matched after tsgo has printed JavaScript. The source-file
144
+ // association is recovered from the output path because WriteFile receives
145
+ // only the final file name and text.
146
+ patched, err := applyRewrites(fileName, text, rs, cursors)
147
+ if err != nil {
148
+ return err
149
+ }
150
+ if patched != text {
151
+ patched = insertSentinel(patched)
152
+ }
153
+ if writeFile != nil {
154
+ return writeFile(fileName, patched, data)
155
+ }
156
+ return DefaultWriteFile(fileName, patched)
157
+ }
111
158
 
112
- result := p.TSProgram.Emit(context.Background(), shimcompiler.EmitOptions{
113
- TargetSourceFile: target,
114
- WriteFile: wf,
115
- })
116
- if result == nil {
117
- return nil, nil, errors.New("driver: Emit returned nil")
118
- }
119
- return result, convertDiagnostics(result.Diagnostics), nil
159
+ result := p.TSProgram.Emit(context.Background(), shimcompiler.EmitOptions{
160
+ TargetSourceFile: target,
161
+ WriteFile: wf,
162
+ })
163
+ if result == nil {
164
+ return nil, nil, errors.New("driver: Emit returned nil")
165
+ }
166
+ return result, convertDiagnostics(result.Diagnostics), nil
120
167
  }
121
168
 
122
169
  // DefaultWriteFile is the default disk writer used when EmitAll's caller does not
123
170
  // supply a custom WriteFile hook.
124
171
  func DefaultWriteFile(fileName, text string) error {
125
- if dir := filepath.Dir(fileName); dir != "" {
126
- if err := os.MkdirAll(dir, 0o755); err != nil {
127
- return err
128
- }
129
- }
130
- return os.WriteFile(fileName, []byte(text), 0o644)
172
+ if dir := filepath.Dir(fileName); dir != "" {
173
+ if err := os.MkdirAll(dir, 0o755); err != nil {
174
+ return err
175
+ }
176
+ }
177
+ return os.WriteFile(fileName, []byte(text), 0o644)
131
178
  }
132
179
 
133
180
  func insertSentinel(text string) string {
134
- for _, prefix := range []string{"\"use strict\";\n", "'use strict';\n"} {
135
- if strings.HasPrefix(text, prefix) {
136
- return prefix + RewriteSentinel + "\n" + text[len(prefix):]
137
- }
138
- }
139
- return RewriteSentinel + "\n" + text
181
+ for _, prefix := range []string{"\"use strict\";\n", "'use strict';\n"} {
182
+ if strings.HasPrefix(text, prefix) {
183
+ return prefix + RewriteSentinel + "\n" + text[len(prefix):]
184
+ }
185
+ }
186
+ return RewriteSentinel + "\n" + text
140
187
  }
141
188
 
142
189
  func applyRewrites(outputName, text string, rs *RewriteSet, cursors map[string]int) (string, error) {
143
- srcPath, ok := findSourceForOutput(outputName, rs)
144
- if !ok || len(rs.byPath[srcPath]) == 0 {
145
- return text, nil
146
- }
147
- rewrites := rs.byPath[srcPath]
148
- pos := cursors[srcPath]
149
- out := text
150
- searchFrom := 0
151
- for pos < len(rewrites) {
152
- r := rewrites[pos]
153
- replaced, nextSearchFrom, ok, err := spliceCall(out, r, searchFrom)
154
- if err != nil {
155
- return "", err
156
- }
157
- if !ok {
158
- preview := out
159
- if len(preview) > 400 {
160
- preview = preview[:400] + "…"
161
- }
162
- return "", fmt.Errorf("driver: could not locate %s.%s(…) call in %s (tried roots %v; preview: %q)", joinRootAndNamespaces(r), r.Method, outputName, candidateRoots(r.RootName), preview)
163
- }
164
- out = replaced
165
- searchFrom = nextSearchFrom
166
- pos++
167
- }
168
- cursors[srcPath] = pos
169
- return out, nil
190
+ srcPath, ok := findSourceForOutput(outputName, rs)
191
+ if !ok || len(rs.byPath[srcPath]) == 0 {
192
+ return text, nil
193
+ }
194
+ rewrites := rs.byPath[srcPath]
195
+ pos := cursors[srcPath]
196
+ out := text
197
+ searchFrom := 0
198
+ for pos < len(rewrites) {
199
+ r := rewrites[pos]
200
+ replaced, nextSearchFrom, ok, err := spliceCall(out, r, searchFrom)
201
+ if err != nil {
202
+ return "", err
203
+ }
204
+ if !ok {
205
+ preview := out
206
+ if len(preview) > 400 {
207
+ preview = preview[:400] + "…"
208
+ }
209
+ return "", fmt.Errorf("driver: could not locate %s.%s(…) call in %s (tried roots %v; preview: %q)", joinRootAndNamespaces(r), r.Method, outputName, candidateRoots(r.RootName), preview)
210
+ }
211
+ out = replaced
212
+ searchFrom = nextSearchFrom
213
+ pos++
214
+ }
215
+ cursors[srcPath] = pos
216
+ return out, nil
170
217
  }
171
218
 
172
219
  func findSourceForOutput(outputName string, rs *RewriteSet) (string, bool) {
173
- outSlash := strings.TrimSuffix(filepath.ToSlash(outputName), filepath.Ext(outputName))
174
- var best string
175
- bestScore := 0
176
- for path := range rs.byPath {
177
- srcStem := strings.TrimSuffix(filepath.ToSlash(path), filepath.Ext(path))
178
- score := commonSuffixSegments(srcStem, outSlash)
179
- if score > bestScore {
180
- best = path
181
- bestScore = score
182
- }
183
- }
184
- return best, bestScore > 0
220
+ outSlash := strings.TrimSuffix(filepath.ToSlash(outputName), filepath.Ext(outputName))
221
+ var best string
222
+ bestScore := 0
223
+ for path := range rs.byPath {
224
+ srcStem := strings.TrimSuffix(filepath.ToSlash(path), filepath.Ext(path))
225
+ score := commonSuffixSegments(srcStem, outSlash)
226
+ if score > bestScore {
227
+ best = path
228
+ bestScore = score
229
+ }
230
+ }
231
+ return best, bestScore > 0
185
232
  }
186
233
 
187
234
  func commonSuffixSegments(a, b string) int {
188
- as := strings.Split(a, "/")
189
- bs := strings.Split(b, "/")
190
- n := len(as)
191
- if len(bs) < n {
192
- n = len(bs)
193
- }
194
- shared := 0
195
- for i := 1; i <= n; i++ {
196
- if as[len(as)-i] != bs[len(bs)-i] {
197
- break
198
- }
199
- shared++
200
- }
201
- return shared
235
+ as := strings.Split(a, "/")
236
+ bs := strings.Split(b, "/")
237
+ n := len(as)
238
+ if len(bs) < n {
239
+ n = len(bs)
240
+ }
241
+ shared := 0
242
+ for i := 1; i <= n; i++ {
243
+ if as[len(as)-i] != bs[len(bs)-i] {
244
+ break
245
+ }
246
+ shared++
247
+ }
248
+ return shared
202
249
  }
203
250
 
204
251
  func spliceCall(text string, r Rewrite, searchFrom int) (string, int, bool, error) {
205
- aliases := candidateRoots(r.RootName)
206
- tail := needleTail(r)
207
- idx := -1
208
- needleLen := 0
209
- for _, cand := range aliases {
210
- candNeedle := cand + tail
211
- if i := indexAtCallStart(text, candNeedle, searchFrom); i >= 0 {
212
- idx = i
213
- needleLen = len(candNeedle) - 1
214
- break
215
- }
216
- }
217
- if idx < 0 {
218
- return text, searchFrom, false, nil
219
- }
220
- parenPos := idx + needleLen
221
- if parenPos >= len(text) || text[parenPos] != '(' {
222
- return text, searchFrom, false, errors.New("driver: expected '(' after method name")
223
- }
224
- closePos, ok := matchParen(text, parenPos)
225
- if !ok {
226
- return text, searchFrom, false, errors.New("driver: unbalanced parens while locating plugin call")
227
- }
228
- if r.ConsumeParens {
229
- replaced := text[:idx] + r.Replacement + text[closePos+1:]
230
- return replaced, idx + len(r.Replacement), true, nil
231
- }
232
- replaced := text[:idx] + r.Replacement + text[idx+needleLen:]
233
- return replaced, idx + len(r.Replacement), true, nil
252
+ aliases := candidateRoots(r.RootName)
253
+ tail := needleTail(r)
254
+ idx := -1
255
+ needleLen := 0
256
+ for _, cand := range aliases {
257
+ candNeedle := cand + tail
258
+ if i := indexAtCallStart(text, candNeedle, searchFrom); i >= 0 {
259
+ idx = i
260
+ needleLen = len(candNeedle) - 1
261
+ break
262
+ }
263
+ }
264
+ if idx < 0 {
265
+ return text, searchFrom, false, nil
266
+ }
267
+ parenPos := idx + needleLen
268
+ if parenPos >= len(text) || text[parenPos] != '(' {
269
+ return text, searchFrom, false, errors.New("driver: expected '(' after method name")
270
+ }
271
+ closePos, ok := matchParen(text, parenPos)
272
+ if !ok {
273
+ return text, searchFrom, false, errors.New("driver: unbalanced parens while locating plugin call")
274
+ }
275
+ if r.ConsumeParens {
276
+ replaced := text[:idx] + r.Replacement + text[closePos+1:]
277
+ return replaced, idx + len(r.Replacement), true, nil
278
+ }
279
+ replaced := text[:idx] + r.Replacement + text[idx+needleLen:]
280
+ return replaced, idx + len(r.Replacement), true, nil
234
281
  }
235
282
 
236
283
  func candidateRoots(root string) []string {
237
- return []string{
238
- root,
239
- root + "_1.default",
240
- root + "_2.default",
241
- root + ".default",
242
- root + "_1",
243
- root + "_2",
244
- }
284
+ return []string{
285
+ root,
286
+ root + "_1.default",
287
+ root + "_2.default",
288
+ root + ".default",
289
+ root + "_1",
290
+ root + "_2",
291
+ }
245
292
  }
246
293
 
247
294
  func joinRootAndNamespaces(r Rewrite) string {
248
- if len(r.Namespaces) == 0 {
249
- return r.RootName
250
- }
251
- return r.RootName + "." + strings.Join(r.Namespaces, ".")
295
+ if len(r.Namespaces) == 0 {
296
+ return r.RootName
297
+ }
298
+ return r.RootName + "." + strings.Join(r.Namespaces, ".")
252
299
  }
253
300
 
254
301
  func needleTail(r Rewrite) string {
255
- if len(r.Namespaces) == 0 {
256
- return "." + r.Method + "("
257
- }
258
- return "." + strings.Join(r.Namespaces, ".") + "." + r.Method + "("
302
+ if len(r.Namespaces) == 0 {
303
+ return "." + r.Method + "("
304
+ }
305
+ return "." + strings.Join(r.Namespaces, ".") + "." + r.Method + "("
259
306
  }
260
307
 
261
308
  func indexAtCallStart(text, needle string, searchFrom int) int {
262
- start := searchFrom
263
- if start < 0 {
264
- start = 0
265
- }
266
- for {
267
- hit := strings.Index(text[start:], needle)
268
- if hit < 0 {
269
- return -1
270
- }
271
- pos := start + hit
272
- if pos == 0 {
273
- return pos
274
- }
275
- prev := rune(text[pos-1])
276
- if isIdentifierPart(prev) {
277
- start = pos + 1
278
- continue
279
- }
280
- return pos
281
- }
309
+ start := searchFrom
310
+ if start < 0 {
311
+ start = 0
312
+ }
313
+ for {
314
+ hit := strings.Index(text[start:], needle)
315
+ if hit < 0 {
316
+ return -1
317
+ }
318
+ pos := start + hit
319
+ if pos == 0 {
320
+ return pos
321
+ }
322
+ prev := rune(text[pos-1])
323
+ if isIdentifierPart(prev) {
324
+ start = pos + 1
325
+ continue
326
+ }
327
+ return pos
328
+ }
282
329
  }
283
330
 
284
331
  func isIdentifierPart(r rune) bool {
285
- return r == '_' || r == '$' || unicode.IsLetter(r) || unicode.IsDigit(r)
332
+ return r == '_' || r == '$' || unicode.IsLetter(r) || unicode.IsDigit(r)
286
333
  }
287
334
 
288
335
  func matchParen(text string, pos int) (int, bool) {
289
- if pos >= len(text) || text[pos] != '(' {
290
- return 0, false
291
- }
292
- depth := 1
293
- for i := pos + 1; i < len(text); i++ {
294
- switch text[i] {
295
- case '(':
296
- depth++
297
- case ')':
298
- depth--
299
- if depth == 0 {
300
- return i, true
301
- }
302
- case '"', '\'', '`':
303
- q := text[i]
304
- j := i + 1
305
- for j < len(text) && text[j] != q {
306
- if text[j] == '\\' {
307
- j++
308
- }
309
- j++
310
- }
311
- i = j
312
- }
313
- }
314
- return 0, false
336
+ if pos >= len(text) || text[pos] != '(' {
337
+ return 0, false
338
+ }
339
+ depth := 1
340
+ for i := pos + 1; i < len(text); i++ {
341
+ switch text[i] {
342
+ case '(':
343
+ depth++
344
+ case ')':
345
+ depth--
346
+ if depth == 0 {
347
+ return i, true
348
+ }
349
+ case '"', '\'', '`':
350
+ q := text[i]
351
+ j := i + 1
352
+ for j < len(text) && text[j] != q {
353
+ if text[j] == '\\' {
354
+ j++
355
+ }
356
+ j++
357
+ }
358
+ i = j
359
+ }
360
+ }
361
+ return 0, false
315
362
  }
@@ -126,8 +126,7 @@ function readOutputDirectory(directory, keyOf) {
126
126
  return output;
127
127
  }
128
128
  for (const file of listFiles(directory)) {
129
- output[keyOf(pathToKey(path.relative(directory, file)))] =
130
- fs.readFileSync(file, "utf8");
129
+ output[keyOf(pathToKey(path.relative(directory, file)))] = fs.readFileSync(file, "utf8");
131
130
  }
132
131
  return output;
133
132
  }
@@ -156,7 +155,8 @@ function parseNativeCompileOutput(stdout, stderr) {
156
155
  };
157
156
  }
158
157
  catch {
159
- throw new Error((stderr || stdout).trim() || "ttsc: native compiler host returned no output");
158
+ throw new Error((stderr || stdout).trim() ||
159
+ "ttsc: native compiler host returned no output");
160
160
  }
161
161
  }
162
162
  function packageRootDir() {
@@ -1 +1 @@
1
- {"version":3,"file":"compileProjectInMemory.js","sourceRoot":"","sources":["../../../src/compiler/internal/compileProjectInMemory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compileProjectInMemory.js","sourceRoot":"","sources":["../../../src/compiler/internal/compileProjectInMemory.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,8 @@ function resolveEmittedJavaScript(options) {
44
44
  }
45
45
  let best = null;
46
46
  let bestScore = 0;
47
- for (const file of options.emittedFiles ?? listJavaScriptFiles(options.outDir)) {
47
+ for (const file of options.emittedFiles ??
48
+ listJavaScriptFiles(options.outDir)) {
48
49
  if (!isJavaScriptOutput(file))
49
50
  continue;
50
51
  const score = sharedSourceStemSegments(file, options.sourceFile);
@@ -1 +1 @@
1
- {"version":3,"file":"resolveEmittedJavaScript.js","sourceRoot":"","sources":["../../../src/compiler/internal/resolveEmittedJavaScript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveEmittedJavaScript.js","sourceRoot":"","sources":["../../../src/compiler/internal/resolveEmittedJavaScript.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAY,EAAE,oCAAgB;AAC9B,MAAY,IAAI,sCAAkB;AAElC,uEAAuE;AACvE,kCAAyC,OAKxC;IACC,MAAM,KAAK,GAAG,uBAAuB,CACnC,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,UAAU,CACnB,CAAC;IACF,IAAI,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,YAAY;QACrC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAAE,SAAS;QACxC,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,IAAI,GAAG,IAAI,CAAC;YACZ,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAc,EACd,WAAmB,EACnB,UAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACxD,IACE,QAAQ,KAAK,EAAE;QACf,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,EACN,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QAChE,0BAA0B,CAAC,UAAU,CAAC,CACzC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QACtC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAe,EAAE,OAAe;IAChE,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAY,EAAE;QAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,UAAU;aACd,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;aAC7D,KAAK,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAAE,MAAM;QAC/C,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB;IAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7C,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveTsgo.js","sourceRoot":"","sources":["../../../src/compiler/internal/resolveTsgo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveTsgo.js","sourceRoot":"","sources":["../../../src/compiler/internal/resolveTsgo.ts"],"names":[],"mappings":"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"}