diff --git a/app/.cursorignore b/app/.cursorignore new file mode 100644 index 0000000..81a38be --- /dev/null +++ b/app/.cursorignore @@ -0,0 +1 @@ +.env* diff --git a/app/.env.example b/app/.env.example new file mode 100644 index 0000000..5335b44 --- /dev/null +++ b/app/.env.example @@ -0,0 +1,8 @@ +# 微信开放平台 登陆 +WX_OPEN_APP_ID= +WX_OPEN_APP_SECRET= + +# 微信公众号 登陆 +WX_MP_APP_ID= +WX_MP_APP_SECRET= + diff --git a/app/.gitignore b/app/.gitignore index 0ba1da6..8edb685 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -12,4 +12,8 @@ cache-file /apps logs -/*.tgz \ No newline at end of file +/*.tgz +pack-dist + +.env* +!.env.example diff --git a/app/app.config.json5.example b/app/app.config.json5.example deleted file mode 100644 index 80797d9..0000000 --- a/app/app.config.json5.example +++ /dev/null @@ -1,3 +0,0 @@ -{ - port: 3000, -} \ No newline at end of file diff --git a/app/package.json b/app/package.json index 9369938..f91a8f7 100644 --- a/app/package.json +++ b/app/package.json @@ -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", diff --git a/app/pnpm-lock.yaml b/app/pnpm-lock.yaml index e0c715f..223937c 100644 --- a/app/pnpm-lock.yaml +++ b/app/pnpm-lock.yaml @@ -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: diff --git a/app/src/index.ts b/app/src/index.ts index 915cf85..2c5b99e 100644 --- a/app/src/index.ts +++ b/app/src/index.ts @@ -1,5 +1,4 @@ import { app } from './app.ts'; -import './demo-route.ts'; import './routes/wx/login.ts'; export { app }; \ No newline at end of file diff --git a/app/src/modules/config.ts b/app/src/modules/config.ts new file mode 100644 index 0000000..b0f4569 --- /dev/null +++ b/app/src/modules/config.ts @@ -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, + }, +}; diff --git a/app/src/modules/wx.ts b/app/src/modules/wx.ts index 5576dcf..089806a 100644 --- a/app/src/modules/wx.ts +++ b/app/src/modules/wx.ts @@ -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 => { - 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; }; diff --git a/app/src/routes-simple/wx-login.ts b/app/src/routes-simple/wx-login.ts deleted file mode 100644 index 99b55f8..0000000 --- a/app/src/routes-simple/wx-login.ts +++ /dev/null @@ -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 ` - - - - - - - Wx Login - - - -
Login Success
-
Redirecting, please wait...
- - - -` -} -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(``) -}) diff --git a/app/src/routes/wx/login.ts b/app/src/routes/wx/login.ts index 9257bfc..324fc91 100644 --- a/app/src/routes/wx/login.ts +++ b/app/src/routes/wx/login.ts @@ -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); diff --git a/app/src/routes/wx/services.ts b/app/src/routes/wx/services.ts index 28571e7..88083d4 100644 --- a/app/src/routes/wx/services.ts +++ b/app/src/routes/wx/services.ts @@ -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('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() {} diff --git a/mini-web/envision/config.js b/mini-web/envision/config.js index 4986484..ba02c37 100644 --- a/mini-web/envision/config.js +++ b/mini-web/envision/config.js @@ -1,5 +1,7 @@ +// 服务号 APPID:https://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', }; diff --git a/mini-web/envision/get-openid.html b/mini-web/envision/get-openid.html new file mode 100644 index 0000000..c31d4b7 --- /dev/null +++ b/mini-web/envision/get-openid.html @@ -0,0 +1,4 @@ + + + 点击这里登录 + diff --git a/package.json b/package.json index 161c1fa..7f141d1 100644 --- a/package.json +++ b/package.json @@ -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" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 578dab4..b30a879 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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: