@openrewrite/rewrite 8.69.0-20251207-184829 → 8.69.0-20251207-214914

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 (44) hide show
  1. package/dist/cli/cli-utils.d.ts.map +1 -1
  2. package/dist/cli/cli-utils.js +3 -2
  3. package/dist/cli/cli-utils.js.map +1 -1
  4. package/dist/cli/rewrite.js +2 -1
  5. package/dist/cli/rewrite.js.map +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/javascript/parser.d.ts.map +1 -1
  9. package/dist/javascript/parser.js +48 -8
  10. package/dist/javascript/parser.js.map +1 -1
  11. package/dist/javascript/recipes/change-import.d.ts +51 -0
  12. package/dist/javascript/recipes/change-import.d.ts.map +1 -0
  13. package/dist/javascript/recipes/change-import.js +658 -0
  14. package/dist/javascript/recipes/change-import.js.map +1 -0
  15. package/dist/javascript/recipes/index.d.ts +2 -0
  16. package/dist/javascript/recipes/index.d.ts.map +1 -1
  17. package/dist/javascript/recipes/index.js +2 -0
  18. package/dist/javascript/recipes/index.js.map +1 -1
  19. package/dist/javascript/recipes/order-imports.d.ts +10 -0
  20. package/dist/javascript/recipes/order-imports.d.ts.map +1 -0
  21. package/dist/javascript/recipes/order-imports.js +240 -0
  22. package/dist/javascript/recipes/order-imports.js.map +1 -0
  23. package/dist/json/parser.js +78 -30
  24. package/dist/json/parser.js.map +1 -1
  25. package/dist/version.txt +1 -1
  26. package/package.json +1 -1
  27. package/src/cli/cli-utils.ts +3 -2
  28. package/src/cli/rewrite.ts +2 -1
  29. package/src/index.ts +2 -2
  30. package/src/javascript/parser.ts +49 -8
  31. package/src/javascript/recipes/change-import.ts +700 -0
  32. package/src/javascript/recipes/index.ts +2 -0
  33. package/src/javascript/recipes/order-imports.ts +242 -0
  34. package/src/json/parser.ts +69 -24
  35. package/dist/recipe/index.d.ts +0 -2
  36. package/dist/recipe/index.d.ts.map +0 -1
  37. package/dist/recipe/index.js +0 -21
  38. package/dist/recipe/index.js.map +0 -1
  39. package/dist/recipe/order-imports.d.ts +0 -10
  40. package/dist/recipe/order-imports.d.ts.map +0 -1
  41. package/dist/recipe/order-imports.js +0 -213
  42. package/dist/recipe/order-imports.js.map +0 -1
  43. package/src/recipe/index.ts +0 -17
  44. package/src/recipe/order-imports.ts +0 -195
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-import.js","sourceRoot":"","sources":["../../../src/javascript/recipes/change-import.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  export * from "./async-callback-in-sync-array-method";
2
2
  export * from "./upgrade-dependency-version";
3
+ export * from "./order-imports";
4
+ export * from "./change-import";
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/javascript/recipes/index.ts"],"names":[],"mappings":"AAgBA,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/javascript/recipes/index.ts"],"names":[],"mappings":"AAgBA,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
@@ -31,4 +31,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
32
  __exportStar(require("./async-callback-in-sync-array-method"), exports);
33
33
  __exportStar(require("./upgrade-dependency-version"), exports);
