typescript 7.1.0-dev.20260819.1 → 7.1.0-dev.20260822.1

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 (222) hide show
  1. package/dist/api/async/api.d.ts +21 -18
  2. package/dist/api/async/api.d.ts.map +1 -1
  3. package/dist/api/async/api.js +61 -30
  4. package/dist/api/async/api.js.map +1 -1
  5. package/dist/api/async/client.d.ts +3 -2
  6. package/dist/api/async/client.d.ts.map +1 -1
  7. package/dist/api/async/client.js +2 -10
  8. package/dist/api/async/client.js.map +1 -1
  9. package/dist/api/async/types.d.ts +2 -0
  10. package/dist/api/async/types.d.ts.map +1 -1
  11. package/dist/api/node/encoder.d.ts.map +1 -1
  12. package/dist/api/node/encoder.generated.js +1 -1
  13. package/dist/api/node/encoder.generated.js.map +1 -1
  14. package/dist/api/node/encoder.js +2 -1
  15. package/dist/api/node/encoder.js.map +1 -1
  16. package/dist/api/node/node.d.ts +13 -1
  17. package/dist/api/node/node.d.ts.map +1 -1
  18. package/dist/api/node/node.generated.js +1 -1
  19. package/dist/api/node/node.generated.js.map +1 -1
  20. package/dist/api/node/node.js +128 -12
  21. package/dist/api/node/node.js.map +1 -1
  22. package/dist/api/node/protocol.d.ts +1 -1
  23. package/dist/api/node/protocol.generated.js +1 -1
  24. package/dist/api/node/protocol.generated.js.map +1 -1
  25. package/dist/api/node/protocol.js +1 -1
  26. package/dist/api/options.d.ts +4 -1
  27. package/dist/api/options.d.ts.map +1 -1
  28. package/dist/api/options.js +11 -0
  29. package/dist/api/options.js.map +1 -1
  30. package/dist/api/path.d.ts +2 -2
  31. package/dist/api/path.js +2 -2
  32. package/dist/api/proto.d.ts +23 -282
  33. package/dist/api/proto.d.ts.map +1 -1
  34. package/dist/api/proto.generated.d.ts +961 -0
  35. package/dist/api/proto.generated.d.ts.map +1 -0
  36. package/dist/api/proto.generated.js +3 -0
  37. package/dist/api/proto.generated.js.map +1 -0
  38. package/dist/api/proto.js +1 -0
  39. package/dist/api/proto.js.map +1 -1
  40. package/dist/api/sync/api.d.ts +21 -18
  41. package/dist/api/sync/api.d.ts.map +1 -1
  42. package/dist/api/sync/api.js +62 -31
  43. package/dist/api/sync/api.js.map +1 -1
  44. package/dist/api/sync/client.d.ts +3 -2
  45. package/dist/api/sync/client.d.ts.map +1 -1
  46. package/dist/api/sync/client.js +2 -8
  47. package/dist/api/sync/client.js.map +1 -1
  48. package/dist/api/sync/types.d.ts +2 -0
  49. package/dist/api/sync/types.d.ts.map +1 -1
  50. package/dist/ast/ast.d.ts +20 -0
  51. package/dist/ast/ast.d.ts.map +1 -1
  52. package/dist/ast/ast.generated.js +1 -1
  53. package/dist/ast/ast.generated.js.map +1 -1
  54. package/dist/ast/ast.js.map +1 -1
  55. package/dist/ast/factory.generated.d.ts +7 -0
  56. package/dist/ast/factory.generated.d.ts.map +1 -1
  57. package/dist/ast/factory.generated.js +27 -1
  58. package/dist/ast/factory.generated.js.map +1 -1
  59. package/dist/ast/index.d.ts +5 -0
  60. package/dist/ast/index.d.ts.map +1 -1
  61. package/dist/ast/index.js +5 -0
  62. package/dist/ast/index.js.map +1 -1
  63. package/dist/ast/is.generated.js +1 -1
  64. package/dist/ast/is.generated.js.map +1 -1
  65. package/dist/ast/spanMap.d.ts +88 -0
  66. package/dist/ast/spanMap.d.ts.map +1 -0
  67. package/dist/ast/spanMap.js +417 -0
  68. package/dist/ast/spanMap.js.map +1 -0
  69. package/dist/ast/utils.d.ts.map +1 -1
  70. package/dist/ast/utils.js +7 -0
  71. package/dist/ast/utils.js.map +1 -1
  72. package/dist/ast/visitor.generated.js +1 -1
  73. package/dist/ast/visitor.generated.js.map +1 -1
  74. package/dist/enums/checkFlags.enum.js +1 -1
  75. package/dist/enums/checkFlags.enum.js.map +1 -1
  76. package/dist/enums/checkFlags.js +1 -1
  77. package/dist/enums/checkFlags.js.map +1 -1
  78. package/dist/enums/completionItemKind.enum.js +1 -1
  79. package/dist/enums/completionItemKind.enum.js.map +1 -1
  80. package/dist/enums/completionItemKind.js +1 -1
  81. package/dist/enums/completionItemKind.js.map +1 -1
  82. package/dist/enums/diagnosticCategory.enum.js +1 -1
  83. package/dist/enums/diagnosticCategory.enum.js.map +1 -1
  84. package/dist/enums/diagnosticCategory.js +1 -1
  85. package/dist/enums/diagnosticCategory.js.map +1 -1
  86. package/dist/enums/diagnosticDirectivePolicy.d.ts +2 -0
  87. package/dist/enums/diagnosticDirectivePolicy.d.ts.map +1 -0
  88. package/dist/enums/diagnosticDirectivePolicy.enum.d.ts +5 -0
  89. package/dist/enums/diagnosticDirectivePolicy.enum.d.ts.map +1 -0
  90. package/dist/enums/diagnosticDirectivePolicy.enum.js +7 -0
  91. package/dist/enums/diagnosticDirectivePolicy.enum.js.map +1 -0
  92. package/dist/enums/diagnosticDirectivePolicy.js +7 -0
  93. package/dist/enums/diagnosticDirectivePolicy.js.map +1 -0
  94. package/dist/enums/elementFlags.enum.js +1 -1
  95. package/dist/enums/elementFlags.enum.js.map +1 -1
  96. package/dist/enums/elementFlags.js +1 -1
  97. package/dist/enums/elementFlags.js.map +1 -1
  98. package/dist/enums/emitOnly.enum.js +1 -1
  99. package/dist/enums/emitOnly.enum.js.map +1 -1
  100. package/dist/enums/emitOnly.js +1 -1
  101. package/dist/enums/emitOnly.js.map +1 -1
  102. package/dist/enums/internalSymbolName.enum.js +1 -1
  103. package/dist/enums/internalSymbolName.enum.js.map +1 -1
  104. package/dist/enums/internalSymbolName.js +1 -1
  105. package/dist/enums/internalSymbolName.js.map +1 -1
  106. package/dist/enums/jsxEmit.enum.js +1 -1
  107. package/dist/enums/jsxEmit.enum.js.map +1 -1
  108. package/dist/enums/jsxEmit.js +1 -1
  109. package/dist/enums/jsxEmit.js.map +1 -1
  110. package/dist/enums/modifierFlags.enum.js +1 -1
  111. package/dist/enums/modifierFlags.enum.js.map +1 -1
  112. package/dist/enums/modifierFlags.js +1 -1
  113. package/dist/enums/modifierFlags.js.map +1 -1
  114. package/dist/enums/moduleDetectionKind.enum.js +1 -1
  115. package/dist/enums/moduleDetectionKind.enum.js.map +1 -1
  116. package/dist/enums/moduleDetectionKind.js +1 -1
  117. package/dist/enums/moduleDetectionKind.js.map +1 -1
  118. package/dist/enums/moduleKind.enum.js +1 -1
  119. package/dist/enums/moduleKind.enum.js.map +1 -1
  120. package/dist/enums/moduleKind.js +1 -1
  121. package/dist/enums/moduleKind.js.map +1 -1
  122. package/dist/enums/moduleResolutionKind.enum.js +1 -1
  123. package/dist/enums/moduleResolutionKind.enum.js.map +1 -1
  124. package/dist/enums/moduleResolutionKind.js +1 -1
  125. package/dist/enums/moduleResolutionKind.js.map +1 -1
  126. package/dist/enums/newLineKind.enum.js +1 -1
  127. package/dist/enums/newLineKind.enum.js.map +1 -1
  128. package/dist/enums/newLineKind.js +1 -1
  129. package/dist/enums/newLineKind.js.map +1 -1
  130. package/dist/enums/nodeBuilderFlags.enum.js +1 -1
  131. package/dist/enums/nodeBuilderFlags.enum.js.map +1 -1
  132. package/dist/enums/nodeBuilderFlags.js +1 -1
  133. package/dist/enums/nodeBuilderFlags.js.map +1 -1
  134. package/dist/enums/nodeFlags.enum.js +1 -1
  135. package/dist/enums/nodeFlags.enum.js.map +1 -1
  136. package/dist/enums/nodeFlags.js +1 -1
  137. package/dist/enums/nodeFlags.js.map +1 -1
  138. package/dist/enums/objectFlags.enum.js +1 -1
  139. package/dist/enums/objectFlags.enum.js.map +1 -1
  140. package/dist/enums/objectFlags.js +1 -1
  141. package/dist/enums/objectFlags.js.map +1 -1
  142. package/dist/enums/outerExpressionKinds.enum.js +1 -1
  143. package/dist/enums/outerExpressionKinds.enum.js.map +1 -1
  144. package/dist/enums/outerExpressionKinds.js +1 -1
  145. package/dist/enums/outerExpressionKinds.js.map +1 -1
  146. package/dist/enums/scriptKind.d.ts.map +1 -1
  147. package/dist/enums/scriptKind.enum.d.ts +1 -3
  148. package/dist/enums/scriptKind.enum.d.ts.map +1 -1
  149. package/dist/enums/scriptKind.enum.js +1 -2
  150. package/dist/enums/scriptKind.enum.js.map +1 -1
  151. package/dist/enums/scriptKind.js +1 -2
  152. package/dist/enums/scriptKind.js.map +1 -1
  153. package/dist/enums/signatureFlags.enum.js +1 -1
  154. package/dist/enums/signatureFlags.enum.js.map +1 -1
  155. package/dist/enums/signatureFlags.js +1 -1
  156. package/dist/enums/signatureFlags.js.map +1 -1
  157. package/dist/enums/signatureKind.enum.js +1 -1
  158. package/dist/enums/signatureKind.enum.js.map +1 -1
  159. package/dist/enums/signatureKind.js +1 -1
  160. package/dist/enums/signatureKind.js.map +1 -1
  161. package/dist/enums/spanMapFeature.d.ts +2 -0
  162. package/dist/enums/spanMapFeature.d.ts.map +1 -0
  163. package/dist/enums/spanMapFeature.enum.d.ts +25 -0
  164. package/dist/enums/spanMapFeature.enum.d.ts.map +1 -0
  165. package/dist/enums/spanMapFeature.enum.js +27 -0
  166. package/dist/enums/spanMapFeature.enum.js.map +1 -0
  167. package/dist/enums/spanMapFeature.js +27 -0
  168. package/dist/enums/spanMapFeature.js.map +1 -0
  169. package/dist/enums/spanMapFidelity.d.ts +2 -0
  170. package/dist/enums/spanMapFidelity.d.ts.map +1 -0
  171. package/dist/enums/spanMapFidelity.enum.d.ts +7 -0
  172. package/dist/enums/spanMapFidelity.enum.d.ts.map +1 -0
  173. package/dist/enums/spanMapFidelity.enum.js +9 -0
  174. package/dist/enums/spanMapFidelity.enum.js.map +1 -0
  175. package/dist/enums/spanMapFidelity.js +9 -0
  176. package/dist/enums/spanMapFidelity.js.map +1 -0
  177. package/dist/enums/spanMapKind.d.ts +2 -0
  178. package/dist/enums/spanMapKind.d.ts.map +1 -0
  179. package/dist/enums/spanMapKind.enum.d.ts +6 -0
  180. package/dist/enums/spanMapKind.enum.d.ts.map +1 -0
  181. package/dist/enums/spanMapKind.enum.js +8 -0
  182. package/dist/enums/spanMapKind.enum.js.map +1 -0
  183. package/dist/enums/spanMapKind.js +8 -0
  184. package/dist/enums/spanMapKind.js.map +1 -0
  185. package/dist/enums/symbolFlags.enum.js +1 -1
  186. package/dist/enums/symbolFlags.enum.js.map +1 -1
  187. package/dist/enums/symbolFlags.js +1 -1
  188. package/dist/enums/symbolFlags.js.map +1 -1
  189. package/dist/enums/syntaxKind.enum.js +1 -1
  190. package/dist/enums/syntaxKind.enum.js.map +1 -1
  191. package/dist/enums/syntaxKind.js +1 -1
  192. package/dist/enums/syntaxKind.js.map +1 -1
  193. package/dist/enums/tokenFlags.enum.js +1 -1
  194. package/dist/enums/tokenFlags.enum.js.map +1 -1
  195. package/dist/enums/tokenFlags.js +1 -1
  196. package/dist/enums/tokenFlags.js.map +1 -1
  197. package/dist/enums/typeFlags.enum.js +1 -1
  198. package/dist/enums/typeFlags.enum.js.map +1 -1
  199. package/dist/enums/typeFlags.js +1 -1
  200. package/dist/enums/typeFlags.js.map +1 -1
  201. package/dist/enums/typeFormatFlags.d.ts +2 -0
  202. package/dist/enums/typeFormatFlags.d.ts.map +1 -0
  203. package/dist/enums/typeFormatFlags.enum.d.ts +29 -0
  204. package/dist/enums/typeFormatFlags.enum.d.ts.map +1 -0
  205. package/dist/enums/typeFormatFlags.enum.js +31 -0
  206. package/dist/enums/typeFormatFlags.enum.js.map +1 -0
  207. package/dist/enums/typeFormatFlags.js +31 -0
  208. package/dist/enums/typeFormatFlags.js.map +1 -0
  209. package/dist/enums/typePredicateKind.enum.js +1 -1
  210. package/dist/enums/typePredicateKind.enum.js.map +1 -1
  211. package/dist/enums/typePredicateKind.js +1 -1
  212. package/dist/enums/typePredicateKind.js.map +1 -1
  213. package/lib/getExePath.js +2 -2
  214. package/lib/version.cjs +1 -1
  215. package/lib/version.d.cts +1 -1
  216. package/package.json +9 -9
  217. package/vendor/vscode-jsonrpc/lib/node/main.js +1 -1
  218. package/vendor/vscode-jsonrpc/package.json +1 -1
  219. package/dist/api/compilerOptions.d.ts +0 -110
  220. package/dist/api/compilerOptions.d.ts.map +0 -1
  221. package/dist/api/compilerOptions.js +0 -2
  222. package/dist/api/compilerOptions.js.map +0 -1
