ttsc 0.12.3 → 0.13.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 (151) hide show
  1. package/cmd/platform/main.go +9 -0
  2. package/cmd/ttsc/api_compile.go +122 -101
  3. package/cmd/ttsc/api_compile_branches_test.go +55 -57
  4. package/cmd/ttsc/api_transform.go +67 -49
  5. package/cmd/ttsc/api_transform_branches_test.go +30 -32
  6. package/cmd/ttsc/build.go +141 -108
  7. package/cmd/ttsc/build_branches_test.go +95 -97
  8. package/cmd/ttsc/filter.go +70 -0
  9. package/cmd/ttsc/filter_strips_unknown_forwarded_flag_test.go +61 -0
  10. package/cmd/ttsc/flags_gen.go +30 -0
  11. package/cmd/ttsc/helpers_test.go +39 -28
  12. package/cmd/ttsc/main.go +111 -104
  13. package/cmd/ttsc/main_alias_branches_test.go +21 -23
  14. package/cmd/ttscserver/main.go +96 -90
  15. package/cmd/ttscserver/run_lsp_prefers_tsgo_flag_test.go +22 -22
  16. package/cmd/ttscserver/run_lsp_reports_server_error_test.go +22 -22
  17. package/cmd/ttscserver/run_lsp_uses_tsgo_environment_test.go +23 -23
  18. package/cmd/utility-host/main.go +30 -23
  19. package/driver/lsp.go +53 -7
  20. package/driver/plugins.go +88 -72
  21. package/driver/program.go +464 -340
  22. package/driver/rewrite.go +477 -380
  23. package/internal/lspserver/lsp_envelope.go +64 -64
  24. package/internal/lspserver/lsp_frame.go +60 -60
  25. package/internal/lspserver/lsp_plugin.go +57 -57
  26. package/internal/lspserver/lsp_proxy.go +265 -251
  27. package/internal/lspserver/lsp_server.go +155 -144
  28. package/lib/TtscCompiler.d.ts +7 -0
  29. package/lib/TtscCompiler.js +7 -0
  30. package/lib/TtscCompiler.js.map +1 -1
  31. package/lib/compiler/internal/buildNativeCompiler.d.ts +11 -1
  32. package/lib/compiler/internal/buildNativeCompiler.js +23 -3
  33. package/lib/compiler/internal/buildNativeCompiler.js.map +1 -1
  34. package/lib/compiler/internal/compileProjectInMemory.d.ts +9 -0
  35. package/lib/compiler/internal/compileProjectInMemory.js +36 -21
  36. package/lib/compiler/internal/compileProjectInMemory.js.map +1 -1
  37. package/lib/compiler/internal/paths.d.ts +27 -0
  38. package/lib/compiler/internal/paths.js +70 -0
  39. package/lib/compiler/internal/paths.js.map +1 -0
  40. package/lib/compiler/internal/project/readProjectConfig.d.ts +9 -1
  41. package/lib/compiler/internal/project/readProjectConfig.js +80 -1
  42. package/lib/compiler/internal/project/readProjectConfig.js.map +1 -1
  43. package/lib/compiler/internal/project/resolveProjectConfig.d.ts +13 -1
  44. package/lib/compiler/internal/project/resolveProjectConfig.js +42 -1
  45. package/lib/compiler/internal/project/resolveProjectConfig.js.map +1 -1
  46. package/lib/compiler/internal/resolveBinary.d.ts +9 -1
  47. package/lib/compiler/internal/resolveBinary.js +17 -1
  48. package/lib/compiler/internal/resolveBinary.js.map +1 -1
  49. package/lib/compiler/internal/resolveEmittedJavaScript.d.ts +16 -1
  50. package/lib/compiler/internal/resolveEmittedJavaScript.js +42 -10
  51. package/lib/compiler/internal/resolveEmittedJavaScript.js.map +1 -1
  52. package/lib/compiler/internal/resolveTsgo.d.ts +21 -1
  53. package/lib/compiler/internal/resolveTsgo.js +23 -1
  54. package/lib/compiler/internal/resolveTsgo.js.map +1 -1
  55. package/lib/compiler/internal/runBuild.d.ts +24 -4
  56. package/lib/compiler/internal/runBuild.js +355 -93
  57. package/lib/compiler/internal/runBuild.js.map +1 -1
  58. package/lib/compiler/internal/runSingleFileEmit.d.ts +10 -1
  59. package/lib/compiler/internal/runSingleFileEmit.js +14 -1
  60. package/lib/compiler/internal/runSingleFileEmit.js.map +1 -1
  61. package/lib/compiler/internal/sharedHostHelpers.d.ts +5 -0
  62. package/lib/compiler/internal/sharedHostHelpers.js +6 -2
  63. package/lib/compiler/internal/sharedHostHelpers.js.map +1 -1
  64. package/lib/compiler/internal/spawnNative.d.ts +21 -0
  65. package/lib/compiler/internal/spawnNative.js +59 -0
  66. package/lib/compiler/internal/spawnNative.js.map +1 -0
  67. package/lib/compiler/internal/transformProjectInMemory.d.ts +15 -1
  68. package/lib/compiler/internal/transformProjectInMemory.js +57 -61
  69. package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
  70. package/lib/flags/parser.d.ts +63 -0
  71. package/lib/flags/parser.js +254 -0
  72. package/lib/flags/parser.js.map +1 -0
  73. package/lib/flags/schema.d.ts +147 -0
  74. package/lib/flags/schema.js +405 -0
  75. package/lib/flags/schema.js.map +1 -0
  76. package/lib/launcher/internal/getCompilerVersionText.js +7 -0
  77. package/lib/launcher/internal/getCompilerVersionText.js.map +1 -1
  78. package/lib/launcher/internal/prepareExecution.js +35 -0
  79. package/lib/launcher/internal/prepareExecution.js.map +1 -1
  80. package/lib/launcher/internal/resolveCacheDir.d.ts +9 -0
  81. package/lib/launcher/internal/resolveCacheDir.js +22 -0
  82. package/lib/launcher/internal/resolveCacheDir.js.map +1 -0
  83. package/lib/launcher/internal/resolveTtscserverBinary.js +2 -0
  84. package/lib/launcher/internal/resolveTtscserverBinary.js.map +1 -1
  85. package/lib/launcher/internal/runTtsc.d.ts +10 -0
  86. package/lib/launcher/internal/runTtsc.js +90 -153
  87. package/lib/launcher/internal/runTtsc.js.map +1 -1
  88. package/lib/launcher/internal/runTtscserver.js +10 -35
  89. package/lib/launcher/internal/runTtscserver.js.map +1 -1
  90. package/lib/launcher/internal/runTtsx.d.ts +8 -0
  91. package/lib/launcher/internal/runTtsx.js +137 -79
  92. package/lib/launcher/internal/runTtsx.js.map +1 -1
  93. package/lib/plugin/internal/buildSourcePlugin.d.ts +38 -0
  94. package/lib/plugin/internal/buildSourcePlugin.js +40 -17
  95. package/lib/plugin/internal/buildSourcePlugin.js.map +1 -1
  96. package/lib/plugin/internal/loadProjectPlugins.d.ts +26 -0
  97. package/lib/plugin/internal/loadProjectPlugins.js +90 -41
  98. package/lib/plugin/internal/loadProjectPlugins.js.map +1 -1
  99. package/lib/structures/ITtscCompilerTransformation.d.ts +15 -2
  100. package/lib/structures/ITtscPlugin.d.ts +24 -0
  101. package/lib/structures/ITtscPluginCapabilities.d.ts +29 -0
  102. package/lib/structures/ITtscPluginCapabilities.js +3 -0
  103. package/lib/structures/ITtscPluginCapabilities.js.map +1 -0
  104. package/lib/structures/index.d.ts +1 -0
  105. package/lib/structures/index.js +1 -0
  106. package/lib/structures/index.js.map +1 -1
  107. package/lib/structures/internal/ITtscLoadedNativePlugin.d.ts +5 -0
  108. package/lib/structures/internal/TtscCommonOptions.d.ts +19 -0
  109. package/lib/structures/internal/TtscSingleFileEmitOptions.d.ts +0 -2
  110. package/package.json +9 -9
  111. package/shim/ast/shim.go +24 -0
  112. package/shim/checker/shim.go +35 -0
  113. package/shim/core/shim.go +17 -0
  114. package/shim/diagnosticwriter/shim.go +4 -0
  115. package/shim/lsp/shim.go +3 -3
  116. package/shim/printer/shim.go +20 -0
  117. package/src/TtscCompiler.ts +7 -0
  118. package/src/compiler/internal/buildNativeCompiler.ts +23 -3
  119. package/src/compiler/internal/compileProjectInMemory.ts +34 -25
  120. package/src/compiler/internal/paths.ts +68 -0
  121. package/src/compiler/internal/project/readProjectConfig.ts +86 -1
  122. package/src/compiler/internal/project/resolveProjectConfig.ts +44 -1
  123. package/src/compiler/internal/resolveBinary.ts +17 -1
  124. package/src/compiler/internal/resolveEmittedJavaScript.ts +43 -12
  125. package/src/compiler/internal/resolveTsgo.ts +29 -1
  126. package/src/compiler/internal/runBuild.ts +398 -112
  127. package/src/compiler/internal/runSingleFileEmit.ts +14 -1
  128. package/src/compiler/internal/sharedHostHelpers.ts +7 -7
  129. package/src/compiler/internal/spawnNative.ts +64 -0
  130. package/src/compiler/internal/transformProjectInMemory.ts +47 -67
  131. package/src/flags/parser.ts +367 -0
  132. package/src/flags/schema.ts +570 -0
  133. package/src/launcher/internal/getCompilerVersionText.ts +7 -0
  134. package/src/launcher/internal/prepareExecution.ts +35 -0
  135. package/src/launcher/internal/resolveCacheDir.ts +19 -0
  136. package/src/launcher/internal/resolveTtscserverBinary.ts +2 -0
  137. package/src/launcher/internal/runTtsc.ts +97 -143
  138. package/src/launcher/internal/runTtscserver.ts +9 -1
  139. package/src/launcher/internal/runTtsx.ts +149 -82
  140. package/src/plugin/internal/buildSourcePlugin.ts +40 -14
  141. package/src/plugin/internal/loadProjectPlugins.ts +116 -45
  142. package/src/structures/ITtscCompilerTransformation.ts +15 -2
  143. package/src/structures/ITtscPlugin.ts +26 -1
  144. package/src/structures/ITtscPluginCapabilities.ts +29 -0
  145. package/src/structures/index.ts +1 -0
  146. package/src/structures/internal/ITtscLoadedNativePlugin.ts +5 -0
  147. package/src/structures/internal/TtscCommonOptions.ts +19 -0
  148. package/src/structures/internal/TtscSingleFileEmitOptions.ts +0 -2
  149. package/tools/gen_shims/main.go +43 -8
  150. package/utility/flags_gen.go +30 -0
  151. package/utility/host.go +304 -245