34
+ __exportStar(require("./order-imports"), exports);
35
+ __exportStar(require("./change-import"), exports);
34
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/javascript/recipes/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,wEAAsD;AACtD,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/javascript/recipes/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,wEAAsD;AACtD,+DAA6C;AAC7C,kDAAgC;AAChC,kDAAgC"}
@@ -0,0 +1,10 @@
1
+ import { Recipe } from "../../recipe";
2
+ import { TreeVisitor } from "../../visitor";
3
+ import { ExecutionContext } from "../../execution";
4
+ export declare class OrderImports extends Recipe {
5
+ readonly name = "org.openrewrite.javascript.cleanup.order-imports";
6
+ readonly displayName = "Order imports";
7
+ readonly description = "Sort imports by category and module path. Categories: side-effect, namespace, default, named, type. Within each category, imports are sorted alphabetically by module path. Named specifiers within each import are also sorted alphabetically.";
8
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
9
+ }
10
+ //# sourceMappingURL=order-imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-imports.d.ts","sourceRoot":"","sources":["../../../src/javascript/recipes/order-imports.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAe,WAAW,EAAC,MAAM,eAAe,CAAC;AACxD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAsBjD,qBAAa,YAAa,SAAQ,MAAM;IACpC,QAAQ,CAAC,IAAI,sDAAsD;IACnE,QAAQ,CAAC,WAAW,mBAAmB;IACvC,QAAQ,CAAC,WAAW,qPAAqP;IAGnQ,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAmM9D"}
@@ -0,0 +1,240 @@
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.OrderImports = void 0;
28
+ const recipe_1 = require("../../recipe");
29
+ const visitor_1 = require("../../visitor");
30
+ const index_1 = require("../index");
31
+ const java_1 = require("../../java");
32
+ const immer_1 = require("immer");
33
+ const style_1 = require("../style");
34
+ /**
35
+ * Import type categories for sorting order:
36
+ * 1. Side-effect imports (no specifier): import 'module';
37
+ * 2. Namespace imports: import * as foo from 'module';
38
+ * 3. Default imports: import foo from 'module';
39
+ * 4. Named imports: import { foo } from 'module';
40
+ * 5. Type imports: import type { Foo } from 'module';
41
+ */
42
+ var ImportCategory;
43
+ (function (ImportCategory) {
44
+ ImportCategory[ImportCategory["SideEffect"] = 0] = "SideEffect";
45
+ ImportCategory[ImportCategory["Namespace"] = 1] = "Namespace";
46
+ ImportCategory[ImportCategory["Default"] = 2] = "Default";
47
+ ImportCategory[ImportCategory["Named"] = 3] = "Named";
48
+ ImportCategory[ImportCategory["Type"] = 4] = "Type";
49
+ })(ImportCategory || (ImportCategory = {}));
50
+ class OrderImports extends recipe_1.Recipe {
51
+ constructor() {
52
+ super(...arguments);
53
+ this.name = "org.openrewrite.javascript.cleanup.order-imports";
54
+ this.displayName = "Order imports";
55
+ this.description = "Sort imports by category and module path. Categories: side-effect, namespace, default, named, type. Within each category, imports are sorted alphabetically by module path. Named specifiers within each import are also sorted alphabetically.";
56
+ }
57
+ editor() {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ return new class extends index_1.JavaScriptVisitor {
60
+ visitJsCompilationUnit(cu, p) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ var _a;
63
+ const importCount = this.countImports(cu);
64
+ if (importCount === 0) {
65
+ return cu;
66
+ }
67
+ const imports = cu.statements.slice(0, importCount);
68
+ const originalImportPosition = Object.fromEntries(imports.map((item, i) => [item.element.id, i]));
69
+ const restStatements = cu.statements.slice(importCount);
70
+ // Get style for consistent brace spacing
71
+ const spacesStyle = (0, style_1.styleFromSourceFile)(style_1.StyleKind.SpacesStyle, cu);
72
+ const useBraceSpaces = (_a = spacesStyle === null || spacesStyle === void 0 ? void 0 : spacesStyle.within.es6ImportExportBraces) !== null && _a !== void 0 ? _a : false;
73
+ // Sort named specifiers within each import
74
+ const sortedSpecifiers = this.sortNamedSpecifiersWithinImports(imports, useBraceSpaces);
75
+ // Sort imports by category and module path
76
+ sortedSpecifiers.sort((aPadded, bPadded) => {
77
+ const a = aPadded.element;
78
+ const b = bPadded.element;
79
+ // First, compare by category
80
+ const categoryA = this.getImportCategory(a);
81
+ const categoryB = this.getImportCategory(b);
82
+ if (categoryA !== categoryB) {
83
+ return categoryA - categoryB;
84
+ }
85
+ // Within same category, sort by module path (case-insensitive)
86
+ const modulePathA = this.getModulePath(a).toLowerCase();
87
+ const modulePathB = this.getModulePath(b).toLowerCase();
88
+ const pathComparison = modulePathA.localeCompare(modulePathB);
89
+ if (pathComparison !== 0) {
90
+ return pathComparison;
91
+ }
92
+ // Tiebreaker: keep original order for stability
93
+ return originalImportPosition[aPadded.element.id] - originalImportPosition[bPadded.element.id];
94
+ });
95
+ const cuWithImportsSorted = yield (0, visitor_1.produceAsync)(cu, (draft) => __awaiter(this, void 0, void 0, function* () {
96
+ draft.statements = [...sortedSpecifiers, ...restStatements];
97
+ }));
98
+ return (0, immer_1.produce)(cuWithImportsSorted, draft => {
99
+ for (let i = 0; i < importCount; i++) {
100
+ draft.statements[i].element.prefix.whitespace = i > 0 ? "\n" : "";
101
+ }
102
+ });
103
+ });
104
+ }
105
+ /**
106
+ * Determine the category of an import for sorting purposes.
107
+ */
108
+ getImportCategory(import_) {
109
+ var _a, _b;
110
+ // Type imports: import type { Foo } from 'module'
111
+ if ((_a = import_.importClause) === null || _a === void 0 ? void 0 : _a.typeOnly) {
112
+ return ImportCategory.Type;
113
+ }
114
+ // Side-effect imports: import 'module'
115
+ if (import_.importClause === undefined) {
116
+ return ImportCategory.SideEffect;
117
+ }
118
+ // Namespace imports: import * as foo from 'module'
119
+ if (((_b = import_.importClause.namedBindings) === null || _b === void 0 ? void 0 : _b.kind) === index_1.JS.Kind.Alias) {
120
+ const alias = import_.importClause.namedBindings;
121
+ if (alias.propertyName.element.simpleName === "*") {
122
+ return ImportCategory.Namespace;
123
+ }
124
+ }
125
+ // Default imports (without named imports): import foo from 'module'
126
+ if (import_.importClause.name && !import_.importClause.namedBindings) {
127
+ return ImportCategory.Default;
128
+ }
129
+ // Default with named imports or just named imports: import foo, { bar } from 'module' or import { foo } from 'module'
130
+ return ImportCategory.Named;
131
+ }
132
+ /**
133
+ * Extract the module path from an import statement.
134
+ */
135
+ getModulePath(import_) {
136
+ var _a, _b;
137
+ if (((_a = import_.moduleSpecifier) === null || _a === void 0 ? void 0 : _a.element.kind) === java_1.J.Kind.Literal) {
138
+ const literal = import_.moduleSpecifier.element;
139
+ // Remove quotes from the value
140
+ return String((_b = literal.value) !== null && _b !== void 0 ? _b : '');
141
+ }
142
+ return '';
143
+ }
144
+ countImports(cu) {
145
+ let i = 0;
146
+ while ((i < cu.statements.length) && (cu.statements[i].element.kind === index_1.JS.Kind.Import)) {
147
+ i++;
148
+ }
149
+ return i;
150
+ }
151
+ /**
152
+ * Sort named specifiers within each import statement alphabetically.
153
+ */
154
+ sortNamedSpecifiersWithinImports(imports, useBraceSpaces) {
155
+ const ret = [];
156
+ for (const importPadded of imports) {
157
+ const import_ = importPadded.element;
158
+ if (this.hasNamedImports(import_)) {
159
+ const importSorted = (0, immer_1.produce)(import_, draft => {
160
+ var _a;
161
+ const namedBindings = draft.importClause.namedBindings;
162
+ let elements = namedBindings.elements.elements;
163
+ if (elements.length <= 1) {
164
+ return; // Nothing to sort
165
+ }
166
+ // Handle trailing comma
167
+ const trailingComma = elements.length > 0 &&
168
+ ((_a = elements[elements.length - 1].markers) === null || _a === void 0 ? void 0 : _a.markers.find(m => m.kind === java_1.J.Markers.TrailingComma));
169
+ if (trailingComma) {
170
+ elements[elements.length - 1].markers.markers =
171
+ elements[elements.length - 1].markers.markers.filter(m => m.kind !== java_1.J.Markers.TrailingComma);
172
+ }
173
+ // Sort by the imported name (not alias)
174
+ elements.sort((a, b) => {
175
+ const nameA = this.getSpecifierSortKey(a.element);
176
+ const nameB = this.getSpecifierSortKey(b.element);
177
+ return nameA.localeCompare(nameB);
178
+ });
179
+ // Normalize spacing based on es6ImportExportBraces style
180
+ const braceSpace = useBraceSpaces ? " " : "";
181
+ for (let i = 0; i < elements.length; i++) {
182
+ if (i === 0) {
183
+ // First element: space after opening brace based on style
184
+ elements[i].element.prefix = { kind: java_1.J.Kind.Space, whitespace: braceSpace, comments: [] };
185
+ }
186
+ else {
187
+ // Other elements: space after comma
188
+ elements[i].element.prefix = { kind: java_1.J.Kind.Space, whitespace: ' ', comments: [] };
189
+ }
190
+ }
191
+ // Last element: space before closing brace based on style
192
+ elements[elements.length - 1].after = { kind: java_1.J.Kind.Space, whitespace: braceSpace, comments: [] };
193
+ // Restore trailing comma to last element
194
+ if (trailingComma && elements.length > 0 &&
195
+ !elements[elements.length - 1].markers.markers.find(m => m.kind === java_1.J.Markers.TrailingComma)) {
196
+ elements[elements.length - 1].markers.markers.push(trailingComma);
197
+ }
198
+ });
199
+ ret.push((0, immer_1.produce)(importPadded, draft => {
200
+ draft.element = importSorted;
201
+ }));
202
+ }
203
+ else {
204
+ ret.push(importPadded);
205
+ }
206
+ }
207
+ return ret;
208
+ }
209
+ /**
210
+ * Check if an import has named imports that can be sorted.
211
+ */
212
+ hasNamedImports(import_) {
213
+ var _a, _b;
214
+ if (((_b = (_a = import_.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings) === null || _b === void 0 ? void 0 : _b.kind) === index_1.JS.Kind.NamedImports) {
215
+ const namedImports = import_.importClause.namedBindings;
216
+ return namedImports.elements.kind === java_1.J.Kind.Container &&
217
+ namedImports.elements.elements.length > 1;
218
+ }
219
+ return false;
220
+ }
221
+ /**
222
+ * Get the sort key for an import specifier (the original name, not alias).
223
+ */
224
+ getSpecifierSortKey(specifier) {
225
+ if (specifier.specifier.kind === index_1.JS.Kind.Alias) {
226
+ // import { foo as bar } - sort by 'foo'
227
+ return specifier.specifier.propertyName.element.simpleName;
228
+ }
229
+ else if (specifier.specifier.kind === java_1.J.Kind.Identifier) {
230
+ // import { foo } - sort by 'foo'
231
+ return specifier.specifier.simpleName;
232
+ }
233
+ return '';
234
+ }
235
+ };
236
+ });
237
+ }
238
+ }
239
+ exports.OrderImports = OrderImports;
240
+ //# sourceMappingURL=order-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-imports.js","sourceRoot":"","sources":["../../../src/javascript/recipes/order-imports.ts"],"names":[],"mappings":"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"}
@@ -89,42 +89,78 @@ class ParseJsonReader extends parser_1.ParserSourceReader {
89
89
  };
