@openrewrite/recipes-nodejs 0.51.1 → 0.51.2
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/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/migrate/find-aead-decipheriv-without-auth-tag-length.d.ts +9 -0
- package/dist/migrate/find-aead-decipheriv-without-auth-tag-length.d.ts.map +1 -0
- package/dist/migrate/find-aead-decipheriv-without-auth-tag-length.js +89 -0
- package/dist/migrate/find-aead-decipheriv-without-auth-tag-length.js.map +1 -0
- package/dist/migrate/find-crypto-default-encoding.d.ts +9 -0
- package/dist/migrate/find-crypto-default-encoding.d.ts.map +1 -0
- package/dist/migrate/find-crypto-default-encoding.js +61 -0
- package/dist/migrate/find-crypto-default-encoding.js.map +1 -0
- package/dist/migrate/find-duplex-to-web-type.d.ts +9 -0
- package/dist/migrate/find-duplex-to-web-type.d.ts.map +1 -0
- package/dist/migrate/find-duplex-to-web-type.js +86 -0
- package/dist/migrate/find-duplex-to-web-type.js.map +1 -0
- package/dist/migrate/find-module-register.d.ts +9 -0
- package/dist/migrate/find-module-register.d.ts.map +1 -0
- package/dist/migrate/find-module-register.js +50 -0
- package/dist/migrate/find-module-register.js.map +1 -0
- package/dist/migrate/server-response-write-header.d.ts +9 -0
- package/dist/migrate/server-response-write-header.d.ts.map +1 -0
- package/dist/migrate/server-response-write-header.js +62 -0
- package/dist/migrate/server-response-write-header.js.map +1 -0
- package/dist/migrate/upgrade-node-20.d.ts +8 -0
- package/dist/migrate/upgrade-node-20.d.ts.map +1 -0
- package/dist/migrate/upgrade-node-20.js +42 -0
- package/dist/migrate/upgrade-node-20.js.map +1 -0
- package/dist/migrate/upgrade-node-22.d.ts +1 -1
- package/dist/migrate/upgrade-node-22.d.ts.map +1 -1
- package/dist/migrate/upgrade-node-22.js +5 -5
- package/dist/migrate/upgrade-node-22.js.map +1 -1
- package/dist/migrate/upgrade-node-26.d.ts +8 -0
- package/dist/migrate/upgrade-node-26.d.ts.map +1 -0
- package/dist/migrate/upgrade-node-26.js +53 -0
- package/dist/migrate/upgrade-node-26.js.map +1 -0
- package/package.json +2 -2
- package/src/index.ts +14 -0
- package/src/migrate/find-aead-decipheriv-without-auth-tag-length.ts +76 -0
- package/src/migrate/find-crypto-default-encoding.ts +47 -0
- package/src/migrate/find-duplex-to-web-type.ts +71 -0
- package/src/migrate/find-module-register.ts +36 -0
- package/src/migrate/server-response-write-header.ts +51 -0
- package/src/migrate/upgrade-node-20.ts +32 -0
- package/src/migrate/upgrade-node-22.ts +6 -6
- package/src/migrate/upgrade-node-26.ts +45 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AA2E3E,eAAO,MAAM,MAAM,EAAE,kBAAkB,EAA+B,CAAC;AACvE,eAAO,MAAM,OAAO,EAAE,kBAAkB,EAA0C,CAAC;AACnF,eAAO,MAAM,OAAO,EAAE,kBAAkB,EAA4C,CAAC;AACrF,eAAO,MAAM,OAAO,EAAE,kBAAkB,EAA2C,CAAC;AACpF,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,EAAsD,CAAC;AACxG,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,EAAsD,CAAC;AACxG,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,EAAuD,CAAC;AAE1G,wBAAsB,QAAQ,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE5E"}
|
package/dist/index.js
CHANGED
|
@@ -31,15 +31,22 @@ const outgoing_message_headers_1 = require("./migrate/outgoing-message-headers")
|
|
|
31
31
|
const tls_internal_modules_1 = require("./migrate/tls-internal-modules");
|
|
32
32
|
const stream_internal_modules_1 = require("./migrate/stream-internal-modules");
|
|
33
33
|
const net_set_simultaneous_accepts_1 = require("./migrate/net-set-simultaneous-accepts");
|
|
34
|
+
const upgrade_node_20_1 = require("./migrate/upgrade-node-20");
|
|
34
35
|
const upgrade_node_22_1 = require("./migrate/upgrade-node-22");
|
|
35
36
|
const upgrade_node_24_1 = require("./migrate/upgrade-node-24");
|
|
37
|
+
const upgrade_node_26_1 = require("./migrate/upgrade-node-26");
|
|
36
38
|
const increase_node_engine_version_1 = require("./migrate/increase-node-engine-version");
|
|
37
39
|
const increase_node_engine_version_in_github_actions_1 = require("./migrate/increase-node-engine-version-in-github-actions");
|
|
38
40
|
const find_crypto_create_cipher_1 = require("./migrate/find-crypto-create-cipher");
|
|
41
|
+
const find_crypto_default_encoding_1 = require("./migrate/find-crypto-default-encoding");
|
|
39
42
|
const find_punycode_usage_1 = require("./migrate/find-punycode-usage");
|
|
40
43
|
const find_process_assert_1 = require("./migrate/find-process-assert");
|
|
41
44
|
const find_tls_secure_pair_1 = require("./migrate/find-tls-secure-pair");
|
|
42
45
|
const find_timers_active_1 = require("./migrate/find-timers-active");
|
|
46
|
+
const server_response_write_header_1 = require("./migrate/server-response-write-header");
|
|
47
|
+
const find_aead_decipheriv_without_auth_tag_length_1 = require("./migrate/find-aead-decipheriv-without-auth-tag-length");
|
|
48
|
+
const find_duplex_to_web_type_1 = require("./migrate/find-duplex-to-web-type");
|
|
49
|
+
const find_module_register_1 = require("./migrate/find-module-register");
|
|
43
50
|
const migrate_fs_extra_to_node_fs_1 = require("./migrate/fs-extra/migrate-fs-extra-to-node-fs");
|
|
44
51
|
const replace_fs_extra_remove_1 = require("./migrate/fs-extra/replace-fs-extra-remove");
|
|
45
52
|
const replace_fs_extra_mkdirs_1 = require("./migrate/fs-extra/replace-fs-extra-mkdirs");
|
|
@@ -102,15 +109,22 @@ function activate(marketplace) {
|
|
|
102
109
|
yield marketplace.install(tls_internal_modules_1.ReplaceTlsInternalModules, exports.Migrate);
|
|
103
110
|
yield marketplace.install(stream_internal_modules_1.ReplaceStreamInternalModules, exports.Migrate);
|
|
104
111
|
yield marketplace.install(net_set_simultaneous_accepts_1.RemoveNetSetSimultaneousAccepts, exports.Migrate);
|
|
112
|
+
yield marketplace.install(upgrade_node_20_1.UpgradeNode20, exports.Migrate);
|
|
105
113
|
yield marketplace.install(upgrade_node_22_1.UpgradeNode22, exports.Migrate);
|
|
106
114
|
yield marketplace.install(upgrade_node_24_1.UpgradeNode24, exports.Migrate);
|
|
115
|
+
yield marketplace.install(upgrade_node_26_1.UpgradeNode26, exports.Migrate);
|
|
107
116
|
yield marketplace.install(increase_node_engine_version_1.IncreaseNodeEngineVersion, exports.Migrate);
|
|
108
117
|
yield marketplace.install(increase_node_engine_version_in_github_actions_1.IncreaseNodeEngineVersionInGithubActions, exports.Migrate);
|
|
109
118
|
yield marketplace.install(find_crypto_create_cipher_1.FindCryptoCreateCipher, exports.Migrate);
|
|
119
|
+
yield marketplace.install(find_crypto_default_encoding_1.FindCryptoDefaultEncoding, exports.Migrate);
|
|
110
120
|
yield marketplace.install(find_punycode_usage_1.FindPunycodeUsage, exports.Migrate);
|
|
111
121
|
yield marketplace.install(find_process_assert_1.FindProcessAssert, exports.Migrate);
|
|
112
122
|
yield marketplace.install(find_tls_secure_pair_1.FindTlsSecurePair, exports.Migrate);
|
|
113
123
|
yield marketplace.install(find_timers_active_1.FindTimersActive, exports.Migrate);
|
|
124
|
+
yield marketplace.install(server_response_write_header_1.ReplaceServerResponseWriteHeader, exports.Migrate);
|
|
125
|
+
yield marketplace.install(find_aead_decipheriv_without_auth_tag_length_1.FindAeadDecipherivWithoutAuthTagLength, exports.Migrate);
|
|
126
|
+
yield marketplace.install(find_duplex_to_web_type_1.FindDuplexToWebType, exports.Migrate);
|
|
127
|
+
yield marketplace.install(find_module_register_1.FindModuleRegister, exports.Migrate);
|
|
114
128
|
yield marketplace.install(migrate_fs_extra_to_node_fs_1.MigrateFsExtraToNodeFs, exports.FsExtra);
|
|
115
129
|
yield marketplace.install(replace_fs_extra_remove_1.ReplaceFsExtraRemove, exports.FsExtra);
|
|
116
130
|
yield marketplace.install(replace_fs_extra_mkdirs_1.ReplaceFsExtraMkdirs, exports.FsExtra);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindAeadDecipherivWithoutAuthTagLength extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.node.migrate.crypto.find-aead-decipheriv-without-auth-tag-length";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
readonly tags: string[];
|
|
7
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=find-aead-decipheriv-without-auth-tag-length.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-aead-decipheriv-without-auth-tag-length.d.ts","sourceRoot":"","sources":["../../src/migrate/find-aead-decipheriv-without-auth-tag-length.ts"],"names":[],"mappings":"AAKA,OAAO,EAAQ,gBAAgB,EAAyB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAIzG,qBAAa,sCAAuC,SAAQ,MAAM;IAC9D,QAAQ,CAAC,IAAI,sFAAqF;IAClG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA+E;IAC3G,QAAQ,CAAC,WAAW,EAAE,MAAM,CAG0B;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAe;IAEhC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAyD9D"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FindAeadDecipherivWithoutAuthTagLength = void 0;
|
|
13
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
14
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
15
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
16
|
+
class FindAeadDecipherivWithoutAuthTagLength extends rewrite_1.Recipe {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.name = "org.openrewrite.node.migrate.crypto.find-aead-decipheriv-without-auth-tag-length";
|
|
20
|
+
this.displayName = "Find `crypto.createDecipheriv()` for AEAD ciphers without `authTagLength`";
|
|
21
|
+
this.description = "Accepting shorter-than-default authentication tags for AEAD ciphers " +
|
|
22
|
+
"(`aes-*-gcm`, `aes-*-ccm`, `aes-*-ocb`, `chacha20-poly1305`) in `crypto.createDecipheriv()` is end-of-life in " +
|
|
23
|
+
"Node.js 26 (DEP0182). Pass an explicit `authTagLength` in the options so the tag length is validated at decipher " +
|
|
24
|
+
"construction instead of at `setAuthTag()` time.";
|
|
25
|
+
this.tags = ["DEP0182"];
|
|
26
|
+
}
|
|
27
|
+
editor() {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
return (0, rewrite_1.check)((0, rewrite_1.or)((0, javascript_1.usesMethod)("crypto createDecipheriv(..)"), (0, javascript_1.usesMethod)("node:crypto createDecipheriv(..)")), new class extends javascript_1.JavaScriptVisitor {
|
|
30
|
+
constructor() {
|
|
31
|
+
super(...arguments);
|
|
32
|
+
this.matcher = new javascript_1.MethodMatcher("crypto createDecipheriv(..)");
|
|
33
|
+
this.nodeMatcher = new javascript_1.MethodMatcher("node:crypto createDecipheriv(..)");
|
|
34
|
+
this.aead = /^(aes-\d+-(gcm|ccm|ocb)|chacha20-poly1305)$/i;
|
|
35
|
+
}
|
|
36
|
+
isAeadAlgorithm(expr) {
|
|
37
|
+
if (expr.kind !== java_1.J.Kind.Literal) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
const value = expr.value;
|
|
41
|
+
return typeof value === "string" && this.aead.test(value);
|
|
42
|
+
}
|
|
43
|
+
hasAuthTagLength(expr) {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
if (expr.kind !== java_1.J.Kind.NewClass || expr.class) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
const obj = expr;
|
|
49
|
+
const statements = (_b = (_a = obj.body) === null || _a === void 0 ? void 0 : _a.statements) !== null && _b !== void 0 ? _b : [];
|
|
50
|
+
for (const stmt of statements) {
|
|
51
|
+
const element = stmt.element;
|
|
52
|
+
if (element.kind !== javascript_1.JS.Kind.PropertyAssignment) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const name = element.name.element;
|
|
56
|
+
if (name.kind === java_1.J.Kind.Identifier && name.simpleName === "authTagLength") {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
if (name.kind === java_1.J.Kind.Literal && name.value === "authTagLength") {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
visitMethodInvocation(m, p) {
|
|
66
|
+
const _super = Object.create(null, {
|
|
67
|
+
visitMethodInvocation: { get: () => super.visitMethodInvocation }
|
|
68
|
+
});
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const method = yield _super.visitMethodInvocation.call(this, m, p);
|
|
71
|
+
if (!this.matcher.matches(method.methodType) && !this.nodeMatcher.matches(method.methodType)) {
|
|
72
|
+
return method;
|
|
73
|
+
}
|
|
74
|
+
const args = method.arguments.elements;
|
|
75
|
+
if (args.length === 0 || !this.isAeadAlgorithm(args[0].element)) {
|
|
76
|
+
return method;
|
|
77
|
+
}
|
|
78
|
+
if (args.length >= 4 && this.hasAuthTagLength(args[3].element)) {
|
|
79
|
+
return method;
|
|
80
|
+
}
|
|
81
|
+
return (0, rewrite_1.foundSearchResult)(method, "crypto.createDecipheriv() for AEAD ciphers without authTagLength is end-of-life (DEP0182). Pass authTagLength in options.");
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.FindAeadDecipherivWithoutAuthTagLength = FindAeadDecipherivWithoutAuthTagLength;
|
|
89
|
+
//# sourceMappingURL=find-aead-decipheriv-without-auth-tag-length.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-aead-decipheriv-without-auth-tag-length.js","sourceRoot":"","sources":["../../src/migrate/find-aead-decipheriv-without-auth-tag-length.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindCryptoDefaultEncoding extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.node.migrate.find-crypto-default-encoding";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
readonly tags: string[];
|
|
7
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=find-crypto-default-encoding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-crypto-default-encoding.d.ts","sourceRoot":"","sources":["../../src/migrate/find-crypto-default-encoding.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAM9F,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,+DAA8D;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAqD;IACjF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAEgE;IAC5F,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAe;IAEhC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA2B9D"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FindCryptoDefaultEncoding = void 0;
|
|
13
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
14
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
15
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
16
|
+
const FQNS = new Set(["crypto", "node:crypto"]);
|
|
17
|
+
class FindCryptoDefaultEncoding extends rewrite_1.Recipe {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.name = "org.openrewrite.node.migrate.find-crypto-default-encoding";
|
|
21
|
+
this.displayName = "Find deprecated `crypto.DEFAULT_ENCODING` usage";
|
|
22
|
+
this.description = "The `crypto.DEFAULT_ENCODING` property was deprecated in Node.js 10 (DEP0091) " +
|
|
23
|
+
"and removed in Node.js 20. Each API that accepted an encoding (hash, hmac, cipher, etc.) now requires " +
|
|
24
|
+
"the encoding to be passed explicitly. Occurrences must be reviewed and fixed by hand.";
|
|
25
|
+
this.tags = ["DEP0091"];
|
|
26
|
+
}
|
|
27
|
+
editor() {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
30
|
+
isCryptoReceiver(target) {
|
|
31
|
+
if (!target || target.kind !== java_1.J.Kind.Identifier) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const type = target.type;
|
|
35
|
+
if (!type) {
|
|
36
|
+
return target.simpleName === "crypto";
|
|
37
|
+
}
|
|
38
|
+
if (type.kind === java_1.Type.Kind.Class) {
|
|
39
|
+
const fqn = type.fullyQualifiedName;
|
|
40
|
+
return FQNS.has(fqn);
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
visitFieldAccess(fieldAccess, p) {
|
|
45
|
+
const _super = Object.create(null, {
|
|
46
|
+
visitFieldAccess: { get: () => super.visitFieldAccess }
|
|
47
|
+
});
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const fa = yield _super.visitFieldAccess.call(this, fieldAccess, p);
|
|
50
|
+
if (fa.name.element.simpleName === "DEFAULT_ENCODING" && this.isCryptoReceiver(fa.target)) {
|
|
51
|
+
return (0, rewrite_1.foundSearchResult)(fa, "crypto.DEFAULT_ENCODING was removed in Node.js 20 (DEP0091). Pass the desired encoding explicitly to each crypto API instead.");
|
|
52
|
+
}
|
|
53
|
+
return fa;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.FindCryptoDefaultEncoding = FindCryptoDefaultEncoding;
|
|
61
|
+
//# sourceMappingURL=find-crypto-default-encoding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-crypto-default-encoding.js","sourceRoot":"","sources":["../../src/migrate/find-crypto-default-encoding.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,kDAA8F;AAC9F,gEAAkE;AAClE,oDAAkD;AAElD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AAEhD,MAAa,yBAA0B,SAAQ,gBAAM;IAArD;;QACa,SAAI,GAAG,2DAA2D,CAAA;QAClE,gBAAW,GAAW,iDAAiD,CAAC;QACxE,gBAAW,GAAW,gFAAgF;YAC3G,wGAAwG;YACxG,uFAAuF,CAAC;QACnF,SAAI,GAAa,CAAC,SAAS,CAAC,CAAC;IA6B1C,CAAC;IA3BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBAChD,gBAAgB,CAAC,MAAqB;oBAC1C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBAC/C,OAAO,KAAK,CAAC;oBACjB,CAAC;oBACD,MAAM,IAAI,GAAI,MAAuB,CAAC,IAAI,CAAC;oBAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;wBACR,OAAQ,MAAuB,CAAC,UAAU,KAAK,QAAQ,CAAC;oBAC5D,CAAC;oBACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;wBAChC,MAAM,GAAG,GAAI,IAAmB,CAAC,kBAAkB,CAAC;wBACpD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC;gBAEe,gBAAgB,CAAC,WAA0B,EAAE,CAAmB;;;;;wBAC5E,MAAM,EAAE,GAAG,MAAM,OAAM,gBAAgB,YAAC,WAAW,EAAE,CAAC,CAAkB,CAAC;wBACzE,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,kBAAkB,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;4BACxF,OAAO,IAAA,2BAAiB,EAAC,EAAE,EACvB,+HAA+H,CAAC,CAAC;wBACzI,CAAC;wBACD,OAAO,EAAE,CAAC;oBACd,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AAnCD,8DAmCC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindDuplexToWebType extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.node.migrate.stream.find-duplex-to-web-type";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
readonly tags: string[];
|
|
7
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=find-duplex-to-web-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-duplex-to-web-type.d.ts","sourceRoot":"","sources":["../../src/migrate/find-duplex-to-web-type.ts"],"names":[],"mappings":"AAKA,OAAO,EAAQ,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAIrG,qBAAa,mBAAoB,SAAQ,MAAM;IAC3C,QAAQ,CAAC,IAAI,iEAAgE;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAwD;IACpF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAEc;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAe;IAEhC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAqD9D"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FindDuplexToWebType = void 0;
|
|
13
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
14
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
15
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
16
|
+
class FindDuplexToWebType extends rewrite_1.Recipe {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.name = "org.openrewrite.node.migrate.stream.find-duplex-to-web-type";
|
|
20
|
+
this.displayName = "Find `Duplex.toWeb()` calls passing `options.type`";
|
|
21
|
+
this.description = "Passing `options.type` to `stream.Duplex.toWeb()` is runtime-deprecated in Node.js 26 (DEP0201). " +
|
|
22
|
+
"The `type` field controls the readable-side ReadableStream chunk type; drop it from the options and set the type on the " +
|
|
23
|
+
"resulting `ReadableStream` instead.";
|
|
24
|
+
this.tags = ["DEP0201"];
|
|
25
|
+
}
|
|
26
|
+
editor() {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
return (0, rewrite_1.check)((0, javascript_1.usesType)("Stream.Duplex"), new class extends javascript_1.JavaScriptVisitor {
|
|
29
|
+
isDuplexReceiver(select) {
|
|
30
|
+
if (!select || select.kind !== java_1.J.Kind.Identifier) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const type = select.type;
|
|
34
|
+
if ((type === null || type === void 0 ? void 0 : type.kind) !== java_1.Type.Kind.Class) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return type.fullyQualifiedName === "Stream.Duplex";
|
|
38
|
+
}
|
|
39
|
+
hasTypeKey(expr) {
|
|
40
|
+
var _a, _b;
|
|
41
|
+
if (expr.kind !== java_1.J.Kind.NewClass || expr.class) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const obj = expr;
|
|
45
|
+
const statements = (_b = (_a = obj.body) === null || _a === void 0 ? void 0 : _a.statements) !== null && _b !== void 0 ? _b : [];
|
|
46
|
+
for (const stmt of statements) {
|
|
47
|
+
const element = stmt.element;
|
|
48
|
+
if (element.kind !== javascript_1.JS.Kind.PropertyAssignment) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const name = element.name.element;
|
|
52
|
+
if (name.kind === java_1.J.Kind.Identifier && name.simpleName === "type") {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
if (name.kind === java_1.J.Kind.Literal && name.value === "type") {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
visitMethodInvocation(m, p) {
|
|
62
|
+
const _super = Object.create(null, {
|
|
63
|
+
visitMethodInvocation: { get: () => super.visitMethodInvocation }
|
|
64
|
+
});
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
var _a;
|
|
67
|
+
const method = yield _super.visitMethodInvocation.call(this, m, p);
|
|
68
|
+
if (method.name.simpleName !== "toWeb" || !this.isDuplexReceiver((_a = method.select) === null || _a === void 0 ? void 0 : _a.element)) {
|
|
69
|
+
return method;
|
|
70
|
+
}
|
|
71
|
+
const args = method.arguments.elements;
|
|
72
|
+
if (args.length < 2) {
|
|
73
|
+
return method;
|
|
74
|
+
}
|
|
75
|
+
if (!this.hasTypeKey(args[1].element)) {
|
|
76
|
+
return method;
|
|
77
|
+
}
|
|
78
|
+
return (0, rewrite_1.foundSearchResult)(method, "Duplex.toWeb() options.type is runtime-deprecated (DEP0201). Drop it from the options and set the type on the resulting ReadableStream instead.");
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.FindDuplexToWebType = FindDuplexToWebType;
|
|
86
|
+
//# sourceMappingURL=find-duplex-to-web-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-duplex-to-web-type.js","sourceRoot":"","sources":["../../src/migrate/find-duplex-to-web-type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindModuleRegister extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.node.migrate.find-module-register";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
readonly tags: string[];
|
|
7
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=find-module-register.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-module-register.d.ts","sourceRoot":"","sources":["../../src/migrate/find-module-register.ts"],"names":[],"mappings":"AAKA,OAAO,EAAQ,gBAAgB,EAAyB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAIzG,qBAAa,kBAAmB,SAAQ,MAAM;IAC1C,QAAQ,CAAC,IAAI,uDAAsD;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAoC;IAChE,QAAQ,CAAC,WAAW,EAAE,MAAM,CACoC;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAe;IAEhC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAmB9D"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FindModuleRegister = void 0;
|
|
13
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
14
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
15
|
+
class FindModuleRegister extends rewrite_1.Recipe {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.name = "org.openrewrite.node.migrate.find-module-register";
|
|
19
|
+
this.displayName = "Find `module.register()` usage";
|
|
20
|
+
this.description = "`module.register()` for loading ESM loader hooks is runtime-deprecated in Node.js 26 (DEP0205). " +
|
|
21
|
+
"Use the `--import` CLI flag with a loader module instead.";
|
|
22
|
+
this.tags = ["DEP0205"];
|
|
23
|
+
}
|
|
24
|
+
editor() {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
return (0, rewrite_1.check)((0, rewrite_1.or)((0, javascript_1.usesMethod)("module register(..)"), (0, javascript_1.usesMethod)("node:module register(..)")), new class extends javascript_1.JavaScriptVisitor {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(...arguments);
|
|
29
|
+
this.moduleRegisterMatcher = new javascript_1.MethodMatcher("module register(..)");
|
|
30
|
+
this.nodeModuleRegisterMatcher = new javascript_1.MethodMatcher("node:module register(..)");
|
|
31
|
+
}
|
|
32
|
+
visitMethodInvocation(m, p) {
|
|
33
|
+
const _super = Object.create(null, {
|
|
34
|
+
visitMethodInvocation: { get: () => super.visitMethodInvocation }
|
|
35
|
+
});
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
const method = yield _super.visitMethodInvocation.call(this, m, p);
|
|
38
|
+
if (this.moduleRegisterMatcher.matches(method.methodType) ||
|
|
39
|
+
this.nodeModuleRegisterMatcher.matches(method.methodType)) {
|
|
40
|
+
return (0, rewrite_1.foundSearchResult)(method, "module.register() is runtime-deprecated (DEP0205). Use the --import CLI flag with a loader module instead.");
|
|
41
|
+
}
|
|
42
|
+
return method;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.FindModuleRegister = FindModuleRegister;
|
|
50
|
+
//# sourceMappingURL=find-module-register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-module-register.js","sourceRoot":"","sources":["../../src/migrate/find-module-register.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,kDAAyG;AACzG,gEAA6F;AAG7F,MAAa,kBAAmB,SAAQ,gBAAM;IAA9C;;QACa,SAAI,GAAG,mDAAmD,CAAA;QAC1D,gBAAW,GAAW,gCAAgC,CAAC;QACvD,gBAAW,GAAW,kGAAkG;YAC7H,2DAA2D,CAAC;QACvD,SAAI,GAAa,CAAC,SAAS,CAAC,CAAC;IAqB1C,CAAC;IAnBS,MAAM;;YACR,OAAO,IAAA,eAAK,EAAC,IAAA,YAAE,EACX,IAAA,uBAAU,EAAC,qBAAqB,CAAC,EACjC,IAAA,uBAAU,EAAC,0BAA0B,CAAC,CACzC,EAAE,IAAI,KAAM,SAAQ,8BAAmC;gBAAjD;;oBACH,0BAAqB,GAAG,IAAI,0BAAa,CAAC,qBAAqB,CAAC,CAAC;oBACjE,8BAAyB,GAAG,IAAI,0BAAa,CAAC,0BAA0B,CAAC,CAAC;gBAW9E,CAAC;gBATmB,qBAAqB,CAAC,CAAqB,EAAE,CAAmB;;;;;wBAC5E,MAAM,MAAM,GAAG,MAAM,OAAM,qBAAqB,YAAC,CAAC,EAAE,CAAC,CAAuB,CAAC;wBAC7E,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;4BACrD,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC5D,OAAO,IAAA,2BAAiB,EAAC,MAAM,EAC3B,4GAA4G,CAAC,CAAC;wBACtH,CAAC;wBACD,OAAO,MAAM,CAAC;oBAClB,CAAC;iBAAA;aACJ,CAAC,CAAC;QACP,CAAC;KAAA;CACJ;AA1BD,gDA0BC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class ReplaceServerResponseWriteHeader extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.node.migrate.http.replace-server-response-write-header";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
readonly tags: string[];
|
|
7
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=server-response-write-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-response-write-header.d.ts","sourceRoot":"","sources":["../../src/migrate/server-response-write-header.ts"],"names":[],"mappings":"AAKA,OAAO,EAAQ,gBAAgB,EAAM,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAItF,qBAAa,gCAAiC,SAAQ,MAAM;IACxD,QAAQ,CAAC,IAAI,4EAA2E;IACxF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA+D;IAC3F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAC+E;IAC3G,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAe;IAEhC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAkC9D"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ReplaceServerResponseWriteHeader = void 0;
|
|
13
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
14
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
15
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
16
|
+
class ReplaceServerResponseWriteHeader extends rewrite_1.Recipe {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.name = "org.openrewrite.node.migrate.http.replace-server-response-write-header";
|
|
20
|
+
this.displayName = "Replace `ServerResponse.writeHeader()` with `writeHead()`";
|
|
21
|
+
this.description = "`ServerResponse.prototype.writeHeader()` was an undocumented alias for `writeHead()` " +
|
|
22
|
+
"that was deprecated in Node.js 11 (DEP0063) and removed in Node.js 26. The signatures are identical.";
|
|
23
|
+
this.tags = ["DEP0063"];
|
|
24
|
+
}
|
|
25
|
+
editor() {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
return (0, rewrite_1.check)((0, rewrite_1.or)((0, javascript_1.usesType)("http.ServerResponse"), (0, javascript_1.usesType)("node:http.ServerResponse")), new class extends javascript_1.JavaScriptVisitor {
|
|
28
|
+
isServerResponseType(type) {
|
|
29
|
+
if (!type)
|
|
30
|
+
return false;
|
|
31
|
+
if (type.kind === java_1.Type.Kind.Class) {
|
|
32
|
+
const fqn = type.fullyQualifiedName;
|
|
33
|
+
return fqn === "http.ServerResponse" || fqn === "node:http.ServerResponse";
|
|
34
|
+
}
|
|
35
|
+
if (type.kind === java_1.Type.Kind.Parameterized) {
|
|
36
|
+
return this.isServerResponseType(type.type);
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
visitMethodInvocation(method, p) {
|
|
41
|
+
const _super = Object.create(null, {
|
|
42
|
+
visitMethodInvocation: { get: () => super.visitMethodInvocation }
|
|
43
|
+
});
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const m = yield _super.visitMethodInvocation.call(this, method, p);
|
|
46
|
+
if (m.name.simpleName !== "writeHeader" || !m.select) {
|
|
47
|
+
return m;
|
|
48
|
+
}
|
|
49
|
+
if (!this.isServerResponseType(m.select.element.type)) {
|
|
50
|
+
return m;
|
|
51
|
+
}
|
|
52
|
+
const target = m.select.element;
|
|
53
|
+
const args = m.arguments.elements;
|
|
54
|
+
return yield (0, javascript_1.template) `${target}.writeHead(${args})`.apply(m, this.cursor);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.ReplaceServerResponseWriteHeader = ReplaceServerResponseWriteHeader;
|
|
62
|
+
//# sourceMappingURL=server-response-write-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-response-write-header.js","sourceRoot":"","sources":["../../src/migrate/server-response-write-header.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,kDAAsF;AACtF,gEAAsF;AACtF,oDAAkD;AAElD,MAAa,gCAAiC,SAAQ,gBAAM;IAA5D;;QACa,SAAI,GAAG,wEAAwE,CAAA;QAC/E,gBAAW,GAAW,2DAA2D,CAAC;QAClF,gBAAW,GAAW,uFAAuF;YAClH,sGAAsG,CAAC;QAClG,SAAI,GAAa,CAAC,SAAS,CAAC,CAAC;IAoC1C,CAAC;IAlCS,MAAM;;YACR,OAAO,IAAA,eAAK,EAAC,IAAA,YAAE,EACX,IAAA,qBAAQ,EAAC,qBAAqB,CAAC,EAC/B,IAAA,qBAAQ,EAAC,0BAA0B,CAAC,CACvC,EAAE,IAAI,KAAM,SAAQ,8BAAmC;gBAE5C,oBAAoB,CAAC,IAAsB;oBAC/C,IAAI,CAAC,IAAI;wBAAE,OAAO,KAAK,CAAC;oBACxB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;wBAChC,MAAM,GAAG,GAAI,IAAmB,CAAC,kBAAkB,CAAC;wBACpD,OAAO,GAAG,KAAK,qBAAqB,IAAI,GAAG,KAAK,0BAA0B,CAAC;oBAC/E,CAAC;oBACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;wBACxC,OAAO,IAAI,CAAC,oBAAoB,CAAE,IAA2B,CAAC,IAAI,CAAC,CAAC;oBACxE,CAAC;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC;gBAEe,qBAAqB,CAAC,MAA0B,EAAE,CAAmB;;;;;wBACjF,MAAM,CAAC,GAAG,MAAM,OAAM,qBAAqB,YAAC,MAAM,EAAE,CAAC,CAAuB,CAAC;wBAE7E,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,aAAa,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;4BACnD,OAAO,CAAC,CAAC;wBACb,CAAC;wBACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;4BACpD,OAAO,CAAC,CAAC;wBACb,CAAC;wBAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;wBAChC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;wBAClC,OAAO,MAAM,IAAA,qBAAQ,EAAA,GAAG,MAAM,cAAc,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9E,CAAC;iBAAA;aACJ,CAAC,CAAC;QACP,CAAC;KAAA;CACJ;AAzCD,4EAyCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Recipe } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class UpgradeNode20 extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.node.migrate.upgrade-node-20";
|
|
4
|
+
readonly displayName = "Upgrade to Node.js 20";
|
|
5
|
+
readonly description = "Migrate deprecated APIs for Node.js 20 compatibility. Addresses deprecations that are end-of-life in Node 20.";
|
|
6
|
+
recipeList(): Promise<Recipe[]>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=upgrade-node-20.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade-node-20.d.ts","sourceRoot":"","sources":["../../src/migrate/upgrade-node-20.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAa5C,qBAAa,aAAc,SAAQ,MAAM;IACrC,QAAQ,CAAC,IAAI,kDAAkD;IAC/D,QAAQ,CAAC,WAAW,2BAA2B;IAC/C,QAAQ,CAAC,WAAW,mHAAmH;IAEjI,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAQxC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.UpgradeNode20 = void 0;
|
|
13
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
14
|
+
const rpc_1 = require("@openrewrite/rewrite/rpc");
|
|
15
|
+
const process_exit_code_1 = require("./process-exit-code");
|
|
16
|
+
const find_crypto_default_encoding_1 = require("./find-crypto-default-encoding");
|
|
17
|
+
const increase_node_engine_version_1 = require("./increase-node-engine-version");
|
|
18
|
+
const increase_node_engine_version_in_github_actions_1 = require("./increase-node-engine-version-in-github-actions");
|
|
19
|
+
const node20EolDeprecations = [
|
|
20
|
+
new process_exit_code_1.AvoidImplicitCoercionOfExitCode(),
|
|
21
|
+
new find_crypto_default_encoding_1.FindCryptoDefaultEncoding(),
|
|
22
|
+
];
|
|
23
|
+
class UpgradeNode20 extends rewrite_1.Recipe {
|
|
24
|
+
constructor() {
|
|
25
|
+
super(...arguments);
|
|
26
|
+
this.name = "org.openrewrite.node.migrate.upgrade-node-20";
|
|
27
|
+
this.displayName = "Upgrade to Node.js 20";
|
|
28
|
+
this.description = "Migrate deprecated APIs for Node.js 20 compatibility. Addresses deprecations that are end-of-life in Node 20.";
|
|
29
|
+
}
|
|
30
|
+
recipeList() {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
return [
|
|
33
|
+
new increase_node_engine_version_1.IncreaseNodeEngineVersion({ version: "20" }),
|
|
34
|
+
new increase_node_engine_version_in_github_actions_1.IncreaseNodeEngineVersionInGithubActions({ version: "20" }),
|
|
35
|
+
yield (0, rpc_1.prepareJavaRecipe)("org.openrewrite.nodejs.migrate.UpgradeNodeVersion", { version: "20" }),
|
|
36
|
+
...node20EolDeprecations,
|
|
37
|
+
];
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.UpgradeNode20 = UpgradeNode20;
|
|
42
|
+
//# sourceMappingURL=upgrade-node-20.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade-node-20.js","sourceRoot":"","sources":["../../src/migrate/upgrade-node-20.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,kDAA4C;AAC5C,kDAA2D;AAC3D,2DAAoE;AACpE,iFAAyE;AACzE,iFAAyE;AACzE,qHAA0G;AAG1G,MAAM,qBAAqB,GAAa;IACpC,IAAI,mDAA+B,EAAE;IACrC,IAAI,wDAAyB,EAAE;CAClC,CAAC;AAEF,MAAa,aAAc,SAAQ,gBAAM;IAAzC;;QACa,SAAI,GAAG,8CAA8C,CAAC;QACtD,gBAAW,GAAG,uBAAuB,CAAC;QACtC,gBAAW,GAAG,+GAA+G,CAAC;IAU3I,CAAC;IARS,UAAU;;YACZ,OAAO;gBACH,IAAI,wDAAyB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;gBAC9C,IAAI,yFAAwC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;gBAC7D,MAAM,IAAA,uBAAiB,EAAC,mDAAmD,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;gBAC7F,GAAG,qBAAqB;aAC3B,CAAC;QACN,CAAC;KAAA;CACJ;AAbD,sCAaC"}
|
|
@@ -2,7 +2,7 @@ import { Recipe } from "@openrewrite/rewrite";
|
|
|
2
2
|
export declare class UpgradeNode22 extends Recipe {
|
|
3
3
|
readonly name = "org.openrewrite.node.migrate.upgrade-node-22";
|
|
4
4
|
readonly displayName = "Upgrade to Node.js 22";
|
|
5
|
-
readonly description = "Migrate deprecated APIs for Node.js 22 compatibility.
|
|
5
|
+
readonly description = "Migrate deprecated APIs for Node.js 22 compatibility. Includes all migrations from Node.js 20, plus Node 21 and Node 22 deprecations.";
|
|
6
6
|
recipeList(): Promise<Recipe[]>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=upgrade-node-22.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-node-22.d.ts","sourceRoot":"","sources":["../../src/migrate/upgrade-node-22.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade-node-22.d.ts","sourceRoot":"","sources":["../../src/migrate/upgrade-node-22.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAoC5C,qBAAa,aAAc,SAAQ,MAAM;IACrC,QAAQ,CAAC,IAAI,kDAAkD;IAC/D,QAAQ,CAAC,WAAW,2BAA2B;IAC/C,QAAQ,CAAC,WAAW,2IAA2I;IAEzJ,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAWxC"}
|