This commit is contained in:
abearxiong 2025-03-27 10:14:11 +08:00
parent 2ae2876aab
commit 865cd3fee3
16 changed files with 936 additions and 331 deletions

1
app/.cursorignore Normal file
View File

@ -0,0 +1 @@
.env*

8
app/.env.example Normal file
View File

@ -0,0 +1,8 @@
# 微信开放平台 登陆
WX_OPEN_APP_ID=
WX_OPEN_APP_SECRET=
# 微信公众号 登陆
WX_MP_APP_ID=
WX_MP_APP_SECRET=

4
app/.gitignore vendored
View File

@ -13,3 +13,7 @@ cache-file
logs logs
/*.tgz /*.tgz
pack-dist
.env*
!.env.example

View File

@ -1,3 +0,0 @@
{
port: 3000,
}

View File

@ -1,8 +1,9 @@
{ {
"name": "wx-app", "name": "wx-app-services",
"version": "0.0.3", "version": "0.0.4",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"basename": "/root/wx-app-services",
"app": { "app": {
"key": "wx-app", "key": "wx-app",
"entry": "dist/app.mjs", "entry": "dist/app.mjs",
@ -21,8 +22,7 @@
"test": "tsx test/**/*.ts", "test": "tsx test/**/*.ts",
"dev:watch": "cross-env NODE_ENV=development concurrently -n \"Watch,Dev\" -c \"green,blue\" \"npm run watch\" \"sleep 1 && npm run dev\" ", "dev:watch": "cross-env NODE_ENV=development concurrently -n \"Watch,Dev\" -c \"green,blue\" \"npm run watch\" \"sleep 1 && npm run dev\" ",
"clean": "rm -rf dist", "clean": "rm -rf dist",
"prepub": "envision switch root", "pub": "envision pack -p -u",
"pub": "npm run build && envision pack -p -u",
"ssl": "ssh -L 6379:localhost:6379 light" "ssl": "ssh -L 6379:localhost:6379 light"
}, },
"keywords": [], "keywords": [],
@ -31,41 +31,42 @@
"type": "module", "type": "module",
"types": "types/index.d.ts", "types": "types/index.d.ts",
"dependencies": { "dependencies": {
"@kevisual/code-center-module": "^0.0.11-alpha.2", "@kevisual/code-center-module": "^0.0.14",
"@kevisual/router": "^0.0.9", "@kevisual/router": "^0.0.9",
"cookie": "^1.0.2", "cookie": "^1.0.2",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"formidable": "^3.5.2", "formidable": "^3.5.2",
"ioredis": "^5.5.0", "ioredis": "^5.6.0",
"json5": "^2.2.3", "json5": "^2.2.3",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"nanoid": "^5.1.2", "nanoid": "^5.1.5",
"pg": "^8.13.3", "pg": "^8.14.1",
"sequelize": "^6.37.6", "sequelize": "^6.37.6",
"xml2js": "^0.6.2" "xml2js": "^0.6.2"
}, },
"devDependencies": { "devDependencies": {
"@kevisual/types": "^0.0.6", "@kevisual/types": "^0.0.6",
"@kevisual/use-config": "^1.0.9", "@kevisual/use-config": "^1.0.10",
"@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-alias": "^5.1.1",
"@rollup/plugin-commonjs": "^28.0.2", "@rollup/plugin-commonjs": "^28.0.3",
"@rollup/plugin-json": "^6.1.0", "@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-node-resolve": "^16.0.1",
"@rollup/plugin-replace": "^6.0.2", "@rollup/plugin-replace": "^6.0.2",
"@rollup/plugin-typescript": "^12.1.2", "@rollup/plugin-typescript": "^12.1.2",
"@types/crypto-js": "^4.2.2", "@types/crypto-js": "^4.2.2",
"@types/formidable": "^3.4.5", "@types/formidable": "^3.4.5",
"@types/lodash-es": "^4.17.12", "@types/lodash-es": "^4.17.12",
"@types/node": "^22.13.9", "@types/node": "^22.13.13",
"@types/xml2js": "^0.4.14", "@types/xml2js": "^0.4.14",
"concurrently": "^9.1.2", "concurrently": "^9.1.2",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"dotenv": "^16.4.7",
"nodemon": "^3.1.9", "nodemon": "^3.1.9",
"pm2": "^5.4.3", "pm2": "^6.0.5",
"rimraf": "^6.0.1", "rimraf": "^6.0.1",
"rollup": "^4.34.9", "rollup": "^4.37.0",
"rollup-plugin-copy": "^3.5.0", "rollup-plugin-copy": "^3.5.0",
"rollup-plugin-dts": "^6.1.1", "rollup-plugin-dts": "^6.2.1",
"rollup-plugin-esbuild": "^6.2.1", "rollup-plugin-esbuild": "^6.2.1",
"tape": "^5.9.0", "tape": "^5.9.0",
"tsx": "^4.19.3", "tsx": "^4.19.3",

430
app/pnpm-lock.yaml generated
View File

@ -9,8 +9,8 @@ importers:
.: .:
dependencies: dependencies:
'@kevisual/code-center-module': '@kevisual/code-center-module':
specifier: ^0.0.11-alpha.2 specifier: ^0.0.14
version: 0.0.11-alpha.2(@kevisual/auth@1.0.5)(@kevisual/router@0.0.9)(@kevisual/use-config@1.0.9)(ioredis@5.5.0)(pg@8.13.3)(sequelize@6.37.6(pg@8.13.3)) version: 0.0.14(@kevisual/auth@1.0.5)(@kevisual/router@0.0.9)(@kevisual/use-config@1.0.10(dotenv@16.4.7))(ioredis@5.6.0)(pg@8.14.1)(sequelize@6.37.6(pg@8.14.1))
'@kevisual/router': '@kevisual/router':
specifier: ^0.0.9 specifier: ^0.0.9
version: 0.0.9 version: 0.0.9
@ -24,8 +24,8 @@ importers:
specifier: ^3.5.2 specifier: ^3.5.2
version: 3.5.2 version: 3.5.2
ioredis: ioredis:
specifier: ^5.5.0 specifier: ^5.6.0
version: 5.5.0 version: 5.6.0
json5: json5:
specifier: ^2.2.3 specifier: ^2.2.3
version: 2.2.3 version: 2.2.3
@ -33,14 +33,14 @@ importers:
specifier: ^4.17.21 specifier: ^4.17.21
version: 4.17.21 version: 4.17.21
nanoid: nanoid:
specifier: ^5.1.2 specifier: ^5.1.5
version: 5.1.2 version: 5.1.5
pg: pg:
specifier: ^8.13.3 specifier: ^8.14.1
version: 8.13.3 version: 8.14.1
sequelize: sequelize:
specifier: ^6.37.6 specifier: ^6.37.6
version: 6.37.6(pg@8.13.3) version: 6.37.6(pg@8.14.1)
xml2js: xml2js:
specifier: ^0.6.2 specifier: ^0.6.2
version: 0.6.2 version: 0.6.2
@ -49,26 +49,26 @@ importers:
specifier: ^0.0.6 specifier: ^0.0.6
version: 0.0.6 version: 0.0.6
'@kevisual/use-config': '@kevisual/use-config':
specifier: ^1.0.9 specifier: ^1.0.10
version: 1.0.9 version: 1.0.10(dotenv@16.4.7)
'@rollup/plugin-alias': '@rollup/plugin-alias':
specifier: ^5.1.1 specifier: ^5.1.1
version: 5.1.1(rollup@4.34.9) version: 5.1.1(rollup@4.37.0)
'@rollup/plugin-commonjs': '@rollup/plugin-commonjs':
specifier: ^28.0.2 specifier: ^28.0.3
version: 28.0.2(rollup@4.34.9) version: 28.0.3(rollup@4.37.0)
'@rollup/plugin-json': '@rollup/plugin-json':
specifier: ^6.1.0 specifier: ^6.1.0
version: 6.1.0(rollup@4.34.9) version: 6.1.0(rollup@4.37.0)
'@rollup/plugin-node-resolve': '@rollup/plugin-node-resolve':
specifier: ^16.0.0 specifier: ^16.0.1
version: 16.0.0(rollup@4.34.9) version: 16.0.1(rollup@4.37.0)
'@rollup/plugin-replace': '@rollup/plugin-replace':
specifier: ^6.0.2 specifier: ^6.0.2
version: 6.0.2(rollup@4.34.9) version: 6.0.2(rollup@4.37.0)
'@rollup/plugin-typescript': '@rollup/plugin-typescript':
specifier: ^12.1.2 specifier: ^12.1.2
version: 12.1.2(rollup@4.34.9)(tslib@2.8.1)(typescript@5.8.2) version: 12.1.2(rollup@4.37.0)(tslib@2.8.1)(typescript@5.8.2)
'@types/crypto-js': '@types/crypto-js':
specifier: ^4.2.2 specifier: ^4.2.2
version: 4.2.2 version: 4.2.2
@ -79,8 +79,8 @@ importers:
specifier: ^4.17.12 specifier: ^4.17.12
version: 4.17.12 version: 4.17.12
'@types/node': '@types/node':
specifier: ^22.13.9 specifier: ^22.13.13
version: 22.13.9 version: 22.13.13
'@types/xml2js': '@types/xml2js':
specifier: ^0.4.14 specifier: ^0.4.14
version: 0.4.14 version: 0.4.14
@ -90,27 +90,30 @@ importers:
cross-env: cross-env:
specifier: ^7.0.3 specifier: ^7.0.3
version: 7.0.3 version: 7.0.3
dotenv:
specifier: ^16.4.7
version: 16.4.7
nodemon: nodemon:
specifier: ^3.1.9 specifier: ^3.1.9
version: 3.1.9 version: 3.1.9
pm2: pm2:
specifier: ^5.4.3 specifier: ^6.0.5
version: 5.4.3 version: 6.0.5
rimraf: rimraf:
specifier: ^6.0.1 specifier: ^6.0.1
version: 6.0.1 version: 6.0.1
rollup: rollup:
specifier: ^4.34.9 specifier: ^4.37.0
version: 4.34.9 version: 4.37.0
rollup-plugin-copy: rollup-plugin-copy:
specifier: ^3.5.0 specifier: ^3.5.0
version: 3.5.0 version: 3.5.0
rollup-plugin-dts: rollup-plugin-dts:
specifier: ^6.1.1 specifier: ^6.2.1
version: 6.1.1(rollup@4.34.9)(typescript@5.8.2) version: 6.2.1(rollup@4.37.0)(typescript@5.8.2)
rollup-plugin-esbuild: rollup-plugin-esbuild:
specifier: ^6.2.1 specifier: ^6.2.1
version: 6.2.1(esbuild@0.25.0)(rollup@4.34.9) version: 6.2.1(esbuild@0.25.0)(rollup@4.37.0)
tape: tape:
specifier: ^5.9.0 specifier: ^5.9.0
version: 5.9.0 version: 5.9.0
@ -294,8 +297,8 @@ packages:
'@kevisual/auth@1.0.5': '@kevisual/auth@1.0.5':
resolution: {integrity: sha512-GwsLj7unKXi7lmMiIIgdig4LwwLiDJnOy15HHZR5gMbyK6s5/uJiMY5RXPB2+onGzTNDqFo/hXjsD2wkerHPVg==} resolution: {integrity: sha512-GwsLj7unKXi7lmMiIIgdig4LwwLiDJnOy15HHZR5gMbyK6s5/uJiMY5RXPB2+onGzTNDqFo/hXjsD2wkerHPVg==}
'@kevisual/code-center-module@0.0.11-alpha.2': '@kevisual/code-center-module@0.0.14':
resolution: {integrity: sha512-5yudr/sArCIS3kDiijfJme2WESP9NYbNLB7d04kLO/2/g1zt7uBinh5Sp83Y22B4FI//OgZhkBbQjnFfAJfdlg==} resolution: {integrity: sha512-4px4XV1ByXxxjzvNRjIaqiOXnTV1Fq9yrTwMIP0aG5xqe9r3hQatlo0HOQZguaku6nYlQmESbi+U8zXcnU9sxw==}
peerDependencies: peerDependencies:
'@kevisual/auth': ^1.0.5 '@kevisual/auth': ^1.0.5
'@kevisual/router': ^0.0.7 '@kevisual/router': ^0.0.7
@ -313,8 +316,10 @@ packages:
'@kevisual/types@0.0.6': '@kevisual/types@0.0.6':
resolution: {integrity: sha512-7yxe1QmuC5g7lI/1Hm+zXly8if0z+ZqGM1SVOVv2VNRwRAVYBJDc365zWCCfRwE+5YaB2daWTe5zBOU4EkltkQ==} resolution: {integrity: sha512-7yxe1QmuC5g7lI/1Hm+zXly8if0z+ZqGM1SVOVv2VNRwRAVYBJDc365zWCCfRwE+5YaB2daWTe5zBOU4EkltkQ==}
'@kevisual/use-config@1.0.9': '@kevisual/use-config@1.0.10':
resolution: {integrity: sha512-lJz98WWL178QUaf/rkM9feMm0aUnYd6ikm3ma/9Zi/K2QNrxbTRAgMGkCggUalAES8IbUvEsg+Q+Y2RaPLxCmw==} resolution: {integrity: sha512-fH2B4BnR4+OjR3PzAegF8H9RJpyFZu6BnVDyfvSSZavZMurufkJ949jizoRde+bNAHff/PRcpa5EZg2imZNf1g==}
peerDependencies:
dotenv: ^16.4.7
'@ljharb/resumer@0.1.3': '@ljharb/resumer@0.1.3':
resolution: {integrity: sha512-d+tsDgfkj9X5QTriqM4lKesCkMMJC3IrbPKHvayP00ELx2axdXvDfWkqjxrLXIzGcQzmj7VAUT1wopqARTvafw==} resolution: {integrity: sha512-d+tsDgfkj9X5QTriqM4lKesCkMMJC3IrbPKHvayP00ELx2axdXvDfWkqjxrLXIzGcQzmj7VAUT1wopqARTvafw==}
@ -336,11 +341,11 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
'@pm2/agent@2.0.4': '@pm2/agent@2.1.1':
resolution: {integrity: sha512-n7WYvvTJhHLS2oBb1PjOtgLpMhgImOq8sXkPBw6smeg9LJBWZjiEgPKOpR8mn9UJZsB5P3W4V/MyvNnp31LKeA==} resolution: {integrity: sha512-0V9ckHWd/HSC8BgAbZSoq8KXUG81X97nSkAxmhKDhmF8vanyaoc1YXwc2KVkbWz82Rg4gjd2n9qiT3i7bdvGrQ==}
'@pm2/io@6.0.1': '@pm2/io@6.1.0':
resolution: {integrity: sha512-KiA+shC6sULQAr9mGZ1pg+6KVW9MF8NpG99x26Lf/082/Qy8qsTCtnJy+HQReW1A9Rdf0C/404cz0RZGZro+IA==} resolution: {integrity: sha512-IxHuYURa3+FQ6BKePlgChZkqABUKFYH6Bwbw7V/pWU1pP6iR1sCI26l7P9ThUEB385ruZn/tZS3CXDUF5IA1NQ==}
engines: {node: '>=6.0'} engines: {node: '>=6.0'}
'@pm2/js-api@0.8.0': '@pm2/js-api@0.8.0':
@ -359,8 +364,8 @@ packages:
rollup: rollup:
optional: true optional: true
'@rollup/plugin-commonjs@28.0.2': '@rollup/plugin-commonjs@28.0.3':
resolution: {integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==} resolution: {integrity: sha512-pyltgilam1QPdn+Zd9gaCfOLcnjMEJ9gV+bTw6/r73INdvzf1ah9zLIJBm+kW7R6IUFIQ1YO+VqZtYxZNWFPEQ==}
engines: {node: '>=16.0.0 || 14 >= 14.17'} engines: {node: '>=16.0.0 || 14 >= 14.17'}
peerDependencies: peerDependencies:
rollup: ^2.68.0||^3.0.0||^4.0.0 rollup: ^2.68.0||^3.0.0||^4.0.0
@ -377,8 +382,8 @@ packages:
rollup: rollup:
optional: true optional: true
'@rollup/plugin-node-resolve@16.0.0': '@rollup/plugin-node-resolve@16.0.1':
resolution: {integrity: sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==} resolution: {integrity: sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
peerDependencies: peerDependencies:
rollup: ^2.78.0||^3.0.0||^4.0.0 rollup: ^2.78.0||^3.0.0||^4.0.0
@ -417,98 +422,103 @@ packages:
rollup: rollup:
optional: true optional: true
'@rollup/rollup-android-arm-eabi@4.34.9': '@rollup/rollup-android-arm-eabi@4.37.0':
resolution: {integrity: sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==} resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
'@rollup/rollup-android-arm64@4.34.9': '@rollup/rollup-android-arm64@4.37.0':
resolution: {integrity: sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==} resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@rollup/rollup-darwin-arm64@4.34.9': '@rollup/rollup-darwin-arm64@4.37.0':
resolution: {integrity: sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==} resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@rollup/rollup-darwin-x64@4.34.9': '@rollup/rollup-darwin-x64@4.37.0':
resolution: {integrity: sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==} resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@rollup/rollup-freebsd-arm64@4.34.9': '@rollup/rollup-freebsd-arm64@4.37.0':
resolution: {integrity: sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==} resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==}
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-freebsd-x64@4.34.9': '@rollup/rollup-freebsd-x64@4.37.0':
resolution: {integrity: sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==} resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.34.9': '@rollup/rollup-linux-arm-gnueabihf@4.37.0':
resolution: {integrity: sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==} resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.34.9': '@rollup/rollup-linux-arm-musleabihf@4.37.0':
resolution: {integrity: sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==} resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.34.9': '@rollup/rollup-linux-arm64-gnu@4.37.0':
resolution: {integrity: sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==} resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm64-musl@4.34.9': '@rollup/rollup-linux-arm64-musl@4.37.0':
resolution: {integrity: sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==} resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@rollup/rollup-linux-loongarch64-gnu@4.34.9': '@rollup/rollup-linux-loongarch64-gnu@4.37.0':
resolution: {integrity: sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==} resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==}
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
'@rollup/rollup-linux-powerpc64le-gnu@4.34.9': '@rollup/rollup-linux-powerpc64le-gnu@4.37.0':
resolution: {integrity: sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==} resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.34.9': '@rollup/rollup-linux-riscv64-gnu@4.37.0':
resolution: {integrity: sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==} resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.34.9': '@rollup/rollup-linux-riscv64-musl@4.37.0':
resolution: {integrity: sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==} resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.37.0':
resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@rollup/rollup-linux-x64-gnu@4.34.9': '@rollup/rollup-linux-x64-gnu@4.37.0':
resolution: {integrity: sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==} resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@rollup/rollup-linux-x64-musl@4.34.9': '@rollup/rollup-linux-x64-musl@4.37.0':
resolution: {integrity: sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==} resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@rollup/rollup-win32-arm64-msvc@4.34.9': '@rollup/rollup-win32-arm64-msvc@4.37.0':
resolution: {integrity: sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==} resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.34.9': '@rollup/rollup-win32-ia32-msvc@4.37.0':
resolution: {integrity: sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==} resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@rollup/rollup-win32-x64-msvc@4.34.9': '@rollup/rollup-win32-x64-msvc@4.37.0':
resolution: {integrity: sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==} resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -554,8 +564,8 @@ packages:
'@types/node-forge@1.3.11': '@types/node-forge@1.3.11':
resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
'@types/node@22.13.9': '@types/node@22.13.13':
resolution: {integrity: sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==} resolution: {integrity: sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==}
'@types/resolve@1.20.2': '@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
@ -852,6 +862,10 @@ packages:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'} engines: {node: '>=8'}
dotenv@16.4.7:
resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
engines: {node: '>=12'}
dotignore@0.1.2: dotignore@0.1.2:
resolution: {integrity: sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==} resolution: {integrity: sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==}
hasBin: true hasBin: true
@ -948,9 +962,6 @@ packages:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
eventemitter2@0.4.14:
resolution: {integrity: sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==}
eventemitter2@5.0.1: eventemitter2@5.0.1:
resolution: {integrity: sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==} resolution: {integrity: sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==}
@ -1172,8 +1183,8 @@ packages:
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
ioredis@5.5.0: ioredis@5.6.0:
resolution: {integrity: sha512-7CutT89g23FfSa8MDoIFs2GYYa0PaNiW/OrT+nRyjRXHDZd17HmIgy+reOQ/yhh72NznNjGuS8kbCAcA4Ro4mw==} resolution: {integrity: sha512-tBZlIIWbndeWBWCXWZiqtOF/yxf6yZX3tAlTJ7nfo5jhd6dctNxF7QnYlZLZ1a0o0pDoen7CgZqO+zjNaFbJAg==}
engines: {node: '>=12.22.0'} engines: {node: '>=12.22.0'}
ip-address@9.0.5: ip-address@9.0.5:
@ -1332,10 +1343,6 @@ packages:
jsonfile@4.0.0: jsonfile@4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
lazy@1.0.11:
resolution: {integrity: sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==}
engines: {node: '>=0.2.0'}
lodash-es@4.17.21: lodash-es@4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
@ -1421,8 +1428,8 @@ packages:
mute-stream@0.0.8: mute-stream@0.0.8:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
nanoid@5.1.2: nanoid@5.1.5:
resolution: {integrity: sha512-b+CiXQCNMUGe0Ri64S9SXFcP9hogjAJ2Rd6GdVxhPLRm7mhGaM7VgOvCAJ1ZshfHbqVDI3uqTI5C8/GaKuLI7g==} resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==}
engines: {node: ^18 || >=20} engines: {node: ^18 || >=20}
hasBin: true hasBin: true
@ -1452,10 +1459,6 @@ packages:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
nssocket@0.6.0:
resolution: {integrity: sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==}
engines: {node: '>= 0.10.x'}
object-assign@4.1.1: object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -1533,20 +1536,20 @@ packages:
resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
engines: {node: '>=4.0.0'} engines: {node: '>=4.0.0'}
pg-pool@3.7.1: pg-pool@3.8.0:
resolution: {integrity: sha512-xIOsFoh7Vdhojas6q3596mXFsR8nwBQBXX5JiV7p9buEVAGqYL4yFzclON5P9vFrpu1u7Zwl2oriyDa89n0wbw==} resolution: {integrity: sha512-VBw3jiVm6ZOdLBTIcXLNdSotb6Iy3uOCwDGFAksZCXmi10nyRvnP2v3jl4d+IsLYRyXf6o9hIm/ZtUzlByNUdw==}
peerDependencies: peerDependencies:
pg: '>=8.0' pg: '>=8.0'
pg-protocol@1.7.1: pg-protocol@1.8.0:
resolution: {integrity: sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==} resolution: {integrity: sha512-jvuYlEkL03NRvOoyoRktBK7+qU5kOvlAwvmrH8sr3wbLrOdVWsRxQfz8mMy9sZFsqJ1hEWNfdWKI4SAmoL+j7g==}
pg-types@2.2.0: pg-types@2.2.0:
resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
engines: {node: '>=4'} engines: {node: '>=4'}
pg@8.13.3: pg@8.14.1:
resolution: {integrity: sha512-P6tPt9jXbL9HVu/SSRERNYaYG++MjnscnegFh9pPHihfoBSujsrka0hyuymMzeJKFWrcG8wvCKy8rCe8e5nDUQ==} resolution: {integrity: sha512-0TdbqfjwIun9Fm/r89oB7RFQ0bLgduAhiIqIXOsyKoiC/L54DbuAAzIEN/9Op0f1Po9X7iCPXGoa/Ah+2aI8Xw==}
engines: {node: '>= 8.0.0'} engines: {node: '>= 8.0.0'}
peerDependencies: peerDependencies:
pg-native: '>=3.0.1' pg-native: '>=3.0.1'
@ -1594,9 +1597,9 @@ packages:
pm2-sysmonit@1.2.8: pm2-sysmonit@1.2.8:
resolution: {integrity: sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==} resolution: {integrity: sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==}
pm2@5.4.3: pm2@6.0.5:
resolution: {integrity: sha512-4/I1htIHzZk1Y67UgOCo4F1cJtas1kSds31N8zN0PybO230id1nigyjGuGFzUnGmUFPmrJ0On22fO1ChFlp7VQ==} resolution: {integrity: sha512-+O43WPaEiwYbm6/XSpAOO1Rtya/Uof0n7x8hJZGfwIuepesNTIVArpZh4KqFfze0cvvqZMr0maTW3ifhvmyeMQ==}
engines: {node: '>=12.0.0'} engines: {node: '>=16.0.0'}
hasBin: true hasBin: true
possible-typed-array-names@1.1.0: possible-typed-array-names@1.1.0:
@ -1622,8 +1625,8 @@ packages:
promptly@2.2.0: promptly@2.2.0:
resolution: {integrity: sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==} resolution: {integrity: sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==}
proxy-agent@6.3.1: proxy-agent@6.4.0:
resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==}
engines: {node: '>= 14'} engines: {node: '>= 14'}
proxy-from-env@1.1.0: proxy-from-env@1.1.0:
@ -1695,8 +1698,8 @@ packages:
resolution: {integrity: sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==} resolution: {integrity: sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==}
engines: {node: '>=8.3'} engines: {node: '>=8.3'}
rollup-plugin-dts@6.1.1: rollup-plugin-dts@6.2.1:
resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} resolution: {integrity: sha512-sR3CxYUl7i2CHa0O7bA45mCrgADyAQ0tVtGSqi3yvH28M+eg1+g5d7kQ9hLvEz5dorK3XVsH5L2jwHLQf72DzA==}
engines: {node: '>=16'} engines: {node: '>=16'}
peerDependencies: peerDependencies:
rollup: ^3.29.4 || ^4 rollup: ^3.29.4 || ^4
@ -1709,8 +1712,8 @@ packages:
esbuild: '>=0.18.0' esbuild: '>=0.18.0'
rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
rollup@4.34.9: rollup@4.37.0:
resolution: {integrity: sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==} resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
@ -2245,15 +2248,15 @@ snapshots:
'@kevisual/auth@1.0.5': {} '@kevisual/auth@1.0.5': {}
'@kevisual/code-center-module@0.0.11-alpha.2(@kevisual/auth@1.0.5)(@kevisual/router@0.0.9)(@kevisual/use-config@1.0.9)(ioredis@5.5.0)(pg@8.13.3)(sequelize@6.37.6(pg@8.13.3))': '@kevisual/code-center-module@0.0.14(@kevisual/auth@1.0.5)(@kevisual/router@0.0.9)(@kevisual/use-config@1.0.10(dotenv@16.4.7))(ioredis@5.6.0)(pg@8.14.1)(sequelize@6.37.6(pg@8.14.1))':
dependencies: dependencies:
'@kevisual/auth': 1.0.5 '@kevisual/auth': 1.0.5
'@kevisual/router': 0.0.9 '@kevisual/router': 0.0.9
'@kevisual/use-config': 1.0.9 '@kevisual/use-config': 1.0.10(dotenv@16.4.7)
ioredis: 5.5.0 ioredis: 5.6.0
nanoid: 5.1.2 nanoid: 5.1.5
pg: 8.13.3 pg: 8.14.1
sequelize: 6.37.6(pg@8.13.3) sequelize: 6.37.6(pg@8.14.1)
socket.io: 4.8.1 socket.io: 4.8.1
zod: 3.24.2 zod: 3.24.2
transitivePeerDependencies: transitivePeerDependencies:
@ -2276,9 +2279,10 @@ snapshots:
'@kevisual/types@0.0.6': {} '@kevisual/types@0.0.6': {}
'@kevisual/use-config@1.0.9': '@kevisual/use-config@1.0.10(dotenv@16.4.7)':
dependencies: dependencies:
'@kevisual/load': 0.0.4 '@kevisual/load': 0.0.4
dotenv: 16.4.7
'@ljharb/resumer@0.1.3': '@ljharb/resumer@0.1.3':
dependencies: dependencies:
@ -2301,7 +2305,7 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5 '@nodelib/fs.scandir': 2.1.5
fastq: 1.19.0 fastq: 1.19.0
'@pm2/agent@2.0.4': '@pm2/agent@2.1.1':
dependencies: dependencies:
async: 3.2.6 async: 3.2.6
chalk: 3.0.0 chalk: 3.0.0
@ -2310,10 +2314,9 @@ snapshots:
eventemitter2: 5.0.1 eventemitter2: 5.0.1
fast-json-patch: 3.1.1 fast-json-patch: 3.1.1
fclone: 1.0.11 fclone: 1.0.11
nssocket: 0.6.0
pm2-axon: 4.0.1 pm2-axon: 4.0.1
pm2-axon-rpc: 0.7.1 pm2-axon-rpc: 0.7.1
proxy-agent: 6.3.1 proxy-agent: 6.4.0
semver: 7.5.4 semver: 7.5.4
ws: 7.5.10 ws: 7.5.10
transitivePeerDependencies: transitivePeerDependencies:
@ -2321,7 +2324,7 @@ snapshots:
- supports-color - supports-color
- utf-8-validate - utf-8-validate
'@pm2/io@6.0.1': '@pm2/io@6.1.0':
dependencies: dependencies:
async: 2.6.4 async: 2.6.4
debug: 4.3.7 debug: 4.3.7
@ -2352,13 +2355,13 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@rollup/plugin-alias@5.1.1(rollup@4.34.9)': '@rollup/plugin-alias@5.1.1(rollup@4.37.0)':
optionalDependencies: optionalDependencies:
rollup: 4.34.9 rollup: 4.37.0
'@rollup/plugin-commonjs@28.0.2(rollup@4.34.9)': '@rollup/plugin-commonjs@28.0.3(rollup@4.37.0)':
dependencies: dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.34.9) '@rollup/pluginutils': 5.1.4(rollup@4.37.0)
commondir: 1.0.1 commondir: 1.0.1
estree-walker: 2.0.2 estree-walker: 2.0.2
fdir: 6.4.3(picomatch@4.0.2) fdir: 6.4.3(picomatch@4.0.2)
@ -2366,103 +2369,106 @@ snapshots:
magic-string: 0.30.17 magic-string: 0.30.17
picomatch: 4.0.2 picomatch: 4.0.2
optionalDependencies: optionalDependencies:
rollup: 4.34.9 rollup: 4.37.0
'@rollup/plugin-json@6.1.0(rollup@4.34.9)': '@rollup/plugin-json@6.1.0(rollup@4.37.0)':
dependencies: dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.34.9) '@rollup/pluginutils': 5.1.4(rollup@4.37.0)
optionalDependencies: optionalDependencies:
rollup: 4.34.9 rollup: 4.37.0
'@rollup/plugin-node-resolve@16.0.0(rollup@4.34.9)': '@rollup/plugin-node-resolve@16.0.1(rollup@4.37.0)':
dependencies: dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.34.9) '@rollup/pluginutils': 5.1.4(rollup@4.37.0)
'@types/resolve': 1.20.2 '@types/resolve': 1.20.2
deepmerge: 4.3.1 deepmerge: 4.3.1
is-module: 1.0.0 is-module: 1.0.0
resolve: 1.22.10 resolve: 1.22.10
optionalDependencies: optionalDependencies:
rollup: 4.34.9 rollup: 4.37.0
'@rollup/plugin-replace@6.0.2(rollup@4.34.9)': '@rollup/plugin-replace@6.0.2(rollup@4.37.0)':
dependencies: dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.34.9) '@rollup/pluginutils': 5.1.4(rollup@4.37.0)
magic-string: 0.30.17 magic-string: 0.30.17
optionalDependencies: optionalDependencies:
rollup: 4.34.9 rollup: 4.37.0
'@rollup/plugin-typescript@12.1.2(rollup@4.34.9)(tslib@2.8.1)(typescript@5.8.2)': '@rollup/plugin-typescript@12.1.2(rollup@4.37.0)(tslib@2.8.1)(typescript@5.8.2)':
dependencies: dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.34.9) '@rollup/pluginutils': 5.1.4(rollup@4.37.0)
resolve: 1.22.10 resolve: 1.22.10
typescript: 5.8.2 typescript: 5.8.2
optionalDependencies: optionalDependencies:
rollup: 4.34.9 rollup: 4.37.0
tslib: 2.8.1 tslib: 2.8.1
'@rollup/pluginutils@5.1.4(rollup@4.34.9)': '@rollup/pluginutils@5.1.4(rollup@4.37.0)':
dependencies: dependencies:
'@types/estree': 1.0.6 '@types/estree': 1.0.6
estree-walker: 2.0.2 estree-walker: 2.0.2
picomatch: 4.0.2 picomatch: 4.0.2
optionalDependencies: optionalDependencies:
rollup: 4.34.9 rollup: 4.37.0
'@rollup/rollup-android-arm-eabi@4.34.9': '@rollup/rollup-android-arm-eabi@4.37.0':
optional: true optional: true
'@rollup/rollup-android-arm64@4.34.9': '@rollup/rollup-android-arm64@4.37.0':
optional: true optional: true
'@rollup/rollup-darwin-arm64@4.34.9': '@rollup/rollup-darwin-arm64@4.37.0':
optional: true optional: true
'@rollup/rollup-darwin-x64@4.34.9': '@rollup/rollup-darwin-x64@4.37.0':
optional: true optional: true
'@rollup/rollup-freebsd-arm64@4.34.9': '@rollup/rollup-freebsd-arm64@4.37.0':
optional: true optional: true
'@rollup/rollup-freebsd-x64@4.34.9': '@rollup/rollup-freebsd-x64@4.37.0':
optional: true optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.34.9': '@rollup/rollup-linux-arm-gnueabihf@4.37.0':
optional: true optional: true
'@rollup/rollup-linux-arm-musleabihf@4.34.9': '@rollup/rollup-linux-arm-musleabihf@4.37.0':
optional: true optional: true
'@rollup/rollup-linux-arm64-gnu@4.34.9': '@rollup/rollup-linux-arm64-gnu@4.37.0':
optional: true optional: true
'@rollup/rollup-linux-arm64-musl@4.34.9': '@rollup/rollup-linux-arm64-musl@4.37.0':
optional: true optional: true
'@rollup/rollup-linux-loongarch64-gnu@4.34.9': '@rollup/rollup-linux-loongarch64-gnu@4.37.0':
optional: true optional: true
'@rollup/rollup-linux-powerpc64le-gnu@4.34.9': '@rollup/rollup-linux-powerpc64le-gnu@4.37.0':
optional: true optional: true
'@rollup/rollup-linux-riscv64-gnu@4.34.9': '@rollup/rollup-linux-riscv64-gnu@4.37.0':
optional: true optional: true
'@rollup/rollup-linux-s390x-gnu@4.34.9': '@rollup/rollup-linux-riscv64-musl@4.37.0':
optional: true optional: true
'@rollup/rollup-linux-x64-gnu@4.34.9': '@rollup/rollup-linux-s390x-gnu@4.37.0':
optional: true optional: true
'@rollup/rollup-linux-x64-musl@4.34.9': '@rollup/rollup-linux-x64-gnu@4.37.0':
optional: true optional: true
'@rollup/rollup-win32-arm64-msvc@4.34.9': '@rollup/rollup-linux-x64-musl@4.37.0':
optional: true optional: true
'@rollup/rollup-win32-ia32-msvc@4.34.9': '@rollup/rollup-win32-arm64-msvc@4.37.0':
optional: true optional: true
'@rollup/rollup-win32-x64-msvc@4.34.9': '@rollup/rollup-win32-ia32-msvc@4.37.0':
optional: true
'@rollup/rollup-win32-x64-msvc@4.37.0':
optional: true optional: true
'@socket.io/component-emitter@3.1.2': {} '@socket.io/component-emitter@3.1.2': {}
@ -2471,7 +2477,7 @@ snapshots:
'@types/cors@2.8.17': '@types/cors@2.8.17':
dependencies: dependencies:
'@types/node': 22.13.9 '@types/node': 22.13.13
'@types/crypto-js@4.2.2': {} '@types/crypto-js@4.2.2': {}
@ -2483,16 +2489,16 @@ snapshots:
'@types/formidable@3.4.5': '@types/formidable@3.4.5':
dependencies: dependencies:
'@types/node': 22.13.9 '@types/node': 22.13.13
'@types/fs-extra@8.1.5': '@types/fs-extra@8.1.5':
dependencies: dependencies:
'@types/node': 22.13.9 '@types/node': 22.13.13
'@types/glob@7.2.0': '@types/glob@7.2.0':
dependencies: dependencies:
'@types/minimatch': 5.1.2 '@types/minimatch': 5.1.2
'@types/node': 22.13.9 '@types/node': 22.13.13
'@types/lodash-es@4.17.12': '@types/lodash-es@4.17.12':
dependencies: dependencies:
@ -2506,9 +2512,9 @@ snapshots:
'@types/node-forge@1.3.11': '@types/node-forge@1.3.11':
dependencies: dependencies:
'@types/node': 22.13.9 '@types/node': 22.13.13
'@types/node@22.13.9': '@types/node@22.13.13':
dependencies: dependencies:
undici-types: 6.20.0 undici-types: 6.20.0
@ -2518,7 +2524,7 @@ snapshots:
'@types/xml2js@0.4.14': '@types/xml2js@0.4.14':
dependencies: dependencies:
'@types/node': 22.13.9 '@types/node': 22.13.13
accepts@1.3.8: accepts@1.3.8:
dependencies: dependencies:
@ -2814,6 +2820,8 @@ snapshots:
dependencies: dependencies:
path-type: 4.0.0 path-type: 4.0.0
dotenv@16.4.7: {}
dotignore@0.1.2: dotignore@0.1.2:
dependencies: dependencies:
minimatch: 3.1.2 minimatch: 3.1.2
@ -2837,7 +2845,7 @@ snapshots:
engine.io@6.6.4: engine.io@6.6.4:
dependencies: dependencies:
'@types/cors': 2.8.17 '@types/cors': 2.8.17
'@types/node': 22.13.9 '@types/node': 22.13.13
accepts: 1.3.8 accepts: 1.3.8
base64id: 2.0.0 base64id: 2.0.0
cookie: 0.7.2 cookie: 0.7.2
@ -2991,8 +2999,6 @@ snapshots:
esutils@2.0.3: {} esutils@2.0.3: {}
eventemitter2@0.4.14: {}
eventemitter2@5.0.1: {} eventemitter2@5.0.1: {}
eventemitter2@6.4.9: {} eventemitter2@6.4.9: {}
@ -3231,7 +3237,7 @@ snapshots:
hasown: 2.0.2 hasown: 2.0.2
side-channel: 1.1.0 side-channel: 1.1.0
ioredis@5.5.0: ioredis@5.6.0:
dependencies: dependencies:
'@ioredis/commands': 1.2.0 '@ioredis/commands': 1.2.0
cluster-key-slot: 1.1.2 cluster-key-slot: 1.1.2
@ -3407,8 +3413,6 @@ snapshots:
optionalDependencies: optionalDependencies:
graceful-fs: 4.2.11 graceful-fs: 4.2.11
lazy@1.0.11: {}
lodash-es@4.17.21: {} lodash-es@4.17.21: {}
lodash.defaults@4.2.0: {} lodash.defaults@4.2.0: {}
@ -3480,7 +3484,7 @@ snapshots:
mute-stream@0.0.8: {} mute-stream@0.0.8: {}
nanoid@5.1.2: {} nanoid@5.1.5: {}
needle@2.4.0: needle@2.4.0:
dependencies: dependencies:
@ -3511,11 +3515,6 @@ snapshots:
normalize-path@3.0.0: {} normalize-path@3.0.0: {}
nssocket@0.6.0:
dependencies:
eventemitter2: 0.4.14
lazy: 1.0.11
object-assign@4.1.1: {} object-assign@4.1.1: {}
object-inspect@1.13.4: {} object-inspect@1.13.4: {}
@ -3592,11 +3591,11 @@ snapshots:
pg-int8@1.0.1: {} pg-int8@1.0.1: {}
pg-pool@3.7.1(pg@8.13.3): pg-pool@3.8.0(pg@8.14.1):
dependencies: dependencies:
pg: 8.13.3 pg: 8.14.1
pg-protocol@1.7.1: {} pg-protocol@1.8.0: {}
pg-types@2.2.0: pg-types@2.2.0:
dependencies: dependencies:
@ -3606,11 +3605,11 @@ snapshots:
postgres-date: 1.0.7 postgres-date: 1.0.7
postgres-interval: 1.2.0 postgres-interval: 1.2.0
pg@8.13.3: pg@8.14.1:
dependencies: dependencies:
pg-connection-string: 2.7.0 pg-connection-string: 2.7.0
pg-pool: 3.7.1(pg@8.13.3) pg-pool: 3.8.0(pg@8.14.1)
pg-protocol: 1.7.1 pg-protocol: 1.8.0
pg-types: 2.2.0 pg-types: 2.2.0
pgpass: 1.0.5 pgpass: 1.0.5
optionalDependencies: optionalDependencies:
@ -3671,10 +3670,10 @@ snapshots:
- supports-color - supports-color
optional: true optional: true
pm2@5.4.3: pm2@6.0.5:
dependencies: dependencies:
'@pm2/agent': 2.0.4 '@pm2/agent': 2.1.1
'@pm2/io': 6.0.1 '@pm2/io': 6.1.0
'@pm2/js-api': 0.8.0 '@pm2/js-api': 0.8.0
'@pm2/pm2-version-check': 1.0.4 '@pm2/pm2-version-check': 1.0.4
async: 3.2.6 async: 3.2.6
@ -3725,7 +3724,7 @@ snapshots:
dependencies: dependencies:
read: 1.0.7 read: 1.0.7
proxy-agent@6.3.1: proxy-agent@6.4.0:
dependencies: dependencies:
agent-base: 7.1.3 agent-base: 7.1.3
debug: 4.4.0(supports-color@5.5.0) debug: 4.4.0(supports-color@5.5.0)
@ -3819,48 +3818,49 @@ snapshots:
globby: 10.0.1 globby: 10.0.1
is-plain-object: 3.0.1 is-plain-object: 3.0.1
rollup-plugin-dts@6.1.1(rollup@4.34.9)(typescript@5.8.2): rollup-plugin-dts@6.2.1(rollup@4.37.0)(typescript@5.8.2):
dependencies: dependencies:
magic-string: 0.30.17 magic-string: 0.30.17
rollup: 4.34.9 rollup: 4.37.0
typescript: 5.8.2 typescript: 5.8.2
optionalDependencies: optionalDependencies:
'@babel/code-frame': 7.26.2 '@babel/code-frame': 7.26.2
rollup-plugin-esbuild@6.2.1(esbuild@0.25.0)(rollup@4.34.9): rollup-plugin-esbuild@6.2.1(esbuild@0.25.0)(rollup@4.37.0):
dependencies: dependencies:
debug: 4.4.0(supports-color@5.5.0) debug: 4.4.0(supports-color@5.5.0)
es-module-lexer: 1.6.0 es-module-lexer: 1.6.0
esbuild: 0.25.0 esbuild: 0.25.0
get-tsconfig: 4.10.0 get-tsconfig: 4.10.0
rollup: 4.34.9 rollup: 4.37.0
unplugin-utils: 0.2.4 unplugin-utils: 0.2.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
rollup@4.34.9: rollup@4.37.0:
dependencies: dependencies:
'@types/estree': 1.0.6 '@types/estree': 1.0.6
optionalDependencies: optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.34.9 '@rollup/rollup-android-arm-eabi': 4.37.0
'@rollup/rollup-android-arm64': 4.34.9 '@rollup/rollup-android-arm64': 4.37.0
'@rollup/rollup-darwin-arm64': 4.34.9 '@rollup/rollup-darwin-arm64': 4.37.0
'@rollup/rollup-darwin-x64': 4.34.9 '@rollup/rollup-darwin-x64': 4.37.0
'@rollup/rollup-freebsd-arm64': 4.34.9 '@rollup/rollup-freebsd-arm64': 4.37.0
'@rollup/rollup-freebsd-x64': 4.34.9 '@rollup/rollup-freebsd-x64': 4.37.0
'@rollup/rollup-linux-arm-gnueabihf': 4.34.9 '@rollup/rollup-linux-arm-gnueabihf': 4.37.0
'@rollup/rollup-linux-arm-musleabihf': 4.34.9 '@rollup/rollup-linux-arm-musleabihf': 4.37.0
'@rollup/rollup-linux-arm64-gnu': 4.34.9 '@rollup/rollup-linux-arm64-gnu': 4.37.0
'@rollup/rollup-linux-arm64-musl': 4.34.9 '@rollup/rollup-linux-arm64-musl': 4.37.0
'@rollup/rollup-linux-loongarch64-gnu': 4.34.9 '@rollup/rollup-linux-loongarch64-gnu': 4.37.0
'@rollup/rollup-linux-powerpc64le-gnu': 4.34.9 '@rollup/rollup-linux-powerpc64le-gnu': 4.37.0
'@rollup/rollup-linux-riscv64-gnu': 4.34.9 '@rollup/rollup-linux-riscv64-gnu': 4.37.0
'@rollup/rollup-linux-s390x-gnu': 4.34.9 '@rollup/rollup-linux-riscv64-musl': 4.37.0
'@rollup/rollup-linux-x64-gnu': 4.34.9 '@rollup/rollup-linux-s390x-gnu': 4.37.0
'@rollup/rollup-linux-x64-musl': 4.34.9 '@rollup/rollup-linux-x64-gnu': 4.37.0
'@rollup/rollup-win32-arm64-msvc': 4.34.9 '@rollup/rollup-linux-x64-musl': 4.37.0
'@rollup/rollup-win32-ia32-msvc': 4.34.9 '@rollup/rollup-win32-arm64-msvc': 4.37.0
'@rollup/rollup-win32-x64-msvc': 4.34.9 '@rollup/rollup-win32-ia32-msvc': 4.37.0
'@rollup/rollup-win32-x64-msvc': 4.37.0
fsevents: 2.3.3 fsevents: 2.3.3
run-parallel@1.2.0: run-parallel@1.2.0:
@ -3911,7 +3911,7 @@ snapshots:
sequelize-pool@7.1.0: {} sequelize-pool@7.1.0: {}
sequelize@6.37.6(pg@8.13.3): sequelize@6.37.6(pg@8.14.1):
dependencies: dependencies:
'@types/debug': 4.1.12 '@types/debug': 4.1.12
'@types/validator': 13.12.2 '@types/validator': 13.12.2
@ -3930,7 +3930,7 @@ snapshots:
validator: 13.12.0 validator: 13.12.0
wkx: 0.5.0 wkx: 0.5.0
optionalDependencies: optionalDependencies:
pg: 8.13.3 pg: 8.14.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -4294,7 +4294,7 @@ snapshots:
wkx@0.5.0: wkx@0.5.0:
dependencies: dependencies:
'@types/node': 22.13.9 '@types/node': 22.13.13
wrap-ansi@7.0.0: wrap-ansi@7.0.0:
dependencies: dependencies:

