mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-03-31 02:49:11 +02:00
chore: update dependencies
This commit is contained in:
6751
package-lock.json
generated
6751
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
78
package.json
78
package.json
@@ -30,11 +30,11 @@
|
||||
"build"
|
||||
],
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.374.0",
|
||||
"@aws-sdk/node-http-handler": "^3.374.0",
|
||||
"@octokit/oauth-app": "^6.0.0",
|
||||
"@aws-sdk/client-s3": "^3.540.0",
|
||||
"@smithy/node-http-handler": "^2.5.0",
|
||||
"@octokit/oauth-app": "^6.1.0",
|
||||
"@octokit/plugin-paginate-rest": "^8.0.0",
|
||||
"@octokit/rest": "^20.0.1",
|
||||
"@octokit/rest": "^20.0.2",
|
||||
"@opentelemetry/api": "^1.8.0",
|
||||
"@opentelemetry/auto-instrumentations-node": "^0.43.0",
|
||||
"@opentelemetry/exporter-metrics-otlp-grpc": "^0.49.1",
|
||||
@@ -44,58 +44,56 @@
|
||||
"@opentelemetry/sdk-metrics": "^1.22.0",
|
||||
"@opentelemetry/sdk-node": "^0.49.1",
|
||||
"@opentelemetry/sdk-trace-node": "^1.22.0",
|
||||
"@pm2/io": "^5.0.0",
|
||||
"archiver": "^5.3.1",
|
||||
"bullmq": "^2.3.2",
|
||||
"archiver": "^5.3.2",
|
||||
"bullmq": "^2.4.0",
|
||||
"compression": "^1.7.4",
|
||||
"connect-redis": "^7.0.1",
|
||||
"decompress-stream-to-s3": "^2.1.1",
|
||||
"dotenv": "^16.0.3",
|
||||
"express": "^4.18.2",
|
||||
"express-rate-limit": "^6.8.0",
|
||||
"express-session": "^1.17.3",
|
||||
"express-slow-down": "^1.6.0",
|
||||
"got": "^11.8.5",
|
||||
"inquirer": "^8.2.5",
|
||||
"istextorbinary": "^6.0.0",
|
||||
"dotenv": "^16.4.5",
|
||||
"express": "^4.19.2",
|
||||
"express-rate-limit": "^6.11.2",
|
||||
"express-session": "^1.18.0",
|
||||
"express-slow-down": "^2.0.1",
|
||||
"got": "^11.8.6",
|
||||
"inquirer": "^8.2.6",
|
||||
"istextorbinary": "^9.5.0",
|
||||
"marked": "^5.1.2",
|
||||
"mime-types": "^2.1.35",
|
||||
"mongoose": "^7.4.1",
|
||||
"mongoose": "^7.6.10",
|
||||
"node-schedule": "^2.1.1",
|
||||
"parse-github-url": "^1.0.2",
|
||||
"passport": "^0.6.0",
|
||||
"passport-github2": "^0.1.12",
|
||||
"rate-limit-redis": "^3.0.2",
|
||||
"redis": "^4.6.7",
|
||||
"textextensions": "^5.16.0",
|
||||
"rate-limit-redis": "^4.2.0",
|
||||
"redis": "^4.6.13",
|
||||
"textextensions": "^6.11.0",
|
||||
"ts-custom-error": "^3.3.1",
|
||||
"unzip-stream": "^0.3.1",
|
||||
"xml-flow": "^1.0.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/archiver": "^5.3.1",
|
||||
"@types/compression": "^1.7.1",
|
||||
"@types/connect-redis": "^0.0.20",
|
||||
"@types/express": "^4.17.14",
|
||||
"@types/archiver": "^5.3.4",
|
||||
"@types/compression": "^1.7.5",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/express-rate-limit": "^6.0.0",
|
||||
"@types/express-session": "^1.17.5",
|
||||
"@types/express-slow-down": "^1.3.2",
|
||||
"@types/express-session": "^1.18.0",
|
||||
"@types/express-slow-down": "^1.3.5",
|
||||
"@types/got": "^9.6.12",
|
||||
"@types/inquirer": "^8.0.0",
|
||||
"@types/marked": "^5.0.1",
|
||||
"@types/mime-types": "^2.1.0",
|
||||
"@types/node-schedule": "^2.1.0",
|
||||
"@types/parse-github-url": "^1.0.0",
|
||||
"@types/passport": "^1.0.11",
|
||||
"@types/passport-github2": "^1.2.5",
|
||||
"@types/tar-fs": "^2.0.1",
|
||||
"@types/unzip-stream": "^0.3.1",
|
||||
"@types/xml-flow": "^1.0.1",
|
||||
"chai": "^4.3.6",
|
||||
"mocha": "^10.1.0",
|
||||
"nodemon": "^3.0.1",
|
||||
"ts-node": "^10.9.1",
|
||||
"typescript": "^4.8.4"
|
||||
"@types/inquirer": "^8.2.10",
|
||||
"@types/marked": "^5.0.2",
|
||||
"@types/mime-types": "^2.1.4",
|
||||
"@types/node-schedule": "^2.1.6",
|
||||
"@types/parse-github-url": "^1.0.3",
|
||||
"@types/passport": "^1.0.16",
|
||||
"@types/passport-github2": "^1.2.9",
|
||||
"@types/tar-fs": "^2.0.4",
|
||||
"@types/unzip-stream": "^0.3.4",
|
||||
"@types/xml-flow": "^1.0.4",
|
||||
"chai": "^4.4.1",
|
||||
"mocha": "^10.4.0",
|
||||
"nodemon": "^3.1.0",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.4.3"
|
||||
},
|
||||
"nodemonConfig": {
|
||||
"ignore": [
|
||||
|
||||
@@ -3,7 +3,6 @@ import AnonymousError from "../AnonymousError";
|
||||
import * as db from "../database/database";
|
||||
import UserModel from "../database/users/users.model";
|
||||
import User from "../User";
|
||||
import * as io from "@pm2/io";
|
||||
|
||||
export async function getPullRequest(
|
||||
req: express.Request,
|
||||
@@ -76,7 +75,6 @@ export function isOwnerOrAdmin(authorizedUsers: string[], user: User) {
|
||||
}
|
||||
|
||||
function printError(error: any, req?: express.Request) {
|
||||
io.notifyError(error, error.value);
|
||||
if (error instanceof AnonymousError) {
|
||||
let message = `[ERROR] ${error.toString()} ${error.stack
|
||||
?.split("\n")[1]
|
||||
|
||||
@@ -2,7 +2,7 @@ import { createClient } from "redis";
|
||||
import { resolve, join } from "path";
|
||||
import { existsSync } from "fs";
|
||||
import rateLimit from "express-rate-limit";
|
||||
import * as slowDown from "express-slow-down";
|
||||
import { slowDown } from "express-slow-down";
|
||||
import RedisStore from "rate-limit-redis";
|
||||
import * as express from "express";
|
||||
import * as compression from "compression";
|
||||
@@ -71,7 +71,7 @@ export default async function start() {
|
||||
return request.socket.remoteAddress;
|
||||
}
|
||||
// remove port number from IPv4 addresses
|
||||
return request.ip.replace(/:\d+[^:]*$/, "");
|
||||
return (request.ip || "").replace(/:\d+[^:]*$/, "");
|
||||
}
|
||||
|
||||
const rate = rateLimit({
|
||||
@@ -79,10 +79,18 @@ export default async function start() {
|
||||
sendCommand: (...args: string[]) => redisClient.sendCommand(args),
|
||||
}),
|
||||
windowMs: 15 * 60 * 1000, // 15 minutes
|
||||
skip: async (request: express.Request, response: express.Response) => {
|
||||
try {
|
||||
const user = await getUser(request);
|
||||
if (user && user.isAdmin) return true;
|
||||
} catch (_) {
|
||||
// ignore: user not connected
|
||||
}
|
||||
return false;
|
||||
},
|
||||
max: async (request: express.Request, response: express.Response) => {
|
||||
try {
|
||||
const user = await getUser(request);
|
||||
if (user && user.isAdmin) return 0;
|
||||
if (user) return config.RATE_LIMIT;
|
||||
} catch (_) {
|
||||
// ignore: user not connected
|
||||
@@ -100,17 +108,15 @@ export default async function start() {
|
||||
const speedLimiter = slowDown({
|
||||
windowMs: 15 * 60 * 1000, // 15 minutes
|
||||
delayAfter: 50,
|
||||
delayMs: 150,
|
||||
delayMs: () => 150,
|
||||
maxDelayMs: 5000,
|
||||
headers: true,
|
||||
keyGenerator,
|
||||
});
|
||||
const webViewSpeedLimiter = slowDown({
|
||||
windowMs: 15 * 60 * 1000, // 15 minutes
|
||||
delayAfter: 200,
|
||||
delayMs: 150,
|
||||
delayMs: () => 150,
|
||||
maxDelayMs: 5000,
|
||||
headers: true,
|
||||
keyGenerator,
|
||||
});
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
PutObjectCommandInput,
|
||||
S3,
|
||||
} from "@aws-sdk/client-s3";
|
||||
import { NodeHttpHandler } from "@aws-sdk/node-http-handler";
|
||||
import { NodeHttpHandler } from "@smithy/node-http-handler";
|
||||
import config from "../../config";
|
||||
import { pipeline, Readable, Transform } from "stream";
|
||||
import ArchiveStreamToS3 from "decompress-stream-to-s3";
|
||||
@@ -40,6 +40,7 @@ export default class S3Storage implements StorageBase {
|
||||
requestHandler: new NodeHttpHandler({
|
||||
requestTimeout: timeout,
|
||||
connectionTimeout: timeout,
|
||||
|
||||
}),
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user