@openrewrite/rewrite 8.62.3 → 8.62.5

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 (170) hide show
  1. package/dist/execution.d.ts.map +1 -1
  2. package/dist/execution.js.map +1 -1
  3. package/dist/java/rpc.d.ts +1 -0
  4. package/dist/java/rpc.d.ts.map +1 -1
  5. package/dist/java/rpc.js +81 -0
  6. package/dist/java/rpc.js.map +1 -1
  7. package/dist/java/tree.d.ts +12 -6
  8. package/dist/java/tree.d.ts.map +1 -1
  9. package/dist/java/tree.js +12 -92
  10. package/dist/java/tree.js.map +1 -1
  11. package/dist/java/type.d.ts +2 -0
  12. package/dist/java/type.d.ts.map +1 -1
  13. package/dist/java/type.js +12 -0
  14. package/dist/java/type.js.map +1 -1
  15. package/dist/java/visitor.d.ts +12 -4
  16. package/dist/java/visitor.d.ts.map +1 -1
  17. package/dist/java/visitor.js +23 -1
  18. package/dist/java/visitor.js.map +1 -1
  19. package/dist/javascript/format.d.ts +2 -2
  20. package/dist/javascript/format.d.ts.map +1 -1
  21. package/dist/javascript/format.js.map +1 -1
  22. package/dist/javascript/index.d.ts +3 -0
  23. package/dist/javascript/index.d.ts.map +1 -1
  24. package/dist/javascript/index.js +3 -0
  25. package/dist/javascript/index.js.map +1 -1
  26. package/dist/javascript/method-matcher.d.ts +16 -0
  27. package/dist/javascript/method-matcher.d.ts.map +1 -0
  28. package/dist/javascript/method-matcher.js +222 -0
  29. package/dist/javascript/method-matcher.js.map +1 -0
  30. package/dist/javascript/parser.d.ts +1 -1
  31. package/dist/javascript/parser.d.ts.map +1 -1
  32. package/dist/javascript/parser.js +27 -5
  33. package/dist/javascript/parser.js.map +1 -1
  34. package/dist/javascript/preconditions.d.ts +6 -0
  35. package/dist/javascript/preconditions.d.ts.map +1 -0
  36. package/dist/javascript/preconditions.js +58 -0
  37. package/dist/javascript/preconditions.js.map +1 -0
  38. package/dist/javascript/print.d.ts +2 -2
  39. package/dist/javascript/print.d.ts.map +1 -1
  40. package/dist/javascript/print.js.map +1 -1
  41. package/dist/javascript/remove-import.d.ts +56 -0
  42. package/dist/javascript/remove-import.d.ts.map +1 -0
  43. package/dist/javascript/remove-import.js +715 -0
  44. package/dist/javascript/remove-import.js.map +1 -0
  45. package/dist/javascript/rpc.js +3 -18
  46. package/dist/javascript/rpc.js.map +1 -1
  47. package/dist/javascript/search/index.d.ts +3 -0
  48. package/dist/javascript/search/index.d.ts.map +1 -0
  49. package/dist/javascript/search/index.js +19 -0
  50. package/dist/javascript/search/index.js.map +1 -0
  51. package/dist/javascript/search/uses-method.d.ts +8 -0
  52. package/dist/javascript/search/uses-method.d.ts.map +1 -0
  53. package/dist/javascript/search/uses-method.js +35 -0
  54. package/dist/javascript/search/uses-method.js.map +1 -0
  55. package/dist/javascript/search/uses-type.d.ts +8 -0
  56. package/dist/javascript/search/uses-type.d.ts.map +1 -0
  57. package/dist/javascript/search/uses-type.js +71 -0
  58. package/dist/javascript/search/uses-type.js.map +1 -0
  59. package/dist/javascript/templating.d.ts +1 -1
  60. package/dist/javascript/templating.d.ts.map +1 -1
  61. package/dist/javascript/templating.js +1 -1
  62. package/dist/javascript/templating.js.map +1 -1
  63. package/dist/javascript/tree.d.ts +3 -3
  64. package/dist/javascript/tree.d.ts.map +1 -1
  65. package/dist/javascript/tree.js +28 -0
  66. package/dist/javascript/tree.js.map +1 -1
  67. package/dist/javascript/type-mapping.d.ts +7 -18
  68. package/dist/javascript/type-mapping.d.ts.map +1 -1
  69. package/dist/javascript/type-mapping.js +290 -203
  70. package/dist/javascript/type-mapping.js.map +1 -1
  71. package/dist/javascript/visitor.d.ts +1 -1
  72. package/dist/javascript/visitor.d.ts.map +1 -1
  73. package/dist/javascript/visitor.js +1 -1
  74. package/dist/javascript/visitor.js.map +1 -1
  75. package/dist/json/print.js.map +1 -1
  76. package/dist/json/rpc.js +46 -17
  77. package/dist/json/rpc.js.map +1 -1
  78. package/dist/json/visitor.d.ts +2 -2
  79. package/dist/json/visitor.d.ts.map +1 -1
  80. package/dist/json/visitor.js.map +1 -1
  81. package/dist/print.d.ts +1 -0
  82. package/dist/print.d.ts.map +1 -1
  83. package/dist/print.js +6 -0
  84. package/dist/print.js.map +1 -1
  85. package/dist/rpc/queue.d.ts +15 -6
  86. package/dist/rpc/queue.d.ts.map +1 -1
  87. package/dist/rpc/queue.js +37 -13
  88. package/dist/rpc/queue.js.map +1 -1
  89. package/dist/rpc/request/generate.d.ts +4 -0
  90. package/dist/rpc/request/generate.d.ts.map +1 -1
  91. package/dist/rpc/request/generate.js +9 -4
  92. package/dist/rpc/request/generate.js.map +1 -1
  93. package/dist/rpc/request/get-object.d.ts +2 -2
  94. package/dist/rpc/request/get-object.d.ts.map +1 -1
  95. package/dist/rpc/request/get-object.js +4 -12
  96. package/dist/rpc/request/get-object.js.map +1 -1
  97. package/dist/rpc/request/parse.d.ts.map +1 -1
  98. package/dist/rpc/request/parse.js.map +1 -1
  99. package/dist/rpc/request/print.d.ts +1 -1
  100. package/dist/rpc/request/print.d.ts.map +1 -1
  101. package/dist/rpc/request/print.js +1 -1
  102. package/dist/rpc/request/print.js.map +1 -1
  103. package/dist/rpc/request/visit.d.ts +3 -2
  104. package/dist/rpc/request/visit.d.ts.map +1 -1
  105. package/dist/rpc/request/visit.js +5 -4
  106. package/dist/rpc/request/visit.js.map +1 -1
  107. package/dist/rpc/rewrite-rpc.d.ts +4 -4
  108. package/dist/rpc/rewrite-rpc.d.ts.map +1 -1
  109. package/dist/rpc/rewrite-rpc.js +16 -17
  110. package/dist/rpc/rewrite-rpc.js.map +1 -1
  111. package/dist/search/index.d.ts +2 -0
  112. package/dist/search/index.d.ts.map +1 -0
  113. package/dist/search/index.js +18 -0
  114. package/dist/search/index.js.map +1 -0
  115. package/dist/search/is-source-file.d.ts +8 -0
  116. package/dist/search/is-source-file.d.ts.map +1 -0
  117. package/dist/search/is-source-file.js +70 -0
  118. package/dist/search/is-source-file.js.map +1 -0
  119. package/dist/test/rewrite-test.d.ts.map +1 -1
  120. package/dist/test/rewrite-test.js +3 -0
  121. package/dist/test/rewrite-test.js.map +1 -1
  122. package/dist/text/rpc.js +37 -40
  123. package/dist/text/rpc.js.map +1 -1
  124. package/dist/util.d.ts +1 -0
  125. package/dist/util.d.ts.map +1 -1
  126. package/dist/util.js +13 -0
  127. package/dist/util.js.map +1 -1
  128. package/dist/version.txt +1 -1
  129. package/dist/visitor.d.ts +1 -1
  130. package/dist/visitor.d.ts.map +1 -1
  131. package/dist/visitor.js +3 -2
  132. package/dist/visitor.js.map +1 -1
  133. package/package.json +3 -1
  134. package/src/execution.ts +0 -2
  135. package/src/java/rpc.ts +68 -0
  136. package/src/java/tree.ts +20 -76
  137. package/src/java/type.ts +14 -0
  138. package/src/java/visitor.ts +32 -12
  139. package/src/javascript/format.ts +2 -2
  140. package/src/javascript/index.ts +4 -0
  141. package/src/javascript/method-matcher.ts +250 -0
  142. package/src/javascript/parser.ts +20 -6
  143. package/src/javascript/preconditions.ts +40 -0
  144. package/src/javascript/print.ts +3 -3
  145. package/src/javascript/remove-import.ts +780 -0
  146. package/src/javascript/rpc.ts +6 -19
  147. package/src/javascript/search/index.ts +2 -0
  148. package/src/javascript/search/uses-method.ts +21 -0
  149. package/src/javascript/search/uses-type.ts +27 -0
  150. package/src/javascript/templating.ts +4 -3
  151. package/src/javascript/tree.ts +47 -3
  152. package/src/javascript/type-mapping.ts +320 -214
  153. package/src/javascript/visitor.ts +126 -126
  154. package/src/json/print.ts +1 -1
  155. package/src/json/rpc.ts +40 -19
  156. package/src/json/visitor.ts +2 -2
  157. package/src/print.ts +9 -3
  158. package/src/rpc/queue.ts +36 -12
  159. package/src/rpc/request/generate.ts +18 -6
  160. package/src/rpc/request/get-object.ts +6 -13
  161. package/src/rpc/request/parse.ts +1 -1
  162. package/src/rpc/request/print.ts +2 -2
  163. package/src/rpc/request/visit.ts +6 -5
  164. package/src/rpc/rewrite-rpc.ts +22 -21
  165. package/src/search/index.ts +1 -0
  166. package/src/search/is-source-file.ts +26 -0
  167. package/src/test/rewrite-test.ts +5 -2
  168. package/src/text/rpc.ts +33 -37
  169. package/src/util.ts +19 -4
  170. package/src/visitor.ts +3 -3
