From 6c611dcf78947303b894ed1553407bb5ca70b4e1 Mon Sep 17 00:00:00 2001 From: abearxiong Date: Wed, 18 Feb 2026 03:17:45 +0800 Subject: [PATCH] feat: refactor route definitions and enhance metadata for app domain manager - Updated route definitions in `src/route.ts` to utilize `toJSONSchema` and `pick` for cleaner route listing. - Enhanced the `app.domain.manager` routes in `src/routes/app-manager/domain/manager.ts`: - Changed path format to snake_case. - Added descriptions for each route. - Introduced Zod schema validation for request arguments in metadata. --- package.json | 20 +- pnpm-lock.yaml | 601 ++++++++++++++--------- src/route.ts | 27 +- src/routes/app-manager/domain/manager.ts | 52 +- 4 files changed, 430 insertions(+), 270 deletions(-) diff --git a/package.json b/package.json index 00f1c39..49188ec 100644 --- a/package.json +++ b/package.json @@ -49,11 +49,11 @@ "@kevisual/ai": "^0.0.24", "@kevisual/auth": "^2.0.3", "@kevisual/js-filter": "^0.0.5", - "@kevisual/query": "^0.0.40", + "@kevisual/query": "^0.0.43", "@types/busboy": "^1.5.4", "@types/send": "^1.2.1", "@types/ws": "^8.18.1", - "bullmq": "^5.67.3", + "bullmq": "^5.69.3", "busboy": "^1.6.0", "drizzle-kit": "^0.31.9", "drizzle-orm": "^0.45.1", @@ -66,18 +66,18 @@ "xml2js": "^0.6.2" }, "devDependencies": { - "@aws-sdk/client-s3": "^3.986.0", - "@kevisual/api": "^0.0.47", - "@kevisual/context": "^0.0.4", + "@aws-sdk/client-s3": "^3.991.0", + "@kevisual/api": "^0.0.51", + "@kevisual/context": "^0.0.6", "@kevisual/local-app-manager": "0.1.32", "@kevisual/logger": "^0.0.4", "@kevisual/oss": "0.0.19", "@kevisual/permission": "^0.0.4", - "@kevisual/router": "0.0.70", + "@kevisual/router": "0.0.73", "@kevisual/types": "^0.0.12", "@kevisual/use-config": "^1.0.30", "@types/archiver": "^7.0.0", - "@types/bun": "^1.3.8", + "@types/bun": "^1.3.9", "@types/crypto-js": "^4.2.2", "@types/jsonwebtoken": "^9.0.10", "@types/node": "^25.2.3", @@ -87,9 +87,9 @@ "archiver": "^7.0.1", "crypto-js": "^4.2.0", "dayjs": "^1.11.19", - "dotenv": "^17.2.4", + "dotenv": "^17.3.1", "es-toolkit": "^1.44.0", - "ioredis": "^5.9.2", + "ioredis": "^5.9.3", "jsonwebtoken": "^9.0.3", "nanoid": "^5.1.6", "p-queue": "^9.1.0", @@ -102,5 +102,5 @@ "inflight": "latest", "picomatch": "^4.0.2" }, - "packageManager": "pnpm@10.29.2" + "packageManager": "pnpm@10.30.0" } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4acbd12..3c68da2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,8 +22,8 @@ importers: specifier: ^0.0.5 version: 0.0.5 '@kevisual/query': - specifier: ^0.0.39 - version: 0.0.39 + specifier: ^0.0.43 + version: 0.0.43 '@types/busboy': specifier: ^1.5.4 version: 1.5.4 @@ -34,20 +34,20 @@ importers: specifier: ^8.18.1 version: 8.18.1 bullmq: - specifier: ^5.67.3 - version: 5.67.3 + specifier: ^5.69.3 + version: 5.69.3 busboy: specifier: ^1.6.0 version: 1.6.0 drizzle-kit: - specifier: ^0.31.8 - version: 0.31.8 + specifier: ^0.31.9 + version: 0.31.9 drizzle-orm: specifier: ^0.45.1 - version: 0.45.1(@types/pg@8.16.0)(better-sqlite3@12.6.2)(bun-types@1.3.8)(pg@8.18.0) + version: 0.45.1(@types/pg@8.16.0)(better-sqlite3@12.6.2)(bun-types@1.3.9)(pg@8.18.0) drizzle-zod: specifier: ^0.8.3 - version: 0.8.3(drizzle-orm@0.45.1(@types/pg@8.16.0)(better-sqlite3@12.6.2)(bun-types@1.3.8)(pg@8.18.0))(zod@4.3.6) + version: 0.8.3(drizzle-orm@0.45.1(@types/pg@8.16.0)(better-sqlite3@12.6.2)(bun-types@1.3.9)(pg@8.18.0))(zod@4.3.6) eventemitter3: specifier: ^5.0.4 version: 5.0.4 @@ -68,14 +68,14 @@ importers: version: 0.6.2 devDependencies: '@aws-sdk/client-s3': - specifier: ^3.984.0 - version: 3.984.0 + specifier: ^3.991.0 + version: 3.991.0 '@kevisual/api': - specifier: ^0.0.47 - version: 0.0.47 + specifier: ^0.0.51 + version: 0.0.51(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@kevisual/context': - specifier: ^0.0.4 - version: 0.0.4 + specifier: ^0.0.6 + version: 0.0.6 '@kevisual/local-app-manager': specifier: 0.1.32 version: 0.1.32 @@ -89,20 +89,20 @@ importers: specifier: ^0.0.4 version: 0.0.4 '@kevisual/router': - specifier: 0.0.70 - version: 0.0.70 + specifier: 0.0.72 + version: 0.0.72 '@kevisual/types': specifier: ^0.0.12 version: 0.0.12 '@kevisual/use-config': specifier: ^1.0.30 - version: 1.0.30(dotenv@17.2.4) + version: 1.0.30(dotenv@17.3.1) '@types/archiver': specifier: ^7.0.0 version: 7.0.0 '@types/bun': - specifier: ^1.3.8 - version: 1.3.8 + specifier: ^1.3.9 + version: 1.3.9 '@types/crypto-js': specifier: ^4.2.2 version: 4.2.2 @@ -110,8 +110,8 @@ importers: specifier: ^9.0.10 version: 9.0.10 '@types/node': - specifier: ^25.2.1 - version: 25.2.1 + specifier: ^25.2.3 + version: 25.2.3 '@types/pg': specifier: ^8.16.0 version: 8.16.0 @@ -131,14 +131,14 @@ importers: specifier: ^1.11.19 version: 1.11.19 dotenv: - specifier: ^17.2.4 - version: 17.2.4 + specifier: ^17.3.1 + version: 17.3.1 es-toolkit: specifier: ^1.44.0 version: 1.44.0 ioredis: - specifier: ^5.9.2 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 jsonwebtoken: specifier: ^9.0.3 version: 9.0.3 @@ -208,52 +208,52 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.984.0': - resolution: {integrity: sha512-7ny2Slr93Y+QniuluvcfWwyDi32zWQfznynL56Tk0vVh7bWrvS/odm8WP2nInKicRVNipcJHY2YInur6Q/9V0A==} + '@aws-sdk/client-s3@3.991.0': + resolution: {integrity: sha512-zVrOyECGCtwaGP+VzhsigkTraM3mcxuUoBKcCLxWF6hSMVozfCilA1cq1nVrcHeAAcrXgKWbCVHdxx5SQXlUcQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-sso@3.982.0': - resolution: {integrity: sha512-qJrIiivmvujdGqJ0ldSUvhN3k3N7GtPesoOI1BSt0fNXovVnMz4C/JmnkhZihU7hJhDvxJaBROLYTU+lpild4w==} + '@aws-sdk/client-sso@3.990.0': + resolution: {integrity: sha512-xTEaPjZwOqVjGbLOP7qzwbdOWJOo1ne2mUhTZwEBBkPvNk4aXB/vcYwWwrjoSWUqtit4+GDbO75ePc/S6TUJYQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.973.6': - resolution: {integrity: sha512-pz4ZOw3BLG0NdF25HoB9ymSYyPbMiIjwQJ2aROXRhAzt+b+EOxStfFv8s5iZyP6Kiw7aYhyWxj5G3NhmkoOTKw==} + '@aws-sdk/core@3.973.10': + resolution: {integrity: sha512-4u/FbyyT3JqzfsESI70iFg6e2yp87MB5kS2qcxIA66m52VSTN1fvuvbCY1h/LKq1LvuxIrlJ1ItcyjvcKoaPLg==} engines: {node: '>=20.0.0'} '@aws-sdk/crc64-nvme@3.972.0': resolution: {integrity: sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.4': - resolution: {integrity: sha512-/8dnc7+XNMmViEom2xsNdArQxQPSgy4Z/lm6qaFPTrMFesT1bV3PsBhb19n09nmxHdrtQskYmViddUIjUQElXg==} + '@aws-sdk/credential-provider-env@3.972.8': + resolution: {integrity: sha512-r91OOPAcHnLCSxaeu/lzZAVRCZ/CtTNuwmJkUwpwSDshUrP7bkX1OmFn2nUMWd9kN53Q4cEo8b7226G4olt2Mg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.6': - resolution: {integrity: sha512-5ERWqRljiZv44AIdvIRQ3k+EAV0Sq2WeJHvXuK7gL7bovSxOf8Al7MLH7Eh3rdovH4KHFnlIty7J71mzvQBl5Q==} + '@aws-sdk/credential-provider-http@3.972.10': + resolution: {integrity: sha512-DTtuyXSWB+KetzLcWaSahLJCtTUe/3SXtlGp4ik9PCe9xD6swHEkG8n8/BNsQ9dsihb9nhFvuUB4DpdBGDcvVg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.972.4': - resolution: {integrity: sha512-eRUg+3HaUKuXWn/lEMirdiA5HOKmEl8hEHVuszIDt2MMBUKgVX5XNGmb3XmbgU17h6DZ+RtjbxQpjhz3SbTjZg==} + '@aws-sdk/credential-provider-ini@3.972.8': + resolution: {integrity: sha512-n2dMn21gvbBIEh00E8Nb+j01U/9rSqFIamWRdGm/mE5e+vHQ9g0cBNdrYFlM6AAiryKVHZmShWT9D1JAWJ3ISw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.4': - resolution: {integrity: sha512-nLGjXuvWWDlQAp505xIONI7Gam0vw2p7Qu3P6on/W2q7rjJXtYjtpHbcsaOjJ/pAju3eTvEQuSuRedcRHVQIAQ==} + '@aws-sdk/credential-provider-login@3.972.8': + resolution: {integrity: sha512-rMFuVids8ICge/X9DF5pRdGMIvkVhDV9IQFQ8aTYk6iF0rl9jOUa1C3kjepxiXUlpgJQT++sLZkT9n0TMLHhQw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.5': - resolution: {integrity: sha512-VWXKgSISQCI2GKN3zakTNHSiZ0+mux7v6YHmmbLQp/o3fvYUQJmKGcLZZzg2GFA+tGGBStplra9VFNf/WwxpYg==} + '@aws-sdk/credential-provider-node@3.972.9': + resolution: {integrity: sha512-LfJfO0ClRAq2WsSnA9JuUsNyIicD2eyputxSlSL0EiMrtxOxELLRG6ZVYDf/a1HCepaYPXeakH4y8D5OLCauag==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.4': - resolution: {integrity: sha512-TCZpWUnBQN1YPk6grvd5x419OfXjHvhj5Oj44GYb84dOVChpg/+2VoEj+YVA4F4E/6huQPNnX7UYbTtxJqgihw==} + '@aws-sdk/credential-provider-process@3.972.8': + resolution: {integrity: sha512-6cg26ffFltxM51OOS8NH7oE41EccaYiNlbd5VgUYwhiGCySLfHoGuGrLm2rMB4zhy+IO5nWIIG0HiodX8zdvHA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.972.4': - resolution: {integrity: sha512-wzsGwv9mKlwJ3vHLyembBvGE/5nPUIwRR2I51B1cBV4Cb4ql9nIIfpmHzm050XYTY5fqTOKJQnhLj7zj89VG8g==} + '@aws-sdk/credential-provider-sso@3.972.8': + resolution: {integrity: sha512-35kqmFOVU1n26SNv+U37sM8b2TzG8LyqAcd6iM9gprqxyHEh/8IM3gzN4Jzufs3qM6IrH8e43ryZWYdvfVzzKQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.4': - resolution: {integrity: sha512-hIzw2XzrG8jzsUSEatehmpkd5rWzASg5IHUfA+m01k/RtvfAML7ZJVVohuKdhAYx+wV2AThLiQJVzqn7F0khrw==} + '@aws-sdk/credential-provider-web-identity@3.972.8': + resolution: {integrity: sha512-CZhN1bOc1J3ubQPqbmr5b4KaMJBgdDvYsmEIZuX++wFlzmZsKj1bwkaiTEb5U2V7kXuzLlpF5HJSOM9eY/6nGA==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-bucket-endpoint@3.972.3': @@ -264,8 +264,8 @@ packages: resolution: {integrity: sha512-4msC33RZsXQpUKR5QR4HnvBSNCPLGHmB55oDiROqqgyOc+TOfVu2xgi5goA7ms6MdZLeEh2905UfWMnMMF4mRg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.972.4': - resolution: {integrity: sha512-xOxsUkF3O3BtIe3tf54OpPo94eZepjFm3z0Dd2TZKbsPxMiRTFXurC04wJ58o/wPW9YHVO9VqZik3MfoPfrKlw==} + '@aws-sdk/middleware-flexible-checksums@3.972.8': + resolution: {integrity: sha512-Hn6gumcN/3/8Fzo9z7N1pA2PRfE8S+qAqdb4g3MqzXjIOIe+VxD7edO/DKAJ1YH11639EGQIHBz0wdOb5btjtw==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-host-header@3.972.3': @@ -284,32 +284,32 @@ packages: resolution: {integrity: sha512-PY57QhzNuXHnwbJgbWYTrqIDHYSeOlhfYERTAuc16LKZpTZRJUjzBFokp9hF7u1fuGeE3D70ERXzdbMBOqQz7Q==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.6': - resolution: {integrity: sha512-Xq7wM6kbgJN1UO++8dvH/efPb1nTwWqFCpZCR7RCLOETP7xAUAhVo7JmsCnML5Di/iC4Oo5VrJ4QmkYcMZniLw==} + '@aws-sdk/middleware-sdk-s3@3.972.10': + resolution: {integrity: sha512-wLkB4bshbBtsAiC2WwlHzOWXu1fx3ftL63fQl0DxEda48Q6B8bcHydZppE3KjEIpPyiNOllByfSnb07cYpIgmw==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-ssec@3.972.3': resolution: {integrity: sha512-dU6kDuULN3o3jEHcjm0c4zWJlY1zWVkjG9NPe9qxYLLpcbdj5kRYBS2DdWYD+1B9f910DezRuws7xDEqKkHQIg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-user-agent@3.972.6': - resolution: {integrity: sha512-TehLN8W/kivl0U9HcS+keryElEWORROpghDXZBLfnb40DXM7hx/i+7OOjkogXQOF3QtUraJVRkHQ07bPhrWKlw==} + '@aws-sdk/middleware-user-agent@3.972.10': + resolution: {integrity: sha512-bBEL8CAqPQkI91ZM5a9xnFAzedpzH6NYCOtNyLarRAzTUTFN2DKqaC60ugBa7pnU1jSi4mA7WAXBsrod7nJltg==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.982.0': - resolution: {integrity: sha512-VVkaH27digrJfdVrT64rjkllvOp4oRiZuuJvrylLXAKl18ujToJR7AqpDldL/LS63RVne3QWIpkygIymxFtliQ==} + '@aws-sdk/nested-clients@3.990.0': + resolution: {integrity: sha512-3NA0s66vsy8g7hPh36ZsUgO4SiMyrhwcYvuuNK1PezO52vX3hXDW4pQrC6OQLGKGJV0o6tbEyQtXb/mPs8zg8w==} engines: {node: '>=20.0.0'} '@aws-sdk/region-config-resolver@3.972.3': resolution: {integrity: sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.984.0': - resolution: {integrity: sha512-TaWbfYCwnuOSvDSrgs7QgoaoXse49E7LzUkVOUhoezwB7bkmhp+iojADm7UepCEu4021SquD7NG1xA+WCvmldA==} + '@aws-sdk/signature-v4-multi-region@3.991.0': + resolution: {integrity: sha512-sW+BcPs/RgqsdlrN3YrYr2Q1hEQjT9DY7B0edhZeaEt2WdFQoh+QfBDhlHPCvkJyxbF9BAW8CjJDhvIQYUrx3A==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.982.0': - resolution: {integrity: sha512-v3M0KYp2TVHYHNBT7jHD9lLTWAdS9CaWJ2jboRKt0WAB65bA7iUEpR+k4VqKYtpQN4+8kKSc4w+K6kUNZkHKQw==} + '@aws-sdk/token-providers@3.990.0': + resolution: {integrity: sha512-L3BtUb2v9XmYgQdfGBzbBtKMXaP5fV973y3Qdxeevs6oUTVXFmi/mV1+LnScA/1wVPJC9/hlK+1o5vbt7cG7EQ==} engines: {node: '>=20.0.0'} '@aws-sdk/types@3.973.1': @@ -320,12 +320,12 @@ packages: resolution: {integrity: sha512-VkykWbqMjlSgBFDyrY3nOSqupMc6ivXuGmvci6Q3NnLq5kC+mKQe2QBZ4nrWRE/jqOxeFP2uYzLtwncYYcvQDg==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-endpoints@3.982.0': - resolution: {integrity: sha512-M27u8FJP7O0Of9hMWX5dipp//8iglmV9jr7R8SR8RveU+Z50/8TqH68Tu6wUWBGMfXjzbVwn1INIAO5lZrlxXQ==} + '@aws-sdk/util-endpoints@3.990.0': + resolution: {integrity: sha512-kVwtDc9LNI3tQZHEMNbkLIOpeDK8sRSTuT8eMnzGY+O+JImPisfSTjdh+jw9OTznu+MYZjQsv0258sazVKunYg==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-endpoints@3.984.0': - resolution: {integrity: sha512-9ebjLA0hMKHeVvXEtTDCCOBtwjb0bOXiuUV06HNeVdgAjH6gj4x4Zwt4IBti83TiyTGOCl5YfZqGx4ehVsasbQ==} + '@aws-sdk/util-endpoints@3.991.0': + resolution: {integrity: sha512-m8tcZ3SbqG3NRDv0Py3iBKdb4/FlpOCP4CQ6wRtsk4vs3UypZ0nFdZwCRVnTN7j+ldj+V72xVi/JBlxFBDE7Sg==} engines: {node: '>=20.0.0'} '@aws-sdk/util-locate-window@3.965.4': @@ -335,8 +335,8 @@ packages: '@aws-sdk/util-user-agent-browser@3.972.3': resolution: {integrity: sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw==} - '@aws-sdk/util-user-agent-node@3.972.4': - resolution: {integrity: sha512-3WFCBLiM8QiHDfosQq3Py+lIMgWlFWwFQliUHUqwEiRqLnKyhgbU3AKa7AWJF7lW2Oc/2kFNY4MlAYVnVc0i8A==} + '@aws-sdk/util-user-agent-node@3.972.8': + resolution: {integrity: sha512-XJZuT0LWsFCW1C8dEpPAXSa7h6Pb3krr2y//1X0Zidpcl0vmgY5nL/X0JuBZlntpBzaN3+U4hvKjuijyiiR8zw==} engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -661,8 +661,8 @@ packages: '@kevisual/ai@0.0.24': resolution: {integrity: sha512-7jvZk1/L//VIClK7usuNgN4ZA9Etgbooka1Sj5quE/0UywR+NNnwqXVZ89Y1fBhI1TkhauDsdJBAtcQ7r/vbVw==} - '@kevisual/api@0.0.47': - resolution: {integrity: sha512-Yhb5NQR+FqQB6huAPqO4uCoEdWiWwXGI0m0lCj6yk0/eIM+X/CzTRtS2mMcxDH3r/BacDJ+OlGQMCqnQcM896g==} + '@kevisual/api@0.0.51': + resolution: {integrity: sha512-uQzAhcJlJqIjBZ5wHBnDPsKf0/JYRKP7p3eS6TGn/Um4bvJ/AI0mP5QtJson/VcdJOFFwORiF3CJQ1ifm/Cadw==} '@kevisual/auth@2.0.3': resolution: {integrity: sha512-4xpijaIhlCTr/DlJaV/gmkCQeg45EO1yxWpRvUX+1jCdVbuxSR0wZrF0SD9oybnjmKWMKDNPLsXyduFjMGcItA==} @@ -670,6 +670,9 @@ packages: '@kevisual/context@0.0.4': resolution: {integrity: sha512-HJeLeZQLU+7tCluSfOyvkgKLs0HjCZrdJlZgEgKRSa8XTwZfMAUt6J7qZTbrZAHBlPtX68EPu/PI8JMCeu3WAQ==} + '@kevisual/context@0.0.6': + resolution: {integrity: sha512-w7HBOuO3JH37n6xT6W3FD7ykqHTwtyxOQzTzfEcKDCbsvGB1wVreSxFm2bvoFnnFLuxT/5QMpKlnPrwvmcTGnw==} + '@kevisual/js-filter@0.0.5': resolution: {integrity: sha512-+S+Sf3K/aP6XtZI2s7TgKOr35UuvUvtpJ9YDW30a+mY0/N8gRuzyKhieBzQN7Ykayzz70uoMavBXut2rUlLgzw==} @@ -697,9 +700,15 @@ packages: '@kevisual/query@0.0.39': resolution: {integrity: sha512-3UEPBIvtdykNkrby3hvrgrHdgd17Uq+Pnr4zs+JBzATkU2eKaOqtTUJqdyIEwuySCwzGTxrnlUzWP4tziDQDLQ==} + '@kevisual/query@0.0.43': + resolution: {integrity: sha512-POYc0XhcJiGKQiruIZCAhsWjSaBKxyyJGa4dAcRtJRhNveHq89cXx+trcEEiKMOmZFoL3qA50zMIHtQ1sKeZYg==} + '@kevisual/router@0.0.70': resolution: {integrity: sha512-vXlIj9jRufhcIfeuPWemjSI+dxdzSmIBq5eRxQzqEfAJ7k+mBPhoI4KxH8vHnwyL30bqm8EdODL/p6Wg8uBw3g==} + '@kevisual/router@0.0.72': + resolution: {integrity: sha512-+HL4FINZsjnoRRa8Qs7xoPg+5/TcHR7jZQ7AHWHogo0BJzCAtnQwmidMQzeGL4z0WKNbbgVhXdz1wAYoxHJZTg==} + '@kevisual/types@0.0.12': resolution: {integrity: sha512-zJXH2dosir3jVrQ6QG4i0+iLQeT9gJ3H+cKXs8ReWboxBSYzUZO78XssVeVrFPsJ33iaAqo4q3DWbSS1dWGn7Q==} @@ -742,6 +751,14 @@ packages: cpu: [x64] os: [win32] + '@noble/hashes@2.0.1': + resolution: {integrity: sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==} + engines: {node: '>= 20.19.0'} + + '@paralleldrive/cuid2@3.3.0': + resolution: {integrity: sha512-OqiFvSOF0dBSesELYY2CAMa4YINvlLpvKOz/rv6NeZEqiyttlHgv98Juwv4Ch+GrEV7IZ8jfI2VcEoYUjXXCjw==} + hasBin: true + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -781,8 +798,8 @@ packages: resolution: {integrity: sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==} engines: {node: '>=18.0.0'} - '@smithy/core@3.22.0': - resolution: {integrity: sha512-6vjCHD6vaY8KubeNw2Fg3EK0KLGQYdldG4fYgQmA0xSW0dJ8G2xFhSOdrlUakWVoP5JuWHtFODg3PNd/DN3FDA==} + '@smithy/core@3.23.0': + resolution: {integrity: sha512-Yq4UPVoQICM9zHnByLmG8632t2M0+yap4T7ANVw482J0W7HW0pOuxwVmeOwzJqX2Q89fkXz0Vybz55Wj2Xzrsg==} engines: {node: '>=18.0.0'} '@smithy/credential-provider-imds@4.2.8': @@ -845,12 +862,12 @@ packages: resolution: {integrity: sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.4.12': - resolution: {integrity: sha512-9JMKHVJtW9RysTNjcBZQHDwB0p3iTP6B1IfQV4m+uCevkVd/VuLgwfqk5cnI4RHcp4cPwoIvxQqN4B1sxeHo8Q==} + '@smithy/middleware-endpoint@4.4.14': + resolution: {integrity: sha512-FUFNE5KVeaY6U/GL0nzAAHkaCHzXLZcY1EhtQnsAqhD8Du13oPKtMB9/0WK4/LK6a/T5OZ24wPoSShff5iI6Ag==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.4.29': - resolution: {integrity: sha512-bmTn75a4tmKRkC5w61yYQLb3DmxNzB8qSVu9SbTYqW6GAL0WXO2bDZuMAn/GJSbOdHEdjZvWxe+9Kk015bw6Cg==} + '@smithy/middleware-retry@4.4.31': + resolution: {integrity: sha512-RXBzLpMkIrxBPe4C8OmEOHvS8aH9RUuCOH++Acb5jZDEblxDjyg6un72X9IcbrGTJoiUwmI7hLypNfuDACypbg==} engines: {node: '>=18.0.0'} '@smithy/middleware-serde@4.2.9': @@ -865,8 +882,8 @@ packages: resolution: {integrity: sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.4.8': - resolution: {integrity: sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg==} + '@smithy/node-http-handler@4.4.10': + resolution: {integrity: sha512-u4YeUwOWRZaHbWaebvrs3UhwQwj+2VNmcVCwXcYTvPIuVyM7Ex1ftAj+fdbG/P4AkBwLq/+SKn+ydOI4ZJE9PA==} engines: {node: '>=18.0.0'} '@smithy/property-provider@4.2.8': @@ -897,8 +914,8 @@ packages: resolution: {integrity: sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.11.1': - resolution: {integrity: sha512-SERgNg5Z1U+jfR6/2xPYjSEHY1t3pyTHC/Ma3YQl6qWtmiL42bvNId3W/oMUWIwu7ekL2FMPdqAmwbQegM7HeQ==} + '@smithy/smithy-client@4.11.3': + resolution: {integrity: sha512-Q7kY5sDau8OoE6Y9zJoRGgje8P4/UY0WzH8R2ok0PDh+iJ+ZnEKowhjEqYafVcubkbYxQVaqwm3iufktzhprGg==} engines: {node: '>=18.0.0'} '@smithy/types@4.12.0': @@ -933,12 +950,12 @@ packages: resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.3.28': - resolution: {integrity: sha512-/9zcatsCao9h6g18p/9vH9NIi5PSqhCkxQ/tb7pMgRFnqYp9XUOyOlGPDMHzr8n5ih6yYgwJEY2MLEobUgi47w==} + '@smithy/util-defaults-mode-browser@4.3.30': + resolution: {integrity: sha512-cMni0uVU27zxOiU8TuC8pQLC1pYeZ/xEMxvchSK/ILwleRd1ugobOcIRr5vXtcRqKd4aBLWlpeBoDPJJ91LQng==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.2.31': - resolution: {integrity: sha512-JTvoApUXA5kbpceI2vuqQzRjeTbLpx1eoa5R/YEZbTgtxvIB7AQZxFJ0SEyfCpgPCyVV9IT7we+ytSeIB3CyWA==} + '@smithy/util-defaults-mode-node@4.2.33': + resolution: {integrity: sha512-LEb2aq5F4oZUSzWBG7S53d4UytZSkOEJPXcBq/xbG2/TmK9EW5naUZ8lKu1BEyWMzdHIzEVN16M3k8oxDq+DJA==} engines: {node: '>=18.0.0'} '@smithy/util-endpoints@3.2.8': @@ -957,8 +974,8 @@ packages: resolution: {integrity: sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.5.10': - resolution: {integrity: sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g==} + '@smithy/util-stream@4.5.12': + resolution: {integrity: sha512-D8tgkrmhAX/UNeCZbqbEO3uqyghUnEmmoO9YEvRuwxjlkKKUE7FOgCJnqpTlQPe9MApdWPky58mNQQHbnCzoNg==} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.2.0': @@ -987,8 +1004,8 @@ packages: '@types/archiver@7.0.0': resolution: {integrity: sha512-/3vwGwx9n+mCQdYZ2IKGGHEFL30I96UgBlk8EtRDDFQ9uxM1l4O5Ci6r00EMAkiDaTqD9DQ6nVrWRICnBPtzzg==} - '@types/bun@1.3.8': - resolution: {integrity: sha512-3LvWJ2q5GerAXYxO2mffLTqOzEu5qnhEAlh48Vnu8WQfnmSwbgagjGZV6BoHKJztENYEDn6QmVd949W4uESRJA==} + '@types/bun@1.3.9': + resolution: {integrity: sha512-KQ571yULOdWJiMH+RIWIOZ7B2RXQGpL1YQrBtLIV3FqDcCu6FsbFUBwhdKUlCKUpS3PJDsHlJ1QKlpxoVR+xtw==} '@types/busboy@1.5.4': resolution: {integrity: sha512-kG7WrUuAKK0NoyxfQHsVE6j1m01s6kMma64E+OZenQABMQyTJop1DumUWcLwAQ2JzpefU7PDYoRDKl8uZosFjw==} @@ -1005,6 +1022,9 @@ packages: '@types/node@25.2.1': resolution: {integrity: sha512-CPrnr8voK8vC6eEtyRzvMpgp3VyVRhgclonE7qYi6P9sXwYb59ucfrnmFBTaP0yUi8Gk4yZg/LlTJULGxvTNsg==} + '@types/node@25.2.3': + resolution: {integrity: sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==} + '@types/pg@8.16.0': resolution: {integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==} @@ -1106,6 +1126,9 @@ packages: resolution: {integrity: sha512-8VYKM3MjCa9WcaSAI3hzwhmyHVlH8tiGFwf0RlTsZPWJ1I5MkzjiudCo4KC4DxOaL/53A5B1sI/IbldNFDbsKA==} engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x} + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -1145,11 +1168,11 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bullmq@5.67.3: - resolution: {integrity: sha512-eeQobOJn8M0Rj8tcZCVFLrimZgJQallJH1JpclOoyut2nDNkDwTEPMVcZzLeSR2fGeIVbfJTjU96F563Qkge5A==} + bullmq@5.69.3: + resolution: {integrity: sha512-P9uLsR7fDvejH/1m6uur6j7U9mqY6nNt+XvhlhStOUe7jdwbZoP/c2oWNtE+8ljOlubw4pRUKymtRqkyvloc4A==} - bun-types@1.3.8: - resolution: {integrity: sha512-fL99nxdOWvV4LqjmC+8Q9kW3M4QTtTR1eePs94v5ctGqU8OeceWrSUaRw3JYb7tU3FkMIAjkueehrHPPPGKi5Q==} + bun-types@1.3.9: + resolution: {integrity: sha512-+UBWWOakIP4Tswh0Bt0QD0alpTY8cb5hvgiYeWCMet9YukHbzuruIEeXC2D7nMJPB12kbh8C7XJykSexEqGKJg==} busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} @@ -1283,12 +1306,12 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - dotenv@17.2.4: - resolution: {integrity: sha512-mudtfb4zRB4bVvdj0xRo+e6duH1csJRM8IukBqfTRvHotn9+LBXB8ynAidP9zHqoRC/fsllXgk4kCKlR21fIhw==} + dotenv@17.3.1: + resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==} engines: {node: '>=12'} - drizzle-kit@0.31.8: - resolution: {integrity: sha512-O9EC/miwdnRDY10qRxM8P3Pg8hXe3LyU4ZipReKOgTwn4OqANmftj8XJz1UPUAS6NMHf0E2htjsbQujUTkncCg==} + drizzle-kit@0.31.9: + resolution: {integrity: sha512-GViD3IgsXn7trFyBUUHyTFBpH/FsHTxYJ66qdbVggxef4UBPHRYxQaRzYLTuekYnk9i5FIEL9pbBIwMqX/Uwrg==} hasBin: true drizzle-orm@0.45.1: @@ -1415,6 +1438,9 @@ packages: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} + error-causes@3.0.2: + resolution: {integrity: sha512-i0B8zq1dHL6mM85FGoxaJnVtx6LD5nL2v0hlpGdntg5FOSyzQ46c9lmz5qx0xRS2+PWHGOHcYxGIBC5Le2dRMw==} + es-toolkit@1.44.0: resolution: {integrity: sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==} @@ -1611,6 +1637,10 @@ packages: resolution: {integrity: sha512-tAAg/72/VxOUW7RQSX1pIxJVucYKcjFjfvj60L57jrZpYCHC3XN0WCQ3sNYL4Gmvv+7GPvTAjc+KSdeNuE8oWQ==} engines: {node: '>=12.22.0'} + ioredis@5.9.3: + resolution: {integrity: sha512-VI5tMCdeoxZWU5vjHWsiE/Su76JGhBvWF1MJnV9ZtGltHk9BmD48oDq8Tj8haZ85aceXZMxLNDQZRVo5QKNgXA==} + engines: {node: '>=12.22.0'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -1974,6 +2004,15 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react-dom@19.2.4: + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} + peerDependencies: + react: ^19.2.4 + + react@19.2.4: + resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + engines: {node: '>=0.10.0'} + read@1.0.7: resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} engines: {node: '>=0.8'} @@ -2030,6 +2069,9 @@ packages: sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -2040,11 +2082,6 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -2093,6 +2130,12 @@ packages: resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + sonner@2.0.7: + resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -2275,6 +2318,24 @@ packages: zod@4.3.6: resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zustand@5.0.11: + resolution: {integrity: sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + snapshots: '@aws-crypto/crc32@5.2.0': @@ -2324,31 +2385,31 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-s3@3.984.0': + '@aws-sdk/client-s3@3.991.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.6 - '@aws-sdk/credential-provider-node': 3.972.5 + '@aws-sdk/core': 3.973.10 + '@aws-sdk/credential-provider-node': 3.972.9 '@aws-sdk/middleware-bucket-endpoint': 3.972.3 '@aws-sdk/middleware-expect-continue': 3.972.3 - '@aws-sdk/middleware-flexible-checksums': 3.972.4 + '@aws-sdk/middleware-flexible-checksums': 3.972.8 '@aws-sdk/middleware-host-header': 3.972.3 '@aws-sdk/middleware-location-constraint': 3.972.3 '@aws-sdk/middleware-logger': 3.972.3 '@aws-sdk/middleware-recursion-detection': 3.972.3 - '@aws-sdk/middleware-sdk-s3': 3.972.6 + '@aws-sdk/middleware-sdk-s3': 3.972.10 '@aws-sdk/middleware-ssec': 3.972.3 - '@aws-sdk/middleware-user-agent': 3.972.6 + '@aws-sdk/middleware-user-agent': 3.972.10 '@aws-sdk/region-config-resolver': 3.972.3 - '@aws-sdk/signature-v4-multi-region': 3.984.0 + '@aws-sdk/signature-v4-multi-region': 3.991.0 '@aws-sdk/types': 3.973.1 - '@aws-sdk/util-endpoints': 3.984.0 + '@aws-sdk/util-endpoints': 3.991.0 '@aws-sdk/util-user-agent-browser': 3.972.3 - '@aws-sdk/util-user-agent-node': 3.972.4 + '@aws-sdk/util-user-agent-node': 3.972.8 '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 + '@smithy/core': 3.23.0 '@smithy/eventstream-serde-browser': 4.2.8 '@smithy/eventstream-serde-config-resolver': 4.3.8 '@smithy/eventstream-serde-node': 4.2.8 @@ -2359,66 +2420,66 @@ snapshots: '@smithy/invalid-dependency': 4.2.8 '@smithy/md5-js': 4.2.8 '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 + '@smithy/middleware-endpoint': 4.4.14 + '@smithy/middleware-retry': 4.4.31 '@smithy/middleware-serde': 4.2.9 '@smithy/middleware-stack': 4.2.8 '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 + '@smithy/node-http-handler': 4.4.10 '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 + '@smithy/smithy-client': 4.11.3 '@smithy/types': 4.12.0 '@smithy/url-parser': 4.2.8 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 + '@smithy/util-defaults-mode-browser': 4.3.30 + '@smithy/util-defaults-mode-node': 4.2.33 '@smithy/util-endpoints': 3.2.8 '@smithy/util-middleware': 4.2.8 '@smithy/util-retry': 4.2.8 - '@smithy/util-stream': 4.5.10 + '@smithy/util-stream': 4.5.12 '@smithy/util-utf8': 4.2.0 '@smithy/util-waiter': 4.2.8 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.982.0': + '@aws-sdk/client-sso@3.990.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.6 + '@aws-sdk/core': 3.973.10 '@aws-sdk/middleware-host-header': 3.972.3 '@aws-sdk/middleware-logger': 3.972.3 '@aws-sdk/middleware-recursion-detection': 3.972.3 - '@aws-sdk/middleware-user-agent': 3.972.6 + '@aws-sdk/middleware-user-agent': 3.972.10 '@aws-sdk/region-config-resolver': 3.972.3 '@aws-sdk/types': 3.973.1 - '@aws-sdk/util-endpoints': 3.982.0 + '@aws-sdk/util-endpoints': 3.990.0 '@aws-sdk/util-user-agent-browser': 3.972.3 - '@aws-sdk/util-user-agent-node': 3.972.4 + '@aws-sdk/util-user-agent-node': 3.972.8 '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 + '@smithy/core': 3.23.0 '@smithy/fetch-http-handler': 5.3.9 '@smithy/hash-node': 4.2.8 '@smithy/invalid-dependency': 4.2.8 '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 + '@smithy/middleware-endpoint': 4.4.14 + '@smithy/middleware-retry': 4.4.31 '@smithy/middleware-serde': 4.2.9 '@smithy/middleware-stack': 4.2.8 '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 + '@smithy/node-http-handler': 4.4.10 '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 + '@smithy/smithy-client': 4.11.3 '@smithy/types': 4.12.0 '@smithy/url-parser': 4.2.8 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 + '@smithy/util-defaults-mode-browser': 4.3.30 + '@smithy/util-defaults-mode-node': 4.2.33 '@smithy/util-endpoints': 3.2.8 '@smithy/util-middleware': 4.2.8 '@smithy/util-retry': 4.2.8 @@ -2427,16 +2488,16 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.973.6': + '@aws-sdk/core@3.973.10': dependencies: '@aws-sdk/types': 3.973.1 '@aws-sdk/xml-builder': 3.972.4 - '@smithy/core': 3.22.0 + '@smithy/core': 3.23.0 '@smithy/node-config-provider': 4.3.8 '@smithy/property-provider': 4.2.8 '@smithy/protocol-http': 5.3.8 '@smithy/signature-v4': 5.3.8 - '@smithy/smithy-client': 4.11.1 + '@smithy/smithy-client': 4.11.3 '@smithy/types': 4.12.0 '@smithy/util-base64': 4.3.0 '@smithy/util-middleware': 4.2.8 @@ -2448,37 +2509,37 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.4': + '@aws-sdk/credential-provider-env@3.972.8': dependencies: - '@aws-sdk/core': 3.973.6 + '@aws-sdk/core': 3.973.10 '@aws-sdk/types': 3.973.1 '@smithy/property-provider': 4.2.8 '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.6': + '@aws-sdk/credential-provider-http@3.972.10': dependencies: - '@aws-sdk/core': 3.973.6 + '@aws-sdk/core': 3.973.10 '@aws-sdk/types': 3.973.1 '@smithy/fetch-http-handler': 5.3.9 - '@smithy/node-http-handler': 4.4.8 + '@smithy/node-http-handler': 4.4.10 '@smithy/property-provider': 4.2.8 '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 + '@smithy/smithy-client': 4.11.3 '@smithy/types': 4.12.0 - '@smithy/util-stream': 4.5.10 + '@smithy/util-stream': 4.5.12 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.972.4': + '@aws-sdk/credential-provider-ini@3.972.8': dependencies: - '@aws-sdk/core': 3.973.6 - '@aws-sdk/credential-provider-env': 3.972.4 - '@aws-sdk/credential-provider-http': 3.972.6 - '@aws-sdk/credential-provider-login': 3.972.4 - '@aws-sdk/credential-provider-process': 3.972.4 - '@aws-sdk/credential-provider-sso': 3.972.4 - '@aws-sdk/credential-provider-web-identity': 3.972.4 - '@aws-sdk/nested-clients': 3.982.0 + '@aws-sdk/core': 3.973.10 + '@aws-sdk/credential-provider-env': 3.972.8 + '@aws-sdk/credential-provider-http': 3.972.10 + '@aws-sdk/credential-provider-login': 3.972.8 + '@aws-sdk/credential-provider-process': 3.972.8 + '@aws-sdk/credential-provider-sso': 3.972.8 + '@aws-sdk/credential-provider-web-identity': 3.972.8 + '@aws-sdk/nested-clients': 3.990.0 '@aws-sdk/types': 3.973.1 '@smithy/credential-provider-imds': 4.2.8 '@smithy/property-provider': 4.2.8 @@ -2488,10 +2549,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-login@3.972.4': + '@aws-sdk/credential-provider-login@3.972.8': dependencies: - '@aws-sdk/core': 3.973.6 - '@aws-sdk/nested-clients': 3.982.0 + '@aws-sdk/core': 3.973.10 + '@aws-sdk/nested-clients': 3.990.0 '@aws-sdk/types': 3.973.1 '@smithy/property-provider': 4.2.8 '@smithy/protocol-http': 5.3.8 @@ -2501,14 +2562,14 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.972.5': + '@aws-sdk/credential-provider-node@3.972.9': dependencies: - '@aws-sdk/credential-provider-env': 3.972.4 - '@aws-sdk/credential-provider-http': 3.972.6 - '@aws-sdk/credential-provider-ini': 3.972.4 - '@aws-sdk/credential-provider-process': 3.972.4 - '@aws-sdk/credential-provider-sso': 3.972.4 - '@aws-sdk/credential-provider-web-identity': 3.972.4 + '@aws-sdk/credential-provider-env': 3.972.8 + '@aws-sdk/credential-provider-http': 3.972.10 + '@aws-sdk/credential-provider-ini': 3.972.8 + '@aws-sdk/credential-provider-process': 3.972.8 + '@aws-sdk/credential-provider-sso': 3.972.8 + '@aws-sdk/credential-provider-web-identity': 3.972.8 '@aws-sdk/types': 3.973.1 '@smithy/credential-provider-imds': 4.2.8 '@smithy/property-provider': 4.2.8 @@ -2518,20 +2579,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.972.4': + '@aws-sdk/credential-provider-process@3.972.8': dependencies: - '@aws-sdk/core': 3.973.6 + '@aws-sdk/core': 3.973.10 '@aws-sdk/types': 3.973.1 '@smithy/property-provider': 4.2.8 '@smithy/shared-ini-file-loader': 4.4.3 '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.972.4': + '@aws-sdk/credential-provider-sso@3.972.8': dependencies: - '@aws-sdk/client-sso': 3.982.0 - '@aws-sdk/core': 3.973.6 - '@aws-sdk/token-providers': 3.982.0 + '@aws-sdk/client-sso': 3.990.0 + '@aws-sdk/core': 3.973.10 + '@aws-sdk/token-providers': 3.990.0 '@aws-sdk/types': 3.973.1 '@smithy/property-provider': 4.2.8 '@smithy/shared-ini-file-loader': 4.4.3 @@ -2540,10 +2601,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.972.4': + '@aws-sdk/credential-provider-web-identity@3.972.8': dependencies: - '@aws-sdk/core': 3.973.6 - '@aws-sdk/nested-clients': 3.982.0 + '@aws-sdk/core': 3.973.10 + '@aws-sdk/nested-clients': 3.990.0 '@aws-sdk/types': 3.973.1 '@smithy/property-provider': 4.2.8 '@smithy/shared-ini-file-loader': 4.4.3 @@ -2569,12 +2630,12 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.972.4': + '@aws-sdk/middleware-flexible-checksums@3.972.8': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.973.6 + '@aws-sdk/core': 3.973.10 '@aws-sdk/crc64-nvme': 3.972.0 '@aws-sdk/types': 3.973.1 '@smithy/is-array-buffer': 4.2.0 @@ -2582,7 +2643,7 @@ snapshots: '@smithy/protocol-http': 5.3.8 '@smithy/types': 4.12.0 '@smithy/util-middleware': 4.2.8 - '@smithy/util-stream': 4.5.10 + '@smithy/util-stream': 4.5.12 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 @@ -2613,20 +2674,20 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.972.6': + '@aws-sdk/middleware-sdk-s3@3.972.10': dependencies: - '@aws-sdk/core': 3.973.6 + '@aws-sdk/core': 3.973.10 '@aws-sdk/types': 3.973.1 '@aws-sdk/util-arn-parser': 3.972.2 - '@smithy/core': 3.22.0 + '@smithy/core': 3.23.0 '@smithy/node-config-provider': 4.3.8 '@smithy/protocol-http': 5.3.8 '@smithy/signature-v4': 5.3.8 - '@smithy/smithy-client': 4.11.1 + '@smithy/smithy-client': 4.11.3 '@smithy/types': 4.12.0 '@smithy/util-config-provider': 4.2.0 '@smithy/util-middleware': 4.2.8 - '@smithy/util-stream': 4.5.10 + '@smithy/util-stream': 4.5.12 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 @@ -2636,51 +2697,51 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.972.6': + '@aws-sdk/middleware-user-agent@3.972.10': dependencies: - '@aws-sdk/core': 3.973.6 + '@aws-sdk/core': 3.973.10 '@aws-sdk/types': 3.973.1 - '@aws-sdk/util-endpoints': 3.982.0 - '@smithy/core': 3.22.0 + '@aws-sdk/util-endpoints': 3.990.0 + '@smithy/core': 3.23.0 '@smithy/protocol-http': 5.3.8 '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.982.0': + '@aws-sdk/nested-clients@3.990.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.6 + '@aws-sdk/core': 3.973.10 '@aws-sdk/middleware-host-header': 3.972.3 '@aws-sdk/middleware-logger': 3.972.3 '@aws-sdk/middleware-recursion-detection': 3.972.3 - '@aws-sdk/middleware-user-agent': 3.972.6 + '@aws-sdk/middleware-user-agent': 3.972.10 '@aws-sdk/region-config-resolver': 3.972.3 '@aws-sdk/types': 3.973.1 - '@aws-sdk/util-endpoints': 3.982.0 + '@aws-sdk/util-endpoints': 3.990.0 '@aws-sdk/util-user-agent-browser': 3.972.3 - '@aws-sdk/util-user-agent-node': 3.972.4 + '@aws-sdk/util-user-agent-node': 3.972.8 '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 + '@smithy/core': 3.23.0 '@smithy/fetch-http-handler': 5.3.9 '@smithy/hash-node': 4.2.8 '@smithy/invalid-dependency': 4.2.8 '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 + '@smithy/middleware-endpoint': 4.4.14 + '@smithy/middleware-retry': 4.4.31 '@smithy/middleware-serde': 4.2.9 '@smithy/middleware-stack': 4.2.8 '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 + '@smithy/node-http-handler': 4.4.10 '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 + '@smithy/smithy-client': 4.11.3 '@smithy/types': 4.12.0 '@smithy/url-parser': 4.2.8 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 + '@smithy/util-defaults-mode-browser': 4.3.30 + '@smithy/util-defaults-mode-node': 4.2.33 '@smithy/util-endpoints': 3.2.8 '@smithy/util-middleware': 4.2.8 '@smithy/util-retry': 4.2.8 @@ -2697,19 +2758,19 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.984.0': + '@aws-sdk/signature-v4-multi-region@3.991.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.972.6 + '@aws-sdk/middleware-sdk-s3': 3.972.10 '@aws-sdk/types': 3.973.1 '@smithy/protocol-http': 5.3.8 '@smithy/signature-v4': 5.3.8 '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/token-providers@3.982.0': + '@aws-sdk/token-providers@3.990.0': dependencies: - '@aws-sdk/core': 3.973.6 - '@aws-sdk/nested-clients': 3.982.0 + '@aws-sdk/core': 3.973.10 + '@aws-sdk/nested-clients': 3.990.0 '@aws-sdk/types': 3.973.1 '@smithy/property-provider': 4.2.8 '@smithy/shared-ini-file-loader': 4.4.3 @@ -2727,7 +2788,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.982.0': + '@aws-sdk/util-endpoints@3.990.0': dependencies: '@aws-sdk/types': 3.973.1 '@smithy/types': 4.12.0 @@ -2735,7 +2796,7 @@ snapshots: '@smithy/util-endpoints': 3.2.8 tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.984.0': + '@aws-sdk/util-endpoints@3.991.0': dependencies: '@aws-sdk/types': 3.973.1 '@smithy/types': 4.12.0 @@ -2754,9 +2815,9 @@ snapshots: bowser: 2.13.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.972.4': + '@aws-sdk/util-user-agent-node@3.972.8': dependencies: - '@aws-sdk/middleware-user-agent': 3.972.6 + '@aws-sdk/middleware-user-agent': 3.972.10 '@aws-sdk/types': 3.973.1 '@smithy/node-config-provider': 4.3.8 '@smithy/types': 4.12.0 @@ -2943,21 +3004,33 @@ snapshots: '@kevisual/permission': 0.0.3 '@kevisual/query': 0.0.38 - '@kevisual/api@0.0.47': + '@kevisual/api@0.0.51(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: + '@kevisual/context': 0.0.6 '@kevisual/js-filter': 0.0.5 '@kevisual/load': 0.0.6 + '@paralleldrive/cuid2': 3.3.0 es-toolkit: 1.44.0 eventemitter3: 5.0.4 fuse.js: 7.1.0 nanoid: 5.1.6 path-browserify-esm: 1.0.6 + sonner: 2.0.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4) spark-md5: 3.0.2 + zustand: 5.0.11(react@19.2.4) + transitivePeerDependencies: + - '@types/react' + - immer + - react + - react-dom + - use-sync-external-store '@kevisual/auth@2.0.3': {} '@kevisual/context@0.0.4': {} + '@kevisual/context@0.0.6': {} + '@kevisual/js-filter@0.0.5': {} '@kevisual/load@0.0.6': @@ -2988,16 +3061,22 @@ snapshots: dependencies: tslib: 2.8.1 + '@kevisual/query@0.0.43': {} + '@kevisual/router@0.0.70': dependencies: es-toolkit: 1.44.0 + '@kevisual/router@0.0.72': + dependencies: + es-toolkit: 1.44.0 + '@kevisual/types@0.0.12': {} - '@kevisual/use-config@1.0.30(dotenv@17.2.4)': + '@kevisual/use-config@1.0.30(dotenv@17.3.1)': dependencies: '@kevisual/load': 0.0.6 - dotenv: 17.2.4 + dotenv: 17.3.1 '@kevisual/ws@8.0.0': {} @@ -3019,6 +3098,14 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true + '@noble/hashes@2.0.1': {} + + '@paralleldrive/cuid2@3.3.0': + dependencies: + '@noble/hashes': 2.0.1 + bignumber.js: 9.3.1 + error-causes: 3.0.2 + '@pkgjs/parseargs@0.11.0': optional: true @@ -3097,7 +3184,7 @@ snapshots: '@smithy/util-middleware': 4.2.8 tslib: 2.8.1 - '@smithy/core@3.22.0': + '@smithy/core@3.23.0': dependencies: '@smithy/middleware-serde': 4.2.9 '@smithy/protocol-http': 5.3.8 @@ -3105,7 +3192,7 @@ snapshots: '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-middleware': 4.2.8 - '@smithy/util-stream': 4.5.10 + '@smithy/util-stream': 4.5.12 '@smithy/util-utf8': 4.2.0 '@smithy/uuid': 1.1.0 tslib: 2.8.1 @@ -3201,9 +3288,9 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.4.12': + '@smithy/middleware-endpoint@4.4.14': dependencies: - '@smithy/core': 3.22.0 + '@smithy/core': 3.23.0 '@smithy/middleware-serde': 4.2.9 '@smithy/node-config-provider': 4.3.8 '@smithy/shared-ini-file-loader': 4.4.3 @@ -3212,12 +3299,12 @@ snapshots: '@smithy/util-middleware': 4.2.8 tslib: 2.8.1 - '@smithy/middleware-retry@4.4.29': + '@smithy/middleware-retry@4.4.31': dependencies: '@smithy/node-config-provider': 4.3.8 '@smithy/protocol-http': 5.3.8 '@smithy/service-error-classification': 4.2.8 - '@smithy/smithy-client': 4.11.1 + '@smithy/smithy-client': 4.11.3 '@smithy/types': 4.12.0 '@smithy/util-middleware': 4.2.8 '@smithy/util-retry': 4.2.8 @@ -3242,7 +3329,7 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/node-http-handler@4.4.8': + '@smithy/node-http-handler@4.4.10': dependencies: '@smithy/abort-controller': 4.2.8 '@smithy/protocol-http': 5.3.8 @@ -3291,14 +3378,14 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/smithy-client@4.11.1': + '@smithy/smithy-client@4.11.3': dependencies: - '@smithy/core': 3.22.0 - '@smithy/middleware-endpoint': 4.4.12 + '@smithy/core': 3.23.0 + '@smithy/middleware-endpoint': 4.4.14 '@smithy/middleware-stack': 4.2.8 '@smithy/protocol-http': 5.3.8 '@smithy/types': 4.12.0 - '@smithy/util-stream': 4.5.10 + '@smithy/util-stream': 4.5.12 tslib: 2.8.1 '@smithy/types@4.12.0': @@ -3339,20 +3426,20 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.3.28': + '@smithy/util-defaults-mode-browser@4.3.30': dependencies: '@smithy/property-provider': 4.2.8 - '@smithy/smithy-client': 4.11.1 + '@smithy/smithy-client': 4.11.3 '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.2.31': + '@smithy/util-defaults-mode-node@4.2.33': dependencies: '@smithy/config-resolver': 4.4.6 '@smithy/credential-provider-imds': 4.2.8 '@smithy/node-config-provider': 4.3.8 '@smithy/property-provider': 4.2.8 - '@smithy/smithy-client': 4.11.1 + '@smithy/smithy-client': 4.11.3 '@smithy/types': 4.12.0 tslib: 2.8.1 @@ -3377,10 +3464,10 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/util-stream@4.5.10': + '@smithy/util-stream@4.5.12': dependencies: '@smithy/fetch-http-handler': 5.3.9 - '@smithy/node-http-handler': 4.4.8 + '@smithy/node-http-handler': 4.4.10 '@smithy/types': 4.12.0 '@smithy/util-base64': 4.3.0 '@smithy/util-buffer-from': 4.2.0 @@ -3418,20 +3505,20 @@ snapshots: dependencies: '@types/readdir-glob': 1.1.5 - '@types/bun@1.3.8': + '@types/bun@1.3.9': dependencies: - bun-types: 1.3.8 + bun-types: 1.3.9 '@types/busboy@1.5.4': dependencies: - '@types/node': 25.2.1 + '@types/node': 25.2.3 '@types/crypto-js@4.2.2': {} '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 0.7.34 - '@types/node': 25.2.1 + '@types/node': 25.2.3 '@types/ms@0.7.34': {} @@ -3439,25 +3526,29 @@ snapshots: dependencies: undici-types: 7.16.0 + '@types/node@25.2.3': + dependencies: + undici-types: 7.16.0 + '@types/pg@8.16.0': dependencies: - '@types/node': 25.2.1 + '@types/node': 25.2.3 pg-protocol: 1.11.0 pg-types: 2.2.0 '@types/readdir-glob@1.1.5': dependencies: - '@types/node': 25.2.1 + '@types/node': 25.2.3 '@types/semver@7.7.1': {} '@types/send@1.2.1': dependencies: - '@types/node': 25.2.1 + '@types/node': 25.2.3 '@types/ws@8.18.1': dependencies: - '@types/node': 25.2.1 + '@types/node': 25.2.3 '@types/xml2js@0.4.14': dependencies: @@ -3547,6 +3638,8 @@ snapshots: prebuild-install: 7.1.3 optional: true + bignumber.js@9.3.1: {} + binary-extensions@2.3.0: {} bindings@1.5.0: @@ -3590,21 +3683,21 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bullmq@5.67.3: + bullmq@5.69.3: dependencies: cron-parser: 4.9.0 ioredis: 5.9.2 msgpackr: 1.11.5 node-abort-controller: 3.1.1 - semver: 7.7.3 + semver: 7.7.4 tslib: 2.8.1 uuid: 11.1.0 transitivePeerDependencies: - supports-color - bun-types@1.3.8: + bun-types@1.3.9: dependencies: - '@types/node': 25.2.1 + '@types/node': 25.2.3 busboy@1.6.0: dependencies: @@ -3720,9 +3813,9 @@ snapshots: detect-libc@2.1.2: optional: true - dotenv@17.2.4: {} + dotenv@17.3.1: {} - drizzle-kit@0.31.8: + drizzle-kit@0.31.9: dependencies: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 @@ -3731,16 +3824,16 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.45.1(@types/pg@8.16.0)(better-sqlite3@12.6.2)(bun-types@1.3.8)(pg@8.18.0): + drizzle-orm@0.45.1(@types/pg@8.16.0)(better-sqlite3@12.6.2)(bun-types@1.3.9)(pg@8.18.0): optionalDependencies: '@types/pg': 8.16.0 better-sqlite3: 12.6.2 - bun-types: 1.3.8 + bun-types: 1.3.9 pg: 8.18.0 - drizzle-zod@0.8.3(drizzle-orm@0.45.1(@types/pg@8.16.0)(better-sqlite3@12.6.2)(bun-types@1.3.8)(pg@8.18.0))(zod@4.3.6): + drizzle-zod@0.8.3(drizzle-orm@0.45.1(@types/pg@8.16.0)(better-sqlite3@12.6.2)(bun-types@1.3.9)(pg@8.18.0))(zod@4.3.6): dependencies: - drizzle-orm: 0.45.1(@types/pg@8.16.0)(better-sqlite3@12.6.2)(bun-types@1.3.8)(pg@8.18.0) + drizzle-orm: 0.45.1(@types/pg@8.16.0)(better-sqlite3@12.6.2)(bun-types@1.3.9)(pg@8.18.0) zod: 4.3.6 eastasianwidth@0.2.0: {} @@ -3766,6 +3859,8 @@ snapshots: dependencies: ansi-colors: 4.1.3 + error-causes@3.0.2: {} + es-toolkit@1.44.0: {} esbuild-register@3.6.0(esbuild@0.25.12): @@ -4001,6 +4096,20 @@ snapshots: transitivePeerDependencies: - supports-color + ioredis@5.9.3: + dependencies: + '@ioredis/commands': 1.5.0 + cluster-key-slot: 1.1.2 + debug: 4.4.3 + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + ip-address@9.0.5: dependencies: jsbn: 1.1.0 @@ -4429,6 +4538,13 @@ snapshots: strip-json-comments: 2.0.1 optional: true + react-dom@19.2.4(react@19.2.4): + dependencies: + react: 19.2.4 + scheduler: 0.27.0 + + react@19.2.4: {} + read@1.0.7: dependencies: mute-stream: 0.0.8 @@ -4498,14 +4614,14 @@ snapshots: sax@1.4.1: {} + scheduler@0.27.0: {} + semver@7.5.4: dependencies: lru-cache: 6.0.0 semver@7.7.2: {} - semver@7.7.3: {} - semver@7.7.4: {} send@1.2.1: @@ -4563,6 +4679,11 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 + sonner@2.0.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -4737,3 +4858,7 @@ snapshots: readable-stream: 4.5.2 zod@4.3.6: {} + + zustand@5.0.11(react@19.2.4): + optionalDependencies: + react: 19.2.4 diff --git a/src/route.ts b/src/route.ts index c3462c6..c20c8c7 100644 --- a/src/route.ts +++ b/src/route.ts @@ -4,6 +4,8 @@ import { app } from './app.ts'; import type { App } from '@kevisual/router'; import { User } from './models/user.ts'; import { createCookie, getSomeInfoFromReq } from './routes/user/me.ts'; +import { toJSONSchema } from '@kevisual/router'; +import { pick } from 'es-toolkit'; /** * 添加auth中间件, 用于验证token @@ -169,22 +171,17 @@ app .define(async (ctx) => { const tokenUser = ctx.state.tokenUser; let isUser = !!tokenUser; + const routesList = app.router.routes.filter(item => { + if (item.id === 'auth' || item.id === 'auth-can' || item.id === 'check-auth-admin' || item.id === 'auth-admin') { + return false; + } + return true; + }).map((item) => { + const route = pick(item, ['id', 'path', 'key', 'description', 'middleware'] as const); + return toJSONSchema(route); + }) ctx.body = { - list: app.router.routes.filter(item => { - if (item.id === 'auth' || item.id === 'auth-can' || item.id === 'check-auth-admin' || item.id === 'auth-admin') { - return false; - } - return true; - }).map((item) => { - return { - id: item.id, - path: item.path, - key: item.key, - description: item.description, - middeleware: item.middleware, - metadata: item.metadata, - }; - }), + list: routesList, isUser } }) diff --git a/src/routes/app-manager/domain/manager.ts b/src/routes/app-manager/domain/manager.ts index 074168c..f6260db 100644 --- a/src/routes/app-manager/domain/manager.ts +++ b/src/routes/app-manager/domain/manager.ts @@ -1,15 +1,23 @@ import { app, db, schema } from '@/app.ts'; import { AppDomain, AppDomainHelper } from '../module/app-domain-drizzle.ts'; -import { App } from '../module/app-drizzle.ts'; -import { CustomError } from '@kevisual/router'; -import { eq, or } from 'drizzle-orm'; +import { eq } from 'drizzle-orm'; import { randomUUID } from 'crypto'; +import z from 'zod'; app .route({ - path: 'app.domain.manager', + path: 'app_domain_manager', key: 'list', + description: '获取域名列表,支持分页', middleware: ['auth-admin'], + metadata: { + args: { + data: z.object({ + page: z.number().optional(), + pageSize: z.number().optional(), + }).optional() + } + } }) .define(async (ctx) => { const { page = 1, pageSize = 999 } = ctx.query.data || {}; @@ -26,9 +34,21 @@ app app .route({ - path: 'app.domain.manager', + path: 'app_domain_manager', key: 'update', + description: '更新一个域名的信息', middleware: ['auth-admin'], + metadata: { + args: { + data: z.object({ + id: z.string().optional(), + domain: z.string(), + appId: z.string().optional(), + status: z.enum(['active', 'inactive']).optional(), + data: z.record(z.string(), z.any()).optional(), + }) + } + } }) .define(async (ctx) => { const { domain, data, id, ...rest } = ctx.query.data || {}; @@ -95,9 +115,18 @@ app app .route({ - path: 'app.domain.manager', + path: 'app_domain_manager', key: 'delete', + description: '删除一个域名', middleware: ['auth-admin'], + metadata: { + args: { + data: z.object({ + id: z.string().optional(), + domain: z.string().optional(), + }) + } + } }) .define(async (ctx) => { const { id, domain } = ctx.query.data || {}; @@ -117,9 +146,18 @@ app app .route({ - path: 'app.domain.manager', + path: 'app_domain_manager', key: 'get', + description: '获取域名信息,可以通过id或者domain进行查询', middleware: ['auth-admin'], + metadata: { + args: { + data: z.object({ + id: z.string().optional(), + domain: z.string().optional(), + }) + } + } }) .define(async (ctx) => { const { id, domain } = ctx.query.data || {};