fix(backend): fix type errors caused by dependency update

https: //github.com/misskey-dev/misskey/pull/16308
Co-Authored-By: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
This commit is contained in:
syuilo 2025-08-09 17:41:01 +09:00
parent 684dbfd626
commit ecc033f101
3 changed files with 12 additions and 29 deletions

View File

@ -118,7 +118,7 @@
"feed": "4.2.2", "feed": "4.2.2",
"file-type": "19.6.0", "file-type": "19.6.0",
"fluent-ffmpeg": "2.1.3", "fluent-ffmpeg": "2.1.3",
"form-data": "4.0.3", "form-data": "4.0.4",
"got": "14.4.7", "got": "14.4.7",
"happy-dom": "16.8.1", "happy-dom": "16.8.1",
"hpagent": "1.2.0", "hpagent": "1.2.0",

View File

@ -6,6 +6,7 @@
import * as http from 'node:http'; import * as http from 'node:http';
import * as https from 'node:https'; import * as https from 'node:https';
import * as net from 'node:net'; import * as net from 'node:net';
import * as stream from 'node:stream';
import ipaddr from 'ipaddr.js'; import ipaddr from 'ipaddr.js';
import CacheableLookup from 'cacheable-lookup'; import CacheableLookup from 'cacheable-lookup';
import fetch from 'node-fetch'; import fetch from 'node-fetch';
@ -26,12 +27,6 @@ export type HttpRequestSendOptions = {
validators?: ((res: Response) => void)[]; validators?: ((res: Response) => void)[];
}; };
declare module 'node:http' {
interface Agent {
createConnection(options: net.NetConnectOpts, callback?: (err: Error | null, stream: net.Socket) => void): net.Socket;
}
}
class HttpRequestServiceAgent extends http.Agent { class HttpRequestServiceAgent extends http.Agent {
constructor( constructor(
private config: Config, private config: Config,
@ -41,11 +36,11 @@ class HttpRequestServiceAgent extends http.Agent {
} }
@bindThis @bindThis
public createConnection(options: net.NetConnectOpts, callback?: (err: Error | null, stream: net.Socket) => void): net.Socket { public createConnection(options: http.ClientRequestArgs, callback?: (err: Error | null, stream: stream.Duplex) => void): stream.Duplex {
const socket = super.createConnection(options, callback) const socket = super.createConnection(options, callback)
.on('connect', () => { .on('connect', () => {
if (socket instanceof net.Socket && process.env.NODE_ENV === 'production') {
const address = socket.remoteAddress; const address = socket.remoteAddress;
if (process.env.NODE_ENV === 'production') {
if (address && ipaddr.isValid(address)) { if (address && ipaddr.isValid(address)) {
if (this.isPrivateIp(address)) { if (this.isPrivateIp(address)) {
socket.destroy(new Error(`Blocked address: ${address}`)); socket.destroy(new Error(`Blocked address: ${address}`));
@ -80,11 +75,11 @@ class HttpsRequestServiceAgent extends https.Agent {
} }
@bindThis @bindThis
public createConnection(options: net.NetConnectOpts, callback?: (err: Error | null, stream: net.Socket) => void): net.Socket { public createConnection(options: http.ClientRequestArgs, callback?: (err: Error | null, stream: stream.Duplex) => void): stream.Duplex {
const socket = super.createConnection(options, callback) const socket = super.createConnection(options, callback)
.on('connect', () => { .on('connect', () => {
if (socket instanceof net.Socket && process.env.NODE_ENV === 'production') {
const address = socket.remoteAddress; const address = socket.remoteAddress;
if (process.env.NODE_ENV === 'production') {
if (address && ipaddr.isValid(address)) { if (address && ipaddr.isValid(address)) {
if (this.isPrivateIp(address)) { if (this.isPrivateIp(address)) {
socket.destroy(new Error(`Blocked address: ${address}`)); socket.destroy(new Error(`Blocked address: ${address}`));

View File

@ -243,8 +243,8 @@ importers:
specifier: 2.1.3 specifier: 2.1.3
version: 2.1.3 version: 2.1.3
form-data: form-data:
specifier: 4.0.3 specifier: 4.0.4
version: 4.0.3 version: 4.0.4
got: got:
specifier: 14.4.7 specifier: 14.4.7
version: 14.4.7 version: 14.4.7
@ -6700,10 +6700,6 @@ packages:
resolution: {integrity: sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==} resolution: {integrity: sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==}
engines: {node: '>= 18'} engines: {node: '>= 18'}
form-data@4.0.3:
resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==}
engines: {node: '>= 6'}
form-data@4.0.4: form-data@4.0.4:
resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
@ -14803,7 +14799,7 @@ snapshots:
'@types/node-fetch@2.6.11': '@types/node-fetch@2.6.11':
dependencies: dependencies:
'@types/node': 22.17.1 '@types/node': 22.17.1
form-data: 4.0.3 form-data: 4.0.4
'@types/node@20.19.9': '@types/node@20.19.9':
dependencies: dependencies:
@ -14932,7 +14928,7 @@ snapshots:
'@types/cookiejar': 2.1.5 '@types/cookiejar': 2.1.5
'@types/methods': 1.1.4 '@types/methods': 1.1.4
'@types/node': 22.17.1 '@types/node': 22.17.1
form-data: 4.0.3 form-data: 4.0.4
'@types/supertest@6.0.3': '@types/supertest@6.0.3':
dependencies: dependencies:
@ -17694,14 +17690,6 @@ snapshots:
form-data-encoder@4.0.2: {} form-data-encoder@4.0.2: {}
form-data@4.0.3:
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
es-set-tostringtag: 2.1.0
hasown: 2.0.2
mime-types: 2.1.35
form-data@4.0.4: form-data@4.0.4:
dependencies: dependencies:
asynckit: 0.4.0 asynckit: 0.4.0