@openrewrite/rewrite 8.92.17 → 8.92.18

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 (199) hide show
  1. package/README.md +48 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/java/formatting-utils.d.ts +2 -1
  6. package/dist/java/formatting-utils.d.ts.map +1 -1
  7. package/dist/java/formatting-utils.js +4 -3
  8. package/dist/java/formatting-utils.js.map +1 -1
  9. package/dist/java/rpc.d.ts.map +1 -1
  10. package/dist/java/rpc.js +2 -0
  11. package/dist/java/rpc.js.map +1 -1
  12. package/dist/java/tree.d.ts +8 -0
  13. package/dist/java/tree.d.ts.map +1 -1
  14. package/dist/java/tree.js +11 -1
  15. package/dist/java/tree.js.map +1 -1
  16. package/dist/java/type.d.ts +7 -1
  17. package/dist/java/type.d.ts.map +1 -1
  18. package/dist/java/type.js +16 -1
  19. package/dist/java/type.js.map +1 -1
  20. package/dist/javascript/add-import.d.ts +27 -21
  21. package/dist/javascript/add-import.d.ts.map +1 -1
  22. package/dist/javascript/add-import.js +303 -143
  23. package/dist/javascript/add-import.js.map +1 -1
  24. package/dist/javascript/amd.d.ts.map +1 -1
  25. package/dist/javascript/amd.js +25 -10
  26. package/dist/javascript/amd.js.map +1 -1
  27. package/dist/javascript/autodetect.js +36 -45
  28. package/dist/javascript/autodetect.js.map +1 -1
  29. package/dist/javascript/binding.d.ts +6 -4
  30. package/dist/javascript/binding.d.ts.map +1 -1
  31. package/dist/javascript/binding.js +54 -18
  32. package/dist/javascript/binding.js.map +1 -1
  33. package/dist/javascript/comparator.d.ts +22 -5
  34. package/dist/javascript/comparator.d.ts.map +1 -1
  35. package/dist/javascript/comparator.js +116 -38
  36. package/dist/javascript/comparator.js.map +1 -1
  37. package/dist/javascript/format/format.d.ts +2 -0
  38. package/dist/javascript/format/format.d.ts.map +1 -1
  39. package/dist/javascript/format/format.js +11 -1
  40. package/dist/javascript/format/format.js.map +1 -1
  41. package/dist/javascript/index.d.ts +4 -2
  42. package/dist/javascript/index.d.ts.map +1 -1
  43. package/dist/javascript/index.js +10 -1
  44. package/dist/javascript/index.js.map +1 -1
  45. package/dist/javascript/markers.d.ts.map +1 -1
  46. package/dist/javascript/markers.js +64 -0
  47. package/dist/javascript/markers.js.map +1 -1
  48. package/dist/javascript/method-matcher.d.ts +13 -2
  49. package/dist/javascript/method-matcher.d.ts.map +1 -1
  50. package/dist/javascript/method-matcher.js +32 -19
  51. package/dist/javascript/method-matcher.js.map +1 -1
  52. package/dist/javascript/package-name.d.ts +6 -0
  53. package/dist/javascript/package-name.d.ts.map +1 -0
  54. package/dist/javascript/package-name.js +47 -0
  55. package/dist/javascript/package-name.js.map +1 -0
  56. package/dist/javascript/preconditions.d.ts +4 -1
  57. package/dist/javascript/preconditions.d.ts.map +1 -1
  58. package/dist/javascript/preconditions.js +7 -4
  59. package/dist/javascript/preconditions.js.map +1 -1
  60. package/dist/javascript/recipes/change-method-target-to-import.d.ts +29 -0
  61. package/dist/javascript/recipes/change-method-target-to-import.d.ts.map +1 -0
  62. package/dist/javascript/recipes/change-method-target-to-import.js +164 -0
  63. package/dist/javascript/recipes/change-method-target-to-import.js.map +1 -0
  64. package/dist/javascript/recipes/index.d.ts +1 -0
  65. package/dist/javascript/recipes/index.d.ts.map +1 -1
  66. package/dist/javascript/recipes/index.js +1 -0
  67. package/dist/javascript/recipes/index.js.map +1 -1
  68. package/dist/javascript/scope.d.ts +60 -16
  69. package/dist/javascript/scope.d.ts.map +1 -1
  70. package/dist/javascript/scope.js +596 -131
  71. package/dist/javascript/scope.js.map +1 -1
  72. package/dist/javascript/search/uses-method.d.ts +1 -1
  73. package/dist/javascript/search/uses-method.d.ts.map +1 -1
  74. package/dist/javascript/search/uses-method.js +2 -2
  75. package/dist/javascript/search/uses-method.js.map +1 -1
  76. package/dist/javascript/search/uses-type.d.ts +14 -1
  77. package/dist/javascript/search/uses-type.d.ts.map +1 -1
  78. package/dist/javascript/search/uses-type.js +24 -9
  79. package/dist/javascript/search/uses-type.js.map +1 -1
  80. package/dist/javascript/templating/bindings.d.ts +1 -1
  81. package/dist/javascript/templating/bindings.d.ts.map +1 -1
  82. package/dist/javascript/templating/bindings.js +10 -50
  83. package/dist/javascript/templating/bindings.js.map +1 -1
  84. package/dist/javascript/templating/comparator.d.ts +8 -11
  85. package/dist/javascript/templating/comparator.d.ts.map +1 -1
  86. package/dist/javascript/templating/comparator.js +12 -110
  87. package/dist/javascript/templating/comparator.js.map +1 -1
  88. package/dist/javascript/templating/engine.d.ts +34 -24
  89. package/dist/javascript/templating/engine.d.ts.map +1 -1
  90. package/dist/javascript/templating/engine.js +200 -112
  91. package/dist/javascript/templating/engine.js.map +1 -1
  92. package/dist/javascript/templating/pattern.d.ts +11 -5
  93. package/dist/javascript/templating/pattern.d.ts.map +1 -1
  94. package/dist/javascript/templating/pattern.js +86 -20
  95. package/dist/javascript/templating/pattern.js.map +1 -1
  96. package/dist/javascript/templating/placeholder-replacement.d.ts +34 -3
  97. package/dist/javascript/templating/placeholder-replacement.d.ts.map +1 -1
  98. package/dist/javascript/templating/placeholder-replacement.js +126 -60
  99. package/dist/javascript/templating/placeholder-replacement.js.map +1 -1
  100. package/dist/javascript/templating/precedence.d.ts +3 -1
  101. package/dist/javascript/templating/precedence.d.ts.map +1 -1
  102. package/dist/javascript/templating/precedence.js +28 -8
  103. package/dist/javascript/templating/precedence.js.map +1 -1
  104. package/dist/javascript/templating/template.d.ts +7 -6
  105. package/dist/javascript/templating/template.d.ts.map +1 -1
  106. package/dist/javascript/templating/template.js +31 -28
  107. package/dist/javascript/templating/template.js.map +1 -1
  108. package/dist/javascript/templating/types.d.ts +6 -3
  109. package/dist/javascript/templating/types.d.ts.map +1 -1
  110. package/dist/javascript/templating/utils.d.ts +10 -1
  111. package/dist/javascript/templating/utils.d.ts.map +1 -1
  112. package/dist/javascript/templating/utils.js +22 -3
  113. package/dist/javascript/templating/utils.js.map +1 -1
  114. package/dist/javascript/tree-debug.d.ts +2 -0
  115. package/dist/javascript/tree-debug.d.ts.map +1 -1
  116. package/dist/javascript/tree-debug.js +6 -0
  117. package/dist/javascript/tree-debug.js.map +1 -1
  118. package/dist/javascript/tsconfig.d.ts.map +1 -1
  119. package/dist/javascript/tsconfig.js +7 -17
  120. package/dist/javascript/tsconfig.js.map +1 -1
  121. package/dist/javascript/type-mapping.d.ts +34 -16
  122. package/dist/javascript/type-mapping.d.ts.map +1 -1
  123. package/dist/javascript/type-mapping.js +253 -249
  124. package/dist/javascript/type-mapping.js.map +1 -1
  125. package/dist/javascript/type-report-cli.d.ts +7 -0
  126. package/dist/javascript/type-report-cli.d.ts.map +1 -0
  127. package/dist/javascript/type-report-cli.js +129 -0
  128. package/dist/javascript/type-report-cli.js.map +1 -0
  129. package/dist/javascript/type-report.d.ts +61 -0
  130. package/dist/javascript/type-report.d.ts.map +1 -0
  131. package/dist/javascript/type-report.js +488 -0
  132. package/dist/javascript/type-report.js.map +1 -0
  133. package/dist/markers.d.ts +4 -0
  134. package/dist/markers.d.ts.map +1 -1
  135. package/dist/markers.js +8 -0
  136. package/dist/markers.js.map +1 -1
  137. package/dist/recipe.d.ts +5 -0
  138. package/dist/recipe.d.ts.map +1 -1
  139. package/dist/recipe.js +5 -0
  140. package/dist/recipe.js.map +1 -1
  141. package/dist/rewrite-javascript-version.txt +1 -1
  142. package/dist/rpc/queue.d.ts +16 -0
  143. package/dist/rpc/queue.d.ts.map +1 -1
  144. package/dist/rpc/queue.js +27 -9
  145. package/dist/rpc/queue.js.map +1 -1
  146. package/dist/rpc/request/prepare-recipe.d.ts +3 -1
  147. package/dist/rpc/request/prepare-recipe.d.ts.map +1 -1
  148. package/dist/rpc/request/prepare-recipe.js +13 -6
  149. package/dist/rpc/request/prepare-recipe.js.map +1 -1
  150. package/dist/search/is-source-file.d.ts +1 -0
  151. package/dist/search/is-source-file.d.ts.map +1 -1
  152. package/dist/search/is-source-file.js +7 -2
  153. package/dist/search/is-source-file.js.map +1 -1
  154. package/dist/test/rewrite-test.d.ts +5 -0
  155. package/dist/test/rewrite-test.d.ts.map +1 -1
  156. package/dist/test/rewrite-test.js +14 -3
  157. package/dist/test/rewrite-test.js.map +1 -1
  158. package/package.json +4 -3
  159. package/src/index.ts +3 -1
  160. package/src/java/formatting-utils.ts +5 -4
  161. package/src/java/rpc.ts +2 -0
  162. package/src/java/tree.ts +15 -0
  163. package/src/java/type.ts +19 -2
  164. package/src/javascript/add-import.ts +338 -152
  165. package/src/javascript/amd.ts +28 -12
  166. package/src/javascript/autodetect.ts +32 -41
  167. package/src/javascript/binding.ts +64 -22
  168. package/src/javascript/comparator.ts +119 -43
  169. package/src/javascript/format/format.ts +9 -0
  170. package/src/javascript/index.ts +6 -3
  171. package/src/javascript/markers.ts +43 -1
  172. package/src/javascript/method-matcher.ts +34 -22
  173. package/src/javascript/package-name.ts +45 -0
  174. package/src/javascript/preconditions.ts +7 -4
  175. package/src/javascript/recipes/change-method-target-to-import.ts +178 -0
  176. package/src/javascript/recipes/index.ts +1 -0
  177. package/src/javascript/scope.ts +705 -169
  178. package/src/javascript/search/uses-method.ts +2 -2
  179. package/src/javascript/search/uses-type.ts +30 -9
  180. package/src/javascript/templating/bindings.ts +13 -38
  181. package/src/javascript/templating/comparator.ts +16 -127
  182. package/src/javascript/templating/engine.ts +229 -127
  183. package/src/javascript/templating/pattern.ts +107 -28
  184. package/src/javascript/templating/placeholder-replacement.ts +154 -62
  185. package/src/javascript/templating/precedence.ts +33 -11
  186. package/src/javascript/templating/template.ts +35 -30
  187. package/src/javascript/templating/types.ts +6 -3
  188. package/src/javascript/templating/utils.ts +24 -2
  189. package/src/javascript/tree-debug.ts +9 -0
  190. package/src/javascript/tsconfig.ts +7 -17
  191. package/src/javascript/type-mapping.ts +258 -252
  192. package/src/javascript/type-report-cli.ts +96 -0
  193. package/src/javascript/type-report.ts +575 -0
  194. package/src/markers.ts +8 -0
  195. package/src/recipe.ts +6 -0
  196. package/src/rpc/queue.ts +44 -5
  197. package/src/rpc/request/prepare-recipe.ts +16 -6
  198. package/src/search/is-source-file.ts +8 -3
  199. package/src/test/rewrite-test.ts +14 -3
