@openrewrite/rewrite 8.83.4 → 8.83.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.
Files changed (52) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +1 -5
  3. package/dist/index.js.map +1 -1
  4. package/dist/java/rpc.d.ts.map +1 -1
  5. package/dist/java/rpc.js +2 -0
  6. package/dist/java/rpc.js.map +1 -1
  7. package/dist/java/tree.d.ts +1 -0
  8. package/dist/java/tree.d.ts.map +1 -1
  9. package/dist/java/tree.js.map +1 -1
  10. package/dist/java/visitor.d.ts.map +1 -1
  11. package/dist/java/visitor.js +1 -0
  12. package/dist/java/visitor.js.map +1 -1
  13. package/dist/javascript/parser.d.ts.map +1 -1
  14. package/dist/javascript/parser.js +8 -0
  15. package/dist/javascript/parser.js.map +1 -1
  16. package/dist/javascript/recipes/dependencies.d.ts +63 -0
  17. package/dist/javascript/recipes/dependencies.d.ts.map +1 -0
  18. package/dist/javascript/recipes/dependencies.js +49 -0
  19. package/dist/javascript/recipes/dependencies.js.map +1 -0
  20. package/dist/javascript/recipes/index.d.ts +1 -4
  21. package/dist/javascript/recipes/index.d.ts.map +1 -1
  22. package/dist/javascript/recipes/index.js +1 -4
  23. package/dist/javascript/recipes/index.js.map +1 -1
  24. package/dist/rewrite-javascript-version.txt +1 -1
  25. package/package.json +1 -1
  26. package/src/index.ts +0 -8
  27. package/src/java/rpc.ts +2 -0
  28. package/src/java/tree.ts +1 -0
  29. package/src/java/visitor.ts +1 -0
  30. package/src/javascript/parser.ts +8 -0
  31. package/src/javascript/recipes/dependencies.ts +108 -0
  32. package/src/javascript/recipes/index.ts +1 -4
  33. package/dist/javascript/recipes/add-dependency.d.ts +0 -61
  34. package/dist/javascript/recipes/add-dependency.d.ts.map +0 -1
  35. package/dist/javascript/recipes/add-dependency.js +0 -430
  36. package/dist/javascript/recipes/add-dependency.js.map +0 -1
  37. package/dist/javascript/recipes/remove-dependency.d.ts +0 -29
  38. package/dist/javascript/recipes/remove-dependency.d.ts.map +0 -1
  39. package/dist/javascript/recipes/remove-dependency.js +0 -261
  40. package/dist/javascript/recipes/remove-dependency.js.map +0 -1
  41. package/dist/javascript/recipes/upgrade-dependency-version.d.ts +0 -74
  42. package/dist/javascript/recipes/upgrade-dependency-version.d.ts.map +0 -1
  43. package/dist/javascript/recipes/upgrade-dependency-version.js +0 -387
  44. package/dist/javascript/recipes/upgrade-dependency-version.js.map +0 -1
  45. package/dist/javascript/recipes/upgrade-transitive-dependency-version.d.ts +0 -68
  46. package/dist/javascript/recipes/upgrade-transitive-dependency-version.d.ts.map +0 -1
  47. package/dist/javascript/recipes/upgrade-transitive-dependency-version.js +0 -307
  48. package/dist/javascript/recipes/upgrade-transitive-dependency-version.js.map +0 -1
  49. package/src/javascript/recipes/add-dependency.ts +0 -549
  50. package/src/javascript/recipes/remove-dependency.ts +0 -345
  51. package/src/javascript/recipes/upgrade-dependency-version.ts +0 -486
  52. package/src/javascript/recipes/upgrade-transitive-dependency-version.ts +0 -403
