@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.
- package/README.md +48 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/java/formatting-utils.d.ts +2 -1
- package/dist/java/formatting-utils.d.ts.map +1 -1
- package/dist/java/formatting-utils.js +4 -3
- package/dist/java/formatting-utils.js.map +1 -1
- package/dist/java/rpc.d.ts.map +1 -1
- package/dist/java/rpc.js +2 -0
- package/dist/java/rpc.js.map +1 -1
- package/dist/java/tree.d.ts +8 -0
- package/dist/java/tree.d.ts.map +1 -1
- package/dist/java/tree.js +11 -1
- package/dist/java/tree.js.map +1 -1
- package/dist/java/type.d.ts +7 -1
- package/dist/java/type.d.ts.map +1 -1
- package/dist/java/type.js +16 -1
- package/dist/java/type.js.map +1 -1
- package/dist/javascript/add-import.d.ts +27 -21
- package/dist/javascript/add-import.d.ts.map +1 -1
- package/dist/javascript/add-import.js +303 -143
- package/dist/javascript/add-import.js.map +1 -1
- package/dist/javascript/amd.d.ts.map +1 -1
- package/dist/javascript/amd.js +25 -10
- package/dist/javascript/amd.js.map +1 -1
- package/dist/javascript/autodetect.js +36 -45
- package/dist/javascript/autodetect.js.map +1 -1
- package/dist/javascript/binding.d.ts +6 -4
- package/dist/javascript/binding.d.ts.map +1 -1
- package/dist/javascript/binding.js +54 -18
- package/dist/javascript/binding.js.map +1 -1
- package/dist/javascript/comparator.d.ts +22 -5
- package/dist/javascript/comparator.d.ts.map +1 -1
- package/dist/javascript/comparator.js +116 -38
- package/dist/javascript/comparator.js.map +1 -1
- package/dist/javascript/format/format.d.ts +2 -0
- package/dist/javascript/format/format.d.ts.map +1 -1
- package/dist/javascript/format/format.js +11 -1
- package/dist/javascript/format/format.js.map +1 -1
- package/dist/javascript/index.d.ts +4 -2
- package/dist/javascript/index.d.ts.map +1 -1
- package/dist/javascript/index.js +10 -1
- package/dist/javascript/index.js.map +1 -1
- package/dist/javascript/markers.d.ts.map +1 -1
- package/dist/javascript/markers.js +64 -0
- package/dist/javascript/markers.js.map +1 -1
- package/dist/javascript/method-matcher.d.ts +13 -2
- package/dist/javascript/method-matcher.d.ts.map +1 -1
- package/dist/javascript/method-matcher.js +32 -19
- package/dist/javascript/method-matcher.js.map +1 -1
- package/dist/javascript/package-name.d.ts +6 -0
- package/dist/javascript/package-name.d.ts.map +1 -0
- package/dist/javascript/package-name.js +47 -0
- package/dist/javascript/package-name.js.map +1 -0
- package/dist/javascript/preconditions.d.ts +4 -1
- package/dist/javascript/preconditions.d.ts.map +1 -1
- package/dist/javascript/preconditions.js +7 -4
- package/dist/javascript/preconditions.js.map +1 -1
- package/dist/javascript/recipes/change-method-target-to-import.d.ts +29 -0
- package/dist/javascript/recipes/change-method-target-to-import.d.ts.map +1 -0
- package/dist/javascript/recipes/change-method-target-to-import.js +164 -0
- package/dist/javascript/recipes/change-method-target-to-import.js.map +1 -0
- package/dist/javascript/recipes/index.d.ts +1 -0
- package/dist/javascript/recipes/index.d.ts.map +1 -1
- package/dist/javascript/recipes/index.js +1 -0
- package/dist/javascript/recipes/index.js.map +1 -1
- package/dist/javascript/scope.d.ts +60 -16
- package/dist/javascript/scope.d.ts.map +1 -1
- package/dist/javascript/scope.js +596 -131
- package/dist/javascript/scope.js.map +1 -1
- package/dist/javascript/search/uses-method.d.ts +1 -1
- package/dist/javascript/search/uses-method.d.ts.map +1 -1
- package/dist/javascript/search/uses-method.js +2 -2
- package/dist/javascript/search/uses-method.js.map +1 -1
- package/dist/javascript/search/uses-type.d.ts +14 -1
- package/dist/javascript/search/uses-type.d.ts.map +1 -1
- package/dist/javascript/search/uses-type.js +24 -9
- package/dist/javascript/search/uses-type.js.map +1 -1
- package/dist/javascript/templating/bindings.d.ts +1 -1
- package/dist/javascript/templating/bindings.d.ts.map +1 -1
- package/dist/javascript/templating/bindings.js +10 -50
- package/dist/javascript/templating/bindings.js.map +1 -1
- package/dist/javascript/templating/comparator.d.ts +8 -11
- package/dist/javascript/templating/comparator.d.ts.map +1 -1
- package/dist/javascript/templating/comparator.js +12 -110
- package/dist/javascript/templating/comparator.js.map +1 -1
- package/dist/javascript/templating/engine.d.ts +34 -24
- package/dist/javascript/templating/engine.d.ts.map +1 -1
- package/dist/javascript/templating/engine.js +200 -112
- package/dist/javascript/templating/engine.js.map +1 -1
- package/dist/javascript/templating/pattern.d.ts +11 -5
- package/dist/javascript/templating/pattern.d.ts.map +1 -1
- package/dist/javascript/templating/pattern.js +86 -20
- package/dist/javascript/templating/pattern.js.map +1 -1
- package/dist/javascript/templating/placeholder-replacement.d.ts +34 -3
- package/dist/javascript/templating/placeholder-replacement.d.ts.map +1 -1
- package/dist/javascript/templating/placeholder-replacement.js +126 -60
- package/dist/javascript/templating/placeholder-replacement.js.map +1 -1
- package/dist/javascript/templating/precedence.d.ts +3 -1
- package/dist/javascript/templating/precedence.d.ts.map +1 -1
- package/dist/javascript/templating/precedence.js +28 -8
- package/dist/javascript/templating/precedence.js.map +1 -1
- package/dist/javascript/templating/template.d.ts +7 -6
- package/dist/javascript/templating/template.d.ts.map +1 -1
- package/dist/javascript/templating/template.js +31 -28
- package/dist/javascript/templating/template.js.map +1 -1
- package/dist/javascript/templating/types.d.ts +6 -3
- package/dist/javascript/templating/types.d.ts.map +1 -1
- package/dist/javascript/templating/utils.d.ts +10 -1
- package/dist/javascript/templating/utils.d.ts.map +1 -1
- package/dist/javascript/templating/utils.js +22 -3
- package/dist/javascript/templating/utils.js.map +1 -1
- package/dist/javascript/tree-debug.d.ts +2 -0
- package/dist/javascript/tree-debug.d.ts.map +1 -1
- package/dist/javascript/tree-debug.js +6 -0
- package/dist/javascript/tree-debug.js.map +1 -1
- package/dist/javascript/tsconfig.d.ts.map +1 -1
- package/dist/javascript/tsconfig.js +7 -17
- package/dist/javascript/tsconfig.js.map +1 -1
- package/dist/javascript/type-mapping.d.ts +34 -16
- package/dist/javascript/type-mapping.d.ts.map +1 -1
- package/dist/javascript/type-mapping.js +253 -249
- package/dist/javascript/type-mapping.js.map +1 -1
- package/dist/javascript/type-report-cli.d.ts +7 -0
- package/dist/javascript/type-report-cli.d.ts.map +1 -0
- package/dist/javascript/type-report-cli.js +129 -0
- package/dist/javascript/type-report-cli.js.map +1 -0
- package/dist/javascript/type-report.d.ts +61 -0
- package/dist/javascript/type-report.d.ts.map +1 -0
- package/dist/javascript/type-report.js +488 -0
- package/dist/javascript/type-report.js.map +1 -0
- package/dist/markers.d.ts +4 -0
- package/dist/markers.d.ts.map +1 -1
- package/dist/markers.js +8 -0
- package/dist/markers.js.map +1 -1
- package/dist/recipe.d.ts +5 -0
- package/dist/recipe.d.ts.map +1 -1
- package/dist/recipe.js +5 -0
- package/dist/recipe.js.map +1 -1
- package/dist/rewrite-javascript-version.txt +1 -1
- package/dist/rpc/queue.d.ts +16 -0
- package/dist/rpc/queue.d.ts.map +1 -1
- package/dist/rpc/queue.js +27 -9
- package/dist/rpc/queue.js.map +1 -1
- package/dist/rpc/request/prepare-recipe.d.ts +3 -1
- package/dist/rpc/request/prepare-recipe.d.ts.map +1 -1
- package/dist/rpc/request/prepare-recipe.js +13 -6
- package/dist/rpc/request/prepare-recipe.js.map +1 -1
- package/dist/search/is-source-file.d.ts +1 -0
- package/dist/search/is-source-file.d.ts.map +1 -1
- package/dist/search/is-source-file.js +7 -2
- package/dist/search/is-source-file.js.map +1 -1
- package/dist/test/rewrite-test.d.ts +5 -0
- package/dist/test/rewrite-test.d.ts.map +1 -1
- package/dist/test/rewrite-test.js +14 -3
- package/dist/test/rewrite-test.js.map +1 -1
- package/package.json +4 -3
- package/src/index.ts +3 -1
- package/src/java/formatting-utils.ts +5 -4
- package/src/java/rpc.ts +2 -0
- package/src/java/tree.ts +15 -0
- package/src/java/type.ts +19 -2
- package/src/javascript/add-import.ts +338 -152
- package/src/javascript/amd.ts +28 -12
- package/src/javascript/autodetect.ts +32 -41
- package/src/javascript/binding.ts +64 -22
- package/src/javascript/comparator.ts +119 -43
- package/src/javascript/format/format.ts +9 -0
- package/src/javascript/index.ts +6 -3
- package/src/javascript/markers.ts +43 -1
- package/src/javascript/method-matcher.ts +34 -22
- package/src/javascript/package-name.ts +45 -0
- package/src/javascript/preconditions.ts +7 -4
- package/src/javascript/recipes/change-method-target-to-import.ts +178 -0
- package/src/javascript/recipes/index.ts +1 -0
- package/src/javascript/scope.ts +705 -169
- package/src/javascript/search/uses-method.ts +2 -2
- package/src/javascript/search/uses-type.ts +30 -9
- package/src/javascript/templating/bindings.ts +13 -38
- package/src/javascript/templating/comparator.ts +16 -127
- package/src/javascript/templating/engine.ts +229 -127
- package/src/javascript/templating/pattern.ts +107 -28
- package/src/javascript/templating/placeholder-replacement.ts +154 -62
- package/src/javascript/templating/precedence.ts +33 -11
- package/src/javascript/templating/template.ts +35 -30
- package/src/javascript/templating/types.ts +6 -3
- package/src/javascript/templating/utils.ts +24 -2
- package/src/javascript/tree-debug.ts +9 -0
- package/src/javascript/tsconfig.ts +7 -17
- package/src/javascript/type-mapping.ts +258 -252
- package/src/javascript/type-report-cli.ts +96 -0
- package/src/javascript/type-report.ts +575 -0
- package/src/markers.ts +8 -0
- package/src/recipe.ts +6 -0
- package/src/rpc/queue.ts +44 -5
- package/src/rpc/request/prepare-recipe.ts +16 -6
- package/src/search/is-source-file.ts +8 -3
- package/src/test/rewrite-test.ts +14 -3
package/src/index.ts
CHANGED
|
@@ -40,12 +40,14 @@ export async function activate(marketplace: RecipeMarketplace): Promise<void> {
|
|
|
40
40
|
AsyncCallbackInSyncArrayMethod,
|
|
41
41
|
AutoFormat,
|
|
42
42
|
OrderImports,
|
|
43
|
-
ChangeImport
|
|
43
|
+
ChangeImport,
|
|
44
|
+
ChangeMethodTargetToImport
|
|
44
45
|
} = await import("./javascript/recipes/index.js");
|
|
45
46
|
await marketplace.install(AsyncCallbackInSyncArrayMethod, JavaScript);
|
|
46
47
|
await marketplace.install(AutoFormat, JavaScript);
|
|
47
48
|
await marketplace.install(OrderImports, JavaScript);
|
|
48
49
|
await marketplace.install(ChangeImport, JavaScript);
|
|
50
|
+
await marketplace.install(ChangeMethodTargetToImport, JavaScript);
|
|
49
51
|
|
|
50
52
|
const {FindDependency, Search} = await import("./javascript/search/index.js");
|
|
51
53
|
await marketplace.install(FindDependency, Search);
|
|
@@ -64,17 +64,18 @@ export function replaceIndentAfterLastNewline(ws: string, newIndent: string): st
|
|
|
64
64
|
return ws.substring(0, lastNewline + 1) + newIndent;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
const isTextComment = (comment: Comment): comment is TextComment => comment.kind === J.Kind.TextComment;
|
|
68
|
+
|
|
67
69
|
/**
|
|
68
|
-
* Checks if a Space contains
|
|
70
|
+
* Checks if a Space contains a line terminator. A block comment spanning lines counts as one, as it
|
|
71
|
+
* does for automatic semicolon insertion.
|
|
69
72
|
*/
|
|
70
73
|
export function spaceContainsNewline(space: J.Space | undefined): boolean {
|
|
71
74
|
if (!space) return false;
|
|
72
75
|
if (space.whitespace.includes("\n")) return true;
|
|
73
|
-
return space.comments.some(c => c.suffix.includes("\n"));
|
|
76
|
+
return space.comments.some(c => c.suffix.includes("\n") || (isTextComment(c) && c.text.includes("\n")));
|
|
74
77
|
}
|
|
75
78
|
|
|
76
|
-
const isTextComment = (comment: Comment): comment is TextComment => comment.kind === J.Kind.TextComment;
|
|
77
|
-
|
|
78
79
|
/**
|
|
79
80
|
* Re-indents a line's leading whitespace when the enclosing construct moves from `oldMargin` to
|
|
80
81
|
* `newMargin`, preserving whatever indentation the line adds beyond the margin.
|
package/src/java/rpc.ts
CHANGED
|
@@ -43,6 +43,7 @@ class TypeSender extends TypeVisitor<RpcSendQueue> {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
protected async visitVariable(variable: Type.Variable, q: RpcSendQueue): Promise<Type | undefined> {
|
|
46
|
+
await q.getAndSend(variable, v => v.flags);
|
|
46
47
|
await q.getAndSend(variable, v => v.name);
|
|
47
48
|
await q.getAndSend(variable, v => v.owner ? asRef(v.owner) : undefined, owner => this.visit(owner, q));
|
|
48
49
|
await q.getAndSend(variable, v => asRef(v.type), t => this.visit(t, q));
|
|
@@ -169,6 +170,7 @@ class TypeReceiver extends TypeVisitor<RpcReceiveQueue> {
|
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
protected async visitVariable(variable: Type.Variable, q: RpcReceiveQueue): Promise<Type | undefined> {
|
|
173
|
+
variable.flags = await q.receive(variable.flags);
|
|
172
174
|
variable.name = await q.receive(variable.name);
|
|
173
175
|
variable.owner = await q.receive(variable.owner, owner => this.visit(owner, q));
|
|
174
176
|
variable.type = await q.receive(variable.type, t => this.visit(t, q));
|
package/src/java/tree.ts
CHANGED
|
@@ -40,6 +40,21 @@ export interface Expression extends J {
|
|
|
40
40
|
readonly type?: Type;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
export namespace Expression {
|
|
44
|
+
/**
|
|
45
|
+
* Returns the first expression inside any number of nested parentheses, or the expression itself
|
|
46
|
+
* when it is not parenthesized.
|
|
47
|
+
*/
|
|
48
|
+
export function unwrap(expr: Expression): Expression;
|
|
49
|
+
export function unwrap(expr: Expression | undefined): Expression | undefined;
|
|
50
|
+
export function unwrap(expr: Expression | undefined): Expression | undefined {
|
|
51
|
+
while (expr?.kind === J.Kind.Parentheses) {
|
|
52
|
+
expr = (expr as J.Parentheses<Expression>).tree.element;
|
|
53
|
+
}
|
|
54
|
+
return expr;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
43
58
|
export interface MethodCall extends Expression {
|
|
44
59
|
readonly methodType?: Type.Method;
|
|
45
60
|
}
|
package/src/java/type.ts
CHANGED
|
@@ -108,6 +108,7 @@ export namespace Type {
|
|
|
108
108
|
|
|
109
109
|
export interface Variable extends Type {
|
|
110
110
|
readonly kind: typeof Kind.Variable;
|
|
111
|
+
flags: number;
|
|
111
112
|
name: string;
|
|
112
113
|
owner?: Type;
|
|
113
114
|
type: Type;
|
|
@@ -137,7 +138,7 @@ export namespace Type {
|
|
|
137
138
|
}
|
|
138
139
|
}
|
|
139
140
|
|
|
140
|
-
export interface Array extends Type
|
|
141
|
+
export interface Array extends Type {
|
|
141
142
|
readonly kind: typeof Kind.Array;
|
|
142
143
|
elemType: Type;
|
|
143
144
|
annotations: Type.Annotation[];
|
|
@@ -290,7 +291,6 @@ export namespace Type {
|
|
|
290
291
|
type.kind === Type.Kind.Class ||
|
|
291
292
|
type.kind === Type.Kind.Annotation ||
|
|
292
293
|
type.kind === Type.Kind.Parameterized ||
|
|
293
|
-
type.kind === Type.Kind.Array ||
|
|
294
294
|
type.kind === Type.Kind.ShallowClass
|
|
295
295
|
);
|
|
296
296
|
}
|
|
@@ -316,6 +316,23 @@ export namespace Type {
|
|
|
316
316
|
}
|
|
317
317
|
}
|
|
318
318
|
|
|
319
|
+
/**
|
|
320
|
+
* Whether `matches` accepts the fully qualified name of `type` or, with `matchOverride`, of a
|
|
321
|
+
* class or interface it extends.
|
|
322
|
+
*/
|
|
323
|
+
export function isOfTypeWithName(type: Type | undefined, matchOverride: boolean,
|
|
324
|
+
matches: (fullyQualifiedName: string) => boolean): boolean {
|
|
325
|
+
if (!isFullyQualified(type)) {
|
|
326
|
+
return false;
|
|
327
|
+
}
|
|
328
|
+
if (matches(FullyQualified.getFullyQualifiedName(type))) {
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
331
|
+
const c = isParameterized(type) ? type.type : type;
|
|
332
|
+
return matchOverride && isClass(c) &&
|
|
333
|
+
(isOfTypeWithName(c.supertype, true, matches) || c.interfaces.some(i => isOfTypeWithName(i, true, matches)));
|
|
334
|
+
}
|
|
335
|
+
|
|
319
336
|
// Track type variable names and parameterized types to prevent infinite recursion
|
|
320
337
|
let typeVariableNameStack: Set<string> | null = null;
|
|
321
338
|
let parameterizedStack: Set<Type> | null = null;
|