90
90
  if (Array.isArray(parsed)) {
91
91
  this.cursor++; // skip '['
92
- const values = parsed.map((p, i) => {
93
- const element = this.json(p);
92
+ let values;
93
+ if (parsed.length === 0) {
94
+ // Empty array - capture whitespace in an Empty element
94
95
  const afterWhitespace = this.whitespace();
95
- // Check if there's a comma after this element
96
- const hasComma = this.source[this.cursor] === ',';
97
- if (hasComma) {
98
- this.cursor++; // skip ','
99
- }
100
- return {
101
- kind: tree_1.Json.Kind.RightPadded,
102
- element,
103
- after: (0, tree_1.space)(afterWhitespace),
104
- markers: markers_1.emptyMarkers
105
- };
106
- });
96
+ values = [{
97
+ kind: tree_1.Json.Kind.RightPadded,
98
+ element: {
99
+ kind: tree_1.Json.Kind.Empty,
100
+ id: (0, uuid_1.randomId)(),
101
+ prefix: tree_1.emptySpace,
102
+ markers: markers_1.emptyMarkers
103
+ },
104
+ after: (0, tree_1.space)(afterWhitespace),
105
+ markers: markers_1.emptyMarkers
106
+ }];
107
+ }
108
+ else {
109
+ values = parsed.map((p, i) => {
110
+ const element = this.json(p);
111
+ const afterWhitespace = this.whitespace();
112
+ // Check if there's a comma after this element
113
+ const hasComma = this.source[this.cursor] === ',';
114
+ if (hasComma) {
115
+ this.cursor++; // skip ','
116
+ }
117
+ return {
118
+ kind: tree_1.Json.Kind.RightPadded,
119
+ element,
120
+ after: (0, tree_1.space)(afterWhitespace),
121
+ markers: markers_1.emptyMarkers
122
+ };
123
+ });
124
+ }
107
125
  this.cursor++; // skip ']'
108
126
  return Object.assign(Object.assign({ kind: tree_1.Json.Kind.Array }, base), { values });
109
127
  }
