From 5e1ad34b55f449b20c7e7c838ea106e50ca408ed Mon Sep 17 00:00:00 2001 From: wood chen <95951386+woodchen-ink@users.noreply.github.com> Date: Mon, 9 Sep 2024 20:41:42 +0800 Subject: [PATCH 1/9] Create dependabot.yml --- .github/dependabot.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5f0889c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" From 050309a7c7be5cc68c6dc89e0b3f0840e7077c45 Mon Sep 17 00:00:00 2001 From: wood chen <95951386+woodchen-ink@users.noreply.github.com> Date: Mon, 9 Sep 2024 20:43:32 +0800 Subject: [PATCH 2/9] Update dependabot.yml --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5f0889c..dc2d51f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,6 +6,6 @@ version: 2 updates: - package-ecosystem: "npm" # See documentation for possible values - directory: "/" # Location of package manifests + directory: "/nodejs" # Location of package manifests schedule: interval: "weekly" From e20b894e4b805e705110071bda00dce21094a324 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:44:25 +0000 Subject: [PATCH 3/9] Bump winston from 3.13.1 to 3.14.2 in /nodejs Bumps [winston](https://github.com/winstonjs/winston) from 3.13.1 to 3.14.2. - [Release notes](https://github.com/winstonjs/winston/releases) - [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md) - [Commits](https://github.com/winstonjs/winston/compare/v3.13.1...v3.14.2) --- updated-dependencies: - dependency-name: winston dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- nodejs/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json index 0c44d67..f7ddddf 100644 --- a/nodejs/package-lock.json +++ b/nodejs/package-lock.json @@ -1071,9 +1071,9 @@ } }, "node_modules/winston": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.13.1.tgz", - "integrity": "sha512-SvZit7VFNvXRzbqGHsv5KSmgbEYR5EiQfDAL9gxYkRqa934Hnk++zze0wANKtMHcy/gI4W/3xmSDwlhf865WGw==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.14.2.tgz", + "integrity": "sha512-CO8cdpBB2yqzEf8v895L+GNKYJiEq8eKlHU38af3snQBQ+sdAIUepjMSguOIJC7ICbzm0ZI+Af2If4vIJrtmOg==", "dependencies": { "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", From bc819749086cb4f4d9119833fdeccdf0e207fe12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:44:30 +0000 Subject: [PATCH 4/9] Bump node-fetch from 2.7.0 to 3.3.2 in /nodejs Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.7.0 to 3.3.2. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v2.7.0...v3.3.2) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- nodejs/package-lock.json | 106 ++++++++++++++++++++++++++++----------- nodejs/package.json | 2 +- 2 files changed, 77 insertions(+), 31 deletions(-) diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json index 0c44d67..3563284 100644 --- a/nodejs/package-lock.json +++ b/nodejs/package-lock.json @@ -12,7 +12,7 @@ "compression": "^1.7.4", "express": "^4.17.1", "lru-cache": "^6.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^3.3.2", "winston": "^3.3.3", "winston-daily-rotate-file": "^5.0.0" } @@ -238,6 +238,14 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -394,6 +402,28 @@ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/file-stream-rotator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz", @@ -424,6 +454,17 @@ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -693,23 +734,39 @@ "node": ">= 0.6" } }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dependencies": { - "whatwg-url": "^5.0.0" + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" }, "engines": { - "node": "4.x || >=6.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" } }, "node_modules/object-hash": { @@ -1002,11 +1059,6 @@ "node": ">=0.6" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, "node_modules/triple-beam": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", @@ -1056,18 +1108,12 @@ "node": ">= 0.8" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" } }, "node_modules/winston": { diff --git a/nodejs/package.json b/nodejs/package.json index 72628b7..cbe3c3c 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -13,7 +13,7 @@ "compression": "^1.7.4", "express": "^4.17.1", "lru-cache": "^6.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^3.3.2", "winston": "^3.3.3", "winston-daily-rotate-file": "^5.0.0" } From 7a7e88940b990da25c5eef5104a4e34923ddc0e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:25:17 +0000 Subject: [PATCH 5/9] Bump lru-cache from 6.0.0 to 11.0.1 in /nodejs Bumps [lru-cache](https://github.com/isaacs/node-lru-cache) from 6.0.0 to 11.0.1. - [Changelog](https://github.com/isaacs/node-lru-cache/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/node-lru-cache/compare/v6.0.0...v11.0.1) --- updated-dependencies: - dependency-name: lru-cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- nodejs/package-lock.json | 18 +++++------------- nodejs/package.json | 2 +- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json index 16769bd..91b569f 100644 --- a/nodejs/package-lock.json +++ b/nodejs/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "compression": "^1.7.4", "express": "^4.17.1", - "lru-cache": "^6.0.0", + "lru-cache": "^11.0.1", "node-fetch": "^3.3.2", "winston": "^3.3.3", "winston-daily-rotate-file": "^5.0.0" @@ -644,14 +644,11 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz", + "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", "engines": { - "node": ">=10" + "node": "20 || >=22" } }, "node_modules/media-typer": { @@ -1166,11 +1163,6 @@ "engines": { "node": ">= 12.0.0" } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/nodejs/package.json b/nodejs/package.json index cbe3c3c..0e6ac5c 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -12,7 +12,7 @@ "dependencies": { "compression": "^1.7.4", "express": "^4.17.1", - "lru-cache": "^6.0.0", + "lru-cache": "^11.0.1", "node-fetch": "^3.3.2", "winston": "^3.3.3", "winston-daily-rotate-file": "^5.0.0" From 19a4c19a9b3a8be7edd670e9bc76e36d2eb69469 Mon Sep 17 00:00:00 2001 From: wood chen <95951386+woodchen-ink@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:28:53 +0800 Subject: [PATCH 6/9] Update app.js --- nodejs/app.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/nodejs/app.js b/nodejs/app.js index d2b07b9..9c8df90 100644 --- a/nodejs/app.js +++ b/nodejs/app.js @@ -1,12 +1,14 @@ -const express = require('express'); -const fetch = require('node-fetch'); -const LRU = require('lru-cache'); -const compression = require('compression'); -const winston = require('winston'); -require('winston-daily-rotate-file'); -const cluster = require('cluster'); -const numCPUs = require('os').cpus().length; -const path = require('path'); // 添加这行来导入 path 模块 +import express from 'express'; +import fetch from 'node-fetch'; +import LRU from 'lru-cache'; +import compression from 'compression'; +import winston from 'winston'; +import 'winston-daily-rotate-file'; +import cluster from 'cluster'; +import { cpus } from 'os'; +import path from 'path'; + +const numCPUs = cpus().length; const app = express(); const port = 5003; From 037dbb7127791c7a4a5fe492945784ee8d5457e1 Mon Sep 17 00:00:00 2001 From: wood chen <95951386+woodchen-ink@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:30:34 +0800 Subject: [PATCH 7/9] Update package.json --- nodejs/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/nodejs/package.json b/nodejs/package.json index cbe3c3c..a7a3f28 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -6,6 +6,7 @@ "scripts": { "test": "node app.js" }, + "type": "module", "keywords": [], "author": "", "license": "ISC", From 8d9c0dfc87b0641ba53ac4ad944e6e8f86b98dd5 Mon Sep 17 00:00:00 2001 From: wood chen <95951386+woodchen-ink@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:32:47 +0800 Subject: [PATCH 8/9] Update app.js --- nodejs/app.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/nodejs/app.js b/nodejs/app.js index 9c8df90..80c5168 100644 --- a/nodejs/app.js +++ b/nodejs/app.js @@ -7,6 +7,11 @@ import 'winston-daily-rotate-file'; import cluster from 'cluster'; import { cpus } from 'os'; import path from 'path'; +import { fileURLToPath } from 'url'; + +// 处理 __dirname +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); const numCPUs = cpus().length; @@ -22,14 +27,14 @@ const CSV_PATHS_URL = 'https://random-api.czl.net/url.json'; // 设置缓存 let csvPathsCache = null; let lastFetchTime = 0; -const CACHE_DURATION = 60 * 1000 *60 * 24; // 24小时 +const CACHE_DURATION = 60 * 1000 * 60 * 24; // 24小时 const csvCache = new LRU({ max: 100, // 最多缓存100个CSV文件 maxAge: 1000 * 60 * 60 * 24 // 缓存24小时 }); -//日志名称格式 +// 日志名称格式 const consoleFormat = winston.format.printf(({ level, message, timestamp }) => { return `${timestamp} ${level}: ${message}`; }); @@ -62,7 +67,7 @@ const logger = winston.createLogger({ filename: 'logs/application-%DATE%.log', datePattern: 'YYYY-MM-DD-HH', maxSize: '20m', - maxFiles: '7d', //日志保存的时间,超过这个时间的会自动删除旧文件 + maxFiles: '7d', // 日志保存的时间,超过这个时间的会自动删除旧文件 zippedArchive: false // 禁用压缩 }) ] From 4ae023afd703d30bddadeb99be46409a6af7e90f Mon Sep 17 00:00:00 2001 From: wood chen <95951386+woodchen-ink@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:44:36 +0800 Subject: [PATCH 9/9] Update app.js --- nodejs/app.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nodejs/app.js b/nodejs/app.js index 80c5168..9b67401 100644 --- a/nodejs/app.js +++ b/nodejs/app.js @@ -1,6 +1,6 @@ import express from 'express'; import fetch from 'node-fetch'; -import LRU from 'lru-cache'; +import { LRUCache } from 'lru-cache'; // 使用命名导入 import compression from 'compression'; import winston from 'winston'; import 'winston-daily-rotate-file'; @@ -29,9 +29,10 @@ let csvPathsCache = null; let lastFetchTime = 0; const CACHE_DURATION = 60 * 1000 * 60 * 24; // 24小时 -const csvCache = new LRU({ +// 使用新的 LRUCache 构造函数 +const csvCache = new LRUCache({ max: 100, // 最多缓存100个CSV文件 - maxAge: 1000 * 60 * 60 * 24 // 缓存24小时 + ttl: 1000 * 60 * 60 * 24 // 缓存24小时 }); // 日志名称格式