@openrewrite/rewrite 8.67.0-20251107-150956 → 8.67.0-20251107-160330

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.
@@ -11,6 +11,30 @@ export declare class PlaceholderReplacementVisitor extends JavaScriptVisitor<any
11
11
  private readonly values;
12
12
  private readonly wrappersMap;
13
13
  constructor(substitutions: Map<string, Parameter>, values?: Pick<Map<string, J | J[]>, 'get'>, wrappersMap?: Pick<Map<string, J.RightPadded<J> | J.RightPadded<J>[]>, 'get'>);
14
+ visit<R extends J>(tree: J, p: any, parent?: Cursor): Promise<R | undefined>;
15
+ /**
16
+ * Override visitContainer to handle variadic expansion for containers.
17
+ * This handles J.Container instances anywhere in the AST (method arguments, etc.).
18
+ */
19
+ visitContainer<T extends J>(container: J.Container<T>, p: any): Promise<J.Container<T>>;
20
+ /**
21
+ * Override visitRightPadded to handle single placeholder replacements.
22
+ * The base implementation will visit the element, which triggers our visit() override
23
+ * for placeholder detection and replacement.
24
+ */
25
+ visitRightPadded<T extends J | boolean>(right: J.RightPadded<T>, p: any): Promise<J.RightPadded<T>>;
26
+ /**
27
+ * Override visitBlock to handle variadic expansion in block statements.
28
+ * Block.statements is J.RightPadded<Statement>[] (not a Container), so we need
29
+ * array-level access for variadic expansion.
30
+ */
31
+ visitBlock(block: J.Block, p: any): Promise<J | undefined>;
32
+ /**
33
+ * Override visitJsCompilationUnit to handle variadic expansion in top-level statements.
34
+ * CompilationUnit.statements is J.RightPadded<Statement>[] (not a Container), so we need
35
+ * array-level access for variadic expansion.
36
+ */
37
+ visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: any): Promise<J | undefined>;
14
38
  /**
15
39
  * Merges prefixes by preserving comments from the source element
16
40
  * while using whitespace from the template placeholder.
@@ -29,10 +53,6 @@ export declare class PlaceholderReplacementVisitor extends JavaScriptVisitor<any
29
53
  * @returns Promise of new list with placeholders expanded
30
54
  */
31
55
  private expandVariadicElements;
