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=

6
app/.gitignore vendored
View File

@ -12,4 +12,8 @@ cache-file
/apps
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",
"version": "0.0.3",
"name": "wx-app-services",
"version": "0.0.4",
"description": "",
"main": "index.js",
"basename": "/root/wx-app-services",
"app": {
"key": "wx-app",
"entry": "dist/app.mjs",
@ -21,8 +22,7 @@
"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\" ",
"clean": "rm -rf dist",
"prepub": "envision switch root",
"pub": "npm run build && envision pack -p -u",
"pub": "envision pack -p -u",
"ssl": "ssh -L 6379:localhost:6379 light"
},
"keywords": [],
@ -31,41 +31,42 @@
"type": "module",
"types": "types/index.d.ts",
"dependencies": {
"@kevisual/code-center-module": "^0.0.11-alpha.2",
"@kevisual/code-center-module": "^0.0.14",
"@kevisual/router": "^0.0.9",
"cookie": "^1.0.2",
"dayjs": "^1.11.13",
"formidable": "^3.5.2",
"ioredis": "^5.5.0",
"ioredis": "^5.6.0",
"json5": "^2.2.3",
"lodash-es": "^4.17.21",
"nanoid": "^5.1.2",
"pg": "^8.13.3",
"nanoid": "^5.1.5",
"pg": "^8.14.1",
"sequelize": "^6.37.6",
"xml2js": "^0.6.2"
},
"devDependencies": {
"@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-commonjs": "^28.0.2",
"@rollup/plugin-commonjs": "^28.0.3",
"@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-typescript": "^12.1.2",
"@types/crypto-js": "^4.2.2",
"@types/formidable": "^3.4.5",
"@types/lodash-es": "^4.17.12",
"@types/node": "^22.13.9",
"@types/node": "^22.13.13",
"@types/xml2js": "^0.4.14",
"concurrently": "^9.1.2",
"cross-env": "^7.0.3",
"dotenv": "^16.4.7",
"nodemon": "^3.1.9",
"pm2": "^5.4.3",
"pm2": "^6.0.5",
"rimraf": "^6.0.1",
"rollup": "^4.34.9",
"rollup": "^4.37.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",
"tape": "^5.9.0",
"tsx": "^4.19.3",

430
app/pnpm-lock.yaml generated
View File

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

View File

@ -1,5 +1,4 @@
import { app } from './app.ts';
import './demo-route.ts';
import './routes/wx/login.ts';
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';
type WxConfig = {
appId: string;
appSecret: string;
};
const config = useConfig<{ wx: WxConfig }>();
import { CustomError } from '@kevisual/router';
import { config } from './config.ts';
export type WxTokenResponse = {
access_token: string;
@ -25,12 +19,26 @@ export type WxToken = {
unionid: string;
};
/**
* code获取token
* @param code
* @returns
*/
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 res = await fetch(wxUrl);
const data = await res.json();
// console.log(data)
console.log('query token', 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 { useContextKey } from '@kevisual/use-config/context';
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
.route({
path: 'wx',
@ -8,6 +42,10 @@ app
})
.define(async (ctx) => {
const state = ctx.query.state;
if (!state) {
ctx.throw(400, 'state is required');
return;
}
const redis = useContextKey('redis');
const token = await redis.get(`wx:mp:login:${state}`);
if (!token) {
@ -42,3 +80,29 @@ 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 { UserModel } from '@kevisual/code-center-module';
import { Buffer } from 'buffer';
import { CustomError } from '@kevisual/router';
const User = useContextKey<typeof UserModel>('UserModel');
export class WxServices {
token: WxTokenResponse;
// 创建一个webToken用户登录
webToken: string;
accessToken: string;
refreshToken: string;
isNew: boolean;
// @ts-ignore
user: User;
@ -16,9 +18,9 @@ export class WxServices {
}
async login(code: string) {
const token = await fetchToken(code);
this.token = token;
console.log('login token', token);
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;
let user = await User.findOne({
@ -32,14 +34,29 @@ export class WxServices {
user = await User.createUser(unionid, unionid.slice(0, 8));
user.data = {
...user.data,
// @ts-ignore
wxOpenid: token.openid,
wxUnionId: unionid,
};
this.isNew = true;
}
const tokenInfo = await user.createToken(null, 'plugin');
this.webToken = tokenInfo.token;
console.log('mp-user login=============', token.openid, token.unionid);
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;
return this.webToken;
return {
accessToken: this.accessToken,
refreshToken: this.refreshToken,
isNew: this.isNew,
};
}
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 = {
appid: 'wxff97d569b1db16b6',
appid_open: 'wx9378885c8390e09b', // 公众开放平台, 逸文设计 //
redirect_uri: 'https://kevisual.xiongxiao.me/root/mini-web/callback.html',
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",
"type": "module",
"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"
},
"devDependencies": {
"vite": "^6.2.3"
}
}

562
pnpm-lock.yaml generated
View File

@ -9,22 +9,179 @@ importers:
.:
dependencies:
'@kevisual/code-center-module':
specifier: 0.0.11-alpha.3
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))
specifier: 0.0.13
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:
specifier: ^1.5.4
version: 1.5.4
devDependencies:
vite:
specifier: ^6.2.3
version: 6.2.3(@types/node@22.13.9)
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':
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
'@kevisual/auth@1.0.5':
resolution: {integrity: sha512-GwsLj7unKXi7lmMiIIgdig4LwwLiDJnOy15HHZR5gMbyK6s5/uJiMY5RXPB2+onGzTNDqFo/hXjsD2wkerHPVg==}
'@kevisual/code-center-module@0.0.11-alpha.3':
resolution: {integrity: sha512-TAaONwi30ToVvcLVk+tpxCfuWRE+CE+7NtQB76oDC0UGXNx0MiouO8qut0bcoa3y+ZtVINXuz/9jrky9EESz6Q==}
'@kevisual/code-center-module@0.0.13':
resolution: {integrity: sha512-A82sX8rdG2igyVLIF+0dagcUsGfk2b0JAga1BDDr9mrChrG1HbG1uYN7JJdjJbGE6zGYqGxRZwxKZmzB/+KMnw==}
peerDependencies:
'@kevisual/auth': ^1.0.5
'@kevisual/router': ^0.0.7
@ -42,6 +199,106 @@ packages:
'@kevisual/use-config@1.0.9':
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':
resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==}
@ -51,6 +308,9 @@ packages:
'@types/debug@4.1.12':
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':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
@ -134,6 +394,10 @@ packages:
dijkstrajs@1.0.3:
resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==}
dotenv@16.4.7:
resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
engines: {node: '>=12'}
dottie@2.0.6:
resolution: {integrity: sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==}
@ -148,6 +412,11 @@ packages:
resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==}
engines: {node: '>=10.2.0'}
esbuild@0.25.1:
resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==}
engines: {node: '>=18'}
hasBin: true
eventemitter3@5.0.1:
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
@ -155,6 +424,11 @@ packages:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
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:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
@ -201,6 +475,11 @@ packages:
ms@2.1.3:
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:
resolution: {integrity: sha512-b+CiXQCNMUGe0Ri64S9SXFcP9hogjAJ2Rd6GdVxhPLRm7mhGaM7VgOvCAJ1ZshfHbqVDI3uqTI5C8/GaKuLI7g==}
engines: {node: ^18 || >=20}
@ -272,10 +551,17 @@ packages:
pgpass@1.0.5:
resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
pngjs@5.0.0:
resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
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:
resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
engines: {node: '>=4'}
@ -315,6 +601,11 @@ packages:
retry-as-promised@7.1.1:
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:
resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
engines: {node: '>=10'}
@ -375,6 +666,10 @@ packages:
resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==}
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:
resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
engines: {node: '>= 10.x'}
@ -408,6 +703,46 @@ packages:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
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:
resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
@ -462,11 +797,86 @@ packages:
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': {}
'@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:
'@kevisual/auth': 1.0.5
'@kevisual/router': 0.0.7
@ -499,6 +909,66 @@ snapshots:
dependencies:
'@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': {}
'@types/cors@2.8.17':
@ -509,6 +979,8 @@ snapshots:
dependencies:
'@types/ms': 2.1.0
'@types/estree@1.0.6': {}
'@types/ms@2.1.0': {}
'@types/node-forge@1.3.11':
@ -571,6 +1043,8 @@ snapshots:
dijkstrajs@1.0.3: {}
dotenv@16.4.7: {}
dottie@2.0.6: {}
emoji-regex@8.0.0: {}
@ -593,6 +1067,34 @@ snapshots:
- supports-color
- 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: {}
find-up@4.1.0:
@ -600,6 +1102,9 @@ snapshots:
locate-path: 5.0.0
path-exists: 4.0.0
fsevents@2.3.3:
optional: true
get-caller-file@2.0.5: {}
inflection@1.13.4: {}
@ -644,6 +1149,8 @@ snapshots:
ms@2.1.3: {}
nanoid@3.3.11: {}
nanoid@5.1.2: {}
negotiator@0.6.3: {}
@ -701,8 +1208,16 @@ snapshots:
dependencies:
split2: 4.2.0
picocolors@1.1.1: {}
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-bytea@1.0.0: {}
@ -731,6 +1246,32 @@ snapshots:
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:
dependencies:
'@types/node-forge': 1.3.11
@ -795,6 +1336,8 @@ snapshots:
- supports-color
- utf-8-validate
source-map-js@1.2.1: {}
split2@4.2.0: {}
standard-as-callback@2.1.0: {}
@ -819,6 +1362,15 @@ snapshots:
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: {}
wkx@0.5.0: