Commit 98241c12 by Sweet Zhang

fix(test): 降级 jsdom 至 26 修复 worker 启动崩溃,并清理 env.d.ts 冲突标记

parent 3770118b
...@@ -15,6 +15,10 @@ VITE_OIDC_SCOPE=openid profile phone ...@@ -15,6 +15,10 @@ VITE_OIDC_SCOPE=openid profile phone
# 置为 true 才启用接口 mock(当前仅影响首页待办的假延迟),默认关闭。 # 置为 true 才启用接口 mock(当前仅影响首页待办的假延迟),默认关闭。
# VITE_USE_MOCK=false # VITE_USE_MOCK=false
# mock-only 本地核对模式:整条 OIDC 链路停用,用 localStorage 里的转介人身份直连后端。
# 只在本地 .env.development.local 里临时打开,切勿写进测试/生产构建。
# VITE_MOCK_ONLY=true
# 说明: # 说明:
# redirect_uri / post_logout_redirect_uri 由代码按当前域名自动拼出,无需配置。 # redirect_uri / post_logout_redirect_uri 由代码按当前域名自动拼出,无需配置。
# 上线 https://center.zuihuibi.cn 前,需在 IdP 应用里登记: # 上线 https://center.zuihuibi.cn 前,需在 IdP 应用里登记:
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
"@vitest/coverage-v8": "^5.0.5", "@vitest/coverage-v8": "^5.0.5",
"@vue/test-utils": "^2.5.1", "@vue/test-utils": "^2.5.1",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.20",
"jsdom": "^30.1.3", "jsdom": "^26.1.0",
"postcss": "^8.4.49", "postcss": "^8.4.49",
"tailwindcss": "^3.4.17", "tailwindcss": "^3.4.17",
"typescript": "~5.6.3", "typescript": "~5.6.3",
...@@ -45,37 +45,25 @@ ...@@ -45,37 +45,25 @@
} }
}, },
"node_modules/@asamuzakjp/css-color": { "node_modules/@asamuzakjp/css-color": {
"version": "7.1.9", "version": "3.2.0",
"resolved": "https://registry.npmmirror.com/@asamuzakjp/css-color/-/css-color-7.1.9.tgz", "resolved": "https://registry.npmmirror.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
"integrity": "sha512-vZ6JQVq8Ivgz6b/IBlAf90wZviXdluY13cQOPO+nJHbmXwGrPl2GcpqUY7a55/8ZVdfONXpCFMpRijOBCHNlcQ==", "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@csstools/css-calc": "^3.4.3", "@csstools/css-calc": "^2.1.3",
"@csstools/css-color-parser": "^4.2.6", "@csstools/css-color-parser": "^3.0.9",
"@csstools/css-parser-algorithms": "^4.0.2", "@csstools/css-parser-algorithms": "^3.0.4",
"@csstools/css-tokenizer": "^4.0.2", "@csstools/css-tokenizer": "^3.0.3",
"lru-cache": "^11.5.3" "lru-cache": "^10.4.3"
},
"engines": {
"node": "^22.22.2 || ^24.15.0 || >=26.0.0"
} }
}, },
"node_modules/@asamuzakjp/dom-selector": { "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
"version": "10.0.5", "version": "10.4.3",
"resolved": "https://registry.npmmirror.com/@asamuzakjp/dom-selector/-/dom-selector-10.0.5.tgz", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
"integrity": "sha512-EgmJ7oEaGQECTn3H3wmnQpEy4hKY66VvM7VQndwPIQob3p877BgbyOUE3EX0LgXQCciF2H8KMdR+RznqjMNOLw==", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "ISC"
"dependencies": {
"bidi-js": "^1.1.0",
"css-tree": "^3.2.1",
"is-potential-custom-element-name": "^1.0.1",
"lru-cache": "^11.5.3"
},
"engines": {
"node": "^22.22.2 || ^24.15.0 || >=26.0.0"
}
}, },
"node_modules/@babel/helper-string-parser": { "node_modules/@babel/helper-string-parser": {
"version": "7.29.11", "version": "7.29.11",
...@@ -133,23 +121,10 @@ ...@@ -133,23 +121,10 @@
"node": ">=18" "node": ">=18"
} }
}, },
"node_modules/@bramus/specificity": {
"version": "2.4.3",
"resolved": "https://registry.npmmirror.com/@bramus/specificity/-/specificity-2.4.3.tgz",
"integrity": "sha512-0GEz8qJWokkUVYQYRukmkSHIFNoBH8QTreeHrAFbvz1XFYc3Y+puhMs8PQ5x8GNugiC2l5jvDBXKLbBIByeSBw==",
"dev": true,
"license": "MIT",
"dependencies": {
"css-tree": "^3.2.1"
},
"bin": {
"specificity": "bin/cli.js"
}
},
"node_modules/@csstools/color-helpers": { "node_modules/@csstools/color-helpers": {
"version": "6.1.2", "version": "5.1.0",
"resolved": "https://registry.npmmirror.com/@csstools/color-helpers/-/color-helpers-6.1.2.tgz", "resolved": "https://registry.npmmirror.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
"integrity": "sha512-grhRy3OKmniaAEKXMjua5z/EODX0MSqBGjunw8+j/3HQjOnahs2AGhvEOIYVUWcU6ScApbhLhVrQTX8XqrMrow==", "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
...@@ -163,13 +138,13 @@ ...@@ -163,13 +138,13 @@
], ],
"license": "MIT-0", "license": "MIT-0",
"engines": { "engines": {
"node": ">=20.19.0" "node": ">=18"
} }
}, },
"node_modules/@csstools/css-calc": { "node_modules/@csstools/css-calc": {
"version": "3.4.3", "version": "2.1.4",
"resolved": "https://registry.npmmirror.com/@csstools/css-calc/-/css-calc-3.4.3.tgz", "resolved": "https://registry.npmmirror.com/@csstools/css-calc/-/css-calc-2.1.4.tgz",
"integrity": "sha512-iex20d8CHVkyvg6B7UKV7uHnI2Bqo9g+EFfT9E0y+GvTvhZ/DwONJ+9aKb1dlqm0ZiGsL5RXjp0fCoJYnkeDjA==", "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
...@@ -183,17 +158,17 @@ ...@@ -183,17 +158,17 @@
], ],
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=20.19.0" "node": ">=18"
}, },
"peerDependencies": { "peerDependencies": {
"@csstools/css-parser-algorithms": "^4.0.2", "@csstools/css-parser-algorithms": "^3.0.5",
"@csstools/css-tokenizer": "^4.0.2" "@csstools/css-tokenizer": "^3.0.4"
} }
}, },
"node_modules/@csstools/css-color-parser": { "node_modules/@csstools/css-color-parser": {
"version": "4.2.6", "version": "3.1.0",
"resolved": "https://registry.npmmirror.com/@csstools/css-color-parser/-/css-color-parser-4.2.6.tgz", "resolved": "https://registry.npmmirror.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
"integrity": "sha512-iiPQ3iRWwnJkeEn6RIu6SJPr7hYrLz6XZ9s/QZl+2/LI5KQVjpl2fdmDSZKuD4xP6GMmMPgHFFXg6k1Wkz0Trg==", "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
...@@ -207,21 +182,21 @@ ...@@ -207,21 +182,21 @@
], ],
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@csstools/color-helpers": "^6.1.2", "@csstools/color-helpers": "^5.1.0",
"@csstools/css-calc": "^3.4.3" "@csstools/css-calc": "^2.1.4"
}, },
"engines": { "engines": {
"node": ">=20.19.0" "node": ">=18"
}, },
"peerDependencies": { "peerDependencies": {
"@csstools/css-parser-algorithms": "^4.0.2", "@csstools/css-parser-algorithms": "^3.0.5",
"@csstools/css-tokenizer": "^4.0.2" "@csstools/css-tokenizer": "^3.0.4"
} }
}, },
"node_modules/@csstools/css-parser-algorithms": { "node_modules/@csstools/css-parser-algorithms": {
"version": "4.0.2", "version": "3.0.5",
"resolved": "https://registry.npmmirror.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.2.tgz", "resolved": "https://registry.npmmirror.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
"integrity": "sha512-40cSKyMvK+tq4qz6Awrlye2WGuOKt3FwPgtGg6KTfbHOWNw+Rk1rzbAtZnZ6IBhsY491HLRnDXwoyBAijmmILA==", "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
...@@ -235,41 +210,16 @@ ...@@ -235,41 +210,16 @@
], ],
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=20.19.0" "node": ">=18"
}, },
"peerDependencies": { "peerDependencies": {
"@csstools/css-tokenizer": "^4.0.2" "@csstools/css-tokenizer": "^3.0.4"
}
},
"node_modules/@csstools/css-syntax-patches-for-csstree": {
"version": "1.1.15",
"resolved": "https://registry.npmmirror.com/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.15.tgz",
"integrity": "sha512-J0u7HkVl2nzSlhsiTOp4AmwcUQ3D+mGEEKfBy/7To5/y7F2OHwyLrXfrhR0SMgr4p5Lo+eaMVSeai24zUcBIxA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/csstools"
},
{
"type": "opencollective",
"url": "https://opencollective.com/csstools"
}
],
"license": "MIT-0",
"peerDependencies": {
"css-tree": "^3.2.1"
},
"peerDependenciesMeta": {
"css-tree": {
"optional": true
}
} }
}, },
"node_modules/@csstools/css-tokenizer": { "node_modules/@csstools/css-tokenizer": {
"version": "4.0.2", "version": "3.0.4",
"resolved": "https://registry.npmmirror.com/@csstools/css-tokenizer/-/css-tokenizer-4.0.2.tgz", "resolved": "https://registry.npmmirror.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
"integrity": "sha512-OoKoR0f76dCY666JlcbhmVTs2drYj1GUXZTYTcbUgJjh9Nv41aFfZ21bPQTERm5+L5cBDo466NltB2lplS5GBw==", "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
...@@ -283,7 +233,7 @@ ...@@ -283,7 +233,7 @@
], ],
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=20.19.0" "node": ">=18"
} }
}, },
"node_modules/@esbuild/aix-ppc64": { "node_modules/@esbuild/aix-ppc64": {
...@@ -728,24 +678,6 @@ ...@@ -728,24 +678,6 @@
"node": ">=18" "node": ">=18"
} }
}, },
"node_modules/@exodus/bytes": {
"version": "1.16.0",
"resolved": "https://registry.npmmirror.com/@exodus/bytes/-/bytes-1.16.0.tgz",
"integrity": "sha512-IcpW84uEn3N7ETtNZMlxKhfl6Pec8rUNGOTBtWbK1FKhJxIFAptZyVrvVRVBimAJxJCgc3PxepxkdWWG4DVzfA==",
"dev": true,
"license": "MIT",
"engines": {
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"@noble/hashes": "^1.8.0 || ^2.0.0"
},
"peerDependenciesMeta": {
"@noble/hashes": {
"optional": true
}
}
},
"node_modules/@headlessui/vue": { "node_modules/@headlessui/vue": {
"version": "1.7.23", "version": "1.7.23",
"resolved": "https://registry.npmmirror.com/@headlessui/vue/-/vue-1.7.23.tgz", "resolved": "https://registry.npmmirror.com/@headlessui/vue/-/vue-1.7.23.tgz",
...@@ -1736,16 +1668,6 @@ ...@@ -1736,16 +1668,6 @@
"node": ">=6.0.0" "node": ">=6.0.0"
} }
}, },
"node_modules/bidi-js": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/bidi-js/-/bidi-js-1.1.0.tgz",
"integrity": "sha512-fX1Onk0tdVPC7obPWB5EbJ1z7NVhLq4m2xZLq2YXBkxzMXIGRpNMU88n0EPgWseKl12J7zXs7qrDxPK4sRs2fg==",
"dev": true,
"license": "MIT",
"dependencies": {
"require-from-string": "^2.0.2"
}
},
"node_modules/binary-extensions": { "node_modules/binary-extensions": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
...@@ -1941,20 +1863,6 @@ ...@@ -1941,20 +1863,6 @@
"proto-list": "~1.2.1" "proto-list": "~1.2.1"
} }
}, },
"node_modules/css-tree": {
"version": "3.2.1",
"resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-3.2.1.tgz",
"integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
"dev": true,
"license": "MIT",
"dependencies": {
"mdn-data": "2.27.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
}
},
"node_modules/cssesc": { "node_modules/cssesc": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz",
...@@ -1968,6 +1876,20 @@ ...@@ -1968,6 +1876,20 @@
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/cssstyle": {
"version": "4.6.0",
"resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-4.6.0.tgz",
"integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@asamuzakjp/css-color": "^3.2.0",
"rrweb-cssom": "^0.8.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/csstype": { "node_modules/csstype": {
"version": "3.2.3", "version": "3.2.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz", "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz",
...@@ -1975,17 +1897,17 @@ ...@@ -1975,17 +1897,17 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/data-urls": { "node_modules/data-urls": {
"version": "8.0.0", "version": "5.0.0",
"resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-8.0.0.tgz", "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-5.0.0.tgz",
"integrity": "sha512-JQUCCK+/CAGbGGx618PlFZMXH81Jtj7t73CHv9dd/zVWvxgGT2zLFRjnKb+Ng46GIwcy+f7f88qd4duqllK+WQ==", "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"whatwg-mimetype": "^5.0.0", "whatwg-mimetype": "^4.0.0",
"whatwg-url": "^17.1.2" "whatwg-url": "^14.0.0"
}, },
"engines": { "engines": {
"node": "^22.14.0 || >=24.0.0" "node": ">=18"
} }
}, },
"node_modules/dayjs": { "node_modules/dayjs": {
...@@ -2565,16 +2487,40 @@ ...@@ -2565,16 +2487,40 @@
} }
}, },
"node_modules/html-encoding-sniffer": { "node_modules/html-encoding-sniffer": {
"version": "7.0.0", "version": "4.0.0",
"resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-7.0.0.tgz", "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
"integrity": "sha512-UikN5yr7xsCDAq87Or5or0PAlD3HJJOKVzM05az588WnpDJ4Ux7a2A53Qi6gofGg2/EtvF/H4hCi/TXfCW4Y6w==", "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@exodus/bytes": "^1.15.1" "whatwg-encoding": "^3.1.1"
}, },
"engines": { "engines": {
"node": "^22.13.0 || >=24.0.0" "node": ">=18"
}
},
"node_modules/http-proxy-agent": {
"version": "7.0.2",
"resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
"integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
"license": "MIT",
"dependencies": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/http-proxy-agent/node_modules/agent-base": {
"version": "7.1.4",
"resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-7.1.4.tgz",
"integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 14"
} }
}, },
"node_modules/https-proxy-agent": { "node_modules/https-proxy-agent": {
...@@ -2590,6 +2536,19 @@ ...@@ -2590,6 +2536,19 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
"license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/ini": { "node_modules/ini": {
"version": "1.3.8", "version": "1.3.8",
"resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz",
...@@ -2713,38 +2672,38 @@ ...@@ -2713,38 +2672,38 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/jsdom": { "node_modules/jsdom": {
"version": "30.1.3", "version": "26.1.0",
"resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-30.1.3.tgz", "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-26.1.0.tgz",
"integrity": "sha512-hQMUPvRgN7KxsfIytDQji7bimuJeRQa6Qo5+iuiZQk5CafeRxLIA10/cG5YCBFNpD9RO3oqIiN4CO1Y44kxqXg==", "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@asamuzakjp/css-color": "^7.1.3", "cssstyle": "^4.2.1",
"@asamuzakjp/dom-selector": "^10.0.3", "data-urls": "^5.0.0",
"@bramus/specificity": "^2.4.2", "decimal.js": "^10.5.0",
"@csstools/css-syntax-patches-for-csstree": "^1.1.15", "html-encoding-sniffer": "^4.0.0",
"@exodus/bytes": "^1.16.0", "http-proxy-agent": "^7.0.2",
"css-tree": "^3.2.1", "https-proxy-agent": "^7.0.6",
"data-urls": "^8.0.0",
"decimal.js": "^10.6.0",
"html-encoding-sniffer": "^7.0.0",
"is-potential-custom-element-name": "^1.0.1", "is-potential-custom-element-name": "^1.0.1",
"lru-cache": "^11.5.3", "nwsapi": "^2.2.16",
"parse5": "^8.0.1", "parse5": "^7.2.1",
"rrweb-cssom": "^0.8.0",
"saxes": "^6.0.0", "saxes": "^6.0.0",
"tough-cookie": "^6.0.2", "symbol-tree": "^3.2.4",
"undici": "^8.12.1", "tough-cookie": "^5.1.1",
"w3c-xmlserializer": "^6.0.0", "w3c-xmlserializer": "^5.0.0",
"webidl-conversions": "^8.0.1", "webidl-conversions": "^7.0.0",
"whatwg-mimetype": "^5.0.0", "whatwg-encoding": "^3.1.1",
"whatwg-url": "^17.2.0", "whatwg-mimetype": "^4.0.0",
"whatwg-url": "^14.1.1",
"ws": "^8.18.0",
"xml-name-validator": "^5.0.0" "xml-name-validator": "^5.0.0"
}, },
"engines": { "engines": {
"node": "^22.22.2 || ^24.15.0 || >=26.0.0" "node": ">=18"
}, },
"peerDependencies": { "peerDependencies": {
"canvas": "^3.2.3" "canvas": "^3.0.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"canvas": { "canvas": {
...@@ -2752,6 +2711,30 @@ ...@@ -2752,6 +2711,30 @@
} }
} }
}, },
"node_modules/jsdom/node_modules/agent-base": {
"version": "7.1.4",
"resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-7.1.4.tgz",
"integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 14"
}
},
"node_modules/jsdom/node_modules/https-proxy-agent": {
"version": "7.0.6",
"resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
"integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
"license": "MIT",
"dependencies": {
"agent-base": "^7.1.2",
"debug": "4"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/jwt-decode": { "node_modules/jwt-decode": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmmirror.com/jwt-decode/-/jwt-decode-4.0.0.tgz", "resolved": "https://registry.npmmirror.com/jwt-decode/-/jwt-decode-4.0.0.tgz",
...@@ -2821,13 +2804,6 @@ ...@@ -2821,13 +2804,6 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"node_modules/mdn-data": {
"version": "2.27.1",
"resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.27.1.tgz",
"integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
"dev": true,
"license": "CC0-1.0"
},
"node_modules/merge2": { "node_modules/merge2": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
...@@ -2978,6 +2954,13 @@ ...@@ -2978,6 +2954,13 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/nwsapi": {
"version": "2.2.28",
"resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.28.tgz",
"integrity": "sha512-IlVB7OS7qrOsVYlpnFIkETjMwT9jwvmocJmmM+GZU/PAB3uGi9Ezd7vcWhWBUnSc0ya4ppmQITOyP1ez9gg8cg==",
"dev": true,
"license": "MIT"
},
"node_modules/object-assign": { "node_modules/object-assign": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
...@@ -3025,26 +3008,26 @@ ...@@ -3025,26 +3008,26 @@
} }
}, },
"node_modules/parse5": { "node_modules/parse5": {
"version": "8.0.1", "version": "7.3.0",
"resolved": "https://registry.npmmirror.com/parse5/-/parse5-8.0.1.tgz", "resolved": "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz",
"integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"entities": "^8.0.0" "entities": "^6.0.0"
}, },
"funding": { "funding": {
"url": "https://github.com/inikulin/parse5?sponsor=1" "url": "https://github.com/inikulin/parse5?sponsor=1"
} }
}, },
"node_modules/parse5/node_modules/entities": { "node_modules/parse5/node_modules/entities": {
"version": "8.1.0", "version": "6.0.1",
"resolved": "https://registry.npmmirror.com/entities/-/entities-8.1.0.tgz", "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz",
"integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
"dev": true, "dev": true,
"license": "BSD-2-Clause", "license": "BSD-2-Clause",
"engines": { "engines": {
"node": ">=20.19.0" "node": ">=0.12"
}, },
"funding": { "funding": {
"url": "https://github.com/fb55/entities?sponsor=1" "url": "https://github.com/fb55/entities?sponsor=1"
...@@ -3361,16 +3344,6 @@ ...@@ -3361,16 +3344,6 @@
"node": ">=8.10.0" "node": ">=8.10.0"
} }
}, },
"node_modules/require-from-string": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/resolve": { "node_modules/resolve": {
"version": "1.22.13", "version": "1.22.13",
"resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.13.tgz", "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.13.tgz",
...@@ -3450,6 +3423,13 @@ ...@@ -3450,6 +3423,13 @@
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
"node_modules/rrweb-cssom": {
"version": "0.8.0",
"resolved": "https://registry.npmmirror.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
"integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
"dev": true,
"license": "MIT"
},
"node_modules/run-parallel": { "node_modules/run-parallel": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
...@@ -3474,6 +3454,13 @@ ...@@ -3474,6 +3454,13 @@
"queue-microtask": "^1.2.2" "queue-microtask": "^1.2.2"
} }
}, },
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true,
"license": "MIT"
},
"node_modules/saxes": { "node_modules/saxes": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz", "resolved": "https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz",
...@@ -3552,6 +3539,13 @@ ...@@ -3552,6 +3539,13 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true,
"license": "MIT"
},
"node_modules/tailwindcss": { "node_modules/tailwindcss": {
"version": "3.4.19", "version": "3.4.19",
"resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.19.tgz", "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.19.tgz",
...@@ -3692,22 +3686,22 @@ ...@@ -3692,22 +3686,22 @@
} }
}, },
"node_modules/tldts": { "node_modules/tldts": {
"version": "7.4.19", "version": "6.1.86",
"resolved": "https://registry.npmmirror.com/tldts/-/tldts-7.4.19.tgz", "resolved": "https://registry.npmmirror.com/tldts/-/tldts-6.1.86.tgz",
"integrity": "sha512-48dH6aSpQnpbzDUc4vIQZ1VjB8tkK+e8c1yx05/SZK+rkssgjEOlxDd/yU8/a4vGYQ9vRgJr9dwMq9TJ0b3X2Q==", "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tldts-core": "^7.4.19" "tldts-core": "^6.1.86"
}, },
"bin": { "bin": {
"tldts": "bin/cli.js" "tldts": "bin/cli.js"
} }
}, },
"node_modules/tldts-core": { "node_modules/tldts-core": {
"version": "7.4.19", "version": "6.1.86",
"resolved": "https://registry.npmmirror.com/tldts-core/-/tldts-core-7.4.19.tgz", "resolved": "https://registry.npmmirror.com/tldts-core/-/tldts-core-6.1.86.tgz",
"integrity": "sha512-goNXV6Ho9TIOfpJZanTd6CKG5DyYgYAL+k+22T0SLh8l6+KHIfBUPFuePuSZv05UttIaaLmI9tb7TmGIdK5AkQ==", "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
...@@ -3725,29 +3719,29 @@ ...@@ -3725,29 +3719,29 @@
} }
}, },
"node_modules/tough-cookie": { "node_modules/tough-cookie": {
"version": "6.0.2", "version": "5.1.2",
"resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-6.0.2.tgz", "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-5.1.2.tgz",
"integrity": "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==", "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dev": true, "dev": true,
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"dependencies": { "dependencies": {
"tldts": "^7.0.5" "tldts": "^6.1.32"
}, },
"engines": { "engines": {
"node": ">=16" "node": ">=16"
} }
}, },
"node_modules/tr46": { "node_modules/tr46": {
"version": "7.0.0", "version": "5.1.1",
"resolved": "https://registry.npmmirror.com/tr46/-/tr46-7.0.0.tgz", "resolved": "https://registry.npmmirror.com/tr46/-/tr46-5.1.1.tgz",
"integrity": "sha512-BcDSDW+SIGWVOns1Zm6Yg91q9AEj7eaID0QDY9oIqJD1A8dscNwMcl9Sms2DeuWCNov1X0/oXanHGYQBSLwZsg==", "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"punycode": "^2.3.1" "punycode": "^2.3.1"
}, },
"engines": { "engines": {
"node": "^22.14.0 || >=24.0.0" "node": ">=18"
} }
}, },
"node_modules/ts-interface-checker": { "node_modules/ts-interface-checker": {
...@@ -3771,16 +3765,6 @@ ...@@ -3771,16 +3765,6 @@
"node": ">=14.17" "node": ">=14.17"
} }
}, },
"node_modules/undici": {
"version": "8.12.3",
"resolved": "https://registry.npmmirror.com/undici/-/undici-8.12.3.tgz",
"integrity": "sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=22.19.0"
}
},
"node_modules/update-browserslist-db": { "node_modules/update-browserslist-db": {
"version": "1.3.4", "version": "1.3.4",
"resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.3.4.tgz", "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.3.4.tgz",
...@@ -4183,51 +4167,64 @@ ...@@ -4183,51 +4167,64 @@
} }
}, },
"node_modules/w3c-xmlserializer": { "node_modules/w3c-xmlserializer": {
"version": "6.0.0", "version": "5.0.0",
"resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-6.0.0.tgz", "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
"integrity": "sha512-4Nsy8K5Tr6SPDH9jhKJOHf7ChDrc1zufZTVSF7x72hwuEXBqxqk9G6cK+K2NRUtB3iELRJqjXb4JPDMBjMTl2Q==", "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"xml-name-validator": "^5.0.0" "xml-name-validator": "^5.0.0"
}, },
"engines": { "engines": {
"node": "^22.22.2 || ^24.15.0 || >=26.0.0" "node": ">=18"
} }
}, },
"node_modules/webidl-conversions": { "node_modules/webidl-conversions": {
"version": "8.0.1", "version": "7.0.0",
"resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-8.0.1.tgz", "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
"integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"dev": true, "dev": true,
"license": "BSD-2-Clause", "license": "BSD-2-Clause",
"engines": { "engines": {
"node": ">=20" "node": ">=12"
}
},
"node_modules/whatwg-encoding": {
"version": "3.1.1",
"resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
"integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
"deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation",
"dev": true,
"license": "MIT",
"dependencies": {
"iconv-lite": "0.6.3"
},
"engines": {
"node": ">=18"
} }
}, },
"node_modules/whatwg-mimetype": { "node_modules/whatwg-mimetype": {
"version": "5.0.0", "version": "4.0.0",
"resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
"integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=20" "node": ">=18"
} }
}, },
"node_modules/whatwg-url": { "node_modules/whatwg-url": {
"version": "17.3.0", "version": "14.2.0",
"resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-17.3.0.tgz", "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-14.2.0.tgz",
"integrity": "sha512-KwOAJrpf+GTgBvcBQJcP38sMF0DsQKdwtG+TxM2pW44P6E5k0hDbWrDmyuJDIF0Uef0aQq0ZoJs+5oI+k8ddhg==", "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@exodus/bytes": "^1.16.0", "tr46": "^5.1.0",
"tr46": "^7.0.0", "webidl-conversions": "^7.0.0"
"webidl-conversions": "^8.0.1"
}, },
"engines": { "engines": {
"node": "^22.14.0 || >=24.0.0" "node": ">=18"
} }
}, },
"node_modules/why-is-node-running": { "node_modules/why-is-node-running": {
...@@ -4243,6 +4240,28 @@ ...@@ -4243,6 +4240,28 @@
"node": ">=20.11" "node": ">=20.11"
} }
}, },
"node_modules/ws": {
"version": "8.22.0",
"resolved": "https://registry.npmmirror.com/ws/-/ws-8.22.0.tgz",
"integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/xml-name-validator": { "node_modules/xml-name-validator": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz", "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
......
...@@ -3,14 +3,20 @@ ...@@ -3,14 +3,20 @@
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"type": "module", "type": "module",
"engines": {
"node": ">=20.19.0"
},
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"prebuild": "node scripts/check-node.mjs",
"build": "vue-tsc --noEmit && vite build", "build": "vue-tsc --noEmit && vite build",
"preview": "vite preview", "preview": "vite preview",
"type-check": "vue-tsc --noEmit", "type-check": "vue-tsc --noEmit",
"pretest": "node scripts/check-node.mjs",
"test": "vitest run --config vitest.config.ts", "test": "vitest run --config vitest.config.ts",
"test:watch": "vitest --config vitest.config.ts", "test:watch": "vitest --config vitest.config.ts",
"test:cov": "vitest run --coverage --config vitest.config.ts" "test:cov": "vitest run --coverage --config vitest.config.ts",
"check:node": "node scripts/check-node.mjs"
}, },
"dependencies": { "dependencies": {
"@headlessui/vue": "^1.7.23", "@headlessui/vue": "^1.7.23",
...@@ -27,7 +33,7 @@ ...@@ -27,7 +33,7 @@
"@vitest/coverage-v8": "^5.0.5", "@vitest/coverage-v8": "^5.0.5",
"@vue/test-utils": "^2.5.1", "@vue/test-utils": "^2.5.1",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.20",
"jsdom": "^30.1.3", "jsdom": "^26.1.0",
"postcss": "^8.4.49", "postcss": "^8.4.49",
"tailwindcss": "^3.4.17", "tailwindcss": "^3.4.17",
"typescript": "~5.6.3", "typescript": "~5.6.3",
......
/**
* Node 版本预检(npm test / npm run build 前自动执行)。
*
* vite 6 / vitest 5 / jsdom 都有 Node 下限。版本过低时 vitest 不会给出可读提示,
* 而是在启动 worker 时抛出 `TypeError: Cannot read properties of undefined (reading 'bind')`
* (jsdom 30 依赖的 undici 8 用到了 Node 22.15+ 才有的 zlib.createZstdDecompress),
* 极难定位。这里提前拦截,直接告诉使用者该切哪个版本。
*/
const REQUIRED_MAJOR = 20
const REQUIRED_MINOR = 19
const [major, minor] = process.versions.node.split('.').map(Number)
const tooOld = major < REQUIRED_MAJOR || (major === REQUIRED_MAJOR && minor < REQUIRED_MINOR)
if (tooOld) {
console.error(
[
'',
`✖ Node 版本过低:当前 v${process.versions.node},本项目要求 >= ${REQUIRED_MAJOR}.${REQUIRED_MINOR}.0`,
'',
' 切换方式(任选其一):',
' fnm install 22 && fnm use 22',
' nvm install 22 && nvm use 22',
' 或从 https://nodejs.org 安装 LTS 后重开终端。',
'',
' 确认当前生效版本:node -v(注意 IDE 内置终端可能用的是另一份 Node)',
''
].join('\n')
)
process.exit(1)
}
/// <reference types="vite/client" /> /// <reference types="vite/client" />
<<<<<<< HEAD
/** /**
* 构建期注入的环境变量(Vite 只暴露 VITE_ 前缀)。 * 构建期注入的环境变量(Vite 只暴露 VITE_ 前缀)。
* 集中声明后 `import.meta.env.XXX` 有补全与拼写校验,避免变量名打错后静默取到 undefined。 * 集中声明后 `import.meta.env.XXX` 有补全与拼写校验,避免变量名打错后静默取到 undefined。
...@@ -16,9 +15,6 @@ interface ImportMetaEnv { ...@@ -16,9 +15,6 @@ interface ImportMetaEnv {
readonly VITE_USE_MOCK?: string readonly VITE_USE_MOCK?: string
/** 本地开发代理后端地址,未设置时指向本机 9202 */ /** 本地开发代理后端地址,未设置时指向本机 9202 */
readonly VITE_API_TARGET?: string readonly VITE_API_TARGET?: string
}
=======
interface ImportMetaEnv {
/** mock-only 模式(本地生产数据核对):禁用 OIDC 跳转与 Bearer 附加 */ /** mock-only 模式(本地生产数据核对):禁用 OIDC 跳转与 Bearer 附加 */
readonly VITE_MOCK_ONLY?: string readonly VITE_MOCK_ONLY?: string
} }
...@@ -26,4 +22,3 @@ interface ImportMetaEnv { ...@@ -26,4 +22,3 @@ interface ImportMetaEnv {
interface ImportMeta { interface ImportMeta {
readonly env: ImportMetaEnv readonly env: ImportMetaEnv
} }
>>>>>>> 0cac32e9c611857dfc32d14724490175aac1f693
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment