fix(security): revert archiver v8 and @fastify/static v9 upgrades

archiver v8 changed its default export, breaking all ZIP-producing
tools (pdf-to-image, split, batch, favicon, bulk-rename, svg-to-raster).
Reverted to v7 -- the lodash vulnerability via archiver is _.template
which is never called directly.

@fastify/static v9 has breaking changes incompatible with the current
static file serving setup. Reverted to v8 -- the path traversal CVEs
in v8 are mitigated by the existing path traversal guards in files.ts.

Updated edge-cases test to expect 400 for >64KB settings payloads
(new security limit).
This commit is contained in:
SnapOtter
2026-05-14 16:59:40 +08:00
parent 4e64ee2779
commit 20ab04c5bd
3 changed files with 91 additions and 51 deletions
+2 -2
View File
@@ -15,14 +15,14 @@
"@fastify/cors": "^11.0.0", "@fastify/cors": "^11.0.0",
"@fastify/multipart": "^9.0.0", "@fastify/multipart": "^9.0.0",
"@fastify/rate-limit": "^10.2.0", "@fastify/rate-limit": "^10.2.0",
"@fastify/static": "^9.1.0", "@fastify/static": "^8.1.0",
"@neplex/vectorizer": "^0.0.5", "@neplex/vectorizer": "^0.0.5",
"@scalar/fastify-api-reference": "^1.49.5", "@scalar/fastify-api-reference": "^1.49.5",
"@sentry/node": "^10.49.0", "@sentry/node": "^10.49.0",
"@snapotter/ai": "workspace:*", "@snapotter/ai": "workspace:*",
"@snapotter/image-engine": "workspace:*", "@snapotter/image-engine": "workspace:*",
"@snapotter/shared": "workspace:*", "@snapotter/shared": "workspace:*",
"archiver": "^8.0.0", "archiver": "^7.0.1",
"better-sqlite3": "^11.7.0", "better-sqlite3": "^11.7.0",
"dotenv": "^16.4.0", "dotenv": "^16.4.0",
"drizzle-orm": "^0.45.2", "drizzle-orm": "^0.45.2",
+87 -47
View File
@@ -100,8 +100,8 @@ importers:
specifier: ^10.2.0 specifier: ^10.2.0
version: 10.3.0 version: 10.3.0
'@fastify/static': '@fastify/static':
specifier: ^9.1.0 specifier: ^8.1.0
version: 9.1.3 version: 8.3.0
'@neplex/vectorizer': '@neplex/vectorizer':
specifier: ^0.0.5 specifier: ^0.0.5
version: 0.0.5 version: 0.0.5
@@ -121,8 +121,8 @@ importers:
specifier: workspace:* specifier: workspace:*
version: link:../../packages/shared version: link:../../packages/shared
archiver: archiver:
specifier: ^8.0.0 specifier: ^7.0.1
version: 8.0.0 version: 7.0.1
better-sqlite3: better-sqlite3:
specifier: ^11.7.0 specifier: ^11.7.0
version: 11.10.0 version: 11.10.0
@@ -1399,8 +1399,8 @@ packages:
'@fastify/send@4.1.0': '@fastify/send@4.1.0':
resolution: {integrity: sha512-TMYeQLCBSy2TOFmV95hQWkiTYgC/SEx7vMdV+wnZVX4tt8VBLKzmH8vV9OzJehV0+XBfg+WxPMt5wp+JBUKsVw==} resolution: {integrity: sha512-TMYeQLCBSy2TOFmV95hQWkiTYgC/SEx7vMdV+wnZVX4tt8VBLKzmH8vV9OzJehV0+XBfg+WxPMt5wp+JBUKsVw==}
'@fastify/static@9.1.3': '@fastify/static@8.3.0':
resolution: {integrity: sha512-aXrYtsiryLhRxRNaxNqsn7FUISeb7rB9q4eHUPIot5aeQBLNahnz1m6thzm7JWC1poSGXS9XrX8DvuMivp2hkQ==} resolution: {integrity: sha512-yKxviR5PH1OKNnisIzZKmgZSus0r2OZb8qCSbqmw34aolT4g3UlzYfeBRym+HJ1J471CR8e2ldNub4PubD1coA==}
'@iconify-json/simple-icons@1.2.74': '@iconify-json/simple-icons@1.2.74':
resolution: {integrity: sha512-yqaohfY6jnYjTVpuTkaBQHrWbdUrQyWXhau0r/0EZiNWYXPX/P8WWwl1DoLH5CbvDjjcWQw5J0zADhgCUklOqA==} resolution: {integrity: sha512-yqaohfY6jnYjTVpuTkaBQHrWbdUrQyWXhau0r/0EZiNWYXPX/P8WWwl1DoLH5CbvDjjcWQw5J0zADhgCUklOqA==}
@@ -1654,6 +1654,10 @@ packages:
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'} engines: {node: '>=12'}
'@isaacs/cliui@9.0.0':
resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==}
engines: {node: '>=18'}
'@istanbuljs/schema@0.1.3': '@istanbuljs/schema@0.1.3':
resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
engines: {node: '>=8'} engines: {node: '>=8'}
@@ -3565,9 +3569,13 @@ packages:
any-promise@1.3.0: any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
archiver@8.0.0: archiver-utils@5.0.2:
resolution: {integrity: sha512-fV1orZfsnPn9BaSByR/qE67rJCLJEy2Ox5bq7nJh+jquWaNh6Sfec75kJ2T6PtdGUbPQlrVoSVCEOa5SdiTQ1g==} resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==}
engines: {node: '>=18'} engines: {node: '>= 14'}
archiver@7.0.1:
resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==}
engines: {node: '>= 14'}
argparse@1.0.10: argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
@@ -3883,16 +3891,16 @@ packages:
compare-func@2.0.0: compare-func@2.0.0:
resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
compress-commons@7.0.1: compress-commons@6.0.2:
resolution: {integrity: sha512-g0S8KAD8qf4+V//pr3BfB1aBnARLXNz2Gx+jmHU0LEriUuoQUOPOulVquHKTJ8+EAIIO7fhseNDr9wK5Q9FKBQ==} resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==}
engines: {node: '>=18'} engines: {node: '>= 14'}
config-chain@1.1.13: config-chain@1.1.13:
resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
content-disposition@1.1.0: content-disposition@0.5.4:
resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
engines: {node: '>=18'} engines: {node: '>= 0.6'}
conventional-changelog-angular@8.3.0: conventional-changelog-angular@8.3.0:
resolution: {integrity: sha512-DOuBwYSqWzfwuRByY9O4oOIvDlkUCTDzfbOgcSbkY+imXXj+4tmrEFao3K+FxemClYfYnZzsvudbwrhje9VHDA==} resolution: {integrity: sha512-DOuBwYSqWzfwuRByY9O4oOIvDlkUCTDzfbOgcSbkY+imXXj+4tmrEFao3K+FxemClYfYnZzsvudbwrhje9VHDA==}
@@ -3947,9 +3955,9 @@ packages:
engines: {node: '>=0.8'} engines: {node: '>=0.8'}
hasBin: true hasBin: true
crc32-stream@7.0.1: crc32-stream@6.0.0:
resolution: {integrity: sha512-IBWsY8xznyQrcHn8h4bC8/4ErNke5elzgG8GcqF4RFPw6aHkWWRc7Tgw6upjaTX/CT/yQgqYENkxYsTYN+hW2g==} resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==}
engines: {node: '>=18'} engines: {node: '>= 14'}
cross-spawn@7.0.6: cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
@@ -4514,9 +4522,11 @@ packages:
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
hasBin: true hasBin: true
glob@13.0.6: glob@11.1.0:
resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==}
engines: {node: 18 || 20 || >=22} engines: {node: 20 || >=22}
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
hasBin: true
global@4.4.0: global@4.4.0:
resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==}
@@ -4754,6 +4764,10 @@ packages:
jackspeak@3.4.3: jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jackspeak@4.2.3:
resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==}
engines: {node: 20 || >=22}
java-properties@1.0.2: java-properties@1.0.2:
resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==}
engines: {node: '>= 0.6.0'} engines: {node: '>= 0.6.0'}
@@ -5202,6 +5216,10 @@ packages:
resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==}
engines: {node: 18 || 20 || >=22} engines: {node: 18 || 20 || >=22}
minimatch@5.1.9:
resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==}
engines: {node: '>=10'}
minimatch@9.0.9: minimatch@9.0.9:
resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==}
engines: {node: '>=16 || 14 >=14.17'} engines: {node: '>=16 || 14 >=14.17'}
@@ -5898,9 +5916,8 @@ packages:
resolution: {integrity: sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==} resolution: {integrity: sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==}
engines: {node: '>=8'} engines: {node: '>=8'}
readdir-glob@3.0.0: readdir-glob@1.1.3:
resolution: {integrity: sha512-AhNB2KgKeVJr16nK9LLZbJNWnYoT23ZrumNKFDebHBdkC8KHSqWo871JAUhoWC/RtjEVdqNMFpM6qrwRbaUqpw==} resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==}
engines: {node: '>=18'}
real-require@0.2.0: real-require@0.2.0:
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
@@ -6854,9 +6871,9 @@ packages:
resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==}
engines: {node: '>=18'} engines: {node: '>=18'}
zip-stream@7.0.5: zip-stream@6.0.1:
resolution: {integrity: sha512-dSvYKdvLsAHCDqPOhIwk/q5CvuWtTB3Dgpoe0uVEFjTzIOAmsQpprX25InCvrvJsirEbu1OHyy67n/kAj1Sw/w==} resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==}
engines: {node: '>=18'} engines: {node: '>= 14'}
zod@3.25.76: zod@3.25.76:
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
@@ -7664,14 +7681,14 @@ snapshots:
http-errors: 2.0.1 http-errors: 2.0.1
mime: 3.0.0 mime: 3.0.0
'@fastify/static@9.1.3': '@fastify/static@8.3.0':
dependencies: dependencies:
'@fastify/accept-negotiator': 2.0.1 '@fastify/accept-negotiator': 2.0.1
'@fastify/send': 4.1.0 '@fastify/send': 4.1.0
content-disposition: 1.1.0 content-disposition: 0.5.4
fastify-plugin: 5.1.0 fastify-plugin: 5.1.0
fastq: 1.20.1 fastq: 1.20.1
glob: 13.0.6 glob: 11.1.0
'@iconify-json/simple-icons@1.2.74': '@iconify-json/simple-icons@1.2.74':
dependencies: dependencies:
@@ -7860,6 +7877,8 @@ snapshots:
wrap-ansi: 8.1.0 wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0 wrap-ansi-cjs: wrap-ansi@7.0.0
'@isaacs/cliui@9.0.0': {}
'@istanbuljs/schema@0.1.3': {} '@istanbuljs/schema@0.1.3': {}
'@jimp/bmp@0.14.0(@jimp/custom@0.14.0)': '@jimp/bmp@0.14.0(@jimp/custom@0.14.0)':
@@ -9984,17 +10003,25 @@ snapshots:
any-promise@1.3.0: {} any-promise@1.3.0: {}
archiver@8.0.0: archiver-utils@5.0.2:
dependencies: dependencies:
async: 3.2.6 glob: 10.5.0
buffer-crc32: 1.0.0 graceful-fs: 4.2.11
is-stream: 4.0.1 is-stream: 2.0.1
lazystream: 1.0.1 lazystream: 1.0.1
lodash: 4.17.23
normalize-path: 3.0.0 normalize-path: 3.0.0
readable-stream: 4.7.0 readable-stream: 4.7.0
readdir-glob: 3.0.0
archiver@7.0.1:
dependencies:
archiver-utils: 5.0.2
async: 3.2.6
buffer-crc32: 1.0.0
readable-stream: 4.7.0
readdir-glob: 1.1.3
tar-stream: 3.1.8 tar-stream: 3.1.8
zip-stream: 7.0.5 zip-stream: 6.0.1
transitivePeerDependencies: transitivePeerDependencies:
- bare-abort-controller - bare-abort-controller
- bare-buffer - bare-buffer
@@ -10296,11 +10323,11 @@ snapshots:
array-ify: 1.0.0 array-ify: 1.0.0
dot-prop: 5.3.0 dot-prop: 5.3.0
compress-commons@7.0.1: compress-commons@6.0.2:
dependencies: dependencies:
crc-32: 1.2.2 crc-32: 1.2.2
crc32-stream: 7.0.1 crc32-stream: 6.0.0
is-stream: 4.0.1 is-stream: 2.0.1
normalize-path: 3.0.0 normalize-path: 3.0.0
readable-stream: 4.7.0 readable-stream: 4.7.0
@@ -10309,7 +10336,9 @@ snapshots:
ini: 1.3.8 ini: 1.3.8
proto-list: 1.2.4 proto-list: 1.2.4
content-disposition@1.1.0: {} content-disposition@0.5.4:
dependencies:
safe-buffer: 5.2.1
conventional-changelog-angular@8.3.0: conventional-changelog-angular@8.3.0:
dependencies: dependencies:
@@ -10355,7 +10384,7 @@ snapshots:
crc-32@1.2.2: {} crc-32@1.2.2: {}
crc32-stream@7.0.1: crc32-stream@6.0.0:
dependencies: dependencies:
crc-32: 1.2.2 crc-32: 1.2.2
readable-stream: 4.7.0 readable-stream: 4.7.0
@@ -10918,10 +10947,13 @@ snapshots:
package-json-from-dist: 1.0.1 package-json-from-dist: 1.0.1
path-scurry: 1.11.1 path-scurry: 1.11.1
glob@13.0.6: glob@11.1.0:
dependencies: dependencies:
foreground-child: 3.3.1
jackspeak: 4.2.3
minimatch: 10.2.4 minimatch: 10.2.4
minipass: 7.1.3 minipass: 7.1.3
package-json-from-dist: 1.0.1
path-scurry: 2.0.2 path-scurry: 2.0.2
global@4.4.0: global@4.4.0:
@@ -11159,6 +11191,10 @@ snapshots:
optionalDependencies: optionalDependencies:
'@pkgjs/parseargs': 0.11.0 '@pkgjs/parseargs': 0.11.0
jackspeak@4.2.3:
dependencies:
'@isaacs/cliui': 9.0.0
java-properties@1.0.2: {} java-properties@1.0.2: {}
jimp@0.14.0: jimp@0.14.0:
@@ -11723,6 +11759,10 @@ snapshots:
dependencies: dependencies:
brace-expansion: 5.0.4 brace-expansion: 5.0.4
minimatch@5.1.9:
dependencies:
brace-expansion: 2.0.2
minimatch@9.0.9: minimatch@9.0.9:
dependencies: dependencies:
brace-expansion: 2.0.2 brace-expansion: 2.0.2
@@ -12351,9 +12391,9 @@ snapshots:
dependencies: dependencies:
readable-stream: 4.7.0 readable-stream: 4.7.0
readdir-glob@3.0.0: readdir-glob@1.1.3:
dependencies: dependencies:
minimatch: 10.2.4 minimatch: 5.1.9
real-require@0.2.0: {} real-require@0.2.0: {}
@@ -13459,10 +13499,10 @@ snapshots:
yoctocolors@2.1.2: {} yoctocolors@2.1.2: {}
zip-stream@7.0.5: zip-stream@6.0.1:
dependencies: dependencies:
compress-commons: 7.0.1 archiver-utils: 5.0.2
normalize-path: 3.0.0 compress-commons: 6.0.2
readable-stream: 4.7.0 readable-stream: 4.7.0
zod@3.25.76: {} zod@3.25.76: {}
+2 -2
View File
@@ -774,7 +774,7 @@ describe("Settings with extreme values", () => {
body, body,
}); });
// Zod strips the unknown 'padding' key; should succeed with width: 100 // Settings payload exceeds the 64KB security limit
expect(res.statusCode).toBe(200); expect(res.statusCode).toBe(400);
}); });
}); });