110
128
  else if (parsed !== null && typeof parsed === "object") {
111
129
  this.cursor++; // skip '{'
112
130
  const keys = Object.keys(parsed);
113
- const members = keys.map((key, i) => {
114
- const element = this.member(parsed, key);
131
+ let members;
132
+ if (keys.length === 0) {
133
+ // Empty object - capture whitespace in an Empty element
115
134
  const afterWhitespace = this.whitespace();
116
- // Check if there's a comma after this element
117
- const hasComma = this.source[this.cursor] === ',';
118
- if (hasComma) {
119
- this.cursor++; // skip ','
120
- }
121
- return {
122
- kind: tree_1.Json.Kind.RightPadded,
123
- element,
124
- after: (0, tree_1.space)(afterWhitespace),
125
- markers: markers_1.emptyMarkers
126
- };
127
- });
135
+ members = [{
136
+ kind: tree_1.Json.Kind.RightPadded,
137
+ element: {
138
+ kind: tree_1.Json.Kind.Empty,
139
+ id: (0, uuid_1.randomId)(),
140
+ prefix: tree_1.emptySpace,
141
+ markers: markers_1.emptyMarkers
142
+ },
143
+ after: (0, tree_1.space)(afterWhitespace),
144
+ markers: markers_1.emptyMarkers
145
+ }];
146
+ }
147
+ else {
148
+ members = keys.map((key, i) => {
149
+ const element = this.member(parsed, key);
150
+ const afterWhitespace = this.whitespace();
151
+ // Check if there's a comma after this element
152
+ const hasComma = this.source[this.cursor] === ',';
153
+ if (hasComma) {
154
+ this.cursor++; // skip ','
155
+ }
156
+ return {
157
+ kind: tree_1.Json.Kind.RightPadded,
158
+ element,
159
+ after: (0, tree_1.space)(afterWhitespace),
160
+ markers: markers_1.emptyMarkers
161
+ };
162
+ });
163
+ }
128
164
  this.cursor++; // skip '}'
129
165
  return Object.assign(Object.assign({ kind: tree_1.Json.Kind.Object }, base), { members });
130
166
  }
