@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.
Files changed (110) hide show
  1. package/dist/java/tree.d.ts +12 -6
  2. package/dist/java/tree.d.ts.map +1 -1
  3. package/dist/java/tree.js +12 -5
  4. package/dist/java/tree.js.map +1 -1
  5. package/dist/java/type.d.ts +2 -0
  6. package/dist/java/type.d.ts.map +1 -1
  7. package/dist/java/type.js +12 -0
  8. package/dist/java/type.js.map +1 -1
  9. package/dist/java/visitor.d.ts +8 -0
  10. package/dist/java/visitor.d.ts.map +1 -1
  11. package/dist/java/visitor.js +23 -1
  12. package/dist/java/visitor.js.map +1 -1
  13. package/dist/javascript/index.d.ts +3 -0
  14. package/dist/javascript/index.d.ts.map +1 -1
  15. package/dist/javascript/index.js +3 -0
  16. package/dist/javascript/index.js.map +1 -1
  17. package/dist/javascript/method-matcher.d.ts +16 -0
  18. package/dist/javascript/method-matcher.d.ts.map +1 -0
  19. package/dist/javascript/method-matcher.js +222 -0
  20. package/dist/javascript/method-matcher.js.map +1 -0
  21. package/dist/javascript/parser.js +1 -1
  22. package/dist/javascript/parser.js.map +1 -1
  23. package/dist/javascript/preconditions.d.ts +6 -0
  24. package/dist/javascript/preconditions.d.ts.map +1 -0
  25. package/dist/javascript/preconditions.js +58 -0
  26. package/dist/javascript/preconditions.js.map +1 -0
  27. package/dist/javascript/remove-import.d.ts +56 -0
  28. package/dist/javascript/remove-import.d.ts.map +1 -0
  29. package/dist/javascript/remove-import.js +715 -0
  30. package/dist/javascript/remove-import.js.map +1 -0
  31. package/dist/javascript/rpc.js +2 -2
  32. package/dist/javascript/rpc.js.map +1 -1
  33. package/dist/javascript/search/index.d.ts +3 -0
  34. package/dist/javascript/search/index.d.ts.map +1 -0
  35. package/dist/javascript/search/index.js +19 -0
  36. package/dist/javascript/search/index.js.map +1 -0
  37. package/dist/javascript/search/uses-method.d.ts +8 -0
  38. package/dist/javascript/search/uses-method.d.ts.map +1 -0
  39. package/dist/javascript/search/uses-method.js +35 -0
  40. package/dist/javascript/search/uses-method.js.map +1 -0
  41. package/dist/javascript/search/uses-type.d.ts +8 -0
  42. package/dist/javascript/search/uses-type.d.ts.map +1 -0
  43. package/dist/javascript/search/uses-type.js +71 -0
  44. package/dist/javascript/search/uses-type.js.map +1 -0
  45. package/dist/javascript/templating.d.ts +1 -1
  46. package/dist/javascript/templating.d.ts.map +1 -1
  47. package/dist/javascript/templating.js +1 -1
  48. package/dist/javascript/templating.js.map +1 -1
  49. package/dist/javascript/tree.d.ts +3 -3
  50. package/dist/javascript/tree.d.ts.map +1 -1
  51. package/dist/javascript/tree.js +28 -0
  52. package/dist/javascript/tree.js.map +1 -1
  53. package/dist/javascript/type-mapping.d.ts +4 -0
  54. package/dist/javascript/type-mapping.d.ts.map +1 -1
  55. package/dist/javascript/type-mapping.js +92 -46
  56. package/dist/javascript/type-mapping.js.map +1 -1
  57. package/dist/javascript/visitor.js +1 -1
  58. package/dist/javascript/visitor.js.map +1 -1
  59. package/dist/print.d.ts +1 -0
  60. package/dist/print.d.ts.map +1 -1
  61. package/dist/print.js +6 -0
  62. package/dist/print.js.map +1 -1
  63. package/dist/rpc/rewrite-rpc.d.ts +1 -1
  64. package/dist/rpc/rewrite-rpc.d.ts.map +1 -1
  65. package/dist/rpc/rewrite-rpc.js +0 -3
  66. package/dist/rpc/rewrite-rpc.js.map +1 -1
  67. package/dist/search/index.d.ts +2 -0
  68. package/dist/search/index.d.ts.map +1 -0
  69. package/dist/search/index.js +18 -0
  70. package/dist/search/index.js.map +1 -0
  71. package/dist/search/is-source-file.d.ts +8 -0
  72. package/dist/search/is-source-file.d.ts.map +1 -0
  73. package/dist/search/is-source-file.js +70 -0
  74. package/dist/search/is-source-file.js.map +1 -0
  75. package/dist/test/rewrite-test.d.ts.map +1 -1
  76. package/dist/test/rewrite-test.js +3 -0
  77. package/dist/test/rewrite-test.js.map +1 -1
  78. package/dist/util.d.ts +1 -0
  79. package/dist/util.d.ts.map +1 -1
  80. package/dist/util.js +13 -0
  81. package/dist/util.js.map +1 -1
  82. package/dist/version.txt +1 -1
  83. package/dist/visitor.d.ts +1 -1
  84. package/dist/visitor.d.ts.map +1 -1
  85. package/dist/visitor.js +3 -2
  86. package/dist/visitor.js.map +1 -1
  87. package/package.json +3 -1
  88. package/src/java/tree.ts +19 -11
  89. package/src/java/type.ts +14 -0
  90. package/src/java/visitor.ts +28 -8
  91. package/src/javascript/index.ts +4 -0
  92. package/src/javascript/method-matcher.ts +250 -0
  93. package/src/javascript/parser.ts +1 -1
  94. package/src/javascript/preconditions.ts +40 -0
  95. package/src/javascript/remove-import.ts +780 -0
  96. package/src/javascript/rpc.ts +2 -2
  97. package/src/javascript/search/index.ts +2 -0
  98. package/src/javascript/search/uses-method.ts +21 -0
  99. package/src/javascript/search/uses-type.ts +27 -0
  100. package/src/javascript/templating.ts +4 -3
  101. package/src/javascript/tree.ts +47 -3
  102. package/src/javascript/type-mapping.ts +113 -50
  103. package/src/javascript/visitor.ts +125 -125
  104. package/src/print.ts +9 -3
  105. package/src/rpc/rewrite-rpc.ts +1 -4
  106. package/src/search/index.ts +1 -0
  107. package/src/search/is-source-file.ts +26 -0
  108. package/src/test/rewrite-test.ts +4 -1
  109. package/src/util.ts +19 -4
  110. 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;IAYzB;;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"}
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":";;;;;;;;;;;;;;;;;;;;;;AAyOA,kCAcC;AAiBD,kCAEC;AA1QD;;;;;;;;;;;;;;GAcG;AACH,sCAAiC;AACjC,4CAA8C;AAC9C,wCAAoD;AAEpD,oCAAsC;AAEtC,oDAA4B;AAC5B,gCAA2C;AAC3C,gEAA0D;AAC1D,kCAAiC;AACjC,gDAA8C;AAC9C,wCAA6D;AAC7D,8CAAgD;AAchD,MAAa,UAAU;IAAvB;QACI,+BAA0B,GAAY,IAAI,CAAA;QAE1C,WAAM,GAAW,IAAI,UAAU,EAAE,CAAA;QAEjC;;;WAGG;QACH,qBAAgB,GAAqB,IAAI,4BAAgB,EAAE,CAAC;QAE5D;;WAEG;QACH,2BAAsB,GAAqB,IAAI,CAAC,gBAAgB,CAAC;QAEzD,wBAAmB,GAA6C,EAAE,CAAA;IA0J9E,CAAC;IAxJG,SAAS,CAAM,IAAY,EAAE,OAA8B;QACvD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC7C,CAAC;IAEK,UAAU,CAAC,GAAG,WAA4E;;YAC5F,gDAAgD;YAChD,MAAM,cAAc,GAAsB,EAAE,CAAC;YAC7C,KAAK,MAAM,eAAe,IAAI,WAAW,EAAE,CAAC;gBACxC,IAAI,eAAe,IAAI,OAAQ,eAAuB,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACzE,KAAK,MAAM,IAAI,IAAI,eAA4D,EAAE,CAAC;wBAC9E,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,cAAc,CAAC,IAAI,CAAC,eAAkC,CAAC,CAAC;gBAC5D,CAAC;YACL,CAAC;YAED,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACvD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,OAAO,MAAM,CAAC;YAClB,CAAC,EAAE,EAA2C,CAAC,CAAC;YAEhD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM,IAAI,CAAC,mDAAmD,CAAC,MAAM,CAAC,CAAC;gBACvE,IAAI,CAAC,0BAA0B,KAAI,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA,CAAC;gBAClF,MAAM,SAAS,GAAG,CAAC,MAAM,IAAA,iBAAW,EAAC,IAAI,CAAC,MAAM,EAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAC3C,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5C,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC/D,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACtD,CAAC;YAED,8EAA8E;YAC9E,6DAA6D;YAC7D,IAAI;QACR,CAAC;KAAA;IAEa,qBAAqB,CAAC,MAAuC;;YACvE,KAAK,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;gBACnC,IAAI,UAAU,CAAC,IAAI,KAAK,4BAAc,EAAE,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,uCAAuC;wBAClD,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAW,CAAC,oBAAoB,CAA2B,CAAC,OAAO,CAAC,CAAC;gBAC9H,CAAC;YACL,CAAC;QACL,CAAC;KAAA;IAEa,2BAA2B,CAAC,MAAuC;;YAC7E,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;gBACtC,MAAM,YAAY,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAO,CAAC,CAAC;gBAC1C,MAAM,CAAC,MAAM,oBAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;KAAA;IAEa,yBAAyB,CAAC,KAAwB,EAAE,SAAmB,EAAE,MAAuC;;;YAC1H,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBACzD,MAAM,KAAK,GAAG,MAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC7B,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;wBACX,OAAO,CAAC,CAAC,MAAM,KAAK,YAAa,CAAC,CAAC,CAAC,CAAC;oBACzC,CAAC;yBAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;wBACjB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAM,CAAC,UAAU,CAAC,CAAC;wBACrE,OAAO,CAAC,CAAC,YAAY,CAAC;oBAC1B,CAAC;gBACL,CAAC,CAAC,0CAAE,KAAK,CAAC;gBAEV,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACd,IAAI,KAAK,EAAE,CAAC;wBACR,MAAM,CAAC,MAAM,oBAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC;wBACtE,6FAA6F;wBAC7F,2CAA2C;oBAC/C,CAAC;oBACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,MAAM,IAAI,CAAC,WAAW,CAAC,YAAa,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7C,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;QACL,CAAC;KAAA;IAEa,oBAAoB,CAAC,KAAwB,EAAE,SAAmB;;YAC5E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,SAAS;gBACb,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBAC5E,CAAC;gBACD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,KAAK,0CAAE,UAAU,MAAK,IAAI,CAAC,IAAI,CAAA,EAAA,CAAC,CAAC;gBACrE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;KAAA;IAEa,WAAW,CAAC,IAAqB,EAAE,KAAkB;;YAC/D,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,yBAAyB,EAAE,CAAC,KAAK,CAAC,KAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3E,MAAM,WAAW,GAAG,MAAM,oBAAY,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;gBACjD,IAAI,CAAC,KAAoC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAe,CAAC;YACnF,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACW,KAAK,CAAC,KAAwB;;;YACxC,IAAI,SAAS,GAAG,IAAA,0BAAW,GAAE,CAAC;YAC9B,MAAM,MAAM,GAA8D,EAAE,CAAC;YAC7E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC;gBAC7E,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtD,MAAM,MAAM,GAAiB,EAAE,CAAC;;gBAChC,KAA+B,eAAA,KAAA,cAAA,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA,IAAA,sDAAE,CAAC;oBAAjE,cAA8D;oBAA9D,WAA8D;oBAAlF,MAAM,UAAU,KAAA,CAAA;oBACvB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5B,CAAC;;;;;;;;;YACD,MAAM,YAAY,GAAoC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtG,OAAO,MAAM,IAAA,eAAQ,EAAC,YAAY,EAAE,KAA2B,EAAE,0CAAtB,CAAC,IAAI,EAAE,UAAU,CAAC;gBACzD,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gBACzE,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClB,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC;wBACvB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC;wBACvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;4BACvB,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAC;wBAC3H,CAAC;wBACD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC1B,CAAC;oBACD,OAAO,CAAC,IAAI,EAAE,CAAe,CAAC,CAAC;gBACnC,CAAC;gBACD,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC9B,CAAC,CAAA,CAAC,CAAC;QACP,CAAC;KAAA;IAEa,mDAAmD,CAAC,MAAuC;;YACrG,MAAM,SAAS,GAAG,IAAI,yBAAyB,EAAE,CAAC;YAClD,KAAK,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;gBACnC,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;KAAA;CACJ;AA1KD,gCA0KC;AAED,MAAM,yBAA0B,SAAQ,8BAAmC;IACjD,UAAU,CAAC,KAAc,EAAE,CAAmB;;;;;YAChE,MAAM,GAAG,GAAG,OAAM,UAAU,YAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;CACJ;AAED,MAAM,UAAW,SAAQ,eAAM;IAA/B;;QACI,SAAI,GAAG,sBAAsB,CAAC;QAC9B,gBAAW,GAAG,YAAY,CAAC;QAC3B,gBAAW,GAAG,mCAAmC,CAAC;IAKtD,CAAC;IAHS,MAAM;;YACR,OAAO,IAAA,qBAAW,GAAE,CAAC;QACzB,CAAC;KAAA;CACJ;AAID,SAAgB,WAAW,CAAC,CAAmB;IAC3C,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAc,EAAsB,EAAE;gBAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;gBACtB,OAAO,GAAG,CAAC,CAAC,CAAC,IAAA,gBAAM,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,IAAA,gBAAM,EAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAGD,MAAa,WAAY,SAAQ,eAAM;IAKnC,YAAoB,OAA8B;QAC9C,KAAK,EAAE,CAAC;QADQ,YAAO,GAAP,OAAO,CAAuB;QAJlD,SAAI,GAAG,uBAAuB,CAAA;QAC9B,gBAAW,GAAG,QAAQ,CAAA;QACtB,gBAAW,GAAG,SAAS,CAAA;IAIvB,CAAC;IAEK,MAAM;;YACR,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;KAAA;CACJ;AAZD,kCAYC;AAED,SAAgB,WAAW,CAAC,OAA8B;IACtD,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
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
@@ -1,2 +1,3 @@
1
1
  export declare function mapAsync<T, U>(arr: T[], fn: (t: T, i: number) => Promise<U | undefined>): Promise<U[]>;
2
+ export declare function trimIndent(str: string | null | undefined): string;
2
3
  //# sourceMappingURL=util.d.ts.map
@@ -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;AAnCD;;;;;;;;;;;;;;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"}
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.4
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
- private afterVisit?;
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>;
@@ -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;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAwB;IAErC,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"}
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
- for (const v of this.afterVisit) {
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"visitor.js","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"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"}
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.4",
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, Expression {
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, Expression {
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, Expression {
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
 
@@ -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
  }
@@ -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
+ }
@@ -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
- functionType: this.mapMethodType(node)
1901
+ methodType: this.mapMethodType(node)
1902
1902
  }
1903
1903
  }
1904
1904
  }