@openrewrite/rewrite 8.75.3 → 8.75.5

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.
@@ -1,6 +1,7 @@
1
1
  export * from "./add-dependency";
2
2
  export * from "./async-callback-in-sync-array-method";
3
3
  export * from "./auto-format";
4
+ export * from "./remove-dependency";
4
5
  export * from "./upgrade-dependency-version";
5
6
  export * from "./upgrade-transitive-dependency-version";
6
7
  export * from "./order-imports";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/javascript/recipes/index.ts"],"names":[],"mappings":"AAgBA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/javascript/recipes/index.ts"],"names":[],"mappings":"AAgBA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
@@ -32,6 +32,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
32
32
  __exportStar(require("./add-dependency"), exports);
33
33
  __exportStar(require("./async-callback-in-sync-array-method"), exports);
34
34
  __exportStar(require("./auto-format"), exports);
35
+ __exportStar(require("./remove-dependency"), exports);
35
36
  __exportStar(require("./upgrade-dependency-version"), exports);
36
37
  __exportStar(require("./upgrade-transitive-dependency-version"), exports);
37
38
  __exportStar(require("./order-imports"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/javascript/recipes/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,mDAAiC;AACjC,wEAAsD;AACtD,gDAA8B;AAC9B,+DAA6C;AAC7C,0EAAwD;AACxD,kDAAgC;AAChC,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/javascript/recipes/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,mDAAiC;AACjC,wEAAsD;AACtD,gDAA8B;AAC9B,sDAAoC;AACpC,+DAA6C;AAC7C,0EAAwD;AACxD,kDAAgC;AAChC,kDAAgC"}
@@ -0,0 +1,29 @@
1
+ import { ScanningRecipe } from "../../recipe";
2
+ import { ExecutionContext } from "../../execution";
3
+ import { TreeVisitor } from "../../visitor";
4
+ import { DependencyScope, PackageManager } from "../node-resolution-result";
5
+ import { DependencyRecipeAccumulator } from "../package-manager";
6
+ interface ProjectUpdateInfo {
7
+ packageJsonPath: string;
8
+ originalPackageJson: string;
9
+ dependencyScopes: DependencyScope[];
10
+ packageManager: PackageManager;
11
+ configFiles?: Record<string, string>;
12
+ }
13
+ interface Accumulator extends DependencyRecipeAccumulator<ProjectUpdateInfo> {
14
+ originalLockFiles: Map<string, string>;
15
+ }
16
+ export declare class RemoveDependency extends ScanningRecipe<Accumulator> {
17
+ readonly name = "org.openrewrite.javascript.dependencies.remove-dependency";
18
+ readonly displayName = "Remove npm dependency";
19
+ readonly description = "Removes a dependency from `package.json` and updates the lock file by running the package manager.";
20
+ packageName: string;
21
+ scope?: DependencyScope;
22
+ initialValue(_ctx: ExecutionContext): Accumulator;
23
+ scanner(acc: Accumulator): Promise<TreeVisitor<any, ExecutionContext>>;
24
+ editorWithData(acc: Accumulator): Promise<TreeVisitor<any, ExecutionContext>>;
25
+ private runPackageManagerInstall;
26
+ private createModifiedPackageJson;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=remove-dependency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-dependency.d.ts","sourceRoot":"","sources":["../../../src/javascript/recipes/remove-dependency.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAS,cAAc,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAK1C,OAAO,EAEH,eAAe,EAEf,cAAc,EAEjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAGH,2BAA2B,EAQ9B,MAAM,oBAAoB,CAAC;AAG5B,UAAU,iBAAiB;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,UAAU,WAAY,SAAQ,2BAA2B,CAAC,iBAAiB,CAAC;IACxE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC7D,QAAQ,CAAC,IAAI,+DAA+D;IAC5E,QAAQ,CAAC,WAAW,2BAA2B;IAC/C,QAAQ,CAAC,WAAW,wGAAwG;IAO5H,WAAW,EAAG,MAAM,CAAC;IAQrB,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW;IAO3C,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAsFtE,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAqDrE,wBAAwB;IA8BtC,OAAO,CAAC,yBAAyB;CAkBpC"}
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
34
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
35
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
37
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
38
+ };
39
+ var __importStar = (this && this.__importStar) || (function () {
40
+ var ownKeys = function(o) {
41
+ ownKeys = Object.getOwnPropertyNames || function (o) {
42
+ var ar = [];
43
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
44
+ return ar;
45
+ };
46
+ return ownKeys(o);
47
+ };
48
+ return function (mod) {
49
+ if (mod && mod.__esModule) return mod;
50
+ var result = {};
51
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
52
+ __setModuleDefault(result, mod);
53
+ return result;
54
+ };
55
+ })();
56
+ Object.defineProperty(exports, "__esModule", { value: true });
57
+ exports.RemoveDependency = void 0;
58
+ const recipe_1 = require("../../recipe");
59
+ const visitor_1 = require("../../visitor");
60
+ const json_1 = require("../../json");
61
+ const yaml_1 = require("../../yaml");
62
+ const text_1 = require("../../text");
63
+ const node_resolution_result_1 = require("../node-resolution-result");
64
+ const markers_1 = require("../../markers");
65
+ const print_1 = require("../../print");
66
+ const package_manager_1 = require("../package-manager");
67
+ const path = __importStar(require("path"));
68
+ class RemoveDependency extends recipe_1.ScanningRecipe {
69
+ constructor() {
70
+ super(...arguments);
71
+ this.name = "org.openrewrite.javascript.dependencies.remove-dependency";
72
+ this.displayName = "Remove npm dependency";
73
+ this.description = "Removes a dependency from `package.json` and updates the lock file by running the package manager.";
74
+ }
75
+ initialValue(_ctx) {
76
+ return Object.assign(Object.assign({}, (0, package_manager_1.createDependencyRecipeAccumulator)()), { originalLockFiles: new Map() });
77
+ }
78
+ async scanner(acc) {
79
+ const recipe = this;
80
+ const LOCK_FILE_NAMES = (0, package_manager_1.getAllLockFileNames)();
81
+ return new class extends visitor_1.TreeVisitor {
82
+ async accept(tree, ctx) {
83
+ if ((0, json_1.isJson)(tree) && tree.kind === json_1.Json.Kind.Document) {
84
+ return this.handleJsonDocument(tree, ctx);
85
+ }
86
+ if ((0, yaml_1.isYaml)(tree) && (0, yaml_1.isDocuments)(tree)) {
87
+ return this.handleYamlDocument(tree, ctx);
88
+ }
89
+ if ((0, text_1.isPlainText)(tree)) {
90
+ return this.handlePlainTextDocument(tree, ctx);
91
+ }
92
+ return tree;
93
+ }
94
+ async handleJsonDocument(doc, _ctx) {
95
+ var _a;
96
+ const basename = path.basename(doc.sourcePath);
97
+ if (LOCK_FILE_NAMES.includes(basename)) {
98
+ acc.originalLockFiles.set(doc.sourcePath, await print_1.TreePrinters.print(doc));
99
+ return doc;
100
+ }
101
+ if (!doc.sourcePath.endsWith('package.json')) {
102
+ return doc;
103
+ }
104
+ const marker = (0, node_resolution_result_1.findNodeResolutionResult)(doc);
105
+ if (!marker) {
106
+ return doc;
107
+ }
108
+ const scopesToCheck = recipe.scope ? [recipe.scope] : node_resolution_result_1.allDependencyScopes;
109
+ const foundScopes = [];
110
+ for (const scope of scopesToCheck) {
111
+ const deps = marker[scope];
112
+ if (deps === null || deps === void 0 ? void 0 : deps.some(d => d.name === recipe.packageName)) {
113
+ foundScopes.push(scope);
114
+ }
115
+ }
116
+ if (foundScopes.length === 0) {
117
+ return doc;
118
+ }
119
+ const pm = (_a = marker.packageManager) !== null && _a !== void 0 ? _a : node_resolution_result_1.PackageManager.Npm;
120
+ const configFiles = {};
121
+ const npmrcContent = (0, node_resolution_result_1.serializeNpmrcConfigs)(marker.npmrcConfigs);
122
+ if (npmrcContent) {
123
+ configFiles['.npmrc'] = npmrcContent;
124
+ }
125
+ acc.projectsToUpdate.set(doc.sourcePath, {
126
+ packageJsonPath: doc.sourcePath,
127
+ originalPackageJson: await print_1.TreePrinters.print(doc),
128
+ dependencyScopes: foundScopes,
129
+ packageManager: pm,
130
+ configFiles: Object.keys(configFiles).length > 0 ? configFiles : undefined
131
+ });
132
+ return doc;
133
+ }
134
+ async handleYamlDocument(docs, _ctx) {
135
+ const basename = path.basename(docs.sourcePath);
136
+ if (LOCK_FILE_NAMES.includes(basename)) {
137
+ acc.originalLockFiles.set(docs.sourcePath, await print_1.TreePrinters.print(docs));
138
+ }
139
+ return docs;
140
+ }
141
+ async handlePlainTextDocument(text, _ctx) {
142
+ const basename = path.basename(text.sourcePath);
143
+ if (LOCK_FILE_NAMES.includes(basename)) {
144
+ acc.originalLockFiles.set(text.sourcePath, await print_1.TreePrinters.print(text));
145
+ }
146
+ return text;
147
+ }
148
+ };
149
+ }
150
+ async editorWithData(acc) {
151
+ const recipe = this;
152
+ const jsonEditor = new class extends json_1.JsonVisitor {
153
+ async visitDocument(doc, ctx) {
154
+ const sourcePath = doc.sourcePath;
155
+ if (sourcePath.endsWith('package.json')) {
156
+ const updateInfo = acc.projectsToUpdate.get(sourcePath);
157
+ if (!updateInfo) {
158
+ return doc;
159
+ }
160
+ const failureMessage = await (0, package_manager_1.runInstallIfNeeded)(sourcePath, acc, () => recipe.runPackageManagerInstall(acc, updateInfo, ctx));
161
+ if (failureMessage) {
162
+ return (0, markers_1.markupWarn)(doc, `Failed to remove ${recipe.packageName}`, failureMessage);
163
+ }
164
+ const modifiedDoc = removeDependencyFromJson(doc, recipe.packageName, updateInfo.dependencyScopes);
165
+ return (0, package_manager_1.updateNodeResolutionMarker)(modifiedDoc, updateInfo, acc);
166
+ }
167
+ const lockFileName = path.basename(sourcePath);
168
+ if ((0, package_manager_1.getAllLockFileNames)().includes(lockFileName)) {
169
+ const updatedLockContent = acc.updatedLockFiles.get(sourcePath);
170
+ if (updatedLockContent) {
171
+ const parsed = await (0, package_manager_1.parseLockFileContent)(updatedLockContent, sourcePath, lockFileName);
172
+ return Object.assign(Object.assign({}, doc), { value: parsed.value, eof: parsed.eof });
173
+ }
174
+ }
175
+ return doc;
176
+ }
177
+ };
178
+ return (0, package_manager_1.createLockFileEditor)(jsonEditor, acc);
179
+ }
180
+ async runPackageManagerInstall(acc, updateInfo, _ctx) {
181
+ const modifiedPackageJson = this.createModifiedPackageJson(updateInfo.originalPackageJson, updateInfo.dependencyScopes);
182
+ const lockFileName = (0, package_manager_1.getLockFileName)(updateInfo.packageManager);
183
+ const packageJsonDir = path.dirname(updateInfo.packageJsonPath);
184
+ const lockFilePath = packageJsonDir === '.'
185
+ ? lockFileName
186
+ : path.join(packageJsonDir, lockFileName);
187
+ const originalLockFileContent = acc.originalLockFiles.get(lockFilePath);
188
+ const result = await (0, package_manager_1.runInstallInTempDir)(updateInfo.packageManager, modifiedPackageJson, {
189
+ originalLockFileContent,
190
+ configFiles: updateInfo.configFiles
191
+ });
192
+ (0, package_manager_1.storeInstallResult)(result, acc, updateInfo, modifiedPackageJson);
193
+ }
194
+ createModifiedPackageJson(originalContent, scopes) {
195
+ const packageJson = JSON.parse(originalContent);
196
+ for (const scope of scopes) {
197
+ if (packageJson[scope] && packageJson[scope][this.packageName]) {
198
+ delete packageJson[scope][this.packageName];
199
+ if (Object.keys(packageJson[scope]).length === 0) {
200
+ delete packageJson[scope];
201
+ }
202
+ }
203
+ }
204
+ return JSON.stringify(packageJson, null, 2);
205
+ }
206
+ }
207
+ exports.RemoveDependency = RemoveDependency;
208
+ __decorate([
209
+ (0, recipe_1.Option)({
210
+ displayName: "Package name",
211
+ description: "The name of the npm package to remove (e.g., `lodash`, `@types/node`)",
212
+ example: "lodash"
213
+ })
214
+ ], RemoveDependency.prototype, "packageName", void 0);
215
+ __decorate([
216
+ (0, recipe_1.Option)({
217
+ displayName: "Scope",
218
+ description: "The dependency scope to remove from. If not specified, the dependency is removed from all scopes where it is found.",
219
+ example: "dependencies",
220
+ required: false
221
+ })
222
+ ], RemoveDependency.prototype, "scope", void 0);
223
+ function removeDependencyFromJson(doc, packageName, scopes) {
224
+ if (!(0, json_1.isObject)(doc.value)) {
225
+ return doc;
226
+ }
227
+ const targetScopes = new Set(scopes);
228
+ const rootObj = doc.value;
229
+ let changed = false;
230
+ const result = [];
231
+ for (const rp of rootObj.members) {
232
+ const member = rp.element;
233
+ const keyName = (0, json_1.getMemberKeyName)(member);
234
+ if (!keyName || !targetScopes.has(keyName) || !(0, json_1.isObject)(member.value)) {
235
+ result.push(rp);
236
+ continue;
237
+ }
238
+ const scopeObj = member.value;
239
+ const filtered = scopeObj.members.filter(depRp => (0, json_1.getMemberKeyName)(depRp.element) !== packageName);
240
+ if (filtered.length === scopeObj.members.length) {
241
+ result.push(rp);
242
+ continue;
243
+ }
244
+ changed = true;
245
+ if (filtered.length === 0) {
246
+ continue;
247
+ }
248
+ const lastOriginalAfter = scopeObj.members[scopeObj.members.length - 1].after;
249
+ filtered[filtered.length - 1] = Object.assign(Object.assign({}, filtered[filtered.length - 1]), { after: lastOriginalAfter });
250
+ result.push(Object.assign(Object.assign({}, rp), { element: Object.assign(Object.assign({}, member), { value: Object.assign(Object.assign({}, scopeObj), { members: filtered }) }) }));
251
+ }
252
+ if (!changed) {
253
+ return doc;
254
+ }
255
+ if (result.length > 0 && result.length < rootObj.members.length) {
256
+ const originalLastAfter = rootObj.members[rootObj.members.length - 1].after;
257
+ result[result.length - 1] = Object.assign(Object.assign({}, result[result.length - 1]), { after: originalLastAfter });
258
+ }
259
+ return Object.assign(Object.assign({}, doc), { value: Object.assign(Object.assign({}, rootObj), { members: result }) });
260
+ }
261
+ //# sourceMappingURL=remove-dependency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-dependency.js","sourceRoot":"","sources":["../../../src/javascript/recipes/remove-dependency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ 8.75.5
@@ -6,6 +6,7 @@ export declare class PrepareRecipe {
6
6
  private readonly options?;
7
7
  constructor(id: string, options?: any | undefined);
8
8
  static handle(connection: MessageConnection, marketplace: RecipeMarketplace, preparedRecipes: Map<String, Recipe>, metricsCsv?: string): void;
9
+ private static installSubRecipes;
9
10
  /**
10
11
  * For preconditions that can be evaluated on the remote peer, let the remote peer
11
12
  * evaluate them and know that we will only have to do the visit work if the
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-recipe.d.ts","sourceRoot":"","sources":["../../../src/rpc/request/prepare-recipe.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,MAAM,EAAE,gBAAgB,EAAiB,MAAM,cAAc,CAAC;AAOtE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,aAAa;IACV,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAU,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAArC,EAAE,EAAE,MAAM,EAAmB,OAAO,CAAC,EAAE,GAAG,YAAA;IAGvE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,UAAU,CAAC,EAAE,MAAM;IA0CjC;;;;OAIG;mBACkB,qBAAqB;IAuC1C,OAAO,CAAC,MAAM,CAAC,uBAAuB;CA+BzC;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,gBAAgB,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,YAAY,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,YAAY,EAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,EAAE,CAAA;CACtB"}
1
+ {"version":3,"file":"prepare-recipe.d.ts","sourceRoot":"","sources":["../../../src/rpc/request/prepare-recipe.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,MAAM,EAAE,gBAAgB,EAAiB,MAAM,cAAc,CAAC;AAOtE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,aAAa;IACV,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAU,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAArC,EAAE,EAAE,MAAM,EAAmB,OAAO,CAAC,EAAE,GAAG,YAAA;IAGvE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,UAAU,CAAC,EAAE,MAAM;mBA4CZ,iBAAiB;IAStC;;;;OAIG;mBACkB,qBAAqB;mBAuCrB,uBAAuB;CA+B/C;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,gBAAgB,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,YAAY,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,YAAY,EAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,EAAE,CAAA;CACtB"}
@@ -78,6 +78,7 @@ class PrepareRecipe {
78
78
  const scanPreconditions = [];
79
79
  recipe = await this.optimizePreconditions(recipe, "scan", scanPreconditions);
80
80
  preparedRecipes.set(id, recipe);
81
+ await this.installSubRecipes(recipe, marketplace);
81
82
  const result = {
82
83
  id: id,
83
84
  descriptor: await recipe.descriptor(),
@@ -89,6 +90,14 @@ class PrepareRecipe {
89
90
  return result;
90
91
  }));
91
92
  }
93
+ static async installSubRecipes(recipe, marketplace) {
94
+ for (const subRecipe of await recipe.recipeList()) {
95
+ if (!marketplace.findRecipe(subRecipe.name)) {
96
+ await marketplace.install(subRecipe.constructor, []);
97
+ await this.installSubRecipes(subRecipe, marketplace);
98
+ }
99
+ }
100
+ }
92
101
  /**
93
102
  * For preconditions that can be evaluated on the remote peer, let the remote peer
94
103
  * evaluate them and know that we will only have to do the visit work if the
@@ -123,21 +132,21 @@ class PrepareRecipe {
123
132
  }
124
133
  });
125
134
  }
126
- this.visitorTypePrecondition(preconditions, visitor.v);
135
+ await this.visitorTypePrecondition(preconditions, visitor.v);
127
136
  }
128
137
  else {
129
- this.visitorTypePrecondition(preconditions, visitor);
138
+ await this.visitorTypePrecondition(preconditions, visitor);
130
139
  }
131
140
  return recipe;
132
141
  }
133
- static visitorTypePrecondition(preconditions, v) {
142
+ static async visitorTypePrecondition(preconditions, v) {
134
143
  let treeType;
135
- // Use CommonJS require to defer loading and avoid circular dependencies
136
- const { JsonVisitor } = require("../../json");
137
- const { JavaScriptVisitor } = require("../../javascript");
138
- const { JavaVisitor } = require("../../java");
139
- const { PlainTextVisitor } = require("../../text");
140
- const { YamlVisitor } = require("../../yaml");
144
+ // Use dynamic import to defer loading and avoid circular dependencies
145
+ const { JsonVisitor } = await import("../../json/index.js");
146
+ const { JavaScriptVisitor } = await import("../../javascript/index.js");
147
+ const { JavaVisitor } = await import("../../java/index.js");
148
+ const { PlainTextVisitor } = await import("../../text/index.js");
149
+ const { YamlVisitor } = await import("../../yaml/index.js");
141
150
  if (v instanceof JsonVisitor) {
142
151
  treeType = "org.openrewrite.json.tree.Json";
143
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-recipe.js","sourceRoot":"","sources":["../../../src/rpc/request/prepare-recipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare-recipe.js","sourceRoot":"","sources":["../../../src/rpc/request/prepare-recipe.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-test.d.ts","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAc,WAAW,EAAC,MAAM,YAAY,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AASnC,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,UAAU;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,GAAG,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,UAAU;IACnB,0BAA0B,EAAE,OAAO,CAAO;IAC1C,cAAc,EAAE,OAAO,CAAQ;IAE/B,MAAM,EAAE,MAAM,CAAmB;IAEjC;;;OAGG;IACH,gBAAgB,EAAE,gBAAgB,CAA0B;IAE5D;;OAEG;IACH,sBAAsB,EAAE,gBAAgB,CAAyB;IAEjE,OAAO,CAAC,mBAAmB,CAA+C;IAE1E,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAIrD,UAAU,CAAC,GAAG,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAuEnJ,qBAAqB;YASrB,2BAA2B;YAO3B,yBAAyB;YAwCzB,oBAAoB;YAapB,WAAW;IAezB;;OAEG;YACW,KAAK;YAiBL,mDAAmD;CAMpE;AAoBD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEnG;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAyCxC;AAED,wBAAgB,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,GAAG,eAAe,CAchE;AAGD,qBAAa,WAAY,SAAQ,MAAM;IAKvB,OAAO,CAAC,OAAO;IAJ3B,IAAI,SAA0B;IAC9B,WAAW,SAAW;IACtB,WAAW,SAAY;gBAEH,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IAI5C,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAGjD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAElE"}
1
+ {"version":3,"file":"rewrite-test.d.ts","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAc,WAAW,EAAC,MAAM,YAAY,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AASnC,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,UAAU;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,GAAG,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,UAAU;IACnB,0BAA0B,EAAE,OAAO,CAAO;IAC1C,cAAc,EAAE,OAAO,CAAQ;IAE/B,MAAM,EAAE,MAAM,CAAmB;IAEjC;;;OAGG;IACH,gBAAgB,EAAE,gBAAgB,CAA0B;IAE5D;;OAEG;IACH,sBAAsB,EAAE,gBAAgB,CAAyB;IAEjE,OAAO,CAAC,mBAAmB,CAA+C;IAE1E,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAIrD,UAAU,CAAC,GAAG,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAuEnJ,qBAAqB;YASrB,2BAA2B;YAa3B,yBAAyB;YAwCzB,oBAAoB;YAapB,WAAW;IAmBzB;;OAEG;YACW,KAAK;YAiBL,mDAAmD;CAMpE;AAwBD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEnG;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAyCxC;AAED,wBAAgB,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,GAAG,eAAe,CAchE;AAGD,qBAAa,WAAY,SAAQ,MAAM;IAKvB,OAAO,CAAC,OAAO;IAJ3B,IAAI,SAA0B;IAC9B,WAAW,SAAW;IACtB,WAAW,SAAY;gBAEH,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IAI5C,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAGjD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAElE"}
@@ -144,7 +144,11 @@ class RecipeSpec {
144
144
  async expectParsePrintIdempotence(parsed) {
145
145
  for (const [spec, sourceFile] of parsed) {
146
146
  const beforeSource = dedent(spec.before);
147
- expect(await print_1.TreePrinters.print(sourceFile)).toEqual(beforeSource);
147
+ const printed = await print_1.TreePrinters.print(sourceFile);
148
+ if (printed !== beforeSource) {
149
+ throw new Error(`Parse-print idempotence check failed.\n` +
150
+ `Expected:\n${beforeSource}\n\nActual:\n${printed}`);
151
+ }
148
152
  }
149
153
  }
150
154
  async expectResultsToMatchAfter(specs, changeset, parsed) {
@@ -200,12 +204,14 @@ class RecipeSpec {
200
204
  if (!after) {
201
205
  throw new Error('Expected for recipe to have produced a change for file:\n' + (0, util_1.trimIndent)(spec.before));
202
206
  }
203
- expect(after).toBeDefined();
204
207
  await new ValidateWhitespaceVisitor().visit(after, this.executionContext);
205
208
  const actualAfter = await print_1.TreePrinters.print(after);
206
209
  const afterSource = typeof spec.after === "function" ?
207
210
  spec.after(actualAfter) : spec.after;
208
- expect(actualAfter).toEqual(afterSource);
211
+ if (actualAfter !== afterSource) {
212
+ throw new Error(`Recipe output does not match expected.\n` +
213
+ `Expected:\n${afterSource}\n\nActual:\n${actualAfter}`);
214
+ }
209
215
  if (spec.afterRecipe) {
210
216
  await spec.afterRecipe(after);
211
217
  }
@@ -253,7 +259,9 @@ exports.RecipeSpec = RecipeSpec;
253
259
  class ValidateWhitespaceVisitor extends javascript_1.JavaScriptVisitor {
254
260
  async visitSpace(space, p) {
255
261
  const ret = super.visitSpace(space, p);
256
- expect(space.whitespace).toMatch(/^\s*$/);
262
+ if (!/^\s*$/.test(space.whitespace)) {
263
+ throw new Error(`Whitespace contains non-whitespace characters: ${JSON.stringify(space.whitespace)}`);
264
+ }
257
265
  return ret;
258
266
  }
259
267
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-test.js","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rewrite-test.js","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.75.3",
3
+ "version": "8.75.5",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "repository": {
@@ -55,10 +55,10 @@
55
55
  "postbuild": "bun -e \"require('fs').chmodSync('dist/rpc/server.js', 0o755)\" && npm link",
56
56
  "typecheck": "tsc --noEmit -p tsconfig.test.json",
57
57
  "dev": "tsc --watch -p tsconfig.json",
58
- "test": "npm run typecheck && npm run build && bun run testhelper",
59
- "testhelper": "NODE_OPTIONS='--max-old-space-size=4096 --experimental-vm-modules' jest",
58
+ "test": "npm run typecheck && npm run build && vitest run",
59
+ "testhelper": "vitest run",
60
60
  "build:fixtures": "tsc --build fixtures/tsconfig.json",
61
- "ci:test": "npm run typecheck && bun run testhelper",
61
+ "ci:test": "npm run typecheck && vitest run",
62
62
  "start": "npm run build && node ./dist/rpc/server.js"
63
63
  },
64
64
  "dependencies": {
@@ -69,7 +69,7 @@
69
69
  "jsonc-parser": "^3.3.1",
70
70
  "mutative": "^1.3.0",
71
71
  "picomatch": "^4.0.3",
72
- "semver": "^7.7.3",
72
+ "semver": "^7.7.4",
73
73
  "tmp-promise": "^3.0.3",
74
74
  "typescript": "^5.8.3",
75
75
  "vscode-jsonrpc": "^8.2.1",
@@ -78,16 +78,12 @@
78
78
  "devDependencies": {
79
79
  "@types/benchmark": "^2.1.5",
80
80
  "@types/diff": "^5.2.2",
81
- "@types/jest": "^29.5.13",
82
81
  "@types/picomatch": "^4.0.2",
83
- "@types/tmp": "^0.2.6",
84
82
  "@types/semver": "^7.7.1",
83
+ "@types/tmp": "^0.2.6",
85
84
  "benchmark": "^2.1.4",
86
85
  "bun": "^1.3.5",
87
- "jest": "^29.7.0",
88
- "jest-junit": "^16.0.0",
89
- "ts-jest": "^29.2.5",
90
- "ts-node": "^10.9.2"
86
+ "vitest": "^4.0.18"
91
87
  },
92
88
  "optionalDependencies": {
93
89
  "prettier": "^3.7.4"
@@ -17,6 +17,7 @@
17
17
  export * from "./add-dependency";
18
18
  export * from "./async-callback-in-sync-array-method";
19
19
  export * from "./auto-format";
20
+ export * from "./remove-dependency";
20
21
  export * from "./upgrade-dependency-version";
21
22
  export * from "./upgrade-transitive-dependency-version";
22
23
  export * from "./order-imports";
@@ -0,0 +1,345 @@
1
+ /*
2
+ * Copyright 2026 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 {Option, ScanningRecipe} from "../../recipe";
18
+ import {ExecutionContext} from "../../execution";
19
+ import {TreeVisitor} from "../../visitor";
20
+ import {Tree} from "../../tree";
21
+ import {getMemberKeyName, isJson, isObject, Json, JsonVisitor} from "../../json";
22
+ import {isDocuments, isYaml, Yaml} from "../../yaml";
23
+ import {isPlainText, PlainText} from "../../text";
24
+ import {
25
+ allDependencyScopes,
26
+ DependencyScope,
27
+ findNodeResolutionResult,
28
+ PackageManager,
29
+ serializeNpmrcConfigs
30
+ } from "../node-resolution-result";
31
+ import {markupWarn} from "../../markers";
32
+ import {TreePrinters} from "../../print";
33
+ import {
34
+ createDependencyRecipeAccumulator,
35
+ createLockFileEditor,
36
+ DependencyRecipeAccumulator,
37
+ getAllLockFileNames,
38
+ getLockFileName,
39
+ parseLockFileContent,
40
+ runInstallIfNeeded,
41
+ runInstallInTempDir,
42
+ storeInstallResult,
43
+ updateNodeResolutionMarker
44
+ } from "../package-manager";
45
+ import * as path from "path";
46
+
47
+ interface ProjectUpdateInfo {
48
+ packageJsonPath: string;
49
+ originalPackageJson: string;
50
+ dependencyScopes: DependencyScope[];
51
+ packageManager: PackageManager;
52
+ configFiles?: Record<string, string>;
53
+ }
54
+
55
+ interface Accumulator extends DependencyRecipeAccumulator<ProjectUpdateInfo> {
56
+ originalLockFiles: Map<string, string>;
57
+ }
58
+
59
+ export class RemoveDependency extends ScanningRecipe<Accumulator> {
60
+ readonly name = "org.openrewrite.javascript.dependencies.remove-dependency";
61
+ readonly displayName = "Remove npm dependency";
62
+ readonly description = "Removes a dependency from `package.json` and updates the lock file by running the package manager.";
63
+
64
+ @Option({
65
+ displayName: "Package name",
66
+ description: "The name of the npm package to remove (e.g., `lodash`, `@types/node`)",
67
+ example: "lodash"
68
+ })
69
+ packageName!: string;
70
+
71
+ @Option({
72
+ displayName: "Scope",
73
+ description: "The dependency scope to remove from. If not specified, the dependency is removed from all scopes where it is found.",
74
+ example: "dependencies",
75
+ required: false
76
+ })
77
+ scope?: DependencyScope;
78
+
79
+ initialValue(_ctx: ExecutionContext): Accumulator {
80
+ return {
81
+ ...createDependencyRecipeAccumulator<ProjectUpdateInfo>(),
82
+ originalLockFiles: new Map()
83
+ };
84
+ }
85
+
86
+ async scanner(acc: Accumulator): Promise<TreeVisitor<any, ExecutionContext>> {
87
+ const recipe = this;
88
+ const LOCK_FILE_NAMES = getAllLockFileNames();
89
+
90
+ return new class extends TreeVisitor<Tree, ExecutionContext> {
91
+ protected async accept(tree: Tree, ctx: ExecutionContext): Promise<Tree | undefined> {
92
+ if (isJson(tree) && tree.kind === Json.Kind.Document) {
93
+ return this.handleJsonDocument(tree as Json.Document, ctx);
94
+ }
95
+ if (isYaml(tree) && isDocuments(tree)) {
96
+ return this.handleYamlDocument(tree, ctx);
97
+ }
98
+ if (isPlainText(tree)) {
99
+ return this.handlePlainTextDocument(tree as PlainText, ctx);
100
+ }
101
+ return tree;
102
+ }
103
+
104
+ private async handleJsonDocument(doc: Json.Document, _ctx: ExecutionContext): Promise<Json | undefined> {
105
+ const basename = path.basename(doc.sourcePath);
106
+
107
+ if (LOCK_FILE_NAMES.includes(basename)) {
108
+ acc.originalLockFiles.set(doc.sourcePath, await TreePrinters.print(doc));
109
+ return doc;
110
+ }
111
+
112
+ if (!doc.sourcePath.endsWith('package.json')) {
113
+ return doc;
114
+ }
115
+
116
+ const marker = findNodeResolutionResult(doc);
117
+ if (!marker) {
118
+ return doc;
119
+ }
120
+
121
+ const scopesToCheck = recipe.scope ? [recipe.scope] : allDependencyScopes;
122
+ const foundScopes: DependencyScope[] = [];
123
+
124
+ for (const scope of scopesToCheck) {
125
+ const deps = marker[scope];
126
+ if (deps?.some(d => d.name === recipe.packageName)) {
127
+ foundScopes.push(scope);
128
+ }
129
+ }
130
+
131
+ if (foundScopes.length === 0) {
132
+ return doc;
133
+ }
134
+
135
+ const pm = marker.packageManager ?? PackageManager.Npm;
136
+
137
+ const configFiles: Record<string, string> = {};
138
+ const npmrcContent = serializeNpmrcConfigs(marker.npmrcConfigs);
139
+ if (npmrcContent) {
140
+ configFiles['.npmrc'] = npmrcContent;
141
+ }
142
+
143
+ acc.projectsToUpdate.set(doc.sourcePath, {
144
+ packageJsonPath: doc.sourcePath,
145
+ originalPackageJson: await TreePrinters.print(doc),
146
+ dependencyScopes: foundScopes,
147
+ packageManager: pm,
148
+ configFiles: Object.keys(configFiles).length > 0 ? configFiles : undefined
149
+ });
150
+
151
+ return doc;
152
+ }
153
+
154
+ private async handleYamlDocument(docs: Yaml.Documents, _ctx: ExecutionContext): Promise<Yaml.Documents | undefined> {
155
+ const basename = path.basename(docs.sourcePath);
156
+ if (LOCK_FILE_NAMES.includes(basename)) {
157
+ acc.originalLockFiles.set(docs.sourcePath, await TreePrinters.print(docs));
158
+ }
159
+ return docs;
160
+ }
161
+
162
+ private async handlePlainTextDocument(text: PlainText, _ctx: ExecutionContext): Promise<PlainText | undefined> {
163
+ const basename = path.basename(text.sourcePath);
164
+ if (LOCK_FILE_NAMES.includes(basename)) {
165
+ acc.originalLockFiles.set(text.sourcePath, await TreePrinters.print(text));
166
+ }
167
+ return text;
168
+ }
169
+ };
170
+ }
171
+
172
+ async editorWithData(acc: Accumulator): Promise<TreeVisitor<any, ExecutionContext>> {
173
+ const recipe = this;
174
+
175
+ const jsonEditor = new class extends JsonVisitor<ExecutionContext> {
176
+ protected async visitDocument(doc: Json.Document, ctx: ExecutionContext): Promise<Json | undefined> {
177
+ const sourcePath = doc.sourcePath;
178
+
179
+ if (sourcePath.endsWith('package.json')) {
180
+ const updateInfo = acc.projectsToUpdate.get(sourcePath);
181
+ if (!updateInfo) {
182
+ return doc;
183
+ }
184
+
185
+ const failureMessage = await runInstallIfNeeded(sourcePath, acc, () =>
186
+ recipe.runPackageManagerInstall(acc, updateInfo, ctx)
187
+ );
188
+ if (failureMessage) {
189
+ return markupWarn(
190
+ doc,
191
+ `Failed to remove ${recipe.packageName}`,
192
+ failureMessage
193
+ );
194
+ }
195
+
196
+ const modifiedDoc = removeDependencyFromJson(
197
+ doc,
198
+ recipe.packageName,
199
+ updateInfo.dependencyScopes
200
+ );
201
+
202
+ return updateNodeResolutionMarker(modifiedDoc, updateInfo, acc);
203
+ }
204
+
205
+ const lockFileName = path.basename(sourcePath);
206
+ if (getAllLockFileNames().includes(lockFileName)) {
207
+ const updatedLockContent = acc.updatedLockFiles.get(sourcePath);
208
+ if (updatedLockContent) {
209
+ const parsed = await parseLockFileContent(updatedLockContent, sourcePath, lockFileName) as Json.Document;
210
+ return {
211
+ ...doc,
212
+ value: parsed.value,
213
+ eof: parsed.eof
214
+ } as Json.Document;
215
+ }
216
+ }
217
+
218
+ return doc;
219
+ }
220
+ };
221
+
222
+ return createLockFileEditor(jsonEditor, acc);
223
+ }
224
+
225
+ private async runPackageManagerInstall(
226
+ acc: Accumulator,
227
+ updateInfo: ProjectUpdateInfo,
228
+ _ctx: ExecutionContext
229
+ ): Promise<void> {
230
+ const modifiedPackageJson = this.createModifiedPackageJson(
231
+ updateInfo.originalPackageJson,
232
+ updateInfo.dependencyScopes
233
+ );
234
+
235
+ const lockFileName = getLockFileName(updateInfo.packageManager);
236
+ const packageJsonDir = path.dirname(updateInfo.packageJsonPath);
237
+ const lockFilePath = packageJsonDir === '.'
238
+ ? lockFileName
239
+ : path.join(packageJsonDir, lockFileName);
240
+
241
+ const originalLockFileContent = acc.originalLockFiles.get(lockFilePath);
242
+
243
+ const result = await runInstallInTempDir(
244
+ updateInfo.packageManager,
245
+ modifiedPackageJson,
246
+ {
247
+ originalLockFileContent,
248
+ configFiles: updateInfo.configFiles
249
+ }
250
+ );
251
+
252
+ storeInstallResult(result, acc, updateInfo, modifiedPackageJson);
253
+ }
254
+
255
+ private createModifiedPackageJson(
256
+ originalContent: string,
257
+ scopes: DependencyScope[]
258
+ ): string {
259
+ const packageJson = JSON.parse(originalContent);
260
+
261
+ for (const scope of scopes) {
262
+ if (packageJson[scope] && packageJson[scope][this.packageName]) {
263
+ delete packageJson[scope][this.packageName];
264
+
265
+ if (Object.keys(packageJson[scope]).length === 0) {
266
+ delete packageJson[scope];
267
+ }
268
+ }
269
+ }
270
+
271
+ return JSON.stringify(packageJson, null, 2);
272
+ }
273
+ }
274
+
275
+ function removeDependencyFromJson(
276
+ doc: Json.Document,
277
+ packageName: string,
278
+ scopes: DependencyScope[]
279
+ ): Json.Document {
280
+ if (!isObject(doc.value)) {
281
+ return doc;
282
+ }
283
+
284
+ const targetScopes = new Set<string>(scopes);
285
+ const rootObj = doc.value;
286
+ let changed = false;
287
+ const result: Json.RightPadded<Json>[] = [];
288
+
289
+ for (const rp of rootObj.members) {
290
+ const member = rp.element as Json.Member;
291
+ const keyName = getMemberKeyName(member);
292
+
293
+ if (!keyName || !targetScopes.has(keyName) || !isObject(member.value)) {
294
+ result.push(rp);
295
+ continue;
296
+ }
297
+
298
+ const scopeObj = member.value;
299
+ const filtered = scopeObj.members.filter(depRp =>
300
+ getMemberKeyName(depRp.element as Json.Member) !== packageName
301
+ );
302
+
303
+ if (filtered.length === scopeObj.members.length) {
304
+ result.push(rp);
305
+ continue;
306
+ }
307
+
308
+ changed = true;
309
+
310
+ if (filtered.length === 0) {
311
+ continue;
312
+ }
313
+
314
+ const lastOriginalAfter = scopeObj.members[scopeObj.members.length - 1].after;
315
+ filtered[filtered.length - 1] = {
316
+ ...filtered[filtered.length - 1],
317
+ after: lastOriginalAfter
318
+ };
319
+
320
+ result.push({
321
+ ...rp,
322
+ element: {
323
+ ...member,
324
+ value: {...scopeObj, members: filtered} as Json.Object
325
+ }
326
+ } as Json.RightPadded<Json>);
327
+ }
328
+
329
+ if (!changed) {
330
+ return doc;
331
+ }
332
+
333
+ if (result.length > 0 && result.length < rootObj.members.length) {
334
+ const originalLastAfter = rootObj.members[rootObj.members.length - 1].after;
335
+ result[result.length - 1] = {
336
+ ...result[result.length - 1],
337
+ after: originalLastAfter
338
+ };
339
+ }
340
+
341
+ return {
342
+ ...doc,
343
+ value: {...rootObj, members: result} as Json.Object
344
+ };
345
+ }
@@ -58,6 +58,8 @@ export class PrepareRecipe {
58
58
 
59
59
  preparedRecipes.set(id, recipe);
60
60
 
61
+ await this.installSubRecipes(recipe, marketplace);
62
+
61
63
  const result = {
62
64
  id: id,
63
65
  descriptor: await recipe.descriptor(),
@@ -73,6 +75,15 @@ export class PrepareRecipe {
73
75
  );
74
76
  }
75
77
 
78
+ private static async installSubRecipes(recipe: Recipe, marketplace: RecipeMarketplace) {
79
+ for (const subRecipe of await recipe.recipeList()) {
80
+ if (!marketplace.findRecipe(subRecipe.name)) {
81
+ await marketplace.install(subRecipe.constructor as any, []);
82
+ await this.installSubRecipes(subRecipe, marketplace);
83
+ }
84
+ }
85
+ }
86
+
76
87
  /**
77
88
  * For preconditions that can be evaluated on the remote peer, let the remote peer
78
89
  * evaluate them and know that we will only have to do the visit work if the
@@ -110,22 +121,22 @@ export class PrepareRecipe {
110
121
  }
111
122
  )
112
123
  }
113
- this.visitorTypePrecondition(preconditions, visitor.v);
124
+ await this.visitorTypePrecondition(preconditions, visitor.v);
114
125
  } else {
115
- this.visitorTypePrecondition(preconditions, visitor!);
126
+ await this.visitorTypePrecondition(preconditions, visitor!);
116
127
  }
117
128
  return recipe;
118
129
  }
119
130
 
120
- private static visitorTypePrecondition(preconditions: Precondition[], v: TreeVisitor<any, ExecutionContext>): Precondition[] {
131
+ private static async visitorTypePrecondition(preconditions: Precondition[], v: TreeVisitor<any, ExecutionContext>): Promise<Precondition[]> {
121
132
  let treeType: string | undefined;
122
133
 
123
- // Use CommonJS require to defer loading and avoid circular dependencies
124
- const {JsonVisitor} = require("../../json");
125
- const {JavaScriptVisitor} = require("../../javascript");
126
- const {JavaVisitor} = require("../../java");
127
- const {PlainTextVisitor} = require("../../text");
128
- const {YamlVisitor} = require("../../yaml");
134
+ // Use dynamic import to defer loading and avoid circular dependencies
135
+ const {JsonVisitor} = await import("../../json/index.js");
136
+ const {JavaScriptVisitor} = await import("../../javascript/index.js");
137
+ const {JavaVisitor} = await import("../../java/index.js");
138
+ const {PlainTextVisitor} = await import("../../text/index.js");
139
+ const {YamlVisitor} = await import("../../yaml/index.js");
129
140
 
130
141
  if (v instanceof JsonVisitor) {
131
142
  treeType = "org.openrewrite.json.tree.Json";
package/src/rpc/server.ts CHANGED
File without changes
@@ -144,7 +144,13 @@ export class RecipeSpec {
144
144
  private async expectParsePrintIdempotence(parsed: [SourceSpec<any>, SourceFile][]) {
145
145
  for (const [spec, sourceFile] of parsed) {
146
146
  const beforeSource = dedent(spec.before!);
147
- expect(await TreePrinters.print(sourceFile)).toEqual(beforeSource);
147
+ const printed = await TreePrinters.print(sourceFile);
148
+ if (printed !== beforeSource) {
149
+ throw new Error(
150
+ `Parse-print idempotence check failed.\n` +
151
+ `Expected:\n${beforeSource}\n\nActual:\n${printed}`
152
+ );
153
+ }
148
154
  }
149
155
  }
150
156
 
@@ -205,12 +211,16 @@ export class RecipeSpec {
205
211
  if (!after) {
206
212
  throw new Error('Expected for recipe to have produced a change for file:\n' + trimIndent(spec.before))
207
213
  }
208
- expect(after).toBeDefined();
209
- await new ValidateWhitespaceVisitor().visit(after!, this.executionContext);
210
- const actualAfter = await TreePrinters.print(after!);
214
+ await new ValidateWhitespaceVisitor().visit(after, this.executionContext);
215
+ const actualAfter = await TreePrinters.print(after);
211
216
  const afterSource = typeof spec.after === "function" ?
212
217
  (spec.after as (actual: string) => string)(actualAfter) : spec.after as string;
213
- expect(actualAfter).toEqual(afterSource);
218
+ if (actualAfter !== afterSource) {
219
+ throw new Error(
220
+ `Recipe output does not match expected.\n` +
221
+ `Expected:\n${afterSource}\n\nActual:\n${actualAfter}`
222
+ );
223
+ }
214
224
  if (spec.afterRecipe) {
215
225
  await spec.afterRecipe(after);
216
226
  }
@@ -247,7 +257,11 @@ export class RecipeSpec {
247
257
  class ValidateWhitespaceVisitor extends JavaScriptVisitor<ExecutionContext> {
248
258
  public override async visitSpace(space: J.Space, p: ExecutionContext): Promise<J.Space> {
249
259
  const ret = super.visitSpace(space, p);
250
- expect(space.whitespace).toMatch(/^\s*$/);
260
+ if (!/^\s*$/.test(space.whitespace)) {
261
+ throw new Error(
262
+ `Whitespace contains non-whitespace characters: ${JSON.stringify(space.whitespace)}`
263
+ );
264
+ }
251
265
  return ret;
252
266
  }
253
267
  }