@ttsc/wasm 0.18.4 → 0.19.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.
@@ -115,6 +115,60 @@ function createMemFS() {
115
115
  }
116
116
  }
117
117
  }
118
+ /** Absolute parent directory of a normalized path (`/` for a top-level path). */
119
+ function parentDir(norm) {
120
+ const idx = norm.lastIndexOf("/");
121
+ return idx <= 0 ? "/" : norm.slice(0, idx);
122
+ }
123
+ /** True when `dir` has at least one descendant node in the tree. */
124
+ function hasChildren(dir) {
125
+ const prefix = dir === "/" ? "/" : dir + "/";
126
+ for (const key of nodes.keys()) {
127
+ if (key !== dir && key.startsWith(prefix))
128
+ return true;
129
+ }
130
+ return false;
131
+ }
132
+ /**
133
+ * Grow or shrink a file's byte buffer to exactly `length`, zero-filling any
134
+ * extension. Callers validate `length >= 0` first.
135
+ */
136
+ function resizeFileData(data, length) {
137
+ const next = new Uint8Array(length);
138
+ next.set(data.subarray(0, Math.min(length, data.byteLength)));
139
+ return next;
140
+ }
141
+ /**
142
+ * Move the entire subtree rooted at `src` to `dest`, overwriting any existing
143
+ * `dest` node. Every descendant key is re-parented so no old-prefix node is
144
+ * left orphaned, and open descriptors that referenced a moved path follow to
145
+ * the new location (a rename must not strand an fd's inode).
146
+ */
147
+ function moveSubtree(src, dest) {
148
+ const srcPrefix = src + "/";
149
+ const moves = [];
150
+ for (const [key, node] of nodes) {
151
+ if (key === src)
152
+ moves.push([dest, node]);
153
+ else if (key.startsWith(srcPrefix))
154
+ moves.push([dest + "/" + key.slice(srcPrefix.length), node]);
155
+ }
156
+ // Delete the whole source subtree first so a nested overwrite cannot leave
157
+ // a stale descendant behind, then reinsert at the destination prefix. Any
158
+ // pre-existing `dest` node is replaced by the reinsert.
159
+ for (const key of [...nodes.keys()]) {
160
+ if (key === src || key.startsWith(srcPrefix))
161
+ nodes.delete(key);
162
+ }
163
+ for (const [key, node] of moves)
164
+ nodes.set(key, node);
165
+ for (const entry of fdTable.values()) {
166
+ if (entry.path === src)
167
+ entry.path = dest;
168
+ else if (entry.path.startsWith(srcPrefix))
169
+ entry.path = dest + "/" + entry.path.slice(srcPrefix.length);
170
+ }
171
+ }
118
172
  function mkdirp(p) {
119
173
  const segments = normalize(p).split("/").filter(Boolean);
120
174
  let cursor = "";
@@ -232,10 +286,8 @@ function createMemFS() {
232
286
  console.error("[wasm]", line);
233
287
  return buf.length;
234
288
  }
235
- // Open-file fds (>= 100): append to the underlying file. This is the
236
- // path the wasm host's runWithCapturedIO uses to capture plugin
237
- // stdout/stderr via /tmp/* temp files (os.Pipe is not implemented on
238
- // js/wasm so we mirror its semantics via files).
289
+ // Open-file fds (>= 100): append to the underlying file. Browser-hosted
290
+ // tools use this path for ordinary virtual files and explicit outputs.
239
291
  const entry = fdTable.get(fd);
240
292
  if (entry) {
241
293
  const node = nodes.get(entry.path);
@@ -439,10 +491,19 @@ function createMemFS() {
439
491
  },
440
492
  unlink(p, callback) {
441
493
  const norm = normalize(p);
442
- if (!nodes.has(norm)) {
494
+ const node = nodes.get(norm);
495
+ if (!node) {
443
496
  callback(new MemFSError_1.MemFSError("ENOENT", "unlink", norm));
444
497
  return;
445
498
  }
499
+ // POSIX unlink refuses directories (EISDIR/EPERM). Go's os.Remove tries
500
+ // unlink first and only falls back to rmdir when it fails, so a false
501
+ // success here would delete just the directory node and orphan every
502
+ // descendant. Reject so the rmdir path (which validates emptiness) runs.
503
+ if (node.kind === "dir") {
504
+ callback(new MemFSError_1.MemFSError("EISDIR", "unlink", norm));
505
+ return;
506
+ }
446
507
  nodes.delete(norm);
447
508
  callback(null);
448
509
  },
@@ -453,13 +514,74 @@ function createMemFS() {
453
514
  callback(new MemFSError_1.MemFSError("ENOENT", "rename", src));
454
515
  return;
455
516
  }
517
+ if (src === "/") {
518
+ callback(new MemFSError_1.MemFSError("EBUSY", "rename", src));
519
+ return;
520
+ }
456
521
  const dest = normalize(to);
457
- nodes.delete(src);
458
- nodes.set(dest, node);
522
+ // Renaming a path onto itself is a defined no-op success.
523
+ if (src === dest) {
524
+ callback(null);
525
+ return;
526
+ }
527
+ // A directory cannot be moved inside itself or its own descendants.
528
+ if (node.kind === "dir" && dest.startsWith(src + "/")) {
529
+ callback(new MemFSError_1.MemFSError("EINVAL", "rename", src));
530
+ return;
531
+ }
532
+ // The destination's parent must already exist as a directory.
533
+ const parent = nodes.get(parentDir(dest));
534
+ if (!parent) {
535
+ callback(new MemFSError_1.MemFSError("ENOENT", "rename", dest));
536
+ return;
537
+ }
538
+ if (parent.kind !== "dir") {
539
+ callback(new MemFSError_1.MemFSError("ENOTDIR", "rename", dest));
540
+ return;
541
+ }
542
+ // Reconcile against an existing destination before mutating anything so a
543
+ // rejected rename leaves the tree untouched (no partial state).
544
+ const destNode = nodes.get(dest);
545
+ if (destNode) {
546
+ if (node.kind === "file") {
547
+ if (destNode.kind === "dir") {
548
+ callback(new MemFSError_1.MemFSError("EISDIR", "rename", dest));
549
+ return;
550
+ }
551
+ }
552
+ else if (destNode.kind !== "dir") {
553
+ callback(new MemFSError_1.MemFSError("ENOTDIR", "rename", dest));
554
+ return;
555
+ }
556
+ else if (hasChildren(dest)) {
557
+ callback(new MemFSError_1.MemFSError("ENOTEMPTY", "rename", dest));
558
+ return;
559
+ }
560
+ }
561
+ moveSubtree(src, dest);
459
562
  callback(null);
460
563
  },
461
564
  rmdir(p, callback) {
462
- this.unlink(p, callback);
565
+ const norm = normalize(p);
566
+ const node = nodes.get(norm);
567
+ if (!node) {
568
+ callback(new MemFSError_1.MemFSError("ENOENT", "rmdir", norm));
569
+ return;
570
+ }
571
+ if (node.kind !== "dir") {
572
+ callback(new MemFSError_1.MemFSError("ENOTDIR", "rmdir", norm));
573
+ return;
574
+ }
575
+ if (norm === "/") {
576
+ callback(new MemFSError_1.MemFSError("EBUSY", "rmdir", norm));
577
+ return;
578
+ }
579
+ if (hasChildren(norm)) {
580
+ callback(new MemFSError_1.MemFSError("ENOTEMPTY", "rmdir", norm));
581
+ return;
582
+ }
583
+ nodes.delete(norm);
584
+ callback(null);
463
585
  },
464
586
  chmod(_p, _mode, callback) {
465
587
  callback(null);
@@ -488,10 +610,51 @@ function createMemFS() {
488
610
  readlink(_p, callback) {
489
611
  callback(new MemFSError_1.MemFSError("EINVAL", "readlink"), "");
490
612
  },
491
- truncate(_p, _length, callback) {
613
+ truncate(p, length, callback) {
614
+ const norm = normalize(p);
615
+ const node = nodes.get(norm);
616
+ if (!node) {
617
+ callback(new MemFSError_1.MemFSError("ENOENT", "truncate", norm));
618
+ return;
619
+ }
620
+ if (node.kind !== "file") {
621
+ callback(new MemFSError_1.MemFSError("EISDIR", "truncate", norm));
622
+ return;
623
+ }
624
+ if (!Number.isInteger(length) || length < 0) {
625
+ callback(new MemFSError_1.MemFSError("EINVAL", "truncate", norm));
626
+ return;
627
+ }
628
+ node.data = resizeFileData(node.data, length);
629
+ node.mtimeMs = Date.now();
492
630
  callback(null);
493
631
  },
494
- ftruncate(_fd, _length, callback) {
632
+ ftruncate(fd, length, callback) {
633
+ // Pipe ends and the reserved stdout/stderr fds have no truncatable file.
634
+ if (pipes.has(fd)) {
635
+ callback(new MemFSError_1.MemFSError("EINVAL", "ftruncate"));
636
+ return;
637
+ }
638
+ const entry = fdTable.get(fd);
639
+ if (!entry) {
640
+ callback(new MemFSError_1.MemFSError("EBADF", "ftruncate"));
641
+ return;
642
+ }
643
+ if (entry.isStdout || entry.isStderr) {
644
+ callback(new MemFSError_1.MemFSError("EINVAL", "ftruncate"));
645
+ return;
646
+ }
647
+ const node = nodes.get(entry.path);
648
+ if (!node || node.kind !== "file") {
649
+ callback(new MemFSError_1.MemFSError("EINVAL", "ftruncate", entry.path));
650
+ return;
651
+ }
652
+ if (!Number.isInteger(length) || length < 0) {
653
+ callback(new MemFSError_1.MemFSError("EINVAL", "ftruncate", entry.path));
654
+ return;
655
+ }
656
+ node.data = resizeFileData(node.data, length);
657
+ node.mtimeMs = Date.now();
495
658
  callback(null);
496
659
  },
497
660
  pipe2(_flags, callback) {
@@ -1 +1 @@
1
- {"version":3,"file":"createMemFS.js","sourceRoot":"","sources":["../../src/createMemFS.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createMemFS.js","sourceRoot":"","sources":["../../src/createMemFS.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttsc/wasm",
3
- "version": "0.18.4",
3
+ "version": "0.19.0",
4
4
  "description": "Build in-browser ttsc playgrounds. Compose ttsc + typescript-go with your own plugins via the Go host helper.",
5
5
  "main": "lib/src/index.js",
6
6
  "types": "lib/src/index.d.ts",
@@ -322,6 +322,16 @@ func GetCombinedNodeFlags(node *Node) NodeFlags {
322
322
  return innerast.GetCombinedNodeFlags(node)
323
323
  }
324
324
 
325
+ // IsConstAssertion reports whether node is an `as const` or `<const>`
326
+ // assertion. Unlike ordinary type assertions, a const assertion propagates
327
+ // its own contextual type to the asserted expression.
328
+ func IsConstAssertion(node *Node) bool { return innerast.IsConstAssertion(node) }
329
+
330
+ // IsPartOfTypeNode reports whether node belongs to syntax that is evaluated
331
+ // only by the type system. Lint rules use the upstream classifier so runtime
332
+ // reference analysis stays aligned with TypeScript's AST semantics.
333
+ func IsPartOfTypeNode(node *Node) bool { return innerast.IsPartOfTypeNode(node) }
334
+
325
335
  // IsLet reports whether the declaration was introduced by `let` / `using`.
326
336
  func IsLet(node *Node) bool { return GetCombinedNodeFlags(node)&NodeFlagsLet != 0 }
327
337
 
@@ -177,6 +177,42 @@ const (
177
177
  ModifierFlagsReadonly = innerast.ModifierFlagsReadonly
178
178
  )
179
179
 
180
+ // OperatorPrecedence members. The complete family is re-exported by hand so
181
+ // precedence comparisons (e.g. a lint fixer deciding whether a spliced
182
+ // replacement must be parenthesized) can name every level of the
183
+ // OperatorPrecedence type aliased in surface.go; a partial re-export would
184
+ // trip the shim_audit zero-tolerance enum gate.
185
+ const (
186
+ OperatorPrecedenceComma = innerast.OperatorPrecedenceComma
187
+ OperatorPrecedenceSpread = innerast.OperatorPrecedenceSpread
188
+ OperatorPrecedenceYield = innerast.OperatorPrecedenceYield
189
+ OperatorPrecedenceAssignment = innerast.OperatorPrecedenceAssignment
190
+ OperatorPrecedenceConditional = innerast.OperatorPrecedenceConditional
191
+ OperatorPrecedenceLogicalOR = innerast.OperatorPrecedenceLogicalOR
192
+ OperatorPrecedenceLogicalAND = innerast.OperatorPrecedenceLogicalAND
193
+ OperatorPrecedenceBitwiseOR = innerast.OperatorPrecedenceBitwiseOR
194
+ OperatorPrecedenceBitwiseXOR = innerast.OperatorPrecedenceBitwiseXOR
195
+ OperatorPrecedenceBitwiseAND = innerast.OperatorPrecedenceBitwiseAND
196
+ OperatorPrecedenceEquality = innerast.OperatorPrecedenceEquality
197
+ OperatorPrecedenceRelational = innerast.OperatorPrecedenceRelational
198
+ OperatorPrecedenceShift = innerast.OperatorPrecedenceShift
199
+ OperatorPrecedenceAdditive = innerast.OperatorPrecedenceAdditive
200
+ OperatorPrecedenceMultiplicative = innerast.OperatorPrecedenceMultiplicative
201
+ OperatorPrecedenceExponentiation = innerast.OperatorPrecedenceExponentiation
202
+ OperatorPrecedenceUnary = innerast.OperatorPrecedenceUnary
203
+ OperatorPrecedenceUpdate = innerast.OperatorPrecedenceUpdate
204
+ OperatorPrecedenceLeftHandSide = innerast.OperatorPrecedenceLeftHandSide
205
+ OperatorPrecedenceOptionalChain = innerast.OperatorPrecedenceOptionalChain
206
+ OperatorPrecedenceMember = innerast.OperatorPrecedenceMember
207
+ OperatorPrecedencePrimary = innerast.OperatorPrecedencePrimary
208
+ OperatorPrecedenceParentheses = innerast.OperatorPrecedenceParentheses
209
+ OperatorPrecedenceLowest = innerast.OperatorPrecedenceLowest
210
+ OperatorPrecedenceHighest = innerast.OperatorPrecedenceHighest
211
+ OperatorPrecedenceDisallowComma = innerast.OperatorPrecedenceDisallowComma
212
+ OperatorPrecedenceCoalesce = innerast.OperatorPrecedenceCoalesce
213
+ OperatorPrecedenceInvalid = innerast.OperatorPrecedenceInvalid
214
+ )
215
+
180
216
  // NewNodeFactory creates an AST node factory with the supplied creation hooks.
181
217
  // Pass a zero-value NodeFactoryHooks to get the default factory behaviour.
182
218
  func NewNodeFactory(options NodeFactoryHooks) *NodeFactory {
@@ -195,6 +231,14 @@ func GetCombinedModifierFlags(node *Node) ModifierFlags {
195
231
  return innerast.GetCombinedModifierFlags(node)
196
232
  }
197
233
 
234
+ // GetExpressionPrecedence returns the operator precedence of an expression
235
+ // node — the level at which it binds relative to a surrounding expression.
236
+ // Callers compare it against an OperatorPrecedence floor to decide whether a
237
+ // textual splice of the expression into a new position needs parentheses.
238
+ func GetExpressionPrecedence(expression *Expression) OperatorPrecedence {
239
+ return innerast.GetExpressionPrecedence(expression)
240
+ }
241
+
198
242
  // IsFunctionLike reports whether node is any function-like construct
199
243
  // (function declaration, arrow function, method, constructor, accessor, etc.).
200
244
  func IsFunctionLike(node *Node) bool {
@@ -15,6 +15,25 @@ const (
15
15
  ElementFlagsNonRequired = innerchecker.ElementFlagsNonRequired
16
16
  ElementFlagsNonRest = innerchecker.ElementFlagsNonRest
17
17
  ElementFlagsVariable = innerchecker.ElementFlagsVariable
18
+ IterationTypeKindNext = innerchecker.IterationTypeKindNext
19
+ IterationTypeKindReturn = innerchecker.IterationTypeKindReturn
20
+ IterationUseAllowsAsyncIterablesFlag = innerchecker.IterationUseAllowsAsyncIterablesFlag
21
+ IterationUseAllowsStringInputFlag = innerchecker.IterationUseAllowsStringInputFlag
22
+ IterationUseAllowsSyncIterablesFlag = innerchecker.IterationUseAllowsSyncIterablesFlag
23
+ IterationUseAsyncGeneratorReturnType = innerchecker.IterationUseAsyncGeneratorReturnType
24
+ IterationUseAsyncYieldStar = innerchecker.IterationUseAsyncYieldStar
25
+ IterationUseCacheFlags = innerchecker.IterationUseCacheFlags
26
+ IterationUseDestructuring = innerchecker.IterationUseDestructuring
27
+ IterationUseDestructuringFlag = innerchecker.IterationUseDestructuringFlag
28
+ IterationUseForAwaitOf = innerchecker.IterationUseForAwaitOf
29
+ IterationUseForOf = innerchecker.IterationUseForOf
30
+ IterationUseForOfFlag = innerchecker.IterationUseForOfFlag
31
+ IterationUseGeneratorReturnType = innerchecker.IterationUseGeneratorReturnType
32
+ IterationUsePossiblyOutOfBounds = innerchecker.IterationUsePossiblyOutOfBounds
33
+ IterationUseSpread = innerchecker.IterationUseSpread
34
+ IterationUseSpreadFlag = innerchecker.IterationUseSpreadFlag
35
+ IterationUseYieldStar = innerchecker.IterationUseYieldStar
36
+ IterationUseYieldStarFlag = innerchecker.IterationUseYieldStarFlag
18
37
  ObjectFlagsAnonymous = innerchecker.ObjectFlagsAnonymous
19
38
  ObjectFlagsArrayLiteral = innerchecker.ObjectFlagsArrayLiteral
20
39
  ObjectFlagsContainsIntersections = innerchecker.ObjectFlagsContainsIntersections
@@ -9,8 +9,11 @@
9
9
  package checker
10
10
 
11
11
  import (
12
+ "sync"
13
+
12
14
  innerast "github.com/microsoft/typescript-go/internal/ast"
13
15
  innerchecker "github.com/microsoft/typescript-go/internal/checker"
16
+ innerprinter "github.com/microsoft/typescript-go/internal/printer"
14
17
  _ "unsafe"
15
18
  )
16
19
 
@@ -22,6 +25,80 @@ type Type = innerchecker.Type
22
25
  type TypeFlags = innerchecker.TypeFlags
23
26
  type ObjectFlags = innerchecker.ObjectFlags
24
27
  type ElementFlags = innerchecker.ElementFlags
28
+ type Program = innerchecker.Program
29
+ type Tracer = innerchecker.Tracer
30
+
31
+ // NewChecker creates a checker that owns its complete type graph for program.
32
+ // The returned mutex is the upstream checker-pool synchronization primitive;
33
+ // callers that share the checker must serialize access through it.
34
+ func NewChecker(program Program, tracer *Tracer) (*Checker, *sync.Mutex) {
35
+ return innerchecker.NewChecker(program, tracer)
36
+ }
37
+
38
+ //go:linkname checkerGetRegularTypeOfLiteralType github.com/microsoft/typescript-go/internal/checker.(*Checker).getRegularTypeOfLiteralType
39
+ func checkerGetRegularTypeOfLiteralType(recv *innerchecker.Checker, t *innerchecker.Type) *innerchecker.Type
40
+
41
+ // Checker_getRegularTypeOfLiteralType returns the canonical regular form of a
42
+ // literal type. TypeScript's checker uses this before comparing switch case
43
+ // types because a source literal's fresh type and a union member's regular type
44
+ // denote the same runtime value but have different pointers.
45
+ func Checker_getRegularTypeOfLiteralType(recv *innerchecker.Checker, t *innerchecker.Type) *innerchecker.Type {
46
+ if recv == nil || t == nil {
47
+ return t
48
+ }
49
+ return checkerGetRegularTypeOfLiteralType(recv, t)
50
+ }
51
+
52
+ // Checker_typeToStringFullyQualified formats a type with the same stable,
53
+ // alias-aware flags TypeScript uses in diagnostics that name union members.
54
+ // Keeping the flag bundle inside the shim avoids leaking checker-internal enum
55
+ // types through consumer code.
56
+ func Checker_typeToStringFullyQualified(recv *innerchecker.Checker, t *innerchecker.Type, enclosingDeclaration *innerast.Node) string {
57
+ if recv == nil || t == nil {
58
+ return ""
59
+ }
60
+ return recv.TypeToStringEx(
61
+ t,
62
+ enclosingDeclaration,
63
+ innerchecker.TypeFormatFlagsAllowUniqueESSymbolType|
64
+ innerchecker.TypeFormatFlagsUseAliasDefinedOutsideCurrentScope|
65
+ innerchecker.TypeFormatFlagsUseFullyQualifiedType,
66
+ nil,
67
+ )
68
+ }
69
+
70
+ // Checker_symbolToValueString formats a symbol as a value-position expression
71
+ // at enclosingDeclaration. AllowAnyNodeKind lets the checker emit indexed
72
+ // access for enum members whose names cannot use dot notation.
73
+ func Checker_symbolToValueString(recv *innerchecker.Checker, symbol *innerast.Symbol, enclosingDeclaration *innerast.Node) string {
74
+ if recv == nil || symbol == nil {
75
+ return ""
76
+ }
77
+ return recv.SymbolToStringEx(
78
+ symbol,
79
+ enclosingDeclaration,
80
+ innerast.SymbolFlagsValue,
81
+ innerchecker.SymbolFormatFlagsAllowAnyNodeKind,
82
+ )
83
+ }
84
+
85
+ // Checker_isSymbolAccessibleAsValue verifies that SymbolToStringEx can name a
86
+ // symbol from enclosingDeclaration. Unlike GetAccessibleSymbolChain, the
87
+ // checker also follows containing enum, class, and namespace symbols, so a
88
+ // qualified member such as Domain.Mode.Done is accepted when its container is
89
+ // visible.
90
+ func Checker_isSymbolAccessibleAsValue(recv *innerchecker.Checker, symbol *innerast.Symbol, enclosingDeclaration *innerast.Node) bool {
91
+ if recv == nil || symbol == nil || enclosingDeclaration == nil {
92
+ return false
93
+ }
94
+ result := recv.IsSymbolAccessible(
95
+ symbol,
96
+ enclosingDeclaration,
97
+ innerast.SymbolFlagsValue,
98
+ false,
99
+ )
100
+ return result.Accessibility == innerprinter.SymbolAccessibilityAccessible
101
+ }
25
102
 
26
103
  const (
27
104
  SignatureKindCall = innerchecker.SignatureKindCall
@@ -110,6 +187,59 @@ func Checker_getTypeOfPropertyOfType(recv *innerchecker.Checker, t *innerchecker
110
187
  return recv.GetTypeOfPropertyOfType(t, name)
111
188
  }
112
189
 
190
+ //go:linkname checkerGetPropertyNameForKnownSymbolName github.com/microsoft/typescript-go/internal/checker.(*Checker).getPropertyNameForKnownSymbolName
191
+ func checkerGetPropertyNameForKnownSymbolName(recv *innerchecker.Checker, symbolName string) string
192
+
193
+ // Checker_getPropertyNameForKnownSymbolName returns the late-bound property
194
+ // name the checker uses for a member keyed by the global well-known symbol
195
+ // `Symbol.<symbolName>` (e.g. "asyncIterator", "asyncDispose", "iterator").
196
+ // It resolves the unique-symbol type of that property on the global
197
+ // `SymbolConstructor` — including lib-provided and `declare global` augmented
198
+ // members — so `(*Checker).GetPropertyOfType(t, name)` with the returned name
199
+ // finds exactly the members declared as `[Symbol.<symbolName>]`. This is the
200
+ // same resolution the checker itself performs when it validates `for await`
201
+ // iterability, which is why a lint rule that mirrors typescript-eslint's
202
+ // well-known-symbol protocol checks must go through it instead of matching
203
+ // property-name text. When the global `Symbol` constructor lacks the member,
204
+ // the checker's internal fallback name (a `\xFE@`-prefixed string no
205
+ // source-declared property can late-bind to) is returned, so lookups simply
206
+ // find nothing. Returns "" if recv is nil.
207
+ func Checker_getPropertyNameForKnownSymbolName(recv *innerchecker.Checker, symbolName string) string {
208
+ if recv == nil {
209
+ return ""
210
+ }
211
+ return checkerGetPropertyNameForKnownSymbolName(recv, symbolName)
212
+ }
213
+
214
+ //go:linkname checkerGetIterationTypeOfIterable github.com/microsoft/typescript-go/internal/checker.(*Checker).getIterationTypeOfIterable
215
+ func checkerGetIterationTypeOfIterable(
216
+ recv *innerchecker.Checker,
217
+ use innerchecker.IterationUse,
218
+ typeKind innerchecker.IterationTypeKind,
219
+ inputType *innerchecker.Type,
220
+ errorNode *innerast.Node,
221
+ ) *innerchecker.Type
222
+
223
+ // Checker_getSynchronousIterationYieldType returns the value type produced by
224
+ // inputType's checked `[Symbol.iterator]` protocol. It delegates to the same
225
+ // TypeScript-Go traversal used for synchronous iteration, including inherited
226
+ // and structural iterables, instantiated iterator returns, intersections, and
227
+ // primitive strings. A nil result means the checker could not derive a valid
228
+ // synchronous iteration type. Diagnostics are intentionally disabled because
229
+ // callers use this as a type query after normal TypeScript checking.
230
+ func Checker_getSynchronousIterationYieldType(recv *innerchecker.Checker, inputType *innerchecker.Type) *innerchecker.Type {
231
+ if recv == nil || inputType == nil {
232
+ return nil
233
+ }
234
+ return checkerGetIterationTypeOfIterable(
235
+ recv,
236
+ innerchecker.IterationUseElement,
237
+ innerchecker.IterationTypeKindYield,
238
+ inputType,
239
+ nil,
240
+ )
241
+ }
242
+
113
243
  //go:linkname checkerGetAliasSymbolForTypeNode github.com/microsoft/typescript-go/internal/checker.(*Checker).getAliasSymbolForTypeNode
114
244
  func checkerGetAliasSymbolForTypeNode(recv *innerchecker.Checker, node *innerast.Node) *innerast.Symbol
115
245
 
@@ -30,6 +30,35 @@ const (
30
30
  LintCategoryError
31
31
  )
32
32
 
33
+ // NormalizeLintRange returns a renderer-safe half-open source span. Diagnostic
34
+ // producers are a plugin trust boundary, so offsets are clamped even when the
35
+ // caller's contract says they point inside the current file. Reversed and
36
+ // zero-width ranges select one byte when one exists at pos; EOF and empty-file
37
+ // ranges remain zero-width instead of manufacturing a byte past the source.
38
+ func NormalizeLintRange(file *ast.SourceFile, pos, end int) (int, int) {
39
+ if file == nil {
40
+ return 0, 0
41
+ }
42
+ sourceLen := len(file.Text())
43
+ if pos < 0 {
44
+ pos = 0
45
+ } else if pos > sourceLen {
46
+ pos = sourceLen
47
+ }
48
+ if end < 0 {
49
+ end = 0
50
+ } else if end > sourceLen {
51
+ end = sourceLen
52
+ }
53
+ if end <= pos {
54
+ end = pos
55
+ if pos < sourceLen {
56
+ end++
57
+ }
58
+ }
59
+ return pos, end
60
+ }
61
+
33
62
  // LintDiagnostic is a public, plugin-emittable diagnostic shaped like the
34
63
  // `internal/diagnosticwriter.Diagnostic` interface. The internal type is
35
64
  // unexported, so this is the only way to mix lint output with tsgo's own
@@ -47,9 +76,7 @@ type LintDiagnostic struct {
47
76
  // supplied source file. `code` shows up in the rendered banner — the
48
77
  // convention is to give each rule its own stable integer.
49
78
  func NewLintDiagnostic(file *ast.SourceFile, pos, end int, code int32, category LintCategory, message string) *LintDiagnostic {
50
- if end <= pos {
51
- end = pos + 1
52
- }
79
+ pos, end = NormalizeLintRange(file, pos, end)
53
80
  return &LintDiagnostic{
54
81
  file: file,
55
82
  pos: pos,
@@ -0,0 +1,27 @@
1
+ package scanner
2
+
3
+ import (
4
+ "github.com/microsoft/typescript-go/internal/ast"
5
+ "github.com/microsoft/typescript-go/internal/diagnostics"
6
+ )
7
+
8
+ // IsValidRegularExpressionLiteral reports whether text is one complete,
9
+ // grammar-valid ECMAScript regular-expression literal. It deliberately uses
10
+ // typescript-go's own scanner and regexp parser so callers share the compiler's
11
+ // handling of escapes, flags, Unicode mode, and Unicode Sets syntax.
12
+ func IsValidRegularExpressionLiteral(text string) bool {
13
+ scanner := NewScanner()
14
+ valid := true
15
+ scanner.SetOnError(func(_ *diagnostics.Message, _, _ int, _ ...any) {
16
+ valid = false
17
+ })
18
+ scanner.SetText(text)
19
+ token := scanner.Scan()
20
+ if token != ast.KindSlashToken && token != ast.KindSlashEqualsToken {
21
+ return false
22
+ }
23
+ if scanner.ReScanSlashToken(true) != ast.KindRegularExpressionLiteral {
24
+ return false
25
+ }
26
+ return valid && scanner.TokenEnd() == len(text)
27
+ }