@@ -149,8 +185,20 @@ class ParseJsonReader extends parser_1.ParserSourceReader {
149
185
  return Object.assign(Object.assign({ kind: tree_1.Json.Kind.Literal }, base), { source, value: parsed });
150
186
  }
151
187
  else if (typeof parsed === "number") {
152
- this.cursor += parsed.toString().length;
153
- return Object.assign(Object.assign({ kind: tree_1.Json.Kind.Literal }, base), { source: parsed.toString(), value: parsed });
188
+ // Extract original source to preserve precision for large numbers
189
+ const sourceStart = this.cursor;
190
+ // Numbers can have optional sign, digits, decimal point, and exponent
191
+ while (this.cursor < this.source.length) {
192
+ const char = this.source[this.cursor];
193
+ if (/[\d.eE+\-]/.test(char)) {
194
+ this.cursor++;
195
+ }
196
+ else {
197
+ break;
198
+ }
199
+ }
200
+ const source = this.source.slice(sourceStart, this.cursor);
201
+ return Object.assign(Object.assign({ kind: tree_1.Json.Kind.Literal }, base), { source, value: parsed });
154
202
  }
155
203
  else if (typeof parsed === "boolean") {
156
204
  const source = parsed ? "true" : "false";
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/json/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,wCAAoF;AACpF,sCAAmF;AACnF,kCAAiC;AAEjC,iCAA+C;AAC/C,gDAA0D;AAE1D,MAAa,UAAW,SAAQ,eAAM;IAE3B,KAAK,CAAC,GAAG,WAA0B;;YACtC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACD,oDACO,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,KAC1C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAC5C,CAAC;gBACN,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBACd,iFAAiF;oBACjF,MAAM,IAAI,GAAG,IAAA,wBAAe,EAAC,UAAU,CAAC,CAAC;oBACzC,MAAM,UAAU,GAAe;wBAC3B,IAAI,EAAE,4BAAc;wBACpB,EAAE,EAAE,IAAA,eAAQ,GAAE;wBACd,OAAO,EAAE,IAAA,iBAAO,EAAC;4BACb,IAAI,EAAE,qBAAW,CAAC,oBAAoB;4BACtC,EAAE,EAAE,IAAA,eAAQ,GAAE;4BACd,UAAU,EAAE,YAAY;4BACxB,aAAa,EAAE,CAAC,CAAC,IAAI,IAAI,OAAO;4BAChC,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,qBAAqB;yBACS,CAAC;wBACzD,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;wBACzC,IAAI;qBACP,CAAC;oBACF,oBAAM,UAAU,CAAA,CAAC;gBACrB,CAAC;YACL,CAAC;QACL,CAAC;KAAA;CACJ;AA7BD,gCA6BC;AAED,MAAM,eAAgB,SAAQ,2BAAkB;IAC5C,YAAY,UAAuB;QAC/B,KAAK,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAEO,MAAM;QACV,OAAO,IAAA,YAAK,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,KAAK;QACD,OAAO;YACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,QAAQ;YACxB,EAAE,EAAE,IAAA,eAAQ,GAAE;YACd,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,OAAO,EAAE,sBAAY;YACrB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAe;YACvD,GAAG,EAAE,IAAA,YAAK,EAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7C,CAAA;IACL,CAAC;IAEO,IAAI,CAAC,MAAW;QACpB,MAAM,IAAI,GAAG;YACT,EAAE,EAAE,IAAA,eAAQ,GAAE;YACd,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,OAAO,EAAE,sBAAY;SACxB,CAAA;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW;YAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAe,CAAC;gBAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1C,8CAA8C;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;gBAClD,IAAI,QAAQ,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW;gBAC9B,CAAC;gBACD,OAAO;oBACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,WAAW;oBAC3B,OAAO;oBACP,KAAK,EAAE,IAAA,YAAK,EAAC,eAAe,CAAC;oBAC7B,OAAO,EAAE,sBAAY;iBAC+C,CAAC;YAC7E,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW;YAC1B,OAAO,8BACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,KAAK,IAClB,IAAI,KACP,MAAM,GAC0B,CAAC;QACzC,CAAC;aAAM,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW;YAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACzC,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1C,8CAA8C;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;gBAClD,IAAI,QAAQ,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW;gBAC9B,CAAC;gBACD,OAAO;oBACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,WAAW;oBAC3B,OAAO;oBACP,KAAK,EAAE,IAAA,YAAK,EAAC,eAAe,CAAC;oBAC7B,OAAO,EAAE,sBAAY;iBACiD,CAAC;YAC/E,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW;YAC1B,OAAO,8BACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,MAAM,IACnB,IAAI,KACP,OAAO,GAC2B,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpC,uDAAuD;YACvD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,qBAAqB;YACpC,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,uBAAuB;gBAC7C,CAAC;qBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,qBAAqB;oBACpC,MAAM;gBACV,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClB,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3D,OAAO,8BACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,OAAO,IACpB,IAAI,KACP,MAAM,EACN,KAAK,EAAE,MAAM,GACuB,CAAC;QAC7C,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;YACxC,OAAO,8BACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,OAAO,IACpB,IAAI,KACP,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EACzB,KAAK,EAAE,MAAM,GACuB,CAAC;QAC7C,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YAC7B,OAAO,8BACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,OAAO,IACpB,IAAI,KACP,MAAM,EACN,KAAK,EAAE,MAAM,GACuB,CAAC;QAC7C,CAAC;aAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,gBAAgB;YAClC,OAAO,8BACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,OAAO,IACpB,IAAI,KACP,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,IAAI,GACyB,CAAC;QAC7C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,MAAW,EAAE,GAAW;QACnC,OAAO;YACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,MAAM;YACtB,EAAE,EAAE,IAAA,eAAQ,GAAE;YACd,MAAM,EAAE,iBAAU;YAClB,OAAO,EAAE,sBAAY;YACrB,GAAG,EAAE;gBACD,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,WAAW;gBAC3B,OAAO,EAAE,sBAAY;gBACrB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa;gBACnC,KAAK,EAAE,IAAA,YAAK,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aAC4B;YACpE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAe;SACT,CAAC;IAC3C,CAAC;CACJ"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/json/parser.ts"],"names":[],"mappings":"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"}
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- 8.69.0-20251207-184829
1
+ 8.69.0-20251207-214914
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.69.0-20251207-184829",
3
+ "version": "8.69.0-20251207-214914",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
@@ -391,9 +391,10 @@ export async function discoverFiles(projectRoot: string, verbose: boolean = fals
391
391
  return files.filter(isAcceptedFile);
392
392
  }
