Refactor code structure for improved readability and maintainability

This commit is contained in:
2026-03-31 00:57:56 +08:00
parent 67ebed8d73
commit 5c981f25a7
2 changed files with 148 additions and 148 deletions

285
pnpm-lock.yaml generated
View File

@@ -44,8 +44,8 @@ importers:
specifier: ^0.31.10
version: 0.31.10
drizzle-orm:
specifier: ^0.45.1
version: 0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0)
specifier: ^0.45.2
version: 0.45.2(@opentelemetry/api@1.9.0)(@types/pg@8.20.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.37
version: 2.0.37(zod@4.3.6)
'@aws-sdk/client-s3':
specifier: ^3.1017.0
version: 3.1017.0
specifier: ^3.1019.0
version: 3.1019.0
'@kevisual/api':
specifier: ^0.0.65
version: 0.0.65(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
'@kevisual/cnb':
specifier: ^0.0.61
version: 0.0.61(dotenv@17.3.1)(idb-keyval@6.2.2)(ioredis@5.10.0)
specifier: ^0.0.62
version: 0.0.62(dotenv@17.3.1)(idb-keyval@6.2.2)(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.2.4
version: 0.2.4
specifier: 0.2.5
version: 0.2.5
'@kevisual/types':
specifier: ^0.0.12
version: 0.0.12
@@ -120,14 +120,14 @@ importers:
specifier: ^0.4.14
version: 0.4.14
ai:
specifier: ^6.0.138
version: 6.0.138(zod@4.3.6)
specifier: ^6.0.141
version: 6.0.141(zod@4.3.6)
archiver:
specifier: ^7.0.1
version: 7.0.1
convex:
specifier: ^1.34.0
version: 1.34.0(react@19.2.4)
specifier: ^1.34.1
version: 1.34.1(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.20.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0))(zod@4.3.6)
version: 0.8.3(drizzle-orm@0.45.2(@opentelemetry/api@1.9.0)(@types/pg@8.20.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
@@ -207,8 +207,8 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/gateway@3.0.80':
resolution: {integrity: sha512-uM7kpZB5l977lW7+2X1+klBUxIZQ78+1a9jHlaHFEzcOcmmslTl3sdP0QqfuuBcO0YBM2gwOiqVdp8i4TRQYcw==}
'@ai-sdk/gateway@3.0.83':
resolution: {integrity: sha512-LvlWujbSdEkTBXBLFtF7GS6riXdHhH0O+DpDrCaNQvXeHmSF2jKsOg7JWXiCgygAHM5cWFAO3JYmZp83DjiuBQ==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
@@ -264,48 +264,48 @@ packages:
'@aws-crypto/util@5.2.0':
resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
'@aws-sdk/client-s3@3.1017.0':
resolution: {integrity: sha512-WmmPn2NEfkxxzDA0D7rlf3f32gqmqpaTABhlz4EnZbg/RfNWaOu3ecaI5xY0ragrLhvPB+1aPN9GRDnivJukvg==}
'@aws-sdk/client-s3@3.1019.0':
resolution: {integrity: sha512-0pb9x7PPhS4oEi4c0rL3vzQQoXA4cWKtPuGga/UfVYLZ68yrqdq0NDKg0fr55qzdhNvWFCpmGx73g9Iyy03kkA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/core@3.973.24':
resolution: {integrity: sha512-vvf82RYQu2GidWAuQq+uIzaPz9V0gSCXVqdVzRosgl5rXcspXOpSD3wFreGGW6AYymPr97Z69kjVnLePBxloDw==}
'@aws-sdk/core@3.973.25':
resolution: {integrity: sha512-TNrx7eq6nKNOO62HWPqoBqPLXEkW6nLZQGwjL6lq1jZtigWYbK1NbCnT7mKDzbLMHZfuOECUt3n6CzxjUW9HWQ==}
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.22':
resolution: {integrity: sha512-cXp0VTDWT76p3hyK5D51yIKEfpf6/zsUvMfaB8CkyqadJxMQ8SbEeVroregmDlZbtG31wkj9ei0WnftmieggLg==}
'@aws-sdk/credential-provider-env@3.972.23':
resolution: {integrity: sha512-EamaclJcCEaPHp6wiVknNMM2RlsPMjAHSsYSFLNENBM8Wz92QPc6cOn3dif6vPDQt0Oo4IEghDy3NMDCzY/IvA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-http@3.972.24':
resolution: {integrity: sha512-h694K7+tRuepSRJr09wTvQfaEnjzsKZ5s7fbESrVds02GT/QzViJ94/HCNwM7bUfFxqpPXHxulZfL6Cou0dwPg==}
'@aws-sdk/credential-provider-http@3.972.25':
resolution: {integrity: sha512-qPymamdPcLp6ugoVocG1y5r69ScNiRzb0hogX25/ij+Wz7c7WnsgjLTaz7+eB5BfRxeyUwuw5hgULMuwOGOpcw==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-ini@3.972.24':
resolution: {integrity: sha512-O46fFmv0RDFWiWEA9/e6oW92BnsyAXuEgTTasxHligjn2RCr9L/DK773m/NoFaL3ZdNAUz8WxgxunleMnHAkeQ==}
'@aws-sdk/credential-provider-ini@3.972.26':
resolution: {integrity: sha512-xKxEAMuP6GYx2y5GET+d3aGEroax3AgGfwBE65EQAUe090lzyJ/RzxPX9s8v7Z6qAk0XwfQl+LrmH05X7YvTeg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-login@3.972.24':
resolution: {integrity: sha512-sIk8oa6AzDoUhxsR11svZESqvzGuXesw62Rl2oW6wguZx8i9cdGCvkFg+h5K7iucUZP8wyWibUbJMc+J66cu5g==}
'@aws-sdk/credential-provider-login@3.972.26':
resolution: {integrity: sha512-EFcM8RM3TUxnZOfMJo++3PnyxFu1fL/huzmn3Vh+8IWRgqZawUD3cRwwOr+/4bE9DpyHaLOWFAjY0lfK5X9ZkQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-node@3.972.25':
resolution: {integrity: sha512-m7dR0Dsva2P+VUpL+VkC0WwiDby5pgmWXkRVDB5rlwv0jXJrQJf7YMtCoM8Wjk0H9jPeCYOxOXXcIgp/qp5Alg==}
'@aws-sdk/credential-provider-node@3.972.27':
resolution: {integrity: sha512-jXpxSolfFnPVj6GCTtx3xIdWNoDR7hYC/0SbetGZxOC9UnNmipHeX1k6spVstf7eWJrMhXNQEgXC0pD1r5tXIg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-process@3.972.22':
resolution: {integrity: sha512-Os32s8/4gTZjBk5BtoS/cuTILaj+K72d0dVG7TCJX/fC4598cxwLDmf1AEHEpER5oL3K//yETjvFaz0V8oO5Xw==}
'@aws-sdk/credential-provider-process@3.972.23':
resolution: {integrity: sha512-IL/TFW59++b7MpHserjUblGrdP5UXy5Ekqqx1XQkERXBFJcZr74I7VaSrQT5dxdRMU16xGK4L0RQ5fQG1pMgnA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-sso@3.972.24':
resolution: {integrity: sha512-PaFv7snEfypU2yXkpvfyWgddEbDLtgVe51wdZlinhc2doubBjUzJZZpgwuF2Jenl1FBydMhNpMjD6SBUM3qdSA==}
'@aws-sdk/credential-provider-sso@3.972.26':
resolution: {integrity: sha512-c6ghvRb6gTlMznWhGxn/bpVCcp0HRaz4DobGVD9kI4vwHq186nU2xN/S7QGkm0lo0H2jQU8+dgpUFLxfTcwCOg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-web-identity@3.972.24':
resolution: {integrity: sha512-J6H4R1nvr3uBTqD/EeIPAskrBtET4WFfNhpFySr2xW7bVZOXpQfPjrLSIx65jcNjBmLXzWq8QFLdVoGxiGG/SA==}
'@aws-sdk/credential-provider-web-identity@3.972.26':
resolution: {integrity: sha512-cXcS3+XD3iwhoXkM44AmxjmbcKueoLCINr1e+IceMmCySda5ysNIfiGBGe9qn5EMiQ9Jd7pP0AGFtcd6OV3Lvg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/middleware-bucket-endpoint@3.972.8':
@@ -316,8 +316,8 @@ packages:
resolution: {integrity: sha512-5DTBTiotEES1e2jOHAq//zyzCjeMB78lEHd35u15qnrid4Nxm7diqIf9fQQ3Ov0ChH1V3Vvt13thOnrACmfGVQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/middleware-flexible-checksums@3.974.4':
resolution: {integrity: sha512-fhCbZXPAyy8btnNbnBlR7Cc1nD54cETSvGn2wey71ehsM89AKPO8Dpco9DBAAgvrUdLrdHQepBXcyX4vxC5OwA==}
'@aws-sdk/middleware-flexible-checksums@3.974.5':
resolution: {integrity: sha512-SPSvF0G1t8m8CcB0L+ClNFszzQOvXaxmRj25oRWDf6aU+TuN2PXPFAJ9A6lt1IvX4oGAqqbTdMPTYs/SSHUYYQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/middleware-host-header@3.972.8':
@@ -332,36 +332,36 @@ packages:
resolution: {integrity: sha512-CWl5UCM57WUFaFi5kB7IBY1UmOeLvNZAZ2/OZ5l20ldiJ3TiIz1pC65gYj8X0BCPWkeR1E32mpsCk1L1I4n+lA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/middleware-recursion-detection@3.972.8':
resolution: {integrity: sha512-BnnvYs2ZEpdlmZ2PNlV2ZyQ8j8AEkMTjN79y/YA475ER1ByFYrkVR85qmhni8oeTaJcDqbx364wDpitDAA/wCA==}
'@aws-sdk/middleware-recursion-detection@3.972.9':
resolution: {integrity: sha512-/Wt5+CT8dpTFQxEJ9iGy/UGrXr7p2wlIOEHvIr/YcHYByzoLjrqkYqXdJjd9UIgWjv7eqV2HnFJen93UTuwfTQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/middleware-sdk-s3@3.972.25':
resolution: {integrity: sha512-4xJL7O+XkhbSkT4yAYshkAww+mxJvtGQneNHH0MOpe+w8Vo2z87M9z06UO3G6zPM2c3Ef2yKczvZpTgdArMHfg==}
'@aws-sdk/middleware-sdk-s3@3.972.26':
resolution: {integrity: sha512-5q7UGSTtt7/KF0Os8wj2VZtlLxeWJVb0e2eDrDJlWot2EIxUNKDDMPFq/FowUqrwZ40rO2bu6BypxaKNvQhI+g==}
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.25':
resolution: {integrity: sha512-QxiMPofvOt8SwSynTOmuZfvvPM1S9QfkESBxB22NMHTRXCJhR5BygLl8IXfC4jELiisQgwsgUby21GtXfX3f/g==}
'@aws-sdk/middleware-user-agent@3.972.26':
resolution: {integrity: sha512-AilFIh4rI/2hKyyGN6XrB0yN96W2o7e7wyrPWCM6QjZM1mcC/pVkW3IWWRvuBWMpVP8Fg+rMpbzeLQ6dTM4gig==}
engines: {node: '>=20.0.0'}
'@aws-sdk/nested-clients@3.996.14':
resolution: {integrity: sha512-fSESKvh1VbfjtV3QMnRkCPZWkUbQof6T/DOpiLp33yP2wA+rbwwnZeG3XT3Ekljgw2I8X4XaQPnw+zSR8yxJ5Q==}
'@aws-sdk/nested-clients@3.996.16':
resolution: {integrity: sha512-L7Qzoj/qQU1cL5GnYLQP5LbI+wlLCLoINvcykR3htKcQ4tzrPf2DOs72x933BM7oArYj1SKrkb2lGlsJHIic3g==}
engines: {node: '>=20.0.0'}
'@aws-sdk/region-config-resolver@3.972.9':
resolution: {integrity: sha512-eQ+dFU05ZRC/lC2XpYlYSPlXtX3VT8sn5toxN2Fv7EXlMoA2p9V7vUBKqHunfD4TRLpxUq8Y8Ol/nCqiv327Ng==}
'@aws-sdk/region-config-resolver@3.972.10':
resolution: {integrity: sha512-1dq9ToC6e070QvnVhhbAs3bb5r6cQ10gTVc6cyRV5uvQe7P138TV2uG2i6+Yok4bAkVAcx5AqkTEBUvWEtBlsQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/signature-v4-multi-region@3.996.13':
resolution: {integrity: sha512-7j8rOFHHq4e9McCSuWBmBSADriW5CjPUem4inckRh/cyQGaijBwDbkNbVTgDVDWqFo29SoVVUfI6HCOnck6HZw==}
'@aws-sdk/signature-v4-multi-region@3.996.14':
resolution: {integrity: sha512-4nZSrBr1NO+48HCM/6BRU8mnRjuHZjcpziCvLXZk5QVftwWz5Mxqbhwdz4xf7WW88buaTB8uRO2MHklSX1m0vg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/token-providers@3.1015.0':
resolution: {integrity: sha512-3OSD4y110nisRhHzFOjoEeHU4GQL4KpzkX9PxzWaiZe0Yg2+thZKM0Pn9DjYwezH5JYfh/K++xK/SE0IHGrmCQ==}
'@aws-sdk/token-providers@3.1019.0':
resolution: {integrity: sha512-OF+2RfRmUKyjzrRWlDcyju3RBsuqcrYDQ8TwrJg8efcOotMzuZN4U9mpVTIdATpmEc4lWNZBMSjPzrGm6JPnAQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/types@3.973.6':
@@ -383,8 +383,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.11':
resolution: {integrity: sha512-1qdXbXo2s5MMLpUvw00284LsbhtlQ4ul7Zzdn5n+7p4WVgCMLqhxImpHIrjSoc72E/fyc4Wq8dLtUld2Gsh+lA==}
'@aws-sdk/util-user-agent-node@3.973.12':
resolution: {integrity: sha512-8phW0TS8ntENJgDcFewYT/Q8dOmarpvSxEjATu2GUBAutiHr++oEGCiBUwxslCMNvwW2cAPZNT53S/ym8zm/gg==}
engines: {node: '>=20.0.0'}
peerDependencies:
aws-crt: '>=1.0.0'
@@ -392,8 +392,8 @@ packages:
aws-crt:
optional: true
'@aws-sdk/xml-builder@3.972.15':
resolution: {integrity: sha512-PxMRlCFNiQnke9YR29vjFQwz4jq+6Q04rOVFeTDR2K7Qpv9h9FOWOxG+zJjageimYbWqE3bTuLjmryWHAWbvaA==}
'@aws-sdk/xml-builder@3.972.16':
resolution: {integrity: sha512-iu2pyvaqmeatIJLURLqx9D+4jKAdTH20ntzB6BFwjyN7V960r4jK32mx0Zf7YbtOYAbmbtQfDNuL60ONinyw7A==}
engines: {node: '>=20.0.0'}
'@aws/lambda-invoke-store@0.2.3':
@@ -871,8 +871,8 @@ packages:
'@kevisual/auth@2.0.3':
resolution: {integrity: sha512-4xpijaIhlCTr/DlJaV/gmkCQeg45EO1yxWpRvUX+1jCdVbuxSR0wZrF0SD9oybnjmKWMKDNPLsXyduFjMGcItA==}
'@kevisual/cnb@0.0.61':
resolution: {integrity: sha512-QjE3WM9lkGIYqOUsBiTsm5DhQfynqhJPy31oarnfZlmjBUgwGwlZiBR2LoPVmulETImu46tz+JP6uAytaCfRXQ==}
'@kevisual/cnb@0.0.62':
resolution: {integrity: sha512-VSNU7Ecn/Ua9ZM6F6K7T7hGWTBUXBjGGvsjiyFV5aM3hC9EyGKzBdfNOxqjN4ojhIn9w7EvnTVJ8ZI9pqaeuJg==}
hasBin: true
'@kevisual/context@0.0.8':
@@ -905,8 +905,8 @@ packages:
'@kevisual/router@0.1.4':
resolution: {integrity: sha512-/Gz3N4KAyCRQmy+FgtK8OEhainYxBnck97LSKeazHLzQ5lOoQs46XCGDYR/AjrCuDTuUrmfD/l1u9pFe2rjN8Q==}
'@kevisual/router@0.2.4':
resolution: {integrity: sha512-N7X3XKVRlDl/rJFMhW9zcfemKAi0dnbuPmj45PmGlMfNDjcNfkIBxCav9wirFJo9Kr0NwbjEUjZW4XxmTh4OTQ==}
'@kevisual/router@0.2.5':
resolution: {integrity: sha512-zhGiU8Aa8HBU4P8izZGvO7aQbARqOS7sjQQrlCZFune0/52dEy32dDRbhMQvgZCTw0FYa4MeN+bYOtm73V20QA==}
'@kevisual/types@0.0.12':
resolution: {integrity: sha512-zJXH2dosir3jVrQ6QG4i0+iLQeT9gJ3H+cKXs8ReWboxBSYzUZO78XssVeVrFPsJ33iaAqo4q3DWbSS1dWGn7Q==}
@@ -1265,8 +1265,8 @@ packages:
resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==}
engines: {node: '>= 14'}
ai@6.0.138:
resolution: {integrity: sha512-49OfPe0f5uxJ6jUdA5BBXjIinP6+ZdYfAtpF2aEH64GA5wPcxH2rf/TBUQQ0bbamBz/D+TLMV18xilZqOC+zaA==}
ai@6.0.141:
resolution: {integrity: sha512-+GomGQWaId3xN0wcugUW/H7xMMaFkID2PiS7K/Wugj45G3efv0BXhQ3psRZoQVoRbOpdNoUqcK/KTB+FR4h6qg==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
@@ -1438,8 +1438,8 @@ packages:
resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==}
engines: {node: '>= 14'}
convex@1.34.0:
resolution: {integrity: sha512-TbC509Z4urZMChZR2aLPgalQ8gMhAYSz2VMxaYsCvba8YqB0Uxma7zWnXwRn7aEGXuA8ro5/uHgD1IJ0HhYYPg==}
convex@1.34.1:
resolution: {integrity: sha512-ooyFnZVVq0u6b5zt0Ptq8QB2ixhf/2vXe+PIcUtdtrs0lq/TwpkmmruHdqkFmWgMd6N+Tmfy8AGkz6QnZUYZBA==}
engines: {node: '>=18.0.0', npm: '>=7.0.0'}
hasBin: true
peerDependencies:
@@ -1566,8 +1566,8 @@ packages:
resolution: {integrity: sha512-7OZcmQUrdGI+DUNNsKBn1aW8qSoKuTH7d0mYgSP8bAzdFzKoovxEFnoGQp2dVs82EOJeYycqRtciopszwUf8bw==}
hasBin: true
drizzle-orm@0.45.1:
resolution: {integrity: sha512-Te0FOdKIistGNPMq2jscdqngBRfBpC8uMFVwqjf6gtTVJHIQ/dosgV/CLBU2N4ZJBsXL5savCba9b0YJskKdcA==}
drizzle-orm@0.45.2:
resolution: {integrity: sha512-kY0BSaTNYWnoDMVoyY8uxmyHjpJW1geOmBMdSSicKo9CIIWkSxMIj2rkeSR51b8KAPB7m+qysjuHme5nKP+E5Q==}
peerDependencies:
'@aws-sdk/client-rds-data': '>=3'
'@cloudflare/workers-types': '>=4'
@@ -2259,6 +2259,7 @@ packages:
prebuild-install@7.1.3:
resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==}
engines: {node: '>=10'}
deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available.
hasBin: true
prettier@3.8.1:
@@ -2729,7 +2730,7 @@ snapshots:
'@ai-sdk/provider-utils': 4.0.19(zod@4.3.6)
zod: 4.3.6
'@ai-sdk/gateway@3.0.80(zod@4.3.6)':
'@ai-sdk/gateway@3.0.83(zod@4.3.6)':
dependencies:
'@ai-sdk/provider': 3.0.8
'@ai-sdk/provider-utils': 4.0.21(zod@4.3.6)
@@ -2813,29 +2814,29 @@ snapshots:
'@smithy/util-utf8': 2.3.0
tslib: 2.8.1
'@aws-sdk/client-s3@3.1017.0':
'@aws-sdk/client-s3@3.1019.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.24
'@aws-sdk/credential-provider-node': 3.972.25
'@aws-sdk/core': 3.973.25
'@aws-sdk/credential-provider-node': 3.972.27
'@aws-sdk/middleware-bucket-endpoint': 3.972.8
'@aws-sdk/middleware-expect-continue': 3.972.8
'@aws-sdk/middleware-flexible-checksums': 3.974.4
'@aws-sdk/middleware-flexible-checksums': 3.974.5
'@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.25
'@aws-sdk/middleware-recursion-detection': 3.972.9
'@aws-sdk/middleware-sdk-s3': 3.972.26
'@aws-sdk/middleware-ssec': 3.972.8
'@aws-sdk/middleware-user-agent': 3.972.25
'@aws-sdk/region-config-resolver': 3.972.9
'@aws-sdk/signature-v4-multi-region': 3.996.13
'@aws-sdk/middleware-user-agent': 3.972.26
'@aws-sdk/region-config-resolver': 3.972.10
'@aws-sdk/signature-v4-multi-region': 3.996.14
'@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.11
'@aws-sdk/util-user-agent-node': 3.973.12
'@smithy/config-resolver': 4.4.13
'@smithy/core': 3.23.12
'@smithy/eventstream-serde-browser': 4.2.12
@@ -2873,10 +2874,10 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/core@3.973.24':
'@aws-sdk/core@3.973.25':
dependencies:
'@aws-sdk/types': 3.973.6
'@aws-sdk/xml-builder': 3.972.15
'@aws-sdk/xml-builder': 3.972.16
'@smithy/core': 3.23.12
'@smithy/node-config-provider': 4.3.12
'@smithy/property-provider': 4.2.12
@@ -2894,17 +2895,17 @@ snapshots:
'@smithy/types': 4.13.1
tslib: 2.8.1
'@aws-sdk/credential-provider-env@3.972.22':
'@aws-sdk/credential-provider-env@3.972.23':
dependencies:
'@aws-sdk/core': 3.973.24
'@aws-sdk/core': 3.973.25
'@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.24':
'@aws-sdk/credential-provider-http@3.972.25':
dependencies:
'@aws-sdk/core': 3.973.24
'@aws-sdk/core': 3.973.25
'@aws-sdk/types': 3.973.6
'@smithy/fetch-http-handler': 5.3.15
'@smithy/node-http-handler': 4.5.0
@@ -2915,16 +2916,16 @@ snapshots:
'@smithy/util-stream': 4.5.20
tslib: 2.8.1
'@aws-sdk/credential-provider-ini@3.972.24':
'@aws-sdk/credential-provider-ini@3.972.26':
dependencies:
'@aws-sdk/core': 3.973.24
'@aws-sdk/credential-provider-env': 3.972.22
'@aws-sdk/credential-provider-http': 3.972.24
'@aws-sdk/credential-provider-login': 3.972.24
'@aws-sdk/credential-provider-process': 3.972.22
'@aws-sdk/credential-provider-sso': 3.972.24
'@aws-sdk/credential-provider-web-identity': 3.972.24
'@aws-sdk/nested-clients': 3.996.14
'@aws-sdk/core': 3.973.25
'@aws-sdk/credential-provider-env': 3.972.23
'@aws-sdk/credential-provider-http': 3.972.25
'@aws-sdk/credential-provider-login': 3.972.26
'@aws-sdk/credential-provider-process': 3.972.23
'@aws-sdk/credential-provider-sso': 3.972.26
'@aws-sdk/credential-provider-web-identity': 3.972.26
'@aws-sdk/nested-clients': 3.996.16
'@aws-sdk/types': 3.973.6
'@smithy/credential-provider-imds': 4.2.12
'@smithy/property-provider': 4.2.12
@@ -2934,10 +2935,10 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-login@3.972.24':
'@aws-sdk/credential-provider-login@3.972.26':
dependencies:
'@aws-sdk/core': 3.973.24
'@aws-sdk/nested-clients': 3.996.14
'@aws-sdk/core': 3.973.25
'@aws-sdk/nested-clients': 3.996.16
'@aws-sdk/types': 3.973.6
'@smithy/property-provider': 4.2.12
'@smithy/protocol-http': 5.3.12
@@ -2947,14 +2948,14 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-node@3.972.25':
'@aws-sdk/credential-provider-node@3.972.27':
dependencies:
'@aws-sdk/credential-provider-env': 3.972.22
'@aws-sdk/credential-provider-http': 3.972.24
'@aws-sdk/credential-provider-ini': 3.972.24
'@aws-sdk/credential-provider-process': 3.972.22
'@aws-sdk/credential-provider-sso': 3.972.24
'@aws-sdk/credential-provider-web-identity': 3.972.24
'@aws-sdk/credential-provider-env': 3.972.23
'@aws-sdk/credential-provider-http': 3.972.25
'@aws-sdk/credential-provider-ini': 3.972.26
'@aws-sdk/credential-provider-process': 3.972.23
'@aws-sdk/credential-provider-sso': 3.972.26
'@aws-sdk/credential-provider-web-identity': 3.972.26
'@aws-sdk/types': 3.973.6
'@smithy/credential-provider-imds': 4.2.12
'@smithy/property-provider': 4.2.12
@@ -2964,20 +2965,20 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-process@3.972.22':
'@aws-sdk/credential-provider-process@3.972.23':
dependencies:
'@aws-sdk/core': 3.973.24
'@aws-sdk/core': 3.973.25
'@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.24':
'@aws-sdk/credential-provider-sso@3.972.26':
dependencies:
'@aws-sdk/core': 3.973.24
'@aws-sdk/nested-clients': 3.996.14
'@aws-sdk/token-providers': 3.1015.0
'@aws-sdk/core': 3.973.25
'@aws-sdk/nested-clients': 3.996.16
'@aws-sdk/token-providers': 3.1019.0
'@aws-sdk/types': 3.973.6
'@smithy/property-provider': 4.2.12
'@smithy/shared-ini-file-loader': 4.4.7
@@ -2986,10 +2987,10 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-web-identity@3.972.24':
'@aws-sdk/credential-provider-web-identity@3.972.26':
dependencies:
'@aws-sdk/core': 3.973.24
'@aws-sdk/nested-clients': 3.996.14
'@aws-sdk/core': 3.973.25
'@aws-sdk/nested-clients': 3.996.16
'@aws-sdk/types': 3.973.6
'@smithy/property-provider': 4.2.12
'@smithy/shared-ini-file-loader': 4.4.7
@@ -3015,12 +3016,12 @@ snapshots:
'@smithy/types': 4.13.1
tslib: 2.8.1
'@aws-sdk/middleware-flexible-checksums@3.974.4':
'@aws-sdk/middleware-flexible-checksums@3.974.5':
dependencies:
'@aws-crypto/crc32': 5.2.0
'@aws-crypto/crc32c': 5.2.0
'@aws-crypto/util': 5.2.0
'@aws-sdk/core': 3.973.24
'@aws-sdk/core': 3.973.25
'@aws-sdk/crc64-nvme': 3.972.5
'@aws-sdk/types': 3.973.6
'@smithy/is-array-buffer': 4.2.2
@@ -3051,7 +3052,7 @@ snapshots:
'@smithy/types': 4.13.1
tslib: 2.8.1
'@aws-sdk/middleware-recursion-detection@3.972.8':
'@aws-sdk/middleware-recursion-detection@3.972.9':
dependencies:
'@aws-sdk/types': 3.973.6
'@aws/lambda-invoke-store': 0.2.3
@@ -3059,9 +3060,9 @@ snapshots:
'@smithy/types': 4.13.1
tslib: 2.8.1
'@aws-sdk/middleware-sdk-s3@3.972.25':
'@aws-sdk/middleware-sdk-s3@3.972.26':
dependencies:
'@aws-sdk/core': 3.973.24
'@aws-sdk/core': 3.973.25
'@aws-sdk/types': 3.973.6
'@aws-sdk/util-arn-parser': 3.972.3
'@smithy/core': 3.23.12
@@ -3082,9 +3083,9 @@ snapshots:
'@smithy/types': 4.13.1
tslib: 2.8.1
'@aws-sdk/middleware-user-agent@3.972.25':
'@aws-sdk/middleware-user-agent@3.972.26':
dependencies:
'@aws-sdk/core': 3.973.24
'@aws-sdk/core': 3.973.25
'@aws-sdk/types': 3.973.6
'@aws-sdk/util-endpoints': 3.996.5
'@smithy/core': 3.23.12
@@ -3093,20 +3094,20 @@ snapshots:
'@smithy/util-retry': 4.2.12
tslib: 2.8.1
'@aws-sdk/nested-clients@3.996.14':
'@aws-sdk/nested-clients@3.996.16':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.973.24
'@aws-sdk/core': 3.973.25
'@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.25
'@aws-sdk/region-config-resolver': 3.972.9
'@aws-sdk/middleware-recursion-detection': 3.972.9
'@aws-sdk/middleware-user-agent': 3.972.26
'@aws-sdk/region-config-resolver': 3.972.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.11
'@aws-sdk/util-user-agent-node': 3.973.12
'@smithy/config-resolver': 4.4.13
'@smithy/core': 3.23.12
'@smithy/fetch-http-handler': 5.3.15
@@ -3136,7 +3137,7 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/region-config-resolver@3.972.9':
'@aws-sdk/region-config-resolver@3.972.10':
dependencies:
'@aws-sdk/types': 3.973.6
'@smithy/config-resolver': 4.4.13
@@ -3144,19 +3145,19 @@ snapshots:
'@smithy/types': 4.13.1
tslib: 2.8.1
'@aws-sdk/signature-v4-multi-region@3.996.13':
'@aws-sdk/signature-v4-multi-region@3.996.14':
dependencies:
'@aws-sdk/middleware-sdk-s3': 3.972.25
'@aws-sdk/middleware-sdk-s3': 3.972.26
'@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.1015.0':
'@aws-sdk/token-providers@3.1019.0':
dependencies:
'@aws-sdk/core': 3.973.24
'@aws-sdk/nested-clients': 3.996.14
'@aws-sdk/core': 3.973.25
'@aws-sdk/nested-clients': 3.996.16
'@aws-sdk/types': 3.973.6
'@smithy/property-provider': 4.2.12
'@smithy/shared-ini-file-loader': 4.4.7
@@ -3193,16 +3194,16 @@ snapshots:
bowser: 2.13.1
tslib: 2.8.1
'@aws-sdk/util-user-agent-node@3.973.11':
'@aws-sdk/util-user-agent-node@3.973.12':
dependencies:
'@aws-sdk/middleware-user-agent': 3.972.25
'@aws-sdk/middleware-user-agent': 3.972.26
'@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.15':
'@aws-sdk/xml-builder@3.972.16':
dependencies:
'@smithy/types': 4.13.1
fast-xml-parser: 5.5.8
@@ -3464,7 +3465,7 @@ snapshots:
'@kevisual/logger': 0.0.4
'@kevisual/permission': 0.0.4
'@kevisual/query': 0.0.53
ai: 6.0.138(zod@4.3.6)
ai: 6.0.141(zod@4.3.6)
zod: 4.3.6
'@kevisual/api@0.0.65(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
@@ -3491,10 +3492,10 @@ snapshots:
'@kevisual/auth@2.0.3': {}
'@kevisual/cnb@0.0.61(dotenv@17.3.1)(idb-keyval@6.2.2)(ioredis@5.10.0)':
'@kevisual/cnb@0.0.62(dotenv@17.3.1)(idb-keyval@6.2.2)(ioredis@5.10.0)':
dependencies:
'@kevisual/query': 0.0.55
'@kevisual/router': 0.2.4
'@kevisual/router': 0.2.5
'@kevisual/use-config': 1.0.30(dotenv@17.3.1)
'@opencode-ai/sdk': 1.3.3
es-toolkit: 1.45.1
@@ -3555,7 +3556,7 @@ snapshots:
es-toolkit: 1.45.1
zod: 4.3.6
'@kevisual/router@0.2.4':
'@kevisual/router@0.2.5':
dependencies:
crypto-js: 4.2.0
es-toolkit: 1.45.1
@@ -4061,9 +4062,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
ai@6.0.138(zod@4.3.6):
ai@6.0.141(zod@4.3.6):
dependencies:
'@ai-sdk/gateway': 3.0.80(zod@4.3.6)
'@ai-sdk/gateway': 3.0.83(zod@4.3.6)
'@ai-sdk/provider': 3.0.8
'@ai-sdk/provider-utils': 4.0.21(zod@4.3.6)
'@opentelemetry/api': 1.9.0
@@ -4256,7 +4257,7 @@ snapshots:
normalize-path: 3.0.0
readable-stream: 4.5.2
convex@1.34.0(react@19.2.4):
convex@1.34.1(react@19.2.4):
dependencies:
esbuild: 0.27.0
prettier: 3.8.1
@@ -4352,7 +4353,7 @@ snapshots:
esbuild: 0.25.12
tsx: 4.21.0
drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0):
drizzle-orm@0.45.2(@opentelemetry/api@1.9.0)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0):
optionalDependencies:
'@opentelemetry/api': 1.9.0
'@types/pg': 8.20.0
@@ -4360,9 +4361,9 @@ snapshots:
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.20.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0))(zod@4.3.6):
drizzle-zod@0.8.3(drizzle-orm@0.45.2(@opentelemetry/api@1.9.0)(@types/pg@8.20.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.20.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0)
drizzle-orm: 0.45.2(@opentelemetry/api@1.9.0)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.20.0)
zod: 4.3.6
eastasianwidth@0.2.0: {}