View File

@ -1,5 +1,4 @@
import { app } from './app.ts'; import { app } from './app.ts';
import './demo-route.ts';
import './routes/wx/login.ts'; import './routes/wx/login.ts';
export { app }; export { app };

18
app/src/modules/config.ts Normal file
View File

@ -0,0 +1,18 @@
import dotenv from 'dotenv';
import path from 'path';
export const env = dotenv.config({
path: [path.resolve(process.cwd(), '.env'), path.resolve(process.cwd(), '.env.wxopen')],
});
console.log(env.parsed);
export const config = {
domain: env.parsed?.DOMAIN,
wx: {
appId: env.parsed?.WX_MP_APP_ID,
appSecret: env.parsed?.WX_MP_APP_SECRET,
},
wxOpen: {
appId: env.parsed?.WX_OPEN_APP_ID,
appSecret: env.parsed?.WX_OPEN_APP_SECRET,
},
};

View File

@ -1,11 +1,5 @@
import { useConfig } from '@kevisual/use-config'; import { CustomError } from '@kevisual/router';
import { config } from './config.ts';
type WxConfig = {
appId: string;
appSecret: string;
};
const config = useConfig<{ wx: WxConfig }>();
export type WxTokenResponse = { export type WxTokenResponse = {
access_token: string; access_token: string;
@ -25,12 +19,26 @@ export type WxToken = {
unionid: string; unionid: string;
}; };
/**
* code获取token
* @param code
* @returns
*/
export const fetchToken = async (code: string): Promise<WxToken> => { export const fetchToken = async (code: string): Promise<WxToken> => {
const { appId, appSecret } = config.wx; let appId = config.wxOpen.appId;
let appSecret = config.wxOpen.appSecret;
if (!appId && !appSecret) {
appId = config.wx.appId;
appSecret = config.wx.appSecret;
}
if (!appId || !appSecret) {
throw new CustomError(500, 'appId or appSecret is not set');
}
console.log('fetchToken===', appId, appSecret, code);
const wxUrl = `https://api.weixin.qq.com/sns/oauth2/access_token?appid=${appId}&secret=${appSecret}&code=${code}&grant_type=authorization_code`; const wxUrl = `https://api.weixin.qq.com/sns/oauth2/access_token?appid=${appId}&secret=${appSecret}&code=${code}&grant_type=authorization_code`;
const res = await fetch(wxUrl); const res = await fetch(wxUrl);
const data = await res.json(); const data = await res.json();
// console.log(data) console.log('query token', data);
return data; return data;
}; };

View File

@ -1,74 +0,0 @@
import { WxServices } from '@/routes/wx/services.ts'
import { simple } from './simple.ts'
export const createLoginHtml = (wxService: WxServices) => {
const redirectUrl = wxService.isNew ? '/user/info' : '/'
return `
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Wx Login</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin-top: 50px;
}
#loading {
font-size: 1.2rem;
color: #555;
}
</style>
</head>
<body>
<div>Login Success</div>
<div id="loading">Redirecting, please wait...</div>
<script>
(function() {
// Save the token to localStorage
localStorage.setItem('token', '${wxService.webToken}');
// Redirect after 2 seconds
setTimeout(() => {
window.location.href = '${redirectUrl}';
}, 2000);
})();
</script>
</body>
</html>
`
}
simple.get('/api/wx/login', async (req, res) => {
try {
const url = req.url
const query = new URLSearchParams(url.split('?')[1])
const code = query.get('code')
const state = query.get('state')
if (!code) {
res.end('code is required')
return
}
const wxService = new WxServices()
await wxService.login(code)
if (wxService.isNew) {
await wxService.getUserInfo()
}
res.setHeader('Content-Type', 'text/html')
res.end(createLoginHtml(wxService))
} catch (e) {
console.error(e)
res.end('error')
}
})
simple.get('/api/wx/on-ai/login', async (req, res) => {
const url = req.url
const query = new URLSearchParams(url.split('?')[1])
const code = query.get('code')
const state = query.get('state')
const onAIBaseUrl = 'https://note.on-ai.ai'
const newUrl = `${onAIBaseUrl}/api/wx/login?code=${code}&state=${state}`
res.setHeader('Content-Type', 'text/html')
res.end(`<script>window.location.href='${newUrl}'</script>`)
})

View File

@ -1,6 +1,40 @@
import { app } from '@/app.ts'; import { app } from '@/app.ts';
import { useContextKey } from '@kevisual/use-config/context'; import { useContextKey } from '@kevisual/use-config/context';
import { WxServices } from './services.ts'; import { WxServices } from './services.ts';
import { config } from '@/modules/config.ts';
export const createCookie = async (token: any, ctx: any) => {
if (!config.domain) {
return;
}
//TODO, 获取访问的 hostname 如果访问的和 domain 的不一致也创建cookie
const browser = ctx.req.headers['user-agent'];
const isBrowser = browser.includes('Mozilla'); // 浏览器
if (isBrowser && ctx.res.cookie) {
// const reqDomain = ctx.req?.headers?.host;
// if (reqDomain !== config.domain) {
// const redis = await useContextKey('redis');
// if (!redis) {
// console.error('redis is not set');
// return;
// }
// const getCacheToken = await redis.get(`login:check:domain:${reqDomain}`);
// if (getCacheToken) {
// ctx.res.cookie('token', getCacheToken, {
// maxAge: 7 * 24 * 60 * 60 * 1000, // 过期时间, 设置7天
// domain: config.domain,
// sameSite: 'lax',
// httpOnly: true,
// });
// }
// }
ctx.res.cookie('token', token.accessToken || token?.token, {
maxAge: 7 * 24 * 60 * 60 * 1000, // 过期时间, 设置7天
domain: config.domain,
sameSite: 'lax',
httpOnly: true,
});
}
};
app app
.route({ .route({
path: 'wx', path: 'wx',
@ -8,6 +42,10 @@ app
}) })
.define(async (ctx) => { .define(async (ctx) => {
const state = ctx.query.state; const state = ctx.query.state;
if (!state) {
ctx.throw(400, 'state is required');
return;
}
const redis = useContextKey('redis'); const redis = useContextKey('redis');
const token = await redis.get(`wx:mp:login:${state}`); const token = await redis.get(`wx:mp:login:${state}`);
if (!token) { if (!token) {
@ -42,3 +80,29 @@ app
} }
}) })
.addTo(app); .addTo(app);
app
.route({
path: 'wx',
key: 'open-login',
isDebug: true,
})
.define(async (ctx) => {
const code = ctx.query.code;
const wx = new WxServices();
if (!code) {
ctx.throw(400, 'code is required');
return;
}
try {
const token = await wx.login(code);
ctx.body = token;
if (!token.accessToken) {
ctx.throw(500, 'Invalid code');
}
} catch (error) {
console.error(error);
ctx.throw(500, 'Invalid code');
}
})
.addTo(app);

View File

@ -2,12 +2,14 @@ import { WxTokenResponse, fetchToken, getUserInfo } from '@/modules/wx.ts';
import { useContextKey } from '@kevisual/use-config/context'; import { useContextKey } from '@kevisual/use-config/context';
import { UserModel } from '@kevisual/code-center-module'; import { UserModel } from '@kevisual/code-center-module';
import { Buffer } from 'buffer'; import { Buffer } from 'buffer';
import { CustomError } from '@kevisual/router';
const User = useContextKey<typeof UserModel>('UserModel'); const User = useContextKey<typeof UserModel>('UserModel');
export class WxServices { export class WxServices {
token: WxTokenResponse; token: WxTokenResponse;
// 创建一个webToken用户登录 // 创建一个webToken用户登录
webToken: string; webToken: string;
accessToken: string;
refreshToken: string;
isNew: boolean; isNew: boolean;
// @ts-ignore // @ts-ignore
user: User; user: User;
@ -16,9 +18,9 @@ export class WxServices {
} }
async login(code: string) { async login(code: string) {
const token = await fetchToken(code); const token = await fetchToken(code);
this.token = token; console.log('login token', token);
if (!token.unionid) { if (!token.unionid) {
throw new Error('unionid is required'); throw new CustomError(400, 'code is invalid, wxdata can not be found');
} }
const unionid = token.unionid; const unionid = token.unionid;
let user = await User.findOne({ let user = await User.findOne({
@ -32,14 +34,29 @@ export class WxServices {
user = await User.createUser(unionid, unionid.slice(0, 8)); user = await User.createUser(unionid, unionid.slice(0, 8));
user.data = { user.data = {
...user.data, ...user.data,
// @ts-ignore
wxOpenid: token.openid,
wxUnionId: unionid, wxUnionId: unionid,
}; };
this.isNew = true; this.isNew = true;
} }
const tokenInfo = await user.createToken(null, 'plugin'); console.log('mp-user login=============', token.openid, token.unionid);
this.webToken = tokenInfo.token; const tokenInfo = await user.createToken(null, 'plugin', {
wx: {
openid: token.openid,
unionid: unionid,
},
});
this.webToken = tokenInfo.accessToken;
this.accessToken = tokenInfo.accessToken;
this.refreshToken = tokenInfo.refreshToken;
this.user = user; this.user = user;
return this.webToken; return {
accessToken: this.accessToken,
refreshToken: this.refreshToken,
isNew: this.isNew,
};
} }
async checkHasUser() {} async checkHasUser() {}

View File

@ -1,5 +1,7 @@
// 服务号 APPIDhttps://open.weixin.qq.com/cgi-bin/bizdetail?t=wxverify/detail_mp_account&lang=zh_CN&token=30f137046de19bf38381385ca1ac515c5aa64838&appid=wxff97d569b1db16b6
export const config = { export const config = {
appid: 'wxff97d569b1db16b6', appid: 'wxff97d569b1db16b6',
appid_open: 'wx9378885c8390e09b', // 公众开放平台, 逸文设计 //
redirect_uri: 'https://kevisual.xiongxiao.me/root/mini-web/callback.html', redirect_uri: 'https://kevisual.xiongxiao.me/root/mini-web/callback.html',
scope: 'snsapi_userinfo', scope: 'snsapi_userinfo',
}; };

View File

@ -0,0 +1,4 @@
<!-- Step 1: Redirect user to WeChat authorization page -->
<a href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=YOUR_APPID&redirect_uri=YOUR_REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect">
点击这里登录
</a>

View File

@ -11,7 +11,11 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"dependencies": { "dependencies": {
"@kevisual/code-center-module": "0.0.11-alpha.3", "@kevisual/code-center-module": "0.0.13",
"dotenv": "^16.4.7",
"qrcode": "^1.5.4" "qrcode": "^1.5.4"
},
"devDependencies": {
"vite": "^6.2.3"
} }
} }

562
pnpm-lock.yaml generated
View File

@ -9,22 +9,179 @@ importers:
.: .:
dependencies: dependencies:
'@kevisual/code-center-module': '@kevisual/code-center-module':
specifier: 0.0.11-alpha.3 specifier: 0.0.13
version: 0.0.11-alpha.3(@kevisual/auth@1.0.5)(@kevisual/router@0.0.7)(@kevisual/use-config@1.0.9)(ioredis@5.5.0)(pg@8.13.3)(sequelize@6.37.6(pg@8.13.3)) version: 0.0.13(@kevisual/auth@1.0.5)(@kevisual/router@0.0.7)(@kevisual/use-config@1.0.9)(ioredis@5.5.0)(pg@8.13.3)(sequelize@6.37.6(pg@8.13.3))
dotenv:
specifier: ^16.4.7
version: 16.4.7
qrcode: qrcode:
specifier: ^1.5.4 specifier: ^1.5.4
version: 1.5.4 version: 1.5.4
devDependencies:
vite:
specifier: ^6.2.3
version: 6.2.3(@types/node@22.13.9)
packages: packages:
'@esbuild/aix-ppc64@0.25.1':
resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
'@esbuild/android-arm64@0.25.1':
resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
'@esbuild/android-arm@0.25.1':
resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
'@esbuild/android-x64@0.25.1':
resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
'@esbuild/darwin-arm64@0.25.1':
resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
'@esbuild/darwin-x64@0.25.1':
resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
'@esbuild/freebsd-arm64@0.25.1':
resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
'@esbuild/freebsd-x64@0.25.1':
resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
'@esbuild/linux-arm64@0.25.1':
resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
'@esbuild/linux-arm@0.25.1':
resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
'@esbuild/linux-ia32@0.25.1':
resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
'@esbuild/linux-loong64@0.25.1':
resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
'@esbuild/linux-mips64el@0.25.1':
resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
'@esbuild/linux-ppc64@0.25.1':
resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
'@esbuild/linux-riscv64@0.25.1':
resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
'@esbuild/linux-s390x@0.25.1':
resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
'@esbuild/linux-x64@0.25.1':
resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
'@esbuild/netbsd-arm64@0.25.1':
resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
'@esbuild/netbsd-x64@0.25.1':
resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
'@esbuild/openbsd-arm64@0.25.1':
resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
'@esbuild/openbsd-x64@0.25.1':
resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
'@esbuild/sunos-x64@0.25.1':
resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
'@esbuild/win32-arm64@0.25.1':
resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
'@esbuild/win32-ia32@0.25.1':
resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
'@esbuild/win32-x64@0.25.1':
resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
'@ioredis/commands@1.2.0': '@ioredis/commands@1.2.0':
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
'@kevisual/auth@1.0.5': '@kevisual/auth@1.0.5':
resolution: {integrity: sha512-GwsLj7unKXi7lmMiIIgdig4LwwLiDJnOy15HHZR5gMbyK6s5/uJiMY5RXPB2+onGzTNDqFo/hXjsD2wkerHPVg==} resolution: {integrity: sha512-GwsLj7unKXi7lmMiIIgdig4LwwLiDJnOy15HHZR5gMbyK6s5/uJiMY5RXPB2+onGzTNDqFo/hXjsD2wkerHPVg==}
'@kevisual/code-center-module@0.0.11-alpha.3': '@kevisual/code-center-module@0.0.13':
resolution: {integrity: sha512-TAaONwi30ToVvcLVk+tpxCfuWRE+CE+7NtQB76oDC0UGXNx0MiouO8qut0bcoa3y+ZtVINXuz/9jrky9EESz6Q==} resolution: {integrity: sha512-A82sX8rdG2igyVLIF+0dagcUsGfk2b0JAga1BDDr9mrChrG1HbG1uYN7JJdjJbGE6zGYqGxRZwxKZmzB/+KMnw==}
peerDependencies: peerDependencies:
'@kevisual/auth': ^1.0.5 '@kevisual/auth': ^1.0.5
'@kevisual/router': ^0.0.7 '@kevisual/router': ^0.0.7
@ -42,6 +199,106 @@ packages:
'@kevisual/use-config@1.0.9': '@kevisual/use-config@1.0.9':
resolution: {integrity: sha512-lJz98WWL178QUaf/rkM9feMm0aUnYd6ikm3ma/9Zi/K2QNrxbTRAgMGkCggUalAES8IbUvEsg+Q+Y2RaPLxCmw==} resolution: {integrity: sha512-lJz98WWL178QUaf/rkM9feMm0aUnYd6ikm3ma/9Zi/K2QNrxbTRAgMGkCggUalAES8IbUvEsg+Q+Y2RaPLxCmw==}
'@rollup/rollup-android-arm-eabi@4.37.0':
resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==}
cpu: [arm]
os: [android]
'@rollup/rollup-android-arm64@4.37.0':
resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==}
cpu: [arm64]
os: [android]
'@rollup/rollup-darwin-arm64@4.37.0':
resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==}
cpu: [arm64]
os: [darwin]
'@rollup/rollup-darwin-x64@4.37.0':
resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==}
cpu: [x64]
os: [darwin]
'@rollup/rollup-freebsd-arm64@4.37.0':
resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==}
cpu: [arm64]
os: [freebsd]
'@rollup/rollup-freebsd-x64@4.37.0':
resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==}
cpu: [x64]
os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.37.0':
resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.37.0':
resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.37.0':
resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-arm64-musl@4.37.0':
resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-loongarch64-gnu@4.37.0':
resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==}
cpu: [loong64]
os: [linux]
'@rollup/rollup-linux-powerpc64le-gnu@4.37.0':
resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==}
cpu: [ppc64]
os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.37.0':
resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-riscv64-musl@4.37.0':
resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.37.0':
resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==}
cpu: [s390x]
os: [linux]
'@rollup/rollup-linux-x64-gnu@4.37.0':
resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==}
cpu: [x64]
os: [linux]
'@rollup/rollup-linux-x64-musl@4.37.0':
resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==}
cpu: [x64]
os: [linux]
'@rollup/rollup-win32-arm64-msvc@4.37.0':
resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==}
cpu: [arm64]
os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.37.0':
resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==}
cpu: [ia32]
os: [win32]
'@rollup/rollup-win32-x64-msvc@4.37.0':
resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==}
cpu: [x64]
os: [win32]
'@socket.io/component-emitter@3.1.2': '@socket.io/component-emitter@3.1.2':
resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==}
@ -51,6 +308,9 @@ packages:
'@types/debug@4.1.12': '@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
'@types/ms@2.1.0': '@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
@ -134,6 +394,10 @@ packages:
dijkstrajs@1.0.3: dijkstrajs@1.0.3:
resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==}
dotenv@16.4.7:
resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
engines: {node: '>=12'}
dottie@2.0.6: dottie@2.0.6:
resolution: {integrity: sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==} resolution: {integrity: sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==}
@ -148,6 +412,11 @@ packages:
resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==} resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==}
engines: {node: '>=10.2.0'} engines: {node: '>=10.2.0'}
esbuild@0.25.1:
resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==}
engines: {node: '>=18'}
hasBin: true
eventemitter3@5.0.1: eventemitter3@5.0.1:
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
@ -155,6 +424,11 @@ packages:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'} engines: {node: '>=8'}
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
get-caller-file@2.0.5: get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*} engines: {node: 6.* || 8.* || >= 10.*}
@ -201,6 +475,11 @@ packages:
ms@2.1.3: ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
nanoid@5.1.2: nanoid@5.1.2:
resolution: {integrity: sha512-b+CiXQCNMUGe0Ri64S9SXFcP9hogjAJ2Rd6GdVxhPLRm7mhGaM7VgOvCAJ1ZshfHbqVDI3uqTI5C8/GaKuLI7g==} resolution: {integrity: sha512-b+CiXQCNMUGe0Ri64S9SXFcP9hogjAJ2Rd6GdVxhPLRm7mhGaM7VgOvCAJ1ZshfHbqVDI3uqTI5C8/GaKuLI7g==}
engines: {node: ^18 || >=20} engines: {node: ^18 || >=20}
@ -272,10 +551,17 @@ packages:
pgpass@1.0.5: pgpass@1.0.5:
resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
pngjs@5.0.0: pngjs@5.0.0:
resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
engines: {node: '>=10.13.0'} engines: {node: '>=10.13.0'}
postcss@8.5.3:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
postgres-array@2.0.0: postgres-array@2.0.0:
resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -315,6 +601,11 @@ packages:
retry-as-promised@7.1.1: retry-as-promised@7.1.1:
resolution: {integrity: sha512-hMD7odLOt3LkTjcif8aRZqi/hybjpLNgSk5oF5FCowfCjok6LukpN2bDX7R5wDmbgBQFn7YoBxSagmtXHaJYJw==} resolution: {integrity: sha512-hMD7odLOt3LkTjcif8aRZqi/hybjpLNgSk5oF5FCowfCjok6LukpN2bDX7R5wDmbgBQFn7YoBxSagmtXHaJYJw==}
rollup@4.37.0:
resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
selfsigned@2.4.1: selfsigned@2.4.1:
resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
engines: {node: '>=10'} engines: {node: '>=10'}
@ -375,6 +666,10 @@ packages:
resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==}
engines: {node: '>=10.2.0'} engines: {node: '>=10.2.0'}
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
split2@4.2.0: split2@4.2.0:
resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
engines: {node: '>= 10.x'} engines: {node: '>= 10.x'}
@ -408,6 +703,46 @@ packages:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
vite@6.2.3:
resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
jiti: '>=1.21.0'
less: '*'
lightningcss: ^1.21.0
sass: '*'
sass-embedded: '*'
stylus: '*'
sugarss: '*'
terser: ^5.16.0
tsx: ^4.8.1
yaml: ^2.4.2
peerDependenciesMeta:
'@types/node':
optional: true
jiti:
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
sass-embedded:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
tsx:
optional: true
yaml:
optional: true
which-module@2.0.1: which-module@2.0.1:
resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
@ -462,11 +797,86 @@ packages:
snapshots: snapshots:
'@esbuild/aix-ppc64@0.25.1':
optional: true
'@esbuild/android-arm64@0.25.1':
optional: true
'@esbuild/android-arm@0.25.1':
optional: true
'@esbuild/android-x64@0.25.1':
optional: true
'@esbuild/darwin-arm64@0.25.1':
optional: true
'@esbuild/darwin-x64@0.25.1':
optional: true
'@esbuild/freebsd-arm64@0.25.1':
optional: true
'@esbuild/freebsd-x64@0.25.1':
optional: true
'@esbuild/linux-arm64@0.25.1':
optional: true
'@esbuild/linux-arm@0.25.1':
optional: true
'@esbuild/linux-ia32@0.25.1':
optional: true
'@esbuild/linux-loong64@0.25.1':
optional: true
'@esbuild/linux-mips64el@0.25.1':
optional: true
'@esbuild/linux-ppc64@0.25.1':
optional: true
'@esbuild/linux-riscv64@0.25.1':
optional: true
'@esbuild/linux-s390x@0.25.1':
optional: true
'@esbuild/linux-x64@0.25.1':
optional: true
'@esbuild/netbsd-arm64@0.25.1':
optional: true
'@esbuild/netbsd-x64@0.25.1':
optional: true
'@esbuild/openbsd-arm64@0.25.1':
optional: true
'@esbuild/openbsd-x64@0.25.1':
optional: true
'@esbuild/sunos-x64@0.25.1':
optional: true
'@esbuild/win32-arm64@0.25.1':
optional: true
'@esbuild/win32-ia32@0.25.1':
optional: true
'@esbuild/win32-x64@0.25.1':
optional: true
'@ioredis/commands@1.2.0': {} '@ioredis/commands@1.2.0': {}
'@kevisual/auth@1.0.5': {} '@kevisual/auth@1.0.5': {}
'@kevisual/code-center-module@0.0.11-alpha.3(@kevisual/auth@1.0.5)(@kevisual/router@0.0.7)(@kevisual/use-config@1.0.9)(ioredis@5.5.0)(pg@8.13.3)(sequelize@6.37.6(pg@8.13.3))': '@kevisual/code-center-module@0.0.13(@kevisual/auth@1.0.5)(@kevisual/router@0.0.7)(@kevisual/use-config@1.0.9)(ioredis@5.5.0)(pg@8.13.3)(sequelize@6.37.6(pg@8.13.3))':
dependencies: dependencies:
'@kevisual/auth': 1.0.5 '@kevisual/auth': 1.0.5
'@kevisual/router': 0.0.7 '@kevisual/router': 0.0.7
@ -499,6 +909,66 @@ snapshots:
dependencies: dependencies:
'@kevisual/load': 0.0.4 '@kevisual/load': 0.0.4
'@rollup/rollup-android-arm-eabi@4.37.0':
optional: true
'@rollup/rollup-android-arm64@4.37.0':
optional: true
'@rollup/rollup-darwin-arm64@4.37.0':
optional: true
'@rollup/rollup-darwin-x64@4.37.0':
optional: true
'@rollup/rollup-freebsd-arm64@4.37.0':
optional: true
'@rollup/rollup-freebsd-x64@4.37.0':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.37.0':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.37.0':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.37.0':
optional: true
'@rollup/rollup-linux-arm64-musl@4.37.0':
optional: true
'@rollup/rollup-linux-loongarch64-gnu@4.37.0':
optional: true
'@rollup/rollup-linux-powerpc64le-gnu@4.37.0':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.37.0':
optional: true
'@rollup/rollup-linux-riscv64-musl@4.37.0':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.37.0':
optional: true
'@rollup/rollup-linux-x64-gnu@4.37.0':
optional: true
'@rollup/rollup-linux-x64-musl@4.37.0':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.37.0':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.37.0':
optional: true
'@rollup/rollup-win32-x64-msvc@4.37.0':
optional: true
'@socket.io/component-emitter@3.1.2': {} '@socket.io/component-emitter@3.1.2': {}
'@types/cors@2.8.17': '@types/cors@2.8.17':
@ -509,6 +979,8 @@ snapshots:
dependencies: dependencies:
'@types/ms': 2.1.0 '@types/ms': 2.1.0
'@types/estree@1.0.6': {}
'@types/ms@2.1.0': {} '@types/ms@2.1.0': {}
'@types/node-forge@1.3.11': '@types/node-forge@1.3.11':
@ -571,6 +1043,8 @@ snapshots:
dijkstrajs@1.0.3: {} dijkstrajs@1.0.3: {}
dotenv@16.4.7: {}
dottie@2.0.6: {} dottie@2.0.6: {}
emoji-regex@8.0.0: {} emoji-regex@8.0.0: {}
@ -593,6 +1067,34 @@ snapshots:
- supports-color - supports-color
- utf-8-validate - utf-8-validate
esbuild@0.25.1:
optionalDependencies:
'@esbuild/aix-ppc64': 0.25.1
'@esbuild/android-arm': 0.25.1
'@esbuild/android-arm64': 0.25.1
'@esbuild/android-x64': 0.25.1
'@esbuild/darwin-arm64': 0.25.1
'@esbuild/darwin-x64': 0.25.1
'@esbuild/freebsd-arm64': 0.25.1
'@esbuild/freebsd-x64': 0.25.1
'@esbuild/linux-arm': 0.25.1
'@esbuild/linux-arm64': 0.25.1
'@esbuild/linux-ia32': 0.25.1
'@esbuild/linux-loong64': 0.25.1
'@esbuild/linux-mips64el': 0.25.1
'@esbuild/linux-ppc64': 0.25.1
'@esbuild/linux-riscv64': 0.25.1
'@esbuild/linux-s390x': 0.25.1
'@esbuild/linux-x64': 0.25.1
'@esbuild/netbsd-arm64': 0.25.1
'@esbuild/netbsd-x64': 0.25.1
'@esbuild/openbsd-arm64': 0.25.1
'@esbuild/openbsd-x64': 0.25.1
'@esbuild/sunos-x64': 0.25.1
'@esbuild/win32-arm64': 0.25.1
'@esbuild/win32-ia32': 0.25.1
'@esbuild/win32-x64': 0.25.1
eventemitter3@5.0.1: {} eventemitter3@5.0.1: {}
find-up@4.1.0: find-up@4.1.0:
@ -600,6 +1102,9 @@ snapshots:
locate-path: 5.0.0 locate-path: 5.0.0
path-exists: 4.0.0 path-exists: 4.0.0
fsevents@2.3.3:
optional: true
get-caller-file@2.0.5: {} get-caller-file@2.0.5: {}
inflection@1.13.4: {} inflection@1.13.4: {}
@ -644,6 +1149,8 @@ snapshots:
ms@2.1.3: {} ms@2.1.3: {}
nanoid@3.3.11: {}
nanoid@5.1.2: {} nanoid@5.1.2: {}
negotiator@0.6.3: {} negotiator@0.6.3: {}
@ -701,8 +1208,16 @@ snapshots:
dependencies: dependencies:
split2: 4.2.0 split2: 4.2.0
picocolors@1.1.1: {}
pngjs@5.0.0: {} pngjs@5.0.0: {}
postcss@8.5.3:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
postgres-array@2.0.0: {} postgres-array@2.0.0: {}
postgres-bytea@1.0.0: {} postgres-bytea@1.0.0: {}
@ -731,6 +1246,32 @@ snapshots:
retry-as-promised@7.1.1: {} retry-as-promised@7.1.1: {}
rollup@4.37.0:
dependencies:
'@types/estree': 1.0.6
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.37.0
'@rollup/rollup-android-arm64': 4.37.0
'@rollup/rollup-darwin-arm64': 4.37.0
'@rollup/rollup-darwin-x64': 4.37.0
'@rollup/rollup-freebsd-arm64': 4.37.0
'@rollup/rollup-freebsd-x64': 4.37.0
'@rollup/rollup-linux-arm-gnueabihf': 4.37.0
'@rollup/rollup-linux-arm-musleabihf': 4.37.0
'@rollup/rollup-linux-arm64-gnu': 4.37.0
'@rollup/rollup-linux-arm64-musl': 4.37.0
'@rollup/rollup-linux-loongarch64-gnu': 4.37.0
'@rollup/rollup-linux-powerpc64le-gnu': 4.37.0
'@rollup/rollup-linux-riscv64-gnu': 4.37.0
'@rollup/rollup-linux-riscv64-musl': 4.37.0
'@rollup/rollup-linux-s390x-gnu': 4.37.0
'@rollup/rollup-linux-x64-gnu': 4.37.0
'@rollup/rollup-linux-x64-musl': 4.37.0
'@rollup/rollup-win32-arm64-msvc': 4.37.0
'@rollup/rollup-win32-ia32-msvc': 4.37.0
'@rollup/rollup-win32-x64-msvc': 4.37.0
fsevents: 2.3.3
selfsigned@2.4.1: selfsigned@2.4.1:
dependencies: dependencies:
'@types/node-forge': 1.3.11 '@types/node-forge': 1.3.11
@ -795,6 +1336,8 @@ snapshots:
- supports-color - supports-color
- utf-8-validate - utf-8-validate
source-map-js@1.2.1: {}
split2@4.2.0: {} split2@4.2.0: {}
standard-as-callback@2.1.0: {} standard-as-callback@2.1.0: {}
@ -819,6 +1362,15 @@ snapshots:
vary@1.1.2: {} vary@1.1.2: {}
vite@6.2.3(@types/node@22.13.9):
dependencies:
esbuild: 0.25.1
postcss: 8.5.3
rollup: 4.37.0
optionalDependencies:
'@types/node': 22.13.9
fsevents: 2.3.3
which-module@2.0.1: {} which-module@2.0.1: {}
wkx@0.5.0: wkx@0.5.0: