@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.
- package/dist/javascript/recipes/index.d.ts +1 -0
- package/dist/javascript/recipes/index.d.ts.map +1 -1
- package/dist/javascript/recipes/index.js +1 -0
- package/dist/javascript/recipes/index.js.map +1 -1
- package/dist/javascript/recipes/remove-dependency.d.ts +29 -0
- package/dist/javascript/recipes/remove-dependency.d.ts.map +1 -0
- package/dist/javascript/recipes/remove-dependency.js +261 -0
- package/dist/javascript/recipes/remove-dependency.js.map +1 -0
- package/dist/rewrite-javascript-version.txt +1 -0
- package/dist/rpc/request/prepare-recipe.d.ts +1 -0
- package/dist/rpc/request/prepare-recipe.d.ts.map +1 -1
- package/dist/rpc/request/prepare-recipe.js +18 -9
- package/dist/rpc/request/prepare-recipe.js.map +1 -1
- package/dist/rpc/server.js +0 -0
- package/dist/test/rewrite-test.d.ts.map +1 -1
- package/dist/test/rewrite-test.js +12 -4
- package/dist/test/rewrite-test.js.map +1 -1
- package/package.json +7 -11
- package/src/javascript/recipes/index.ts +1 -0
- package/src/javascript/recipes/remove-dependency.ts +345 -0
- package/src/rpc/request/prepare-recipe.ts +20 -9
- package/src/rpc/server.ts +0 -0
- package/src/test/rewrite-test.ts +20 -6
|
@@ -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;
|
|
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
|
|
136
|
-
const { JsonVisitor } =
|
|
137
|
-
const { JavaScriptVisitor } =
|
|
138
|
-
const { JavaVisitor } =
|
|
139
|
-
const { PlainTextVisitor } =
|
|
140
|
-
const { YamlVisitor } =
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,yDAA2C;AAE3C,yCAAsE;AACtE,gEAA0D;AAC1D,uDAA0C;AAC1C,sCAAoC;AAGpC,uCAAsC;AAGtC,MAAa,aAAa;IACtB,YAA6B,EAAU,EAAmB,OAAa;QAA1C,OAAE,GAAF,EAAE,CAAQ;QAAmB,YAAO,GAAP,OAAO,CAAM;IACvE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,UAA6B,EAC7B,WAA8B,EAC9B,eAAoC,EACpC,UAAmB;QAC7B,MAAM,SAAS,GAAG,IAAA,0BAAW,GAAE,CAAC;QAChC,UAAU,CAAC,SAAS,CAChB,IAAI,GAAG,CAAC,WAAW,CAA8C,eAAe,CAAC,EACjF,IAAA,qBAAW,EACP,eAAe,EACf,UAAU,EACV,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC3B,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,CAAC,EAAE,sCAAsC,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEhD,MAAM,iBAAiB,GAAmB,EAAE,CAAC;YAC7C,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;YAE7E,MAAM,iBAAiB,GAAmB,EAAE,CAAC;YAC7C,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;YAE7E,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAEhC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG;gBACX,EAAE,EAAE,EAAE;gBACN,UAAU,EAAE,MAAM,MAAM,CAAC,UAAU,EAAE;gBACrC,WAAW,EAAE,QAAQ,EAAE,EAAE;gBACzB,iBAAiB,EAAE,iBAAiB;gBACpC,WAAW,EAAE,MAAM,YAAY,uBAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;gBACxE,iBAAiB,EAAE,iBAAiB;aACvC,CAAC;YAEF,OAAO,MAAM,CAAC;QAClB,CAAC,CACJ,CACJ,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,WAA8B;QACjF,KAAK,MAAM,SAAS,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,WAAkB,EAAE,EAAE,CAAC,CAAC;gBAC5D,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAc,EAAE,KAAsB,EAAE,aAA6B;QAC5G,IAAI,OAA2C,CAAC;QAChD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnB,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,MAAM,YAAY,uBAAc,EAAE,CAAC;gBACnC,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACJ,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC;QAED,IAAI,OAAQ,YAAY,qBAAK,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,KAAK,YAAY,kBAAS,EAAE,CAAC;gBACrC,aAAa,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAY,EAAC,CAAC,CAAC;gBAC7G,MAAM,GAAG,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAC5C,MAAM,EACN,KAAK,KAAK,MAAM,CAAC,CAAC;oBACd;wBACI,KAAK,CAAC,MAAM;4BACR,OAAO,OAAO,CAAC,CAAC,CAAC;wBACrB,CAAC;qBACJ,CAAC,CAAC;oBACH;wBACI,KAAK,CAAC,OAAO,CAAC,GAAQ;4BAClB,MAAM,YAAY,GAAG,MAAO,MAA8B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;4BACxE,OAAQ,YAA2B,CAAC,CAAC,CAAC;wBAC1C,CAAC;qBACJ,CACR,CAAA;YACL,CAAC;YACD,MAAM,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,OAAQ,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,aAA6B,EAAE,CAAqC;QAC7G,IAAI,QAA4B,CAAC;QAEjC,sEAAsE;QACtE,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC1D,MAAM,EAAC,iBAAiB,EAAC,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACtE,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC1D,MAAM,EAAC,gBAAgB,EAAC,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC/D,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE1D,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;YAC3B,QAAQ,GAAG,gCAAgC,CAAC;QAChD,CAAC;aAAM,IAAI,CAAC,YAAY,iBAAiB,EAAE,CAAC;YACxC,0EAA0E;YAC1E,2DAA2D;YAC3D,QAAQ,GAAG,oCAAoC,CAAC;QACpD,CAAC;aAAM,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;YAClC,QAAQ,GAAG,6BAA6B,CAAC;QAC7C,CAAC;aAAM,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC;YACvC,QAAQ,GAAG,gCAAgC,CAAC;QAChD,CAAC;aAAM,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;YAClC,QAAQ,GAAG,gCAAgC,CAAC;QAChD,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACX,aAAa,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,8CAA8C;gBAC3D,cAAc,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC;aACnC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ;AAvID,sCAuIC"}
|
package/dist/rpc/server.js
CHANGED
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":";;;;;;;;;;AAyRA,wBAyCC;AAED,kCAcC;AAiBD,kCAEC;AArWD;;;;;;;;;;;;;;GAcG;AACH,sCAAiC;AACjC,4CAA8C;AAC9C,wCAAoD;AAEpD,oCAAsC;AAEtC,gCAA2C;AAC3C,gEAA0D;AAC1D,kCAA6C;AAC7C,gDAA8C;AAC9C,wCAA6D;AAC7D,8CAAgD;AAchD,MAAa,UAAU;IAAvB;QACI,+BAA0B,GAAY,IAAI,CAAA;QAC1C,mBAAc,GAAY,KAAK,CAAA;QAE/B,WAAM,GAAW,IAAI,UAAU,EAAE,CAAA;QAEjC;;;WAGG;QACH,qBAAgB,GAAqB,IAAI,4BAAgB,EAAE,CAAC;QAE5D;;WAEG;QACH,2BAAsB,GAAqB,IAAI,CAAC,gBAAgB,CAAC;QAEzD,wBAAmB,GAA6C,EAAE,CAAA;IA2L9E,CAAC;IAzLG,SAAS,CAAM,IAAY,EAAE,OAA8B;QACvD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAG,WAA6H;;QAC7I,gDAAgD;QAChD,MAAM,cAAc,GAAsB,EAAE,CAAC;QAC7C,KAAK,MAAM,eAAe,IAAI,WAAW,EAAE,CAAC;YACxC,IAAI,eAAe,IAAI,OAAQ,eAAuB,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACzE,mCAAmC;gBACnC,IAAI,OAAQ,eAAuB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE,CAAC;;wBACvE,KAAyB,eAAA,oBAAA,cAAA,eAAiE,CAAA,CAAA,IAAA,sDAAE,CAAC;4BAApE,cAAiE;4BAAjE,WAAiE;4BAA/E,MAAM,IAAI,KAAA,CAAA;4BACjB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC9B,CAAC;;;;;;;;;gBACL,CAAC;qBAAM,CAAC;oBACJ,iBAAiB;oBACjB,KAAK,MAAM,IAAI,IAAI,eAA4D,EAAE,CAAC;wBAC9E,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,cAAc,CAAC,IAAI,CAAC,eAAkC,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,MAAM,CAAC;QAClB,CAAC,EAAE,EAA2C,CAAC,CAAC;QAEhD,MAAM,SAAS,GAAoC,EAAE,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,mDAAmD,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC,0BAA0B,IAAI,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAClF,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,8EAA8E;QAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBACxC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClB,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC;wBACvB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC;wBACvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;4BACvB,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAC;wBAC3H,CAAC;wBACD,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAClC,CAAC;yBAAM,CAAC;wBACJ,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAe,CAAC,CAAC;oBAC3C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,MAAM,IAAA,iBAAW,EAAC,IAAI,CAAC,MAAM,EAC5C,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAC9C,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5C,MAAM,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAE3D,8EAA8E;QAC9E,6DAA6D;QAC7D,IAAI;IACR,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,MAAuC;QACvE,KAAK,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;YACnC,IAAI,UAAU,CAAC,IAAI,KAAK,4BAAc,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,uCAAuC;oBAClD,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAW,CAAC,oBAAoB,CAA2B,CAAC,OAAO,CAAC,CAAC;YAC9H,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,MAAuC;QAC7E,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,oBAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,KAAwB,EAAE,SAAmB,EAAE,MAAuC;QAC1H,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC9B,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,CAAC,MAAM,KAAK,YAAa,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAM,CAAC,UAAU,CAAC,CAAC;oBACrE,OAAO,CAAC,CAAC,YAAY,CAAC;gBAC1B,CAAC;YACL,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;YAE5B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,IAAI,KAAK,IAAI,KAAK,MAAK,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE,CAAC;oBACpC,MAAM,MAAM,GAAG,MAAM,oBAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;oBACtC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACtB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;4BACvB,MAAM,IAAI,KAAK,CACX,sDAAsD;gCACtD,sDAAsD,CACzD,CAAC;wBACN,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,MAAM,IAAI,KAAK,CACX,oDAAoD;4BACpD,cAAc,QAAQ,gBAAgB,MAAM,EAAE,CACjD,CAAC;oBACN,CAAC;gBACL,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,WAAW,CAAC,YAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAAwB,EAAE,SAAmB;QAC5E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,SAAS;YACb,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,KAAK,0CAAE,UAAU,MAAK,IAAI,CAAC,IAAI,CAAA,EAAA,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAqB,EAAE,KAAkB;QAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2DAA2D,GAAG,IAAA,iBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1G,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,yBAAyB,EAAE,CAAC,KAAK,CAAC,KAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,MAAM,oBAAY,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;YACjD,IAAI,CAAC,KAAoC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAe,CAAC;QACnF,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,KAAK,CAAC,KAAwB;;QACxC,IAAI,SAAS,GAAG,IAAA,0BAAW,GAAE,CAAC;QAC9B,MAAM,MAAM,GAA8D,EAAE,CAAC;QAC7E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC;YAC7E,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAiB,EAAE,CAAC;;YAChC,KAA+B,eAAA,KAAA,cAAA,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA,IAAA,sDAAE,CAAC;gBAAjE,cAA8D;gBAA9D,WAA8D;gBAAlF,MAAM,UAAU,KAAA,CAAA;gBACvB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;;;;;;;;;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAiC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEO,KAAK,CAAC,mDAAmD,CAAC,MAAuC;QACrG,MAAM,SAAS,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;YACnC,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;CACJ;AA5MD,gCA4MC;AAED,MAAM,yBAA0B,SAAQ,8BAAmC;IACvD,KAAK,CAAC,UAAU,CAAC,KAAc,EAAE,CAAmB;QAChE,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAED,MAAM,UAAW,SAAQ,eAAM;IAA/B;;QACI,SAAI,GAAG,sBAAsB,CAAC;QAC9B,gBAAW,GAAG,YAAY,CAAC;QAC3B,gBAAW,GAAG,mCAAmC,CAAC;IAKtD,CAAC;IAHG,KAAK,CAAC,MAAM;QACR,OAAO,IAAA,qBAAW,GAAE,CAAC;IACzB,CAAC;CACJ;AAID;;;;;;;;;;;;;;GAcG;AACH,SAAgB,MAAM,CAAC,CAAS;IAC5B,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAEjB,+CAA+C;IAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,YAAY;IAE3D,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9B,sDAAsD;IACtD,sFAAsF;IACtF,MAAM,SAAS,GAAG,CAAC,CAAC;IAEpB,2BAA2B;IAC3B,IAAI,SAAS,GAAG,QAAQ,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAE,cAAc;gBACxC,MAAM,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACJ,yCAAyC;gBACzC,IAAI,MAAM,GAAG,SAAS;oBAAE,SAAS,GAAG,MAAM,CAAC;gBAC3C,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,2CAA2C;IAC3C,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,2CAA2C;IAC3C,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACpB,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC;AAED,SAAgB,WAAW,CAAC,CAAmB;IAC3C,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAc,EAAsB,EAAE;gBAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;gBACtB,OAAO,GAAG,CAAC;YACf,CAAC,CAAC;QACN,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAGD,MAAa,WAAY,SAAQ,eAAM;IAKnC,YAAoB,OAA8B;QAC9C,KAAK,EAAE,CAAC;QADQ,YAAO,GAAP,OAAO,CAAuB;QAJlD,SAAI,GAAG,uBAAuB,CAAA;QAC9B,gBAAW,GAAG,QAAQ,CAAA;QACtB,gBAAW,GAAG,SAAS,CAAA;IAIvB,CAAC;IAED,KAAK,CAAC,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAZD,kCAYC;AAED,SAAgB,WAAW,CAAC,OAA8B;IACtD,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"rewrite-test.js","sourceRoot":"","sources":["../../src/test/rewrite-test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openrewrite/rewrite",
|
|
3
|
-
"version": "8.75.
|
|
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 &&
|
|
59
|
-
"testhelper": "
|
|
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 &&
|
|
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.
|
|
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
|
-
"
|
|
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
|
|
124
|
-
const {JsonVisitor} =
|
|
125
|
-
const {JavaScriptVisitor} =
|
|
126
|
-
const {JavaVisitor} =
|
|
127
|
-
const {PlainTextVisitor} =
|
|
128
|
-
const {YamlVisitor} =
|
|
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
|
package/src/test/rewrite-test.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
209
|
-
await
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|