@openrewrite/recipes-nodejs 0.47.0 → 0.47.3
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/migrate/increase-node-engine-version.d.ts +2 -2
- package/dist/migrate/increase-node-engine-version.d.ts.map +1 -1
- package/dist/migrate/increase-node-engine-version.js +53 -47
- package/dist/migrate/increase-node-engine-version.js.map +1 -1
- package/dist/resources/advisories-npm.csv +502 -54
- package/package.json +4 -5
- package/src/migrate/increase-node-engine-version.ts +59 -54
|
@@ -2,12 +2,12 @@ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
|
2
2
|
export declare class IncreaseNodeEngineVersion extends Recipe {
|
|
3
3
|
readonly name = "org.openrewrite.node.migrate.increase-node-engine-version";
|
|
4
4
|
readonly displayName = "Increase Node.js engine version";
|
|
5
|
-
readonly description
|
|
5
|
+
readonly description: string;
|
|
6
6
|
version: string;
|
|
7
7
|
constructor(options: {
|
|
8
8
|
version: string;
|
|
9
9
|
});
|
|
10
10
|
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
11
11
|
}
|
|
12
|
-
export declare function
|
|
12
|
+
export declare function raiseMinimumVersion(range: string, targetVersion: number): string;
|
|
13
13
|
//# sourceMappingURL=increase-node-engine-version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"increase-node-engine-version.d.ts","sourceRoot":"","sources":["../../src/migrate/increase-node-engine-version.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAU,MAAM,EAAgB,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAIjG,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,+DAA+D;IAC5E,QAAQ,CAAC,WAAW,qCAAqC;IACzD,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"increase-node-engine-version.d.ts","sourceRoot":"","sources":["../../src/migrate/increase-node-engine-version.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAU,MAAM,EAAgB,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAIjG,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,+DAA+D;IAC5E,QAAQ,CAAC,WAAW,qCAAqC;IACzD,QAAQ,CAAC,WAAW,SAGY;IAQhC,OAAO,EAAG,MAAM,CAAC;gBAEL,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAKlC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAgD9D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAwDhF"}
|
|
@@ -49,7 +49,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
49
49
|
};
|
|
50
50
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
51
|
exports.IncreaseNodeEngineVersion = void 0;
|
|
52
|
-
exports.
|
|
52
|
+
exports.raiseMinimumVersion = raiseMinimumVersion;
|
|
53
53
|
const rewrite_1 = require("@openrewrite/rewrite");
|
|
54
54
|
const json_1 = require("@openrewrite/rewrite/json");
|
|
55
55
|
const semver = __importStar(require("semver"));
|
|
@@ -58,7 +58,10 @@ class IncreaseNodeEngineVersion extends rewrite_1.Recipe {
|
|
|
58
58
|
super();
|
|
59
59
|
this.name = "org.openrewrite.node.migrate.increase-node-engine-version";
|
|
60
60
|
this.displayName = "Increase Node.js engine version";
|
|
61
|
-
this.description = "
|
|
61
|
+
this.description = "Raises the lower bound of the `engines.node` version range in package.json to the specified " +
|
|
62
|
+
"Node.js version, performing a hard cutover that drops support for older, end-of-life versions " +
|
|
63
|
+
"(`22.x` → `24.x`, `>= 22` → `>= 24`). The original constraint style is preserved where possible and the " +
|
|
64
|
+
"version is never lowered.";
|
|
62
65
|
this.version = options.version;
|
|
63
66
|
}
|
|
64
67
|
editor() {
|
|
@@ -83,12 +86,15 @@ class IncreaseNodeEngineVersion extends rewrite_1.Recipe {
|
|
|
83
86
|
if (typeof nodeRange !== 'string') {
|
|
84
87
|
return doc;
|
|
85
88
|
}
|
|
86
|
-
const updatedRange =
|
|
89
|
+
const updatedRange = raiseMinimumVersion(nodeRange, targetVersion);
|
|
87
90
|
if (updatedRange === nodeRange) {
|
|
88
91
|
return doc;
|
|
89
92
|
}
|
|
90
|
-
|
|
91
|
-
const modifiedContent = JSON.stringify(
|
|
93
|
+
const nodeMemberRegex = /("engines"\s*:\s*\{[\s\S]*?"node"\s*:\s*)"([^"]+)"/;
|
|
94
|
+
const modifiedContent = content.replace(nodeMemberRegex, `$1${JSON.stringify(updatedRange)}`);
|
|
95
|
+
if (modifiedContent === content) {
|
|
96
|
+
return doc;
|
|
97
|
+
}
|
|
92
98
|
const parsed = yield new json_1.JsonParser({}).parseOne({
|
|
93
99
|
text: modifiedContent,
|
|
94
100
|
sourcePath: doc.sourcePath
|
|
@@ -109,56 +115,56 @@ __decorate([
|
|
|
109
115
|
example: "22"
|
|
110
116
|
})
|
|
111
117
|
], IncreaseNodeEngineVersion.prototype, "version", void 0);
|
|
112
|
-
function
|
|
118
|
+
function raiseMinimumVersion(range, targetVersion) {
|
|
119
|
+
const trimmed = range.trim();
|
|
120
|
+
let minVersion = null;
|
|
113
121
|
try {
|
|
114
|
-
|
|
115
|
-
return range;
|
|
116
|
-
}
|
|
122
|
+
minVersion = semver.minVersion(trimmed);
|
|
117
123
|
}
|
|
118
124
|
catch (_a) {
|
|
119
125
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return `${hyphenMatch[1]}${targetVersion}${hyphenMatch[3] || ''}`;
|
|
126
|
+
if (minVersion && minVersion.major >= targetVersion) {
|
|
127
|
+
return range;
|
|
123
128
|
}
|
|
124
|
-
if (
|
|
125
|
-
const
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
newPart = `${targetVersion}`;
|
|
129
|
+
if (trimmed.includes('||') && !/[<>]/.test(trimmed)) {
|
|
130
|
+
const parts = trimmed.split(/\s*\|\|\s*/).map(p => p.trim());
|
|
131
|
+
const kept = parts.filter(p => {
|
|
132
|
+
try {
|
|
133
|
+
const m = semver.minVersion(p);
|
|
134
|
+
return m !== null && m.major >= targetVersion;
|
|
135
|
+
}
|
|
136
|
+
catch (_a) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
if (kept.length > 0) {
|
|
141
|
+
return kept.join(' || ');
|
|
140
142
|
}
|
|
141
|
-
return
|
|
142
|
-
}
|
|
143
|
-
const upperBoundRegex = /(?<!>)(<=?)(\d+)(\.0\.0)?(?=[^<]*$)/;
|
|
144
|
-
const upperMatch = range.match(upperBoundRegex);
|
|
145
|
-
if (upperMatch) {
|
|
146
|
-
const op = upperMatch[1];
|
|
147
|
-
const suffix = upperMatch[3] || '';
|
|
148
|
-
const newMajor = op === '<' ? targetVersion + 1 : targetVersion;
|
|
149
|
-
return range.replace(upperBoundRegex, `${op}${newMajor}${suffix}`);
|
|
143
|
+
return floorTerm(parts[parts.length - 1], targetVersion);
|
|
150
144
|
}
|
|
151
|
-
const
|
|
152
|
-
if (
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
145
|
+
const hyphenMatch = trimmed.match(/^(.+?)\s+-\s+(.+)$/);
|
|
146
|
+
if (hyphenMatch) {
|
|
147
|
+
const upper = hyphenMatch[2].trim();
|
|
148
|
+
const upperMajor = parseInt(upper, 10);
|
|
149
|
+
if (!Number.isNaN(upperMajor) && upperMajor < targetVersion) {
|
|
150
|
+
return `>=${targetVersion}`;
|
|
151
|
+
}
|
|
152
|
+
return `${targetVersion} - ${upper}`;
|
|
158
153
|
}
|
|
159
|
-
if (
|
|
160
|
-
|
|
154
|
+
if (/</.test(trimmed)) {
|
|
155
|
+
const upperMatch = trimmed.match(/(<=?)\s*(\d+)(?:\.\d+)*/);
|
|
156
|
+
let upper = '';
|
|
157
|
+
if (upperMatch) {
|
|
158
|
+
const op = upperMatch[1];
|
|
159
|
+
const upperMajor = parseInt(upperMatch[2], 10);
|
|
160
|
+
const admitsTarget = op === '<=' ? upperMajor >= targetVersion : upperMajor > targetVersion;
|
|
161
|
+
upper = admitsTarget ? ` ${op}${upperMatch[2]}` : '';
|
|
162
|
+
}
|
|
163
|
+
return `>=${targetVersion}${upper}`;
|
|
161
164
|
}
|
|
162
|
-
return
|
|
165
|
+
return floorTerm(trimmed, targetVersion);
|
|
166
|
+
}
|
|
167
|
+
function floorTerm(part, targetVersion) {
|
|
168
|
+
return part.replace(/\d+/, String(targetVersion));
|
|
163
169
|
}
|
|
164
170
|
//# sourceMappingURL=increase-node-engine-version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"increase-node-engine-version.js","sourceRoot":"","sources":["../../src/migrate/increase-node-engine-version.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"increase-node-engine-version.js","sourceRoot":"","sources":["../../src/migrate/increase-node-engine-version.ts"],"names":[],"mappings":"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"}
|