393
393
 
394
- // Filter to accepted file types
394
+ // Filter to accepted file types that exist on disk
395
+ // (git ls-files returns deleted files that are still tracked)
395
396
  for (const file of trackedFiles) {
396
- if (!ignoredFiles.has(file) && isAcceptedFile(file)) {
397
+ if (!ignoredFiles.has(file) && isAcceptedFile(file) && fs.existsSync(file)) {
397
398
  files.push(file);
398
399
  }
399
400
  }
@@ -176,7 +176,7 @@ async function main() {
176
176
  program
177
177
  .name('rewrite')
178
178
  .description('Run OpenRewrite recipes on your codebase')
179
- .argument('<recipe>', 'Recipe to run in format "package:recipe" (e.g., "@openrewrite/recipes-nodejs:replace-deprecated-slice")')
179
+ .argument('<recipe>', 'Recipe to run in format "package:recipe" or "path:recipe" (e.g., "@openrewrite/recipes-nodejs:replace-deprecated-slice" or "./dist:my-recipe")')
180
180
  .argument('[paths...]', 'Files or directories to process (defaults to project root)')
181
181
  .option('--apply', 'Apply changes to files (default is dry-run showing diffs)', false)
182
182
  .option('-l, --list', 'Only list paths of files that would be changed', false)
@@ -212,6 +212,7 @@ async function main() {
212
212
  if (!recipeSpec) {
213
213
  console.error(`Invalid recipe format: ${recipeArg}`);
214
214
  console.error('Expected format: "package:recipe" (e.g., "@openrewrite/recipes-nodejs:replace-deprecated-slice")');
215
+ console.error('The package can also be a path to a local directory (e.g., "./dist:my-recipe" or "/path/to/recipes:my-recipe")');
215
216
  console.error('Or use "builtin:recipe" for built-in recipes (e.g., "builtin:prefer-optional-chain")');
216
217
  console.error('Or use "validate-parsing" to check for parse errors and idempotence.');
217
218
  process.exit(1);
package/src/index.ts CHANGED
@@ -35,16 +35,16 @@ export * from "./run";
35
35
 
36
36
  // register all recipes in this package
37
37
  export async function activate(registry: RecipeRegistry): Promise<void> {
38
- const {OrderImports} = await import("./recipe/index.js");
39
38
  const {ModernizeOctalEscapeSequences, ModernizeOctalLiterals, RemoveDuplicateObjectKeys} = await import("./javascript/migrate/es6/index.js");
40
39
  const {ExportAssignmentToExportDefault} = await import("./javascript/migrate/typescript/index.js");
41
40
  const {UseObjectPropertyShorthand, PreferOptionalChain, AddParseIntRadix} = await import("./javascript/cleanup/index.js");
42
- const {AsyncCallbackInSyncArrayMethod, UpgradeDependencyVersion} = await import("./javascript/recipes/index.js");
41
+ const {AsyncCallbackInSyncArrayMethod, UpgradeDependencyVersion, OrderImports, ChangeImport} = await import("./javascript/recipes/index.js");
43
42
  const {FindDependency} = await import("./javascript/search/index.js");
44
43
 
45
44
  registry.register(ExportAssignmentToExportDefault);
46
45
  registry.register(FindDependency);
47
46
  registry.register(OrderImports);
47
+ registry.register(ChangeImport);
48
48
  registry.register(ModernizeOctalEscapeSequences);
49
49
  registry.register(ModernizeOctalLiterals);
50
50
  registry.register(RemoveDuplicateObjectKeys);