@@ -2,7 +2,7 @@ import { Cursor } from '../..';
2
2
  import { J } from '../../java';
3
3
  import { Any, Capture, DebugOptions, MatchAttemptResult, MatchOptions, MatchResult as IMatchResult, PatternOptions } from './types';
4
4
  import { RawCode } from './capture';
5
- import { CaptureStorageValue, WRAPPERS_MAP_SYMBOL } from './utils';
5
+ import { CaptureStorageValue, PATTERN_PREFIXES_SYMBOL, WRAPPERS_MAP_SYMBOL } from './utils';
6
6
  /**
7
7
  * Builder for creating patterns programmatically.
8
8
  * Use when pattern structure is not known at compile time.
@@ -58,7 +58,8 @@ export declare class Pattern {
58
58
  readonly templateParts: TemplateStringsArray;
59
59
  readonly captures: (Capture | Any<any> | RawCode)[];
60
60
  private _options;
61
- private _cachedAstPattern?;
61
+ /** The pattern tree, keyed by whether its code was parsed as an expression. */
62
+ private _cachedAstPatterns;
62
63
  private static nextPatternId;
63
64
  private readonly patternId;
64
65
  private readonly unnamedCaptureMapping;
@@ -104,15 +105,16 @@ export declare class Pattern {
104
105
  */
105
106
  configure(options: PatternOptions): Pattern;
106
107
  /**
107
- * Gets the AST pattern for this pattern, using two-level caching:
108
+ * Gets the AST pattern for this pattern, using three-level caching:
108
109
  * 1. Instance-level cache (fastest - this pattern instance)
109
110
  * 2. Global LRU cache (fast - shared across pattern instances with same code)
110
111
  * 3. Compute via TemplateProcessor (slow - parse and process)
111
112
  *
113
+ * @param expression Whether to parse the code as an expression, with statements as the fallback
112
114
  * @returns The cached or newly computed pattern AST
113
115
  * @internal
114
116
  */
115
- getAstPattern(): Promise<J>;
117
+ getAstPattern(expression?: boolean): Promise<J>;
116
118
  /**
117
119
  * Creates a matcher for this pattern against a specific AST node.
118
120
  *
@@ -215,7 +217,9 @@ export declare class Pattern {
215
217
  */
216
218
  export declare class MatchResult implements IMatchResult {
217
219
  private readonly storage;
218
- constructor(storage?: Map<string, CaptureStorageValue>);
220
+ private readonly computePatternPrefixes;
221
+ constructor(storage?: Map<string, CaptureStorageValue>, computePatternPrefixes?: () => Map<string, J.Space>);
222
+ private patternPrefixes?;
219
223
  get<T>(capture: Capture<T>): T | undefined;
220
224
  get(capture: string): any;
221
225
  /**
@@ -233,6 +237,8 @@ export declare class MatchResult implements IMatchResult {
233
237
  * @returns The semantic element(s)
234
238
  */
235
239
  private extractElements;
240
+ /** @internal */
241
+ [PATTERN_PREFIXES_SYMBOL](): Map<string, J.Space>;
236
242
  /**
237
243
  * Internal method to get wrappers (used by template expansion).
238
244
  * Returns both scalar and variadic wrappers.
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MatchResult = exports.Pattern = exports.PatternBuilder = void 0;
4
4
  exports.pattern = pattern;
5
+ const java_1 = require("../../java");
5
6
  const capture_1 = require("./capture");
6
7
  const comparator_1 = require("./comparator");
7
8
  const utils_1 = require("./utils");
9
+ const scope_1 = require("../scope");
8
10
  const engine_1 = require("./engine");
9
11
  const print_1 = require("../../print");
10
12
  const index_1 = require("../index");
13
+ const comparator_2 = require("../comparator");
11
14
  /**
12
15
  * Builder for creating patterns programmatically.
13
16
  * Use when pattern structure is not known at compile time.
@@ -135,6 +138,8 @@ class Pattern {
135
138
  this.templateParts = templateParts;
136
139
  this.captures = captures;
137
140
  this._options = {};
141
+ /** The pattern tree, keyed by whether its code was parsed as an expression. */
142
+ this._cachedAstPatterns = new Map();
138
143
  this.unnamedCaptureMapping = new Map();
139
144
  this.patternId = Pattern.nextPatternId++;
140
145
  // Build mapping for unnamed captures (unnamed_N -> _X)
@@ -165,22 +170,24 @@ class Pattern {
165
170
  configure(options) {
166
171
  this._options = Object.assign(Object.assign({}, this._options), options);
167
172
  // Invalidate cache when configuration changes
168
- this._cachedAstPattern = undefined;
173
+ this._cachedAstPatterns.clear();
169
174
  return this;
170
175
  }
171
176
  /**
172
- * Gets the AST pattern for this pattern, using two-level caching:
177
+ * Gets the AST pattern for this pattern, using three-level caching:
173
178
  * 1. Instance-level cache (fastest - this pattern instance)
174
179
  * 2. Global LRU cache (fast - shared across pattern instances with same code)
175
180
  * 3. Compute via TemplateProcessor (slow - parse and process)
176
181
  *
182
+ * @param expression Whether to parse the code as an expression, with statements as the fallback
177
183
  * @returns The cached or newly computed pattern AST
178
184
  * @internal
179
185
  */
180
- async getAstPattern() {
186
+ async getAstPattern(expression = false) {
181
187
  // Level 1: Instance cache (fastest path)
182
- if (this._cachedAstPattern) {
183
- return this._cachedAstPattern;
188
+ const instanceCached = this._cachedAstPatterns.get(expression);
189
+ if (instanceCached) {
190
+ return instanceCached;
184
191
  }
185
192
  // Generate cache key for global lookup
186
193
  // Include raw code values in the key since they affect the generated AST
@@ -190,7 +197,7 @@ class Pattern {
190
197
  return `raw:${c.code}`;
191
198
  }
192
199
  return c.getName();
193
- }).join(',');
200
+ }).join(',') + (expression ? '::expression' : '');
194
201
  const cacheKey = (0, utils_1.generateCacheKey)(this.templateParts, capturesKey,
195
202
  // A capture's type reaches the parse as a declaration, so it shapes the tree the same
196
203
  // way an explicit context statement does and belongs in the key alongside one.
@@ -199,13 +206,24 @@ class Pattern {
199
206
  let tree = utils_1.globalAstCache.get(cacheKey);
200
207
  if (!tree) {
201
208
  // Level 3: Compute via TemplateEngine (slow path)
202
- tree = await engine_1.TemplateEngine.getPatternTree(this.templateParts, this.captures, contextStatements, this._options.dependencies || {}, this._options.types);
209
+ try {
210
+ tree = await engine_1.TemplateEngine.getPatternTree(this.templateParts, this.captures, contextStatements, this._options.dependencies || {}, this._options.types, expression);
211
+ }
212
+ catch (e) {
213
+ // A block matches only a block, which the statement parse is for
214
+ if (!expression) {
215
+ throw e;
216
+ }
217
+ const statementPattern = await this.getAstPattern(false);
218
+ this._cachedAstPatterns.set(expression, statementPattern);
219
+ return statementPattern;
220
+ }
203
221
  utils_1.globalAstCache.set(cacheKey, tree);
204
222
  }
205
223
  // The key names captures but says nothing about their constraints, so two patterns of the
206
224
  // same shape share an entry; markers are attached per instance to keep them apart.
207
225
  const result = await engine_1.TemplateEngine.attachCaptureMarkers(tree, this.captures);
208
- this._cachedAstPattern = result;
226
+ this._cachedAstPatterns.set(expression, result);
209
227
  return result;
210
228
  }
211
229
  /**
@@ -253,7 +271,7 @@ class Pattern {
253
271
  }
254
272
  // Create MatchResult with unified storage
255
273
  const storage = matcher.storage;
256
- return new MatchResult(new Map(storage));
274
+ return new MatchResult(new Map(storage), () => matcher.patternPrefixes());
257
275
  }
258
276
  /**
259
277
  * Formats and logs the match result to stderr.
@@ -471,7 +489,7 @@ class Pattern {
471
489
  if (success) {
472
490
  // Match succeeded - return MatchResult with debug info
473
491
  const storage = matcher.storage;
474
- const matchResult = new MatchResult(new Map(storage));
492
+ const matchResult = new MatchResult(new Map(storage), () => matcher.patternPrefixes());
475
493
  return {
476
494
  matched: true,
477
495
  result: matchResult,
@@ -516,8 +534,9 @@ Pattern.nextPatternId = 1;
516
534
  * }
517
535
  */
518
536
  class MatchResult {
519
- constructor(storage = new Map()) {
537
+ constructor(storage = new Map(), computePatternPrefixes = () => new Map()) {
520
538
  this.storage = storage;
539
+ this.computePatternPrefixes = computePatternPrefixes;
521
540
  }
522
541
  // Implementation
523
542
  get(capture) {
@@ -563,6 +582,11 @@ class MatchResult {
563
582
  // Scalar element
564
583
  return value;
565
584
  }
585
+ /** @internal */
586
+ [utils_1.PATTERN_PREFIXES_SYMBOL]() {
587
+ var _a;
588
+ return (_a = this.patternPrefixes) !== null && _a !== void 0 ? _a : (this.patternPrefixes = this.computePatternPrefixes());
589
+ }
566
590
  /**
567
591
  * Internal method to get wrappers (used by template expansion).
568
592
  * Returns both scalar and variadic wrappers.
@@ -597,6 +621,7 @@ class Matcher {
597
621
  * @param debugOptions Optional debug options for instrumentation
598
622
  */
599
623
  constructor(pattern, ast, cursor, debugOptions) {
624
+ var _a;
600
625
  this.pattern = pattern;
601
626
  this.ast = ast;
602
627
  // Unified storage: holds J for scalar captures, J.RightPadded<J>[] or J[] for variadic captures
@@ -605,6 +630,8 @@ class Matcher {
605
630
  this.currentPath = [];
606
631
  this.cursor = cursor;
607
632
  this.debugOptions = debugOptions !== null && debugOptions !== void 0 ? debugOptions : {};
633
+ this.lenientTypeMatching = (_a = pattern.options.lenientTypeMatching) !== null && _a !== void 0 ? _a : true;
634
+ this.sameCodeComparator = new comparator_2.JavaScriptSemanticComparatorVisitor(this.lenientTypeMatching);
608
635
  }
609
636
  /**
610
637
  * Checks if the pattern matches the AST node.
@@ -613,10 +640,29 @@ class Matcher {
613
640
  */
614
641
  async matches() {
615
642
  if (!this.patternAst) {
616
- this.patternAst = await this.pattern.getAstPattern();
643
+ this.patternAst = await this.pattern.getAstPattern((0, engine_1.opensWithBrace)(this.pattern.templateParts) && this.ast.kind !== java_1.J.Kind.Block);
617
644
  }
618
645
  return this.matchNode(this.patternAst, this.ast);
619
646
  }
647
+ /**
648
+ * The prefix the pattern writes before each capture, by capture name. A capture of the whole
649
+ * match has none, since the prefix of what it holds lies outside the match.
650
+ */
651
+ patternPrefixes() {
652
+ const prefixes = new Map();
653
+ (0, scope_1.walk)(this.patternAst, node => {
654
+ const capture = (0, java_1.isIdentifier)(node) ? utils_1.PlaceholderUtils.parseCapture(node.simpleName) : null;
655
+ if (capture && !prefixes.has(capture.name) && !this.capturesWholeMatch(capture.name)) {
656
+ prefixes.set(capture.name, node.prefix);
657
+ }
658
+ return true;
659
+ });
660
+ return prefixes;
661
+ }
662
+ capturesWholeMatch(name) {
663
+ const bound = this.storage.get(name);
664
+ return bound !== undefined && !Array.isArray(bound) && this.extractElements(bound) === this.ast;
665
+ }
620
666
  /**
621
667
  * Gets all captured nodes (projected view: extracts elements from wrappers).
622
668
  *
@@ -725,13 +771,12 @@ class Matcher {
725
771
  * @returns true if the pattern matches the target, false otherwise
726
772
  */
727
773
  async matchNode(pattern, target) {
728
- var _a, _b, _c;
774
+ var _a, _b;
729
775
  // Always delegate to the comparator visitor, which handles:
730
776
  // - Capture detection and constraint evaluation
731
777
  // - Kind checking
732
778
  // - Deep structural comparison
733
779
  // This centralizes all matching logic in one place
734
- const lenientTypeMatching = (_a = this.pattern.options.lenientTypeMatching) !== null && _a !== void 0 ? _a : true;
735
780
  // Factory pattern: instantiate debug or production comparator
736
781
  // Zero cost in production - DebugPatternMatchingComparator is never instantiated
737
782
  const matcherCallbacks = {
@@ -751,15 +796,15 @@ class Matcher {
751
796
  } : undefined
752
797
  };
753
798
  const comparator = this.debugOptions.enabled
754
- ? new comparator_1.DebugPatternMatchingComparator(matcherCallbacks, lenientTypeMatching)
755
- : new comparator_1.PatternMatchingComparator(matcherCallbacks, lenientTypeMatching);
799
+ ? new comparator_1.DebugPatternMatchingComparator(matcherCallbacks, this.lenientTypeMatching)
800
+ : new comparator_1.PatternMatchingComparator(matcherCallbacks, this.lenientTypeMatching);
756
801
  // Pass cursors to allow constraints to navigate to root
757
802
  // Pattern cursor is undefined (pattern is the root), target cursor is provided by user
758
803
  const result = await comparator.compare(pattern, target, undefined, this.cursor);
759
804
  // If match failed and no explanation was set, provide a generic one
760
805
  if (!result && this.debugOptions.enabled && !this.explanation) {
761
- const patternKind = ((_b = pattern.kind) === null || _b === void 0 ? void 0 : _b.split('.').pop()) || 'unknown';
762
- const targetKind = ((_c = target.kind) === null || _c === void 0 ? void 0 : _c.split('.').pop()) || 'unknown';
806
+ const patternKind = ((_a = pattern.kind) === null || _a === void 0 ? void 0 : _a.split('.').pop()) || 'unknown';
807
+ const targetKind = ((_b = target.kind) === null || _b === void 0 ? void 0 : _b.split('.').pop()) || 'unknown';
763
808
  this.setExplanation('structural-mismatch', `Pattern node of type ${patternKind}`, `Target node of type ${targetKind}`, 'Nodes did not match structurally');
764
809
  }
765
810
  return result;
@@ -810,7 +855,7 @@ class Matcher {
810
855
  * @param wrapper Optional wrapper containing the target (for preserving markers)
811
856
  * @returns true if the capture is successful, false otherwise
812
857
  */
813
- handleCapture(capture, target, wrapper) {
858
+ async handleCapture(capture, target, wrapper) {
814
859
  var _a;
815
860
  const captureName = capture.captureName;
816
861
  if (!captureName) {
@@ -824,11 +869,28 @@ class Matcher {
824
869
  // Only store the binding if this is a capturing placeholder
825
870
  const capturing = (_a = captureObj === null || captureObj === void 0 ? void 0 : captureObj[capture_1.CAPTURE_CAPTURING_SYMBOL]) !== null && _a !== void 0 ? _a : true;
826
871
  if (capturing) {
872
+ const bound = this.storage.get(captureName);
873
+ if (bound !== undefined) {
874
+ return this.bindsSameCode(bound, [target]);
875
+ }
827
876
  // Store wrapper if available (preserves markers), otherwise store element
828
877
  this.storage.set(captureName, wrapper !== null && wrapper !== void 0 ? wrapper : target);
829
878
  }
830
879
  return true;
831
880
  }
881
+ /** A capture named twice in a pattern binds the same code at both places. */
882
+ async bindsSameCode(bound, targets) {
883
+ const boundElements = (Array.isArray(bound) ? bound : [bound]).map(b => b.kind === java_1.J.Kind.RightPadded ? b.element : b);
884
+ if (boundElements.length !== targets.length) {
885
+ return false;
886
+ }
887
+ for (let i = 0; i < targets.length; i++) {
888
+ if (!await this.sameCodeComparator.compare(boundElements[i], targets[i])) {
889
+ return false;
890
+ }
891
+ }
892
+ return true;
893
+ }
832
894
  /**
833
895
  * Handles a variadic capture placeholder.
834
896
  *
@@ -837,7 +899,7 @@ class Matcher {
837
899
  * @param wrappers Optional wrappers to preserve markers
838
900
  * @returns true if the capture is successful, false otherwise
839
901
  */
840
- handleVariadicCapture(capture, targets, wrappers) {
902
+ async handleVariadicCapture(capture, targets, wrappers) {
841
903
  var _a;
842
904
  const captureName = capture.captureName;
843
905
  if (!captureName) {
@@ -851,6 +913,10 @@ class Matcher {
851
913
  // Only store the binding if this is a capturing placeholder
852
914
  const capturing = (_a = captureObj === null || captureObj === void 0 ? void 0 : captureObj[capture_1.CAPTURE_CAPTURING_SYMBOL]) !== null && _a !== void 0 ? _a : true;
853
915
  if (capturing) {
916
+ const bound = this.storage.get(captureName);
917
+ if (bound !== undefined) {
918
+ return this.bindsSameCode(bound, targets);
919
+ }
854
920
  // Store the richest representation: wrappers if available, otherwise elements
855
921
  if (wrappers && wrappers.length > 0) {
856
922
  this.storage.set(captureName, wrappers);
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,19 @@
1
- import { Cursor } from '../..';
1
+ import { Cursor, Marker } from '../..';
2
2
  import { J } from '../../java';
3
3
  import { JS } from '..';
4
4
  import { JavaScriptVisitor } from '../visitor';
5
5
  import { Parameter } from './types';
6
+ /**
7
+ * Marks a value the template substituted, whose layout is the source's rather than the template's.
8
+ * `ownPrefix` says whether the whitespace before it is the source's too.
9
+ */
10
+ export declare class SubstitutedValue implements Marker {
11
+ readonly ownPrefix: boolean;
12
+ static readonly KIND = "org.openrewrite.javascript.templating.SubstitutedValue";
13
+ readonly kind = "org.openrewrite.javascript.templating.SubstitutedValue";
14
+ readonly id: string;
15
+ constructor(ownPrefix: boolean);
16
+ }
6
17
  /**
7
18
  * Visitor that replaces placeholder nodes with actual parameter values.
8
19
  */
@@ -10,13 +21,24 @@ export declare class PlaceholderReplacementVisitor extends JavaScriptVisitor<any
10
21
  private readonly substitutions;
11
22
  private readonly values;
12
23
  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'>);
24
+ private readonly patternPrefixes;
25
+ /** Whether any value was substituted, and so marked as a {@link SubstitutedValue}. */
26
+ substituted: boolean;
27
+ constructor(substitutions: Map<string, Parameter>, values?: Pick<Map<string, J | J[]>, 'get'>, wrappersMap?: Pick<Map<string, J.RightPadded<J> | J.RightPadded<J>[]>, 'get'>, patternPrefixes?: Pick<Map<string, J.Space>, 'get'>);
14
28
  visit<R extends J>(tree: J, p: any, parent?: Cursor): Promise<R | undefined>;
15
29
  /**
16
30
  * Override visitBindingElement to preserve propertyName from template when replacing.
17
31
  * For example, in `{ ref: ${ref} }`, we want to preserve `ref:` when replacing ${ref}.
18
32
  */
19
33
  visitBindingElement(bindingElement: JS.BindingElement, p: any): Promise<J | undefined>;
34
+ /** A statement substituted into an expression statement's placeholder is the statement itself. */
35
+ visitExpressionStatement(expressionStatement: JS.ExpressionStatement, p: any): Promise<J | undefined>;
36
+ /**
37
+ * A declaration substituted for the name of a declaration is the declaration itself: `(${p})` and
38
+ * `(...${p})` with `p` bound to the parameter `props: Props` give `(props: Props)` and `(...props: Props)`.
39
+ */
40
+ visitVariableDeclarations(variableDeclarations: J.VariableDeclarations, p: any): Promise<J | undefined>;
41
+ private concatPrefix;
20
42
  /**
21
43
  * Override visitContainer to handle variadic expansion for containers.
22
44
  * This handles J.Container instances anywhere in the AST (method arguments, etc.).
@@ -49,8 +71,14 @@ export declare class PlaceholderReplacementVisitor extends JavaScriptVisitor<any
49
71
  * @returns A merged prefix with source comments and template whitespace
50
72
  */
51
73
  private mergePrefix;
74
+ private readonly templatePrefix;
52
75
  /** As `mergePrefix`, but a line break the source wrote and the template did not is the source's layout. */
53
- private mergeElementPrefix;
76
+ private readonly elementPrefix;
77
+ private readonly sourcePrefix;
78
+ /** Whether the template writes the same prefix before capture `name` as the pattern it matched with. */
79
+ private spacedAsInPattern;
80
+ /** `value` substituted for `placeholder` under the prefix `merge` chooses, marked as a {@link SubstitutedValue}. */
81
+ private substitute;
54
82
  /** As `mergePrefix`, for markers: everything the value was matched with, plus the kinds only the slot wrote. */
55
83
  private mergeMarkers;
56
84
  /**
@@ -62,6 +90,8 @@ export declare class PlaceholderReplacementVisitor extends JavaScriptVisitor<any
62
90
  * @returns Promise of new list with placeholders expanded
63
91
  */
64
92
  private expandVariadicElements;
93
+ /** As `visit` on a placeholder, with `merge` choosing the replacement's prefix. */
94
+ private replaceElement;
65
95
  /**
66
96
  * Checks if a node is a placeholder.
67
97
  *
@@ -73,6 +103,7 @@ export declare class PlaceholderReplacementVisitor extends JavaScriptVisitor<any
73
103
  * Replaces a placeholder node with the actual parameter value.
74
104
  *
75
105
  * @param placeholder The placeholder node
106
+ * @param merge Chooses the replacement's prefix from its own and the placeholder's
76
107
  * @returns The replacement node or the original if not a placeholder
77
108
  */
78
109
  private replacePlaceholder;
@@ -1 +1 @@
1
- {"version":3,"file":"placeholder-replacement.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAkB,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAK7C,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;IAelF;;;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,2GAA2G;IAC3G,OAAO,CAAC,kBAAkB;IAK1B,gHAAgH;IAChH,OAAO,CAAC,YAAY;IASpB;;;;;;;OAOG;YACW,sBAAsB;IAiJpC;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAerB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAyG1B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAa7B"}
1
+ {"version":3,"file":"placeholder-replacement.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"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"}