Compare commits

...
3 Commits
Author SHA1 Message Date
whyour 0bb41ebe96 新版本 v2.21.0 2026-07-25 13:28:44 +08:00
whyour d67f33df39 fix: 防止 task_before 污染 Node.js 依赖路径 2026-07-24 22:33:48 +08:00
whyour 24d539fc05 fix: 使用 npm 包安装 sqlite3 2026-07-19 00:40:40 +08:00
4 changed files with 79 additions and 50 deletions
+4 -6
View File
@@ -1,7 +1,7 @@
{
"name": "@whyour/qinglong",
"packageManager": "pnpm@8.3.1",
"version": "2.20.2-3",
"version": "2.21.0-16",
"description": "Timed task management platform supporting Python3, JavaScript, Shell, Typescript",
"repository": {
"type": "git",
@@ -21,9 +21,7 @@
"panel": "npm run build:back && node static/build/app.js",
"gen:proto": "protoc --experimental_allow_proto3_optional --plugin=./node_modules/.bin/protoc-gen-ts_proto ./back/protos/*.proto --ts_proto_out=./ --ts_proto_opt=outputServices=grpc-js,env=node,esModuleInterop=true,snakeToCamel=false",
"prettier": "prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'",
"postinstall": "max setup 2>/dev/null || true",
"test": "umi-test",
"test:coverage": "umi-test --coverage"
"postinstall": "max setup 2>/dev/null || true"
},
"gitHooks": {
"pre-commit": "lint-staged"
@@ -67,7 +65,7 @@
}
},
"overrides": {
"sqlite3": "git+https://github.com/whyour/node-sqlite3.git#v1.1.0",
"sqlite3": "npm:@whyour/sqlite3@1.1.0",
"@codemirror/state": "6.5.4",
"@codemirror/view": "6.39.16"
}
@@ -111,7 +109,7 @@
"request-ip": "3.3.0",
"sequelize": "^6.37.5",
"sockjs": "^0.3.24",
"sqlite3": "git+https://github.com/whyour/node-sqlite3.git#v1.1.0",
"sqlite3": "npm:@whyour/sqlite3@1.1.0",
"toad-scheduler": "^3.0.1",
"typedi": "^0.10.0",
"undici": "^7.9.0",
+37 -39
View File
@@ -1,11 +1,7 @@
lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
overrides:
sqlite3: git+https://github.com/whyour/node-sqlite3.git#v1.1.0
sqlite3: npm:@whyour/sqlite3@1.1.0
'@codemirror/state': 6.5.4
'@codemirror/view': 6.39.16
@@ -125,8 +121,8 @@ dependencies:
specifier: ^0.3.24
version: 0.3.24
sqlite3:
specifier: git+https://github.com/whyour/node-sqlite3.git#v1.1.0
version: github.com/whyour/node-sqlite3/4d29681eee3557890502d3859ec0fd6b6d13ccce
specifier: npm:@whyour/sqlite3@1.1.0
version: /@whyour/sqlite3@1.1.0
toad-scheduler:
specifier: ^3.0.1
version: 3.0.1
@@ -1630,8 +1626,8 @@ packages:
resolution: {integrity: sha512-1dNIOmiM0z4BIBwxmxEfA1yoxh1MF/6KPBbh20a5vphGV0ictKlgQsbJs6D6SkR6iJpGbpwRsa6PFMNlg9T9pQ==}
peerDependencies:
'@codemirror/language': ^6.0.0
'@codemirror/state': 6.5.4
'@codemirror/view': 6.39.16
'@codemirror/state': ^6.0.0
'@codemirror/view': ^6.0.0
'@lezer/common': ^1.0.0
dependencies:
'@codemirror/language': 6.10.6
@@ -3194,7 +3190,7 @@ packages:
resolution: {integrity: sha512-Ngs9jhElXN7efS9WvvCC/p6rXMbihna8eNLVBc421Zf+VcFd+pR4DOcS6yA9V22EKtAy4DEj7LtvEEIm0bb80A==}
engines: {node: '>= 18'}
dependencies:
sqlite3: github.com/whyour/node-sqlite3/4d29681eee3557890502d3859ec0fd6b6d13ccce
sqlite3: /@whyour/sqlite3@1.1.0
transitivePeerDependencies:
- encoding
- supports-color
@@ -3869,8 +3865,8 @@ packages:
peerDependencies:
'@codemirror/autocomplete': ^6.0.0
'@codemirror/language': ^6.0.0
'@codemirror/state': 6.5.4
'@codemirror/view': 6.39.16
'@codemirror/state': ^6.0.0
'@codemirror/view': ^6.0.0
'@lezer/common': ^1.0.0
'@lezer/highlight': ^1.0.0
'@lezer/lr': ^1.0.0
@@ -3889,8 +3885,8 @@ packages:
peerDependencies:
'@codemirror/autocomplete': ^6.0.0
'@codemirror/language': ^6.0.0
'@codemirror/state': 6.5.4
'@codemirror/view': 6.39.16
'@codemirror/state': ^6.0.0
'@codemirror/view': ^6.0.0
'@lezer/common': ^1.0.0
'@lezer/highlight': ^1.0.0
'@lezer/lr': ^1.0.0
@@ -3921,8 +3917,8 @@ packages:
'@codemirror/lang-html': ^6.2.0
'@codemirror/lang-javascript': ^6.1.1
'@codemirror/language': ^6.0.0
'@codemirror/state': 6.5.4
'@codemirror/view': 6.39.16
'@codemirror/state': ^6.0.0
'@codemirror/view': ^6.0.0
'@lezer/common': ^1.0.0
'@lezer/highlight': ^1.0.0
'@lezer/javascript': ^1.2.0
@@ -4825,8 +4821,8 @@ packages:
'@codemirror/language': '>=6.0.0'
'@codemirror/lint': '>=6.0.0'
'@codemirror/search': '>=6.0.0'
'@codemirror/state': 6.5.4
'@codemirror/view': 6.39.16
'@codemirror/state': '>=6.0.0'
'@codemirror/view': '>=6.0.0'
dependencies:
'@codemirror/autocomplete': 6.20.1
'@codemirror/commands': 6.7.1
@@ -4885,9 +4881,9 @@ packages:
resolution: {integrity: sha512-caYKGV6TfGLRV1HHD3p0G3FiVzKL1go7wes5XT2nWjB0+dTdyzyb81MKRSacptgZcotujfNO6QXn65uhETRAMw==}
peerDependencies:
'@babel/runtime': '>=7.11.0'
'@codemirror/state': 6.5.4
'@codemirror/state': '>=6.0.0'
'@codemirror/theme-one-dark': '>=6.0.0'
'@codemirror/view': 6.39.16
'@codemirror/view': '>=6.0.0'
codemirror: '>=6.0.0'
react: '>=16.8.0 || 18'
react-dom: '>=16.8.0 || 18'
@@ -5618,6 +5614,23 @@ packages:
- supports-color
dev: true
/@whyour/sqlite3@1.1.0:
resolution: {integrity: sha512-5g9xsjkv9sUepCvBBKmev6JSKSKjp0ebpW25uSsuV5kurIYrd7AnkbffNMNIswxwsQJSLPewVEX5ROsQfETfnA==}
requiresBuild: true
peerDependenciesMeta:
node-gyp:
optional: true
dependencies:
'@mapbox/node-pre-gyp': 1.0.11
node-addon-api: 4.3.0
tar: 6.2.1
optionalDependencies:
node-gyp: 12.4.0
transitivePeerDependencies:
- encoding
- supports-color
dev: false
/abbrev@1.1.1:
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
requiresBuild: true
@@ -13971,7 +13984,7 @@ packages:
retry-as-promised: 7.0.4
semver: 7.6.3
sequelize-pool: 7.1.0
sqlite3: github.com/whyour/node-sqlite3/4d29681eee3557890502d3859ec0fd6b6d13ccce
sqlite3: /@whyour/sqlite3@1.1.0
toposort-class: 1.0.1
uuid: 8.3.2
validator: 13.12.0
@@ -15810,21 +15823,6 @@ packages:
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
dev: true
github.com/whyour/node-sqlite3/4d29681eee3557890502d3859ec0fd6b6d13ccce:
resolution: {tarball: https://codeload.github.com/whyour/node-sqlite3/tar.gz/4d29681eee3557890502d3859ec0fd6b6d13ccce}
name: '@whyour/sqlite3'
version: 1.1.0
requiresBuild: true
peerDependenciesMeta:
node-gyp:
optional: true
dependencies:
'@mapbox/node-pre-gyp': 1.0.11
node-addon-api: 4.3.0
tar: 6.2.1
optionalDependencies:
node-gyp: 12.4.0
transitivePeerDependencies:
- encoding
- supports-color
dev: false
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
+5 -1
View File
@@ -98,7 +98,11 @@ function run() {
const newEnvObject = JSON.parse(envStr);
if (typeof newEnvObject === 'object' && newEnvObject !== null) {
for (const key in newEnvObject) {
if (Object.prototype.hasOwnProperty.call(newEnvObject, key)) {
if (
Object.prototype.hasOwnProperty.call(newEnvObject, key) &&
key !== 'NODE_PATH' &&
key !== 'QL_NODE_GLOBAL_PATH'
) {
process.env[key] = newEnvObject[key];
}
}
+33 -4
View File
@@ -1,6 +1,35 @@
version: 2.20.2
changeLogLink: https://t.me/jiao_long/434
publishTime: 2026-03-01 1800
version: 2.21.0
changeLogLink: https://t.me/jiao_long/436
publishTime: 2026-06-18 2300
changeLog: |
1. 修复 path 安全漏洞(重要)
1. shell 增加国际化支持
2. 接口提示信息国际化,更新国际化文案
3. 统一 Alpine/Debian 分支,QL_SCHEDULER 参数化调度
4. grpc 服务增加证书校验
5. 定时任务增加 work_dir 设置
6. 增加任务统计功能
7. 新增 OpeniLink 通知渠道
8. 支持自定义接收邮箱地址
9. 增加运行实例功能
10. 增加 sudo 命令判断
11. 延迟增加运行时间提示
12. 开机运行任务支持同时开始运行
13. 增加 localhost 检测
14. 增加环境变量标签功能
15. 修复路径穿越安全漏洞
16. 修复配置文件路径可能越权
17. 修复 work_dir 验证和目录判断
18. 修复多个 API 问题(getCronById、定时任务参数、任务退出码等)
19. 修复 ESM 依赖查询路径
20. 修复 CodeMirror 页面切换多实例崩溃
21. 修复 IPv6 网络连接问题
22. 修复内部服务 IP 地址
23. 修复 gRPC extra_schedules 为空时序列化报错
24. 修复 HITOKOTO 参数布尔/字符串类型处理
25. 修复 Server酱 返回错误时 undefined 异常
26. 修复环境变量 position 数据类型异常
27. 修复 Docker 健康检查 QlPort 环境变量读取
28. 修复任务统计日志
29. 升级 multer 解决 CVE 漏洞
30. 升级 nodemailer