@openrewrite/rewrite 8.66.0 → 8.66.2

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 (113) hide show
  1. package/dist/java/tree.d.ts +10 -1
  2. package/dist/java/tree.d.ts.map +1 -1
  3. package/dist/java/tree.js +21 -5
  4. package/dist/java/tree.js.map +1 -1
  5. package/dist/java/type-visitor.d.ts +1 -1
  6. package/dist/java/type-visitor.d.ts.map +1 -1
  7. package/dist/java/visitor.d.ts +2 -2
  8. package/dist/java/visitor.d.ts.map +1 -1
  9. package/dist/java/visitor.js +8 -2
  10. package/dist/java/visitor.js.map +1 -1
  11. package/dist/javascript/assertions.d.ts +6 -0
  12. package/dist/javascript/assertions.d.ts.map +1 -1
  13. package/dist/javascript/assertions.js +14 -6
  14. package/dist/javascript/assertions.js.map +1 -1
  15. package/dist/javascript/comparator.d.ts +217 -7
  16. package/dist/javascript/comparator.d.ts.map +1 -1
  17. package/dist/javascript/comparator.js +1020 -2848
  18. package/dist/javascript/comparator.js.map +1 -1
  19. package/dist/javascript/format.d.ts +5 -3
  20. package/dist/javascript/format.d.ts.map +1 -1
  21. package/dist/javascript/format.js +87 -44
  22. package/dist/javascript/format.js.map +1 -1
  23. package/dist/javascript/index.d.ts +2 -1
  24. package/dist/javascript/index.d.ts.map +1 -1
  25. package/dist/javascript/index.js +2 -1
  26. package/dist/javascript/index.js.map +1 -1
  27. package/dist/javascript/parser.d.ts +2 -1
  28. package/dist/javascript/parser.d.ts.map +1 -1
  29. package/dist/javascript/parser.js +54 -43
  30. package/dist/javascript/parser.js.map +1 -1
  31. package/dist/javascript/templating/capture.d.ts +293 -0
  32. package/dist/javascript/templating/capture.d.ts.map +1 -0
  33. package/dist/javascript/templating/capture.js +461 -0
  34. package/dist/javascript/templating/capture.js.map +1 -0
  35. package/dist/javascript/templating/comparator.d.ts +171 -0
  36. package/dist/javascript/templating/comparator.d.ts.map +1 -0
  37. package/dist/javascript/templating/comparator.js +1221 -0
  38. package/dist/javascript/templating/comparator.js.map +1 -0
  39. package/dist/javascript/templating/engine.d.ts +108 -0
  40. package/dist/javascript/templating/engine.d.ts.map +1 -0
  41. package/dist/javascript/templating/engine.js +661 -0
  42. package/dist/javascript/templating/engine.js.map +1 -0
  43. package/dist/javascript/templating/index.d.ts +6 -0
  44. package/dist/javascript/templating/index.d.ts.map +1 -0
  45. package/dist/javascript/templating/index.js +44 -0
  46. package/dist/javascript/templating/index.js.map +1 -0
  47. package/dist/javascript/templating/pattern.d.ts +276 -0
  48. package/dist/javascript/templating/pattern.d.ts.map +1 -0
  49. package/dist/javascript/templating/pattern.js +952 -0
  50. package/dist/javascript/templating/pattern.js.map +1 -0
  51. package/dist/javascript/templating/placeholder-replacement.d.ts +83 -0
  52. package/dist/javascript/templating/placeholder-replacement.d.ts.map +1 -0
  53. package/dist/javascript/templating/placeholder-replacement.js +467 -0
  54. package/dist/javascript/templating/placeholder-replacement.js.map +1 -0
  55. package/dist/javascript/templating/rewrite.d.ts +84 -0
  56. package/dist/javascript/templating/rewrite.d.ts.map +1 -0
  57. package/dist/javascript/templating/rewrite.js +208 -0
  58. package/dist/javascript/templating/rewrite.js.map +1 -0
  59. package/dist/javascript/templating/template.d.ts +230 -0
  60. package/dist/javascript/templating/template.d.ts.map +1 -0
  61. package/dist/javascript/templating/template.js +367 -0
  62. package/dist/javascript/templating/template.js.map +1 -0
  63. package/dist/javascript/templating/types.d.ts +610 -0
  64. package/dist/javascript/templating/types.d.ts.map +1 -0
  65. package/dist/javascript/templating/types.js +3 -0
  66. package/dist/javascript/templating/types.js.map +1 -0
  67. package/dist/javascript/templating/utils.d.ts +135 -0
  68. package/dist/javascript/templating/utils.d.ts.map +1 -0
  69. package/dist/javascript/templating/utils.js +251 -0
  70. package/dist/javascript/templating/utils.js.map +1 -0
  71. package/dist/javascript/type-mapping.d.ts.map +1 -1
  72. package/dist/javascript/type-mapping.js +21 -11
  73. package/dist/javascript/type-mapping.js.map +1 -1
  74. package/dist/json/rpc.js +2 -2
  75. package/dist/json/rpc.js.map +1 -1
  76. package/dist/recipe/order-imports.js.map +1 -1
  77. package/dist/test/rewrite-test.d.ts.map +1 -1
  78. package/dist/test/rewrite-test.js +10 -6
  79. package/dist/test/rewrite-test.js.map +1 -1
  80. package/dist/version.txt +1 -1
  81. package/dist/visitor.d.ts +4 -4
  82. package/dist/visitor.d.ts.map +1 -1
  83. package/dist/visitor.js +8 -3
  84. package/dist/visitor.js.map +1 -1
  85. package/package.json +5 -2
  86. package/src/java/tree.ts +10 -3
  87. package/src/java/type-visitor.ts +1 -1
  88. package/src/java/visitor.ts +11 -5
  89. package/src/javascript/assertions.ts +9 -3
  90. package/src/javascript/comparator.ts +1095 -3373
  91. package/src/javascript/format.ts +72 -33
  92. package/src/javascript/index.ts +2 -1
  93. package/src/javascript/parser.ts +67 -45
  94. package/src/javascript/templating/capture.ts +595 -0
  95. package/src/javascript/templating/comparator.ts +1383 -0
  96. package/src/javascript/templating/engine.ts +750 -0
  97. package/src/javascript/templating/index.ts +67 -0
  98. package/src/javascript/templating/pattern.ts +1101 -0
  99. package/src/javascript/templating/placeholder-replacement.ts +475 -0
  100. package/src/javascript/templating/rewrite.ts +229 -0
  101. package/src/javascript/templating/template.ts +414 -0
  102. package/src/javascript/templating/types.ts +674 -0
  103. package/src/javascript/templating/utils.ts +298 -0
  104. package/src/javascript/type-mapping.ts +20 -11
  105. package/src/json/rpc.ts +2 -2
  106. package/src/recipe/order-imports.ts +1 -1
  107. package/src/test/rewrite-test.ts +12 -7
  108. package/src/visitor.ts +14 -6
  109. package/dist/javascript/templating.d.ts +0 -265
  110. package/dist/javascript/templating.d.ts.map +0 -1
  111. package/dist/javascript/templating.js +0 -1027
  112. package/dist/javascript/templating.js.map +0 -1
  113. package/src/javascript/templating.ts +0 -1226
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { Cursor } from '../..';
2
+ import { J } from '../../java';
3
+ import { JS } from '..';
4
+ import { JavaScriptVisitor } from '../visitor';
5
+ import { Parameter } from './types';
6
+ /**
7
+ * Visitor that replaces placeholder nodes with actual parameter values.
8
+ */
9
+ export declare class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
10
+ private readonly substitutions;
11
+ private readonly values;
12
+ private readonly wrappersMap;
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 visitBindingElement to preserve propertyName from template when replacing.
17
+ * For example, in `{ ref: ${ref} }`, we want to preserve `ref:` when replacing ${ref}.
18
+ */
19
+ visitBindingElement(bindingElement: JS.BindingElement, p: any): Promise<J | undefined>;
20
+ /**
21
+ * Override visitContainer to handle variadic expansion for containers.
22
+ * This handles J.Container instances anywhere in the AST (method arguments, etc.).
23
+ */
24
+ visitContainer<T extends J>(container: J.Container<T>, p: any): Promise<J.Container<T>>;
25
+ /**
26
+ * Override visitRightPadded to handle single placeholder replacements.
27
+ * The base implementation will visit the element, which triggers our visit() override
28
+ * for placeholder detection and replacement.
29
+ */
30
+ visitRightPadded<T extends J | boolean>(right: J.RightPadded<T>, p: any): Promise<J.RightPadded<T> | undefined>;
31
+ /**
32
+ * Override visitBlock to handle variadic expansion in block statements.
33
+ * Block.statements is J.RightPadded<Statement>[] (not a Container), so we need
34
+ * array-level access for variadic expansion.
35
+ */
36
+ visitBlock(block: J.Block, p: any): Promise<J | undefined>;
37
+ /**
38
+ * Override visitJsCompilationUnit to handle variadic expansion in top-level statements.
39
+ * CompilationUnit.statements is J.RightPadded<Statement>[] (not a Container), so we need
40
+ * array-level access for variadic expansion.
41
+ */
42
+ visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: any): Promise<J | undefined>;
43
+ /**
44
+ * Merges prefixes by preserving comments from the source element
45
+ * while using whitespace from the template placeholder.
46
+ *
47
+ * @param sourcePrefix The prefix from the captured element (may contain comments)
48
+ * @param templatePrefix The prefix from the template placeholder (defines whitespace)
49
+ * @returns A merged prefix with source comments and template whitespace
50
+ */
51
+ private mergePrefix;
52
+ /**
53
+ * Expands variadic placeholders in a list of elements.
54
+ *
55
+ * @param elements The list of wrapped elements to process
56
+ * @param unwrapElement Optional function to unwrap the placeholder node from its container (e.g., ExpressionStatement)
57
+ * @param p Context parameter for visitor
58
+ * @returns Promise of new list with placeholders expanded
59
+ */
60
+ private expandVariadicElements;
61
+ /**
62
+ * Checks if a node is a placeholder.
63
+ *
64
+ * @param node The node to check
65
+ * @returns True if the node is a placeholder
66
+ */
67
+ private isPlaceholder;
68
+ /**
69
+ * Replaces a placeholder node with the actual parameter value.
70
+ *
71
+ * @param placeholder The placeholder node
72
+ * @returns The replacement node or the original if not a placeholder
73
+ */
74
+ private replacePlaceholder;
75
+ /**
76
+ * Gets the placeholder text from a node.
77
+ *
78
+ * @param node The node to get placeholder text from
79
+ * @returns The placeholder text or null
80
+ */
81
+ private getPlaceholderText;
82
+ }
83
+ //# sourceMappingURL=placeholder-replacement.d.ts.map
@@ -0,0 +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;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;IAclF;;;OAGG;IACY,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAgBrG;;;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,GAAG,SAAS,CAAC;IAI9H;;;;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;IAerB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAyG1B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAa7B"}
@@ -0,0 +1,467 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PlaceholderReplacementVisitor = void 0;
13
+ /*
14
+ * Copyright 2025 the original author or authors.
15
+ * <p>
16
+ * Licensed under the Moderne Source Available License (the "License");
17
+ * you may not use this file except in compliance with the License.
18
+ * You may obtain a copy of the License at
19
+ * <p>
20
+ * https://docs.moderne.io/licensing/moderne-source-available-license
21
+ * <p>
22
+ * Unless required by applicable law or agreed to in writing, software
23
+ * distributed under the License is distributed on an "AS IS" BASIS,
24
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25
+ * See the License for the specific language governing permissions and
26
+ * limitations under the License.
27
+ */
28
+ const __1 = require("../..");
29
+ const java_1 = require("../../java");
30
+ const __2 = require("..");
31
+ const visitor_1 = require("../visitor");
32
+ const immer_1 = require("immer");
33
+ const utils_1 = require("./utils");
34
+ const capture_1 = require("./capture");
35
+ /**
36
+ * Visitor that replaces placeholder nodes with actual parameter values.
37
+ */
38
+ class PlaceholderReplacementVisitor extends visitor_1.JavaScriptVisitor {
39
+ constructor(substitutions, values = new Map(), wrappersMap = new Map()) {
40
+ super();
41
+ this.substitutions = substitutions;
42
+ this.values = values;
43
+ this.wrappersMap = wrappersMap;
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
+ // BUT: Don't handle `JS.BindingElement` here - let `visitBindingElement` preserve `propertyName`
52
+ if (tree.kind !== __2.JS.Kind.BindingElement && this.isPlaceholder(tree)) {
53
+ const replacement = this.replacePlaceholder(tree);
54
+ if (replacement !== tree) {
55
+ return replacement;
56
+ }
57
+ }
58
+ // Continue with normal traversal
59
+ return _super.visit.call(this, tree, p, parent);
60
+ });
61
+ }
62
+ /**
63
+ * Override visitBindingElement to preserve propertyName from template when replacing.
64
+ * For example, in `{ ref: ${ref} }`, we want to preserve `ref:` when replacing ${ref}.
65
+ */
66
+ visitBindingElement(bindingElement, p) {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ // Visit the name to potentially replace placeholders
69
+ const visitedName = yield this.visit(bindingElement.name, p);
70
+ // If the name changed (placeholder was replaced), preserve the BindingElement structure
71
+ // including the propertyName from the template
72
+ if (visitedName !== bindingElement.name) {
73
+ return (0, immer_1.produce)(bindingElement, draft => {
74
+ draft.name = visitedName;
75
+ // propertyName is already set from the template and will be preserved by produce
76
+ });
77
+ }
78
+ return bindingElement;
79
+ });
80
+ }
81
+ /**
82
+ * Override visitContainer to handle variadic expansion for containers.
83
+ * This handles J.Container instances anywhere in the AST (method arguments, etc.).
84
+ */
85
+ visitContainer(container, p) {
86
+ const _super = Object.create(null, {
87
+ visitContainer: { get: () => super.visitContainer }
88
+ });
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ // Check if any elements are placeholders (possibly variadic)
91
+ const hasPlaceholder = container.elements.some(elem => this.isPlaceholder(elem.element));
92
+ if (!hasPlaceholder) {
93
+ return _super.visitContainer.call(this, container, p);
94
+ }
95
+ // Expand variadic placeholders in the container's elements
96
+ const newElements = yield this.expandVariadicElements(container.elements, undefined, p);
97
+ return (0, immer_1.produce)(container, draft => {
98
+ draft.elements = newElements;
99
+ });
100
+ });
101
+ }
102
+ /**
103
+ * Override visitRightPadded to handle single placeholder replacements.
104
+ * The base implementation will visit the element, which triggers our visit() override
105
+ * for placeholder detection and replacement.
106
+ */
107
+ visitRightPadded(right, p) {
108
+ const _super = Object.create(null, {
109
+ visitRightPadded: { get: () => super.visitRightPadded }
110
+ });
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ return _super.visitRightPadded.call(this, right, p);
113
+ });
114
+ }
115
+ /**
116
+ * Override visitBlock to handle variadic expansion in block statements.
117
+ * Block.statements is J.RightPadded<Statement>[] (not a Container), so we need
118
+ * array-level access for variadic expansion.
119
+ */
120
+ visitBlock(block, p) {
121
+ const _super = Object.create(null, {
122
+ visitBlock: { get: () => super.visitBlock }
123
+ });
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ const hasPlaceholder = block.statements.some(stmt => {
126
+ const stmtElement = stmt.element;
127
+ // Check if it's an ExpressionStatement containing a placeholder
128
+ if (stmtElement.kind === __2.JS.Kind.ExpressionStatement) {
129
+ const exprStmt = stmtElement;
130
+ return this.isPlaceholder(exprStmt.expression);
131
+ }
132
+ return this.isPlaceholder(stmtElement);
133
+ });
134
+ if (!hasPlaceholder) {
135
+ return _super.visitBlock.call(this, block, p);
136
+ }
137
+ // Unwrap function to extract placeholder from ExpressionStatement
138
+ const unwrapStatement = (element) => {
139
+ if (element.kind === __2.JS.Kind.ExpressionStatement) {
140
+ return element.expression;
141
+ }
142
+ return element;
143
+ };
144
+ const newStatements = yield this.expandVariadicElements(block.statements, unwrapStatement, p);
145
+ return (0, immer_1.produce)(block, draft => {
146
+ draft.statements = newStatements;
147
+ });
148
+ });
149
+ }
150
+ /**
151
+ * Override visitJsCompilationUnit to handle variadic expansion in top-level statements.
152
+ * CompilationUnit.statements is J.RightPadded<Statement>[] (not a Container), so we need
153
+ * array-level access for variadic expansion.
154
+ */
155
+ visitJsCompilationUnit(compilationUnit, p) {
156
+ const _super = Object.create(null, {
157
+ visitJsCompilationUnit: { get: () => super.visitJsCompilationUnit }
158
+ });
159
+ return __awaiter(this, void 0, void 0, function* () {
160
+ const hasPlaceholder = compilationUnit.statements.some(stmt => this.isPlaceholder(stmt.element));
161
+ if (!hasPlaceholder) {
162
+ return _super.visitJsCompilationUnit.call(this, compilationUnit, p);
163
+ }
164
+ const newStatements = yield this.expandVariadicElements(compilationUnit.statements, undefined, p);
165
+ return (0, immer_1.produce)(compilationUnit, draft => {
166
+ draft.statements = newStatements;
167
+ });
168
+ });
169
+ }
170
+ /**
171
+ * Merges prefixes by preserving comments from the source element
172
+ * while using whitespace from the template placeholder.
173
+ *
174
+ * @param sourcePrefix The prefix from the captured element (may contain comments)
175
+ * @param templatePrefix The prefix from the template placeholder (defines whitespace)
176
+ * @returns A merged prefix with source comments and template whitespace
177
+ */
178
+ mergePrefix(sourcePrefix, templatePrefix) {
179
+ // If source has no comments, just use template prefix
180
+ if (sourcePrefix.comments.length === 0) {
181
+ return templatePrefix;
182
+ }
183
+ // Preserve comments from source, use whitespace from template
184
+ return {
185
+ kind: java_1.J.Kind.Space,
186
+ comments: sourcePrefix.comments,
187
+ whitespace: templatePrefix.whitespace
188
+ };
189
+ }
190
+ /**
191
+ * Expands variadic placeholders in a list of elements.
192
+ *
193
+ * @param elements The list of wrapped elements to process
194
+ * @param unwrapElement Optional function to unwrap the placeholder node from its container (e.g., ExpressionStatement)
195
+ * @param p Context parameter for visitor
196
+ * @returns Promise of new list with placeholders expanded
197
+ */
198
+ expandVariadicElements(elements_1) {
199
+ return __awaiter(this, arguments, void 0, function* (elements, unwrapElement = (e) => e, p) {
200
+ const newElements = [];
201
+ for (const wrapped of elements) {
202
+ const element = wrapped.element;
203
+ const placeholderNode = unwrapElement(element);
204
+ // Check if this element contains a placeholder
205
+ if (this.isPlaceholder(placeholderNode)) {
206
+ const placeholderText = this.getPlaceholderText(placeholderNode);
207
+ if (placeholderText) {
208
+ const param = this.substitutions.get(placeholderText);
209
+ if (param) {
210
+ let arrayToExpand = undefined;
211
+ // Check if it's a J.Container
212
+ const isContainer = param.value && typeof param.value === 'object' &&
213
+ param.value.kind === java_1.J.Kind.Container;
214
+ if (isContainer) {
215
+ // Extract elements from J.Container
216
+ arrayToExpand = param.value.elements;
217
+ }
218
+ // Check if it's a direct Tree[] array
219
+ else if (Array.isArray(param.value)) {
220
+ arrayToExpand = param.value;
221
+ }
222
+ // Check if it's a CaptureValue
223
+ else if (param.value instanceof capture_1.CaptureValue) {
224
+ const resolved = param.value.resolve(this.values);
225
+ if (Array.isArray(resolved)) {
226
+ arrayToExpand = resolved;
227
+ }
228
+ }
229
+ // Check if it's a direct variadic capture
230
+ else {
231
+ const isCapture = param.value instanceof capture_1.CaptureImpl ||
232
+ (param.value && typeof param.value === 'object' && param.value[capture_1.CAPTURE_NAME_SYMBOL]);
233
+ if (isCapture) {
234
+ const name = param.value[capture_1.CAPTURE_NAME_SYMBOL] || param.value.name;
235
+ const capture = Array.from(this.substitutions.values())
236
+ .map(p => p.value)
237
+ .find(v => v instanceof capture_1.CaptureImpl && v.getName() === name);
238
+ if (capture === null || capture === void 0 ? void 0 : capture.isVariadic()) {
239
+ // Prefer wrappers if available (to preserve markers like Semicolon)
240
+ // Otherwise fall back to elements
241
+ const wrappersArray = this.wrappersMap.get(name);
242
+ if (Array.isArray(wrappersArray)) {
243
+ arrayToExpand = wrappersArray;
244
+ }
245
+ else {
246
+ const matchedArray = this.values.get(name);
247
+ if (Array.isArray(matchedArray)) {
248
+ arrayToExpand = matchedArray;
249
+ }
250
+ }
251
+ }
252
+ }
253
+ }
254
+ // Expand the array if we found one
255
+ if (arrayToExpand !== undefined) {
256
+ if (arrayToExpand.length > 0) {
257
+ for (let i = 0; i < arrayToExpand.length; i++) {
258
+ const item = arrayToExpand[i];
259
+ // Check if item is a JRightPadded wrapper or just an element
260
+ // JRightPadded wrappers have 'element', 'after', and 'markers' properties
261
+ // Also ensure the element field is not null
262
+ const isWrapper = item && typeof item === 'object' && 'element' in item && 'after' in item && item.element != null;
263
+ if (isWrapper) {
264
+ // Item is a JRightPadded wrapper - use it directly to preserve markers
265
+ newElements.push((0, immer_1.produce)(item, draft => {
266
+ if (i === 0 && draft.element) {
267
+ // Merge the placeholder's prefix with the first item's prefix
268
+ // Modify prefix directly without nested produce to avoid immer issues
269
+ draft.element.prefix = this.mergePrefix(draft.element.prefix, element.prefix);
270
+ }
271
+ // Keep all other wrapper properties (including markers with Semicolon)
272
+ }));
273
+ }
274
+ else if (item) {
275
+ // Item is just an element (not a wrapper) - wrap it (backward compatibility)
276
+ const elem = item;
277
+ newElements.push((0, immer_1.produce)(wrapped, draft => {
278
+ draft.element = (0, immer_1.produce)(elem, itemDraft => {
279
+ if (i === 0) {
280
+ itemDraft.prefix = this.mergePrefix(elem.prefix, element.prefix);
281
+ }
282
+ // For i > 0, prefix is already correct, no changes needed
283
+ });
284
+ }));
285
+ }
286
+ }
287
+ continue; // Skip adding the placeholder itself
288
+ }
289
+ else {
290
+ // Empty array - don't add any elements
291
+ continue;
292
+ }
293
+ }
294
+ }
295
+ }
296
+ }
297
+ // Not a placeholder (or expansion failed) - process normally
298
+ const replacedElement = yield this.visit(element, p);
299
+ if (replacedElement) {
300
+ // Check if the replacement came from a capture with a wrapper (to preserve markers)
301
+ const placeholderNode = unwrapElement(element);
302
+ const placeholderText = this.getPlaceholderText(placeholderNode);
303
+ let wrapperToUse = wrapped;
304
+ if (placeholderText && this.isPlaceholder(placeholderNode)) {
305
+ const param = this.substitutions.get(placeholderText);
306
+ if (param) {
307
+ const isCapture = param.value instanceof capture_1.CaptureImpl ||
308
+ (param.value && typeof param.value === 'object' && param.value[capture_1.CAPTURE_NAME_SYMBOL]);
309
+ if (isCapture) {
310
+ const name = param.value[capture_1.CAPTURE_NAME_SYMBOL] || param.value.name;
311
+ const wrapper = this.wrappersMap.get(name);
312
+ // Use captured wrapper if available and not an array (non-variadic)
313
+ if (wrapper && !Array.isArray(wrapper)) {
314
+ wrapperToUse = wrapper;
315
+ }
316
+ }
317
+ }
318
+ }
319
+ newElements.push((0, immer_1.produce)(wrapperToUse, draft => {
320
+ draft.element = replacedElement;
321
+ }));
322
+ }
323
+ }
324
+ return newElements;
325
+ });
326
+ }
327
+ /**
328
+ * Checks if a node is a placeholder.
329
+ *
330
+ * @param node The node to check
331
+ * @returns True if the node is a placeholder
332
+ */
333
+ isPlaceholder(node) {
334
+ var _a;
335
+ if (node.kind === java_1.J.Kind.Identifier) {
336
+ const identifier = node;
337
+ return identifier.simpleName.startsWith(utils_1.PlaceholderUtils.PLACEHOLDER_PREFIX);
338
+ }
339
+ else if (node.kind === java_1.J.Kind.Literal) {
340
+ const literal = node;
341
+ return ((_a = literal.valueSource) === null || _a === void 0 ? void 0 : _a.startsWith(utils_1.PlaceholderUtils.PLACEHOLDER_PREFIX)) || false;
342
+ }
343
+ else if (node.kind === __2.JS.Kind.BindingElement) {
344
+ // Check if the BindingElement's name is a placeholder
345
+ const bindingElement = node;
346
+ return this.isPlaceholder(bindingElement.name);
347
+ }
348
+ return false;
349
+ }
350
+ /**
351
+ * Replaces a placeholder node with the actual parameter value.
352
+ *
353
+ * @param placeholder The placeholder node
354
+ * @returns The replacement node or the original if not a placeholder
355
+ */
356
+ replacePlaceholder(placeholder) {
357
+ const placeholderText = this.getPlaceholderText(placeholder);
358
+ if (!placeholderText || !placeholderText.startsWith(utils_1.PlaceholderUtils.PLACEHOLDER_PREFIX)) {
359
+ return placeholder;
360
+ }
361
+ // Find the corresponding parameter
362
+ const param = this.substitutions.get(placeholderText);
363
+ if (!param || param.value === undefined) {
364
+ return placeholder;
365
+ }
366
+ // Check if the parameter value is a CaptureValue
367
+ const isCaptureValue = param.value instanceof capture_1.CaptureValue;
368
+ if (isCaptureValue) {
369
+ // Resolve the capture value to get the actual property value
370
+ const propertyValue = param.value.resolve(this.values);
371
+ if (propertyValue !== undefined) {
372
+ // If the property value is already a J node, use it
373
+ if ((0, __1.isTree)(propertyValue)) {
374
+ const propValueAsJ = propertyValue;
375
+ return (0, immer_1.produce)(propValueAsJ, draft => {
376
+ draft.markers = placeholder.markers;
377
+ draft.prefix = this.mergePrefix(propValueAsJ.prefix, placeholder.prefix);
378
+ });
379
+ }
380
+ // If it's a primitive value and placeholder is an identifier, update the simpleName
381
+ if (typeof propertyValue === 'string' && placeholder.kind === java_1.J.Kind.Identifier) {
382
+ return (0, immer_1.produce)(placeholder, draft => {
383
+ draft.simpleName = propertyValue;
384
+ });
385
+ }
386
+ // If it's a primitive value and placeholder is a literal, update the value
387
+ if (typeof propertyValue === 'string' && placeholder.kind === java_1.J.Kind.Literal) {
388
+ return (0, immer_1.produce)(placeholder, draft => {
389
+ draft.value = propertyValue;
390
+ draft.valueSource = `"${propertyValue}"`;
391
+ });
392
+ }
393
+ }
394
+ // If no match found or unhandled type, return placeholder unchanged
395
+ return placeholder;
396
+ }
397
+ // Check if the parameter value is a Capture (could be a Proxy) or TemplateParam
398
+ const isCapture = param.value instanceof capture_1.CaptureImpl ||
399
+ (param.value && typeof param.value === 'object' && param.value[capture_1.CAPTURE_NAME_SYMBOL]);
400
+ const isTemplateParam = param.value instanceof capture_1.TemplateParamImpl;
401
+ if (isCapture || isTemplateParam) {
402
+ // Simple capture/template param (no property path for template params)
403
+ const name = isTemplateParam ? param.value.name :
404
+ (param.value[capture_1.CAPTURE_NAME_SYMBOL] || param.value.name);
405
+ const matchedNode = this.values.get(name);
406
+ if (matchedNode && !Array.isArray(matchedNode)) {
407
+ return (0, immer_1.produce)(matchedNode, draft => {
408
+ draft.markers = placeholder.markers;
409
+ draft.prefix = this.mergePrefix(matchedNode.prefix, placeholder.prefix);
410
+ });
411
+ }
412
+ // If no match found, return placeholder unchanged
413
+ return placeholder;
414
+ }
415
+ // Check if the parameter value is a J.RightPadded wrapper
416
+ const isRightPadded = param.value && typeof param.value === 'object' &&
417
+ param.value.kind === java_1.J.Kind.RightPadded && (0, __1.isTree)(param.value.element);
418
+ if (isRightPadded) {
419
+ // Extract the element from the J.RightPadded wrapper
420
+ const element = param.value.element;
421
+ return (0, immer_1.produce)(element, draft => {
422
+ draft.markers = placeholder.markers;
423
+ draft.prefix = this.mergePrefix(element.prefix, placeholder.prefix);
424
+ });
425
+ }
426
+ // Check if the parameter value is a J.Container
427
+ const isContainer = param.value && typeof param.value === 'object' &&
428
+ param.value.kind === java_1.J.Kind.Container;
429
+ if (isContainer) {
430
+ // J.Container should be handled by expandVariadicElements
431
+ // For now, return placeholder - the expansion will happen at a higher level
432
+ // This should not happen in normal usage, as containers are typically used in argument positions
433
+ return placeholder;
434
+ }
435
+ // If the parameter value is an AST node, use it directly
436
+ if ((0, __1.isTree)(param.value)) {
437
+ // Return the AST node, preserving comments from the source
438
+ return (0, immer_1.produce)(param.value, draft => {
439
+ draft.markers = placeholder.markers;
440
+ draft.prefix = this.mergePrefix(param.value.prefix, placeholder.prefix);
441
+ });
442
+ }
443
+ return placeholder;
444
+ }
445
+ /**
446
+ * Gets the placeholder text from a node.
447
+ *
448
+ * @param node The node to get placeholder text from
449
+ * @returns The placeholder text or null
450
+ */
451
+ getPlaceholderText(node) {
452
+ if (node.kind === java_1.J.Kind.Identifier) {
453
+ return node.simpleName;
454
+ }
455
+ else if (node.kind === java_1.J.Kind.Literal) {
456
+ return node.valueSource || null;
457
+ }
458
+ else if (node.kind === __2.JS.Kind.BindingElement) {
459
+ // Extract placeholder text from the BindingElement's name
460
+ const bindingElement = node;
461
+ return this.getPlaceholderText(bindingElement.name);
462
+ }
463
+ return null;
464
+ }
465
+ }
466
+ exports.PlaceholderReplacementVisitor = PlaceholderReplacementVisitor;
467
+ //# sourceMappingURL=placeholder-replacement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeholder-replacement.js","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"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"}