@@ -0,0 +1,417 @@
1
+ import { SpanMapFeature } from "#enums/spanMapFeature";
2
+ import { SpanMapFidelity } from "#enums/spanMapFidelity";
3
+ import { SpanMapKind } from "#enums/spanMapKind";
4
+ export { SpanMapFeature, SpanMapFidelity, SpanMapKind };
5
+ /** Provides bidirectional span-aware mapping between virtual and original text. */
6
+ export class SpanMap {
7
+ segments;
8
+ originalIndex;
9
+ /** Copies and sorts segments by virtual start, normalizing omitted features to `All`. */
10
+ constructor(segments) {
11
+ this.segments = segments
12
+ .map(segment => ({ ...segment, features: segment.features ?? SpanMapFeature.All }))
13
+ .sort((left, right) => left.virtualStart - right.virtualStart);
14
+ }
15
+ /** Reports whether a mapping is a precise, edit-safe projection through one verbatim segment. */
16
+ static isExact(fidelity) {
17
+ return fidelity === SpanMapFidelity.Exact;
18
+ }
19
+ /** Reports whether a mapping lies in one verbatim or atom segment. */
20
+ static isSingleSegment(fidelity) {
21
+ return fidelity === SpanMapFidelity.Exact || fidelity === SpanMapFidelity.Atom;
22
+ }
23
+ /** Reports whether the input had no counterpart in the target text. */
24
+ static isNone(fidelity) {
25
+ return fidelity === SpanMapFidelity.None;
26
+ }
27
+ /**
28
+ * Maps a virtual range to original text. Gaps map to insertion points with `None` fidelity,
29
+ * and ranges crossing segment boundaries map their endpoints with `Approximate` fidelity.
30
+ */
31
+ virtualToOriginalSpan(range) {
32
+ return this.mapRange(range, this.segments, false);
33
+ }
34
+ /** Maps a visible LS result only when every covered segment participates in `feature`. */
35
+ virtualToOriginalSpanForFeature(range, feature) {
36
+ const mapped = this.virtualToOriginalSpan(range);
37
+ return this.virtualRangeSupportsFeature(range, feature) ? mapped : { ...mapped, fidelity: SpanMapFidelity.None };
38
+ }
39
+ /** Maps a virtual position to original text, using `None` fidelity for synthesized gaps. */
40
+ virtualToOriginalPosition(position) {
41
+ return this.mapPoint(position, this.segments, false);
42
+ }
43
+ virtualToOriginalPositionForFeature(position, feature) {
44
+ const mapped = this.virtualToOriginalPosition(position);
45
+ const [index, inside] = segmentIndexAt(this.segments, position, false);
46
+ return inside && supportsFeature(this.segments[index], feature) ? mapped : { ...mapped, fidelity: SpanMapFidelity.None };
47
+ }
48
+ /**
49
+ * Returns every virtual projection of an original position whose segment participates in `feature`.
50
+ * Segment ends are inclusive for point mapping, so adjacent spans may both produce projections.
51
+ * Results are ordered by virtual position; uncovered or disabled positions produce no results.
52
+ */
53
+ originalToVirtualPositions(position, feature) {
54
+ const groups = segmentGroupsAtOriginalPosition(this.getOriginalIndex(), position);
55
+ const results = [];
56
+ for (const group of groups) {
57
+ for (const segment of group.segments) {
58
+ if (!supportsFeature(segment, feature))
59
+ continue;
60
+ const mapped = segment.kind === SpanMapKind.Verbatim
61
+ ? { position: mapVerbatimPosition(segment, position, true), fidelity: SpanMapFidelity.Exact }
62
+ : { position: group.atEnd ? segment.virtualEnd : segment.virtualStart, fidelity: SpanMapFidelity.Atom };
63
+ if (!results.some(result => result.position === mapped.position && result.fidelity === mapped.fidelity)) {
64
+ results.push(mapped);
65
+ }
66
+ }
67
+ }
68
+ return results.sort((left, right) => left.position - right.position);
69
+ }
70
+ /**
71
+ * Returns every feature-compatible virtual projection of an original range.
72
+ * A range contained by one or more segments produces one exact or atom result per matching segment.
73
+ *
74
+ * A range that starts in one group and ends in another can have several possible virtual ranges. For
75
+ * example, suppose two original segments are each copied twice into the virtual text:
76
+ *
77
+ * ```text
78
+ * original: [ A ][ B ]
79
+ * [---) range from inside A to inside B
80
+ *
81
+ * virtual: [ A ][ B ] [ A ][ B ]
82
+ * ^ ^ ^ ^
83
+ * start end start end
84
+ * 1 3 11 13
85
+ * ```
86
+ *
87
+ * The map says that the range may start at 1 or 11 and end at 3 or 13, but it does not say which copy of A
88
+ * belongs with which copy of B. We choose the smallest range around each possible location, producing [1,3)
89
+ * and [11,13). We do not return [1,13), because it contains both smaller candidates and would include code
90
+ * that may be unrelated to the original range. These cross-group results have approximate fidelity.
91
+ */
92
+ originalToVirtualSpans(range, feature) {
93
+ const start = range.pos;
94
+ const end = Math.max(range.end, start);
95
+ if (start === end) {
96
+ return this.originalToVirtualPositions(start, feature).map(({ position, fidelity }) => ({
97
+ range: { pos: position, end: position },
98
+ fidelity,
99
+ }));
100
+ }
101
+ const lastCharacter = end - 1;
102
+ const originalIndex = this.getOriginalIndex();
103
+ const startSegments = segmentsAtOriginalPosition(originalIndex, start);
104
+ const endSegments = segmentsAtOriginalPosition(originalIndex, lastCharacter);
105
+ if (!startSegments || !endSegments)
106
+ return [];
107
+ const containing = startSegments.filter(segment => end <= segment.originalEnd);
108
+ if (containing.length > 0) {
109
+ const results = [...originalToVirtualSpansInSegments(containing, start, end, feature)];
110
+ if (results.length > 0)
111
+ return results.sort((left, right) => left.range.pos - right.range.pos);
112
+ }
113
+ const starts = [...originalStartProjections(startSegments, start, feature)].sort((left, right) => left - right);
114
+ const ends = [...originalEndProjections(endSegments, end, feature)].sort((left, right) => left - right);
115
+ if (starts.length === 0 || ends.length === 0)
116
+ return [];
117
+ return starts.flatMap((virtualStart, index) => {
118
+ const virtualEnd = ends.find(end => end >= virtualStart);
119
+ return virtualEnd === undefined || index + 1 < starts.length && starts[index + 1] <= virtualEnd
120
+ ? []
121
+ : [{ range: { pos: virtualStart, end: virtualEnd }, fidelity: SpanMapFidelity.Approximate }];
122
+ });
123
+ }
124
+ /** Maps one range through an ordered segment index in the direction selected by `reverse`. */
125
+ mapRange(range, segments, reverse) {
126
+ const start = range.pos;
127
+ const end = Math.max(range.end, start);
128
+ if (start === end) {
129
+ const { position, fidelity } = this.mapPoint(start, segments, reverse);
130
+ return { range: { pos: position, end: position }, fidelity };
131
+ }
132
+ const [startIndex, startInside] = segmentIndexAt(segments, start, reverse);
133
+ const endProbe = end - 1;
134
+ const [endIndex, endInside] = segmentIndexAt(segments, endProbe, reverse);
135
+ if (startIndex === endIndex && startInside === endInside) {
136
+ if (startInside) {
137
+ const segment = segments[startIndex];
138
+ if (segment.kind === SpanMapKind.Verbatim) {
139
+ const mappedStart = mapVerbatimPosition(segment, start, reverse);
140
+ const mappedEnd = Math.max(mappedStart, mapVerbatimPosition(segment, end, reverse));
141
+ return { range: { pos: mappedStart, end: mappedEnd }, fidelity: SpanMapFidelity.Exact };
142
+ }
143
+ return { range: targetRange(segment, reverse), fidelity: SpanMapFidelity.Atom };
144
+ }
145
+ const position = insertionPoint(segments, startIndex, reverse);
146
+ return { range: { pos: position, end: position }, fidelity: SpanMapFidelity.None };
147
+ }
148
+ const mappedStart = mapBoundary(segments, start, startIndex, startInside, reverse, false);
149
+ const mappedEnd = Math.max(mappedStart, mapBoundary(segments, end, endIndex, endInside, reverse, true));
150
+ return { range: { pos: mappedStart, end: mappedEnd }, fidelity: SpanMapFidelity.Approximate };
151
+ }
152
+ /** Maps one position through an ordered segment index in the direction selected by `reverse`. */
153
+ mapPoint(position, segments, reverse) {
154
+ const [index, inside] = segmentIndexAt(segments, position, reverse);
155
+ if (!inside) {
156
+ return { position: insertionPoint(segments, index, reverse), fidelity: SpanMapFidelity.None };
157
+ }
158
+ const segment = segments[index];
159
+ if (segment.kind === SpanMapKind.Verbatim) {
160
+ return { position: mapVerbatimPosition(segment, position, reverse), fidelity: SpanMapFidelity.Exact };
161
+ }
162
+ return {
163
+ position: reverse ? segment.virtualStart : segment.originalStart,
164
+ fidelity: SpanMapFidelity.Atom,
165
+ };
166
+ }
167
+ /** Returns the lazily built original-text interval index. */
168
+ getOriginalIndex() {
169
+ if (this.originalIndex)
170
+ return this.originalIndex;
171
+ const segments = [...this.segments].sort((left, right) => left.originalStart - right.originalStart
172
+ || left.originalEnd - right.originalEnd
173
+ || left.virtualStart - right.virtualStart);
174
+ let leafCount = 1;
175
+ while (leafCount < segments.length)
176
+ leafCount *= 2;
177
+ const maxEnds = new Array(2 * leafCount).fill(0);
178
+ for (let i = 0; i < segments.length; i++)
179
+ maxEnds[leafCount + i] = segments[i].originalEnd;
180
+ for (let i = leafCount - 1; i > 0; i--)
181
+ maxEnds[i] = Math.max(maxEnds[2 * i], maxEnds[2 * i + 1]);
182
+ return this.originalIndex = { segments, leafCount, maxEnds };
183
+ }
184
+ virtualRangeSupportsFeature(range, feature) {
185
+ const start = range.pos;
186
+ const end = Math.max(range.end, start);
187
+ if (start === end) {
188
+ const [index, inside] = segmentIndexAt(this.segments, start, false);
189
+ return inside && supportsFeature(this.segments[index], feature);
190
+ }
191
+ let [index, inside] = segmentIndexAt(this.segments, start, false);
192
+ if (!inside)
193
+ return false;
194
+ let coveredThrough = start;
195
+ while (index < this.segments.length && coveredThrough < end) {
196
+ const segment = this.segments[index];
197
+ if (segment.virtualStart > coveredThrough || segment.virtualEnd <= coveredThrough || !supportsFeature(segment, feature))
198
+ return false;
199
+ coveredThrough = segment.virtualEnd;
200
+ index++;
201
+ }
202
+ return coveredThrough >= end;
203
+ }
204
+ }
205
+ /**
206
+ * Maps the inclusive start of an original range through every matching segment. Verbatim segments preserve
207
+ * the offset within the segment; atoms map to their virtual start.
208
+ *
209
+ * ```text
210
+ * original: [---------)
211
+ * ^ start
212
+ *
213
+ * virtual: [---------) [---------)
214
+ * ^ ^
215
+ * result result
216
+ * ```
217
+ */
218
+ function originalStartProjections(segments, start, feature) {
219
+ return segments
220
+ .filter(segment => supportsFeature(segment, feature))
221
+ .map(segment => segment.kind === SpanMapKind.Verbatim
222
+ ? mapVerbatimPosition(segment, start, true)
223
+ : segment.virtualStart);
224
+ }
225
+ /**
226
+ * Maps the exclusive end of an original range through every matching segment. The caller uses `end - 1`
227
+ * to find the segment containing the final character, while this helper maps the `end` boundary itself.
228
+ *
229
+ * ```text
230
+ * original: [---------)[ next segment )
231
+ * ^`-- end
232
+ * `--- end - 1
233
+ *
234
+ * virtual: [---------) [---------)
235
+ * ^ ^
236
+ * result result
237
+ * ```
238
+ */
239
+ function originalEndProjections(segments, end, feature) {
240
+ return segments
241
+ .filter(segment => supportsFeature(segment, feature))
242
+ .map(segment => segment.kind === SpanMapKind.Verbatim
243
+ ? mapVerbatimPosition(segment, end, true)
244
+ : segment.virtualEnd);
245
+ }
246
+ /** Maps a range fully contained by each segment. */
247
+ function originalToVirtualSpansInSegments(segments, start, end, feature) {
248
+ return segments
249
+ .filter(segment => supportsFeature(segment, feature))
250
+ .map(segment => {
251
+ if (segment.kind === SpanMapKind.Verbatim) {
252
+ const mappedStart = mapVerbatimPosition(segment, start, true);
253
+ const mappedEnd = Math.max(mappedStart, mapVerbatimPosition(segment, end, true));
254
+ return { range: { pos: mappedStart, end: mappedEnd }, fidelity: SpanMapFidelity.Exact };
255
+ }
256
+ return { range: { pos: segment.virtualStart, end: segment.virtualEnd }, fidelity: SpanMapFidelity.Atom };
257
+ });
258
+ }
259
+ /** Reports whether two segments belong to the same duplicate group. */
260
+ function sameOriginalRange(left, right) {
261
+ return left.originalStart === right.originalStart && left.originalEnd === right.originalEnd;
262
+ }
263
+ /**
264
+ * Returns every mapping segment containing the original-text `position`.
265
+ * Segment ends are exclusive; starts, including zero-length segment starts, are included.
266
+ */
267
+ function segmentsAtOriginalPosition(index, position) {
268
+ // Query intervals that contain position strictly before their exclusive end. Segments starting exactly at
269
+ // position are appended separately so zero-length segments are included while maxEnd <= position is pruned.
270
+ const start = firstOriginalSegmentAtOrAfter(index.segments, position);
271
+ const results = segmentsEndingAtOrAfter(index, start, position, false);
272
+ const end = firstOriginalSegmentAfter(index.segments, position);
273
+ results.push(...index.segments.slice(start, end));
274
+ return results.length > 0 ? results : undefined;
275
+ }
276
+ /** Returns segments among `[0, limit)` whose original end reaches `position`. */
277
+ function segmentsEndingAtOrAfter(index, limit, position, includeEnd) {
278
+ const results = [];
279
+ collectSegmentsEndingAtOrAfter(index, 1, 0, index.leafCount, limit, position, includeEnd, results);
280
+ return results;
281
+ }
282
+ /** Walks the flat max-end tree left-to-right, preserving original-text order. */
283
+ function collectSegmentsEndingAtOrAfter(index, node, start, end, limit, position, includeEnd, results) {
284
+ const maxEnd = index.maxEnds[node];
285
+ if (start >= limit || maxEnd < position || !includeEnd && maxEnd === position)
286
+ return;
287
+ if (end - start === 1) {
288
+ results.push(index.segments[start]);
289
+ return;
290
+ }
291
+ const middle = start + ((end - start) >>> 1);
292
+ collectSegmentsEndingAtOrAfter(index, 2 * node, start, middle, limit, position, includeEnd, results);
293
+ collectSegmentsEndingAtOrAfter(index, 2 * node + 1, middle, end, limit, position, includeEnd, results);
294
+ }
295
+ /** Returns the first original-ordered segment whose start is greater than or equal to `position`. */
296
+ function firstOriginalSegmentAtOrAfter(segments, position) {
297
+ let low = 0;
298
+ let high = segments.length;
299
+ while (low < high) {
300
+ const middle = (low + high) >>> 1;
301
+ if (segments[middle].originalStart < position)
302
+ low = middle + 1;
303
+ else
304
+ high = middle;
305
+ }
306
+ return low;
307
+ }
308
+ /** Returns the first original-ordered segment whose start is greater than `position`. */
309
+ function firstOriginalSegmentAfter(segments, position) {
310
+ let low = 0;
311
+ let high = segments.length;
312
+ while (low < high) {
313
+ const middle = (low + high) >>> 1;
314
+ if (segments[middle].originalStart <= position)
315
+ low = middle + 1;
316
+ else
317
+ high = middle;
318
+ }
319
+ return low;
320
+ }
321
+ /**
322
+ * Returns every group of equal-range mapping segments containing or touching the original-text `position`.
323
+ * Segment ends are included for point mapping:
324
+ *
325
+ * ```text
326
+ * original: [--- A ---)[--- B ---)
327
+ * ^ position
328
+ *
329
+ * virtual: [ A1 ) [ A2 ) [ B1 ) [ B2 )
330
+ * left group right group
331
+ * atEnd: true atEnd: false
332
+ * ```
333
+ */
334
+ function segmentGroupsAtOriginalPosition(index, position) {
335
+ const limit = firstOriginalSegmentAfter(index.segments, position);
336
+ const segments = segmentsEndingAtOrAfter(index, limit, position, true);
337
+ const groups = [];
338
+ for (let start = 0; start < segments.length;) {
339
+ let end = start + 1;
340
+ while (end < segments.length && sameOriginalRange(segments[start], segments[end]))
341
+ end++;
342
+ const segment = segments[start];
343
+ if (position <= segment.originalEnd) {
344
+ groups.push({
345
+ segments: segments.slice(start, end),
346
+ atEnd: position === segment.originalEnd && position !== segment.originalStart,
347
+ });
348
+ }
349
+ start = end;
350
+ }
351
+ return groups;
352
+ }
353
+ /** Reports whether a segment participates in an original-to-virtual query for `features`. */
354
+ function supportsFeature(segment, feature) {
355
+ return (segment.features & feature) !== 0;
356
+ }
357
+ /**
358
+ * Finds the segment containing `position`, or the preceding segment when `position` is in a gap.
359
+ * The boolean distinguishes containment from a gap; `reverse` selects original rather than virtual coordinates.
360
+ */
361
+ function segmentIndexAt(segments, position, reverse) {
362
+ let low = 0;
363
+ let high = segments.length;
364
+ while (low < high) {
365
+ const middle = (low + high) >>> 1;
366
+ const start = reverse ? segments[middle].originalStart : segments[middle].virtualStart;
367
+ if (start < position)
368
+ low = middle + 1;
369
+ else
370
+ high = middle;
371
+ }
372
+ if (low < segments.length && (reverse ? segments[low].originalStart : segments[low].virtualStart) === position) {
373
+ return [low, true];
374
+ }
375
+ const previous = low - 1;
376
+ if (previous >= 0) {
377
+ const end = reverse ? segments[previous].originalEnd : segments[previous].virtualEnd;
378
+ if (position < end || previous === segments.length - 1 && position === end)
379
+ return [previous, true];
380
+ }
381
+ return [previous, false];
382
+ }
383
+ /** Returns the target insertion point for a gap following `previous`, or zero before the first segment. */
384
+ function insertionPoint(segments, previous, reverse) {
385
+ if (previous < 0)
386
+ return 0;
387
+ return reverse ? segments[previous].virtualEnd : segments[previous].originalEnd;
388
+ }
389
+ /** Linearly maps and clamps a position within a length-preserving verbatim segment. */
390
+ function mapVerbatimPosition(segment, position, reverse) {
391
+ const sourceStart = reverse ? segment.originalStart : segment.virtualStart;
392
+ const targetStart = reverse ? segment.virtualStart : segment.originalStart;
393
+ const targetEnd = reverse ? segment.virtualEnd : segment.originalEnd;
394
+ return clamp(targetStart + position - sourceStart, targetStart, targetEnd);
395
+ }
396
+ /** Maps a range boundary, using insertion points for gaps and the selected endpoint for atoms. */
397
+ function mapBoundary(segments, position, index, inside, reverse, high) {
398
+ if (!inside)
399
+ return insertionPoint(segments, index, reverse);
400
+ const segment = segments[index];
401
+ if (segment.kind === SpanMapKind.Verbatim)
402
+ return mapVerbatimPosition(segment, position, reverse);
403
+ if (reverse)
404
+ return high ? segment.virtualEnd : segment.virtualStart;
405
+ return high ? segment.originalEnd : segment.originalStart;
406
+ }
407
+ /** Returns the complete target range of a segment in the selected direction. */
408
+ function targetRange(segment, reverse) {
409
+ return reverse
410
+ ? { pos: segment.virtualStart, end: segment.virtualEnd }
411
+ : { pos: segment.originalStart, end: segment.originalEnd };
412
+ }
413
+ /** Confines `value` to the inclusive interval [`low`, `high`]. */
414
+ function clamp(value, low, high) {
415
+ return Math.max(low, Math.min(value, high));
416
+ }
417
+ //# sourceMappingURL=spanMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spanMap.js","sourceRoot":"","sources":["../../src/ast/spanMap.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EACR,QAAQ,EACR,aAAa,EACb,cAAc,EACd,2BAA2B,EAC3B,UAAU,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAiBrC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,QAAQ,GAAG,MAAM,CAKvE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAIrE;AAED,wBAAgB,OAAO,CAAC,IAAI,SAAS,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,SAAS,CAElI;AAED,wBAAgB,IAAI,CAAC,IAAI,SAAS,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,CAInH;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,aAAa,CAE/D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,cAAc,CAEjE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,2BAA2B,CAE9F;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBnF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EACR,QAAQ,EACR,aAAa,EACb,cAAc,EACd,2BAA2B,EAC3B,UAAU,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAiBrC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,QAAQ,GAAG,MAAM,CAKvE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAIrE;AAED,wBAAgB,OAAO,CAAC,IAAI,SAAS,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,SAAS,CAElI;AAED,wBAAgB,IAAI,CAAC,IAAI,SAAS,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,CAInH;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,aAAa,CAE/D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,cAAc,CAEjE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,2BAA2B,CAE9F;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BnF"}
package/dist/ast/utils.js CHANGED
@@ -58,6 +58,13 @@ export function cloneSourceFileData(sourceFile) {
58
58
  statements: sourceFile.statements,
59
59
  endOfFileToken: sourceFile.endOfFileToken,
60
60
  text: sourceFile.text,
61
+ originalText: sourceFile.originalText,
62
+ spanMap: sourceFile.spanMap,
63
+ contentMapper: sourceFile.contentMapper,
64
+ virtualFileName: sourceFile.virtualFileName,
65
+ diagnosticDirectives: sourceFile.diagnosticDirectives,
66
+ supplementalSourceFileNames: sourceFile.supplementalSourceFileNames,
67
+ canonicalSourceFileName: sourceFile.canonicalSourceFileName,
61
68
  fileName: sourceFile.fileName,
62
69
  path: sourceFile.path,
63
70
  languageVariant: sourceFile.languageVariant,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- // Code generated by _scripts/generate-ts-ast.ts. DO NOT EDIT.
1
+ // Code generated by tools/scripts/tsc/generate-ts-ast.ts. DO NOT EDIT.
2
2
  import { SyntaxKind } from "#enums/syntaxKind";
3
3
  import { createNodeArray, updateArrayBindingPattern, updateArrayLiteralExpression, updateArrayTypeNode, updateArrowFunction, updateAsExpression, updateAwaitExpression, updateBinaryExpression, updateBindingElement, updateBlock, updateBreakStatement, updateCallExpression, updateCallSignatureDeclaration, updateCaseBlock, updateCaseClause, updateCatchClause, updateClassDeclaration, updateClassExpression, updateClassStaticBlockDeclaration, updateComputedPropertyName, updateConditionalExpression, updateConditionalTypeNode, updateConstructorDeclaration, updateConstructorTypeNode, updateConstructSignatureDeclaration, updateContinueStatement, updateDecorator, updateDefaultClause, updateDeleteExpression, updateDoStatement, updateElementAccessExpression, updateEnumDeclaration, updateEnumMember, updateExportAssignment, updateExportDeclaration, updateExportSpecifier, updateExpressionStatement, updateExpressionWithTypeArguments, updateExternalModuleReference, updateForInStatement, updateForOfStatement, updateForStatement, updateFunctionDeclaration, updateFunctionExpression, updateFunctionTypeNode, updateGetAccessorDeclaration, updateHeritageClause, updateIfStatement, updateImportAttribute, updateImportAttributes, updateImportClause, updateImportDeclaration, updateImportEqualsDeclaration, updateImportSpecifier, updateImportTypeNode, updateIndexedAccessTypeNode, updateIndexSignatureDeclaration, updateInferTypeNode, updateInterfaceDeclaration, updateIntersectionTypeNode, updateJSDoc, updateJSDocAugmentsTag, updateJSDocCallbackTag, updateJSDocDeprecatedTag, updateJSDocImplementsTag, updateJSDocImportTag, updateJSDocLink, updateJSDocLinkCode, updateJSDocLinkPlain, updateJSDocNameReference, updateJSDocNonNullableType, updateJSDocNullableType, updateJSDocOptionalType, updateJSDocOverloadTag, updateJSDocOverrideTag, updateJSDocPrivateTag, updateJSDocProtectedTag, updateJSDocPublicTag, updateJSDocReadonlyTag, updateJSDocReturnTag, updateJSDocSatisfiesTag, updateJSDocSeeTag, updateJSDocSignature, updateJSDocTemplateTag, updateJSDocThisTag, updateJSDocThrowsTag, updateJSDocTypedefTag, updateJSDocTypeExpression, updateJSDocTypeLiteral, updateJSDocTypeTag, updateJSDocUnknownTag, updateJSDocVariadicType, updateJsxAttribute, updateJsxAttributes, updateJsxClosingElement, updateJsxElement, updateJsxExpression, updateJsxFragment, updateJsxNamespacedName, updateJsxOpeningElement, updateJsxSelfClosingElement, updateJsxSpreadAttribute, updateLabeledStatement, updateLiteralTypeNode, updateMappedTypeNode, updateMetaProperty, updateMethodDeclaration, updateMethodSignatureDeclaration, updateMissingDeclaration, updateModuleBlock, updateModuleDeclaration, updateNamedExports, updateNamedImports, updateNamedTupleMember, updateNamespaceExport, updateNamespaceExportDeclaration, updateNamespaceImport, updateNewExpression, updateNonNullExpression, updateObjectBindingPattern, updateObjectLiteralExpression, updateOptionalTypeNode, updateParameterDeclaration, updateParenthesizedExpression, updateParenthesizedTypeNode, updatePartiallyEmittedExpression, updatePostfixUnaryExpression, updatePrefixUnaryExpression, updatePropertyAccessExpression, updatePropertyAssignment, updatePropertyDeclaration, updatePropertySignatureDeclaration, updateQualifiedName, updateRestTypeNode, updateReturnStatement, updateSatisfiesExpression, updateSetAccessorDeclaration, updateShorthandPropertyAssignment, updateSourceFile, updateSpreadAssignment, updateSpreadElement, updateSwitchStatement, updateSyntaxList, updateSyntheticExpression, updateSyntheticReferenceExpression, updateTaggedTemplateExpression, updateTemplateExpression, updateTemplateLiteralTypeNode, updateTemplateLiteralTypeSpan, updateTemplateSpan, updateThrowStatement, updateTryStatement, updateTupleTypeNode, updateTypeAliasDeclaration, updateTypeAssertion, updateTypeLiteralNode, updateTypeOfExpression, updateTypeOperatorNode, updateTypeParameterDeclaration, updateTypePredicateNode, updateTypeQueryNode, updateTypeReferenceNode, updateUnionTypeNode, updateVariableDeclaration, updateVariableDeclarationList, updateVariableStatement, updateVoidExpression, updateWhileStatement, updateWithStatement, updateYieldExpression, } from "./factory.generated.js";
4
4
  import { isAssertsKeyword, isAsteriskToken, isAwaitKeyword, isBinaryOperatorToken, isBindingName, isBlock, isCaseBlock, isCatchClause, isColonToken, isConciseBody, isDotDotDotToken, isEndOfFile, isEntityName, isEqualsGreaterThanToken, isEqualsToken, isExclamationToken, isExpression, isExpressionWithTypeArguments, isForInitializer, isFunctionBody, isIdentifier, isImportAttributeName, isImportAttributes, isImportClause, isJSDocFullName, isJsxAttributeName, isJsxAttributes, isJsxAttributeValue, isJsxClosingElement, isJsxClosingFragment, isJsxOpeningElement, isJsxOpeningFragment, isJsxTagNameExpression, isLeftHandSideExpression, isMemberName, isModuleBody, isModuleExportName, isModuleName, isModuleReference, isNamedExportBindings, isNamedImportBindings, isPropertyName, isQuestionDotToken, isQuestionOrExclamationToken, isQuestionOrPlusOrMinusToken, isQuestionToken, isReadonlyKeywordOrPlusOrMinusToken, isStatement, isTemplateHead, isTemplateLiteral, isTemplateMiddleOrTail, isTypeNode, isTypeParameterDeclaration, isTypePredicateParameterName, isVariableDeclaration, isVariableDeclarationList, } from "./is.js";