32
- visit<R extends J>(tree: J, p: any, parent?: Cursor): Promise<R | undefined>;
33
- visitMethodInvocation(method: J.MethodInvocation, p: any): Promise<J | undefined>;
34
- visitBlock(block: J.Block, p: any): Promise<J | undefined>;
35
- visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: any): Promise<J | undefined>;
36
56
  /**
37
57
  * Checks if a node is a placeholder.
38
58
  *
@@ -1 +1 @@
1
- {"version":3,"file":"placeholder-replacement.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAS,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAI7C,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAElC;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,iBAAiB,CAAC,GAAG,CAAC;IAEjE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EACrC,MAAM,GAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAa,EACrD,WAAW,GAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAa;IAK7G;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;;;;OAOG;YACW,sBAAsB;IAqI9B,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAanE,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAiCjF,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA+B1D,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAe1G;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAiF1B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAS7B"}
1
+ {"version":3,"file":"placeholder-replacement.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAS,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAI7C,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAElC;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,iBAAiB,CAAC,GAAG,CAAC;IAEjE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EACrC,MAAM,GAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAa,EACrD,WAAW,GAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAa;IAKvG,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAalF;;;OAGG;IACY,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAgBtG;;;;OAIG;IACY,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIlH;;;;OAIG;IACY,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA8BzE;;;;OAIG;IACY,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAc1G;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;;;;OAOG;YACW,sBAAsB;IA4IpC;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAyG1B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAS7B"}
@@ -42,6 +42,111 @@ class PlaceholderReplacementVisitor extends visitor_1.JavaScriptVisitor {
42
42
  this.values = values;
43
43
  this.wrappersMap = wrappersMap;
44
44
  }
45
+ visit(tree, p, parent) {
46
+ const _super = Object.create(null, {
47
+ visit: { get: () => super.visit }
48
+ });
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ // Check if this node is a placeholder
51
+ if (this.isPlaceholder(tree)) {
52
+ const replacement = this.replacePlaceholder(tree);
53
+ if (replacement !== tree) {
54
+ return replacement;
55
+ }
56
+ }
57
+ // Continue with normal traversal
58
+ return _super.visit.call(this, tree, p, parent);
59
+ });
60
+ }
61
+ /**
62
+ * Override visitContainer to handle variadic expansion for containers.
63
+ * This handles J.Container instances anywhere in the AST (method arguments, etc.).
64
+ */
65
+ visitContainer(container, p) {
66
+ const _super = Object.create(null, {
67
+ visitContainer: { get: () => super.visitContainer }
68
+ });
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ // Check if any elements are placeholders (possibly variadic)
71
+ const hasPlaceholder = container.elements.some(elem => this.isPlaceholder(elem.element));
72
+ if (!hasPlaceholder) {
73
+ return _super.visitContainer.call(this, container, p);
74
+ }
75
+ // Expand variadic placeholders in the container's elements
76
+ const newElements = yield this.expandVariadicElements(container.elements, undefined, p);
77
+ return (0, immer_1.produce)(container, draft => {
78
+ draft.elements = newElements;
79
+ });
80
+ });
81
+ }
82
+ /**
83
+ * Override visitRightPadded to handle single placeholder replacements.
84
+ * The base implementation will visit the element, which triggers our visit() override
85
+ * for placeholder detection and replacement.
86
+ */
87
+ visitRightPadded(right, p) {
88
+ const _super = Object.create(null, {
89
+ visitRightPadded: { get: () => super.visitRightPadded }
90
+ });
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ return _super.visitRightPadded.call(this, right, p);
93
+ });
94
+ }
95
+ /**
96
+ * Override visitBlock to handle variadic expansion in block statements.
97
+ * Block.statements is J.RightPadded<Statement>[] (not a Container), so we need
98
+ * array-level access for variadic expansion.
99
+ */
100
+ visitBlock(block, p) {
101
+ const _super = Object.create(null, {
102
+ visitBlock: { get: () => super.visitBlock }
103
+ });
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ const hasPlaceholder = block.statements.some(stmt => {
106
+ const stmtElement = stmt.element;
107
+ // Check if it's an ExpressionStatement containing a placeholder
108
+ if (stmtElement.kind === __2.JS.Kind.ExpressionStatement) {
109
+ const exprStmt = stmtElement;
110
+ return this.isPlaceholder(exprStmt.expression);
111
+ }
112
+ return this.isPlaceholder(stmtElement);
113
+ });
114
+ if (!hasPlaceholder) {
115
+ return _super.visitBlock.call(this, block, p);
116
+ }
117
+ // Unwrap function to extract placeholder from ExpressionStatement
118
+ const unwrapStatement = (element) => {
119
+ if (element.kind === __2.JS.Kind.ExpressionStatement) {
120
+ return element.expression;
121
+ }
122
+ return element;
123
+ };
124
+ const newStatements = yield this.expandVariadicElements(block.statements, unwrapStatement, p);
125
+ return (0, immer_1.produce)(block, draft => {
126
+ draft.statements = newStatements;
127
+ });
128
+ });
129
+ }
130
+ /**
131
+ * Override visitJsCompilationUnit to handle variadic expansion in top-level statements.
132
+ * CompilationUnit.statements is J.RightPadded<Statement>[] (not a Container), so we need
133
+ * array-level access for variadic expansion.
134
+ */
135
+ visitJsCompilationUnit(compilationUnit, p) {
136
+ const _super = Object.create(null, {
137
+ visitJsCompilationUnit: { get: () => super.visitJsCompilationUnit }
138
+ });
139
+ return __awaiter(this, void 0, void 0, function* () {
140
+ const hasPlaceholder = compilationUnit.statements.some(stmt => this.isPlaceholder(stmt.element));
141
+ if (!hasPlaceholder) {
142
+ return _super.visitJsCompilationUnit.call(this, compilationUnit, p);
143
+ }
144
+ const newStatements = yield this.expandVariadicElements(compilationUnit.statements, undefined, p);
145
+ return (0, immer_1.produce)(compilationUnit, draft => {
146
+ draft.statements = newStatements;
147
+ });
148
+ });
149
+ }
45
150
  /**
46
151
  * Merges prefixes by preserving comments from the source element
47
152
  * while using whitespace from the template placeholder.
@@ -83,8 +188,15 @@ class PlaceholderReplacementVisitor extends visitor_1.JavaScriptVisitor {
83
188
  const param = this.substitutions.get(placeholderText);
84
189
  if (param) {
85
190
  let arrayToExpand = undefined;
191
+ // Check if it's a J.Container
192
+ const isContainer = param.value && typeof param.value === 'object' &&
193
+ param.value.kind === java_1.J.Kind.Container;
194
+ if (isContainer) {
195
+ // Extract elements from J.Container
196
+ arrayToExpand = param.value.elements;
197
+ }
86
198
  // Check if it's a direct Tree[] array
87
- if (Array.isArray(param.value)) {
199
+ else if (Array.isArray(param.value)) {
88
200
  arrayToExpand = param.value;
89
201
  }
90
202
  // Check if it's a CaptureValue
@@ -192,102 +304,6 @@ class PlaceholderReplacementVisitor extends visitor_1.JavaScriptVisitor {
192
304
  return newElements;
193
305
  });
194
306
  }
195
- visit(tree, p, parent) {
196
- const _super = Object.create(null, {
197
- visit: { get: () => super.visit }
198
- });
199
- return __awaiter(this, void 0, void 0, function* () {
200
- // Check if this node is a placeholder
201
- if (this.isPlaceholder(tree)) {
202
- const replacement = this.replacePlaceholder(tree);
203
- if (replacement !== tree) {
204
- return replacement;
205
- }
206
- }
207
- // Continue with normal traversal
208
- return _super.visit.call(this, tree, p, parent);
209
- });
210
- }
211
- visitMethodInvocation(method, p) {
212
- const _super = Object.create(null, {
213
- visitMethodInvocation: { get: () => super.visitMethodInvocation }
214
- });
215
- return __awaiter(this, void 0, void 0, function* () {
216
- // Check if any arguments are placeholders (possibly variadic)
217
- const hasPlaceholderInArgs = method.arguments.elements.some(arg => this.isPlaceholder(arg.element));
218
- // Check if the select (the object being called on) is a placeholder
219
- const hasPlaceholderInSelect = method.select && this.isPlaceholder(method.select.element);
220
- if (!hasPlaceholderInArgs && !hasPlaceholderInSelect) {
221
- return _super.visitMethodInvocation.call(this, method, p);
222
- }
223
- let newArguments = method.arguments.elements;
224
- if (hasPlaceholderInArgs) {
225
- newArguments = yield this.expandVariadicElements(method.arguments.elements, undefined, p);
226
- }
227
- let newSelect = method.select;
228
- if (hasPlaceholderInSelect && method.select) {
229
- const visitedSelect = yield this.visit(method.select.element, p);
230
- if (visitedSelect) {
231
- newSelect = (0, immer_1.produce)(method.select, draft => {
232
- draft.element = visitedSelect;
233
- });
234
- }
235
- }
236
- return (0, immer_1.produce)(method, draft => {
237
- draft.arguments.elements = newArguments;
238
- if (newSelect !== method.select) {
239
- draft.select = newSelect;
240
- }
241
- });
242
- });
243
- }
244
- visitBlock(block, p) {
245
- const _super = Object.create(null, {
246
- visitBlock: { get: () => super.visitBlock }
247
- });
248
- return __awaiter(this, void 0, void 0, function* () {
249
- // Check if any statements are placeholders (possibly variadic)
250
- const hasPlaceholder = block.statements.some(stmt => {
251
- const stmtElement = stmt.element;
252
- // Check if it's an ExpressionStatement containing a placeholder
253
- if (stmtElement.kind === __2.JS.Kind.ExpressionStatement) {
254
- const exprStmt = stmtElement;
255
- return this.isPlaceholder(exprStmt.expression);
256
- }
257
- return this.isPlaceholder(stmtElement);
258
- });
259
- if (!hasPlaceholder) {
260
- return _super.visitBlock.call(this, block, p);
261
- }
262
- // Unwrap function to extract placeholder from ExpressionStatement
263
- const unwrapStatement = (element) => {
264
- if (element.kind === __2.JS.Kind.ExpressionStatement) {
265
- return element.expression;
266
- }
267
- return element;
268
- };
269
- const newStatements = yield this.expandVariadicElements(block.statements, unwrapStatement, p);
270
- return (0, immer_1.produce)(block, draft => {
271
- draft.statements = newStatements;
272
- });
273
- });
274
- }
275
- visitJsCompilationUnit(compilationUnit, p) {
276
- const _super = Object.create(null, {
277
- visitJsCompilationUnit: { get: () => super.visitJsCompilationUnit }
278
- });
279
- return __awaiter(this, void 0, void 0, function* () {
280
- // Check if any statements are placeholders (possibly variadic)
281
- const hasPlaceholder = compilationUnit.statements.some(stmt => this.isPlaceholder(stmt.element));
282
- if (!hasPlaceholder) {
283
- return _super.visitJsCompilationUnit.call(this, compilationUnit, p);
284
- }
285
- const newStatements = yield this.expandVariadicElements(compilationUnit.statements, undefined, p);
286
- return (0, immer_1.produce)(compilationUnit, draft => {
287
- draft.statements = newStatements;
288
- });
289
- });
290
- }
291
307
  /**
292
308
  * Checks if a node is a placeholder.
293
309
  *
@@ -371,6 +387,26 @@ class PlaceholderReplacementVisitor extends visitor_1.JavaScriptVisitor {
371
387
  // If no match found, return placeholder unchanged
372
388
  return placeholder;
373
389
  }
390
+ // Check if the parameter value is a J.RightPadded wrapper
391
+ const isRightPadded = param.value && typeof param.value === 'object' &&
392
+ param.value.kind === java_1.J.Kind.RightPadded && (0, __1.isTree)(param.value.element);
393
+ if (isRightPadded) {
394
+ // Extract the element from the J.RightPadded wrapper
395
+ const element = param.value.element;
396
+ return (0, immer_1.produce)(element, draft => {
397
+ draft.markers = placeholder.markers;
398
+ draft.prefix = this.mergePrefix(element.prefix, placeholder.prefix);
399
+ });
400
+ }
401
+ // Check if the parameter value is a J.Container
402
+ const isContainer = param.value && typeof param.value === 'object' &&
403
+ param.value.kind === java_1.J.Kind.Container;
404
+ if (isContainer) {
405
+ // J.Container should be handled by expandVariadicElements
406
+ // For now, return placeholder - the expansion will happen at a higher level
407
+ // This should not happen in normal usage, as containers are typically used in argument positions
408
+ return placeholder;
409
+ }
374
410
  // If the parameter value is an AST node, use it directly
375
411
  if ((0, __1.isTree)(param.value)) {
376
412
  // Return the AST node, preserving comments from the source
@@ -1 +1 @@
1
- {"version":3,"file":"placeholder-replacement.js","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"placeholder-replacement.js","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"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"}
@@ -176,8 +176,13 @@ export declare class Template {
176
176
  * to navigate properties (e.g., `method.name`) or array bracket notation to
177
177
  * access array elements (e.g., `args.elements[0].element`).
178
178
  *
179
+ * Templates can also accept AST wrapper types directly:
180
+ * - J.RightPadded<T>: The element will be extracted and inserted
181
+ * - J.RightPadded<T>[]: Elements will be expanded in place
182
+ * - J.Container<T>: Elements will be expanded in place
183
+ *
179
184
  * @param strings The string parts of the template
180
- * @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree, or Tree[])
185
+ * @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree, Tree[], J.RightPadded, J.RightPadded[], or J.Container)
181
186
  * @returns A Template object that can be applied to generate AST nodes
182
187
  *
183
188
  * @example
@@ -212,6 +217,12 @@ export declare class Template {
212
217
  * // Array element access
213
218
  * const invocation = capture<J.MethodInvocation>('invocation');
214
219
  * template`bar(${invocation.arguments.elements[0].element})`
220
+ *
221
+ * @example
222
+ * // Using J.RightPadded and J.Container directly
223
+ * const selectExpr = method.select; // J.RightPadded<Expression>
224
+ * const args = method.arguments; // J.Container<Expression>
225
+ * template`${selectExpr}.newMethod(${args})`
215
226
  */