@@ -1,15 +1,15 @@
1
1
  package lspserver
2
2
 
3
3
  import (
4
- "context"
5
- "errors"
6
- "fmt"
7
- "io"
8
- "os/exec"
9
- "path/filepath"
10
- "runtime/debug"
11
- "sync"
12
- "time"
4
+ "context"
5
+ "errors"
6
+ "fmt"
7
+ "io"
8
+ "os/exec"
9
+ "path/filepath"
10
+ "runtime/debug"
11
+ "sync"
12
+ "time"
13
13
  )
14
14
 
15
15
  // ErrLSPUpstreamPanic wraps a panic recovered from inside an upstream
@@ -29,12 +29,12 @@ var ErrLSPUpstreamPanic = errors.New("ttscserver: tsgo upstream runner panicked"
29
29
  // goroutine and join on a sentinel channel — outside this helper's
30
30
  // scope today.
31
31
  func RecoverPanicAs(fn func() error) (err error) {
32
- defer func() {
33
- if r := recover(); r != nil {
34
- err = fmt.Errorf("%w: %v\n%s", ErrLSPUpstreamPanic, r, debug.Stack())
35
- }
36
- }()
37
- return fn()
32
+ defer func() {
33
+ if r := recover(); r != nil {
34
+ err = fmt.Errorf("%w: %v\n%s", ErrLSPUpstreamPanic, r, debug.Stack())
35
+ }
36
+ }()
37
+ return fn()
38
38
  }
39
39
 
40
40
  // LSPServerOptions wires ttscserver to its three channels of state:
@@ -42,29 +42,29 @@ func RecoverPanicAs(fn func() error) (err error) {
42
42
  // merging plugin diagnostics into the stream, and the tsgo binary that
43
43
  // provides the upstream LSP server.
44
44
  type LSPServerOptions struct {
45
- // In is the editor-side reader; ttscserver reads JSON-RPC frames from
46
- // it and forwards or handles them. RunLSPServer closes it on shutdown
47
- // if it also implements io.Closer so blocked frame reads can unblock.
48
- In io.Reader
49
- // Out is the editor-side writer; ttscserver writes both upstream
50
- // responses and locally-synthesized messages to it.
51
- Out io.Writer
52
- // Err is the upstream tsgo server's stderr sink. ttscserver does not
53
- // log to it directly.
54
- Err io.Writer
55
-
56
- // Cwd is the project root used as the upstream tsgo process working
57
- // directory. An empty string is rejected before any process starts.
58
- Cwd string
59
- // TsgoBinary is the absolute path to the project-selected
60
- // @typescript/native-preview executable.
61
- TsgoBinary string
62
- // Source contributes ttsc plugin diagnostics / code actions /
63
- // executeCommand handling. Nil falls back to NullPluginSource{}.
64
- Source PluginSource
65
- // ProgressDelay is accepted for CLI compatibility. The external tsgo
66
- // LSP command does not currently expose a progress-delay flag.
67
- ProgressDelay time.Duration
45
+ // In is the editor-side reader; ttscserver reads JSON-RPC frames from
46
+ // it and forwards or handles them. RunLSPServer closes it on shutdown
47
+ // if it also implements io.Closer so blocked frame reads can unblock.
48
+ In io.Reader
49
+ // Out is the editor-side writer; ttscserver writes both upstream
50
+ // responses and locally-synthesized messages to it.
51
+ Out io.Writer
52
+ // Err is the upstream tsgo server's stderr sink. ttscserver does not
53
+ // log to it directly.
54
+ Err io.Writer
55
+
56
+ // Cwd is the project root used as the upstream tsgo process working
57
+ // directory. An empty string is rejected before any process starts.
58
+ Cwd string
59
+ // TsgoBinary is the absolute path to the project-selected
60
+ // @typescript/native-preview executable.
61
+ TsgoBinary string
62
+ // Source contributes ttsc plugin diagnostics / code actions /
63
+ // executeCommand handling. Nil falls back to NullPluginSource{}.
64
+ Source PluginSource
65
+ // ProgressDelay is accepted for CLI compatibility. The external tsgo
66
+ // LSP command does not currently expose a progress-delay flag.
67
+ ProgressDelay time.Duration
68
68
  }
69
69
 
70
70
  // ErrLSPCwdRequired is returned when LSPServerOptions.Cwd is empty.
@@ -92,39 +92,47 @@ var upstreamValidator = validateDefaultUpstreamOptions
92
92
  // production runner. The seam stays in the public driver API because
93
93
  // tests and embedders otherwise have no way to bypass tsgo.
94
94
  func WithUpstreamRunnerForTest(runner LSPUpstreamRunner) func() {
95
- prev := upstreamRunner
96
- prevValidator := upstreamValidator
97
- upstreamRunner = runner
98
- upstreamValidator = func(LSPServerOptions) error { return nil }
99
- return func() {
100
- upstreamRunner = prev
101
- upstreamValidator = prevValidator
102
- }
95
+ prev := upstreamRunner
96
+ prevValidator := upstreamValidator
97
+ upstreamRunner = runner
98
+ upstreamValidator = func(LSPServerOptions) error { return nil }
99
+ return func() {
100
+ upstreamRunner = prev
101
+ upstreamValidator = prevValidator
102
+ }
103
103
  }
104
104
 
105
+ // validateDefaultUpstreamOptions enforces production-only requirements
106
+ // before any process or proxy goroutine is started. Test upstream runners
107
+ // bypass this via WithUpstreamRunnerForTest, which replaces upstreamValidator
108
+ // with a no-op.
105
109
  func validateDefaultUpstreamOptions(opts LSPServerOptions) error {
106
- if opts.TsgoBinary == "" {
107
- return ErrLSPTsgoBinaryRequired
108
- }
109
- if !filepath.IsAbs(opts.TsgoBinary) {
110
- return fmt.Errorf("ttscserver: tsgo binary must be absolute: %s", opts.TsgoBinary)
111
- }
112
- return nil
110
+ if opts.TsgoBinary == "" {
111
+ return ErrLSPTsgoBinaryRequired
112
+ }
113
+ if !filepath.IsAbs(opts.TsgoBinary) {
114
+ return fmt.Errorf("ttscserver: tsgo binary must be absolute: %s", opts.TsgoBinary)
115
+ }
116
+ return nil
113
117
  }
114
118
 
119
+ // defaultUpstreamRunner spawns `tsgo --lsp --stdio` as an external process and
120
+ // waits for it to exit. Context cancellation causes the process to be killed
121
+ // via CommandContext and the function returns ctx.Err() rather than the
122
+ // (likely "signal: killed") process error.
115
123
  func defaultUpstreamRunner(ctx context.Context, in io.Reader, out io.Writer, opts LSPServerOptions) error {
116
- cmd := exec.CommandContext(ctx, opts.TsgoBinary, "--lsp", "--stdio")
117
- cmd.Dir = opts.Cwd
118
- cmd.Stdin = in
119
- cmd.Stdout = out
120
- cmd.Stderr = opts.Err
121
- if err := cmd.Run(); err != nil {
122
- if ctx.Err() != nil {
123
- return ctx.Err()
124
- }
125
- return fmt.Errorf("tsgo --lsp --stdio: %w", err)
126
- }
127
- return nil
124
+ cmd := exec.CommandContext(ctx, opts.TsgoBinary, "--lsp", "--stdio")
125
+ cmd.Dir = opts.Cwd
126
+ cmd.Stdin = in
127
+ cmd.Stdout = out
128
+ cmd.Stderr = opts.Err
129
+ if err := cmd.Run(); err != nil {
130
+ if ctx.Err() != nil {
131
+ return ctx.Err()
132
+ }
133
+ return fmt.Errorf("tsgo --lsp --stdio: %w", err)
134
+ }
135
+ return nil
128
136
  }
129
137
 
130
138
  // RunLSPServer starts an upstream `tsgo --lsp --stdio` process and the byte-level
@@ -140,92 +148,95 @@ func defaultUpstreamRunner(ctx context.Context, in io.Reader, out io.Writer, opt
140
148
  // 4. A watchdog cascades context cancellation by closing every pipe so both
141
149
  // halves unblock; the goroutines' own defers close the rest.
142
150
  func RunLSPServer(ctx context.Context, opts LSPServerOptions) error {
143
- if opts.Cwd == "" {
144
- return ErrLSPCwdRequired
145
- }
146
- if err := upstreamValidator(opts); err != nil {
147
- return err
148
- }
149
- source := opts.Source
150
- if source == nil {
151
- source = NullPluginSource{}
152
- }
153
-
154
- upstreamInR, upstreamInW := io.Pipe()
155
- upstreamOutR, upstreamOutW := io.Pipe()
156
-
157
- proxy := NewProxy(ProxyOptions{
158
- EditorIn: opts.In,
159
- EditorOut: opts.Out,
160
- UpstreamIn: upstreamInW,
161
- UpstreamOut: upstreamOutR,
162
- Source: source,
163
- })
164
-
165
- serverCtx, cancel := context.WithCancel(ctx)
166
- defer cancel()
167
-
168
- // Watchdog: on cancel, close the writer ends of the upstream pipes so
169
- // both halves unblock with a clean io.EOF. Closing readers directly
170
- // would surface as io.ErrClosedPipe and make ttsc's error fold
171
- // ambiguous; closing writers preserves the ErrFrameClosed signal. The
172
- // editor input is also closed when possible so an upstream process-start
173
- // failure cannot leave the editor->upstream pump blocked on stdin.
174
- go func() {
175
- <-serverCtx.Done()
176
- closeIfCloser(opts.In)
177
- upstreamInW.Close()
178
- upstreamOutW.Close()
179
- }()
180
-
181
- var wg sync.WaitGroup
182
- var serverErr, proxyErr error
183
- wg.Add(2)
184
- go func() {
185
- defer wg.Done()
186
- defer cancel()
187
- defer upstreamOutW.Close()
188
- defer upstreamInR.Close()
189
- serverErr = RecoverPanicAs(func() error {
190
- return upstreamRunner(serverCtx, upstreamInR, upstreamOutW, opts)
191
- })
192
- }()
193
- go func() {
194
- defer wg.Done()
195
- defer cancel()
196
- defer upstreamInW.Close()
197
- defer upstreamOutR.Close()
198
- proxyErr = proxy.Run(serverCtx)
199
- }()
200
- wg.Wait()
201
-
202
- for _, err := range []error{serverErr, proxyErr} {
203
- if err == nil {
204
- continue
205
- }
206
- if errors.Is(err, context.Canceled) {
207
- continue
208
- }
209
- if errors.Is(err, ErrFrameClosed) {
210
- continue
211
- }
212
- if errors.Is(err, io.ErrClosedPipe) {
213
- continue
214
- }
215
- return err
216
- }
217
- return nil
151
+ if opts.Cwd == "" {
152
+ return ErrLSPCwdRequired
153
+ }
154
+ if err := upstreamValidator(opts); err != nil {
155
+ return err
156
+ }
157
+ source := opts.Source
158
+ if source == nil {
159
+ source = NullPluginSource{}
160
+ }
161
+
162
+ upstreamInR, upstreamInW := io.Pipe()
163
+ upstreamOutR, upstreamOutW := io.Pipe()
164
+
165
+ proxy := NewProxy(ProxyOptions{
166
+ EditorIn: opts.In,
167
+ EditorOut: opts.Out,
168
+ UpstreamIn: upstreamInW,
169
+ UpstreamOut: upstreamOutR,
170
+ Source: source,
171
+ })
172
+
173
+ serverCtx, cancel := context.WithCancel(ctx)
174
+ defer cancel()
175
+
176
+ // Watchdog: on cancel, close the writer ends of the upstream pipes so
177
+ // both halves unblock with a clean io.EOF. Closing readers directly
178
+ // would surface as io.ErrClosedPipe and make ttsc's error fold
179
+ // ambiguous; closing writers preserves the ErrFrameClosed signal. The
180
+ // editor input is also closed when possible so an upstream process-start
181
+ // failure cannot leave the editor->upstream pump blocked on stdin.
182
+ go func() {
183
+ <-serverCtx.Done()
184
+ closeIfCloser(opts.In)
185
+ upstreamInW.Close()
186
+ upstreamOutW.Close()
187
+ }()
188
+
189
+ var wg sync.WaitGroup
190
+ var serverErr, proxyErr error
191
+ wg.Add(2)
192
+ go func() {
193
+ defer wg.Done()
194
+ defer cancel()
195
+ defer upstreamOutW.Close()
196
+ defer upstreamInR.Close()
197
+ serverErr = RecoverPanicAs(func() error {
198
+ return upstreamRunner(serverCtx, upstreamInR, upstreamOutW, opts)
199
+ })
200
+ }()
201
+ go func() {
202
+ defer wg.Done()
203
+ defer cancel()
204
+ defer upstreamInW.Close()
205
+ defer upstreamOutR.Close()
206
+ proxyErr = proxy.Run(serverCtx)
207
+ }()
208
+ wg.Wait()
209
+
210
+ for _, err := range []error{serverErr, proxyErr} {
211
+ if err == nil {
212
+ continue
213
+ }
214
+ if errors.Is(err, context.Canceled) {
215
+ continue
216
+ }
217
+ if errors.Is(err, ErrFrameClosed) {
218
+ continue
219
+ }
220
+ if errors.Is(err, io.ErrClosedPipe) {
221
+ continue
222
+ }
223
+ return err
224
+ }
225
+ return nil
218
226
  }
219
227
 
220
228
  // DenyNpmInstall is kept for source compatibility with older driver
221
229
  // embedders that hosted tsgo in-process. The process wrapper cannot
222
230
  // override tsgo's internal ATA callback.
223
231
  func DenyNpmInstall(_ string, args []string) ([]byte, error) {
224
- return nil, fmt.Errorf("ttscserver: npm install disabled in LSP host (args=%v)", args)
232
+ return nil, fmt.Errorf("ttscserver: npm install disabled in LSP host (args=%v)", args)
225
233
  }
226
234
 
235
+ // closeIfCloser closes value if it implements io.Closer. The error is
236
+ // intentionally discarded: callers invoke this only for cleanup on
237
+ // shutdown paths where the underlying stream is already going away.
227
238
  func closeIfCloser(value any) {
228
- if closer, ok := value.(io.Closer); ok {
229
- _ = closer.Close()
230
- }
239
+ if closer, ok := value.(io.Closer); ok {
240
+ _ = closer.Close()
241
+ }
231
242
  }
@@ -23,6 +23,13 @@ import type { ITtscCompilerTransformation } from "./structures/ITtscCompilerTran
23
23
  */
24
24
  export declare class TtscCompiler {
25
25
  private readonly context;
26
+ /**
27
+ * Create a new compiler instance bound to the given project context.
28
+ *
29
+ * The context is defensively copied: mutations to the original object after
30
+ * construction do not affect this instance. Omit `context` (or pass `{}`) to
31
+ * inherit all defaults from the running process.
32
+ */
26
33
  constructor(context?: ITtscCompilerContext);
27
34
  /**
28
35
  * Build every configured source plugin into the instance cache.
@@ -34,6 +34,13 @@ const loadProjectPlugins_1 = require("./plugin/internal/loadProjectPlugins");
34
34
  */
35
35
  class TtscCompiler {
36
36
  context;
37
+ /**
38
+ * Create a new compiler instance bound to the given project context.
39
+ *
40
+ * The context is defensively copied: mutations to the original object after
41
+ * construction do not affect this instance. Omit `context` (or pass `{}`) to
42
+ * inherit all defaults from the running process.
43
+ */
37
44
  constructor(context = {}) {
38
45
  this.context = {
39
46
  ...context,
@@ -1 +1 @@
1
- {"version":3,"file":"TtscCompiler.js","sourceRoot":"","sources":["../src/TtscCompiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TtscCompiler.js","sourceRoot":"","sources":["../src/TtscCompiler.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,14 @@
1
- /** Build the native ttsc compiler host used by in-memory API compilation. */
1
+ /**
2
+ * Build (or retrieve from cache) the native ttsc compiler host binary used by
3
+ * the in-memory API compilation paths (`compileProjectInMemory`,
4
+ * `transformProjectInMemory`).
5
+ *
6
+ * The host is the `cmd/ttsc` Go entrypoint compiled with `buildSourcePlugin`.
7
+ * The cache key incorporates the ttsc package version and the full `go.mod`
8
+ * contents so a toolchain upgrade automatically produces a fresh binary.
9
+ *
10
+ * @returns Absolute path to the compiled host executable.
11
+ */
2
12
  export declare function buildNativeCompiler(options: {
3
13
  cacheBaseDir: string;
4
14
  cacheDir?: string;
@@ -7,7 +7,17 @@ exports.buildNativeCompiler = buildNativeCompiler;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
9
  const buildSourcePlugin_1 = require("../../plugin/internal/buildSourcePlugin");
10
- /** Build the native ttsc compiler host used by in-memory API compilation. */
10
+ /**
11
+ * Build (or retrieve from cache) the native ttsc compiler host binary used by
12
+ * the in-memory API compilation paths (`compileProjectInMemory`,
13
+ * `transformProjectInMemory`).
14
+ *
15
+ * The host is the `cmd/ttsc` Go entrypoint compiled with `buildSourcePlugin`.
16
+ * The cache key incorporates the ttsc package version and the full `go.mod`
17
+ * contents so a toolchain upgrade automatically produces a fresh binary.
18
+ *
19
+ * @returns Absolute path to the compiled host executable.
20
+ */
11
21
  function buildNativeCompiler(options) {
12
22
  return (0, buildSourcePlugin_1.buildSourcePlugin)({
13
23
  baseDir: options.cacheBaseDir,
@@ -21,6 +31,10 @@ function buildNativeCompiler(options) {
21
31
  tsgoVersion: readGoModuleVersion(options.packageRoot),
22
32
  });
23
33
  }
34
+ /**
35
+ * Read the `version` field from `package.json` inside `packageRoot`, falling
36
+ * back to `"0.0.0"` when the file is absent or malformed.
37
+ */
24
38
  function readOwnPackageVersion(packageRoot) {
25
39
  try {
26
40
  const pkg = JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.join(packageRoot, "package.json"), "utf8"));
@@ -30,10 +44,16 @@ function readOwnPackageVersion(packageRoot) {
30
44
  return "0.0.0";
31
45
  }
32
46
  }
47
+ /**
48
+ * Read the full contents of `go.mod` inside `packageRoot` and use it as a
49
+ * version token for the binary cache key. Returns `"unknown"` on read error.
50
+ *
51
+ * Using the entire `go.mod` ensures that any dependency bump (including
52
+ * indirect ones) invalidates the cached binary.
53
+ */
33
54
  function readGoModuleVersion(packageRoot) {
34
55
  try {
35
- const goMod = node_fs_1.default.readFileSync(node_path_1.default.join(packageRoot, "go.mod"), "utf8");
36
- return goMod;
56
+ return node_fs_1.default.readFileSync(node_path_1.default.join(packageRoot, "go.mod"), "utf8");
37
57
  }
38
58
  catch {
39
59
  return "unknown";
@@ -1 +1 @@
1
- {"version":3,"file":"buildNativeCompiler.js","sourceRoot":"","sources":["../../../src/compiler/internal/buildNativeCompiler.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAE7B,+EAA4E;AAE5E,6EAA6E;AAC7E,6BAAoC,OAInC;IACC,OAAO,IAAA,qCAAiB,EAAC;QACvB,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC;QACrD,WAAW,EAAE,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC;QACvD,WAAW,EAAE,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC;KACtD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,WAAmB;IAChD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,iBAAE,CAAC,YAAY,CAAC,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACvC,CAAC;QAC3B,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,iBAAE,CAAC,YAAY,CAAC,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"buildNativeCompiler.js","sourceRoot":"","sources":["../../../src/compiler/internal/buildNativeCompiler.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAE7B,+EAA4E;AAE5E;;;;;;;;;;GAUG;AACH,6BAAoC,OAInC;IACC,OAAO,IAAA,qCAAiB,EAAC;QACvB,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC;QACrD,WAAW,EAAE,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC;QACvD,WAAW,EAAE,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC;KACtD,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,WAAmB;IAChD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,iBAAE,CAAC,YAAY,CAAC,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACvC,CAAC;QAC3B,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,IAAI,CAAC;QACH,OAAO,iBAAE,CAAC,YAAY,CAAC,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -3,6 +3,15 @@ import type { TtscBuildResult } from "../../structures/internal/TtscBuildResult"
3
3
  /**
4
4
  * Compile a project and capture emitted files without writing to the project
5
5
  * tree.
6
+ *
7
+ * When no plugins are configured the fast path spawns the native ttsc compiler
8
+ * host (`cmd/ttsc api-compile`) which returns a structured JSON response
9
+ * containing diagnostics and an output file map. When plugins are present the
10
+ * slow path goes through `runBuild` into a temp directory and reads the files
11
+ * back from disk.
12
+ *
13
+ * @returns A map of output path → file content plus a `TtscBuildResult` with
14
+ * diagnostics and the exit status.
6
15
  */
7
16
  export declare function compileProjectInMemory(options: ITtscCompilerContext): {
8
17
  output: Record<string, string>;
@@ -10,11 +10,21 @@ const node_os_1 = __importDefault(require("node:os"));
10
10
  const node_path_1 = __importDefault(require("node:path"));
11
11
  const loadProjectPlugins_1 = require("../../plugin/internal/loadProjectPlugins");
12
12
  const buildNativeCompiler_1 = require("./buildNativeCompiler");
13
+ const paths_1 = require("./paths");
13
14
  const readProjectConfig_1 = require("./project/readProjectConfig");
14
15
  const runBuild_1 = require("./runBuild");
15
16
  /**
16
17
  * Compile a project and capture emitted files without writing to the project
17
18
  * tree.
19
+ *
20
+ * When no plugins are configured the fast path spawns the native ttsc compiler
21
+ * host (`cmd/ttsc api-compile`) which returns a structured JSON response
22
+ * containing diagnostics and an output file map. When plugins are present the
23
+ * slow path goes through `runBuild` into a temp directory and reads the files
24
+ * back from disk.
25
+ *
26
+ * @returns A map of output path → file content plus a `TtscBuildResult` with
27
+ * diagnostics and the exit status.
18
28
  */
19
29
  function compileProjectInMemory(options) {
20
30
  const cwd = node_path_1.default.resolve(options.cwd ?? process.cwd());
@@ -30,7 +40,7 @@ function compileProjectInMemory(options) {
30
40
  const binary = (0, buildNativeCompiler_1.buildNativeCompiler)({
31
41
  cacheBaseDir: project.root,
32
42
  cacheDir: options.cacheDir ?? options.env?.TTSC_CACHE_DIR,
33
- packageRoot: packageRootDir(),
43
+ packageRoot: (0, paths_1.packageRootDir)(),
34
44
  });
35
45
  const res = (0, node_child_process_1.spawnSync)(binary, ["api-compile", "--cwd", project.root, "--tsconfig", tsconfig], {
36
46
  cwd: project.root,
@@ -53,9 +63,14 @@ function compileProjectInMemory(options) {
53
63
  },
54
64
  };
55
65
  }
66
+ /** Return true when the project or the call-level options declare any plugins. */
56
67
  function hasConfiguredPlugins(options, project) {
57
68
  return (0, loadProjectPlugins_1.hasProjectPluginEntries)(project, options.plugins);
58
69
  }
70
+ /**
71
+ * Plugin-backed compilation: emit into a temp directory via `runBuild`, then
72
+ * read back every file the build wrote so they can be returned as strings.
73
+ */
59
74
  function compileProjectWithPlugins(options, cwd, project) {
60
75
  const tempRoot = node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), "ttsc-api-output-"));
61
76
  const tempOutDir = node_path_1.default.join(tempRoot, "out");
@@ -79,23 +94,28 @@ function compileProjectWithPlugins(options, cwd, project) {
79
94
  node_fs_1.default.rmSync(tempRoot, { force: true, recursive: true });
80
95
  }
81
96
  }
97
+ /**
98
+ * Build a function that maps a path relative to the temp output directory to
99
+ * the key used in the returned `output` map.
100
+ *
101
+ * When `outDir` is inside the project root the key is relative to the project
102
+ * root (preserving the `outDir` prefix). When `outDir` is outside the project
103
+ * root the key is absolute-style (`/absolute/outDir/relative`). When `outDir`
104
+ * is absent the key is the bare relative path.
105
+ */
82
106
  function outputKeyMapper(project) {
83
107
  const outDir = project.compilerOptions.outDir;
84
108
  if (!outDir) {
85
109
  return (relativePath) => relativePath;
86
110
  }
87
111
  const relativeOutDir = node_path_1.default.relative(project.root, outDir);
88
- if (relativeOutDir !== "" && !isOutsideRelativePath(relativeOutDir)) {
112
+ if (relativeOutDir !== "" && !(0, paths_1.isOutsideRelativePath)(relativeOutDir)) {
89
113
  const prefix = pathToKey(relativeOutDir);
90
114
  return (relativePath) => node_path_1.default.posix.join(prefix, relativePath);
91
115
  }
92
116
  return (relativePath) => pathToKey(node_path_1.default.join(outDir, relativePath));
93
117
  }
94
- function isOutsideRelativePath(relative) {
95
- return (relative === ".." ||
96
- relative.startsWith(`..${node_path_1.default.sep}`) ||
97
- node_path_1.default.isAbsolute(relative));
98
- }
118
+ /** Read every file in `directory` recursively and return a `path→content` map. */
99
119
  function readOutputDirectory(directory, keyOf) {
100
120
  const output = {};
101
121
  if (!node_fs_1.default.existsSync(directory)) {
@@ -106,6 +126,7 @@ function readOutputDirectory(directory, keyOf) {
106
126
  }
107
127
  return output;
108
128
  }
129
+ /** Recursively list all files under `directory`, sorted for stable output. */
109
130
  function listFiles(directory) {
110
131
  const out = [];
111
132
  for (const entry of node_fs_1.default.readdirSync(directory, { withFileTypes: true })) {
@@ -119,9 +140,17 @@ function listFiles(directory) {
119
140
  }
120
141
  return out.sort();
121
142
  }
143
+ /** Normalise a file path to a forward-slash key suitable for the output map. */
122
144
  function pathToKey(file) {
123
145
  return file.replace(/\\/g, "/");
124
146
  }
147
+ /**
148
+ * Parse the JSON envelope written by the native compiler host to stdout.
149
+ *
150
+ * On success returns `{ diagnostics, output }`. On JSON parse failure throws a
151
+ * descriptive error using stderr (preferred) or stdout as context, so callers
152
+ * see the original compiler error rather than a generic JSON parse message.
153
+ */
125
154
  function parseNativeCompileOutput(stdout, stderr) {
126
155
  try {
127
156
  const parsed = JSON.parse(stdout);
@@ -135,18 +164,4 @@ function parseNativeCompileOutput(stdout, stderr) {
135
164
  "ttsc: native compiler host returned no output");
136
165
  }
137
166
  }
138
- function packageRootDir() {
139
- let current = node_path_1.default.resolve(__dirname);
140
- while (true) {
141
- if (node_fs_1.default.existsSync(node_path_1.default.join(current, "package.json")) &&
142
- node_fs_1.default.existsSync(node_path_1.default.join(current, "go.mod"))) {
143
- return node_fs_1.default.realpathSync.native?.(current) ?? node_fs_1.default.realpathSync(current);
144
- }
145
- const parent = node_path_1.default.dirname(current);
146
- if (parent === current) {
147
- throw new Error("ttsc: package root not found for native compiler build");
148
- }
149
- current = parent;
150
- }
151
- }
152
167
  //# sourceMappingURL=compileProjectInMemory.js.map
@@ -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":";;;;;;AAAA,2DAA+C;AAC/C,sDAAyB;AACzB,sDAAyB;AACzB,0DAA6B;AAE7B,iFAAmF;AAKnF,+DAA4D;AAC5D,mCAAgE;AAChE,mEAAgE;AAChE,yCAAsC;AAEtC;;;;;;;;;;;;GAYG;AACH,gCAAuC,OAA6B;IAIlE,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAA,qCAAiB,EAAC;QAChC,GAAG;QACH,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,IAAI,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAA,yCAAmB,EAAC;QACjC,YAAY,EAAE,OAAO,CAAC,IAAI;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,cAAc;QACzD,WAAW,EAAE,IAAA,sBAAc,GAAE;KAC9B,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAA,8BAAS,EACnB,MAAM,EACN,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,EAC9D;QACE,GAAG,EAAE,OAAO,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QACvC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG;QAC5B,WAAW,EAAE,IAAI;KAClB,CACF,CAAC;IACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,8CAA8C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE;YACN,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC;YACvB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB;KACF,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,SAAS,oBAAoB,CAC3B,OAA6B,EAC7B,OAAiC;IAEjC,OAAO,IAAA,4CAAuB,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAChC,OAA6B,EAC7B,GAAW,EACX,OAAiC;IAKjC,MAAM,QAAQ,GAAG,iBAAE,CAAC,WAAW,CAAC,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC;YACtB,GAAG,OAAO;YACV,GAAG;YACH,IAAI,EAAE,IAAI;YACV,qBAAqB,EAAE,IAAI;YAC3B,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,IAAI;YACX,qBAAqB,EAAE,IAAI;YAC3B,QAAQ,EAAE,OAAO,CAAC,IAAI;SACvB,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;YACjE,MAAM;SACP,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,iBAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CACtB,OAAiC;IAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC;IACxC,CAAC;IACD,MAAM,cAAc,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAI,cAAc,KAAK,EAAE,IAAI,CAAC,IAAA,6BAAqB,EAAC,cAAc,CAAC,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QACzC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,kFAAkF;AAClF,SAAS,mBAAmB,CAC1B,SAAiB,EACjB,KAAuC;IAEvC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAE,CAAC,YAAY,CACxE,IAAI,EACJ,MAAM,CACP,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,SAAS,SAAS,CAAC,SAAiB;IAClC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,iBAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,gFAAgF;AAChF,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAC/B,MAAc,EACd,MAAc;IAKd,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAG/B,CAAC;QACF,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;SAC5B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE;YACvB,+CAA+C,CAClD,CAAC;IACJ,CAAC;AACH,CAAC"}