@@ -57,6 +57,19 @@ export interface JavaScriptParserOptions extends ParserOptions {
57
57
  sourceFileCache?: Map<string, ts.SourceFile>
58
58
  }
59
59
 
60
+ function getScriptKindFromFileName(fileName: string): ts.ScriptKind {
61
+ const ext = fileName.toLowerCase();
62
+ if (ext.endsWith('.tsx')) return ts.ScriptKind.TSX;
63
+ if (ext.endsWith('.jsx')) return ts.ScriptKind.JSX;
64
+ if (ext.endsWith('.ts')) return ts.ScriptKind.TS;
65
+ if (ext.endsWith('.js')) return ts.ScriptKind.JS;
66
+ if (ext.endsWith('.mjs')) return ts.ScriptKind.JS;
67
+ if (ext.endsWith('.cjs')) return ts.ScriptKind.JS;
68
+ if (ext.endsWith('.mts')) return ts.ScriptKind.TS;
69
+ if (ext.endsWith('.cts')) return ts.ScriptKind.TS;
70
+ return ts.ScriptKind.TS;
71
+ }
72
+
60
73
  export class JavaScriptParser extends Parser {
61
74
 
62
75
  private readonly compilerOptions: ts.CompilerOptions;
@@ -138,7 +151,9 @@ export class JavaScriptParser extends Parser {
138
151
  }
139
152
 
140
153
  if (sourceText !== undefined) {
141
- sourceFile = ts.createSourceFile(fileName, sourceText, languageVersion, true);
154
+ // Determine script kind based on file extension
155
+ const scriptKind = getScriptKindFromFileName(fileName);
156
+ sourceFile = ts.createSourceFile(fileName, sourceText, languageVersion, true, scriptKind);
142
157
  // Cache the SourceFile if it's a dependency
143
158
  if (!input && this.sourceFileCache) {
144
159
  this.sourceFileCache.set(fileName, sourceFile);
@@ -192,7 +207,7 @@ export class JavaScriptParser extends Parser {
192
207
 
193
208
  try {
194
209
  yield produce(
195
- new JavaScriptParserVisitor(sourceFile, this.relativePath(input), typeChecker, this.relativeTo || process.cwd())
210
+ new JavaScriptParserVisitor(sourceFile, this.relativePath(input), typeChecker)
196
211
  .visit(sourceFile) as SourceFile,
197
212
  draft => {
198
213
  if (this.styles) {
@@ -222,9 +237,8 @@ export class JavaScriptParserVisitor {
222
237
  constructor(
223
238
  private readonly sourceFile: ts.SourceFile,
224
239
  private readonly sourcePath: string,
225
- typeChecker: ts.TypeChecker,
226
- projectRoot?: string) {
227
- this.typeMapping = new JavaScriptTypeMapping(typeChecker, projectRoot);
240
+ typeChecker: ts.TypeChecker) {
241
+ this.typeMapping = new JavaScriptTypeMapping(typeChecker);
228
242
  }
229
243
 
230
244
  visit = (node: ts.Node): any => {
@@ -1884,7 +1898,7 @@ export class JavaScriptParserVisitor {
1884
1898
  function: select,
1885
1899
  typeParameters: typeArguments,
1886
1900
  arguments: this.mapCommaSeparatedList(node.getChildren(this.sourceFile).slice(-3)),
1887
- functionType: this.mapMethodType(node)
1901
+ methodType: this.mapMethodType(node)
1888
1902
  }
1889
1903
  }
1890
1904
  }
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Copyright 2025 the original author or authors.
3
+ * <p>
4
+ * Licensed under the Moderne Source Available License (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ * <p>
8
+ * https://docs.moderne.io/licensing/moderne-source-available-license
9
+ * <p>
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import {RewriteRpc} from "../rpc";
17
+ import {Recipe} from "../recipe";
18
+ import {UsesMethod, UsesType} from "./search";
19
+ import {ExecutionContext} from "../execution";
20
+ import {TreeVisitor} from "../visitor";
21
+ import {IsSourceFile} from "../search";
22
+
23
+ export async function hasSourcePath(filePattern: string): Promise<TreeVisitor<any, ExecutionContext>> {
24
+ return await (await RewriteRpc.get()?.prepareRecipe("org.openrewrite.FindSourceFiles", {
25
+ filePattern
26
+ }))?.editor() || new IsSourceFile(filePattern);
27
+ }
28
+
29
+ export async function usesMethod(methodMatcher: string, matchOverrides: boolean = false): Promise<TreeVisitor<any, ExecutionContext>> {
30
+ return await (await RewriteRpc.get()?.prepareRecipe("org.openrewrite.java.search.UsesMethod", {
31
+ methodMatcher,
32
+ matchOverrides
33
+ }))?.editor() || new UsesMethod(methodMatcher)
34
+ }
35
+
36
+ export async function usesType(fullyQualifiedType: string): Promise<TreeVisitor<any, ExecutionContext>> {
37
+ return await (await RewriteRpc.get()?.prepareRecipe("org.openrewrite.java.search.UsesType", {
38
+ fullyQualifiedType
39
+ }))?.editor() || new UsesType(fullyQualifiedType);
40
+ }
@@ -21,7 +21,7 @@ import {PrintOutputCapture, TreePrinters} from "../print";
21
21
  import {Cursor, isTree, Tree} from "../tree";
22
22
  import {Comment, emptySpace, J, Statement, TextComment, TrailingComma, TypedTree} from "../java";
23
23
  import {findMarker, Marker, Markers} from "../markers";
24
- import {Generator, DelegatedYield, FunctionDeclaration, NonNullAssertion, Optional, Spread} from "./markers";
24
+ import {DelegatedYield, FunctionDeclaration, Generator, NonNullAssertion, Optional, Spread} from "./markers";
25
25
 
26
26
  export class JavaScriptPrinter extends JavaScriptVisitor<PrintOutputCapture> {
27
27
 
@@ -81,7 +81,7 @@ export class JavaScriptPrinter extends JavaScriptVisitor<PrintOutputCapture> {
81
81
  return statement;
82
82
  }
83
83
 
84
- override async visitStatementExpression(statementExpression: JS.StatementExpression, p: PrintOutputCapture): Promise<J | J | undefined> {
84
+ override async visitStatementExpression(statementExpression: JS.StatementExpression, p: PrintOutputCapture): Promise<J | undefined> {
85
85
  await this.visitSpace(statementExpression.prefix, p);
86
86
  await this.visitMarkers(statementExpression.markers, p);
87
87
  await this.visit(statementExpression.statement, p);
@@ -1823,7 +1823,7 @@ export class JavaScriptPrinter extends JavaScriptVisitor<PrintOutputCapture> {
1823
1823
  }
1824
1824
  }
1825
1825
 
1826
- protected async visitRightPadded<T extends J | boolean>(right: J.RightPadded<T>, p: PrintOutputCapture): Promise<J.RightPadded<T>> {
1826
+ public async visitRightPadded<T extends J | boolean>(right: J.RightPadded<T>, p: PrintOutputCapture): Promise<J.RightPadded<T>> {
1827
1827
  if (isTree(right.element)) {
1828
1828
  await this.visit(right.element, p);
1829
1829
  }