@openrewrite/rewrite 8.65.0-20251023-070052 → 8.65.0-20251023-122431

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 (33) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +2 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/java/formatting-utils.d.ts +17 -0
  5. package/dist/java/formatting-utils.d.ts.map +1 -0
  6. package/dist/java/formatting-utils.js +75 -0
  7. package/dist/java/formatting-utils.js.map +1 -0
  8. package/dist/javascript/migrate/es6/index.d.ts +1 -0
  9. package/dist/javascript/migrate/es6/index.d.ts.map +1 -1
  10. package/dist/javascript/migrate/es6/index.js +3 -1
  11. package/dist/javascript/migrate/es6/index.js.map +1 -1
  12. package/dist/javascript/migrate/es6/modernize-octal-literals.js +1 -1
  13. package/dist/javascript/migrate/es6/modernize-octal-literals.js.map +1 -1
  14. package/dist/javascript/migrate/es6/remove-duplicate-object-keys.d.ts +10 -0
  15. package/dist/javascript/migrate/es6/remove-duplicate-object-keys.d.ts.map +1 -0
  16. package/dist/javascript/migrate/es6/remove-duplicate-object-keys.js +139 -0
  17. package/dist/javascript/migrate/es6/remove-duplicate-object-keys.js.map +1 -0
  18. package/dist/javascript/parser-utils.d.ts.map +1 -1
  19. package/dist/javascript/parser-utils.js +19 -4
  20. package/dist/javascript/parser-utils.js.map +1 -1
  21. package/dist/javascript/remove-import.d.ts +0 -11
  22. package/dist/javascript/remove-import.d.ts.map +1 -1
  23. package/dist/javascript/remove-import.js +16 -52
  24. package/dist/javascript/remove-import.js.map +1 -1
  25. package/dist/version.txt +1 -1
  26. package/package.json +1 -1
  27. package/src/index.ts +2 -1
  28. package/src/java/formatting-utils.ts +84 -0
  29. package/src/javascript/migrate/es6/index.ts +1 -0
  30. package/src/javascript/migrate/es6/modernize-octal-literals.ts +1 -1
  31. package/src/javascript/migrate/es6/remove-duplicate-object-keys.ts +137 -0
  32. package/src/javascript/parser-utils.ts +21 -4
  33. package/src/javascript/remove-import.ts +16 -63
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAC,cAAc,EAAC,MAAM,UAAU,CAAC;AAExC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AAGtB,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAC,cAAc,EAAC,MAAM,UAAU,CAAC;AAExC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AAGtB,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtE"}
package/dist/index.js CHANGED
@@ -60,9 +60,10 @@ __exportStar(require("./run"), exports);
60
60
  function activate(registry) {
61
61
  return __awaiter(this, void 0, void 0, function* () {
62
62
  const { OrderImports } = yield import("./recipe/index.js");
63
- const { ModernizeOctalLiterals } = yield import("./javascript/migrate/es6/index.js");
63
+ const { ModernizeOctalLiterals, RemoveDuplicateObjectKeys } = yield import("./javascript/migrate/es6/index.js");
64
64
  registry.register(OrderImports);
65
65
  registry.register(ModernizeOctalLiterals);
66
+ registry.register(RemoveDuplicateObjectKeys);
66
67
  });
67
68
  }