@@ -1,307 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2025 the original author or authors.
4
- * <p>
5
- * Licensed under the Moderne Source Available License (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- * <p>
9
- * https://docs.moderne.io/licensing/moderne-source-available-license
10
- * <p>
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
- var __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.UpgradeTransitiveDependencyVersion = 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 path = __importStar(require("path"));
65
- const semver = __importStar(require("semver"));
66
- const markers_1 = require("../../markers");
67
- const print_1 = require("../../print");
68
- const package_manager_1 = require("../package-manager");
69
- const dependency_manager_1 = require("../dependency-manager");
70
- /**
71
- * Upgrades the version of a transitive dependency by adding override entries to package.json.
72
- *
73
- * This recipe is used when you need to upgrade a dependency that is not directly declared
74
- * in your package.json, but is pulled in transitively by one of your direct dependencies.
75
- * This is commonly needed for security vulnerability remediation.
76
- *
77
- * The recipe adds entries to:
78
- * - `overrides` for npm and Bun
79
- * - `resolutions` for Yarn (Classic and Berry)
80
- * - `pnpm.overrides` for pnpm
81
- *
82
- * @see UpgradeDependencyVersion for upgrading direct dependencies
83
- */
84
- class UpgradeTransitiveDependencyVersion extends recipe_1.ScanningRecipe {
85
- constructor() {
86
- super(...arguments);
87
- this.name = "org.openrewrite.javascript.dependencies.upgrade-transitive-dependency-version";
88
- this.displayName = "Upgrade transitive npm dependency version";
89
- this.description = "Upgrades the version of a transitive dependency by adding override/resolution entries to `package.json` and updates the lock file by running the package manager.";
90
- }
91
- initialValue(_ctx) {
92
- return Object.assign(Object.assign({}, (0, package_manager_1.createDependencyRecipeAccumulator)()), { originalLockFiles: new Map() });
93
- }
94
- async scanner(acc) {
95
- const recipe = this;
96
- const LOCK_FILE_NAMES = (0, package_manager_1.getAllLockFileNames)();
97
- return new class extends visitor_1.TreeVisitor {
98
- async accept(tree, ctx) {
99
- // Handle JSON documents (package.json and JSON lock files)
100
- if ((0, json_1.isJson)(tree) && tree.kind === json_1.Json.Kind.Document) {
101
- return this.handleJsonDocument(tree, ctx);
102
- }
103
- // Handle YAML documents (pnpm-lock.yaml)
104
- if ((0, yaml_1.isYaml)(tree) && (0, yaml_1.isDocuments)(tree)) {
105
- return this.handleYamlDocument(tree, ctx);
106
- }
107
- // Handle PlainText files (yarn.lock for Yarn Classic)
108
- if ((0, text_1.isPlainText)(tree)) {
109
- return this.handlePlainTextDocument(tree, ctx);
110
- }
111
- return tree;
112
- }
113
- async handleJsonDocument(doc, _ctx) {
114
- var _a;
115
- const basename = path.basename(doc.sourcePath);
116
- // Capture JSON lock file content (package-lock.json, bun.lock)
117
- if (LOCK_FILE_NAMES.includes(basename)) {
118
- acc.originalLockFiles.set(doc.sourcePath, await print_1.TreePrinters.print(doc));
119
- return doc;
120
- }
121
- // Only process package.json files for dependency analysis
122
- if (!doc.sourcePath.endsWith('package.json')) {
123
- return doc;
124
- }
125
- const marker = (0, node_resolution_result_1.findNodeResolutionResult)(doc);
126
- if (!marker) {
127
- return doc;
128
- }
129
- const pm = (_a = marker.packageManager) !== null && _a !== void 0 ? _a : node_resolution_result_1.PackageManager.Npm;
130
- // Check if package is a direct dependency - if so, skip (use UpgradeDependencyVersion instead)
131
- for (const scope of node_resolution_result_1.allDependencyScopes) {
132
- const deps = marker[scope];
133
- if (deps === null || deps === void 0 ? void 0 : deps.find(d => d.name === recipe.packageName)) {
134
- // Package is a direct dependency, don't add override
135
- return doc;
136
- }
137
- }
138
- // Check if package exists as a transitive dependency (in resolvedDependencies)
139
- // Note: There may be multiple versions of the same package installed
140
- const resolvedVersions = node_resolution_result_1.NodeResolutionResultQueries.getAllResolvedVersions(marker, recipe.packageName);
141
- if (resolvedVersions.length === 0) {
142
- // Package not found in resolved dependencies at all
143
- return doc;
144
- }
145
- // Check if ANY resolved version needs upgrading
146
- // We need an override if at least one installed version doesn't satisfy the constraint
147
- const anyVersionNeedsUpgrade = resolvedVersions.some(rd => !semver.satisfies(rd.version, recipe.newVersion));
148
- if (!anyVersionNeedsUpgrade) {
149
- // All installed versions already satisfy the constraint
150
- return doc;
151
- }
152
- // Parse dependency path if specified
153
- const dependencyPathSegments = recipe.dependencyPath
154
- ? (0, dependency_manager_1.parseDependencyPath)(recipe.dependencyPath)
155
- : undefined;
156
- // Serialize npmrc configs from marker using requested scopes
157
- const configFiles = {};
158
- const npmrcContent = (0, node_resolution_result_1.serializeNpmrcConfigs)(marker.npmrcConfigs);
159
- if (npmrcContent) {
160
- configFiles['.npmrc'] = npmrcContent;
161
- }
162
- acc.projectsToUpdate.set(doc.sourcePath, {
163
- packageJsonPath: doc.sourcePath,
164
- originalPackageJson: await print_1.TreePrinters.print(doc),
165
- newVersion: recipe.newVersion,
166
- packageManager: pm,
167
- skipInstall: false, // Always need to run install for overrides
168
- dependencyPathSegments,
169
- configFiles: Object.keys(configFiles).length > 0 ? configFiles : undefined
170
- });
171
- return doc;
172
- }
173
- async handleYamlDocument(docs, _ctx) {
174
- const basename = path.basename(docs.sourcePath);
175
- if (LOCK_FILE_NAMES.includes(basename)) {
176
- acc.originalLockFiles.set(docs.sourcePath, await print_1.TreePrinters.print(docs));
177
- }
178
- return docs;
179
- }
180
- async handlePlainTextDocument(text, _ctx) {
181
- const basename = path.basename(text.sourcePath);
182
- if (LOCK_FILE_NAMES.includes(basename)) {
183
- acc.originalLockFiles.set(text.sourcePath, await print_1.TreePrinters.print(text));
184
- }
185
- return text;
186
- }
187
- };
188
- }
189
- async editorWithData(acc) {
190
- const recipe = this;
191
- // Create JSON visitor that handles both package.json and JSON lock files
192
- const jsonEditor = new class extends json_1.JsonVisitor {
193
- async visitDocument(doc, ctx) {
194
- const sourcePath = doc.sourcePath;
195
- // Handle package.json files
196
- if (sourcePath.endsWith('package.json')) {
197
- const updateInfo = acc.projectsToUpdate.get(sourcePath);
198
- if (!updateInfo) {
199
- return doc; // This package.json doesn't need updating
200
- }
201
- // Run package manager install if needed, check for failure
202
- const failureMessage = await (0, package_manager_1.runInstallIfNeeded)(sourcePath, acc, () => recipe.runPackageManagerInstall(acc, updateInfo, ctx));
203
- if (failureMessage) {
204
- return (0, markers_1.markupWarn)(doc, `Failed to add override for ${recipe.packageName} to ${recipe.newVersion}`, failureMessage);
205
- }
206
- // Add override entries
207
- const modifiedDoc = await this.addOverrideEntry(doc, updateInfo);
208
- // Update the NodeResolutionResult marker
209
- return (0, package_manager_1.updateNodeResolutionMarker)(modifiedDoc, updateInfo, acc);
210
- }
211
- // Handle JSON lock files (package-lock.json, bun.lock)
212
- const lockFileName = path.basename(sourcePath);
213
- if ((0, package_manager_1.getAllLockFileNames)().includes(lockFileName)) {
214
- const updatedLockContent = acc.updatedLockFiles.get(sourcePath);
215
- if (updatedLockContent) {
216
- const parsed = await (0, package_manager_1.parseLockFileContent)(updatedLockContent, sourcePath, lockFileName);
217
- // Preserve original ID for RPC compatibility
218
- return Object.assign(Object.assign({}, doc), { value: parsed.value, eof: parsed.eof });
219
- }
220
- }
221
- return doc;
222
- }
223
- /**
224
- * Adds override entry to package.json for transitive dependency upgrade.
225
- */
226
- async addOverrideEntry(doc, updateInfo) {
227
- // Parse current package.json content
228
- const currentContent = await print_1.TreePrinters.print(doc);
229
- let packageJson;
230
- try {
231
- packageJson = JSON.parse(currentContent);
232
- }
233
- catch (_a) {
234
- return doc; // Can't parse, return unchanged
235
- }
236
- // Apply override
237
- const modifiedPackageJson = (0, dependency_manager_1.applyOverrideToPackageJson)(packageJson, updateInfo.packageManager, recipe.packageName, updateInfo.newVersion, updateInfo.dependencyPathSegments);
238
- // Serialize back to JSON, preserving indentation
239
- const indentMatch = currentContent.match(/^(\s+)"/m);
240
- const indent = indentMatch ? indentMatch[1].length : 2;
241
- const newContent = JSON.stringify(modifiedPackageJson, null, indent);
242
- // Re-parse with JsonParser to get proper AST
243
- const parsed = await new json_1.JsonParser({}).parseOne({
244
- text: newContent,
245
- sourcePath: doc.sourcePath
246
- });
247
- // Preserve original ID for RPC compatibility
248
- return Object.assign(Object.assign({}, doc), { value: parsed.value, eof: parsed.eof });
249
- }
250
- };
251
- // Return composite visitor that handles both JSON and YAML lock files
252
- return (0, package_manager_1.createLockFileEditor)(jsonEditor, acc);
253
- }
254
- /**
255
- * Runs the package manager in a temporary directory to update the lock file.
256
- * All file contents are provided from in-memory sources (SourceFiles), not read from disk.
257
- */
258
- async runPackageManagerInstall(acc, updateInfo, _ctx) {
259
- // Create modified package.json with the override
260
- const modifiedPackageJson = this.createModifiedPackageJson(updateInfo.originalPackageJson, updateInfo);
261
- // Get the lock file path based on package manager
262
- const lockFileName = (0, package_manager_1.getLockFileName)(updateInfo.packageManager);
263
- const packageJsonDir = path.dirname(updateInfo.packageJsonPath);
264
- const lockFilePath = packageJsonDir === '.'
265
- ? lockFileName
266
- : path.join(packageJsonDir, lockFileName);
267
- // Look up the original lock file content from captured SourceFiles
268
- const originalLockFileContent = acc.originalLockFiles.get(lockFilePath);
269
- const result = await (0, package_manager_1.runInstallInTempDir)(updateInfo.packageManager, modifiedPackageJson, {
270
- originalLockFileContent,
271
- configFiles: updateInfo.configFiles
272
- });
273
- (0, package_manager_1.storeInstallResult)(result, acc, updateInfo, modifiedPackageJson);
274
- }
275
- /**
276
- * Creates a modified package.json with the override.
277
- */
278
- createModifiedPackageJson(originalContent, updateInfo) {
279
- let packageJson = JSON.parse(originalContent);
280
- packageJson = (0, dependency_manager_1.applyOverrideToPackageJson)(packageJson, updateInfo.packageManager, this.packageName, updateInfo.newVersion, updateInfo.dependencyPathSegments);
281
- return JSON.stringify(packageJson, null, 2);
282
- }
283
- }
284
- exports.UpgradeTransitiveDependencyVersion = UpgradeTransitiveDependencyVersion;
285
- __decorate([
286
- (0, recipe_1.Option)({
287
- displayName: "Package name",
288
- description: "The name of the npm package to upgrade (e.g., `lodash`, `@types/node`)",
289
- example: "lodash"
290
- })
291
- ], UpgradeTransitiveDependencyVersion.prototype, "packageName", void 0);
292
- __decorate([
293
- (0, recipe_1.Option)({
294
- displayName: "Version",
295
- description: "The version constraint to set (e.g., `^5.0.0`, `~2.1.0`, `3.0.0`)",
296
- example: "^5.0.0"
297
- })
298
- ], UpgradeTransitiveDependencyVersion.prototype, "newVersion", void 0);
299
- __decorate([
300
- (0, recipe_1.Option)({
301
- displayName: "Dependency path",
302
- description: "Optional path to scope the override to a specific dependency chain. Use '>' as separator (e.g., 'express>accepts'). When not specified, applies globally to all transitive occurrences.",
303
- required: false,
304
- example: "express>accepts"
305
- })
306
- ], UpgradeTransitiveDependencyVersion.prototype, "dependencyPath", void 0);
307
- //# sourceMappingURL=upgrade-transitive-dependency-version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upgrade-transitive-dependency-version.js","sourceRoot":"","sources":["../../../src/javascript/recipes/upgrade-transitive-dependency-version.ts"],"names":[],"mappings":"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"}