216
227
  export declare function template(strings: TemplateStringsArray, ...parameters: TemplateParameter[]): Template;
217
228
  export type { JavaCoordinates };
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/template.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AACnC,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAK/E,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAEtB;;GAEG;AACH,KAAK,eAAe,GAAG;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,GAAG,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;IAC/B,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;CAC/B,CAAC;AAEF,kBAAU,eAAe,CAAC;IAEtB,KAAY,QAAQ,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,WAAW,CAAC;IAE9E,KAAY,IAAI;QACZ,MAAM,IAAA;QACN,KAAK,IAAA;QACL,OAAO,IAAA;KACV;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAA2B;IAEzC;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAcvB;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAWrC;;;;OAIG;IACH,KAAK,IAAI,QAAQ;CAiBpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,QAAQ;IA4Bb,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IA5B/B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAI;IAE5B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,OAAO,IAAI,eAAe;IAIjC;;;;;OAKG;gBAEkB,aAAa,EAAE,oBAAoB,EACnC,UAAU,EAAE,SAAS,EAAE;IAI5C;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ;IAO7C;;;;;;;;;;;OAWG;IACG,eAAe,IAAI,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC;IAuCpD;;;;;;;OAOG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CAoDpJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,UAAU,EAAE,iBAAiB,EAAE,GAAG,QAAQ,CAQpG;AAED,YAAY,EAAC,eAAe,EAAC,CAAC"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/template.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AACnC,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAK/E,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAEtB;;GAEG;AACH,KAAK,eAAe,GAAG;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,GAAG,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;IAC/B,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;CAC/B,CAAC;AAEF,kBAAU,eAAe,CAAC;IAEtB,KAAY,QAAQ,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,WAAW,CAAC;IAE9E,KAAY,IAAI;QACZ,MAAM,IAAA;QACN,KAAK,IAAA;QACL,OAAO,IAAA;KACV;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAA2B;IAEzC;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAcvB;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAWrC;;;;OAIG;IACH,KAAK,IAAI,QAAQ;CAiBpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,QAAQ;IA4Bb,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IA5B/B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAI;IAE5B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,OAAO,IAAI,eAAe;IAIjC;;;;;OAKG;gBAEkB,aAAa,EAAE,oBAAoB,EACnC,UAAU,EAAE,SAAS,EAAE;IAI5C;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ;IAO7C;;;;;;;;;;;OAWG;IACG,eAAe,IAAI,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC;IAuCpD;;;;;;;OAOG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CAoDpJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,UAAU,EAAE,iBAAiB,EAAE,GAAG,QAAQ,CAQpG;AAED,YAAY,EAAC,eAAe,EAAC,CAAC"}
@@ -299,8 +299,13 @@ exports.Template = Template;
299
299
  * to navigate properties (e.g., `method.name`) or array bracket notation to
