@openrewrite/rewrite 8.62.4 → 8.62.6
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/dist/java/tree.d.ts +12 -6
- package/dist/java/tree.d.ts.map +1 -1
- package/dist/java/tree.js +12 -5
- package/dist/java/tree.js.map +1 -1
- package/dist/java/type.d.ts +2 -0
- package/dist/java/type.d.ts.map +1 -1
- package/dist/java/type.js +12 -0
- package/dist/java/type.js.map +1 -1
- package/dist/java/visitor.d.ts +8 -0
- package/dist/java/visitor.d.ts.map +1 -1
- package/dist/java/visitor.js +23 -1
- package/dist/java/visitor.js.map +1 -1
- package/dist/javascript/index.d.ts +3 -0
- package/dist/javascript/index.d.ts.map +1 -1
- package/dist/javascript/index.js +3 -0
- package/dist/javascript/index.js.map +1 -1
- package/dist/javascript/method-matcher.d.ts +16 -0
- package/dist/javascript/method-matcher.d.ts.map +1 -0
- package/dist/javascript/method-matcher.js +222 -0
- package/dist/javascript/method-matcher.js.map +1 -0
- package/dist/javascript/parser.js +1 -1
- package/dist/javascript/parser.js.map +1 -1
- package/dist/javascript/preconditions.d.ts +6 -0
- package/dist/javascript/preconditions.d.ts.map +1 -0
- package/dist/javascript/preconditions.js +58 -0
- package/dist/javascript/preconditions.js.map +1 -0
- package/dist/javascript/remove-import.d.ts +56 -0
- package/dist/javascript/remove-import.d.ts.map +1 -0
- package/dist/javascript/remove-import.js +715 -0
- package/dist/javascript/remove-import.js.map +1 -0
- package/dist/javascript/rpc.js +2 -2
- package/dist/javascript/rpc.js.map +1 -1
- package/dist/javascript/search/index.d.ts +3 -0
- package/dist/javascript/search/index.d.ts.map +1 -0
- package/dist/javascript/search/index.js +19 -0
- package/dist/javascript/search/index.js.map +1 -0
- package/dist/javascript/search/uses-method.d.ts +8 -0
- package/dist/javascript/search/uses-method.d.ts.map +1 -0
- package/dist/javascript/search/uses-method.js +35 -0
- package/dist/javascript/search/uses-method.js.map +1 -0
- package/dist/javascript/search/uses-type.d.ts +8 -0
- package/dist/javascript/search/uses-type.d.ts.map +1 -0
- package/dist/javascript/search/uses-type.js +71 -0
- package/dist/javascript/search/uses-type.js.map +1 -0
- package/dist/javascript/templating.d.ts +1 -1
- package/dist/javascript/templating.d.ts.map +1 -1
- package/dist/javascript/templating.js +1 -1
- package/dist/javascript/templating.js.map +1 -1
- package/dist/javascript/tree.d.ts +3 -3
- package/dist/javascript/tree.d.ts.map +1 -1
- package/dist/javascript/tree.js +28 -0
- package/dist/javascript/tree.js.map +1 -1
- package/dist/javascript/type-mapping.d.ts +4 -0
- package/dist/javascript/type-mapping.d.ts.map +1 -1
- package/dist/javascript/type-mapping.js +92 -46
- package/dist/javascript/type-mapping.js.map +1 -1
- package/dist/javascript/visitor.js +1 -1
- package/dist/javascript/visitor.js.map +1 -1
- package/dist/print.d.ts +1 -0
- package/dist/print.d.ts.map +1 -1
- package/dist/print.js +6 -0
- package/dist/print.js.map +1 -1
- package/dist/rpc/rewrite-rpc.d.ts +1 -1
- package/dist/rpc/rewrite-rpc.d.ts.map +1 -1
- package/dist/rpc/rewrite-rpc.js +0 -3
- package/dist/rpc/rewrite-rpc.js.map +1 -1
- package/dist/search/index.d.ts +2 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +18 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/is-source-file.d.ts +8 -0
- package/dist/search/is-source-file.d.ts.map +1 -0
- package/dist/search/is-source-file.js +70 -0
- package/dist/search/is-source-file.js.map +1 -0
- package/dist/test/rewrite-test.d.ts.map +1 -1
- package/dist/test/rewrite-test.js +3 -0
- package/dist/test/rewrite-test.js.map +1 -1
- package/dist/util.d.ts +1 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +13 -0
- package/dist/util.js.map +1 -1
- package/dist/version.txt +1 -1
- package/dist/visitor.d.ts +1 -1
- package/dist/visitor.d.ts.map +1 -1
- package/dist/visitor.js +3 -2
- package/dist/visitor.js.map +1 -1
- package/package.json +3 -1
- package/src/java/tree.ts +19 -11
- package/src/java/type.ts +14 -0
- package/src/java/visitor.ts +28 -8
- package/src/javascript/index.ts +4 -0
- package/src/javascript/method-matcher.ts +250 -0
- package/src/javascript/parser.ts +1 -1
- package/src/javascript/preconditions.ts +40 -0
- package/src/javascript/remove-import.ts +780 -0
- package/src/javascript/rpc.ts +2 -2
- package/src/javascript/search/index.ts +2 -0
- package/src/javascript/search/uses-method.ts +21 -0
- package/src/javascript/search/uses-type.ts +27 -0
- package/src/javascript/templating.ts +4 -3
- package/src/javascript/tree.ts +47 -3
- package/src/javascript/type-mapping.ts +113 -50
- package/src/javascript/visitor.ts +125 -125
- package/src/print.ts +9 -3
- package/src/rpc/rewrite-rpc.ts +1 -4
- package/src/search/index.ts +1 -0
- package/src/search/is-source-file.ts +26 -0
- package/src/test/rewrite-test.ts +4 -1
- package/src/util.ts +19 -4
- package/src/visitor.ts +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-source-file.js","sourceRoot":"","sources":["../../src/search/is-source-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAuC;AAEvC,kCAAqC;AACrC,wCAA6C;AAC7C,qDAAuC;AAEvC,MAAa,YAAa,SAAQ,qBAAkC;IAGhE,YAAY,WAAmB;QAC3B,KAAK,EAAE,CAAC;QACR,6CAA6C;QAC7C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAE,SAAiB,CAAC,WAAW,CAAC,CAAC;IACxG,CAAC;IAEe,QAAQ,CAAC,IAAS,EAAE,CAAmB;;YACnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,+BAA+B;gBACjF,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrB,OAAO,IAAA,2BAAiB,EAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;CACJ;AAnBD,oCAmBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite-test.d.ts","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAc,WAAW,EAAC,MAAM,YAAY,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAUnC,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,UAAU;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,GAAG,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,UAAU;IACnB,0BAA0B,EAAE,OAAO,CAAO;IAE1C,MAAM,EAAE,MAAM,CAAmB;IAEjC;;;OAGG;IACH,gBAAgB,EAAE,gBAAgB,CAA0B;IAE5D;;OAEG;IACH,sBAAsB,EAAE,gBAAgB,CAAyB;IAEjE,OAAO,CAAC,mBAAmB,CAA+C;IAE1E,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAIrD,UAAU,CAAC,GAAG,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAwClG,qBAAqB;YASrB,2BAA2B;YAO3B,yBAAyB;YA2BzB,oBAAoB;YAapB,WAAW;
|
|
1
|
+
{"version":3,"file":"rewrite-test.d.ts","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAc,WAAW,EAAC,MAAM,YAAY,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAUnC,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,UAAU;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,GAAG,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,UAAU;IACnB,0BAA0B,EAAE,OAAO,CAAO;IAE1C,MAAM,EAAE,MAAM,CAAmB;IAEjC;;;OAGG;IACH,gBAAgB,EAAE,gBAAgB,CAA0B;IAE5D;;OAEG;IACH,sBAAsB,EAAE,gBAAgB,CAAyB;IAEjE,OAAO,CAAC,mBAAmB,CAA+C;IAE1E,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAIrD,UAAU,CAAC,GAAG,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAwClG,qBAAqB;YASrB,2BAA2B;YAO3B,yBAAyB;YA2BzB,oBAAoB;YAapB,WAAW;IAezB;;OAEG;YACW,KAAK;YA+BL,mDAAmD;CAMpE;AAoBD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEnG,wBAAgB,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,GAAG,eAAe,CAchE;AAGD,qBAAa,WAAY,SAAQ,MAAM;IAKvB,OAAO,CAAC,OAAO;IAJ3B,IAAI,SAA0B;IAC9B,WAAW,SAAW;IACtB,WAAW,SAAY;gBAEH,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IAI5C,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAGjD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAElE"}
|
|
@@ -167,6 +167,9 @@ class RecipeSpec {
|
|
|
167
167
|
}
|
|
168
168
|
expectAfter(spec, after) {
|
|
169
169
|
return __awaiter(this, void 0, void 0, function* () {
|
|
170
|
+
if (!after) {
|
|
171
|
+
throw new Error('Expected for recipe to have produced a change for file:\n' + (0, util_1.trimIndent)(spec.before));
|
|
172
|
+
}
|
|
170
173
|
expect(after).toBeDefined();
|
|
171
174
|
yield new ValidateWhitespaceVisitor().visit(after, this.executionContext);
|
|
172
175
|
const actualAfter = yield print_1.TreePrinters.print(after);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite-test.js","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"rewrite-test.js","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
CHANGED
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAeA,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAoB5G"}
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAeA,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAoB5G;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAajE"}
|
package/dist/util.js
CHANGED
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.mapAsync = mapAsync;
|
|
13
|
+
exports.trimIndent = trimIndent;
|
|
13
14
|
/*
|
|
14
15
|
* Copyright 2025 the original author or authors.
|
|
15
16
|
* <p>
|
|
@@ -45,4 +46,16 @@ function mapAsync(arr, fn) {
|
|
|
45
46
|
return results === undefined ? arr : results;
|
|
46
47
|
});
|
|
47
48
|
}
|
|
49
|
+
function trimIndent(str) {
|
|
50
|
+
if (!str) {
|
|
51
|
+
return "";
|
|
52
|
+
}
|
|
53
|
+
const lines = str.split("\n");
|
|
54
|
+
const nonEmpty = lines.filter(l => l.trim().length > 0);
|
|
55
|
+
const minIndent = Math.min(...nonEmpty.map(l => l.match(/^(\s*)/)[0].length));
|
|
56
|
+
return lines
|
|
57
|
+
.map(l => l.slice(minIndent))
|
|
58
|
+
.join("\n")
|
|
59
|
+
.trim();
|
|
60
|
+
}
|
|
48
61
|
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;;;;;;AAeA,4BAoBC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;;;;;;AAeA,4BAoBC;AAED,gCAaC;AAlDD;;;;;;;;;;;;;;GAcG;AACH,SAAsB,QAAQ,CAAO,GAAQ,EAAE,EAA+C;;QAC1F,IAAI,OAAO,GAAoB,SAAS,CAAC;QAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEnC,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACxB,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAC;gBAClD,CAAC;gBAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;iBAAM,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;QAED,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAuB,CAAC,CAAC,CAAC,OAAO,CAAC;IACrE,CAAC;CAAA;AAED,SAAgB,UAAU,CAAC,GAA8B;IACrD,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACtB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CACrD,CAAC;IACF,OAAO,KAAK;SACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5B,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;AAChB,CAAC"}
|
package/dist/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
8.62.
|
|
1
|
+
8.62.6
|
package/dist/visitor.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare function produceAsync<Base extends Objectish>(before: Promise<Bas
|
|
|
6
6
|
export declare abstract class TreeVisitor<T extends Tree, P> {
|
|
7
7
|
protected cursor: Cursor;
|
|
8
8
|
private visitCount;
|
|
9
|
-
|
|
9
|
+
afterVisit: TreeVisitor<any, P>[];
|
|
10
10
|
visitDefined<R extends T>(tree: Tree, p: P, parent?: Cursor): Promise<R>;
|
|
11
11
|
visit<R extends T>(tree: Tree, p: P, parent?: Cursor): Promise<R | undefined>;
|
|
12
12
|
protected accept(t: T, p: P): Promise<T | undefined>;
|
package/dist/visitor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"AAeA,OAAO,EAAe,MAAM,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACxD,OAAO,EAAC,MAAM,EAA4B,UAAU,EAAE,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC1E,OAAO,EAAc,KAAK,EAAe,SAAS,EAAC,MAAM,OAAO,CAAC;AAIjE,MAAM,MAAM,0BAA0B,CAAC,KAAK,IACtC,KAAK,GACL,IAAI,GACJ,SAAS,CAAA;AAEf,wBAAsB,YAAY,CAAC,IAAI,SAAS,SAAS,EACrD,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GACnE,WAAW,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,CAKf;AAID,8BAAsB,WAAW,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;IAC/C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAgB;IACxC,OAAO,CAAC,UAAU,CAAa;
|
|
1
|
+
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"AAeA,OAAO,EAAe,MAAM,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACxD,OAAO,EAAC,MAAM,EAA4B,UAAU,EAAE,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC1E,OAAO,EAAc,KAAK,EAAe,SAAS,EAAC,MAAM,OAAO,CAAC;AAIjE,MAAM,MAAM,0BAA0B,CAAC,KAAK,IACtC,KAAK,GACL,IAAI,GACJ,SAAS,CAAA;AAEf,wBAAsB,YAAY,CAAC,IAAI,SAAS,SAAS,EACrD,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GACnE,WAAW,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,CAKf;AAID,8BAAsB,WAAW,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;IAC/C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAgB;IACxC,OAAO,CAAC,UAAU,CAAa;IACxB,UAAU,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAM;IAExC,YAAY,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;cAsDnE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAI1D,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAI7B,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;cAIlD,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;cAI/C,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;cAIhD,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;cAatD,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;cAI1D,WAAW,CAAC,CAAC,SAAS,IAAI,EACtC,MAAM,EAAE,CAAC,EACT,CAAC,EAAE,CAAC,EACJ,MAAM,CAAC,EACH,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3D,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACzE,OAAO,CAAC,CAAC,CAAC;CAQhB;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAMlE;AAED,qBAAa,cAAe,SAAQ,KAAK;aACT,KAAK,EAAE,KAAK;aAAkB,MAAM,CAAC,EAAE,MAAM;gBAA7C,KAAK,EAAE,KAAK,EAAkB,MAAM,CAAC,EAAE,MAAM,YAAA;CAG5E"}
|
package/dist/visitor.js
CHANGED
|
@@ -44,6 +44,7 @@ class TreeVisitor {
|
|
|
44
44
|
constructor() {
|
|
45
45
|
this.cursor = (0, tree_1.rootCursor)();
|
|
46
46
|
this.visitCount = 0;
|
|
47
|
+
this.afterVisit = [];
|
|
47
48
|
}
|
|
48
49
|
visitDefined(tree, p, parent) {
|
|
49
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -79,14 +80,14 @@ class TreeVisitor {
|
|
|
79
80
|
this.cursor = this.cursor.parent;
|
|
80
81
|
if (topLevel) {
|
|
81
82
|
if (this.afterVisit) {
|
|
82
|
-
|
|
83
|
+
while (this.afterVisit.length > 0) {
|
|
84
|
+
const v = this.afterVisit.shift();
|
|
83
85
|
v.cursor = this.cursor;
|
|
84
86
|
if (t !== undefined) {
|
|
85
87
|
t = yield v.visit(t, p);
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
|
-
this.afterVisit = undefined;
|
|
90
91
|
this.visitCount = 0;
|
|
91
92
|
}
|
|
92
93
|
}
|
package/dist/visitor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":";;;;;;;;;;;;AA0BA,oCASC;AAwHD,kCAMC;AAjKD;;;;;;;;;;;;;;GAcG;AACH,uCAAwD;AACxD,iCAA0E;AAC1E,iCAAiE;AACjE,iCAAgC;AAQhC,SAAsB,YAAY,CAC9B,MAA4B,EAC5B,MACwD;;QAExD,MAAM,CAAC,GAAS,MAAM,MAAM,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAS,CAAC;IACtC,CAAC;CAAA;AAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAA;AAExD,MAAsB,WAAW;IAAjC;QACc,WAAM,GAAW,IAAA,iBAAU,GAAE,CAAC;QAChC,eAAU,GAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openrewrite/rewrite",
|
|
3
|
-
"version": "8.62.
|
|
3
|
+
"version": "8.62.6",
|
|
4
4
|
"license": "Moderne Source Available License",
|
|
5
5
|
"description": "OpenRewrite JavaScript.",
|
|
6
6
|
"homepage": "https://github.com/openrewrite/rewrite",
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"dedent": "^1.5.3",
|
|
36
36
|
"diff": "^7.0.0",
|
|
37
37
|
"immer": "^10.1.1",
|
|
38
|
+
"picomatch": "^4.0.3",
|
|
38
39
|
"tmp-promise": "^3.0.3",
|
|
39
40
|
"typescript": "^5.8.3",
|
|
40
41
|
"vscode-jsonrpc": "^8.2.1"
|
|
@@ -42,6 +43,7 @@
|
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"@types/diff": "^5.2.2",
|
|
44
45
|
"@types/jest": "^29.5.13",
|
|
46
|
+
"@types/picomatch": "^4.0.2",
|
|
45
47
|
"jest": "^29.7.0",
|
|
46
48
|
"jest-junit": "^16.0.0",
|
|
47
49
|
"ts-jest": "^29.2.5",
|
package/src/java/tree.ts
CHANGED
|
@@ -24,9 +24,25 @@ export interface J extends Tree {
|
|
|
24
24
|
readonly prefix: J.Space;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
export namespace J {
|
|
28
|
+
export function isMethodCall(e?: Expression): e is MethodCall {
|
|
29
|
+
return e?.kind === J.Kind.NewClass ||
|
|
30
|
+
e?.kind === J.Kind.MethodInvocation ||
|
|
31
|
+
e?.kind === J.Kind.MemberReference;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function hasType<T extends J>(tree: T): tree is T & { type: Type } {
|
|
35
|
+
return tree && 'type' in tree && tree.type != null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
27
39
|
export interface Expression extends J {
|
|
28
40
|
}
|
|
29
41
|
|
|
42
|
+
export interface MethodCall extends Expression {
|
|
43
|
+
readonly methodType?: Type.Method;
|
|
44
|
+
}
|
|
45
|
+
|
|
30
46
|
export interface TypedTree extends J {
|
|
31
47
|
}
|
|
32
48
|
|
|
@@ -458,13 +474,12 @@ export namespace J {
|
|
|
458
474
|
readonly codePoint: string;
|
|
459
475
|
}
|
|
460
476
|
|
|
461
|
-
export interface MemberReference extends J,
|
|
477
|
+
export interface MemberReference extends J, MethodCall {
|
|
462
478
|
readonly kind: typeof Kind.MemberReference;
|
|
463
479
|
readonly containing: RightPadded<Expression>;
|
|
464
480
|
readonly typeParameters?: Container<Expression>;
|
|
465
481
|
readonly reference: LeftPadded<Identifier>;
|
|
466
482
|
readonly type?: Type;
|
|
467
|
-
readonly methodType?: Type.Method;
|
|
468
483
|
readonly variableType?: Type.Variable;
|
|
469
484
|
}
|
|
470
485
|
|
|
@@ -483,13 +498,12 @@ export namespace J {
|
|
|
483
498
|
readonly methodType?: Type.Method;
|
|
484
499
|
}
|
|
485
500
|
|
|
486
|
-
export interface MethodInvocation extends J, TypedTree,
|
|
501
|
+
export interface MethodInvocation extends J, TypedTree, MethodCall {
|
|
487
502
|
readonly kind: typeof Kind.MethodInvocation;
|
|
488
503
|
readonly select?: RightPadded<Expression>;
|
|
489
504
|
readonly typeParameters?: Container<Expression>;
|
|
490
505
|
readonly name: Identifier;
|
|
491
506
|
readonly arguments: Container<Expression>;
|
|
492
|
-
readonly methodType?: Type.Method;
|
|
493
507
|
}
|
|
494
508
|
|
|
495
509
|
export interface Modifier extends J {
|
|
@@ -536,7 +550,7 @@ export namespace J {
|
|
|
536
550
|
readonly type?: Type;
|
|
537
551
|
}
|
|
538
552
|
|
|
539
|
-
export interface NewClass extends J, TypedTree,
|
|
553
|
+
export interface NewClass extends J, TypedTree, MethodCall {
|
|
540
554
|
readonly kind: typeof Kind.NewClass;
|
|
541
555
|
readonly enclosing?: RightPadded<Expression>;
|
|
542
556
|
readonly new: Space;
|
|
@@ -814,12 +828,6 @@ export interface DocComment extends Comment {
|
|
|
814
828
|
// TODO implement me!
|
|
815
829
|
}
|
|
816
830
|
|
|
817
|
-
const javaKindValues = new Set(Object.values(J.Kind));
|
|
818
|
-
|
|
819
|
-
export function isJava(tree: any): tree is J {
|
|
820
|
-
return javaKindValues.has(tree["kind"]);
|
|
821
|
-
}
|
|
822
|
-
|
|
823
831
|
export function isLiteral(tree: any): tree is J.Literal {
|
|
824
832
|
return tree["kind"] === J.Kind.Literal;
|
|
825
833
|
}
|
package/src/java/type.ts
CHANGED
|
@@ -237,6 +237,10 @@ export namespace Type {
|
|
|
237
237
|
return type?.kind === Type.Kind.Class;
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
+
export function isMethod(type?: Type): type is Type.Method {
|
|
241
|
+
return type?.kind === Type.Kind.Method;
|
|
242
|
+
}
|
|
243
|
+
|
|
240
244
|
export function isArray(type?: Type): type is Type.Array {
|
|
241
245
|
return type?.kind === Type.Kind.Array;
|
|
242
246
|
}
|
|
@@ -245,6 +249,16 @@ export namespace Type {
|
|
|
245
249
|
return type?.kind === Type.Kind.Parameterized;
|
|
246
250
|
}
|
|
247
251
|
|
|
252
|
+
export function isFullyQualified(type?: Type): type is Type.FullyQualified {
|
|
253
|
+
return type != null && (
|
|
254
|
+
type.kind === Type.Kind.Class ||
|
|
255
|
+
type.kind === Type.Kind.Annotation ||
|
|
256
|
+
type.kind === Type.Kind.Parameterized ||
|
|
257
|
+
type.kind === Type.Kind.Array ||
|
|
258
|
+
type.kind === Type.Kind.ShallowClass
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
|
|
248
262
|
export interface FullyQualified extends Type {
|
|
249
263
|
}
|
|
250
264
|
|
package/src/java/visitor.ts
CHANGED
|
@@ -16,17 +16,33 @@
|
|
|
16
16
|
import {Cursor, isTree, SourceFile} from "../tree";
|
|
17
17
|
import {mapAsync} from "../util";
|
|
18
18
|
import {produceAsync, TreeVisitor, ValidImmerRecipeReturnType} from "../visitor";
|
|
19
|
-
import {
|
|
20
|
-
Expression,
|
|
21
|
-
isJava,
|
|
22
|
-
isSpace,
|
|
23
|
-
J,
|
|
24
|
-
NameTree,
|
|
25
|
-
Statement, TypedTree, TypeTree
|
|
26
|
-
} from "./tree";
|
|
19
|
+
import {Expression, isSpace, J, NameTree, Statement, TypedTree, TypeTree} from "./tree";
|
|
27
20
|
import {createDraft, Draft, finishDraft} from "immer";
|
|
28
21
|
import {Type} from "./type";
|
|
29
22
|
|
|
23
|
+
const javaKindValues = new Set(Object.values(J.Kind));
|
|
24
|
+
|
|
25
|
+
const extendedJavaKinds = new Map<string, <P>(visitor: JavaVisitor<P>) => JavaVisitor<P>>();
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Register additional kind values for interfaces that extend J.
|
|
29
|
+
* This allows isJava to recognize implementations of those interfaces.
|
|
30
|
+
* @param kinds - Array of kind values to register
|
|
31
|
+
* @param adapter - Adapter function to transform a JavaVisitor to, for example, a JavaScriptVisitor
|
|
32
|
+
*/
|
|
33
|
+
export function registerJavaExtensionKinds(
|
|
34
|
+
kinds: readonly string[],
|
|
35
|
+
adapter: <P>(visitor: JavaVisitor<P>) => JavaVisitor<P>
|
|
36
|
+
): void {
|
|
37
|
+
for (const kind of kinds) {
|
|
38
|
+
extendedJavaKinds.set(kind, adapter);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function isJava(tree: any): tree is J {
|
|
43
|
+
return javaKindValues.has(tree["kind"]) || extendedJavaKinds.has(tree["kind"]);
|
|
44
|
+
}
|
|
45
|
+
|
|
30
46
|
export class JavaVisitor<P> extends TreeVisitor<J, P> {
|
|
31
47
|
// protected javadocVisitor: any | null = null;
|
|
32
48
|
|
|
@@ -1200,6 +1216,10 @@ export class JavaVisitor<P> extends TreeVisitor<J, P> {
|
|
|
1200
1216
|
case J.Kind.Yield:
|
|
1201
1217
|
return this.visitYield(t as J.Yield, p);
|
|
1202
1218
|
default:
|
|
1219
|
+
const adapter = extendedJavaKinds.get(t.kind)
|
|
1220
|
+
if (adapter) {
|
|
1221
|
+
return adapter(this).visit(t, p);
|
|
1222
|
+
}
|
|
1203
1223
|
return Promise.resolve(t);
|
|
1204
1224
|
}
|
|
1205
1225
|
}
|
package/src/javascript/index.ts
CHANGED
|
@@ -19,7 +19,11 @@ export * from "./assertions";
|
|
|
19
19
|
export * from "./parser";
|
|
20
20
|
export * from "./style";
|
|
21
21
|
export * from "./markers";
|
|
22
|
+
export * from "./preconditions";
|
|
22
23
|
export * from "./templating";
|
|
24
|
+
export * from "./method-matcher";
|
|
25
|
+
|
|
26
|
+
export * from "./remove-import";
|
|
23
27
|
|
|
24
28
|
import "./print";
|
|
25
29
|
import "./rpc";
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import {Type} from "../java";
|
|
2
|
+
import FullyQualified = Type.FullyQualified;
|
|
3
|
+
|
|
4
|
+
export class MethodMatcher {
|
|
5
|
+
private readonly packagePattern: string;
|
|
6
|
+
private readonly typePattern: string;
|
|
7
|
+
private readonly methodPattern: string;
|
|
8
|
+
private readonly argumentPatterns: string[];
|
|
9
|
+
|
|
10
|
+
constructor(pattern: string) {
|
|
11
|
+
// Find the last space before the method spec (which contains parentheses)
|
|
12
|
+
const firstParenIndex = pattern.indexOf('(');
|
|
13
|
+
if (firstParenIndex === -1) {
|
|
14
|
+
throw new Error(`Invalid pattern format: ${pattern} - missing method arguments`);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Find the last space before the opening parenthesis
|
|
18
|
+
const lastSpaceBeforeParen = pattern.lastIndexOf(' ', firstParenIndex);
|
|
19
|
+
if (lastSpaceBeforeParen === -1) {
|
|
20
|
+
throw new Error(`Invalid pattern format: ${pattern}`);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const typeSpec = pattern.substring(0, lastSpaceBeforeParen).trim();
|
|
24
|
+
const methodSpec = pattern.substring(lastSpaceBeforeParen + 1).trim();
|
|
25
|
+
|
|
26
|
+
// Parse type specification (package.Type or just Type)
|
|
27
|
+
// Special case: *..* pattern (any package, any type)
|
|
28
|
+
if (typeSpec === '*..*') {
|
|
29
|
+
this.packagePattern = '*..';
|
|
30
|
+
this.typePattern = '*';
|
|
31
|
+
} else {
|
|
32
|
+
const lastDotIndex = typeSpec.lastIndexOf('.');
|
|
33
|
+
if (lastDotIndex === -1) {
|
|
34
|
+
this.packagePattern = '*';
|
|
35
|
+
this.typePattern = typeSpec;
|
|
36
|
+
} else {
|
|
37
|
+
// Check if we're splitting a *.. pattern incorrectly
|
|
38
|
+
const potentialPackage = typeSpec.substring(0, lastDotIndex);
|
|
39
|
+
if (potentialPackage.endsWith('*..')) {
|
|
40
|
+
// Don't split *.. pattern - it should stay together
|
|
41
|
+
this.packagePattern = potentialPackage;
|
|
42
|
+
this.typePattern = typeSpec.substring(lastDotIndex + 1);
|
|
43
|
+
} else {
|
|
44
|
+
this.packagePattern = potentialPackage;
|
|
45
|
+
this.typePattern = typeSpec.substring(lastDotIndex + 1);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Parse method specification methodName(args)
|
|
51
|
+
const methodParenIndex = methodSpec.indexOf('(');
|
|
52
|
+
if (methodParenIndex === -1 || !methodSpec.endsWith(')')) {
|
|
53
|
+
throw new Error(`Invalid method specification: ${methodSpec}`);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
this.methodPattern = methodSpec.substring(0, methodParenIndex);
|
|
57
|
+
const argsString = methodSpec.substring(methodParenIndex + 1, methodSpec.length - 1);
|
|
58
|
+
|
|
59
|
+
// Parse arguments
|
|
60
|
+
if (argsString.trim() === '..') {
|
|
61
|
+
this.argumentPatterns = ['..'];
|
|
62
|
+
} else if (argsString.trim() === '') {
|
|
63
|
+
this.argumentPatterns = [];
|
|
64
|
+
} else {
|
|
65
|
+
this.argumentPatterns = argsString.split(',').map(arg => arg.trim());
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
matches(method?: Type.Method): boolean {
|
|
70
|
+
if (!method) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Extract fully qualified name from declaringType
|
|
75
|
+
const fullyQualifiedName = FullyQualified.getFullyQualifiedName(method.declaringType);
|
|
76
|
+
|
|
77
|
+
// Split fully qualified name into package and type
|
|
78
|
+
const lastDotIndex = fullyQualifiedName.lastIndexOf('.');
|
|
79
|
+
const packageName = lastDotIndex === -1 ? '' : fullyQualifiedName.substring(0, lastDotIndex);
|
|
80
|
+
const typeName = lastDotIndex === -1 ? fullyQualifiedName : fullyQualifiedName.substring(lastDotIndex + 1);
|
|
81
|
+
|
|
82
|
+
// Match package
|
|
83
|
+
if (!this.matchesPackage(packageName)) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Match type (normalize primitives for matching)
|
|
88
|
+
const normalizedTypePattern = this.normalizePrimitiveType(this.typePattern);
|
|
89
|
+
const normalizedTypeName = this.normalizePrimitiveType(typeName);
|
|
90
|
+
if (!this.matchesPattern(normalizedTypePattern, normalizedTypeName)) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Match method name
|
|
95
|
+
if (!this.matchesPattern(this.methodPattern, method.name)) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Match arguments - convert Type[] to string representations
|
|
100
|
+
const argStrings = method.parameterTypes.map(type => this.typeToString(type));
|
|
101
|
+
return this.matchesArguments(argStrings);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
private typeToString(type: Type): string {
|
|
105
|
+
switch (type.kind) {
|
|
106
|
+
case Type.Kind.Primitive:
|
|
107
|
+
return (type as Type.Primitive).keyword;
|
|
108
|
+
case Type.Kind.Class:
|
|
109
|
+
return (type as Type.Class).fullyQualifiedName;
|
|
110
|
+
case Type.Kind.Parameterized:
|
|
111
|
+
return FullyQualified.getFullyQualifiedName((type as Type.Parameterized).type);
|
|
112
|
+
case Type.Kind.Array:
|
|
113
|
+
const arrayType = type as Type.Array;
|
|
114
|
+
return this.typeToString(arrayType.elemType) + '[]';
|
|
115
|
+
case Type.Kind.GenericTypeVariable:
|
|
116
|
+
return (type as Type.GenericTypeVariable).name;
|
|
117
|
+
default:
|
|
118
|
+
return 'unknown';
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
private matchesPackage(packageName?: string): boolean {
|
|
123
|
+
const pkg = packageName || '';
|
|
124
|
+
|
|
125
|
+
// Handle *..* pattern (any package including nested)
|
|
126
|
+
if (this.packagePattern === '*..') {
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Handle * pattern (no package or any single-level package)
|
|
131
|
+
if (this.packagePattern === '*') {
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Handle lib.* pattern (lib and any subpackage)
|
|
136
|
+
if (this.packagePattern.endsWith('.*')) {
|
|
137
|
+
const prefix = this.packagePattern.slice(0, -2);
|
|
138
|
+
return pkg === prefix || pkg.startsWith(prefix + '.');
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Exact match
|
|
142
|
+
return pkg === this.packagePattern;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
private matchesPattern(pattern: string, value: string): boolean {
|
|
146
|
+
if (pattern === '*') {
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Handle patterns with wildcards
|
|
151
|
+
if (pattern.includes('*')) {
|
|
152
|
+
// Convert pattern to regex
|
|
153
|
+
const regexPattern = pattern
|
|
154
|
+
.replace(/[.+?^${}()|[\]\\]/g, '\\$&') // Escape special chars except *
|
|
155
|
+
.replace(/\*/g, '.*'); // Replace * with .*
|
|
156
|
+
const regex = new RegExp(`^${regexPattern}$`);
|
|
157
|
+
return regex.test(value);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return pattern === value;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
private matchesArguments(args: string[]): boolean {
|
|
164
|
+
// Handle .. pattern (any arguments)
|
|
165
|
+
if (this.argumentPatterns.length === 1 && this.argumentPatterns[0] === '..') {
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// Handle patterns with .. in arguments
|
|
170
|
+
let patternIndex = 0;
|
|
171
|
+
let argIndex = 0;
|
|
172
|
+
|
|
173
|
+
while (patternIndex < this.argumentPatterns.length && argIndex < args.length) {
|
|
174
|
+
const pattern = this.argumentPatterns[patternIndex];
|
|
175
|
+
|
|
176
|
+
if (pattern === '..') {
|
|
177
|
+
// If .. is the last pattern, it matches all remaining args
|
|
178
|
+
if (patternIndex === this.argumentPatterns.length - 1) {
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Otherwise, try to match the next pattern with remaining args
|
|
183
|
+
const nextPattern = this.argumentPatterns[patternIndex + 1];
|
|
184
|
+
let matched = false;
|
|
185
|
+
for (let i = argIndex; i < args.length; i++) {
|
|
186
|
+
if (this.matchesArgumentPattern(nextPattern, args[i])) {
|
|
187
|
+
argIndex = i + 1;
|
|
188
|
+
patternIndex += 2;
|
|
189
|
+
matched = true;
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (!matched) {
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
} else {
|
|
197
|
+
if (!this.matchesArgumentPattern(pattern, args[argIndex])) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
patternIndex++;
|
|
201
|
+
argIndex++;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// Check if all patterns and arguments are consumed
|
|
206
|
+
if (patternIndex < this.argumentPatterns.length) {
|
|
207
|
+
// Allow trailing .. to match zero arguments
|
|
208
|
+
return patternIndex === this.argumentPatterns.length - 1 &&
|
|
209
|
+
this.argumentPatterns[patternIndex] === '..';
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
return argIndex === args.length;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
private matchesArgumentPattern(pattern: string, arg: string): boolean {
|
|
216
|
+
// Handle type patterns like lib.Array
|
|
217
|
+
if (pattern.includes('.')) {
|
|
218
|
+
// Also check if the pattern is a TypeScript primitive class (lib.Number, lib.String, lib.Boolean)
|
|
219
|
+
const normalizedPattern = this.normalizePrimitiveType(pattern);
|
|
220
|
+
const normalizedArg = this.normalizePrimitiveType(arg);
|
|
221
|
+
return normalizedPattern === normalizedArg;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// Normalize TypeScript primitive names to match both primitive and class representations
|
|
225
|
+
const normalizedPattern = this.normalizePrimitiveType(pattern);
|
|
226
|
+
const normalizedArg = this.normalizePrimitiveType(arg);
|
|
227
|
+
|
|
228
|
+
return normalizedPattern === normalizedArg;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
private normalizePrimitiveType(type: string): string {
|
|
232
|
+
switch (type) {
|
|
233
|
+
case 'number':
|
|
234
|
+
case 'Number':
|
|
235
|
+
case 'lib.Number':
|
|
236
|
+
case 'double':
|
|
237
|
+
return 'Number';
|
|
238
|
+
case 'string':
|
|
239
|
+
case 'String':
|
|
240
|
+
case 'lib.String':
|
|
241
|
+
return 'String';
|
|
242
|
+
case 'boolean':
|
|
243
|
+
case 'Boolean':
|
|
244
|
+
case 'lib.Boolean':
|
|
245
|
+
return 'Boolean';
|
|
246
|
+
default:
|
|
247
|
+
return type;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
package/src/javascript/parser.ts
CHANGED
|
@@ -1898,7 +1898,7 @@ export class JavaScriptParserVisitor {
|
|
|
1898
1898
|
function: select,
|
|
1899
1899
|
typeParameters: typeArguments,
|
|
1900
1900
|
arguments: this.mapCommaSeparatedList(node.getChildren(this.sourceFile).slice(-3)),
|
|
1901
|
-
|
|
1901
|
+
methodType: this.mapMethodType(node)
|
|
1902
1902
|
}
|
|
1903
1903
|
}
|
|
1904
1904
|
}
|