@openrewrite/rewrite 8.69.0-20251207-230203 → 8.69.0-20251208-174001

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/run.d.ts CHANGED
@@ -16,13 +16,14 @@ export type ProgressCallback = (phase: 'parsing' | 'scanning' | 'processing', cu
16
16
  * Streaming version of scheduleRun that yields results as soon as each file is processed.
17
17
  * This allows callers to print diffs immediately and free memory earlier.
18
18
  *
19
- * Accepts either an array or an async iterable of source files. When the recipe is not
20
- * a scanning recipe, files are processed immediately as they're yielded from the iterable,
21
- * avoiding the need to collect all files into memory first.
19
+ * Accepts either an array or an async iterable of source files. Files are processed
20
+ * immediately as they're yielded from the iterable, avoiding the need to collect all
21
+ * files into memory before starting work.
22
22
  *
23
- * For scanning recipes, the scan phase completes on all files before yielding any results.
23
+ * For scanning recipes, each file is scanned immediately as it's pulled from the generator,
24
+ * then stored for the edit phase. The scan phase completes before any results are yielded.
24
25
  *
25
- * @param onProgress Optional callback for progress updates during parsing, scanning, and processing phases.
26
+ * @param onProgress Optional callback for progress updates during scanning and processing phases.
26
27
  */
27
28
  export declare function scheduleRunStreaming(recipe: Recipe, before: SourceFile[] | AsyncIterable<SourceFile>, ctx: ExecutionContext, onProgress?: ProgressCallback): AsyncGenerator<Result, void, undefined>;
28
29
  //# sourceMappingURL=run.d.ts.map
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAa,UAAU,EAAC,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAC,MAAM,EAAiB,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,qBAAa,MAAM;aACa,MAAM,CAAC,EAAE,UAAU;aAAkB,KAAK,CAAC,EAAE,UAAU;gBAAvD,MAAM,CAAC,EAAE,UAAU,YAAA,EAAkB,KAAK,CAAC,EAAE,UAAU,YAAA;IAG7E,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAWhC;AA0BD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAMjH;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1I;;;;;;;;;;;GAWG;AACH,wBAAuB,oBAAoB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,EAChD,GAAG,EAAE,gBAAgB,EACrB,UAAU,CAAC,EAAE,gBAAgB,GAC9B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAkEzC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAa,UAAU,EAAC,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAC,MAAM,EAAiB,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,qBAAa,MAAM;aACa,MAAM,CAAC,EAAE,UAAU;aAAkB,KAAK,CAAC,EAAE,UAAU;gBAAvD,MAAM,CAAC,EAAE,UAAU,YAAA,EAAkB,KAAK,CAAC,EAAE,UAAU,YAAA;IAG7E,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAWhC;AA0BD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAMjH;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1I;;;;;;;;;;;;GAYG;AACH,wBAAuB,oBAAoB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,EAChD,GAAG,EAAE,gBAAgB,EACrB,UAAU,CAAC,EAAE,gBAAgB,GAC9B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAiEzC"}
package/dist/run.js CHANGED
@@ -104,13 +104,14 @@ function scheduleRun(recipe, before, ctx) {
104
104
  * Streaming version of scheduleRun that yields results as soon as each file is processed.
105
105
  * This allows callers to print diffs immediately and free memory earlier.
106
106
  *
107
- * Accepts either an array or an async iterable of source files. When the recipe is not
108
- * a scanning recipe, files are processed immediately as they're yielded from the iterable,
109
- * avoiding the need to collect all files into memory first.
107
+ * Accepts either an array or an async iterable of source files. Files are processed
108
+ * immediately as they're yielded from the iterable, avoiding the need to collect all
109
+ * files into memory before starting work.
110
110
  *
111
- * For scanning recipes, the scan phase completes on all files before yielding any results.
111
+ * For scanning recipes, each file is scanned immediately as it's pulled from the generator,
112
+ * then stored for the edit phase. The scan phase completes before any results are yielded.
112
113
  *
113
- * @param onProgress Optional callback for progress updates during parsing, scanning, and processing phases.
114
+ * @param onProgress Optional callback for progress updates during scanning and processing phases.
114
115
  */
115
116
  function scheduleRunStreaming(recipe, before, ctx, onProgress) {
116
117
  return __asyncGenerator(this, arguments, function* scheduleRunStreaming_1() {
@@ -118,39 +119,37 @@ function scheduleRunStreaming(recipe, before, ctx, onProgress) {
118
119
  const cursor = (0, tree_1.rootCursor)();
119
120
  const isScanning = yield __await(hasScanningRecipe(recipe));
120
121
  if (isScanning) {
121
- // For scanning recipes, we need to collect all files first for the scan phase
122
- const files = Array.isArray(before) ? [...before] : [];
123
- if (!Array.isArray(before)) {
124
- let parseCount = 0;
125
- try {
126
- for (var _g = true, before_1 = __asyncValues(before), before_1_1; before_1_1 = yield __await(before_1.next()), _a = before_1_1.done, !_a; _g = true) {
127
- _c = before_1_1.value;
128
- _g = false;
129
- const sf = _c;
130
- files.push(sf);
131
- parseCount++;
132
- onProgress === null || onProgress === void 0 ? void 0 : onProgress('parsing', parseCount, -1, sf.sourcePath); // -1 = unknown total
133
- }
122
+ // For scanning recipes, pull files from the generator and scan them immediately.
123
+ // Files are stored for the later edit phase.
124
+ const files = [];
125
+ const iterable = Array.isArray(before) ? before : before;
126
+ const knownTotal = Array.isArray(before) ? before.length : -1; // -1 = unknown total
127
+ // Phase 1: Pull files from generator and scan each immediately
128
+ let scanCount = 0;
129
+ try {
130
+ for (var _g = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = yield __await(iterable_1.next()), _a = iterable_1_1.done, !_a; _g = true) {
131
+ _c = iterable_1_1.value;
132
+ _g = false;
133
+ const b = _c;
134
+ files.push(b);
135
+ scanCount++;
136
+ onProgress === null || onProgress === void 0 ? void 0 : onProgress('scanning', scanCount, knownTotal, b.sourcePath);
137
+ // Scan this file immediately
138
+ yield __await(recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () {
139
+ if (recipe instanceof recipe_1.ScanningRecipe) {
140
+ return (yield recipe.scanner(recipe.accumulator(cursor, ctx))).visit(b2, ctx, cursor);
141
+ }
142
+ })));
134
143
  }
135
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
136
- finally {
137
- try {
138
- if (!_g && !_a && (_b = before_1.return)) yield __await(_b.call(before_1));
139
- }
140
- finally { if (e_2) throw e_2.error; }
144
+ }
145
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
146
+ finally {
147
+ try {
148
+ if (!_g && !_a && (_b = iterable_1.return)) yield __await(_b.call(iterable_1));
141
149
  }
150
+ finally { if (e_2) throw e_2.error; }
142
151
  }
143
152
  const totalFiles = files.length;
144
- // Phase 1: Run scanners on all files
145
- for (let i = 0; i < files.length; i++) {
146
- const b = files[i];
147
- onProgress === null || onProgress === void 0 ? void 0 : onProgress('scanning', i + 1, totalFiles, b.sourcePath);
148
- yield __await(recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () {
149
- if (recipe instanceof recipe_1.ScanningRecipe) {
150
- return (yield recipe.scanner(recipe.accumulator(cursor, ctx))).visit(b2, ctx, cursor);
151
- }
152
- })));
153
- }
154
153
  // Phase 2: Collect generated files
155
154
  const generated = (yield __await(recurseRecipeList(recipe, [], (recipe, generated) => __awaiter(this, void 0, void 0, function* () {
156
155
  if (recipe instanceof recipe_1.ScanningRecipe) {
@@ -180,8 +179,8 @@ function scheduleRunStreaming(recipe, before, ctx, onProgress) {
180
179
  // For non-scanning recipes, process files immediately as they come in
181
180
  const iterable = Array.isArray(before) ? before : before;
182
181
  try {
183
- for (var _h = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = yield __await(iterable_1.next()), _d = iterable_1_1.done, !_d; _h = true) {
184
- _f = iterable_1_1.value;
182
+ for (var _h = true, iterable_2 = __asyncValues(iterable), iterable_2_1; iterable_2_1 = yield __await(iterable_2.next()), _d = iterable_2_1.done, !_d; _h = true) {
183
+ _f = iterable_2_1.value;
185
184
  _h = false;
186
185
  const b = _f;
187
186
  const editedB = yield __await(recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(b2, ctx, cursor); })));
@@ -192,7 +191,7 @@ function scheduleRunStreaming(recipe, before, ctx, onProgress) {
192
191
  catch (e_3_1) { e_3 = { error: e_3_1 }; }
193
192
  finally {
194
193
  try {
195
- if (!_h && !_d && (_e = iterable_1.return)) yield __await(_e.call(iterable_1));
194
+ if (!_h && !_d && (_e = iterable_2.return)) yield __await(_e.call(iterable_2));
196
195
  }
197
196
  finally { if (e_3) throw e_3.error; }
198
197
  }
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
@@ -319,9 +319,9 @@ function dedent(s) {
319
319
  return '';
320
320
  const str = start > 0 || end < s.length ? s.slice(start, end) : s;
321
321
  const lines = str.split('\n');
322
- // If we removed a leading newline, consider all lines for minIndent
323
- // Otherwise, skip the first line (it's on the same line as the opening quote)
324
- const startLine = start > 0 ? 0 : 1;
322
+ // Always consider all lines for minIndent calculation
323
+ // If first line has content at column 0, minIndent will be 0 and no dedenting happens
324
+ const startLine = 0;
325
325
  // Find minimum indentation
326
326
  let minIndent = Infinity;
327
327
  for (let i = startLine; i < lines.length; i++) {
@@ -344,8 +344,8 @@ function dedent(s) {
344
344
  if (minIndent === Infinity || minIndent === 0) {
345
345
  return lines.join('\n');
346
346
  }
347
- // Remove common indentation from lines (skip first line only if we didn't remove leading newline)
348
- return lines.map((line, i) => (i === 0 && startLine === 1) ? line : (line.length >= minIndent ? line.slice(minIndent) : '')).join('\n');
347
+ // Remove common indentation from all lines
348
+ return lines.map(line => line.length >= minIndent ? line.slice(minIndent) : '').join('\n');
349
349
  }
350
350
  function dedentAfter(s) {
351
351
  if (s !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-test.js","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rewrite-test.js","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"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"}
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- 8.69.0-20251207-230203
1
+ 8.69.0-20251208-174001
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.69.0-20251207-230203",
3
+ "version": "8.69.0-20251208-174001",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
@@ -48,6 +48,72 @@ export function replaceLastWhitespace(space: J.Space, transform: (ws: string) =>
48
48
  });
49
49
  }
50
50
 
51
+ /**
52
+ * Strips leading spaces and tabs from a string (but not newlines).
53
+ */
54
+ export function stripLeadingIndent(s: string): string {
55
+ return s.replace(/^[ \t]*/, '');
56
+ }
57
+
58
+ /**
59
+ * Replaces the indentation after the last newline in a whitespace string.
60
+ * If there's no newline, returns just the new indent.
61
+ */
62
+ export function replaceIndentAfterLastNewline(ws: string, newIndent: string): string {
63
+ const lastNewline = ws.lastIndexOf("\n");
64
+ return ws.substring(0, lastNewline + 1) + newIndent;
65
+ }
66
+
67
+ /**
68
+ * Checks if a Space contains any newlines (in whitespace or comment suffixes).
69
+ */
70
+ export function spaceContainsNewline(space: J.Space | undefined): boolean {
71
+ if (!space) return false;
72
+ if (space.whitespace.includes("\n")) return true;
73
+ return space.comments.some(c => c.suffix.includes("\n"));
74
+ }
75
+
76
+ /**
77
+ * Normalizes indentation in an entire Space, including both whitespace and comment suffixes.
78
+ * Each newline followed by whitespace gets its indentation normalized to the target indent.
79
+ *
80
+ * @param space The Space to normalize
81
+ * @param targetIndent The indentation to use after newlines
82
+ * @returns The normalized Space, or the original if unchanged
83
+ */
84
+ export function normalizeSpaceIndent(space: J.Space, targetIndent: string): J.Space {
85
+ let changed = false;
86
+
87
+ // Normalize whitespace
88
+ let newWhitespace = space.whitespace;
89
+ if (space.whitespace.includes("\n")) {
90
+ newWhitespace = replaceIndentAfterLastNewline(space.whitespace, targetIndent);
91
+ changed = changed || newWhitespace !== space.whitespace;
92
+ }
93
+
94
+ // Normalize comment suffixes
95
+ const newComments = space.comments.map(comment => {
96
+ if (comment.suffix.includes("\n")) {
97
+ const newSuffix = replaceIndentAfterLastNewline(comment.suffix, targetIndent);
98
+ if (newSuffix !== comment.suffix) {
99
+ changed = true;
100
+ return {...comment, suffix: newSuffix};
101
+ }
102
+ }
103
+ return comment;
104
+ });
105
+
106
+ if (!changed) {
107
+ return space;
108
+ }
109
+
110
+ return {
111
+ ...space,
112
+ whitespace: newWhitespace,
113
+ comments: newComments
114
+ };
115
+ }
116
+
51
117
  /**
52
118
  * Handles element removal from lists while preserving LST formatting.
53
119
  * Automatically applies prefixes from removed elements to the next kept element,
@@ -213,7 +213,19 @@ export class SpacesVisitor<P> extends JavaScriptVisitor<P> {
213
213
  public async visitContainer<T extends J>(container: J.Container<T>, p: P): Promise<J.Container<T>> {
214
214
  const ret = await super.visitContainer(container, p) as J.Container<T>;
215
215
  return produce(ret, draft => {
216
+ if (draft.elements.length > 0) {
217
+ // Apply beforeComma rule to all elements except the last
218
+ // (last element's after is before closing bracket, not a comma)
219
+ for (let i = 0; i < draft.elements.length - 1; i++) {
220
+ const afterWs = draft.elements[i].after.whitespace;
221
+ // Preserve newlines - only adjust when on same line
222
+ if (!afterWs.includes("\n")) {
223
+ draft.elements[i].after.whitespace = this.style.other.beforeComma ? " " : "";
224
+ }
225
+ }
226
+ }
216
227
  if (draft.elements.length > 1) {
228
+ // Apply afterComma rule to elements after the first
217
229
  for (let i = 1; i < draft.elements.length; i++) {
218
230
  const currentWs = draft.elements[i].element.prefix.whitespace;
219
231
  // Preserve original newlines - only adjust spacing when elements are on same line
@@ -235,10 +247,17 @@ export class SpacesVisitor<P> extends JavaScriptVisitor<P> {
235
247
  if (ne.elements.elements.length > 0) {
236
248
  // Check if this is a multi-line export (any element's prefix has a newline)
237
249
  const isMultiLine = ne.elements.elements.some(e => e.element.prefix.whitespace.includes("\n"));
238
- // Only adjust brace spacing for single-line exports
239
250
  if (!isMultiLine) {
251
+ // Single-line: adjust brace spacing
240
252
  ne.elements.elements[0].element.prefix.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
241
253
  ne.elements.elements[ne.elements.elements.length - 1].after.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
254
+ } else {
255
+ // Multi-line: apply beforeComma rule to last element's after (for trailing commas)
256
+ // If it has only spaces (no newline), it's the space before a trailing comma
257
+ const lastAfter = ne.elements.elements[ne.elements.elements.length - 1].after.whitespace;
258
+ if (!lastAfter.includes("\n") && lastAfter.trim() === "") {
259
+ ne.elements.elements[ne.elements.elements.length - 1].after.whitespace = this.style.other.beforeComma ? " " : "";
260
+ }
242
261
  }
243
262
  }
244
263
  }
@@ -292,20 +311,33 @@ export class SpacesVisitor<P> extends JavaScriptVisitor<P> {
292
311
  const ret = await super.visitImportDeclaration(jsImport, p) as JS.Import;
293
312
  return produce(ret, draft => {
294
313
  if (draft.importClause) {
295
- draft.importClause.prefix.whitespace = draft.importClause.namedBindings && !draft.importClause.typeOnly ? "" : " ";
314
+ // Space after 'import' keyword:
315
+ // - If there's a default import (name), space goes in importClause.prefix
316
+ // - If typeOnly (import type ...), space goes in importClause.prefix (before 'type')
317
+ // - If only namedBindings (no default, no type), space goes in namedBindings.prefix (importClause.prefix is empty)
318
+ const hasDefaultImport = !!draft.importClause.name;
319
+ draft.importClause.prefix.whitespace = (hasDefaultImport || draft.importClause.typeOnly) ? " " : "";
296
320
  if (draft.importClause.name) {
297
321
  draft.importClause.name.after.whitespace = "";
298
322
  }
299
323
  if (draft.importClause.namedBindings) {
324
+ // Space before namedBindings - always needed
300
325
  draft.importClause.namedBindings.prefix.whitespace = " ";
301
326
  if (draft.importClause.namedBindings.kind == JS.Kind.NamedImports) {
302
327
  const ni = draft.importClause.namedBindings as Draft<JS.NamedImports>;
303
328
  // Check if this is a multi-line import (any element's prefix has a newline)
304
329
  const isMultiLine = ni.elements.elements.some(e => e.element.prefix.whitespace.includes("\n"));
305
- // Only adjust brace spacing for single-line imports
306
330
  if (!isMultiLine) {
331
+ // Single-line: adjust brace spacing
307
332
  ni.elements.elements[0].element.prefix.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
308
333
  ni.elements.elements[ni.elements.elements.length - 1].after.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
334
+ } else {
335
+ // Multi-line: apply beforeComma rule to last element's after (for trailing commas)
336
+ // If it has only spaces (no newline), it's the space before a trailing comma
337
+ const lastAfter = ni.elements.elements[ni.elements.elements.length - 1].after.whitespace;
338
+ if (!lastAfter.includes("\n") && lastAfter.trim() === "") {
339
+ ni.elements.elements[ni.elements.elements.length - 1].after.whitespace = this.style.other.beforeComma ? " " : "";
340
+ }
309
341
  }
310
342
  }
311
343
  }
@@ -452,6 +484,21 @@ export class SpacesVisitor<P> extends JavaScriptVisitor<P> {
452
484
  });
453
485
  }
454
486
 
487
+ protected async visitTypeLiteral(typeLiteral: JS.TypeLiteral, p: P): Promise<J | undefined> {
488
+ const ret = await super.visitTypeLiteral(typeLiteral, p) as JS.TypeLiteral;
489
+ // Apply objectLiteralTypeBraces spacing for single-line type literals
490
+ const isSingleLine = !ret.members.end.whitespace.includes("\n") &&
491
+ ret.members.statements.every(s => !s.element.prefix.whitespace.includes("\n"));
492
+ if (isSingleLine && ret.members.statements.length > 0) {
493
+ return produce(ret, draft => {
494
+ const space = this.style.within.objectLiteralTypeBraces ? " " : "";
495
+ draft.members.statements[0].element.prefix.whitespace = space;
496
+ draft.members.end.whitespace = space;
497
+ });
498
+ }
499
+ return ret;
500
+ }
501
+
455
502
  protected async visitUnary(unary: J.Unary, p: P): Promise<J | undefined> {
456
503
  const ret = await super.visitUnary(unary, p) as J.Unary;
457
504
  return produce(ret, draft => {
@@ -701,9 +748,10 @@ export class WrappingAndBracesVisitor<P> extends JavaScriptVisitor<P> {
701
748
  const b = await super.visitBlock(block, p) as J.Block;
702
749
  return produce(b, draft => {
703
750
  if (!draft.end.whitespace.includes("\n") && (draft.statements.length == 0 || !draft.statements[draft.statements.length - 1].after.whitespace.includes("\n"))) {
704
- // Skip newline for object literals and empty lambda/function bodies
751
+ // Skip newline for object literals, type literals, and empty lambda/function bodies
705
752
  const parentKind = this.cursor.parent?.value.kind;
706
753
  if (parentKind !== J.Kind.NewClass &&
754
+ parentKind !== JS.Kind.TypeLiteral &&
707
755
  !(draft.statements.length === 0 && (parentKind === J.Kind.Lambda || parentKind === J.Kind.MethodDeclaration))) {
708
756
  draft.end = this.withNewlineSpace(draft.end);
709
757
  }
@@ -1032,14 +1080,21 @@ export class BlankLinesVisitor<P> extends JavaScriptVisitor<P> {
1032
1080
  if (statements.length > 0) {
1033
1081
  this.keepMaximumBlankLines(draft.body.statements[0].element, 0);
1034
1082
 
1083
+ const isInterface = draft.classKind.type === J.ClassDeclaration.Kind.Type.Interface;
1035
1084
  for (let i = 1; i < statements.length; i++) {
1036
1085
  const previousElement = statements[i - 1].element;
1037
1086
  let currentElement = statements[i].element;
1038
1087
  if (previousElement.kind == J.Kind.VariableDeclarations || currentElement.kind == J.Kind.VariableDeclarations) {
1039
- this.minimumBlankLines(currentElement, 1 + this.style.minimum.aroundField) // TODO aroundFieldInInterface
1088
+ const fieldBlankLines = isInterface
1089
+ ? this.style.minimum.aroundFieldInInterface ?? 0
1090
+ : this.style.minimum.aroundField;
1091
+ this.minimumBlankLines(currentElement, fieldBlankLines);
1040
1092
  }
1041
1093
  if (previousElement.kind == J.Kind.MethodDeclaration || currentElement.kind == J.Kind.MethodDeclaration) {
1042
- this.minimumBlankLines(currentElement, 1 + this.style.minimum.aroundMethod) // TODO aroundMethodInInterface
1094
+ const methodBlankLines = isInterface
1095
+ ? this.style.minimum.aroundMethodInInterface ?? 0
1096
+ : this.style.minimum.aroundMethod;
1097
+ this.minimumBlankLines(currentElement, methodBlankLines);
1043
1098
  }
1044
1099
  this.keepMaximumBlankLines(currentElement, this.style.keepMaximum.inCode);
1045
1100
  draft.body.statements[i].element = currentElement;
@@ -1092,7 +1147,7 @@ export class BlankLinesVisitor<P> extends JavaScriptVisitor<P> {
1092
1147
  }
1093
1148
  this.keepMaximumBlankLines(draft, this.style.keepMaximum.inCode);
1094
1149
  }
1095
- } else if (parent?.kind === J.Kind.Block && grandparent?.kind !== J.Kind.NewClass ||
1150
+ } else if (parent?.kind === J.Kind.Block && grandparent?.kind !== J.Kind.NewClass && grandparent?.kind !== JS.Kind.TypeLiteral ||
1096
1151
  (parent?.kind === JS.Kind.CompilationUnit && (parent! as JS.CompilationUnit).statements[0].element.id != draft.id) ||
1097
1152
  (parent?.kind === J.Kind.Case)) {
1098
1153
  if (draft.kind != J.Kind.Case) {
@@ -1106,8 +1161,8 @@ export class BlankLinesVisitor<P> extends JavaScriptVisitor<P> {
1106
1161
  const b = await super.visitBlock(block, p) as J.Block;
1107
1162
  return produce(b, draft => {
1108
1163
  const parentKind = this.cursor.parent?.value.kind;
1109
- // Skip newline only for object literals (NewClass) - they should preserve single-line formatting
1110
- if (parentKind != J.Kind.NewClass) {
1164
+ // Skip newline for object literals (NewClass) and type literals (TypeLiteral)
1165
+ if (parentKind != J.Kind.NewClass && parentKind != JS.Kind.TypeLiteral) {
1111
1166
  draft.end = replaceLastWhitespace(draft.end, ws =>
1112
1167
  ws.includes("\n") ? ws : ws.replace(/[ \t]+$/, '') + "\n"
1113
1168
  );
@@ -3474,7 +3474,7 @@ export class JavaScriptParserVisitor {
3474
3474
  statements: node.clauses.map(clause =>
3475
3475
  this.rightPadded(
3476
3476
  this.visit(clause),
3477
- this.suffix(clause)
3477
+ emptySpace
3478
3478
  )),
3479
3479
  end: end
3480
3480
  }
@@ -3722,7 +3722,17 @@ export class JavaScriptParserVisitor {
3722
3722
  }
3723
3723
 
3724
3724
  visitJsxText(node: ts.JsxText): J.Literal {
3725
- return this.mapLiteral(node, node.text);
3725
+ // For JsxText, we don't use mapLiteral because it would put whitespace into prefix.
3726
+ // In JSX, the text content (including leading/trailing whitespace) should be in value/valueSource.
3727
+ return {
3728
+ kind: J.Kind.Literal,
3729
+ id: randomId(),
3730
+ prefix: emptySpace,
3731
+ markers: emptyMarkers,
3732
+ value: node.text,
3733
+ valueSource: node.text,
3734
+ type: Type.Primitive.String
3735
+ };
3726
3736
  }
3727
3737
 
3728
3738
  visitJsxElement(node: ts.JsxElement): JSX.Tag {