From 8184994b2c248b01b51cd8e17398af5a3a2a9cec Mon Sep 17 00:00:00 2001 From: xiongxiao Date: Fri, 20 Mar 2026 18:13:15 +0800 Subject: [PATCH] Refactor code structure for improved readability and maintainability --- package.json | 14 +-- pnpm-lock.yaml | 296 ++++++++++++++++++++++++++----------------------- 2 files changed, 162 insertions(+), 148 deletions(-) diff --git a/package.json b/package.json index e279ee7..1e180c5 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@kevisual/ai": "^0.0.28", "@kevisual/auth": "^2.0.3", "@kevisual/js-filter": "^0.0.6", - "@kevisual/query": "^0.0.53", + "@kevisual/query": "^0.0.55", "@types/busboy": "^1.5.4", "@types/send": "^1.2.1", "@types/ws": "^8.18.1", @@ -59,19 +59,19 @@ }, "devDependencies": { "@ai-sdk/openai-compatible": "^2.0.35", - "@aws-sdk/client-s3": "^3.1010.0", + "@aws-sdk/client-s3": "^3.1013.0", "@kevisual/api": "^0.0.64", - "@kevisual/cnb": "^0.0.52", + "@kevisual/cnb": "^0.0.56", "@kevisual/context": "^0.0.8", "@kevisual/local-app-manager": "0.1.32", "@kevisual/logger": "^0.0.4", "@kevisual/oss": "0.0.20", "@kevisual/permission": "^0.0.4", - "@kevisual/router": "0.1.3", + "@kevisual/router": "0.1.6", "@kevisual/types": "^0.0.12", "@kevisual/use-config": "^1.0.30", "@types/archiver": "^7.0.0", - "@types/bun": "^1.3.10", + "@types/bun": "^1.3.11", "@types/crypto-js": "^4.2.2", "@types/jsonwebtoken": "^9.0.10", "@types/node": "^25.5.0", @@ -80,13 +80,13 @@ "@types/xml2js": "^0.4.14", "ai": "^6.0.116", "archiver": "^7.0.1", - "convex": "^1.33.1", + "convex": "^1.34.0", "crypto-js": "^4.2.0", "dayjs": "^1.11.20", "dotenv": "^17.3.1", "drizzle-zod": "^0.8.3", "es-toolkit": "^1.45.1", - "ioredis": "^5.10.0", + "ioredis": "^5.10.1", "jsonwebtoken": "^9.0.3", "lunar": "^2.0.0", "nanoid": "^5.1.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c0f683..ec21f55 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,8 +23,8 @@ importers: specifier: ^0.0.6 version: 0.0.6 '@kevisual/query': - specifier: ^0.0.53 - version: 0.0.53 + specifier: ^0.0.55 + version: 0.0.55 '@types/busboy': specifier: ^1.5.4 version: 1.5.4 @@ -45,7 +45,7 @@ importers: version: 0.31.10 drizzle-orm: specifier: ^0.45.1 - version: 0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(bun-types@1.3.10)(pg@8.20.0) + version: 0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0) eventemitter3: specifier: ^5.0.4 version: 5.0.4 @@ -63,14 +63,14 @@ importers: specifier: ^2.0.35 version: 2.0.35(zod@4.3.6) '@aws-sdk/client-s3': - specifier: ^3.1010.0 - version: 3.1010.0 + specifier: ^3.1013.0 + version: 3.1013.0 '@kevisual/api': specifier: ^0.0.64 version: 0.0.64(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@kevisual/cnb': - specifier: ^0.0.52 - version: 0.0.52(dotenv@17.3.1)(ioredis@5.10.0) + specifier: ^0.0.56 + version: 0.0.56(dotenv@17.3.1)(ioredis@5.10.0) '@kevisual/context': specifier: ^0.0.8 version: 0.0.8 @@ -87,8 +87,8 @@ importers: specifier: ^0.0.4 version: 0.0.4 '@kevisual/router': - specifier: 0.1.3 - version: 0.1.3 + specifier: 0.1.6 + version: 0.1.6 '@kevisual/types': specifier: ^0.0.12 version: 0.0.12 @@ -99,8 +99,8 @@ importers: specifier: ^7.0.0 version: 7.0.0 '@types/bun': - specifier: ^1.3.10 - version: 1.3.10 + specifier: ^1.3.11 + version: 1.3.11 '@types/crypto-js': specifier: ^4.2.2 version: 4.2.2 @@ -126,8 +126,8 @@ importers: specifier: ^7.0.1 version: 7.0.1 convex: - specifier: ^1.33.1 - version: 1.33.1(react@19.2.4) + specifier: ^1.34.0 + version: 1.34.0(react@19.2.4) crypto-js: specifier: ^4.2.0 version: 4.2.0 @@ -139,7 +139,7 @@ importers: version: 17.3.1 drizzle-zod: specifier: ^0.8.3 - version: 0.8.3(drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(bun-types@1.3.10)(pg@8.20.0))(zod@4.3.6) + version: 0.8.3(drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0))(zod@4.3.6) es-toolkit: specifier: ^1.45.1 version: 1.45.1 @@ -258,48 +258,48 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.1010.0': - resolution: {integrity: sha512-XUqXFrn/FGLLzO5OXu9iAtt492kj9Z7Yk8b0iPFxeJoIhaa61YOgR84chOExvnjm2+JTYyGNZiVPmgnFB3jxXA==} + '@aws-sdk/client-s3@3.1013.0': + resolution: {integrity: sha512-vFdyRyRatF+xP9Fi+4alZkmzZadqOAM34Pm6SUZsYtumNrWkgMc/pFWITnsq6eltM8qcV/vcinQ1ZBXWm/PlKg==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.973.20': - resolution: {integrity: sha512-i3GuX+lowD892F3IuJf8o6AbyDupMTdyTxQrCJGcn71ni5hTZ82L4nQhcdumxZ7XPJRJJVHS/CR3uYOIIs0PVA==} + '@aws-sdk/core@3.973.22': + resolution: {integrity: sha512-lY6g5L95jBNgOUitUhfV2N/W+i08jHEl3xuLODYSQH5Sf50V+LkVYBSyZRLtv2RyuXZXiV7yQ+acpswK1tlrOA==} engines: {node: '>=20.0.0'} '@aws-sdk/crc64-nvme@3.972.5': resolution: {integrity: sha512-2VbTstbjKdT+yKi8m7b3a9CiVac+pL/IY2PHJwsaGkkHmuuqkJZIErPck1h6P3T9ghQMLSdMPyW6Qp7Di5swFg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.18': - resolution: {integrity: sha512-X0B8AlQY507i5DwjLByeU2Af4ARsl9Vr84koDcXCbAkplmU+1xBFWxEPrWRAoh56waBne/yJqEloSwvRf4x6XA==} + '@aws-sdk/credential-provider-env@3.972.20': + resolution: {integrity: sha512-vI0QN96DFx3g9AunfOWF3CS4cMkqFiR/WM/FyP9QHr5rZ2dKPkYwP3tCgAOvGuu9CXI7dC1vU2FVUuZ+tfpNvQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.20': - resolution: {integrity: sha512-ey9Lelj001+oOfrbKmS6R2CJAiXX7QKY4Vj9VJv6L2eE6/VjD8DocHIoYqztTm70xDLR4E1jYPTKfIui+eRNDA==} + '@aws-sdk/credential-provider-http@3.972.22': + resolution: {integrity: sha512-aS/81smalpe7XDnuQfOq4LIPuaV2PRKU2aMTrHcqO5BD4HwO5kESOHNcec2AYfBtLtIDqgF6RXisgBnfK/jt0w==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.972.20': - resolution: {integrity: sha512-5flXSnKHMloObNF+9N0cupKegnH1Z37cdVlpETVgx8/rAhCe+VNlkcZH3HDg2SDn9bI765S+rhNPXGDJJPfbtA==} + '@aws-sdk/credential-provider-ini@3.972.22': + resolution: {integrity: sha512-rpF8fBT0LllMDp78s62aL2A/8MaccjyJ0ORzqu+ZADeECLSrrCWIeeXsuRam+pxiAMkI1uIyDZJmgLGdadkPXw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.20': - resolution: {integrity: sha512-gEWo54nfqp2jABMu6HNsjVC4hDLpg9HC8IKSJnp0kqWtxIJYHTmiLSsIfI4ScQjxEwpB+jOOH8dOLax1+hy/Hw==} + '@aws-sdk/credential-provider-login@3.972.22': + resolution: {integrity: sha512-u33CO9zeNznlVSg9tWTCRYxaGkqr1ufU6qeClpmzAabXZa8RZxQoVXxL5T53oZJFzQYj+FImORCSsi7H7B77gQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.21': - resolution: {integrity: sha512-hah8if3/B/Q+LBYN5FukyQ1Mym6PLPDsBOBsIgNEYD6wLyZg0UmUF/OKIVC3nX9XH8TfTPuITK+7N/jenVACWA==} + '@aws-sdk/credential-provider-node@3.972.23': + resolution: {integrity: sha512-U8tyLbLOZItuVWTH0ay9gWo4xMqZwqQbg1oMzdU4FQSkTpqXemm4X0uoKBR6llqAStgBp30ziKFJHTA43l4qMw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.18': - resolution: {integrity: sha512-Tpl7SRaPoOLT32jbTWchPsn52hYYgJ0kpiFgnwk8pxTANQdUymVSZkzFvv1+oOgZm1CrbQUP9MBeoMZ9IzLZjA==} + '@aws-sdk/credential-provider-process@3.972.20': + resolution: {integrity: sha512-QRfk7GbA4/HDRjhP3QYR6QBr/QKreVoOzvvlRHnOuGgYJkeoPgPY3LAI1kK1ZMgZ4hH9KiGp757/ntol+INAig==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.972.20': - resolution: {integrity: sha512-p+R+PYR5Z7Gjqf/6pvbCnzEHcqPCpLzR7Yf127HjJ6EAb4hUcD+qsNRnuww1sB/RmSeCLxyay8FMyqREw4p1RA==} + '@aws-sdk/credential-provider-sso@3.972.22': + resolution: {integrity: sha512-4vqlSaUbBj4aNPVKfB6yXuIQ2Z2mvLfIGba2OzzF6zUkN437/PGWsxBU2F8QPSFHti6seckvyCXidU3H+R8NvQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.20': - resolution: {integrity: sha512-rWCmh8o7QY4CsUj63qopzMzkDq/yPpkrpb+CnjBEFSOg/02T/we7sSTVg4QsDiVS9uwZ8VyONhq98qt+pIh3KA==} + '@aws-sdk/credential-provider-web-identity@3.972.22': + resolution: {integrity: sha512-/wN1CYg2rVLhW8/jLxMWacQrkpaynnL+4j/Z+e6X1PfoE6NiC0BeOw3i0JmtZrKun85wNV5GmspvuWJihfeeUw==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-bucket-endpoint@3.972.8': @@ -310,8 +310,8 @@ packages: resolution: {integrity: sha512-5DTBTiotEES1e2jOHAq//zyzCjeMB78lEHd35u15qnrid4Nxm7diqIf9fQQ3Ov0ChH1V3Vvt13thOnrACmfGVQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.974.0': - resolution: {integrity: sha512-BmdDjqvnuYaC4SY7ypHLXfCSsGYGUZkjCLSZyUAAYn1YT28vbNMJNDwhlfkvvE+hQHG5RJDlEmYuvBxcB9jX1g==} + '@aws-sdk/middleware-flexible-checksums@3.974.2': + resolution: {integrity: sha512-4soN/N4R6ptdnHw7hXPVDZMIIL+vhN8rwtLdDyS0uD7ExhadtJzolTBIM5eKSkbw5uBEbIwtJc8HCG2NM6tN/g==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-host-header@3.972.8': @@ -330,32 +330,32 @@ packages: resolution: {integrity: sha512-BnnvYs2ZEpdlmZ2PNlV2ZyQ8j8AEkMTjN79y/YA475ER1ByFYrkVR85qmhni8oeTaJcDqbx364wDpitDAA/wCA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.20': - resolution: {integrity: sha512-yhva/xL5H4tWQgsBjwV+RRD0ByCzg0TcByDCLp3GXdn/wlyRNfy8zsswDtCvr1WSKQkSQYlyEzPuWkJG0f5HvQ==} + '@aws-sdk/middleware-sdk-s3@3.972.22': + resolution: {integrity: sha512-dkUcRxF4rVpPbyHpxjCApGK6b7JpnSeo7tDoNakpRKmiLMCqgy4tlGBgeEYJnZgLrA4xc5jVKuXgvgqKqU18Kw==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-ssec@3.972.8': resolution: {integrity: sha512-wqlK0yO/TxEC2UsY9wIlqeeutF6jjLe0f96Pbm40XscTo57nImUk9lBcw0dPgsm0sppFtAkSlDrfpK+pC30Wqw==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-user-agent@3.972.21': - resolution: {integrity: sha512-62XRl1GDYPpkt7cx1AX1SPy9wgNE9Iw/NPuurJu4lmhCWS7sGKO+kS53TQ8eRmIxy3skmvNInnk0ZbWrU5Dpyg==} + '@aws-sdk/middleware-user-agent@3.972.23': + resolution: {integrity: sha512-HQu8QoqGZZTvg0Spl9H39QTsSMFwgu+8yz/QGKndXFLk9FZMiCiIgBCVlTVKMDvVbgqIzD9ig+/HmXsIL2Rb+g==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.996.10': - resolution: {integrity: sha512-SlDol5Z+C7Ivnc2rKGqiqfSUmUZzY1qHfVs9myt/nxVwswgfpjdKahyTzLTx802Zfq0NFRs7AejwKzzzl5Co2w==} + '@aws-sdk/nested-clients@3.996.12': + resolution: {integrity: sha512-KLdQGJPSm98uLINolQ0Tol8OAbk7g0Y7zplHJ1K83vbMIH13aoCvR6Tho66xueW4l4aZlEgVGLWBnD8ifUMsGQ==} engines: {node: '>=20.0.0'} '@aws-sdk/region-config-resolver@3.972.8': resolution: {integrity: sha512-1eD4uhTDeambO/PNIDVG19A6+v4NdD7xzwLHDutHsUqz0B+i661MwQB2eYO4/crcCvCiQG4SRm1k81k54FEIvw==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.996.8': - resolution: {integrity: sha512-n1qYFD+tbqZuyskVaxUE+t10AUz9g3qzDw3Tp6QZDKmqsjfDmZBd4GIk2EKJJNtcCBtE5YiUjDYA+3djFAFBBg==} + '@aws-sdk/signature-v4-multi-region@3.996.10': + resolution: {integrity: sha512-yJSbFTedh1McfqXa9wZzjchqQ2puq5PI/qRz5kUjg2UXS5mO4MBYBbeXaZ2rp/h+ZbkcYEdo4Qsiah9psyoxrA==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1009.0': - resolution: {integrity: sha512-KCPLuTqN9u0Rr38Arln78fRG9KXpzsPWmof+PZzfAHMMQq2QED6YjQrkrfiH7PDefLWEposY1o4/eGwrmKA4JA==} + '@aws-sdk/token-providers@3.1013.0': + resolution: {integrity: sha512-IL1c54UvbuERrs9oLm5rvkzMciwhhpn1FL0SlC3XUMoLlFhdBsWJgQKK8O5fsQLxbFVqjbjFx9OBkrn44X9PHw==} engines: {node: '>=20.0.0'} '@aws-sdk/types@3.973.6': @@ -377,8 +377,8 @@ packages: '@aws-sdk/util-user-agent-browser@3.972.8': resolution: {integrity: sha512-B3KGXJviV2u6Cdw2SDY2aDhoJkVfY/Q/Trwk2CMSkikE1Oi6gRzxhvhIfiRpHfmIsAhV4EA54TVEX8K6CbHbkA==} - '@aws-sdk/util-user-agent-node@3.973.7': - resolution: {integrity: sha512-Hz6EZMUAEzqUd7e+vZ9LE7mn+5gMbxltXy18v+YSFY+9LBJz15wkNZvw5JqfX3z0FS9n3bgUtz3L5rAsfh4YlA==} + '@aws-sdk/util-user-agent-node@3.973.9': + resolution: {integrity: sha512-jeFqqp8KD/P5O+qeKxyGeu7WEVIZFNprnkaDjGmBOjwxYwafCBhpxTgV1TlW6L8e76Vh/siNylNmN/OmSIFBUQ==} engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -386,8 +386,8 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.972.11': - resolution: {integrity: sha512-iitV/gZKQMvY9d7ovmyFnFuTHbBAtrmLnvaSb/3X8vOKyevwtpmEtyc8AdhVWZe0pI/1GsHxlEvQeOePFzy7KQ==} + '@aws-sdk/xml-builder@3.972.14': + resolution: {integrity: sha512-G/Yd8Bnnyh8QrqLf8jWJbixEnScUFW24e/wOBGYdw1Cl4r80KX/DvHyM2GVZ2vTp7J4gTEr8IXJlTadA8+UfuQ==} engines: {node: '>=20.0.0'} '@aws/lambda-invoke-store@0.2.3': @@ -865,8 +865,8 @@ packages: '@kevisual/auth@2.0.3': resolution: {integrity: sha512-4xpijaIhlCTr/DlJaV/gmkCQeg45EO1yxWpRvUX+1jCdVbuxSR0wZrF0SD9oybnjmKWMKDNPLsXyduFjMGcItA==} - '@kevisual/cnb@0.0.52': - resolution: {integrity: sha512-1SoL4Er7r75NlejeoViuf0+dqXRmmd1PCI3lHCDsEoEj0WKpwxEaSUE0ubdSbHz2zDRKwiqkbY8aTS2Pj4cZ7Q==} + '@kevisual/cnb@0.0.56': + resolution: {integrity: sha512-Pa70TI/zVC7DOSecrRztB8QrRlf+iuFCGDH/O3YEQw/eMoyDdBtIxR3Ewnsu+n+BN0od6jcsSOhDW6kzqeX8cA==} hasBin: true '@kevisual/context@0.0.8': @@ -893,12 +893,15 @@ packages: '@kevisual/query@0.0.53': resolution: {integrity: sha512-PAhpCLBr0emz0lGNlTVHMbJiC5wrtGLbInPddRzgKE35fiyNt+SWSsUWABiD0DeNrLN/OxWyAFobt880Z/e5MQ==} - '@kevisual/router@0.1.3': - resolution: {integrity: sha512-vFQ3ZqyKjKAyaizNaAUG0GVhUc2+trpAM9SwiFT3bL09U8NPlViV21wUNU91qDZyQYr/UMnIWkwu0ywaaimATQ==} + '@kevisual/query@0.0.55': + resolution: {integrity: sha512-fG+ubxrJfSIKVIq+P6zCh7ojkRD2CKHRLL7TzGtwWldPrbQc+yvOuMUqRxUiuLLiudS3SkpCwDhS9IH5ne+CEA==} '@kevisual/router@0.1.4': resolution: {integrity: sha512-/Gz3N4KAyCRQmy+FgtK8OEhainYxBnck97LSKeazHLzQ5lOoQs46XCGDYR/AjrCuDTuUrmfD/l1u9pFe2rjN8Q==} + '@kevisual/router@0.1.6': + resolution: {integrity: sha512-uQYxDd4j0ZKuuPXduSMSvckjEKi99hVRp7vz5AUFVDVbEBmNQBgDGbwmz9+X/DR/Gjx++x3m8XvYcAwuEzPOKw==} + '@kevisual/types@0.0.12': resolution: {integrity: sha512-zJXH2dosir3jVrQ6QG4i0+iLQeT9gJ3H+cKXs8ReWboxBSYzUZO78XssVeVrFPsJ33iaAqo4q3DWbSS1dWGn7Q==} @@ -1208,8 +1211,8 @@ packages: '@types/archiver@7.0.0': resolution: {integrity: sha512-/3vwGwx9n+mCQdYZ2IKGGHEFL30I96UgBlk8EtRDDFQ9uxM1l4O5Ci6r00EMAkiDaTqD9DQ6nVrWRICnBPtzzg==} - '@types/bun@1.3.10': - resolution: {integrity: sha512-0+rlrUrOrTSskibryHbvQkDOWRJwJZqZlxrUs1u4oOoTln8+WIXBPmAuCF35SWB2z4Zl3E84Nl/D0P7803nigQ==} + '@types/bun@1.3.11': + resolution: {integrity: sha512-5vPne5QvtpjGpsGYXiFyycfpDF2ECyPcTSsFBMa0fraoxiQyMJ3SmuQIGhzPg2WJuWxVBoxWJ2kClYTcw/4fAg==} '@types/busboy@1.5.4': resolution: {integrity: sha512-kG7WrUuAKK0NoyxfQHsVE6j1m01s6kMma64E+OZenQABMQyTJop1DumUWcLwAQ2JzpefU7PDYoRDKl8uZosFjw==} @@ -1382,8 +1385,8 @@ packages: bullmq@5.71.0: resolution: {integrity: sha512-aeNWh4drsafSKnAJeiNH/nZP/5O8ZdtdMbnOPZmpjXj7NZUP5YC901U3bIH41iZValm7d1i3c34ojv7q31m30w==} - bun-types@1.3.10: - resolution: {integrity: sha512-tcpfCCl6XWo6nCVnpcVrxQ+9AYN1iqMIzgrSKYMB/fjLtV2eyAVEg7AxQJuCq/26R6HpKWykQXuSOq/21RYcbg==} + bun-types@1.3.11: + resolution: {integrity: sha512-1KGPpoxQWl9f6wcZh57LvrPIInQMn2TQ7jsgxqpRzg+l0QPOFvJVH7HmvHo/AiPgwXy+/Thf6Ov3EdVn1vOabg==} busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} @@ -1429,8 +1432,8 @@ packages: resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} engines: {node: '>= 14'} - convex@1.33.1: - resolution: {integrity: sha512-mRhR1XqZPLhgJsUepecM/kOgQVRCWKJtHHtyEX/XYY4zmzfItG0D1GNh5fjNEkuO5+72X4PCkzbEFA6327rxog==} + convex@1.34.0: + resolution: {integrity: sha512-TbC509Z4urZMChZR2aLPgalQ8gMhAYSz2VMxaYsCvba8YqB0Uxma7zWnXwRn7aEGXuA8ro5/uHgD1IJ0HhYYPg==} engines: {node: '>=18.0.0', npm: '>=7.0.0'} hasBin: true peerDependencies: @@ -1765,11 +1768,11 @@ packages: fast-json-patch@3.1.1: resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} - fast-xml-builder@1.0.0: - resolution: {integrity: sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ==} + fast-xml-builder@1.1.4: + resolution: {integrity: sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==} - fast-xml-parser@5.4.1: - resolution: {integrity: sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A==} + fast-xml-parser@5.5.6: + resolution: {integrity: sha512-3+fdZyBRVg29n4rXP0joHthhcHdPUHaIC16cuyyd1iLsuaO6Vea36MPrxgAzbZna8lhvZeRL8Bc9GP56/J9xEw==} hasBin: true fclone@1.0.11: @@ -2144,6 +2147,10 @@ packages: path-browserify-esm@1.0.6: resolution: {integrity: sha512-9nUwYvvu/yq1PYrUyYCihNWmpzacaRYF6gGbjLWErrZ4MRDWyfPN7RpE8E7tsw8eqBU/rr7mcoTXbS+Vih8uUA==} + path-expression-matcher@1.2.0: + resolution: {integrity: sha512-DwmPWeFn+tq7TiyJ2CxezCAirXjFxvaiD03npak3cRjlP9+OjTmSy1EpIrEbh+l6JgUundniloMLDQ/6VTdhLQ==} + engines: {node: '>=14.0.0'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -2794,29 +2801,29 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-s3@3.1010.0': + '@aws-sdk/client-s3@3.1013.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.20 - '@aws-sdk/credential-provider-node': 3.972.21 + '@aws-sdk/core': 3.973.22 + '@aws-sdk/credential-provider-node': 3.972.23 '@aws-sdk/middleware-bucket-endpoint': 3.972.8 '@aws-sdk/middleware-expect-continue': 3.972.8 - '@aws-sdk/middleware-flexible-checksums': 3.974.0 + '@aws-sdk/middleware-flexible-checksums': 3.974.2 '@aws-sdk/middleware-host-header': 3.972.8 '@aws-sdk/middleware-location-constraint': 3.972.8 '@aws-sdk/middleware-logger': 3.972.8 '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-sdk-s3': 3.972.20 + '@aws-sdk/middleware-sdk-s3': 3.972.22 '@aws-sdk/middleware-ssec': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.21 + '@aws-sdk/middleware-user-agent': 3.972.23 '@aws-sdk/region-config-resolver': 3.972.8 - '@aws-sdk/signature-v4-multi-region': 3.996.8 + '@aws-sdk/signature-v4-multi-region': 3.996.10 '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.996.5 '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.7 + '@aws-sdk/util-user-agent-node': 3.973.9 '@smithy/config-resolver': 4.4.11 '@smithy/core': 3.23.12 '@smithy/eventstream-serde-browser': 4.2.12 @@ -2854,10 +2861,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.973.20': + '@aws-sdk/core@3.973.22': dependencies: '@aws-sdk/types': 3.973.6 - '@aws-sdk/xml-builder': 3.972.11 + '@aws-sdk/xml-builder': 3.972.14 '@smithy/core': 3.23.12 '@smithy/node-config-provider': 4.3.12 '@smithy/property-provider': 4.2.12 @@ -2875,17 +2882,17 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.18': + '@aws-sdk/credential-provider-env@3.972.20': dependencies: - '@aws-sdk/core': 3.973.20 + '@aws-sdk/core': 3.973.22 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.20': + '@aws-sdk/credential-provider-http@3.972.22': dependencies: - '@aws-sdk/core': 3.973.20 + '@aws-sdk/core': 3.973.22 '@aws-sdk/types': 3.973.6 '@smithy/fetch-http-handler': 5.3.15 '@smithy/node-http-handler': 4.5.0 @@ -2896,16 +2903,16 @@ snapshots: '@smithy/util-stream': 4.5.20 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.972.20': + '@aws-sdk/credential-provider-ini@3.972.22': dependencies: - '@aws-sdk/core': 3.973.20 - '@aws-sdk/credential-provider-env': 3.972.18 - '@aws-sdk/credential-provider-http': 3.972.20 - '@aws-sdk/credential-provider-login': 3.972.20 - '@aws-sdk/credential-provider-process': 3.972.18 - '@aws-sdk/credential-provider-sso': 3.972.20 - '@aws-sdk/credential-provider-web-identity': 3.972.20 - '@aws-sdk/nested-clients': 3.996.10 + '@aws-sdk/core': 3.973.22 + '@aws-sdk/credential-provider-env': 3.972.20 + '@aws-sdk/credential-provider-http': 3.972.22 + '@aws-sdk/credential-provider-login': 3.972.22 + '@aws-sdk/credential-provider-process': 3.972.20 + '@aws-sdk/credential-provider-sso': 3.972.22 + '@aws-sdk/credential-provider-web-identity': 3.972.22 + '@aws-sdk/nested-clients': 3.996.12 '@aws-sdk/types': 3.973.6 '@smithy/credential-provider-imds': 4.2.12 '@smithy/property-provider': 4.2.12 @@ -2915,10 +2922,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-login@3.972.20': + '@aws-sdk/credential-provider-login@3.972.22': dependencies: - '@aws-sdk/core': 3.973.20 - '@aws-sdk/nested-clients': 3.996.10 + '@aws-sdk/core': 3.973.22 + '@aws-sdk/nested-clients': 3.996.12 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/protocol-http': 5.3.12 @@ -2928,14 +2935,14 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.972.21': + '@aws-sdk/credential-provider-node@3.972.23': dependencies: - '@aws-sdk/credential-provider-env': 3.972.18 - '@aws-sdk/credential-provider-http': 3.972.20 - '@aws-sdk/credential-provider-ini': 3.972.20 - '@aws-sdk/credential-provider-process': 3.972.18 - '@aws-sdk/credential-provider-sso': 3.972.20 - '@aws-sdk/credential-provider-web-identity': 3.972.20 + '@aws-sdk/credential-provider-env': 3.972.20 + '@aws-sdk/credential-provider-http': 3.972.22 + '@aws-sdk/credential-provider-ini': 3.972.22 + '@aws-sdk/credential-provider-process': 3.972.20 + '@aws-sdk/credential-provider-sso': 3.972.22 + '@aws-sdk/credential-provider-web-identity': 3.972.22 '@aws-sdk/types': 3.973.6 '@smithy/credential-provider-imds': 4.2.12 '@smithy/property-provider': 4.2.12 @@ -2945,20 +2952,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.972.18': + '@aws-sdk/credential-provider-process@3.972.20': dependencies: - '@aws-sdk/core': 3.973.20 + '@aws-sdk/core': 3.973.22 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.972.20': + '@aws-sdk/credential-provider-sso@3.972.22': dependencies: - '@aws-sdk/core': 3.973.20 - '@aws-sdk/nested-clients': 3.996.10 - '@aws-sdk/token-providers': 3.1009.0 + '@aws-sdk/core': 3.973.22 + '@aws-sdk/nested-clients': 3.996.12 + '@aws-sdk/token-providers': 3.1013.0 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 @@ -2967,10 +2974,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.972.20': + '@aws-sdk/credential-provider-web-identity@3.972.22': dependencies: - '@aws-sdk/core': 3.973.20 - '@aws-sdk/nested-clients': 3.996.10 + '@aws-sdk/core': 3.973.22 + '@aws-sdk/nested-clients': 3.996.12 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 @@ -2996,12 +3003,12 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.974.0': + '@aws-sdk/middleware-flexible-checksums@3.974.2': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.973.20 + '@aws-sdk/core': 3.973.22 '@aws-sdk/crc64-nvme': 3.972.5 '@aws-sdk/types': 3.973.6 '@smithy/is-array-buffer': 4.2.2 @@ -3040,9 +3047,9 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.972.20': + '@aws-sdk/middleware-sdk-s3@3.972.22': dependencies: - '@aws-sdk/core': 3.973.20 + '@aws-sdk/core': 3.973.22 '@aws-sdk/types': 3.973.6 '@aws-sdk/util-arn-parser': 3.972.3 '@smithy/core': 3.23.12 @@ -3063,9 +3070,9 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.972.21': + '@aws-sdk/middleware-user-agent@3.972.23': dependencies: - '@aws-sdk/core': 3.973.20 + '@aws-sdk/core': 3.973.22 '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.996.5 '@smithy/core': 3.23.12 @@ -3074,20 +3081,20 @@ snapshots: '@smithy/util-retry': 4.2.12 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.996.10': + '@aws-sdk/nested-clients@3.996.12': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.20 + '@aws-sdk/core': 3.973.22 '@aws-sdk/middleware-host-header': 3.972.8 '@aws-sdk/middleware-logger': 3.972.8 '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.21 + '@aws-sdk/middleware-user-agent': 3.972.23 '@aws-sdk/region-config-resolver': 3.972.8 '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.996.5 '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.7 + '@aws-sdk/util-user-agent-node': 3.973.9 '@smithy/config-resolver': 4.4.11 '@smithy/core': 3.23.12 '@smithy/fetch-http-handler': 5.3.15 @@ -3125,19 +3132,19 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.996.8': + '@aws-sdk/signature-v4-multi-region@3.996.10': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.972.20 + '@aws-sdk/middleware-sdk-s3': 3.972.22 '@aws-sdk/types': 3.973.6 '@smithy/protocol-http': 5.3.12 '@smithy/signature-v4': 5.3.12 '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/token-providers@3.1009.0': + '@aws-sdk/token-providers@3.1013.0': dependencies: - '@aws-sdk/core': 3.973.20 - '@aws-sdk/nested-clients': 3.996.10 + '@aws-sdk/core': 3.973.22 + '@aws-sdk/nested-clients': 3.996.12 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 @@ -3174,19 +3181,19 @@ snapshots: bowser: 2.13.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.973.7': + '@aws-sdk/util-user-agent-node@3.973.9': dependencies: - '@aws-sdk/middleware-user-agent': 3.972.21 + '@aws-sdk/middleware-user-agent': 3.972.23 '@aws-sdk/types': 3.973.6 '@smithy/node-config-provider': 4.3.12 '@smithy/types': 4.13.1 '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.972.11': + '@aws-sdk/xml-builder@3.972.14': dependencies: '@smithy/types': 4.13.1 - fast-xml-parser: 5.4.1 + fast-xml-parser: 5.5.6 tslib: 2.8.1 '@aws/lambda-invoke-store@0.2.3': {} @@ -3471,10 +3478,10 @@ snapshots: '@kevisual/auth@2.0.3': {} - '@kevisual/cnb@0.0.52(dotenv@17.3.1)(ioredis@5.10.0)': + '@kevisual/cnb@0.0.56(dotenv@17.3.1)(ioredis@5.10.0)': dependencies: '@kevisual/query': 0.0.53 - '@kevisual/router': 0.1.4 + '@kevisual/router': 0.1.6 '@kevisual/use-config': 1.0.30(dotenv@17.3.1) '@opencode-ai/sdk': 1.2.27 es-toolkit: 1.45.1 @@ -3527,13 +3534,15 @@ snapshots: '@kevisual/query@0.0.53': {} - '@kevisual/router@0.1.3': + '@kevisual/query@0.0.55': {} + + '@kevisual/router@0.1.4': dependencies: crypto-js: 4.2.0 es-toolkit: 1.45.1 zod: 4.3.6 - '@kevisual/router@0.1.4': + '@kevisual/router@0.1.6': dependencies: crypto-js: 4.2.0 es-toolkit: 1.45.1 @@ -3982,9 +3991,9 @@ snapshots: dependencies: '@types/readdir-glob': 1.1.5 - '@types/bun@1.3.10': + '@types/bun@1.3.11': dependencies: - bun-types: 1.3.10 + bun-types: 1.3.11 '@types/busboy@1.5.4': dependencies: @@ -4178,7 +4187,7 @@ snapshots: transitivePeerDependencies: - supports-color - bun-types@1.3.10: + bun-types@1.3.11: dependencies: '@types/node': 25.5.0 @@ -4234,7 +4243,7 @@ snapshots: normalize-path: 3.0.0 readable-stream: 4.5.2 - convex@1.33.1(react@19.2.4): + convex@1.34.0(react@19.2.4): dependencies: esbuild: 0.27.0 prettier: 3.8.1 @@ -4330,17 +4339,17 @@ snapshots: esbuild: 0.25.12 tsx: 4.21.0 - drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(bun-types@1.3.10)(pg@8.20.0): + drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.18.0 better-sqlite3: 12.6.2 - bun-types: 1.3.10 + bun-types: 1.3.11 pg: 8.20.0 - drizzle-zod@0.8.3(drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(bun-types@1.3.10)(pg@8.20.0))(zod@4.3.6): + drizzle-zod@0.8.3(drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0))(zod@4.3.6): dependencies: - drizzle-orm: 0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(bun-types@1.3.10)(pg@8.20.0) + drizzle-orm: 0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0) zod: 4.3.6 eastasianwidth@0.2.0: {} @@ -4498,11 +4507,14 @@ snapshots: fast-json-patch@3.1.1: {} - fast-xml-builder@1.0.0: {} - - fast-xml-parser@5.4.1: + fast-xml-builder@1.1.4: dependencies: - fast-xml-builder: 1.0.0 + path-expression-matcher: 1.2.0 + + fast-xml-parser@5.5.6: + dependencies: + fast-xml-builder: 1.1.4 + path-expression-matcher: 1.2.0 strnum: 2.1.2 fclone@1.0.11: {} @@ -4893,6 +4905,8 @@ snapshots: path-browserify-esm@1.0.6: {} + path-expression-matcher@1.2.0: {} + path-key@3.1.1: {} path-parse@1.0.7: {}