68
69
  rpc_1.RpcCodecs.registerCodec(markers_1.MarkersKind.ParseExceptionResult, {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,4BAKC;AAzCD;;;;;;;;;;;;;;GAcG;AACH,+BAA+D;AAC/D,iCAAsD;AACtD,uCAA4D;AAG5D,+CAA6B;AAC7B,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,gDAA8B;AAC9B,kDAAgC;AAChC,yCAAuB;AACvB,yCAAuB;AACvB,2CAAyB;AACzB,wCAAsB;AAEtB,uCAAuC;AACvC,SAAsB,QAAQ,CAAC,QAAwB;;QACnD,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,EAAC,sBAAsB,EAAC,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QACnF,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC9C,CAAC;CAAA;AAED,eAAS,CAAC,aAAa,CAAC,qBAAW,CAAC,oBAAoB,EAAE;IAChD,OAAO,CAAC,KAA2B,EAAE,CAAe;;YACtD,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;KAAA;IACK,UAAU,CAAC,MAA4B,EAAE,CAAkB;;YAC7D,MAAM,KAAK,GAAgC,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;YAC/D,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtD,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC5D,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;KAAA;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,4BAMC;AA1CD;;;;;;;;;;;;;;GAcG;AACH,+BAA+D;AAC/D,iCAAsD;AACtD,uCAA4D;AAG5D,+CAA6B;AAC7B,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,gDAA8B;AAC9B,kDAAgC;AAChC,yCAAuB;AACvB,yCAAuB;AACvB,2CAAyB;AACzB,wCAAsB;AAEtB,uCAAuC;AACvC,SAAsB,QAAQ,CAAC,QAAwB;;QACnD,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,EAAC,sBAAsB,EAAE,yBAAyB,EAAC,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAC9G,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IACjD,CAAC;CAAA;AAED,eAAS,CAAC,aAAa,CAAC,qBAAW,CAAC,oBAAoB,EAAE;IAChD,OAAO,CAAC,KAA2B,EAAE,CAAe;;YACtD,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;KAAA;IACK,UAAU,CAAC,MAA4B,EAAE,CAAkB;;YAC7D,MAAM,KAAK,GAAgC,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;YAC/D,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtD,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC5D,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;KAAA;CACJ,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { J } from "../java";
2
+ /**
3
+ * Applies the prefix from a removed element to the next element.
4
+ *
5
+ * This is used when removing elements from a list to preserve formatting:
6
+ * - If the next element has no comments (or only an inline trailing comment to remove),
7
+ * uses the removed element's prefix whitespace
8
+ * - If the next element has comments to preserve, keeps the next element's whitespace
9
+ * to maintain proper spacing (e.g., blank lines before comments)
10
+ * - Removes inline line comments (//...) that were on the removed element's line
11
+ *
12
+ * @param removedElement The element that was removed
13
+ * @param nextElement The element that follows the removed one
14
+ * @returns The next element with adjusted prefix, or the original if no changes needed
15
+ */
16
+ export declare function applyRemovedElementPrefix<T extends J>(removedElement: J, nextElement: T): T;
17
+ //# sourceMappingURL=formatting-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatting-utils.d.ts","sourceRoot":"","sources":["../../src/java/formatting-utils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,CAAC,EAAC,MAAM,SAAS,CAAC;AAG1B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAkD3F"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2025 the original author or authors.
4
+ * <p>
5
+ * Licensed under the Moderne Source Available License (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ * <p>
9
+ * https://docs.moderne.io/licensing/moderne-source-available-license
10
+ * <p>
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.applyRemovedElementPrefix = applyRemovedElementPrefix;
19
+ const immer_1 = require("immer");
20
+ /**
21
+ * Applies the prefix from a removed element to the next element.
22
+ *
23
+ * This is used when removing elements from a list to preserve formatting:
24
+ * - If the next element has no comments (or only an inline trailing comment to remove),
25
+ * uses the removed element's prefix whitespace
26
+ * - If the next element has comments to preserve, keeps the next element's whitespace
27
+ * to maintain proper spacing (e.g., blank lines before comments)
28
+ * - Removes inline line comments (//...) that were on the removed element's line
29
+ *
30
+ * @param removedElement The element that was removed
31
+ * @param nextElement The element that follows the removed one
32
+ * @returns The next element with adjusted prefix, or the original if no changes needed
33
+ */
34
+ function applyRemovedElementPrefix(removedElement, nextElement) {
35
+ if (!removedElement.prefix || !nextElement.prefix) {
36
+ return nextElement;
37
+ }
38
+ const removedPrefix = removedElement.prefix;
39
+ const currentPrefix = nextElement.prefix;
40
+ const currentComments = currentPrefix.comments || [];
41
+ // If the next element has no comments, just use the removed element's prefix entirely
42
+ if (currentComments.length === 0) {
43
+ if (currentPrefix === removedPrefix) {
44
+ return nextElement;
45
+ }
46
+ return (0, immer_1.produce)(nextElement, draft => {
47
+ draft.prefix = removedPrefix;
48
+ });
49
+ }
50
+ // The next element has comments - check if we need to remove inline line comments
51
+ const currentWhitespace = currentPrefix.whitespace || '';
52
+ const hasLeadingNewline = /[\r\n]/.test(currentWhitespace);
53
+ let commentsToKeep = currentComments;
54
+ if (!hasLeadingNewline && currentComments.length > 0) {
55
+ // First comment has no leading newline - check if it's an inline line comment
56
+ const firstComment = currentComments[0];
57
+ const commentText = firstComment.text || firstComment.message || '';
58
+ const isLineComment = commentText.includes('//') || firstComment.multiline === false;
59
+ if (isLineComment) {
60
+ // Remove the inline line comment
61
+ commentsToKeep = currentComments.slice(1);
62
+ }
63
+ }
64
+ // If we still have comments after filtering, use removed element's whitespace with filtered comments
65
+ if (commentsToKeep.length > 0) {
66
+ return (0, immer_1.produce)(nextElement, draft => {
67
+ draft.prefix = Object.assign(Object.assign({}, removedPrefix), { comments: commentsToKeep });
68
+ });
69
+ }
70
+ // No comments left after filtering, use removed element's prefix entirely
71
+ return (0, immer_1.produce)(nextElement, draft => {
72
+ draft.prefix = removedPrefix;
73
+ });
74
+ }
75
+ //# sourceMappingURL=formatting-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatting-utils.js","sourceRoot":"","sources":["../../src/java/formatting-utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAmBH,8DAkDC;AAlED,iCAA8B;AAE9B;;;;;;;;;;;;;GAaG;AACH,SAAgB,yBAAyB,CAAc,cAAiB,EAAE,WAAc;IACpF,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAChD,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;IAC5C,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;IACzC,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC;IAErD,sFAAsF;IACtF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YAClC,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;YAChC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kFAAkF;IAClF,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;IACzD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE3D,IAAI,cAAc,GAAG,eAAe,CAAC;IACrC,IAAI,CAAC,iBAAiB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,8EAA8E;QAC9E,MAAM,YAAY,GAAQ,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;QACpE,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,SAAS,KAAK,KAAK,CAAC;QAErF,IAAI,aAAa,EAAE,CAAC;YAChB,iCAAiC;YACjC,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,qGAAqG;IACrG,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;YAChC,KAAK,CAAC,MAAM,mCACL,aAAa,KAChB,QAAQ,EAAE,cAAc,GAC3B,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,0EAA0E;IAC1E,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;QAChC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;IACjC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { ModernizeOctalLiterals } from "./modernize-octal-literals";
2
+ export { RemoveDuplicateObjectKeys } from "./remove-duplicate-object-keys";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC"}
@@ -15,7 +15,9 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ModernizeOctalLiterals = void 0;
18
+ exports.RemoveDuplicateObjectKeys = exports.ModernizeOctalLiterals = void 0;
19
19
  var modernize_octal_literals_1 = require("./modernize-octal-literals");
20
20
  Object.defineProperty(exports, "ModernizeOctalLiterals", { enumerable: true, get: function () { return modernize_octal_literals_1.ModernizeOctalLiterals; } });
21
+ var remove_duplicate_object_keys_1 = require("./remove-duplicate-object-keys");
22
+ Object.defineProperty(exports, "RemoveDuplicateObjectKeys", { enumerable: true, get: function () { return remove_duplicate_object_keys_1.RemoveDuplicateObjectKeys; } });
21
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,uEAAkE;AAA1D,kIAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,uEAAkE;AAA1D,kIAAA,sBAAsB,OAAA;AAC9B,+EAAyE;AAAjE,yIAAA,yBAAyB,OAAA"}
@@ -38,7 +38,7 @@ class ModernizeOctalLiterals extends recipe_1.Recipe {
38
38
  editor() {
39
39
  return __awaiter(this, void 0, void 0, function* () {
40
40
  return new class extends visitor_1.JavaScriptVisitor {
41
- visitLiteral(literal, p) {
41
+ visitLiteral(literal, _ctx) {
42
42
  return __awaiter(this, void 0, void 0, function* () {
43
43
  // Only process numeric literals
44
44
  if (typeof literal.value !== 'number') {
@@ -1 +1 @@
1
- {"version":3,"file":"modernize-octal-literals.js","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/modernize-octal-literals.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,4CAAuC;AAGvC,2CAAgD;AAEhD,iCAA8B;AAE9B,MAAa,sBAAuB,SAAQ,eAAM;IAAlD;;QACI,SAAI,GAAG,iEAAiE,CAAC;QACzE,gBAAW,GAAG,0BAA0B,CAAC;QACzC,gBAAW,GAAG,uFAAuF,CAAC;IAoC1G,CAAC;IAlCS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,2BAAmC;gBAExC,YAAY,CAAC,OAAkB,EAAE,CAAmB;;wBAChE,gCAAgC;wBAChC,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;4BACpC,OAAO,OAAO,CAAC;wBACnB,CAAC;wBAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;wBACxC,IAAI,CAAC,WAAW,EAAE,CAAC;4BACf,OAAO,OAAO,CAAC;wBACnB,CAAC;wBAED,8CAA8C;wBAC9C,sEAAsE;wBACtE,yGAAyG;wBACzG,MAAM,oBAAoB,GAAG,aAAa,CAAC;wBAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;wBAEtD,IAAI,KAAK,EAAE,CAAC;4BACR,qCAAqC;4BACrC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BAC7B,MAAM,WAAW,GAAG,KAAK,WAAW,EAAE,CAAC;4BAEvC,OAAO,IAAA,eAAO,EAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gCAC5B,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;4BACpC,CAAC,CAAC,CAAC;wBACP,CAAC;wBAED,OAAO,OAAO,CAAC;oBACnB,CAAC;iBAAA;aACJ,CAAA;QACL,CAAC;KAAA;CACJ;AAvCD,wDAuCC"}
1
+ {"version":3,"file":"modernize-octal-literals.js","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/modernize-octal-literals.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,4CAAuC;AAGvC,2CAAgD;AAEhD,iCAA8B;AAE9B,MAAa,sBAAuB,SAAQ,eAAM;IAAlD;;QACI,SAAI,GAAG,iEAAiE,CAAC;QACzE,gBAAW,GAAG,0BAA0B,CAAC;QACzC,gBAAW,GAAG,uFAAuF,CAAC;IAoC1G,CAAC;IAlCS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,2BAAmC;gBAExC,YAAY,CAAC,OAAkB,EAAE,IAAsB;;wBACnE,gCAAgC;wBAChC,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;4BACpC,OAAO,OAAO,CAAC;wBACnB,CAAC;wBAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;wBACxC,IAAI,CAAC,WAAW,EAAE,CAAC;4BACf,OAAO,OAAO,CAAC;wBACnB,CAAC;wBAED,8CAA8C;wBAC9C,sEAAsE;wBACtE,yGAAyG;wBACzG,MAAM,oBAAoB,GAAG,aAAa,CAAC;wBAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;wBAEtD,IAAI,KAAK,EAAE,CAAC;4BACR,qCAAqC;4BACrC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BAC7B,MAAM,WAAW,GAAG,KAAK,WAAW,EAAE,CAAC;4BAEvC,OAAO,IAAA,eAAO,EAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gCAC5B,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;4BACpC,CAAC,CAAC,CAAC;wBACP,CAAC;wBAED,OAAO,OAAO,CAAC;oBACnB,CAAC;iBAAA;aACJ,CAAA;QACL,CAAC;KAAA;CACJ;AAvCD,wDAuCC"}
@@ -0,0 +1,10 @@
1
+ import { Recipe } from "../../../recipe";
2
+ import { TreeVisitor } from "../../../visitor";
3
+ import { ExecutionContext } from "../../../execution";
4
+ export declare class RemoveDuplicateObjectKeys extends Recipe {
5
+ name: string;
6
+ displayName: string;
7
+ description: string;
8
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
9
+ }
10
+ //# sourceMappingURL=remove-duplicate-object-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-duplicate-object-keys.d.ts","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/remove-duplicate-object-keys.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAOpD,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,IAAI,SAAyE;IAC7E,WAAW,SAAkC;IAC7C,WAAW,SAAuG;IAE5G,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA0G9D"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2025 the original author or authors.
4
+ * <p>
5
+ * Licensed under the Moderne Source Available License (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ * <p>
9
+ * https://docs.moderne.io/licensing/moderne-source-available-license
10
+ * <p>
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.RemoveDuplicateObjectKeys = void 0;
28
+ const recipe_1 = require("../../../recipe");
29
+ const visitor_1 = require("../../visitor");
30
+ const java_1 = require("../../../java");
31
+ const tree_1 = require("../../tree");
32
+ const immer_1 = require("immer");
33
+ const formatting_utils_1 = require("../../../java/formatting-utils");
34
+ class RemoveDuplicateObjectKeys extends recipe_1.Recipe {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.name = "org.openrewrite.javascript.migrate.es6.remove-duplicate-object-keys";
38
+ this.displayName = "Remove duplicate object keys";
39
+ this.description = "Remove duplicate keys in object literals, keeping only the last occurrence (last-wins semantics).";
40
+ }
41
+ editor() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ return new class extends visitor_1.JavaScriptVisitor {
44
+ visitNewClass(newClass, ctx) {
45
+ const _super = Object.create(null, {
46
+ visitNewClass: { get: () => super.visitNewClass }
47
+ });
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ var _a;
50
+ newClass = (yield _super.visitNewClass.call(this, newClass, ctx));
51
+ // Only process object literals (NewClass with body but no class or arguments)
52
+ if (!newClass.body || newClass.class || (((_a = newClass.arguments) === null || _a === void 0 ? void 0 : _a.elements) && newClass.arguments.elements.length > 0)) {
53
+ return newClass;
54
+ }
55
+ const statements = newClass.body.statements;
56
+ if (!statements || statements.length === 0) {
57
+ return newClass;
58
+ }
59
+ // Build a map of property names to their last occurrence index
60
+ const propertyNameToLastIndex = new Map();
61
+ const propertyNames = [];
62
+ for (let i = 0; i < statements.length; i++) {
63
+ const stmt = statements[i];
64
+ if (stmt.element.kind === tree_1.JS.Kind.PropertyAssignment) {
65
+ const prop = stmt.element;
66
+ const propName = this.getPropertyName(prop);
67
+ propertyNames.push(propName);
68
+ if (propName !== null) {
69
+ propertyNameToLastIndex.set(propName, i);
70
+ }
71
+ }
72
+ else {
73
+ propertyNames.push(null);
74
+ }
75
+ }
76
+ // Check if there are any duplicates to remove
77
+ const indicesToRemove = new Set();
78
+ for (let i = 0; i < propertyNames.length; i++) {
79
+ const propName = propertyNames[i];
80
+ if (propName !== null) {
81
+ const lastIndex = propertyNameToLastIndex.get(propName);
82
+ if (i < lastIndex) {
83
+ indicesToRemove.add(i);
84
+ }
85
+ }
86
+ }
87
+ if (indicesToRemove.size === 0) {
88
+ return newClass;
89
+ }
90
+ // Remove duplicate properties and adjust prefixes
91
+ return (0, immer_1.produce)(newClass, draft => {
92
+ const filteredStatements = [];
93
+ let removedElement = undefined;
94
+ for (let i = 0; i < statements.length; i++) {
95
+ if (indicesToRemove.has(i)) {
96
+ // Track the first removed element
97
+ if (!removedElement && statements[i].element) {
98
+ removedElement = statements[i].element;
99
+ }
100
+ continue;
101
+ }
102
+ const stmt = statements[i];
103
+ // If we removed previous elements, apply the removed element's prefix to this one
104
+ if (removedElement) {
105
+ const adjustedElement = (0, formatting_utils_1.applyRemovedElementPrefix)(removedElement, stmt.element);
106
+ filteredStatements.push(Object.assign(Object.assign({}, stmt), { element: adjustedElement }));
107
+ removedElement = undefined;
108
+ }
109
+ else {
110
+ filteredStatements.push(stmt);
111
+ }
112
+ }
113
+ draft.body.statements = filteredStatements;
114
+ });
115
+ });
116
+ }
117
+ getPropertyName(prop) {
118
+ const name = prop.name.element;
119
+ // Handle identifier: { foo: 1 }
120
+ if (name.kind === java_1.J.Kind.Identifier) {
121
+ return name.simpleName;
122
+ }
123
+ // Handle string literal: { "foo": 1 }
124
+ if (name.kind === java_1.J.Kind.Literal) {
125
+ const literal = name;
126
+ if (typeof literal.value === 'string') {
127
+ return literal.value;
128
+ }
129
+ }
130
+ // For computed properties { [expr]: 1 }, we can't statically determine the name
131
+ // So we return null and don't consider them for deduplication
132
+ return null;
133
+ }
134
+ };
135
+ });
136
+ }
137
+ }
138
+ exports.RemoveDuplicateObjectKeys = RemoveDuplicateObjectKeys;
139
+ //# sourceMappingURL=remove-duplicate-object-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-duplicate-object-keys.js","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/remove-duplicate-object-keys.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser-utils.d.ts","sourceRoot":"","sources":["../../src/javascript/parser-utils.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAyIjD,wBAAgB,WAAW,CAAC,SAAS,EAAE,CAAC,GAAI,SAAS,IAAI,SAAS,CAEjE;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,CAAC,GAAI,UAAU,IAAI,UAAU,CAErE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,SAAS,CA6DjE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,SAAS,CAyDrE;AAkBD,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAExC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,cAmBhE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,UAkBnF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,WAQ1D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,2CAqB/E;AAyDD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CA8BpE"}
1
+ {"version":3,"file":"parser-utils.d.ts","sourceRoot":"","sources":["../../src/javascript/parser-utils.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAyIjD,wBAAgB,WAAW,CAAC,SAAS,EAAE,CAAC,GAAI,SAAS,IAAI,SAAS,CAEjE;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,CAAC,GAAI,UAAU,IAAI,UAAU,CAErE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,SAAS,CA6DjE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,SAAS,CAyDrE;AAkBD,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAExC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,cAmBhE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,UAkBnF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,WAQ1D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,2CAqB/E;AA0ED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CA8BpE"}
@@ -361,7 +361,7 @@ function checkSyntaxErrors(program, sourceFile) {
361
361
  // checking Parsing and Syntax Errors
362
362
  let syntaxErrors = [];
363
363
  if (diagnostics.length > 0) {
364
- const errors = diagnostics.filter(d => (d.category === ts.DiagnosticCategory.Error) && isCriticalDiagnostic(d.code));
364
+ const errors = diagnostics.filter(d => (d.category === ts.DiagnosticCategory.Error) && isCriticalDiagnostic(d.code, sourceFile));
365
365
  if (errors.length > 0) {
366
366
  syntaxErrors = errors.map(e => {
367
367
  let errorMsg;
@@ -389,10 +389,9 @@ const additionalCriticalCodes = new Set([
389
389
  const excludedCodes = new Set([
390
390
  1039, // Initializers are not allowed in ambient contexts.
391
391
  1064, // The return type of an async function or method must be the global Promise<T> type. Did you mean to write 'Promise<{0}>'?
392
- 1101, // 'with' statements are not allowed in strict mode.
393
392
  1107, // Jump target cannot cross function boundary.
394
393
  1111, // Private field '{0}' must be declared in an enclosing class.
395
- 1121, // Octal literals are not allowed. Use the syntax '{0}'.
394
+ 1117, // An object literal cannot have multiple properties with the same name.
396
395
  1155, // '{0}' declarations must be initialized.
397
396
  1166, // A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.
398
397
  1170, // A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.
@@ -427,7 +426,23 @@ const excludedCodes = new Set([
427
426
  1378, // Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.
428
427
  1432, // Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.
429
428
  ]);
430
- function isCriticalDiagnostic(code) {
429
+ // Errors to exclude only for JavaScript files (.js, .jsx, .mjs, .cjs)
430
+ // TypeScript files (.ts, .tsx, .mts, .cts) should still report these as errors
431
+ const jsOnlyExcludedCodes = new Set([
432
+ 1101, // 'with' statements are not allowed in strict mode.
433
+ 1121, // Octal literals are not allowed. Use the syntax '{0}'.
434
+ 1125, // Hexadecimal digit expected.
435
+ ]);
436
+ function isCriticalDiagnostic(code, sourceFile) {
437
+ // Check if this error should be excluded for JavaScript files
438
+ if (jsOnlyExcludedCodes.has(code)) {
439
+ const fileName = sourceFile.fileName.toLowerCase();
440
+ const isJavaScript = fileName.endsWith('.js') || fileName.endsWith('.jsx') ||
441
+ fileName.endsWith('.mjs') || fileName.endsWith('.cjs');
442
+ if (isJavaScript) {
443
+ return false; // Not critical for JS files
444
+ }
445
+ }
431
446
  return (code > 1000 && code < 2000 && !excludedCodes.has(code)) || additionalCriticalCodes.has(code);
432
447
  }
433
448
  function isValidSurrogateRange(unicodeString) {
@@ -1 +1 @@
1
- {"version":3,"file":"parser-utils.js","sourceRoot":"","sources":["../../src/javascript/parser-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser-utils.js","sourceRoot":"","sources":["../../src/javascript/parser-utils.ts"],"names":[],"mappings":"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"}
@@ -30,17 +30,6 @@ export declare class RemoveImport<P> extends JavaScriptVisitor<P> {
30
30
  */
31
31
  private updateImportClause;
32
32
  visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: P): Promise<J | undefined>;
33
- /**
34
- * Adjusts the prefix of a statement that follows a removed import/require.
35
- * Removes the import's line while preserving comments that belong to subsequent lines.
36
- *
37
- * If the prefix whitespace doesn't contain a newline, the first comment was inline
38
- * on the removed import line - we remove that comment and one line terminator from its suffix.
39
- *
40
- * @param statement The statement following the removed import
41
- * @param hasKeptPreviousStatement Whether there's a previous statement that wasn't removed
42
- */
43
- private adjustPrefixAfterRemoval;
44
33
  private processImport;
45
34
  private processNamedImports;
46
35
  private processRequireFromVarDecls;
@@ -1 +1 @@
1
- {"version":3,"file":"remove-import.d.ts","sourceRoot":"","sources":["../../src/javascript/remove-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAC,CAAC,EAAC,MAAM,SAAS,CAAC;AAC1B,OAAO,EAAC,EAAE,EAAC,MAAM,QAAQ,CAAC;AAG1B;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,QAOjG;AAUD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAOzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IAPpC;;;;;OAKG;gBACkB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,YAAA;IAIpC;;;;OAIG;YACW,oCAAoC;IAqClD;;OAEG;YACW,kBAAkB;IAejB,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAiExG;;;;;;;;;OASG;IACH,OAAO,CAAC,wBAAwB;YAqClB,aAAa;YAqIb,mBAAmB;YA+DnB,0BAA0B;YA8D1B,2BAA2B;IAoDzC,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,cAAc;IAmBtB;;OAEG;YACW,kBAAkB;IAyBhC;;OAEG;YACW,kBAAkB;IAiBhC;;OAEG;YACW,mBAAmB;YASnB,sBAAsB;YA2LtB,gBAAgB;CAmCjC"}
1
+ {"version":3,"file":"remove-import.d.ts","sourceRoot":"","sources":["../../src/javascript/remove-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAC,CAAC,EAAC,MAAM,SAAS,CAAC;AAC1B,OAAO,EAAC,EAAE,EAAC,MAAM,QAAQ,CAAC;AAI1B;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,QAOjG;AAUD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAOzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IAPpC;;;;;OAKG;gBACkB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,YAAA;IAIpC;;;;OAIG;YACW,oCAAoC;IAqClD;;OAEG;YACW,kBAAkB;IAejB,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;YAgE1F,aAAa;YAqIb,mBAAmB;YA+DnB,0BAA0B;YA8D1B,2BAA2B;IAoDzC,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,cAAc;IAmBtB;;OAEG;YACW,kBAAkB;IAyBhC;;OAEG;YACW,kBAAkB;IAiBhC;;OAEG;YACW,mBAAmB;YASnB,sBAAsB;YA2LtB,gBAAgB;CAmCjC"}
@@ -15,6 +15,7 @@ const visitor_1 = require("./visitor");
15
15
  const java_1 = require("../java");
16
16
  const tree_1 = require("./tree");
17
17
  const util_1 = require("../util");
18
+ const formatting_utils_1 = require("../java/formatting-utils");
18
19
  /**
19
20
  * @param visitor The visitor to add the import removal to
20
21
  * @param target Either the module name (e.g., 'fs') to remove specific members from,
@@ -102,8 +103,7 @@ class RemoveImport extends visitor_1.JavaScriptVisitor {
102
103
  yield this.collectUsedIdentifiers(compilationUnit, usedIdentifiers, usedTypes);
103
104
  // Now process imports with knowledge of what's used
104
105
  return this.produceJavaScript(compilationUnit, p, (draft) => __awaiter(this, void 0, void 0, function* () {
105
- let previousWasRemoved = false;
106
- let hasKeptStatement = false;
106
+ let removedElement = undefined;
107
107
  draft.statements = yield (0, util_1.mapAsync)(compilationUnit.statements, (stmt) => __awaiter(this, void 0, void 0, function* () {
108
108
  const statement = stmt.element;
109
109
  // Handle ES6 imports
@@ -111,12 +111,13 @@ class RemoveImport extends visitor_1.JavaScriptVisitor {
111
111
  const jsImport = statement;
112
112
  const result = yield this.processImport(jsImport, usedIdentifiers, usedTypes, p);
113
113
  if (result === undefined) {
114
- // Mark that we removed an import
115
- previousWasRemoved = true;
114
+ // Track the removed import
115
+ if (!removedElement) {
116
+ removedElement = statement;
117
+ }
116
118
  return undefined;
117
119
  }
118
- previousWasRemoved = false;
119
- hasKeptStatement = true;
120
+ removedElement = undefined;
120
121
  return Object.assign(Object.assign({}, stmt), { element: result });
121
122
  }
122
123
  // Handle CommonJS require statements
@@ -125,23 +126,22 @@ class RemoveImport extends visitor_1.JavaScriptVisitor {
125
126
  const varDecl = statement;
126
127
  const result = yield this.processRequireFromVarDecls(varDecl, usedIdentifiers, p);
127
128
  if (result === undefined) {
128
- // Mark that we removed a require
129
- previousWasRemoved = true;
129
+ // Track the removed require
130
+ if (!removedElement) {
131
+ removedElement = statement;
132
+ }
130
133
  return undefined;
131
134
  }
132
- previousWasRemoved = false;
133
- hasKeptStatement = true;
135
+ removedElement = undefined;
134
136
  return Object.assign(Object.assign({}, stmt), { element: result });
135
137
  }
136
138
  // If the previous statement was removed, adjust this statement's prefix
137
- if (previousWasRemoved && statement) {
138
- previousWasRemoved = false;
139
- const updatedStatement = this.adjustPrefixAfterRemoval(statement, hasKeptStatement);
140
- hasKeptStatement = true;
139
+ if (removedElement && statement) {
140
+ const updatedStatement = (0, formatting_utils_1.applyRemovedElementPrefix)(removedElement, statement);
141
+ removedElement = undefined;
141
142
  return Object.assign(Object.assign({}, stmt), { element: updatedStatement });
142
143
  }
143
- previousWasRemoved = false;
144
- hasKeptStatement = true;
144
+ removedElement = undefined;
145
145
  return stmt;
146
146
  }));
147
147
  // Filter out undefined (removed) statements
@@ -150,42 +150,6 @@ class RemoveImport extends visitor_1.JavaScriptVisitor {
150
150
  }));
151
151
  });
152
152
  }
153
- /**
154
- * Adjusts the prefix of a statement that follows a removed import/require.
155
- * Removes the import's line while preserving comments that belong to subsequent lines.
156
- *
157
- * If the prefix whitespace doesn't contain a newline, the first comment was inline
158
- * on the removed import line - we remove that comment and one line terminator from its suffix.
159
- *
160
- * @param statement The statement following the removed import
161
- * @param hasKeptPreviousStatement Whether there's a previous statement that wasn't removed
162
- */
163
- adjustPrefixAfterRemoval(statement, hasKeptPreviousStatement) {
164
- const prefix = statement.prefix;
165
- if (!prefix) {
166
- return statement;
167
- }
168
- let whitespace = prefix.whitespace || '';
169
- let comments = prefix.comments || [];
170
- // If the whitespace before the first comment doesn't contain a line terminator,
171
- // the first comment was inline on the same line as the removed import
172
- if (!/[\r\n]/.test(whitespace) && comments.length > 0) {
173
- // Remove the first comment (which was inline with the import)
174
- comments = comments.slice(1);
175
- // Clear the whitespace (it was just spacing before the inline comment)
176
- whitespace = '';
177
- }
178
- else if (!hasKeptPreviousStatement) {
179
- // At the beginning of file - remove all leading newlines
180
- // (The removed import was the first statement, so we don't want leading blank lines)
181
- whitespace = whitespace.replace(/^[\r\n]+/, '');
182
- }
183
- // else: There's a previous kept statement and no inline comment - keep whitespace as-is
184
- // (This preserves intentional blank lines between statements)
185
- // Create a new Space with adjusted whitespace and comments
186
- const newPrefix = Object.assign(Object.assign({}, prefix), { whitespace: whitespace, comments: comments });
187
- return Object.assign(Object.assign({}, statement), { prefix: newPrefix });
188
- }
189
153
  processImport(jsImport, usedIdentifiers, usedTypes, p) {
190
154
  return __awaiter(this, void 0, void 0, function* () {
191
155
  // Check if this import is from the target module
@@ -1 +1 @@
1
- {"version":3,"file":"remove-import.js","sourceRoot":"","sources":["../../src/javascript/remove-import.ts"],"names":[],"mappings":";;;;;;;;;;;;AAYA,8CAOC;AAnBD,uCAA4C;AAC5C,kCAA0B;AAC1B,iCAA0B;AAC1B,kCAAiC;AAEjC;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,OAA+B,EAAE,MAAc,EAAE,MAAe;IAC9F,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1E,OAAO;QACX,CAAC;IACL,CAAC;IACD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9D,CAAC;AAUD,MAAa,YAAgB,SAAQ,2BAAoB;IACrD;;;;;OAKG;IACH,YAAqB,MAAc,EACd,MAAe;QAChC,KAAK,EAAE,CAAC;QAFS,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAS;IAEpC,CAAC;IAED;;;;OAIG;IACW,oCAAoC,CAC9C,QAAiC,EACjC,UAAgC,EAChC,YAAsD,EACtD,EAAK;;YAEL,MAAM,QAAQ,GAA4B,EAAE,CAAC;YAC7C,IAAI,aAAkC,CAAC;YAEvC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3C,yEAAyE;oBACzE,4DAA4D;oBAC5D,IAAI,aAAa,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACzC,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;wBACvE,QAAQ,CAAC,IAAI,iCAAK,IAAI,KAAE,OAAO,EAAE,cAAc,IAAE,CAAC;wBAClD,aAAa,GAAG,SAAS,CAAC;oBAC9B,CAAC;yBAAM,CAAC;wBACJ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACtB,gDAAgD;oBAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;wBAC1C,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;oBACxC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,0DAA0D;oBAC1D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;YACL,CAAC;YAED,OAAO;gBACH,QAAQ;gBACR,UAAU,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;aACpC,CAAC;QACN,CAAC;KAAA;IAED;;OAEG;IACW,kBAAkB,CAC5B,QAAmB,EACnB,YAA6B,EAC7B,QAA8B,EAC9B,CAAI;;YAEJ,OAAO,IAAI,CAAC,iBAAiB,CAAY,QAAQ,EAAE,CAAC,EAAE,CAAM,KAAK,EAAC,EAAE;gBAChE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACrB,KAAK,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC7C,YAAY,EAAE,CAAC,EAAE,CAAO,WAAgB,EAAE,EAAE,gDAAC,OAAA,QAAQ,CAAC,WAAW,CAAC,CAAA,GAAA,CACrE,CAAC;gBACN,CAAC;YACL,CAAC,CAAA,CAAC,CAAC;QACP,CAAC;KAAA;IAEc,sBAAsB,CAAC,eAAmC,EAAE,CAAI;;YAC3E,kDAAkD;YAClD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YAEpC,+CAA+C;YAC/C,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;YAG/E,oDAAoD;YACpD,OAAO,IAAI,CAAC,iBAAiB,CAAqB,eAAe,EAAE,CAAC,EAAE,CAAM,KAAK,EAAC,EAAE;gBAChF,IAAI,kBAAkB,GAAG,KAAK,CAAC;gBAC/B,IAAI,gBAAgB,GAAG,KAAK,CAAC;gBAE7B,KAAK,CAAC,UAAU,GAAG,MAAM,IAAA,eAAQ,EAAC,eAAe,CAAC,UAAU,EAAE,CAAO,IAAI,EAAE,EAAE;oBACzE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;oBAE/B,qBAAqB;oBACrB,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACrC,MAAM,QAAQ,GAAG,SAAsB,CAAC;wBACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;wBACjF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;4BACvB,iCAAiC;4BACjC,kBAAkB,GAAG,IAAI,CAAC;4BAC1B,OAAO,SAAS,CAAC;wBACrB,CAAC;wBACD,kBAAkB,GAAG,KAAK,CAAC;wBAC3B,gBAAgB,GAAG,IAAI,CAAC;wBACxB,uCAAW,IAAI,KAAE,OAAO,EAAE,MAAM,IAAE;oBACtC,CAAC;oBAED,qCAAqC;oBACrC,6FAA6F;oBAC7F,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAClD,MAAM,OAAO,GAAG,SAAmC,CAAC;wBACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;wBAClF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;4BACvB,iCAAiC;4BACjC,kBAAkB,GAAG,IAAI,CAAC;4BAC1B,OAAO,SAAS,CAAC;wBACrB,CAAC;wBACD,kBAAkB,GAAG,KAAK,CAAC;wBAC3B,gBAAgB,GAAG,IAAI,CAAC;wBACxB,uCAAW,IAAI,KAAE,OAAO,EAAE,MAAM,IAAE;oBACtC,CAAC;oBAED,wEAAwE;oBACxE,IAAI,kBAAkB,IAAI,SAAS,EAAE,CAAC;wBAClC,kBAAkB,GAAG,KAAK,CAAC;wBAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;wBACpF,gBAAgB,GAAG,IAAI,CAAC;wBACxB,uCAAW,IAAI,KAAE,OAAO,EAAE,gBAAgB,IAAE;oBAChD,CAAC;oBAED,kBAAkB,GAAG,KAAK,CAAC;oBAC3B,gBAAgB,GAAG,IAAI,CAAC;oBACxB,OAAO,IAAI,CAAC;gBAChB,CAAC,CAAA,CAAC,CAAC;gBAEH,4CAA4C;gBAC5C,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;gBACjE,KAAK,CAAC,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAA,CAAC,CAAC;QACP,CAAC;KAAA;IAED;;;;;;;;;OASG;IACK,wBAAwB,CAAC,SAAY,EAAE,wBAAiC;QAC5E,MAAM,MAAM,GAAI,SAAiB,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QACzC,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QAErC,gFAAgF;QAChF,sEAAsE;QACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,8DAA8D;YAC9D,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,uEAAuE;YACvE,UAAU,GAAG,EAAE,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,yDAAyD;YACzD,qFAAqF;YACrF,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,wFAAwF;QACxF,8DAA8D;QAE9D,2DAA2D;QAC3D,MAAM,SAAS,mCACR,MAAM,KACT,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,GACrB,CAAC;QAEF,OAAO,gCACA,SAAS,KACZ,MAAM,EAAE,SAAS,GACf,CAAC;IACX,CAAC;IAEa,aAAa,CACvB,QAAmB,EACnB,eAA4B,EAC5B,SAAsB,EACtB,CAAI;;YAEJ,iDAAiD;YACjD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,OAAO,QAAQ,CAAC;YACpB,CAAC;YAED,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,2CAA2C;gBAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACtB,OAAO,SAAS,CAAC,CAAC,2BAA2B;gBACjD,CAAC;gBACD,OAAO,QAAQ,CAAC;YACpB,CAAC;YAED,yBAAyB;YACzB,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;gBACpB,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC9C,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxD,MAAM,UAAU,GAAG,WAA2B,CAAC;oBAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC;oBAEnC,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;wBAC5D,0DAA0D;wBAC1D,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;4BAC9B,OAAO,SAAS,CAAC;wBACrB,CAAC;wBACD,4CAA4C;wBAC5C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;4BAC3D,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;wBAC3B,CAAC,EAAE,CAAC,CAAC,CAAC;oBACV,CAAC;gBACL,CAAC;YACL,CAAC;YAED,wBAAwB;YACxB,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;gBAEjD,uDAAuD;gBACvD,IAAI,aAAa,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC3C,MAAM,UAAU,GAAG,aAA6B,CAAC;oBACjD,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC;oBAEnC,2DAA2D;oBAC3D,2DAA2D;oBAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC5B,+DAA+D;wBAC/D,wCAAwC;wBACxC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;4BACrD,kDAAkD;4BAClD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gCACrB,OAAO,SAAS,CAAC;4BACrB,CAAC;4BACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;gCAC3D,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;4BACpC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACV,CAAC;wBACD,gEAAgE;oBACpE,CAAC;yBAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;wBACnE,yDAAyD;wBACzD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;4BACrB,OAAO,SAAS,CAAC;wBACrB,CAAC;wBACD,8CAA8C;wBAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;4BAC3D,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;wBACpC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACV,CAAC;gBACL,CAAC;qBAAM,IAAI,aAAa,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC9C,oFAAoF;oBACpF,MAAM,KAAK,GAAG,aAAyB,CAAC;oBACxC,MAAM,SAAS,GAAI,KAAK,CAAC,KAAsB,CAAC,UAAU,CAAC;oBAE3D,2DAA2D;oBAC3D,2DAA2D;oBAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC5B,+DAA+D;wBAC/D,wCAAwC;wBACxC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC/D,kDAAkD;4BAClD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gCACrB,OAAO,SAAS,CAAC;4BACrB,CAAC;4BACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;gCAC3D,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;4BACpC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACV,CAAC;wBACD,gEAAgE;oBACpE,CAAC;yBAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;wBACxE,yDAAyD;wBACzD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;4BACrB,OAAO,SAAS,CAAC;wBACrB,CAAC;wBACD,8CAA8C;wBAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;4BAC3D,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;wBACpC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACV,CAAC;gBACL,CAAC;gBAED,sDAAsD;gBACtD,IAAI,aAAa,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC9C,MAAM,YAAY,GAAG,aAAgC,CAAC;oBACtD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;oBAEnG,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;wBAC/B,iCAAiC;wBACjC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;4BACrB,qDAAqD;4BACrD,OAAO,SAAS,CAAC;wBACrB,CAAC;wBACD,+CAA+C;wBAC/C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;4BAC3D,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;wBACpC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACV,CAAC;yBAAM,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;wBACzC,kCAAkC;wBAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;4BAC3D,KAAK,CAAC,aAAa,GAAG,cAAc,CAAC;wBACzC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACV,CAAC;gBACL,CAAC;YACL,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;IAEa,mBAAmB,CAC7B,YAA6B,EAC7B,eAA4B,EAC5B,SAAsB,EACtB,CAAI;;YAEJ,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAC,GAAG,MAAM,IAAI,CAAC,oCAAoC,CAC1E,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAC9B,CAAC,IAAO,EAAE,EAAE;gBACR,IAAI,IAAI,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACxC,MAAM,SAAS,GAAG,IAA0B,CAAC;oBAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;oBACjD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;oBAEjD,kDAAkD;oBAClD,4DAA4D;oBAC5D,MAAM,WAAW,GAAG,SAAS,IAAI,UAAU,CAAC;oBAE5C,wCAAwC;oBACxC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC5B,2DAA2D;wBAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;4BAC7B,4DAA4D;4BAC5D,OAAO,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;wBAC1E,CAAC;wBACD,OAAO,IAAI,CAAC,CAAC,2CAA2C;oBAC5D,CAAC;yBAAM,CAAC;wBACJ,iDAAiD;wBACjD,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;oBAC5E,CAAC;gBACL,CAAC;gBACD,OAAO,IAAI,CAAC,CAAC,oCAAoC;YACrD,CAAC,EACD,CAAO,IAAO,EAAE,MAAe,EAAE,EAAE;gBAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACxC,OAAO,IAAI,CAAC,iBAAiB,CACzB,IAA0B,EAAE,CAAC,EAAE,CAAM,KAAK,EAAC,EAAE;wBACzC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;oBAC1B,CAAC,CAAA,CACJ,CAAC;gBACN,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAA,EACD,CAAC,CACJ,CAAC;YAEF,IAAI,UAAU,EAAE,CAAC;gBACb,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC5D,OAAO,YAAY,CAAC,CAAC,aAAa;YACtC,CAAC;YAED,sDAAsD;YACtD,OAAO,IAAI,CAAC,iBAAiB,CAAkB,YAAY,EAAE,CAAC,EAAE,CAAM,KAAK,EAAC,EAAE;gBAC1E,KAAK,CAAC,QAAQ,mCACP,YAAY,CAAC,QAAQ,KACxB,QAAQ,EAAE,QAAe,GAC5B,CAAC;YACN,CAAC,CAAA,CAAC,CAAC;QACP,CAAC;KAAA;IAEa,0BAA0B,CACpC,QAAgC,EAChC,eAA4B,EAC5B,CAAI;;;YAEJ,oCAAoC;YACpC,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,QAAQ,CAAC;YACpB,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO,QAAQ,CAAC;YACpB,CAAC;YAED,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,WAAW,0CAAE,OAAO,CAAC;YAClD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC/D,OAAO,QAAQ,CAAC;YACpB,CAAC;YAED,MAAM,SAAS,GAAG,WAAiC,CAAC;YACpD,IAAI,CAAA,MAAA,SAAS,CAAC,IAAI,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,IAAK,SAAS,CAAC,IAAqB,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC1G,OAAO,QAAQ,CAAC;YACpB,CAAC;YAED,gCAAgC;YAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,QAAQ,CAAC;YACpB,CAAC;YAED,mCAAmC;YACnC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAI,OAAwB,CAAC,UAAU,CAAC;gBACrD,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC;oBAC/D,OAAO,SAAS,CAAC,CAAC,sCAAsC;gBAC5D,CAAC;YACL,CAAC;YAED,6CAA6C;YAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7E,MAAM,aAAa,GAAG,OAAkC,CAAC;gBACzD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;gBAEjG,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,SAAS,CAAC,CAAC,wBAAwB;gBAC9C,CAAC;qBAAM,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;oBAC1C,gCAAgC;oBAChC,OAAO,IAAI,CAAC,WAAW,CAAyB,QAAQ,EAAE,CAAC,EAAE,CAAM,KAAK,EAAC,EAAE;wBACvE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAC1C,QAAQ,EAAE,CAAC,EAAE,CAAM,UAAU,EAAC,EAAE;4BAC5B,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;wBACrC,CAAC,CAAA,CACJ,CAAC;wBACF,KAAK,CAAC,SAAS,GAAG,iCAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAE,OAAO,EAAE,eAAe,IAAE,CAAC;oBAC7E,CAAC,CAAA,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;IAEa,2BAA2B,CACrC,OAAgC,EAChC,eAA4B,EAC5B,CAAI;;YAEJ,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAC,GAAG,MAAM,IAAI,CAAC,oCAAoC,CAC1E,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACzB,CAAC,IAAO,EAAE,EAAE;gBACR,IAAI,IAAI,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAyB,CAAC,CAAC;oBACnE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBACtE,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACzC,MAAM,IAAI,GAAI,IAAqB,CAAC,UAAU,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBACtE,CAAC;gBACD,OAAO,IAAI,CAAC,CAAC,2BAA2B;YAC5C,CAAC,EACD,CAAO,IAAO,EAAE,MAAe,EAAE,EAAE;gBAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC,WAAW,CACnB,IAAoB,EAAE,CAAC,EAAE,CAAM,KAAK,EAAC,EAAE;wBACnC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;oBAC1B,CAAC,CAAA,CACJ,CAAC;gBACN,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC9C,OAAO,IAAI,CAAC,iBAAiB,CACzB,IAAyB,EAAE,CAAC,EAAE,CAAM,KAAK,EAAC,EAAE;wBACxC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;oBAC1B,CAAC,CAAA,CACJ,CAAC;gBACN,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAA,EACD,CAAC,CACJ,CAAC;YAEF,IAAI,UAAU,EAAE,CAAC;gBACb,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACvD,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,OAAO,IAAI,CAAC,iBAAiB,CAA0B,OAAO,EAAE,CAAC,EAAE,CAAM,KAAK,EAAC,EAAE;gBAC7E,KAAK,CAAC,QAAQ,mCACP,OAAO,CAAC,QAAQ,KACnB,QAAQ,EAAE,QAAe,GAC5B,CAAC;YACN,CAAC,CAAA,CAAC,CAAC;QACP,CAAC;KAAA;IAEO,aAAa,CAAC,SAA6B;QAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC;QACjC,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,+CAA+C;YAC/C,iCAAiC;YACjC,MAAM,KAAK,GAAG,IAAgB,CAAC;YAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;YAChD,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3C,OAAQ,YAA6B,CAAC,UAAU,CAAC;YACrD,CAAC;QACL,CAAC;aAAM,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1C,wCAAwC;YACxC,OAAQ,IAAqB,CAAC,UAAU,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,cAAc,CAAC,SAA6B;;QAChD,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC;QACjC,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,+CAA+C;YAC/C,8BAA8B;YAC9B,MAAM,KAAK,GAAG,IAAgB,CAAC;YAC/B,IAAI,CAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1C,OAAQ,KAAK,CAAC,KAAsB,CAAC,UAAU,CAAC;YACpD,CAAC;QACL,CAAC;QACD,+BAA+B;QAC/B,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,qBAAqB,CAAC,cAAiC;QAC3D,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;QACjC,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,OAAQ,IAAqB,CAAC,UAAU,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,kBAAkB,CACtB,IAAY,EACZ,eAA4B,EAC5B,SAAsB;QAEtB,yEAAyE;QACzE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5B,+DAA+D;YAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,yEAAyE;YACzE,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,qBAAqB;QACrB,OAAO,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEO,cAAc,CAAC,QAAmB;;QACtC,2EAA2E;QAC3E,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,eAAe,GAAG,MAAA,QAAQ,CAAC,eAAe,0CAAE,OAAO,CAAC;YAC1D,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9D,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,OAAO,GAAG,eAA4B,CAAC;YAC7C,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,KAAK,0CAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAEnE,wBAAwB;YACxB,OAAO,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC;QACtC,CAAC;QAED,sEAAsE;QACtE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACW,kBAAkB,CAC5B,MAAW,EACX,eAA4B,EAC5B,SAAsB;;YAEtB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO;YAElD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBACrE,CAAC;YACL,CAAC;iBAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACzB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC9B,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;wBACZ,MAAM,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;oBAC7E,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBAChC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;oBAC5B,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBACxE,CAAC;YACL,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACW,kBAAkB,CAC5B,UAAe,EACf,eAA4B,EAC5B,SAAsB;;YAEtB,IAAI,CAAC,UAAU;gBAAE,OAAO;YAExB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;oBACrC,IAAI,OAAO,EAAE,CAAC;wBACV,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;oBAC3E,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACW,mBAAmB,CAC7B,IAAS,EACT,SAAsB;;YAEtB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YAChE,CAAC;QACL,CAAC;KAAA;IAEa,sBAAsB,CAChC,IAAO,EACP,eAA4B,EAC5B,SAAsB;;YAEtB,2DAA2D;YAC3D,yEAAyE;YACzE,6CAA6C;;YAE7C,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,IAAoB,CAAC;gBACxC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,IAA0B,CAAC;gBAE7C,gEAAgE;gBAChE,IAAI,CAAA,MAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,OAAO,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzD,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,OAAwB,CAAC;oBAC9D,IAAI,CAAA,MAAA,WAAW,CAAC,MAAM,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBACjD,eAAe,CAAC,GAAG,CAAE,WAAW,CAAC,MAAuB,CAAC,UAAU,CAAC,CAAC;oBACzE,CAAC;gBACL,CAAC;qBAAM,IAAI,CAAA,MAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,OAAO,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC/D,iEAAiE;oBACjE,eAAe,CAAC,GAAG,CAAE,SAAS,CAAC,MAAM,CAAC,OAAwB,CAAC,UAAU,CAAC,CAAC;gBAC/E,CAAC;qBAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC3B,gEAAgE;oBAChE,uEAAuE;oBACvE,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBAC9D,eAAe,CAAC,GAAG,CAAE,SAAS,CAAC,IAAqB,CAAC,UAAU,CAAC,CAAC;oBACrE,CAAC;gBACL,CAAC;gBACD,iFAAiF;gBACjF,0EAA0E;gBAC1E,8BAA8B;gBAC9B,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;oBACtB,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;wBAC7C,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;4BACd,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;wBAC/E,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,wCAAwC;gBACxC,IAAI,MAAA,SAAS,CAAC,MAAM,0CAAE,OAAO,EAAE,CAAC;oBAC5B,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBAC5F,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,IAAyB,CAAC;gBAC5C,IAAI,SAAS,CAAC,UAAU,IAAI,CAAA,MAAA,SAAS,CAAC,UAAU,CAAC,OAAO,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnF,eAAe,CAAC,GAAG,CAAE,SAAS,CAAC,UAAU,CAAC,OAAwB,CAAC,UAAU,CAAC,CAAC;gBACnF,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1C,2CAA2C;gBAC3C,MAAM,WAAW,GAAG,IAAqB,CAAC;gBAC1C,IAAI,CAAA,MAAA,WAAW,CAAC,MAAM,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjD,eAAe,CAAC,GAAG,CAAE,WAAW,CAAC,MAAuB,CAAC,UAAU,CAAC,CAAC;gBACzE,CAAC;gBACD,+BAA+B;gBAC/B,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBACtF,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/C,MAAM,EAAE,GAAG,IAA0B,CAAC;gBACtC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;oBAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACvD,6CAA6C;wBAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;4BACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAiC,CAAC;4BACxD,yCAAyC;4BACzC,IAAI,SAAS,GAAG,KAAK,CAAC;4BACtB,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gCACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC;gCAC3B,IAAI,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,0CAAE,OAAO,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oCACnE,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,OAA6B,CAAC;oCACrE,IAAI,CAAA,MAAA,SAAS,CAAC,IAAI,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU;wCACzC,SAAS,CAAC,IAAqB,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;wCAC5D,SAAS,GAAG,IAAI,CAAC;wCACjB,MAAM;oCACV,CAAC;gCACL,CAAC;4BACL,CAAC;4BACD,IAAI,CAAC,SAAS,EAAE,CAAC;gCACb,4CAA4C;gCAC5C,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;4BAChF,CAAC;wBACL,CAAC;6BAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;4BAClE,4DAA4D;4BAC5D,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;wBAChF,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACrC,2BAA2B;gBAC3B,MAAM,UAAU,GAAG,IAAgB,CAAC;gBACpC,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;oBACxB,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBACzF,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,IAAe,CAAC;gBAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBAClC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACf,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;oBAChF,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,IAA2B,CAAC;gBAC3C,kCAAkC;gBAClC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;wBAC7C,2DAA2D;wBAC3D,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;4BAChB,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;wBACjF,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,aAAa;gBACb,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBAC/E,CAAC;YACL,CAAC;iBAAM,IAAK,IAAY,CAAC,cAAc,EAAE,CAAC;gBACtC,mEAAmE;gBACnE,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAChD,kCAAkC;gBAClC,IAAK,IAAY,CAAC,IAAI,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,sBAAsB,CAAE,IAAY,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBACtF,CAAC;gBACD,IAAK,IAAY,CAAC,WAAW,EAAE,CAAC;oBAC5B,MAAM,IAAI,CAAC,sBAAsB,CAAE,IAAY,CAAC,WAAW,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBAC7F,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5E,qCAAqC;gBACrC,MAAM,IAAI,GAAG,IAAW,CAAC;gBACzB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBAC/E,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBAC7E,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAAgB,CAAC;gBAChC,IAAI,MAAA,MAAM,CAAC,UAAU,0CAAE,UAAU,EAAE,CAAC;oBAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;wBAC/C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;4BAChB,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;wBACjF,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBAC/E,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACnD,MAAM,QAAQ,GAAG,IAA8B,CAAC;gBAChD,+DAA+D;gBAC/D,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACpD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;oBACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC3B,IAAI,QAAQ,EAAE,CAAC;wBACX,wCAAwC;wBACxC,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;wBACpD,0BAA0B;wBAC1B,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;4BAChB,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;wBACjF,CAAC;wBACD,wBAAwB;wBACxB,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;4BACvD,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;wBAChG,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAK,IAAY,CAAC,UAAU,EAAE,CAAC;gBAClC,4CAA4C;gBAC5C,MAAM,IAAI,CAAC,kBAAkB,CAAE,IAAY,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;YACxF,CAAC;iBAAM,IAAK,IAAY,CAAC,IAAI,EAAE,CAAC;gBAC5B,sCAAsC;gBACtC,MAAM,IAAI,CAAC,sBAAsB,CAAE,IAAY,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;YACtF,CAAC;iBAAM,IAAK,IAAY,CAAC,UAAU,EAAE,CAAC;gBAClC,6DAA6D;gBAC7D,MAAM,IAAI,CAAC,kBAAkB,CAAE,IAAY,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBACpF,sCAAsC;gBACtC,IAAK,IAAY,CAAC,IAAI,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,sBAAsB,CAAE,IAAY,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBACtF,CAAC;YACL,CAAC;QACL,CAAC;KAAA;IAEa,gBAAgB,CAAC,QAAW,EAAE,SAAsB;;YAC9D,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtC,SAAS,CAAC,GAAG,CAAE,QAAyB,CAAC,UAAU,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACpD,MAAM,SAAS,GAAG,QAA+B,CAAC;gBAClD,wEAAwE;gBACxE,yDAAyD;gBACzD,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;oBAC3B,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;wBACxD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;4BACpB,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;wBAC9D,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACtD,yDAAyD;gBACzD,MAAM,QAAQ,GAAG,QAAiC,CAAC;gBACnD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;oBACtB,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAChE,CAAC;YACL,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5C,kDAAkD;gBAClD,MAAM,QAAQ,GAAG,QAAuB,CAAC;gBACzC,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;oBAC1B,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;gBACpE,CAAC;YACL,CAAC;iBAAM,IAAK,QAAgB,CAAC,UAAU,EAAE,CAAC;gBACtC,qDAAqD;gBACrD,MAAM,IAAI,CAAC,gBAAgB,CAAE,QAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAK,QAAgB,CAAC,cAAc,EAAE,CAAC;gBAC1C,yDAAyD;gBACzD,MAAM,IAAI,CAAC,gBAAgB,CAAE,QAAgB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YAC7E,CAAC;YACD,8CAA8C;QAClD,CAAC;KAAA;CACJ;AAx1BD,oCAw1BC"}
1
+ {"version":3,"file":"remove-import.js","sourceRoot":"","sources":["../../src/javascript/remove-import.ts"],"names":[],"mappings":"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"}
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- 8.65.0-20251023-064916
1
+ 8.65.0-20251023-115326
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.65.0-20251023-070052",
3
+ "version": "8.65.0-20251023-122431",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
package/src/index.ts CHANGED
@@ -36,9 +36,10 @@ export * from "./run";
36
36
  // register all recipes in this package
37
37
  export async function activate(registry: RecipeRegistry): Promise<void> {
38
38
  const {OrderImports} = await import("./recipe/index.js");
39
- const {ModernizeOctalLiterals} = await import("./javascript/migrate/es6/index.js");
39
+ const {ModernizeOctalLiterals, RemoveDuplicateObjectKeys} = await import("./javascript/migrate/es6/index.js");
40
40
  registry.register(OrderImports);
41
41
  registry.register(ModernizeOctalLiterals);
42
+ registry.register(RemoveDuplicateObjectKeys);
42
43
  }
43
44
 
44
45
  RpcCodecs.registerCodec(MarkersKind.ParseExceptionResult, {
@@ -0,0 +1,84 @@
1
+ /*
2
+ * Copyright 2025 the original author or authors.
3
+ * <p>
4
+ * Licensed under the Moderne Source Available License (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ * <p>
8
+ * https://docs.moderne.io/licensing/moderne-source-available-license
9
+ * <p>
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {J} from "../java";
18
+ import {produce} from "immer";
19
+
20
+ /**
21
+ * Applies the prefix from a removed element to the next element.
22
+ *
23
+ * This is used when removing elements from a list to preserve formatting:
24
+ * - If the next element has no comments (or only an inline trailing comment to remove),
25
+ * uses the removed element's prefix whitespace
26
+ * - If the next element has comments to preserve, keeps the next element's whitespace
27
+ * to maintain proper spacing (e.g., blank lines before comments)
28
+ * - Removes inline line comments (//...) that were on the removed element's line
29
+ *
30
+ * @param removedElement The element that was removed
31
+ * @param nextElement The element that follows the removed one
32
+ * @returns The next element with adjusted prefix, or the original if no changes needed
33
+ */
34
+ export function applyRemovedElementPrefix<T extends J>(removedElement: J, nextElement: T): T {
35
+ if (!removedElement.prefix || !nextElement.prefix) {
36
+ return nextElement;
37
+ }
38
+
39
+ const removedPrefix = removedElement.prefix;
40
+ const currentPrefix = nextElement.prefix;
41
+ const currentComments = currentPrefix.comments || [];
42
+
43
+ // If the next element has no comments, just use the removed element's prefix entirely
44
+ if (currentComments.length === 0) {
45
+ if (currentPrefix === removedPrefix) {
46
+ return nextElement;
47
+ }
48
+ return produce(nextElement, draft => {
49
+ draft.prefix = removedPrefix;
50
+ });
51
+ }
52
+
53
+ // The next element has comments - check if we need to remove inline line comments
54
+ const currentWhitespace = currentPrefix.whitespace || '';
55
+ const hasLeadingNewline = /[\r\n]/.test(currentWhitespace);
56
+
57
+ let commentsToKeep = currentComments;
58
+ if (!hasLeadingNewline && currentComments.length > 0) {
59
+ // First comment has no leading newline - check if it's an inline line comment
60
+ const firstComment: any = currentComments[0];
61
+ const commentText = firstComment.text || firstComment.message || '';
62
+ const isLineComment = commentText.includes('//') || firstComment.multiline === false;
63
+
64
+ if (isLineComment) {
65
+ // Remove the inline line comment
66
+ commentsToKeep = currentComments.slice(1);
67
+ }
68
+ }
69
+
70
+ // If we still have comments after filtering, use removed element's whitespace with filtered comments
71
+ if (commentsToKeep.length > 0) {
72
+ return produce(nextElement, draft => {
73
+ draft.prefix = {
74
+ ...removedPrefix,
75
+ comments: commentsToKeep
76
+ };
77
+ });
78
+ }
79
+
80
+ // No comments left after filtering, use removed element's prefix entirely
81
+ return produce(nextElement, draft => {
82
+ draft.prefix = removedPrefix;
83
+ });
84
+ }
@@ -15,3 +15,4 @@
15
15
  */
16
16
 
17
17
  export {ModernizeOctalLiterals} from "./modernize-octal-literals";
18
+ export {RemoveDuplicateObjectKeys} from "./remove-duplicate-object-keys";
@@ -29,7 +29,7 @@ export class ModernizeOctalLiterals extends Recipe {
29
29
  async editor(): Promise<TreeVisitor<any, ExecutionContext>> {
30
30
  return new class extends JavaScriptVisitor<ExecutionContext> {
31
31
 
32
- protected async visitLiteral(literal: J.Literal, p: ExecutionContext): Promise<J | undefined> {
32
+ protected async visitLiteral(literal: J.Literal, _ctx: ExecutionContext): Promise<J | undefined> {
33
33
  // Only process numeric literals
34
34
  if (typeof literal.value !== 'number') {
35
35
  return literal;
@@ -0,0 +1,137 @@
1
+ /*
2
+ * Copyright 2025 the original author or authors.
3
+ * <p>
4
+ * Licensed under the Moderne Source Available License (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ * <p>
8
+ * https://docs.moderne.io/licensing/moderne-source-available-license
9
+ * <p>
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {Recipe} from "../../../recipe";
18
+ import {TreeVisitor} from "../../../visitor";
19
+ import {ExecutionContext} from "../../../execution";
20
+ import {JavaScriptVisitor} from "../../visitor";
21
+ import {J} from "../../../java";
22
+ import {JS} from "../../tree";
23
+ import {produce} from "immer";
24
+ import {applyRemovedElementPrefix} from "../../../java/formatting-utils";
25
+
26
+ export class RemoveDuplicateObjectKeys extends Recipe {
27
+ name = "org.openrewrite.javascript.migrate.es6.remove-duplicate-object-keys";
28
+ displayName = "Remove duplicate object keys";
29
+ description = "Remove duplicate keys in object literals, keeping only the last occurrence (last-wins semantics).";
30
+
31
+ async editor(): Promise<TreeVisitor<any, ExecutionContext>> {
32
+ return new class extends JavaScriptVisitor<ExecutionContext> {
33
+
34
+ protected async visitNewClass(newClass: J.NewClass, ctx: ExecutionContext): Promise<J | undefined> {
35
+ newClass = await super.visitNewClass(newClass, ctx) as J.NewClass;
36
+
37
+ // Only process object literals (NewClass with body but no class or arguments)
38
+ if (!newClass.body || newClass.class || (newClass.arguments?.elements && newClass.arguments.elements.length > 0)) {
39
+ return newClass;
40
+ }
41
+
42
+ const statements = newClass.body.statements;
43
+ if (!statements || statements.length === 0) {
44
+ return newClass;
45
+ }
46
+
47
+ // Build a map of property names to their last occurrence index
48
+ const propertyNameToLastIndex = new Map<string, number>();
49
+ const propertyNames: (string | null)[] = [];
50
+
51
+ for (let i = 0; i < statements.length; i++) {
52
+ const stmt = statements[i];
53
+ if (stmt.element.kind === JS.Kind.PropertyAssignment) {
54
+ const prop = stmt.element as JS.PropertyAssignment;
55
+ const propName = this.getPropertyName(prop);
56
+ propertyNames.push(propName);
57
+
58
+ if (propName !== null) {
59
+ propertyNameToLastIndex.set(propName, i);
60
+ }
61
+ } else {
62
+ propertyNames.push(null);
63
+ }
64
+ }
65
+
66
+ // Check if there are any duplicates to remove
67
+ const indicesToRemove = new Set<number>();
68
+ for (let i = 0; i < propertyNames.length; i++) {
69
+ const propName = propertyNames[i];
70
+ if (propName !== null) {
71
+ const lastIndex = propertyNameToLastIndex.get(propName)!;
72
+ if (i < lastIndex) {
73
+ indicesToRemove.add(i);
74
+ }
75
+ }
76
+ }
77
+
78
+ if (indicesToRemove.size === 0) {
79
+ return newClass;
80
+ }
81
+
82
+ // Remove duplicate properties and adjust prefixes
83
+ return produce(newClass, draft => {
84
+ const filteredStatements: typeof statements = [];
85
+ let removedElement: J | undefined = undefined;
86
+
87
+ for (let i = 0; i < statements.length; i++) {
88
+ if (indicesToRemove.has(i)) {
89
+ // Track the first removed element
90
+ if (!removedElement && statements[i].element) {
91
+ removedElement = statements[i].element;
92
+ }
93
+ continue;
94
+ }
95
+
96
+ const stmt = statements[i];
97
+
98
+ // If we removed previous elements, apply the removed element's prefix to this one
99
+ if (removedElement) {
100
+ const adjustedElement = applyRemovedElementPrefix(removedElement, stmt.element);
101
+ filteredStatements.push({
102
+ ...stmt,
103
+ element: adjustedElement
104
+ });
105
+ removedElement = undefined;
106
+ } else {
107
+ filteredStatements.push(stmt);
108
+ }
109
+ }
110
+
111
+ draft.body!.statements = filteredStatements;
112
+ });
113
+ }
114
+
115
+ private getPropertyName(prop: JS.PropertyAssignment): string | null {
116
+ const name = prop.name.element;
117
+
118
+ // Handle identifier: { foo: 1 }
119
+ if (name.kind === J.Kind.Identifier) {
120
+ return (name as J.Identifier).simpleName;
121
+ }
122
+
123
+ // Handle string literal: { "foo": 1 }
124
+ if (name.kind === J.Kind.Literal) {
125
+ const literal = name as J.Literal;
126
+ if (typeof literal.value === 'string') {
127
+ return literal.value;
128
+ }
129
+ }
130
+
131
+ // For computed properties { [expr]: 1 }, we can't statically determine the name
132
+ // So we return null and don't consider them for deduplication
133
+ return null;
134
+ }
135
+ }
136
+ }
137
+ }
@@ -355,7 +355,7 @@ export function checkSyntaxErrors(program: ts.Program, sourceFile: ts.SourceFile
355
355
  // checking Parsing and Syntax Errors
356
356
  let syntaxErrors : [errorMsg: string, errorCode: number][] = [];
357
357
  if (diagnostics.length > 0) {
358
- const errors = diagnostics.filter(d => (d.category === ts.DiagnosticCategory.Error) && isCriticalDiagnostic(d.code));
358
+ const errors = diagnostics.filter(d => (d.category === ts.DiagnosticCategory.Error) && isCriticalDiagnostic(d.code, sourceFile));
359
359
  if (errors.length > 0) {
360
360
  syntaxErrors = errors.map(e => {
361
361
  let errorMsg;
@@ -385,10 +385,9 @@ const additionalCriticalCodes = new Set([
385
385
  const excludedCodes = new Set([
386
386
  1039, // Initializers are not allowed in ambient contexts.
387
387
  1064, // The return type of an async function or method must be the global Promise<T> type. Did you mean to write 'Promise<{0}>'?
388
- 1101, // 'with' statements are not allowed in strict mode.
389
388
  1107, // Jump target cannot cross function boundary.
390
389
  1111, // Private field '{0}' must be declared in an enclosing class.
391
- 1121, // Octal literals are not allowed. Use the syntax '{0}'.
390
+ 1117, // An object literal cannot have multiple properties with the same name.
392
391
  1155, // '{0}' declarations must be initialized.
393
392
  1166, // A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.
394
393
  1170, // A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.
@@ -424,7 +423,25 @@ const excludedCodes = new Set([
424
423
  1432, // Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.
425
424
  ]);
426
425
 
427
- function isCriticalDiagnostic(code: number): boolean {
426
+ // Errors to exclude only for JavaScript files (.js, .jsx, .mjs, .cjs)
427
+ // TypeScript files (.ts, .tsx, .mts, .cts) should still report these as errors
428
+ const jsOnlyExcludedCodes = new Set([
429
+ 1101, // 'with' statements are not allowed in strict mode.
430
+ 1121, // Octal literals are not allowed. Use the syntax '{0}'.
431
+ 1125, // Hexadecimal digit expected.
432
+ ]);
433
+
434
+ function isCriticalDiagnostic(code: number, sourceFile: ts.SourceFile): boolean {
435
+ // Check if this error should be excluded for JavaScript files
436
+ if (jsOnlyExcludedCodes.has(code)) {
437
+ const fileName = sourceFile.fileName.toLowerCase();
438
+ const isJavaScript = fileName.endsWith('.js') || fileName.endsWith('.jsx') ||
439
+ fileName.endsWith('.mjs') || fileName.endsWith('.cjs');
440
+ if (isJavaScript) {
441
+ return false; // Not critical for JS files
442
+ }
443
+ }
444
+
428
445
  return (code > 1000 && code < 2000 && !excludedCodes.has(code)) || additionalCriticalCodes.has(code);
429
446
  }
430
447
 
@@ -2,6 +2,7 @@ import {JavaScriptVisitor} from "./visitor";
2
2
  import {J} from "../java";
3
3
  import {JS} from "./tree";
4
4
  import {mapAsync} from "../util";
5
+ import {applyRemovedElementPrefix} from "../java/formatting-utils";
5
6
 
6
7
  /**
7
8
  * @param visitor The visitor to add the import removal to
@@ -110,8 +111,7 @@ export class RemoveImport<P> extends JavaScriptVisitor<P> {
110
111
 
111
112
  // Now process imports with knowledge of what's used
112
113
  return this.produceJavaScript<JS.CompilationUnit>(compilationUnit, p, async draft => {
113
- let previousWasRemoved = false;
114
- let hasKeptStatement = false;
114
+ let removedElement: J | undefined = undefined;
115
115
 
116
116
  draft.statements = await mapAsync(compilationUnit.statements, async (stmt) => {
117
117
  const statement = stmt.element;
@@ -121,12 +121,13 @@ export class RemoveImport<P> extends JavaScriptVisitor<P> {
121
121
  const jsImport = statement as JS.Import;
122
122
  const result = await this.processImport(jsImport, usedIdentifiers, usedTypes, p);
123
123
  if (result === undefined) {
124
- // Mark that we removed an import
125
- previousWasRemoved = true;
124
+ // Track the removed import
125
+ if (!removedElement) {
126
+ removedElement = statement;
127
+ }
126
128
  return undefined;
127
129
  }
128
- previousWasRemoved = false;
129
- hasKeptStatement = true;
130
+ removedElement = undefined;
130
131
  return {...stmt, element: result};
131
132
  }
132
133
 
@@ -136,25 +137,24 @@ export class RemoveImport<P> extends JavaScriptVisitor<P> {
136
137
  const varDecl = statement as J.VariableDeclarations;
137
138
  const result = await this.processRequireFromVarDecls(varDecl, usedIdentifiers, p);
138
139
  if (result === undefined) {
139
- // Mark that we removed a require
140
- previousWasRemoved = true;
140
+ // Track the removed require
141
+ if (!removedElement) {
142
+ removedElement = statement;
143
+ }
141
144
  return undefined;
142
145
  }
143
- previousWasRemoved = false;
144
- hasKeptStatement = true;
146
+ removedElement = undefined;
145
147
  return {...stmt, element: result};
146
148
  }
147
149
 
148
150
  // If the previous statement was removed, adjust this statement's prefix
149
- if (previousWasRemoved && statement) {
150
- previousWasRemoved = false;
151
- const updatedStatement = this.adjustPrefixAfterRemoval(statement, hasKeptStatement);
152
- hasKeptStatement = true;
151
+ if (removedElement && statement) {
152
+ const updatedStatement = applyRemovedElementPrefix(removedElement, statement);
153
+ removedElement = undefined;
153
154
  return {...stmt, element: updatedStatement};
154
155
  }
155
156
 
156
- previousWasRemoved = false;
157
- hasKeptStatement = true;
157
+ removedElement = undefined;
158
158
  return stmt;
159
159
  });
160
160
 
@@ -164,53 +164,6 @@ export class RemoveImport<P> extends JavaScriptVisitor<P> {
164
164
  });
165
165
  }
166
166
 
167
- /**
168
- * Adjusts the prefix of a statement that follows a removed import/require.
169
- * Removes the import's line while preserving comments that belong to subsequent lines.
170
- *
171
- * If the prefix whitespace doesn't contain a newline, the first comment was inline
172
- * on the removed import line - we remove that comment and one line terminator from its suffix.
173
- *
174
- * @param statement The statement following the removed import
175
- * @param hasKeptPreviousStatement Whether there's a previous statement that wasn't removed
176
- */
177
- private adjustPrefixAfterRemoval(statement: J, hasKeptPreviousStatement: boolean): J {
178
- const prefix = (statement as any).prefix;
179
- if (!prefix) {
180
- return statement;
181
- }
182
-
183
- let whitespace = prefix.whitespace || '';
184
- let comments = prefix.comments || [];
185
-
186
- // If the whitespace before the first comment doesn't contain a line terminator,
187
- // the first comment was inline on the same line as the removed import
188
- if (!/[\r\n]/.test(whitespace) && comments.length > 0) {
189
- // Remove the first comment (which was inline with the import)
190
- comments = comments.slice(1);
191
- // Clear the whitespace (it was just spacing before the inline comment)
192
- whitespace = '';
193
- } else if (!hasKeptPreviousStatement) {
194
- // At the beginning of file - remove all leading newlines
195
- // (The removed import was the first statement, so we don't want leading blank lines)
196
- whitespace = whitespace.replace(/^[\r\n]+/, '');
197
- }
198
- // else: There's a previous kept statement and no inline comment - keep whitespace as-is
199
- // (This preserves intentional blank lines between statements)
200
-
201
- // Create a new Space with adjusted whitespace and comments
202
- const newPrefix = {
203
- ...prefix,
204
- whitespace: whitespace,
205
- comments: comments
206
- };
207
-
208
- return {
209
- ...statement,
210
- prefix: newPrefix
211
- } as J;
212
- }
213
-
214
167
  private async processImport(
215
168
  jsImport: JS.Import,
216
169
  usedIdentifiers: Set<string>,