300
300
  * access array elements (e.g., `args.elements[0].element`).
301
301
  *
302
+ * Templates can also accept AST wrapper types directly:
303
+ * - J.RightPadded<T>: The element will be extracted and inserted
304
+ * - J.RightPadded<T>[]: Elements will be expanded in place
305
+ * - J.Container<T>: Elements will be expanded in place
306
+ *
302
307
  * @param strings The string parts of the template
303
- * @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree, or Tree[])
308
+ * @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree, Tree[], J.RightPadded, J.RightPadded[], or J.Container)
304
309
  * @returns A Template object that can be applied to generate AST nodes
305
310
  *
306
311
  * @example
@@ -335,6 +340,12 @@ exports.Template = Template;
335
340
  * // Array element access
336
341
  * const invocation = capture<J.MethodInvocation>('invocation');
337
342
  * template`bar(${invocation.arguments.elements[0].element})`
343
+ *
344
+ * @example
345
+ * // Using J.RightPadded and J.Container directly
346
+ * const selectExpr = method.select; // J.RightPadded<Expression>
347
+ * const args = method.arguments; // J.Container<Expression>
348
+ * template`${selectExpr}.newMethod(${args})`
338
349
  */
339
350
  function template(strings, ...parameters) {
340
351
  // Convert parameters to Parameter objects (no longer need to check for mutable tree property)
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/javascript/templating/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/javascript/templating/template.ts"],"names":[],"mappings":"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"}
@@ -245,11 +245,14 @@ export interface PatternOptions {
245
245
  * - TemplateParam: For standalone template parameters
246
246
  * - Tree: AST nodes to be inserted directly
247
247
  * - Tree[]: Arrays of AST nodes (from variadic capture operations like slice)
248
+ * - J.RightPadded<any>: Wrapper containing an element with markers (element will be extracted)
249
+ * - J.RightPadded<any>[]: Array of wrappers (elements will be expanded)
250
+ * - J.Container<any>: Container with elements (elements will be expanded)
248
251
  *
249
252
  * Note: Primitive values (string, number, boolean) are NOT supported in template literals.
250
253
  * Use Template.builder() API if you need to insert literal values.
251
254
  */
252
- export type TemplateParameter = Capture | CaptureValue | TemplateParam | Tree | Tree[];
255
+ export type TemplateParameter = Capture | CaptureValue | TemplateParam | Tree | Tree[] | J.RightPadded<any> | J.RightPadded<any>[] | J.Container<any>;
253
256
  /**
254
257
  * Parameter specification for template generation (internal).
255
258
  * Represents a placeholder in a template that will be replaced with a parameter value.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/types.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AACnC,OAAO,EAAC,CAAC,EAAE,IAAI,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,GAAG;IAC5B;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC;IAEtB;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAAC;IAElD;;;;;OAKG;IACH,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CACzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,GAAG;IACxB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC;IAEtB;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAAC;IAElD;;;;OAIG;IACH,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CACxD;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IAClC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAEtJ;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACtB;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC5B,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC;IAErD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE"}
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- 8.67.0-20251107-150956
1
+ 8.67.0-20251107-160330
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.67.0-20251107-150956",
3
+ "version": "8.67.0-20251107-160330",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
@@ -34,6 +34,102 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
34
34
  super();
35
35
  }
36
36
 
37
+ async visit<R extends J>(tree: J, p: any, parent?: Cursor): Promise<R | undefined> {
38
+ // Check if this node is a placeholder
39
+ if (this.isPlaceholder(tree)) {
40
+ const replacement = this.replacePlaceholder(tree);
41
+ if (replacement !== tree) {
42
+ return replacement as R;
43
+ }
44
+ }
45
+
46
+ // Continue with normal traversal
47
+ return super.visit(tree, p, parent);
48
+ }
49
+
50
+ /**
51
+ * Override visitContainer to handle variadic expansion for containers.
52
+ * This handles J.Container instances anywhere in the AST (method arguments, etc.).
53
+ */
54
+ override async visitContainer<T extends J>(container: J.Container<T>, p: any): Promise<J.Container<T>> {
55
+ // Check if any elements are placeholders (possibly variadic)
56
+ const hasPlaceholder = container.elements.some(elem => this.isPlaceholder(elem.element));
57
+
58
+ if (!hasPlaceholder) {
59
+ return super.visitContainer(container, p);
60
+ }
61
+
62
+ // Expand variadic placeholders in the container's elements
63
+ const newElements = await this.expandVariadicElements(container.elements, undefined, p);
64
+
65
+ return produce(container, draft => {
66
+ draft.elements = newElements as any;
67
+ });
68
+ }
69
+
70
+ /**
71
+ * Override visitRightPadded to handle single placeholder replacements.
72
+ * The base implementation will visit the element, which triggers our visit() override
73
+ * for placeholder detection and replacement.
74
+ */
75
+ override async visitRightPadded<T extends J | boolean>(right: J.RightPadded<T>, p: any): Promise<J.RightPadded<T>> {
76
+ return super.visitRightPadded(right, p);
77
+ }
78
+
79
+ /**
80
+ * Override visitBlock to handle variadic expansion in block statements.
81
+ * Block.statements is J.RightPadded<Statement>[] (not a Container), so we need
82
+ * array-level access for variadic expansion.
83
+ */
84
+ override async visitBlock(block: J.Block, p: any): Promise<J | undefined> {
85
+ const hasPlaceholder = block.statements.some(stmt => {
86
+ const stmtElement = stmt.element;
87
+ // Check if it's an ExpressionStatement containing a placeholder
88
+ if (stmtElement.kind === JS.Kind.ExpressionStatement) {
89
+ const exprStmt = stmtElement as JS.ExpressionStatement;
90
+ return this.isPlaceholder(exprStmt.expression);
91
+ }
92
+ return this.isPlaceholder(stmtElement);
93
+ });
94
+
95
+ if (!hasPlaceholder) {
96
+ return super.visitBlock(block, p);
97
+ }
98
+
99
+ // Unwrap function to extract placeholder from ExpressionStatement
100
+ const unwrapStatement = (element: J): J => {
101
+ if (element.kind === JS.Kind.ExpressionStatement) {
102
+ return (element as JS.ExpressionStatement).expression;
103
+ }
104
+ return element;
105
+ };
106
+
107
+ const newStatements = await this.expandVariadicElements(block.statements, unwrapStatement, p);
108
+
109
+ return produce(block, draft => {
110
+ draft.statements = newStatements;
111
+ });
112
+ }
113
+
114
+ /**
115
+ * Override visitJsCompilationUnit to handle variadic expansion in top-level statements.
116
+ * CompilationUnit.statements is J.RightPadded<Statement>[] (not a Container), so we need
117
+ * array-level access for variadic expansion.
118
+ */
119
+ override async visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: any): Promise<J | undefined> {
120
+ const hasPlaceholder = compilationUnit.statements.some(stmt => this.isPlaceholder(stmt.element));
121
+
122
+ if (!hasPlaceholder) {
123
+ return super.visitJsCompilationUnit(compilationUnit, p);
124
+ }
125
+
126
+ const newStatements = await this.expandVariadicElements(compilationUnit.statements, undefined, p);
127
+
128
+ return produce(compilationUnit, draft => {
129
+ draft.statements = newStatements;
130
+ });
131
+ }
132
+
37
133
  /**
38
134
  * Merges prefixes by preserving comments from the source element
39
135
  * while using whitespace from the template placeholder.
@@ -83,8 +179,15 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
83
179
  if (param) {
84
180
  let arrayToExpand: J[] | J.RightPadded<J>[] | undefined = undefined;
85
181
 
182
+ // Check if it's a J.Container
183
+ const isContainer = param.value && typeof param.value === 'object' &&
184
+ param.value.kind === J.Kind.Container;
185
+ if (isContainer) {
186
+ // Extract elements from J.Container
187
+ arrayToExpand = param.value.elements as J.RightPadded<J>[];
188
+ }
86
189
  // Check if it's a direct Tree[] array
87
- if (Array.isArray(param.value)) {
190
+ else if (Array.isArray(param.value)) {
88
191
  arrayToExpand = param.value as J[];
89
192
  }
90
193
  // Check if it's a CaptureValue
@@ -97,7 +200,7 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
97
200
  // Check if it's a direct variadic capture
98
201
  else {
99
202
  const isCapture = param.value instanceof CaptureImpl ||
100
- (param.value && typeof param.value === 'object' && param.value[CAPTURE_NAME_SYMBOL]);
203
+ (param.value && typeof param.value === 'object' && param.value[CAPTURE_NAME_SYMBOL]);
101
204
  if (isCapture) {
102
205
  const name = param.value[CAPTURE_NAME_SYMBOL] || param.value.name;
103
206
  const capture = Array.from(this.substitutions.values())
@@ -176,7 +279,7 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
176
279
  const param = this.substitutions.get(placeholderText);
177
280
  if (param) {
178
281
  const isCapture = param.value instanceof CaptureImpl ||
179
- (param.value && typeof param.value === 'object' && param.value[CAPTURE_NAME_SYMBOL]);
282
+ (param.value && typeof param.value === 'object' && param.value[CAPTURE_NAME_SYMBOL]);
180
283
  if (isCapture) {
181
284
  const name = param.value[CAPTURE_NAME_SYMBOL] || param.value.name;
182
285
  const wrapper = this.wrappersMap.get(name);
@@ -197,98 +300,6 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
197
300
  return newElements;
198
301
  }
199
302
 
200
- async visit<R extends J>(tree: J, p: any, parent?: Cursor): Promise<R | undefined> {
201
- // Check if this node is a placeholder
202
- if (this.isPlaceholder(tree)) {
203
- const replacement = this.replacePlaceholder(tree);
204
- if (replacement !== tree) {
205
- return replacement as R;
206
- }
207
- }
208
-
209
- // Continue with normal traversal
210
- return super.visit(tree, p, parent);
211
- }
212
-
213
- override async visitMethodInvocation(method: J.MethodInvocation, p: any): Promise<J | undefined> {
214
- // Check if any arguments are placeholders (possibly variadic)
215
- const hasPlaceholderInArgs = method.arguments.elements.some(arg => this.isPlaceholder(arg.element));
216
- // Check if the select (the object being called on) is a placeholder
217
- const hasPlaceholderInSelect = method.select && this.isPlaceholder(method.select.element);
218
-
219
- if (!hasPlaceholderInArgs && !hasPlaceholderInSelect) {
220
- return super.visitMethodInvocation(method, p);
221
- }
222
-
223
- let newArguments = method.arguments.elements;
224
- if (hasPlaceholderInArgs) {
225
- newArguments = await this.expandVariadicElements(method.arguments.elements, undefined, p);
226
- }
227
-
228
- let newSelect = method.select;
229
- if (hasPlaceholderInSelect && method.select) {
230
- const visitedSelect = await this.visit(method.select.element, p);
231
- if (visitedSelect) {
232
- newSelect = produce(method.select, draft => {
233
- draft.element = visitedSelect;
234
- });
235
- }
236
- }
237
-
238
- return produce(method, draft => {
239
- draft.arguments.elements = newArguments;
240
- if (newSelect !== method.select) {
241
- draft.select = newSelect;
242
- }
243
- });
244
- }
245
-
246
- override async visitBlock(block: J.Block, p: any): Promise<J | undefined> {
247
- // Check if any statements are placeholders (possibly variadic)
248
- const hasPlaceholder = block.statements.some(stmt => {
249
- const stmtElement = stmt.element;
250
- // Check if it's an ExpressionStatement containing a placeholder
251
- if (stmtElement.kind === JS.Kind.ExpressionStatement) {
252
- const exprStmt = stmtElement as JS.ExpressionStatement;
253
- return this.isPlaceholder(exprStmt.expression);
254
- }
255
- return this.isPlaceholder(stmtElement);
256
- });
257
-
258
- if (!hasPlaceholder) {
259
- return super.visitBlock(block, p);
260
- }
261
-
262
- // Unwrap function to extract placeholder from ExpressionStatement
263
- const unwrapStatement = (element: J): J => {
264
- if (element.kind === JS.Kind.ExpressionStatement) {
265
- return (element as JS.ExpressionStatement).expression;
266
- }
267
- return element;
268
- };
269
-
270
- const newStatements = await this.expandVariadicElements(block.statements, unwrapStatement, p);
271
-
272
- return produce(block, draft => {
273
- draft.statements = newStatements;
274
- });
275
- }
276
-
277
- override async visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: any): Promise<J | undefined> {
278
- // Check if any statements are placeholders (possibly variadic)
279
- const hasPlaceholder = compilationUnit.statements.some(stmt => this.isPlaceholder(stmt.element));
280
-
281
- if (!hasPlaceholder) {
282
- return super.visitJsCompilationUnit(compilationUnit, p);
283
- }
284
-
285
- const newStatements = await this.expandVariadicElements(compilationUnit.statements, undefined, p);
286
-
287
- return produce(compilationUnit, draft => {
288
- draft.statements = newStatements;
289
- });
290
- }
291
-
292
303
  /**
293
304
  * Checks if a node is a placeholder.
294
305
  *
@@ -362,13 +373,13 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
362
373
 
363
374
  // Check if the parameter value is a Capture (could be a Proxy) or TemplateParam
364
375
  const isCapture = param.value instanceof CaptureImpl ||
365
- (param.value && typeof param.value === 'object' && param.value[CAPTURE_NAME_SYMBOL]);
376
+ (param.value && typeof param.value === 'object' && param.value[CAPTURE_NAME_SYMBOL]);
366
377
  const isTemplateParam = param.value instanceof TemplateParamImpl;
367
378
 
368
379
  if (isCapture || isTemplateParam) {
369
380
  // Simple capture/template param (no property path for template params)
370
381
  const name = isTemplateParam ? param.value.name :
371
- (param.value[CAPTURE_NAME_SYMBOL] || param.value.name);
382
+ (param.value[CAPTURE_NAME_SYMBOL] || param.value.name);
372
383
  const matchedNode = this.values.get(name);
373
384
  if (matchedNode && !Array.isArray(matchedNode)) {
374
385
  return produce(matchedNode, draft => {
@@ -381,6 +392,30 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
381
392
  return placeholder;
382
393
  }
383
394
 
395
+ // Check if the parameter value is a J.RightPadded wrapper
396
+ const isRightPadded = param.value && typeof param.value === 'object' &&
397
+ param.value.kind === J.Kind.RightPadded && isTree(param.value.element);
398
+
399
+ if (isRightPadded) {
400
+ // Extract the element from the J.RightPadded wrapper
401
+ const element = param.value.element as J;
402
+ return produce(element, draft => {
403
+ draft.markers = placeholder.markers;
404
+ draft.prefix = this.mergePrefix(element.prefix, placeholder.prefix);
405
+ });
406
+ }
407
+
408
+ // Check if the parameter value is a J.Container
409
+ const isContainer = param.value && typeof param.value === 'object' &&
410
+ param.value.kind === J.Kind.Container;
411
+
412
+ if (isContainer) {
413
+ // J.Container should be handled by expandVariadicElements
414
+ // For now, return placeholder - the expansion will happen at a higher level
415
+ // This should not happen in normal usage, as containers are typically used in argument positions
416
+ return placeholder;
417
+ }
418
+
384
419
  // If the parameter value is an AST node, use it directly
385
420
  if (isTree(param.value)) {
386
421
  // Return the AST node, preserving comments from the source
@@ -344,8 +344,13 @@ export class Template {
344
344
  * to navigate properties (e.g., `method.name`) or array bracket notation to
345
345
  * access array elements (e.g., `args.elements[0].element`).
346
346
  *
347
+ * Templates can also accept AST wrapper types directly:
348
+ * - J.RightPadded<T>: The element will be extracted and inserted
349
+ * - J.RightPadded<T>[]: Elements will be expanded in place
350
+ * - J.Container<T>: Elements will be expanded in place
351
+ *
347
352
  * @param strings The string parts of the template
348
- * @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree, or Tree[])
353
+ * @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree, Tree[], J.RightPadded, J.RightPadded[], or J.Container)
349
354
  * @returns A Template object that can be applied to generate AST nodes
350
355
  *
351
356
  * @example
@@ -380,6 +385,12 @@ export class Template {
380
385
  * // Array element access
381
386
  * const invocation = capture<J.MethodInvocation>('invocation');
382
387
  * template`bar(${invocation.arguments.elements[0].element})`
388
+ *
389
+ * @example
390
+ * // Using J.RightPadded and J.Container directly
391
+ * const selectExpr = method.select; // J.RightPadded<Expression>
392
+ * const args = method.arguments; // J.Container<Expression>
393
+ * template`${selectExpr}.newMethod(${args})`
383
394
  */
384
395
  export function template(strings: TemplateStringsArray, ...parameters: TemplateParameter[]): Template {
385
396
  // Convert parameters to Parameter objects (no longer need to check for mutable tree property)
@@ -278,11 +278,14 @@ export interface PatternOptions {
278
278
  * - TemplateParam: For standalone template parameters
279
279
  * - Tree: AST nodes to be inserted directly
280
280
  * - Tree[]: Arrays of AST nodes (from variadic capture operations like slice)
281
+ * - J.RightPadded<any>: Wrapper containing an element with markers (element will be extracted)
282
+ * - J.RightPadded<any>[]: Array of wrappers (elements will be expanded)
283
+ * - J.Container<any>: Container with elements (elements will be expanded)
281
284
  *
282
285
  * Note: Primitive values (string, number, boolean) are NOT supported in template literals.
283
286
  * Use Template.builder() API if you need to insert literal values.
284
287
  */
285
- export type TemplateParameter = Capture | CaptureValue | TemplateParam | Tree | Tree[];
288
+ export type TemplateParameter = Capture | CaptureValue | TemplateParam | Tree | Tree[] | J.RightPadded<any> | J.RightPadded<any>[] | J.Container<any>;
286
289
 
287
290
  /**
288
291
  * Parameter specification for template generation (internal).