diff --git a/CHANGELOG.md b/CHANGELOG.md index 8196045a..63a3ee18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,11 @@ # CHANGE LOG -## main(v0.9.1) +## v0.10.0 + +- feat: 支持 User 查看收件箱,`/user_api/mails` 接口, 支持 `address` 和 `keyword` 过滤 + +## v0.9.1 - feat: |UI| support google ads - feat: |UI| 使用 shadow DOM 防止样式污染 diff --git a/frontend/package.json b/frontend/package.json index bd8684ca..3e9d397c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "cloudflare_temp_email", - "version": "0.9.1", + "version": "0.10.9", "private": true, "type": "module", "scripts": { @@ -40,13 +40,13 @@ "@vicons/material": "^0.13.0", "@vitejs/plugin-vue": "^5.2.3", "unplugin-auto-import": "^19.1.2", - "unplugin-vue-components": "^28.4.1", - "vite": "^6.2.6", + "unplugin-vue-components": "^28.5.0", + "vite": "^6.3.2", "vite-plugin-pwa": "^1.0.0", "vite-plugin-top-level-await": "^1.5.0", "vite-plugin-wasm": "^3.4.1", "workbox-build": "^7.3.0", "workbox-window": "^7.3.0", - "wrangler": "^4.10.0" + "wrangler": "^4.13.0" } } diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 55e0d8c3..82e825bf 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -62,25 +62,25 @@ importers: version: 0.13.0 '@vitejs/plugin-vue': specifier: ^5.2.3 - version: 5.2.3(vite@6.2.6(@types/node@22.10.5)(terser@5.39.0))(vue@3.5.13(typescript@5.4.5)) + version: 5.2.3(vite@6.3.2(@types/node@22.10.5)(terser@5.39.0))(vue@3.5.13(typescript@5.4.5)) unplugin-auto-import: specifier: ^19.1.2 version: 19.1.2(@vueuse/core@12.8.2(typescript@5.4.5)) unplugin-vue-components: - specifier: ^28.4.1 - version: 28.4.1(@babel/parser@7.27.0)(vue@3.5.13(typescript@5.4.5)) + specifier: ^28.5.0 + version: 28.5.0(@babel/parser@7.27.0)(vue@3.5.13(typescript@5.4.5)) vite: - specifier: ^6.2.6 - version: 6.2.6(@types/node@22.10.5)(terser@5.39.0) + specifier: ^6.3.2 + version: 6.3.2(@types/node@22.10.5)(terser@5.39.0) vite-plugin-pwa: specifier: ^1.0.0 - version: 1.0.0(vite@6.2.6(@types/node@22.10.5)(terser@5.39.0))(workbox-build@7.3.0)(workbox-window@7.3.0) + version: 1.0.0(vite@6.3.2(@types/node@22.10.5)(terser@5.39.0))(workbox-build@7.3.0)(workbox-window@7.3.0) vite-plugin-top-level-await: specifier: ^1.5.0 - version: 1.5.0(rollup@2.79.2)(vite@6.2.6(@types/node@22.10.5)(terser@5.39.0)) + version: 1.5.0(rollup@2.79.2)(vite@6.3.2(@types/node@22.10.5)(terser@5.39.0)) vite-plugin-wasm: specifier: ^3.4.1 - version: 3.4.1(vite@6.2.6(@types/node@22.10.5)(terser@5.39.0)) + version: 3.4.1(vite@6.3.2(@types/node@22.10.5)(terser@5.39.0)) workbox-build: specifier: ^7.3.0 version: 7.3.0 @@ -88,8 +88,8 @@ importers: specifier: ^7.3.0 version: 7.3.0 wrangler: - specifier: ^4.10.0 - version: 4.10.0 + specifier: ^4.13.0 + version: 4.13.0 packages: @@ -601,32 +601,32 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20250409.0': - resolution: {integrity: sha512-smA9yq77xsdQ1NMLhFz3JZxMHGd01lg0bE+X3dTFmIUs+hHskJ+HJ/IkMFInkCCeEFlUkoL4yO7ilaU/fin/xA==} + '@cloudflare/workerd-darwin-64@1.20250422.0': + resolution: {integrity: sha512-2FWl8TLpC4Knuyw8GmNgUSoJCNJNNGJ7Xv90j2n8FiXR5Clp9jSpm2ovK8RP9P751yX1/iIp8e7QufR/XDB6ow==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250409.0': - resolution: {integrity: sha512-oLVcf+Y5Qun8JHcy1VcR/YnbA5U2ne0czh3XNhDqdHZFK8+vKeC7MnVPX+kEqQA3+uLcMM1/FsIDU1U4Na0h1g==} + '@cloudflare/workerd-darwin-arm64@1.20250422.0': + resolution: {integrity: sha512-GY3W74ivqxsYldacEbMtcSbG7LsS9hPo5UybKIw4RO9GzP7UC5WGnPfuI4PE2SnJOnw7nwSrBLuhGRPe/QQHkQ==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20250409.0': - resolution: {integrity: sha512-D31B4kdC3a0RD5yfpdIa89//kGHbYsYihZmejm1k4S4NHOho3MUDHAEh4aHtafQNXbZdydGHlSyiVYjTdQ9ILQ==} + '@cloudflare/workerd-linux-64@1.20250422.0': + resolution: {integrity: sha512-mtNkEygKtlRq9pMRlm9J4nX4uVHU1AtJ3mSkdNwPwhisTpo989O5Zd0SH9CYwAk8+NmlZsXELpODUVQxQ7FJgw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20250409.0': - resolution: {integrity: sha512-Sr59P0TREayil5OQ7kcbjuIn6L6OTSRLI91LKu0D8vi1hss2q9FUwBcwxg0+Yd/x+ty/x7IISiAK5QBkAMeITQ==} + '@cloudflare/workerd-linux-arm64@1.20250422.0': + resolution: {integrity: sha512-ILlW4/kAoFJvSryrr/QJsiHBdMTf/fjUrIM0hxeuQue8zIEvAVqM1tzpUh8bPJT6AQEbk5ziwkfucA939Z6Tnw==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20250409.0': - resolution: {integrity: sha512-dK9I8zBX5rR7MtaaP2AhICQTEw3PVzHcsltN8o46w7JsbYlMvFOj27FfYH5dhs3IahgmIfw2e572QXW2o/dbpg==} + '@cloudflare/workerd-windows-64@1.20250422.0': + resolution: {integrity: sha512-O2f6f7oxU/oaWX/3/5d/9qvzNSKsw72RsQFjpew2va7KwnnUciI2LnbYR6KYOqRGYrEoiMJxpWPQaYaFVj8t1w==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -645,29 +645,23 @@ packages: peerDependencies: vue: ^3.0.11 - '@emnapi/runtime@1.4.1': - resolution: {integrity: sha512-LMshMVP0ZhACNjQNYXiU1iZJ6QCcv0lUdPDPugqGvCGXt5xtRVBPdtA0qU12pEXZzpWAhWlZYptfdAFq10DOVQ==} + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} '@emotion/hash@0.8.0': resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.25.2': resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + '@esbuild/aix-ppc64@0.25.3': + resolution: {integrity: sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==} engines: {node: '>=18'} - cpu: [arm64] - os: [android] + cpu: [ppc64] + os: [aix] '@esbuild/android-arm64@0.25.2': resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} @@ -675,10 +669,10 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + '@esbuild/android-arm64@0.25.3': + resolution: {integrity: sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==} engines: {node: '>=18'} - cpu: [arm] + cpu: [arm64] os: [android] '@esbuild/android-arm@0.25.2': @@ -687,10 +681,10 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + '@esbuild/android-arm@0.25.3': + resolution: {integrity: sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==} engines: {node: '>=18'} - cpu: [x64] + cpu: [arm] os: [android] '@esbuild/android-x64@0.25.2': @@ -699,11 +693,11 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + '@esbuild/android-x64@0.25.3': + resolution: {integrity: sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==} engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] + cpu: [x64] + os: [android] '@esbuild/darwin-arm64@0.25.2': resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} @@ -711,10 +705,10 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + '@esbuild/darwin-arm64@0.25.3': + resolution: {integrity: sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==} engines: {node: '>=18'} - cpu: [x64] + cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.25.2': @@ -723,11 +717,11 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + '@esbuild/darwin-x64@0.25.3': + resolution: {integrity: sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==} engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] + cpu: [x64] + os: [darwin] '@esbuild/freebsd-arm64@0.25.2': resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} @@ -735,10 +729,10 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + '@esbuild/freebsd-arm64@0.25.3': + resolution: {integrity: sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==} engines: {node: '>=18'} - cpu: [x64] + cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.25.2': @@ -747,11 +741,11 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + '@esbuild/freebsd-x64@0.25.3': + resolution: {integrity: sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==} engines: {node: '>=18'} - cpu: [arm64] - os: [linux] + cpu: [x64] + os: [freebsd] '@esbuild/linux-arm64@0.25.2': resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} @@ -759,10 +753,10 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + '@esbuild/linux-arm64@0.25.3': + resolution: {integrity: sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==} engines: {node: '>=18'} - cpu: [arm] + cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.25.2': @@ -771,10 +765,10 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + '@esbuild/linux-arm@0.25.3': + resolution: {integrity: sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==} engines: {node: '>=18'} - cpu: [ia32] + cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.25.2': @@ -783,10 +777,10 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + '@esbuild/linux-ia32@0.25.3': + resolution: {integrity: sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==} engines: {node: '>=18'} - cpu: [loong64] + cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.25.2': @@ -795,10 +789,10 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + '@esbuild/linux-loong64@0.25.3': + resolution: {integrity: sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==} engines: {node: '>=18'} - cpu: [mips64el] + cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.25.2': @@ -807,10 +801,10 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + '@esbuild/linux-mips64el@0.25.3': + resolution: {integrity: sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==} engines: {node: '>=18'} - cpu: [ppc64] + cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.25.2': @@ -819,10 +813,10 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + '@esbuild/linux-ppc64@0.25.3': + resolution: {integrity: sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==} engines: {node: '>=18'} - cpu: [riscv64] + cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.25.2': @@ -831,10 +825,10 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + '@esbuild/linux-riscv64@0.25.3': + resolution: {integrity: sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==} engines: {node: '>=18'} - cpu: [s390x] + cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.25.2': @@ -843,10 +837,10 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + '@esbuild/linux-s390x@0.25.3': + resolution: {integrity: sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==} engines: {node: '>=18'} - cpu: [x64] + cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.25.2': @@ -855,11 +849,11 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + '@esbuild/linux-x64@0.25.3': + resolution: {integrity: sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==} engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] + cpu: [x64] + os: [linux] '@esbuild/netbsd-arm64@0.25.2': resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} @@ -867,10 +861,10 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + '@esbuild/netbsd-arm64@0.25.3': + resolution: {integrity: sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==} engines: {node: '>=18'} - cpu: [x64] + cpu: [arm64] os: [netbsd] '@esbuild/netbsd-x64@0.25.2': @@ -879,11 +873,11 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + '@esbuild/netbsd-x64@0.25.3': + resolution: {integrity: sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==} engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] + cpu: [x64] + os: [netbsd] '@esbuild/openbsd-arm64@0.25.2': resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} @@ -891,10 +885,10 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + '@esbuild/openbsd-arm64@0.25.3': + resolution: {integrity: sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==} engines: {node: '>=18'} - cpu: [x64] + cpu: [arm64] os: [openbsd] '@esbuild/openbsd-x64@0.25.2': @@ -903,11 +897,11 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + '@esbuild/openbsd-x64@0.25.3': + resolution: {integrity: sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==} engines: {node: '>=18'} cpu: [x64] - os: [sunos] + os: [openbsd] '@esbuild/sunos-x64@0.25.2': resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} @@ -915,11 +909,11 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + '@esbuild/sunos-x64@0.25.3': + resolution: {integrity: sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==} engines: {node: '>=18'} - cpu: [arm64] - os: [win32] + cpu: [x64] + os: [sunos] '@esbuild/win32-arm64@0.25.2': resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} @@ -927,10 +921,10 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + '@esbuild/win32-arm64@0.25.3': + resolution: {integrity: sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==} engines: {node: '>=18'} - cpu: [ia32] + cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.25.2': @@ -939,10 +933,10 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + '@esbuild/win32-ia32@0.25.3': + resolution: {integrity: sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==} engines: {node: '>=18'} - cpu: [x64] + cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.25.2': @@ -951,6 +945,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.3': + resolution: {integrity: sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@fastify/busboy@2.1.1': resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} @@ -1266,68 +1266,68 @@ packages: '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - '@swc/core-darwin-arm64@1.11.20': - resolution: {integrity: sha512-Sc06h6pwMhQagU7vz92b7wwQTIibTiqRE4y/XjkvurSbjSarrtSZR4OKkrdNwUkSy1HlQE4NhKQf7tmLeQ7PhQ==} + '@swc/core-darwin-arm64@1.11.22': + resolution: {integrity: sha512-upSiFQfo1TE2QM3+KpBcp5SrOdKKjoc+oUoD1mmBDU2Wv4Bjjv16Z2I5ADvIqMV+b87AhYW+4Qu6iVrQD7j96Q==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.11.20': - resolution: {integrity: sha512-kHANJrgbqaGzUyTectNfLyhnHAeDGGVSRXYyPVAx6x0nuLOnRhKbuSyZY42UEN1IgHauaADCzcd+HiiMv/rgRw==} + '@swc/core-darwin-x64@1.11.22': + resolution: {integrity: sha512-8PEuF/gxIMJVK21DjuCOtzdqstn2DqnxVhpAYfXEtm3WmMqLIOIZBypF/xafAozyaHws4aB/5xmz8/7rPsjavw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.11.20': - resolution: {integrity: sha512-FXllEBeAwU6FNIZzo+u1LmHGaHzwAKzz7tWRkUOqBKjKr20Ot4KGS3xlz2qgV2NESFHAisdHja2P2rcQWqtZRg==} + '@swc/core-linux-arm-gnueabihf@1.11.22': + resolution: {integrity: sha512-NIPTXvqtn9e7oQHgdaxM9Z/anHoXC3Fg4ZAgw5rSGa1OlnKKupt5sdfJamNggSi+eAtyoFcyfkgqHnfe2u63HA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.11.20': - resolution: {integrity: sha512-OsYMFyJzUM0K8a97tu6KxZaCob3vr+UknVqHO09QwechX+rdX4euWm7Lte4d1B+7SBfokhw7ghLZsNTQfRw9pA==} + '@swc/core-linux-arm64-gnu@1.11.22': + resolution: {integrity: sha512-xZ+bgS60c5r8kAeYsLNjJJhhQNkXdidQ277pUabSlu5GjR0CkQUPQ+L9hFeHf8DITEqpPBPRiAiiJsWq5eqMBg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.11.20': - resolution: {integrity: sha512-fbSWOQ5ZZ7sWodoC6GnzV9RhbImdxoH8b14K1tnHCWJXolzTH40/4JKf/koJ3r24nm1PtsqX9OUxRsOXYAy5dg==} + '@swc/core-linux-arm64-musl@1.11.22': + resolution: {integrity: sha512-JhrP/q5VqQl2eJR0xKYIkKTPjgf8CRsAmRnjJA2PtZhfQ543YbYvUqxyXSRyBOxdyX8JwzuAxIPEAlKlT7PPuQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.11.20': - resolution: {integrity: sha512-OFU53idbY8KA1RkNzZBi0FpoRPSn/anv4N7ZzGZGk664UoFwMbSL+XHGocJzhV9G/VNGH7bMBmgoVWk72nn5hw==} + '@swc/core-linux-x64-gnu@1.11.22': + resolution: {integrity: sha512-htmAVL+U01gk9GyziVUP0UWYaUQBgrsiP7Ytf6uDffrySyn/FclUS3MDPocNydqYsOpj3OpNKPxkaHK+F+X5fg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.11.20': - resolution: {integrity: sha512-GZbqXEc09nIarkGMXc2P4Hf2ONb1vre22X7Se9CCeU/QtWYRU/H1a2TFnYgBKzNVOH65Dd/XYXcuy+tM1aw1iw==} + '@swc/core-linux-x64-musl@1.11.22': + resolution: {integrity: sha512-PL0VHbduWPX+ANoyOzr58jBiL2VnD0xGSFwPy7NRZ1Pr6SNWm4jw3x2u6RjLArGhS5EcWp64BSk9ZxqmTV3FEg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.11.20': - resolution: {integrity: sha512-i0H2MeK8krEd/YeiGz0GHtNL9wSGfAPXiouh8aRNV/u+w4vPaaRqnXwv/yzAW+D2vPpKJBhOwmNFFzdgTJ5mWw==} + '@swc/core-win32-arm64-msvc@1.11.22': + resolution: {integrity: sha512-moJvFhhTVGoMeEThtdF7hQog80Q00CS06v5uB+32VRuv+I31+4WPRyGlTWHO+oY4rReNcXut/mlDHPH7p0LdFg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.11.20': - resolution: {integrity: sha512-/7e3X7EGO8uOvAUP+YKJTdoR2JR5vdiewDOnDS9FFXj8yr9x6/oDFLd92Sp9NglF+aXuqAo33IfH2OTz1MR+Ww==} + '@swc/core-win32-ia32-msvc@1.11.22': + resolution: {integrity: sha512-/jnsPJJz89F1aKHIb5ScHkwyzBciz2AjEq2m9tDvQdIdVufdJ4SpEDEN9FqsRNRLcBHjtbLs6bnboA+B+pRFXw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.11.20': - resolution: {integrity: sha512-rcZpt5uiVNTs/Se+CYBoaDphafFJcsqXo3DNmfkJZoDZUb4PZqxu61p4Qa+lvFDQlRragrlLRpGQM9qnLNd4iQ==} + '@swc/core-win32-x64-msvc@1.11.22': + resolution: {integrity: sha512-lc93Y8Mku7LCFGqIxJ91coXZp2HeoDcFZSHCL90Wttg5xhk5xVM9uUCP+OdQsSsEixLF34h5DbT9ObzP8rAdRw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.11.20': - resolution: {integrity: sha512-2F0+bQs7+pwbudsxRffLdfpGCQX4Ih5k88f7LqTfj2oC7aTrv7FssduOvcAvfVY/InZmyYEblKl1rqg8bvzrZQ==} + '@swc/core@1.11.22': + resolution: {integrity: sha512-mjPYbqq8XjwqSE0hEPT9CzaJDyxql97LgK4iyvYlwVSQhdN1uK0DBG4eP9PxYzCS2MUGAXB34WFLegdUj5HGpg==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -1661,8 +1661,8 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001713: - resolution: {integrity: sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==} + caniuse-lite@1.0.30001715: + resolution: {integrity: sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1796,8 +1796,8 @@ packages: delegate@3.2.0: resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==} - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} dom7@3.0.0: @@ -1812,8 +1812,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.136: - resolution: {integrity: sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==} + electron-to-chromium@1.5.140: + resolution: {integrity: sha512-o82Rj+ONp4Ip7Cl1r7lrqx/pXhbp/lh9DpKcMNscFJdh8ebyRofnc7Sh01B4jx403RI0oqTBvlZ7OBIZLMr2+Q==} entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} @@ -1854,13 +1854,13 @@ packages: resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} engines: {node: '>=0.12'} - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + esbuild@0.25.2: + resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} engines: {node: '>=18'} hasBin: true - esbuild@0.25.2: - resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} + esbuild@0.25.3: + resolution: {integrity: sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==} engines: {node: '>=18'} hasBin: true @@ -1899,8 +1899,8 @@ packages: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} - exsolve@1.0.4: - resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} + exsolve@1.0.5: + resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} @@ -1914,8 +1914,8 @@ packages: fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - fdir@6.4.3: - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + fdir@6.4.4: + resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -2329,8 +2329,8 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - miniflare@4.20250409.0: - resolution: {integrity: sha512-Hu02dYZvFR+MyrI57O6rSrOUTofcO9EIvcodgq2SAHzAeWSJw2E0oq9lylOrcckFwPMcwxUAb/cQN1LIoCyySw==} + miniflare@4.20250422.0: + resolution: {integrity: sha512-3frXK9EZEWQkHMDyppeIbUKwd7OQkNOm2gBtQQzjQ4gtzQmh+yxkyJiiylf+fGbz86djQTLKKQdQ1FC4yM3AMg==} engines: {node: '>=18.0.0'} hasBin: true @@ -2716,8 +2716,8 @@ packages: tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} + tinyglobby@0.2.13: + resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} to-regex-range@5.0.1: @@ -2825,8 +2825,8 @@ packages: resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} engines: {node: '>=18.12.0'} - unplugin-vue-components@28.4.1: - resolution: {integrity: sha512-niGSc0vJD9ueAnsqcfAldmtpkppZ09B6p2G1dL7X5S8KPdgbk1P+txPwaaDCe7N+eZh2VG1aAypLXkuJs3OSUg==} + unplugin-vue-components@28.5.0: + resolution: {integrity: sha512-o7fMKU/uI8NiP+E0W62zoduuguWqB0obTfHFtbr1AP2uo2lhUPnPttWUE92yesdiYfo9/0hxIrj38FMc1eaySg==} engines: {node: '>=14'} peerDependencies: '@babel/parser': ^7.15.8 @@ -2886,8 +2886,8 @@ packages: peerDependencies: vite: ^2 || ^3 || ^4 || ^5 || ^6 - vite@6.2.6: - resolution: {integrity: sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==} + vite@6.3.2: + resolution: {integrity: sha512-ZSvGOXKGceizRQIZSz7TGJ0pS3QLlVY/9hwxVh17W3re67je1RKYzFHivZ/t0tubU78Vkyb9WnHPENSBCzbckg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -3035,17 +3035,17 @@ packages: workbox-window@7.3.0: resolution: {integrity: sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==} - workerd@1.20250409.0: - resolution: {integrity: sha512-hqjX9swiHvrkOI3jlH9lrZsZRRv9lddUwcMe8Ua76jnyQz+brybWznNjHu8U5oswwcrFwvky1A4CcLjcLY31gQ==} + workerd@1.20250422.0: + resolution: {integrity: sha512-q3ws6MIa9GJQqq1Q52qoD7vCx1203fjKNPmtRV1vvplrsfYphjr5pOAnZGUODFB1BnsDWypr71Luy7OonT0vug==} engines: {node: '>=16'} hasBin: true - wrangler@4.10.0: - resolution: {integrity: sha512-fTE4hZ79msEUt8+HEjl/8Q72haCyzPLu4PgrU3L81ysmjrMEdiYfUPqnvCkBUVtJvrDNdctTEimkufT1Y0ipNg==} + wrangler@4.13.0: + resolution: {integrity: sha512-CVRNL0unLmzhVeUkW+9neZHFITSo7UDROz8VYxi8YhitV9Rr1xMojS1cGjQTaQX8F3nAEsTRJXTwwTZ0JoJm6g==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250409.0 + '@cloudflare/workers-types': ^4.20250422.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -3734,25 +3734,25 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250409.0)': + '@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250422.0)': dependencies: unenv: 2.0.0-rc.15 optionalDependencies: - workerd: 1.20250409.0 + workerd: 1.20250422.0 - '@cloudflare/workerd-darwin-64@1.20250409.0': + '@cloudflare/workerd-darwin-64@1.20250422.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250409.0': + '@cloudflare/workerd-darwin-arm64@1.20250422.0': optional: true - '@cloudflare/workerd-linux-64@1.20250409.0': + '@cloudflare/workerd-linux-64@1.20250422.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20250409.0': + '@cloudflare/workerd-linux-arm64@1.20250422.0': optional: true - '@cloudflare/workerd-windows-64@1.20250409.0': + '@cloudflare/workerd-windows-64@1.20250422.0': optional: true '@cspotcode/source-map-support@0.8.1': @@ -3767,163 +3767,163 @@ snapshots: dependencies: vue: 3.5.13(typescript@5.4.5) - '@emnapi/runtime@1.4.1': + '@emnapi/runtime@1.4.3': dependencies: tslib: 2.8.1 optional: true '@emotion/hash@0.8.0': {} - '@esbuild/aix-ppc64@0.24.2': - optional: true - '@esbuild/aix-ppc64@0.25.2': optional: true - '@esbuild/android-arm64@0.24.2': + '@esbuild/aix-ppc64@0.25.3': optional: true '@esbuild/android-arm64@0.25.2': optional: true - '@esbuild/android-arm@0.24.2': + '@esbuild/android-arm64@0.25.3': optional: true '@esbuild/android-arm@0.25.2': optional: true - '@esbuild/android-x64@0.24.2': + '@esbuild/android-arm@0.25.3': optional: true '@esbuild/android-x64@0.25.2': optional: true - '@esbuild/darwin-arm64@0.24.2': + '@esbuild/android-x64@0.25.3': optional: true '@esbuild/darwin-arm64@0.25.2': optional: true - '@esbuild/darwin-x64@0.24.2': + '@esbuild/darwin-arm64@0.25.3': optional: true '@esbuild/darwin-x64@0.25.2': optional: true - '@esbuild/freebsd-arm64@0.24.2': + '@esbuild/darwin-x64@0.25.3': optional: true '@esbuild/freebsd-arm64@0.25.2': optional: true - '@esbuild/freebsd-x64@0.24.2': + '@esbuild/freebsd-arm64@0.25.3': optional: true '@esbuild/freebsd-x64@0.25.2': optional: true - '@esbuild/linux-arm64@0.24.2': + '@esbuild/freebsd-x64@0.25.3': optional: true '@esbuild/linux-arm64@0.25.2': optional: true - '@esbuild/linux-arm@0.24.2': + '@esbuild/linux-arm64@0.25.3': optional: true '@esbuild/linux-arm@0.25.2': optional: true - '@esbuild/linux-ia32@0.24.2': + '@esbuild/linux-arm@0.25.3': optional: true '@esbuild/linux-ia32@0.25.2': optional: true - '@esbuild/linux-loong64@0.24.2': + '@esbuild/linux-ia32@0.25.3': optional: true '@esbuild/linux-loong64@0.25.2': optional: true - '@esbuild/linux-mips64el@0.24.2': + '@esbuild/linux-loong64@0.25.3': optional: true '@esbuild/linux-mips64el@0.25.2': optional: true - '@esbuild/linux-ppc64@0.24.2': + '@esbuild/linux-mips64el@0.25.3': optional: true '@esbuild/linux-ppc64@0.25.2': optional: true - '@esbuild/linux-riscv64@0.24.2': + '@esbuild/linux-ppc64@0.25.3': optional: true '@esbuild/linux-riscv64@0.25.2': optional: true - '@esbuild/linux-s390x@0.24.2': + '@esbuild/linux-riscv64@0.25.3': optional: true '@esbuild/linux-s390x@0.25.2': optional: true - '@esbuild/linux-x64@0.24.2': + '@esbuild/linux-s390x@0.25.3': optional: true '@esbuild/linux-x64@0.25.2': optional: true - '@esbuild/netbsd-arm64@0.24.2': + '@esbuild/linux-x64@0.25.3': optional: true '@esbuild/netbsd-arm64@0.25.2': optional: true - '@esbuild/netbsd-x64@0.24.2': + '@esbuild/netbsd-arm64@0.25.3': optional: true '@esbuild/netbsd-x64@0.25.2': optional: true - '@esbuild/openbsd-arm64@0.24.2': + '@esbuild/netbsd-x64@0.25.3': optional: true '@esbuild/openbsd-arm64@0.25.2': optional: true - '@esbuild/openbsd-x64@0.24.2': + '@esbuild/openbsd-arm64@0.25.3': optional: true '@esbuild/openbsd-x64@0.25.2': optional: true - '@esbuild/sunos-x64@0.24.2': + '@esbuild/openbsd-x64@0.25.3': optional: true '@esbuild/sunos-x64@0.25.2': optional: true - '@esbuild/win32-arm64@0.24.2': + '@esbuild/sunos-x64@0.25.3': optional: true '@esbuild/win32-arm64@0.25.2': optional: true - '@esbuild/win32-ia32@0.24.2': + '@esbuild/win32-arm64@0.25.3': optional: true '@esbuild/win32-ia32@0.25.2': optional: true - '@esbuild/win32-x64@0.24.2': + '@esbuild/win32-ia32@0.25.3': optional: true '@esbuild/win32-x64@0.25.2': optional: true + '@esbuild/win32-x64@0.25.3': + optional: true + '@fastify/busboy@2.1.1': {} '@img/sharp-darwin-arm64@0.33.5': @@ -3992,7 +3992,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.4.1 + '@emnapi/runtime': 1.4.3 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -4167,51 +4167,51 @@ snapshots: magic-string: 0.25.9 string.prototype.matchall: 4.0.12 - '@swc/core-darwin-arm64@1.11.20': + '@swc/core-darwin-arm64@1.11.22': optional: true - '@swc/core-darwin-x64@1.11.20': + '@swc/core-darwin-x64@1.11.22': optional: true - '@swc/core-linux-arm-gnueabihf@1.11.20': + '@swc/core-linux-arm-gnueabihf@1.11.22': optional: true - '@swc/core-linux-arm64-gnu@1.11.20': + '@swc/core-linux-arm64-gnu@1.11.22': optional: true - '@swc/core-linux-arm64-musl@1.11.20': + '@swc/core-linux-arm64-musl@1.11.22': optional: true - '@swc/core-linux-x64-gnu@1.11.20': + '@swc/core-linux-x64-gnu@1.11.22': optional: true - '@swc/core-linux-x64-musl@1.11.20': + '@swc/core-linux-x64-musl@1.11.22': optional: true - '@swc/core-win32-arm64-msvc@1.11.20': + '@swc/core-win32-arm64-msvc@1.11.22': optional: true - '@swc/core-win32-ia32-msvc@1.11.20': + '@swc/core-win32-ia32-msvc@1.11.22': optional: true - '@swc/core-win32-x64-msvc@1.11.20': + '@swc/core-win32-x64-msvc@1.11.22': optional: true - '@swc/core@1.11.20': + '@swc/core@1.11.22': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.21 optionalDependencies: - '@swc/core-darwin-arm64': 1.11.20 - '@swc/core-darwin-x64': 1.11.20 - '@swc/core-linux-arm-gnueabihf': 1.11.20 - '@swc/core-linux-arm64-gnu': 1.11.20 - '@swc/core-linux-arm64-musl': 1.11.20 - '@swc/core-linux-x64-gnu': 1.11.20 - '@swc/core-linux-x64-musl': 1.11.20 - '@swc/core-win32-arm64-msvc': 1.11.20 - '@swc/core-win32-ia32-msvc': 1.11.20 - '@swc/core-win32-x64-msvc': 1.11.20 + '@swc/core-darwin-arm64': 1.11.22 + '@swc/core-darwin-x64': 1.11.22 + '@swc/core-linux-arm-gnueabihf': 1.11.22 + '@swc/core-linux-arm64-gnu': 1.11.22 + '@swc/core-linux-arm64-musl': 1.11.22 + '@swc/core-linux-x64-gnu': 1.11.22 + '@swc/core-linux-x64-musl': 1.11.22 + '@swc/core-win32-arm64-msvc': 1.11.22 + '@swc/core-win32-ia32-msvc': 1.11.22 + '@swc/core-win32-x64-msvc': 1.11.22 '@swc/counter@0.1.3': {} @@ -4302,9 +4302,9 @@ snapshots: '@vicons/material@0.13.0': {} - '@vitejs/plugin-vue@5.2.3(vite@6.2.6(@types/node@22.10.5)(terser@5.39.0))(vue@3.5.13(typescript@5.4.5))': + '@vitejs/plugin-vue@5.2.3(vite@6.3.2(@types/node@22.10.5)(terser@5.39.0))(vue@3.5.13(typescript@5.4.5))': dependencies: - vite: 6.2.6(@types/node@22.10.5)(terser@5.39.0) + vite: 6.3.2(@types/node@22.10.5)(terser@5.39.0) vue: 3.5.13(typescript@5.4.5) '@vue/compiler-core@3.5.13': @@ -4596,8 +4596,8 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001713 - electron-to-chromium: 1.5.136 + caniuse-lite: 1.0.30001715 + electron-to-chromium: 1.5.140 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) @@ -4620,7 +4620,7 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - caniuse-lite@1.0.30001713: {} + caniuse-lite@1.0.30001715: {} chalk@4.1.2: dependencies: @@ -4755,7 +4755,7 @@ snapshots: delegate@3.2.0: {} - detect-libc@2.0.3: + detect-libc@2.0.4: optional: true dom7@3.0.0: @@ -4772,7 +4772,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.136: {} + electron-to-chromium@1.5.140: {} entities@4.5.0: {} @@ -4869,34 +4869,6 @@ snapshots: d: 1.0.2 ext: 1.7.0 - esbuild@0.24.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 - esbuild@0.25.2: optionalDependencies: '@esbuild/aix-ppc64': 0.25.2 @@ -4925,6 +4897,34 @@ snapshots: '@esbuild/win32-ia32': 0.25.2 '@esbuild/win32-x64': 0.25.2 + esbuild@0.25.3: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.3 + '@esbuild/android-arm': 0.25.3 + '@esbuild/android-arm64': 0.25.3 + '@esbuild/android-x64': 0.25.3 + '@esbuild/darwin-arm64': 0.25.3 + '@esbuild/darwin-x64': 0.25.3 + '@esbuild/freebsd-arm64': 0.25.3 + '@esbuild/freebsd-x64': 0.25.3 + '@esbuild/linux-arm': 0.25.3 + '@esbuild/linux-arm64': 0.25.3 + '@esbuild/linux-ia32': 0.25.3 + '@esbuild/linux-loong64': 0.25.3 + '@esbuild/linux-mips64el': 0.25.3 + '@esbuild/linux-ppc64': 0.25.3 + '@esbuild/linux-riscv64': 0.25.3 + '@esbuild/linux-s390x': 0.25.3 + '@esbuild/linux-x64': 0.25.3 + '@esbuild/netbsd-arm64': 0.25.3 + '@esbuild/netbsd-x64': 0.25.3 + '@esbuild/openbsd-arm64': 0.25.3 + '@esbuild/openbsd-x64': 0.25.3 + '@esbuild/sunos-x64': 0.25.3 + '@esbuild/win32-arm64': 0.25.3 + '@esbuild/win32-ia32': 0.25.3 + '@esbuild/win32-x64': 0.25.3 + escalade@3.2.0: {} escape-string-regexp@5.0.0: {} @@ -4955,7 +4955,7 @@ snapshots: exit-hook@2.2.1: {} - exsolve@1.0.4: {} + exsolve@1.0.5: {} ext@1.7.0: dependencies: @@ -4967,7 +4967,7 @@ snapshots: fast-uri@3.0.6: {} - fdir@6.4.3(picomatch@4.0.2): + fdir@6.4.4(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -5357,7 +5357,7 @@ snapshots: mime@3.0.0: {} - miniflare@4.20250409.0: + miniflare@4.20250422.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 @@ -5366,7 +5366,7 @@ snapshots: glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.29.0 - workerd: 1.20250409.0 + workerd: 1.20250422.0 ws: 8.18.0 youch: 3.3.4 zod: 3.22.3 @@ -5478,7 +5478,7 @@ snapshots: pkg-types@2.1.0: dependencies: confbox: 0.2.2 - exsolve: 1.0.4 + exsolve: 1.0.5 pathe: 2.0.3 possible-typed-array-names@1.1.0: {} @@ -5681,7 +5681,7 @@ snapshots: sharp@0.33.5: dependencies: color: 4.2.3 - detect-libc: 2.0.3 + detect-libc: 2.0.4 semver: 7.7.1 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 @@ -5858,9 +5858,9 @@ snapshots: tiny-warning@1.0.3: {} - tinyglobby@0.2.12: + tinyglobby@0.2.13: dependencies: - fdir: 6.4.3(picomatch@4.0.2) + fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 to-regex-range@5.0.1: @@ -5935,7 +5935,7 @@ snapshots: unenv@2.0.0-rc.15: dependencies: defu: 6.1.4 - exsolve: 1.0.4 + exsolve: 1.0.5 ohash: 2.0.11 pathe: 2.0.3 ufo: 1.6.1 @@ -5971,7 +5971,7 @@ snapshots: pkg-types: 2.1.0 scule: 1.3.0 strip-literal: 3.0.0 - tinyglobby: 0.2.12 + tinyglobby: 0.2.13 unplugin: 2.3.2 unplugin-utils: 0.2.4 @@ -5997,14 +5997,14 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.2 - unplugin-vue-components@28.4.1(@babel/parser@7.27.0)(vue@3.5.13(typescript@5.4.5)): + unplugin-vue-components@28.5.0(@babel/parser@7.27.0)(vue@3.5.13(typescript@5.4.5)): dependencies: chokidar: 3.6.0 debug: 4.4.0 local-pkg: 1.1.1 magic-string: 0.30.17 mlly: 1.7.4 - tinyglobby: 0.2.12 + tinyglobby: 0.2.13 unplugin: 2.3.2 unplugin-utils: 0.2.4 vue: 3.5.13(typescript@5.4.5) @@ -6036,36 +6036,39 @@ snapshots: evtd: 0.2.4 vue: 3.5.13(typescript@5.4.5) - vite-plugin-pwa@1.0.0(vite@6.2.6(@types/node@22.10.5)(terser@5.39.0))(workbox-build@7.3.0)(workbox-window@7.3.0): + vite-plugin-pwa@1.0.0(vite@6.3.2(@types/node@22.10.5)(terser@5.39.0))(workbox-build@7.3.0)(workbox-window@7.3.0): dependencies: debug: 4.4.0 pretty-bytes: 6.1.1 - tinyglobby: 0.2.12 - vite: 6.2.6(@types/node@22.10.5)(terser@5.39.0) + tinyglobby: 0.2.13 + vite: 6.3.2(@types/node@22.10.5)(terser@5.39.0) workbox-build: 7.3.0 workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite-plugin-top-level-await@1.5.0(rollup@2.79.2)(vite@6.2.6(@types/node@22.10.5)(terser@5.39.0)): + vite-plugin-top-level-await@1.5.0(rollup@2.79.2)(vite@6.3.2(@types/node@22.10.5)(terser@5.39.0)): dependencies: '@rollup/plugin-virtual': 3.0.2(rollup@2.79.2) - '@swc/core': 1.11.20 + '@swc/core': 1.11.22 uuid: 10.0.0 - vite: 6.2.6(@types/node@22.10.5)(terser@5.39.0) + vite: 6.3.2(@types/node@22.10.5)(terser@5.39.0) transitivePeerDependencies: - '@swc/helpers' - rollup - vite-plugin-wasm@3.4.1(vite@6.2.6(@types/node@22.10.5)(terser@5.39.0)): + vite-plugin-wasm@3.4.1(vite@6.3.2(@types/node@22.10.5)(terser@5.39.0)): dependencies: - vite: 6.2.6(@types/node@22.10.5)(terser@5.39.0) + vite: 6.3.2(@types/node@22.10.5)(terser@5.39.0) - vite@6.2.6(@types/node@22.10.5)(terser@5.39.0): + vite@6.3.2(@types/node@22.10.5)(terser@5.39.0): dependencies: - esbuild: 0.25.2 + esbuild: 0.25.3 + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 postcss: 8.5.3 rollup: 4.40.0 + tinyglobby: 0.2.13 optionalDependencies: '@types/node': 22.10.5 fsevents: 2.3.3 @@ -6279,24 +6282,24 @@ snapshots: '@types/trusted-types': 2.0.7 workbox-core: 7.3.0 - workerd@1.20250409.0: + workerd@1.20250422.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250409.0 - '@cloudflare/workerd-darwin-arm64': 1.20250409.0 - '@cloudflare/workerd-linux-64': 1.20250409.0 - '@cloudflare/workerd-linux-arm64': 1.20250409.0 - '@cloudflare/workerd-windows-64': 1.20250409.0 + '@cloudflare/workerd-darwin-64': 1.20250422.0 + '@cloudflare/workerd-darwin-arm64': 1.20250422.0 + '@cloudflare/workerd-linux-64': 1.20250422.0 + '@cloudflare/workerd-linux-arm64': 1.20250422.0 + '@cloudflare/workerd-windows-64': 1.20250422.0 - wrangler@4.10.0: + wrangler@4.13.0: dependencies: '@cloudflare/kv-asset-handler': 0.4.0 - '@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250409.0) + '@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250422.0) blake3-wasm: 2.1.5 - esbuild: 0.24.2 - miniflare: 4.20250409.0 + esbuild: 0.25.2 + miniflare: 4.20250422.0 path-to-regexp: 6.3.0 unenv: 2.0.0-rc.15 - workerd: 1.20250409.0 + workerd: 1.20250422.0 optionalDependencies: fsevents: 2.3.3 sharp: 0.33.5 diff --git a/frontend/src/views/User.vue b/frontend/src/views/User.vue index 7d3625ff..229f0278 100644 --- a/frontend/src/views/User.vue +++ b/frontend/src/views/User.vue @@ -7,6 +7,7 @@ import AddressMangement from './user/AddressManagement.vue'; import UserSettingsPage from './user/UserSettings.vue'; import UserBar from './user/UserBar.vue'; import BindAddress from './user/BindAddress.vue'; +import UserMailBox from './user/UserMailBox.vue'; const { userTab, globalTabplacement, userSettings @@ -16,11 +17,13 @@ const { t } = useI18n({ messages: { en: { address_management: 'Address Management', + user_mail_box_tab: 'Mail Box', user_settings: 'User Settings', bind_address: 'Bind Mail Address', }, zh: { address_management: '地址管理', + user_mail_box_tab: '收件箱', user_settings: '用户设置', bind_address: '绑定邮箱地址', } @@ -36,6 +39,9 @@ const { t } = useI18n({ + + + diff --git a/frontend/src/views/user/UserMailBox.vue b/frontend/src/views/user/UserMailBox.vue new file mode 100644 index 00000000..f974aa5d --- /dev/null +++ b/frontend/src/views/user/UserMailBox.vue @@ -0,0 +1,90 @@ + + + diff --git a/pages/package.json b/pages/package.json index 113e6b29..a5c8a47a 100644 --- a/pages/package.json +++ b/pages/package.json @@ -1,6 +1,6 @@ { "name": "temp-email-pages", - "version": "0.9.1", + "version": "0.10.9", "description": "", "main": "index.js", "scripts": { @@ -11,6 +11,6 @@ "author": "", "license": "ISC", "devDependencies": { - "wrangler": "^4.10.0" + "wrangler": "^4.13.0" } } diff --git a/vitepress-docs/docs/zh/guide/feature/mail-api.md b/vitepress-docs/docs/zh/guide/feature/mail-api.md index 6aacce2d..d776b22f 100644 --- a/vitepress-docs/docs/zh/guide/feature/mail-api.md +++ b/vitepress-docs/docs/zh/guide/feature/mail-api.md @@ -1,6 +1,6 @@ # 查看邮件 API -## 通过 HTTP API 查看邮件 +## 通过 邮件 API 查看邮件 这是一个 `python` 的例子,使用 `requests` 库查看邮件。 @@ -8,7 +8,7 @@ limit = 10 offset = 0 res = requests.get( - f"http://localhost:8787/api/mails?limit={limit}&offset={offset}", + f"https://<你的worker地址>/api/mails?limit={limit}&offset={offset}", headers={ "Authorization": f"Bearer {你的JWT密码}", # "x-custom-auth": "<你的网站密码>", # 如果启用了自定义密码 @@ -16,3 +16,51 @@ res = requests.get( } ) ``` + +## admin 邮件 API + +支持 `address` filter 和 `keyword` filter + +```python +import requests + +url = "https://<你的worker地址>/admin/mails" + +querystring = { + "limit":"20", + "offset":"0", + # adress 和 keyword 为可选参数 + "address":"xxxx@awsl.uk", + "keyword":"xxxx" +} + +headers = {"x-admin-auth": "<你的Admin密码>"} + +response = requests.get(url, headers=headers, params=querystring) + +print(response.json()) +``` + +## user 邮件 API + +支持 `address` filter 和 `keyword` filter + +```python +import requests + +url = "https://<你的worker地址>/user_api/mails" + +querystring = { + "limit":"20", + "offset":"0", + # adress 和 keyword 为可选参数 + "address":"xxxx@awsl.uk", + "keyword":"xxxx" +} + +headers = {"x-admin-auth": "<你的Admin密码>"} + +response = requests.get(url, headers=headers, params=querystring) + +print(response.json()) +``` diff --git a/vitepress-docs/package.json b/vitepress-docs/package.json index bac144bb..8c2c0bd8 100644 --- a/vitepress-docs/package.json +++ b/vitepress-docs/package.json @@ -1,12 +1,12 @@ { "name": "temp-mail-docs", "private": true, - "version": "0.9.1", + "version": "0.10.9", "type": "module", "devDependencies": { "@types/node": "^22.14.1", "vitepress": "^1.6.3", - "wrangler": "^4.10.0" + "wrangler": "^4.13.0" }, "scripts": { "dev": "vitepress dev docs", diff --git a/vitepress-docs/pnpm-lock.yaml b/vitepress-docs/pnpm-lock.yaml index 542df037..d9f766dc 100644 --- a/vitepress-docs/pnpm-lock.yaml +++ b/vitepress-docs/pnpm-lock.yaml @@ -17,10 +17,10 @@ importers: version: 22.14.1 vitepress: specifier: ^1.6.3 - version: 1.6.3(@algolia/client-search@5.23.3)(@types/node@22.14.1)(postcss@8.5.3)(search-insights@2.13.0)(typescript@5.4.5) + version: 1.6.3(@algolia/client-search@5.23.4)(@types/node@22.14.1)(postcss@8.5.3)(search-insights@2.13.0)(typescript@5.4.5) wrangler: - specifier: ^4.10.0 - version: 4.10.0 + specifier: ^4.13.0 + version: 4.13.0 packages: @@ -44,56 +44,56 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/client-abtesting@5.23.3': - resolution: {integrity: sha512-yHI0hBwYcNPc+nJoHPTmmlP8pG6nstCEhpHaZQCDwLZhdMtNhd1hliZMCtLgNnvd1yKEgTt/ZDnTSdZLehfKdA==} + '@algolia/client-abtesting@5.23.4': + resolution: {integrity: sha512-WIMT2Kxy+FFWXWQxIU8QgbTioL+SGE24zhpj0kipG4uQbzXwONaWt7ffaYLjfge3gcGSgJVv+1VlahVckafluQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.23.3': - resolution: {integrity: sha512-/70Ey+nZm4bRr2DcNrGU251YIn9lDu0g8xeP4jTCyunGRNFZ/d8hQAw9El34pcTpO1QDojJWAi6ywKIrUaks9w==} + '@algolia/client-analytics@5.23.4': + resolution: {integrity: sha512-4B9gChENsQA9kFmFlb+x3YhBz2Gx3vSsm81FHI1yJ3fn2zlxREHmfrjyqYoMunsU7BybT/o5Nb7ccCbm/vfseA==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.23.3': - resolution: {integrity: sha512-fkpbPclIvaiyw3ADKRBCxMZhrNx/8//6DClfWGxeEiTJ0HEEYtHlqE6GjAkEJubz4v1ioCQkhZwMoFfFct2/vQ==} + '@algolia/client-common@5.23.4': + resolution: {integrity: sha512-bsj0lwU2ytiWLtl7sPunr+oLe+0YJql9FozJln5BnIiqfKOaseSDdV42060vUy+D4373f2XBI009K/rm2IXYMA==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.23.3': - resolution: {integrity: sha512-TXc5Ve6QOCihWCTWY9N56CZxF1iovzpBWBUhQhy6JSiUfX3MXceV3saV+sXHQ1NVt2NKkyUfEspYHBsTrYzIDg==} + '@algolia/client-insights@5.23.4': + resolution: {integrity: sha512-XSCtAYvJ/hnfDHfRVMbBH0dayR+2ofVZy3jf5qyifjguC6rwxDsSdQvXpT0QFVyG+h8UPGtDhMPoUIng4wIcZA==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.23.3': - resolution: {integrity: sha512-JlReruxxiw9LB53jF/BmvVV+c0thiWQUHRdgtbVIEusvRaiX1IdpWJSPQExEtBQ7VFg89nP8niCzWtA34ktKSA==} + '@algolia/client-personalization@5.23.4': + resolution: {integrity: sha512-l/0QvqgRFFOf7BnKSJ3myd1WbDr86ftVaa3PQwlsNh7IpIHmvVcT83Bi5zlORozVGMwaKfyPZo6O48PZELsOeA==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.23.3': - resolution: {integrity: sha512-GDEExFMXwx0ScE0AZUA4F6ssztdJvGcXUkdWmWyt2hbYz43ukqmlVJqPaYgGmWdjJjvTx+dNF/hcinwWuXbCug==} + '@algolia/client-query-suggestions@5.23.4': + resolution: {integrity: sha512-TB0htrDgVacVGtPDyENoM6VIeYqR+pMsDovW94dfi2JoaRxfqu/tYmLpvgWcOknP6wLbr8bA+G7t/NiGksNAwQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.23.3': - resolution: {integrity: sha512-mwofV6tGo0oHt4BPi+S5eLC3wnhOa4A1OVgPxetTxZuetod+2W4cxKavUW2v/Ma5CABXPLooXX+g9E67umELZw==} + '@algolia/client-search@5.23.4': + resolution: {integrity: sha512-uBGo6KwUP6z+u6HZWRui8UJClS7fgUIAiYd1prUqCbkzDiCngTOzxaJbEvrdkK0hGCQtnPDiuNhC5MhtVNN4Eg==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.23.3': - resolution: {integrity: sha512-Zxgmi7Hk4lI52YFphzzJekUqWxYxVjY2GrCpOxV+QiojvUi8Ru+knq6REcwLHFSwpwaDh2Th5pOefMpn4EkQCw==} + '@algolia/ingestion@1.23.4': + resolution: {integrity: sha512-Si6rFuGnSeEUPU9QchYvbknvEIyCRK7nkeaPVQdZpABU7m4V/tsiWdHmjVodtx3h20VZivJdHeQO9XbHxBOcCw==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.23.3': - resolution: {integrity: sha512-zi/IqvsmFW4E5gMaovAE4KRbXQ+LDYpPGG1nHtfuD5u3SSuQ31fT1vX2zqb6PbPTlgJMEmMk91Mbb7fIKmbQUw==} + '@algolia/monitoring@1.23.4': + resolution: {integrity: sha512-EXGoVVTshraqPJgr5cMd1fq7Jm71Ew6MpGCEaxI5PErBpJAmKdtjRIzs6JOGKHRaWLi+jdbJPYc2y8RN4qcx5Q==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.23.3': - resolution: {integrity: sha512-C9TwbT1zGwULLXGSUSB+G7o/30djacPmQcsTHepvT47PVfPr2ISK/5QVtUnjMU84LEP8uNjuPUeM4ZeWVJ2iuQ==} + '@algolia/recommend@5.23.4': + resolution: {integrity: sha512-1t6glwKVCkjvBNlng2itTf8fwaLSqkL4JaMENgR3WTGR8mmW2akocUy/ZYSQcG4TcR7qu4zW2UMGAwLoWoflgQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.23.3': - resolution: {integrity: sha512-/7oYeUhYzY0lls7WtkAURM6wy21/Wwmq9GdujW1MpoYVC0ATXXxwCiAfOpYL9xdWxLV0R3wjyD+yZEni+nboKg==} + '@algolia/requester-browser-xhr@5.23.4': + resolution: {integrity: sha512-UUuizcgc5+VSY8hqzDFVdJ3Wcto03lpbFRGPgW12pHTlUQHUTADtIpIhkLLOZRCjXmCVhtr97Z+eR6LcRYXa3Q==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.23.3': - resolution: {integrity: sha512-r/4fKz4t+bSU1KdjRq+swdNvuGfJ0spV8aFTHPtcsF+1ZaN/VqmdXrTe5NkaZLSztFeMqKwZlJIVvE7VuGlFtw==} + '@algolia/requester-fetch@5.23.4': + resolution: {integrity: sha512-UhDg6elsek6NnV5z4VG1qMwR6vbp+rTMBEnl/v4hUyXQazU+CNdYkl++cpdmLwGI/7nXc28xtZiL90Es3I7viQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.23.3': - resolution: {integrity: sha512-UZiTNmUBQFPl3tUKuXaDd8BxEC0t0ny86wwW6XgwfM9IQf4PrzuMpvuOGIJMcCGlrNolZDEI0mcbz/tqRdKW7A==} + '@algolia/requester-node-http@5.23.4': + resolution: {integrity: sha512-jXGzGBRUS0oywQwnaCA6mMDJO7LoC3dYSLsyNfIqxDR4SNGLhtg3je0Y31lc24OA4nYyKAYgVLtjfrpcpsWShg==} engines: {node: '>= 14.0.0'} '@babel/helper-string-parser@7.25.9': @@ -126,32 +126,32 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20250409.0': - resolution: {integrity: sha512-smA9yq77xsdQ1NMLhFz3JZxMHGd01lg0bE+X3dTFmIUs+hHskJ+HJ/IkMFInkCCeEFlUkoL4yO7ilaU/fin/xA==} + '@cloudflare/workerd-darwin-64@1.20250422.0': + resolution: {integrity: sha512-2FWl8TLpC4Knuyw8GmNgUSoJCNJNNGJ7Xv90j2n8FiXR5Clp9jSpm2ovK8RP9P751yX1/iIp8e7QufR/XDB6ow==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250409.0': - resolution: {integrity: sha512-oLVcf+Y5Qun8JHcy1VcR/YnbA5U2ne0czh3XNhDqdHZFK8+vKeC7MnVPX+kEqQA3+uLcMM1/FsIDU1U4Na0h1g==} + '@cloudflare/workerd-darwin-arm64@1.20250422.0': + resolution: {integrity: sha512-GY3W74ivqxsYldacEbMtcSbG7LsS9hPo5UybKIw4RO9GzP7UC5WGnPfuI4PE2SnJOnw7nwSrBLuhGRPe/QQHkQ==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20250409.0': - resolution: {integrity: sha512-D31B4kdC3a0RD5yfpdIa89//kGHbYsYihZmejm1k4S4NHOho3MUDHAEh4aHtafQNXbZdydGHlSyiVYjTdQ9ILQ==} + '@cloudflare/workerd-linux-64@1.20250422.0': + resolution: {integrity: sha512-mtNkEygKtlRq9pMRlm9J4nX4uVHU1AtJ3mSkdNwPwhisTpo989O5Zd0SH9CYwAk8+NmlZsXELpODUVQxQ7FJgw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20250409.0': - resolution: {integrity: sha512-Sr59P0TREayil5OQ7kcbjuIn6L6OTSRLI91LKu0D8vi1hss2q9FUwBcwxg0+Yd/x+ty/x7IISiAK5QBkAMeITQ==} + '@cloudflare/workerd-linux-arm64@1.20250422.0': + resolution: {integrity: sha512-ILlW4/kAoFJvSryrr/QJsiHBdMTf/fjUrIM0hxeuQue8zIEvAVqM1tzpUh8bPJT6AQEbk5ziwkfucA939Z6Tnw==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20250409.0': - resolution: {integrity: sha512-dK9I8zBX5rR7MtaaP2AhICQTEw3PVzHcsltN8o46w7JsbYlMvFOj27FfYH5dhs3IahgmIfw2e572QXW2o/dbpg==} + '@cloudflare/workerd-windows-64@1.20250422.0': + resolution: {integrity: sha512-O2f6f7oxU/oaWX/3/5d/9qvzNSKsw72RsQFjpew2va7KwnnUciI2LnbYR6KYOqRGYrEoiMJxpWPQaYaFVj8t1w==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -183,8 +183,8 @@ packages: search-insights: optional: true - '@emnapi/runtime@1.4.1': - resolution: {integrity: sha512-LMshMVP0ZhACNjQNYXiU1iZJ6QCcv0lUdPDPugqGvCGXt5xtRVBPdtA0qU12pEXZzpWAhWlZYptfdAFq10DOVQ==} + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} @@ -192,8 +192,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + '@esbuild/aix-ppc64@0.25.2': + resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -204,8 +204,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + '@esbuild/android-arm64@0.25.2': + resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -216,8 +216,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + '@esbuild/android-arm@0.25.2': + resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -228,8 +228,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + '@esbuild/android-x64@0.25.2': + resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -240,8 +240,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + '@esbuild/darwin-arm64@0.25.2': + resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -252,8 +252,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + '@esbuild/darwin-x64@0.25.2': + resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -264,8 +264,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + '@esbuild/freebsd-arm64@0.25.2': + resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -276,8 +276,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + '@esbuild/freebsd-x64@0.25.2': + resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -288,8 +288,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + '@esbuild/linux-arm64@0.25.2': + resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -300,8 +300,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + '@esbuild/linux-arm@0.25.2': + resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -312,8 +312,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + '@esbuild/linux-ia32@0.25.2': + resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -324,8 +324,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + '@esbuild/linux-loong64@0.25.2': + resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -336,8 +336,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + '@esbuild/linux-mips64el@0.25.2': + resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -348,8 +348,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + '@esbuild/linux-ppc64@0.25.2': + resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -360,8 +360,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + '@esbuild/linux-riscv64@0.25.2': + resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -372,8 +372,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + '@esbuild/linux-s390x@0.25.2': + resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -384,14 +384,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + '@esbuild/linux-x64@0.25.2': + resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + '@esbuild/netbsd-arm64@0.25.2': + resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -402,14 +402,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + '@esbuild/netbsd-x64@0.25.2': + resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + '@esbuild/openbsd-arm64@0.25.2': + resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -420,8 +420,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + '@esbuild/openbsd-x64@0.25.2': + resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -432,8 +432,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + '@esbuild/sunos-x64@0.25.2': + resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -444,8 +444,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + '@esbuild/win32-arm64@0.25.2': + resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -456,8 +456,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + '@esbuild/win32-ia32@0.25.2': + resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -468,8 +468,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + '@esbuild/win32-x64@0.25.2': + resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -478,8 +478,8 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@iconify-json/simple-icons@1.2.31': - resolution: {integrity: sha512-xBUPtvkcSAiXs9DfVtudhLddQtQYin3I3Ph/W5FNYA0oE6r2hmLB8TgOog9OjOt1Sxn3IB5+4n5+64DMf2xNmQ==} + '@iconify-json/simple-icons@1.2.33': + resolution: {integrity: sha512-nL5/UmI9x5PQ/AHv6bOaL2pH6twEdEz4pI89efB/K7HFn5etQnxMtGx9DFlOg/sRA2/yFpX8KXvc95CSDv5bJA==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -772,14 +772,14 @@ packages: '@vue/compiler-ssr@3.5.13': resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} - '@vue/devtools-api@7.7.2': - resolution: {integrity: sha512-1syn558KhyN+chO5SjlZIwJ8bV/bQ1nOVTG66t2RbG66ZGekyiYNmRO7X9BJCXQqPsFHlnksqvPhce2qpzxFnA==} + '@vue/devtools-api@7.7.5': + resolution: {integrity: sha512-HYV3tJGARROq5nlVMJh5KKHk7GU8Au3IrrmNNqr978m0edxgpHgYPDoNUGrvEgIbObz09SQezFR3A1EVmB5WZg==} - '@vue/devtools-kit@7.7.2': - resolution: {integrity: sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==} + '@vue/devtools-kit@7.7.5': + resolution: {integrity: sha512-S9VAVJYVAe4RPx2JZb9ZTEi0lqTySz2CBeF0wHT5D3dkTLnT9yMMGegKNl4b2EIELwLSkcI9bl2qp0/jW+upqA==} - '@vue/devtools-shared@7.7.2': - resolution: {integrity: sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==} + '@vue/devtools-shared@7.7.5': + resolution: {integrity: sha512-QBjG72RfpM0DKtpns2RZOxBltO226kOAls9e4Lri6YxS2gWTgL0H+wj1R2K76lxxIeOrqo4+2Ty6RQnzv+WSTQ==} '@vue/reactivity@3.5.13': resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} @@ -857,15 +857,15 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - algoliasearch@5.23.3: - resolution: {integrity: sha512-0JlUaY/hl3LrKvbidI5FysEi2ggAlcTHM8AHV2UsrJUXnNo8/lWBfhzc1b7o8bK3YZNiU26JtLyT9exoj5VBgA==} + algoliasearch@5.23.4: + resolution: {integrity: sha512-QzAKFHl3fm53s44VHrTdEo0TkpL3XVUYQpnZy1r6/EHvMAyIg+O4hwprzlsNmcCHTNyVcF2S13DAUn7XhkC6qg==} engines: {node: '>= 14.0.0'} as-table@1.0.55: resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} - birpc@0.2.19: - resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + birpc@2.3.0: + resolution: {integrity: sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==} blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} @@ -920,8 +920,8 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} devlop@1.1.0: @@ -939,8 +939,8 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + esbuild@0.25.2: + resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} engines: {node: '>=18'} hasBin: true @@ -951,8 +951,8 @@ packages: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} - exsolve@1.0.4: - resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} + exsolve@1.0.5: + resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} focus-trap@7.6.4: resolution: {integrity: sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==} @@ -1031,8 +1031,8 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - miniflare@4.20250409.0: - resolution: {integrity: sha512-Hu02dYZvFR+MyrI57O6rSrOUTofcO9EIvcodgq2SAHzAeWSJw2E0oq9lylOrcckFwPMcwxUAb/cQN1LIoCyySw==} + miniflare@4.20250422.0: + resolution: {integrity: sha512-3frXK9EZEWQkHMDyppeIbUKwd7OQkNOm2gBtQQzjQ4gtzQmh+yxkyJiiylf+fGbz86djQTLKKQdQ1FC4yM3AMg==} engines: {node: '>=18.0.0'} hasBin: true @@ -1266,17 +1266,17 @@ packages: typescript: optional: true - workerd@1.20250409.0: - resolution: {integrity: sha512-hqjX9swiHvrkOI3jlH9lrZsZRRv9lddUwcMe8Ua76jnyQz+brybWznNjHu8U5oswwcrFwvky1A4CcLjcLY31gQ==} + workerd@1.20250422.0: + resolution: {integrity: sha512-q3ws6MIa9GJQqq1Q52qoD7vCx1203fjKNPmtRV1vvplrsfYphjr5pOAnZGUODFB1BnsDWypr71Luy7OonT0vug==} engines: {node: '>=16'} hasBin: true - wrangler@4.10.0: - resolution: {integrity: sha512-fTE4hZ79msEUt8+HEjl/8Q72haCyzPLu4PgrU3L81ysmjrMEdiYfUPqnvCkBUVtJvrDNdctTEimkufT1Y0ipNg==} + wrangler@4.13.0: + resolution: {integrity: sha512-CVRNL0unLmzhVeUkW+9neZHFITSo7UDROz8VYxi8YhitV9Rr1xMojS1cGjQTaQX8F3nAEsTRJXTwwTZ0JoJm6g==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250409.0 + '@cloudflare/workers-types': ^4.20250422.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -1304,110 +1304,110 @@ packages: snapshots: - '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)(search-insights@2.13.0)': + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.23.4)(algoliasearch@5.23.4)(search-insights@2.13.0)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)(search-insights@2.13.0) - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.23.4)(algoliasearch@5.23.4)(search-insights@2.13.0) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.23.4)(algoliasearch@5.23.4) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)(search-insights@2.13.0)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.23.4)(algoliasearch@5.23.4)(search-insights@2.13.0)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.23.4)(algoliasearch@5.23.4) search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)': + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.23.4)(algoliasearch@5.23.4)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3) - '@algolia/client-search': 5.23.3 - algoliasearch: 5.23.3 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.23.4)(algoliasearch@5.23.4) + '@algolia/client-search': 5.23.4 + algoliasearch: 5.23.4 - '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)': + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.23.4)(algoliasearch@5.23.4)': dependencies: - '@algolia/client-search': 5.23.3 - algoliasearch: 5.23.3 + '@algolia/client-search': 5.23.4 + algoliasearch: 5.23.4 - '@algolia/client-abtesting@5.23.3': + '@algolia/client-abtesting@5.23.4': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.23.4 + '@algolia/requester-browser-xhr': 5.23.4 + '@algolia/requester-fetch': 5.23.4 + '@algolia/requester-node-http': 5.23.4 - '@algolia/client-analytics@5.23.3': + '@algolia/client-analytics@5.23.4': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.23.4 + '@algolia/requester-browser-xhr': 5.23.4 + '@algolia/requester-fetch': 5.23.4 + '@algolia/requester-node-http': 5.23.4 - '@algolia/client-common@5.23.3': {} + '@algolia/client-common@5.23.4': {} - '@algolia/client-insights@5.23.3': + '@algolia/client-insights@5.23.4': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.23.4 + '@algolia/requester-browser-xhr': 5.23.4 + '@algolia/requester-fetch': 5.23.4 + '@algolia/requester-node-http': 5.23.4 - '@algolia/client-personalization@5.23.3': + '@algolia/client-personalization@5.23.4': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.23.4 + '@algolia/requester-browser-xhr': 5.23.4 + '@algolia/requester-fetch': 5.23.4 + '@algolia/requester-node-http': 5.23.4 - '@algolia/client-query-suggestions@5.23.3': + '@algolia/client-query-suggestions@5.23.4': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.23.4 + '@algolia/requester-browser-xhr': 5.23.4 + '@algolia/requester-fetch': 5.23.4 + '@algolia/requester-node-http': 5.23.4 - '@algolia/client-search@5.23.3': + '@algolia/client-search@5.23.4': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.23.4 + '@algolia/requester-browser-xhr': 5.23.4 + '@algolia/requester-fetch': 5.23.4 + '@algolia/requester-node-http': 5.23.4 - '@algolia/ingestion@1.23.3': + '@algolia/ingestion@1.23.4': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.23.4 + '@algolia/requester-browser-xhr': 5.23.4 + '@algolia/requester-fetch': 5.23.4 + '@algolia/requester-node-http': 5.23.4 - '@algolia/monitoring@1.23.3': + '@algolia/monitoring@1.23.4': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.23.4 + '@algolia/requester-browser-xhr': 5.23.4 + '@algolia/requester-fetch': 5.23.4 + '@algolia/requester-node-http': 5.23.4 - '@algolia/recommend@5.23.3': + '@algolia/recommend@5.23.4': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.23.4 + '@algolia/requester-browser-xhr': 5.23.4 + '@algolia/requester-fetch': 5.23.4 + '@algolia/requester-node-http': 5.23.4 - '@algolia/requester-browser-xhr@5.23.3': + '@algolia/requester-browser-xhr@5.23.4': dependencies: - '@algolia/client-common': 5.23.3 + '@algolia/client-common': 5.23.4 - '@algolia/requester-fetch@5.23.3': + '@algolia/requester-fetch@5.23.4': dependencies: - '@algolia/client-common': 5.23.3 + '@algolia/client-common': 5.23.4 - '@algolia/requester-node-http@5.23.3': + '@algolia/requester-node-http@5.23.4': dependencies: - '@algolia/client-common': 5.23.3 + '@algolia/client-common': 5.23.4 '@babel/helper-string-parser@7.25.9': {} @@ -1426,25 +1426,25 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250409.0)': + '@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250422.0)': dependencies: unenv: 2.0.0-rc.15 optionalDependencies: - workerd: 1.20250409.0 + workerd: 1.20250422.0 - '@cloudflare/workerd-darwin-64@1.20250409.0': + '@cloudflare/workerd-darwin-64@1.20250422.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250409.0': + '@cloudflare/workerd-darwin-arm64@1.20250422.0': optional: true - '@cloudflare/workerd-linux-64@1.20250409.0': + '@cloudflare/workerd-linux-64@1.20250422.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20250409.0': + '@cloudflare/workerd-linux-arm64@1.20250422.0': optional: true - '@cloudflare/workerd-windows-64@1.20250409.0': + '@cloudflare/workerd-windows-64@1.20250422.0': optional: true '@cspotcode/source-map-support@0.8.1': @@ -1453,9 +1453,9 @@ snapshots: '@docsearch/css@3.8.2': {} - '@docsearch/js@3.8.2(@algolia/client-search@5.23.3)(search-insights@2.13.0)': + '@docsearch/js@3.8.2(@algolia/client-search@5.23.4)(search-insights@2.13.0)': dependencies: - '@docsearch/react': 3.8.2(@algolia/client-search@5.23.3)(search-insights@2.13.0) + '@docsearch/react': 3.8.2(@algolia/client-search@5.23.4)(search-insights@2.13.0) preact: 10.26.5 transitivePeerDependencies: - '@algolia/client-search' @@ -1464,18 +1464,18 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.8.2(@algolia/client-search@5.23.3)(search-insights@2.13.0)': + '@docsearch/react@3.8.2(@algolia/client-search@5.23.4)(search-insights@2.13.0)': dependencies: - '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)(search-insights@2.13.0) - '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3) + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.23.4)(algoliasearch@5.23.4)(search-insights@2.13.0) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.23.4)(algoliasearch@5.23.4) '@docsearch/css': 3.8.2 - algoliasearch: 5.23.3 + algoliasearch: 5.23.4 optionalDependencies: search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - '@emnapi/runtime@1.4.1': + '@emnapi/runtime@1.4.3': dependencies: tslib: 2.8.1 optional: true @@ -1483,150 +1483,150 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.2': optional: true '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.24.2': + '@esbuild/android-arm64@0.25.2': optional: true '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.24.2': + '@esbuild/android-arm@0.25.2': optional: true '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.24.2': + '@esbuild/android-x64@0.25.2': optional: true '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.24.2': + '@esbuild/darwin-arm64@0.25.2': optional: true '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.24.2': + '@esbuild/darwin-x64@0.25.2': optional: true '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.24.2': + '@esbuild/freebsd-arm64@0.25.2': optional: true '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.24.2': + '@esbuild/freebsd-x64@0.25.2': optional: true '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.24.2': + '@esbuild/linux-arm64@0.25.2': optional: true '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.24.2': + '@esbuild/linux-arm@0.25.2': optional: true '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.24.2': + '@esbuild/linux-ia32@0.25.2': optional: true '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.24.2': + '@esbuild/linux-loong64@0.25.2': optional: true '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.24.2': + '@esbuild/linux-mips64el@0.25.2': optional: true '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.24.2': + '@esbuild/linux-ppc64@0.25.2': optional: true '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.24.2': + '@esbuild/linux-riscv64@0.25.2': optional: true '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.24.2': + '@esbuild/linux-s390x@0.25.2': optional: true '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.24.2': + '@esbuild/linux-x64@0.25.2': optional: true - '@esbuild/netbsd-arm64@0.24.2': + '@esbuild/netbsd-arm64@0.25.2': optional: true '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.24.2': + '@esbuild/netbsd-x64@0.25.2': optional: true - '@esbuild/openbsd-arm64@0.24.2': + '@esbuild/openbsd-arm64@0.25.2': optional: true '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.24.2': + '@esbuild/openbsd-x64@0.25.2': optional: true '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.24.2': + '@esbuild/sunos-x64@0.25.2': optional: true '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.24.2': + '@esbuild/win32-arm64@0.25.2': optional: true '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.24.2': + '@esbuild/win32-ia32@0.25.2': optional: true '@esbuild/win32-x64@0.21.5': optional: true - '@esbuild/win32-x64@0.24.2': + '@esbuild/win32-x64@0.25.2': optional: true '@fastify/busboy@2.1.1': {} - '@iconify-json/simple-icons@1.2.31': + '@iconify-json/simple-icons@1.2.33': dependencies: '@iconify/types': 2.0.0 @@ -1698,7 +1698,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.4.1 + '@emnapi/runtime': 1.4.3 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -1880,21 +1880,21 @@ snapshots: '@vue/compiler-dom': 3.5.13 '@vue/shared': 3.5.13 - '@vue/devtools-api@7.7.2': + '@vue/devtools-api@7.7.5': dependencies: - '@vue/devtools-kit': 7.7.2 + '@vue/devtools-kit': 7.7.5 - '@vue/devtools-kit@7.7.2': + '@vue/devtools-kit@7.7.5': dependencies: - '@vue/devtools-shared': 7.7.2 - birpc: 0.2.19 + '@vue/devtools-shared': 7.7.5 + birpc: 2.3.0 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 superjson: 2.2.2 - '@vue/devtools-shared@7.7.2': + '@vue/devtools-shared@7.7.5': dependencies: rfdc: 1.4.1 @@ -1953,27 +1953,27 @@ snapshots: acorn@8.14.0: {} - algoliasearch@5.23.3: + algoliasearch@5.23.4: dependencies: - '@algolia/client-abtesting': 5.23.3 - '@algolia/client-analytics': 5.23.3 - '@algolia/client-common': 5.23.3 - '@algolia/client-insights': 5.23.3 - '@algolia/client-personalization': 5.23.3 - '@algolia/client-query-suggestions': 5.23.3 - '@algolia/client-search': 5.23.3 - '@algolia/ingestion': 1.23.3 - '@algolia/monitoring': 1.23.3 - '@algolia/recommend': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-abtesting': 5.23.4 + '@algolia/client-analytics': 5.23.4 + '@algolia/client-common': 5.23.4 + '@algolia/client-insights': 5.23.4 + '@algolia/client-personalization': 5.23.4 + '@algolia/client-query-suggestions': 5.23.4 + '@algolia/client-search': 5.23.4 + '@algolia/ingestion': 1.23.4 + '@algolia/monitoring': 1.23.4 + '@algolia/recommend': 5.23.4 + '@algolia/requester-browser-xhr': 5.23.4 + '@algolia/requester-fetch': 5.23.4 + '@algolia/requester-node-http': 5.23.4 as-table@1.0.55: dependencies: printable-characters: 1.0.42 - birpc@0.2.19: {} + birpc@2.3.0: {} blake3-wasm@2.1.5: {} @@ -2021,7 +2021,7 @@ snapshots: dequal@2.0.3: {} - detect-libc@2.0.3: + detect-libc@2.0.4: optional: true devlop@1.1.0: @@ -2058,39 +2058,39 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - esbuild@0.24.2: + esbuild@0.25.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 + '@esbuild/aix-ppc64': 0.25.2 + '@esbuild/android-arm': 0.25.2 + '@esbuild/android-arm64': 0.25.2 + '@esbuild/android-x64': 0.25.2 + '@esbuild/darwin-arm64': 0.25.2 + '@esbuild/darwin-x64': 0.25.2 + '@esbuild/freebsd-arm64': 0.25.2 + '@esbuild/freebsd-x64': 0.25.2 + '@esbuild/linux-arm': 0.25.2 + '@esbuild/linux-arm64': 0.25.2 + '@esbuild/linux-ia32': 0.25.2 + '@esbuild/linux-loong64': 0.25.2 + '@esbuild/linux-mips64el': 0.25.2 + '@esbuild/linux-ppc64': 0.25.2 + '@esbuild/linux-riscv64': 0.25.2 + '@esbuild/linux-s390x': 0.25.2 + '@esbuild/linux-x64': 0.25.2 + '@esbuild/netbsd-arm64': 0.25.2 + '@esbuild/netbsd-x64': 0.25.2 + '@esbuild/openbsd-arm64': 0.25.2 + '@esbuild/openbsd-x64': 0.25.2 + '@esbuild/sunos-x64': 0.25.2 + '@esbuild/win32-arm64': 0.25.2 + '@esbuild/win32-ia32': 0.25.2 + '@esbuild/win32-x64': 0.25.2 estree-walker@2.0.2: {} exit-hook@2.2.1: {} - exsolve@1.0.4: {} + exsolve@1.0.5: {} focus-trap@7.6.4: dependencies: @@ -2187,7 +2187,7 @@ snapshots: mime@3.0.0: {} - miniflare@4.20250409.0: + miniflare@4.20250422.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 @@ -2196,7 +2196,7 @@ snapshots: glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.29.0 - workerd: 1.20250409.0 + workerd: 1.20250422.0 ws: 8.18.0 youch: 3.3.4 zod: 3.22.3 @@ -2304,7 +2304,7 @@ snapshots: sharp@0.33.5: dependencies: color: 4.2.3 - detect-libc: 2.0.3 + detect-libc: 2.0.4 semver: 7.7.1 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 @@ -2393,7 +2393,7 @@ snapshots: unenv@2.0.0-rc.15: dependencies: defu: 6.1.4 - exsolve: 1.0.4 + exsolve: 1.0.5 ohash: 2.0.11 pathe: 2.0.3 ufo: 1.6.1 @@ -2442,17 +2442,17 @@ snapshots: '@types/node': 22.14.1 fsevents: 2.3.3 - vitepress@1.6.3(@algolia/client-search@5.23.3)(@types/node@22.14.1)(postcss@8.5.3)(search-insights@2.13.0)(typescript@5.4.5): + vitepress@1.6.3(@algolia/client-search@5.23.4)(@types/node@22.14.1)(postcss@8.5.3)(search-insights@2.13.0)(typescript@5.4.5): dependencies: '@docsearch/css': 3.8.2 - '@docsearch/js': 3.8.2(@algolia/client-search@5.23.3)(search-insights@2.13.0) - '@iconify-json/simple-icons': 1.2.31 + '@docsearch/js': 3.8.2(@algolia/client-search@5.23.4)(search-insights@2.13.0) + '@iconify-json/simple-icons': 1.2.33 '@shikijs/core': 2.5.0 '@shikijs/transformers': 2.5.0 '@shikijs/types': 2.5.0 '@types/markdown-it': 14.1.2 '@vitejs/plugin-vue': 5.2.3(vite@5.4.18(@types/node@22.14.1))(vue@3.5.13(typescript@5.4.5)) - '@vue/devtools-api': 7.7.2 + '@vue/devtools-api': 7.7.5 '@vue/shared': 3.5.13 '@vueuse/core': 12.8.2(typescript@5.4.5) '@vueuse/integrations': 12.8.2(focus-trap@7.6.4)(typescript@5.4.5) @@ -2501,24 +2501,24 @@ snapshots: optionalDependencies: typescript: 5.4.5 - workerd@1.20250409.0: + workerd@1.20250422.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250409.0 - '@cloudflare/workerd-darwin-arm64': 1.20250409.0 - '@cloudflare/workerd-linux-64': 1.20250409.0 - '@cloudflare/workerd-linux-arm64': 1.20250409.0 - '@cloudflare/workerd-windows-64': 1.20250409.0 + '@cloudflare/workerd-darwin-64': 1.20250422.0 + '@cloudflare/workerd-darwin-arm64': 1.20250422.0 + '@cloudflare/workerd-linux-64': 1.20250422.0 + '@cloudflare/workerd-linux-arm64': 1.20250422.0 + '@cloudflare/workerd-windows-64': 1.20250422.0 - wrangler@4.10.0: + wrangler@4.13.0: dependencies: '@cloudflare/kv-asset-handler': 0.4.0 - '@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250409.0) + '@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250422.0) blake3-wasm: 2.1.5 - esbuild: 0.24.2 - miniflare: 4.20250409.0 + esbuild: 0.25.2 + miniflare: 4.20250422.0 path-to-regexp: 6.3.0 unenv: 2.0.0-rc.15 - workerd: 1.20250409.0 + workerd: 1.20250422.0 optionalDependencies: fsevents: 2.3.3 sharp: 0.33.5 diff --git a/worker/package.json b/worker/package.json index bf249be6..b623a9bc 100644 --- a/worker/package.json +++ b/worker/package.json @@ -1,6 +1,6 @@ { "name": "cloudflare_temp_email", - "version": "0.9.1", + "version": "0.10.9", "private": true, "type": "module", "scripts": { @@ -11,25 +11,25 @@ "build": "wrangler deploy --dry-run --outdir dist --minify" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20250412.0", + "@cloudflare/workers-types": "^4.20250423.0", "@eslint/js": "9.18.0", "@simplewebauthn/types": "10.0.0", "eslint": "9.18.0", "globals": "^15.15.0", - "typescript-eslint": "^8.29.1", - "wrangler": "^4.10.0" + "typescript-eslint": "^8.31.0", + "wrangler": "^4.13.0" }, "dependencies": { "@aws-sdk/client-s3": "^3.787.0", "@aws-sdk/s3-request-presigner": "^3.787.0", "@simplewebauthn/server": "10.0.1", - "hono": "^4.7.6", + "hono": "^4.7.7", "jsonpath-plus": "^10.3.0", "mimetext": "^3.0.27", "postal-mime": "^2.4.3", - "resend": "^4.2.0", + "resend": "^4.4.0", "telegraf": "4.16.3", - "worker-mailer": "^1.1.1" + "worker-mailer": "^1.1.3" }, "pnpm": { "patchedDependencies": { diff --git a/worker/pnpm-lock.yaml b/worker/pnpm-lock.yaml index 72da35ab..0c2b4136 100644 --- a/worker/pnpm-lock.yaml +++ b/worker/pnpm-lock.yaml @@ -23,8 +23,8 @@ importers: specifier: 10.0.1 version: 10.0.1 hono: - specifier: ^4.7.6 - version: 4.7.6 + specifier: ^4.7.7 + version: 4.7.7 jsonpath-plus: specifier: ^10.3.0 version: 10.3.0 @@ -35,18 +35,18 @@ importers: specifier: ^2.4.3 version: 2.4.3 resend: - specifier: ^4.2.0 - version: 4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^4.4.0 + version: 4.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) telegraf: specifier: 4.16.3 version: 4.16.3(patch_hash=7d0a1784bb35f50fee25f26a14017734b9461612c635e71734b59527280c9563) worker-mailer: - specifier: ^1.1.1 - version: 1.1.1 + specifier: ^1.1.3 + version: 1.1.3 devDependencies: '@cloudflare/workers-types': - specifier: ^4.20250412.0 - version: 4.20250412.0 + specifier: ^4.20250423.0 + version: 4.20250423.0 '@eslint/js': specifier: 9.18.0 version: 9.18.0 @@ -60,11 +60,11 @@ importers: specifier: ^15.15.0 version: 15.15.0 typescript-eslint: - specifier: ^8.29.1 - version: 8.29.1(eslint@9.18.0)(typescript@5.4.5) + specifier: ^8.31.0 + version: 8.31.0(eslint@9.18.0)(typescript@5.4.5) wrangler: - specifier: ^4.10.0 - version: 4.10.0(@cloudflare/workers-types@4.20250412.0) + specifier: ^4.13.0 + version: 4.13.0(@cloudflare/workers-types@4.20250423.0) packages: @@ -248,198 +248,198 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20250409.0': - resolution: {integrity: sha512-smA9yq77xsdQ1NMLhFz3JZxMHGd01lg0bE+X3dTFmIUs+hHskJ+HJ/IkMFInkCCeEFlUkoL4yO7ilaU/fin/xA==} + '@cloudflare/workerd-darwin-64@1.20250422.0': + resolution: {integrity: sha512-2FWl8TLpC4Knuyw8GmNgUSoJCNJNNGJ7Xv90j2n8FiXR5Clp9jSpm2ovK8RP9P751yX1/iIp8e7QufR/XDB6ow==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250409.0': - resolution: {integrity: sha512-oLVcf+Y5Qun8JHcy1VcR/YnbA5U2ne0czh3XNhDqdHZFK8+vKeC7MnVPX+kEqQA3+uLcMM1/FsIDU1U4Na0h1g==} + '@cloudflare/workerd-darwin-arm64@1.20250422.0': + resolution: {integrity: sha512-GY3W74ivqxsYldacEbMtcSbG7LsS9hPo5UybKIw4RO9GzP7UC5WGnPfuI4PE2SnJOnw7nwSrBLuhGRPe/QQHkQ==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20250409.0': - resolution: {integrity: sha512-D31B4kdC3a0RD5yfpdIa89//kGHbYsYihZmejm1k4S4NHOho3MUDHAEh4aHtafQNXbZdydGHlSyiVYjTdQ9ILQ==} + '@cloudflare/workerd-linux-64@1.20250422.0': + resolution: {integrity: sha512-mtNkEygKtlRq9pMRlm9J4nX4uVHU1AtJ3mSkdNwPwhisTpo989O5Zd0SH9CYwAk8+NmlZsXELpODUVQxQ7FJgw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20250409.0': - resolution: {integrity: sha512-Sr59P0TREayil5OQ7kcbjuIn6L6OTSRLI91LKu0D8vi1hss2q9FUwBcwxg0+Yd/x+ty/x7IISiAK5QBkAMeITQ==} + '@cloudflare/workerd-linux-arm64@1.20250422.0': + resolution: {integrity: sha512-ILlW4/kAoFJvSryrr/QJsiHBdMTf/fjUrIM0hxeuQue8zIEvAVqM1tzpUh8bPJT6AQEbk5ziwkfucA939Z6Tnw==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20250409.0': - resolution: {integrity: sha512-dK9I8zBX5rR7MtaaP2AhICQTEw3PVzHcsltN8o46w7JsbYlMvFOj27FfYH5dhs3IahgmIfw2e572QXW2o/dbpg==} + '@cloudflare/workerd-windows-64@1.20250422.0': + resolution: {integrity: sha512-O2f6f7oxU/oaWX/3/5d/9qvzNSKsw72RsQFjpew2va7KwnnUciI2LnbYR6KYOqRGYrEoiMJxpWPQaYaFVj8t1w==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20250412.0': - resolution: {integrity: sha512-ukQE+TRc5HNkM6VvGfTNC9x54TLQKjdcm624F8Qh1ZRe0iJrW2/j1eYgvJABJPexDousYCR7VzCGteShLcBJYQ==} + '@cloudflare/workers-types@4.20250423.0': + resolution: {integrity: sha512-uzy7fvgYIs9YCEaPScC+RnZvd+yJJCqLCEe/n/6p2PZTxWbDmiZjtJQiP5Zx6G0p64ZD/0ZRmtALfDZDNYBDHg==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@emnapi/runtime@1.4.1': - resolution: {integrity: sha512-LMshMVP0ZhACNjQNYXiU1iZJ6QCcv0lUdPDPugqGvCGXt5xtRVBPdtA0qU12pEXZzpWAhWlZYptfdAFq10DOVQ==} + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + '@esbuild/aix-ppc64@0.25.2': + resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + '@esbuild/android-arm64@0.25.2': + resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + '@esbuild/android-arm@0.25.2': + resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + '@esbuild/android-x64@0.25.2': + resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + '@esbuild/darwin-arm64@0.25.2': + resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + '@esbuild/darwin-x64@0.25.2': + resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + '@esbuild/freebsd-arm64@0.25.2': + resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + '@esbuild/freebsd-x64@0.25.2': + resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + '@esbuild/linux-arm64@0.25.2': + resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + '@esbuild/linux-arm@0.25.2': + resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + '@esbuild/linux-ia32@0.25.2': + resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + '@esbuild/linux-loong64@0.25.2': + resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + '@esbuild/linux-mips64el@0.25.2': + resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + '@esbuild/linux-ppc64@0.25.2': + resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + '@esbuild/linux-riscv64@0.25.2': + resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + '@esbuild/linux-s390x@0.25.2': + resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + '@esbuild/linux-x64@0.25.2': + resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + '@esbuild/netbsd-arm64@0.25.2': + resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + '@esbuild/netbsd-x64@0.25.2': + resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + '@esbuild/openbsd-arm64@0.25.2': + resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + '@esbuild/openbsd-x64@0.25.2': + resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + '@esbuild/sunos-x64@0.25.2': + resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + '@esbuild/win32-arm64@0.25.2': + resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + '@esbuild/win32-ia32@0.25.2': + resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + '@esbuild/win32-x64@0.25.2': + resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.5.1': - resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} + '@eslint-community/eslint-utils@4.6.1': + resolution: {integrity: sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -660,8 +660,8 @@ packages: '@peculiar/asn1-x509@2.3.15': resolution: {integrity: sha512-0dK5xqTqSLaxv1FHXIcd4Q/BZNuopg+u1l23hT9rOmQ1g4dNtw0g/RnEi+TboB0gOwGtrWn269v27cMgchFIIg==} - '@react-email/render@1.0.5': - resolution: {integrity: sha512-CA69HYXPk21HhtAXATIr+9JJwpDNmAFCvdMUjWmeoD1+KhJ9NAxusMRxKNeibdZdslmq3edaeOKGbdQ9qjK8LQ==} + '@react-email/render@1.0.6': + resolution: {integrity: sha512-zNueW5Wn/4jNC1c5LFgXzbUdv5Lhms+FWjOvWAhal7gx5YVf0q6dPJ0dnR70+ifo59gcMLwCZEaTS9EEuUhKvQ==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc @@ -898,51 +898,51 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@typescript-eslint/eslint-plugin@8.29.1': - resolution: {integrity: sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==} + '@typescript-eslint/eslint-plugin@8.31.0': + resolution: {integrity: sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.29.1': - resolution: {integrity: sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==} + '@typescript-eslint/parser@8.31.0': + resolution: {integrity: sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.29.1': - resolution: {integrity: sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==} + '@typescript-eslint/scope-manager@8.31.0': + resolution: {integrity: sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.29.1': - resolution: {integrity: sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==} + '@typescript-eslint/type-utils@8.31.0': + resolution: {integrity: sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.29.1': - resolution: {integrity: sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==} + '@typescript-eslint/types@8.31.0': + resolution: {integrity: sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.29.1': - resolution: {integrity: sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==} + '@typescript-eslint/typescript-estree@8.31.0': + resolution: {integrity: sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.29.1': - resolution: {integrity: sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==} + '@typescript-eslint/utils@8.31.0': + resolution: {integrity: sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.29.1': - resolution: {integrity: sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==} + '@typescript-eslint/visitor-keys@8.31.0': + resolution: {integrity: sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} abort-controller@3.0.0: @@ -1074,8 +1074,8 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} dom-serializer@2.0.0: @@ -1095,8 +1095,8 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + esbuild@0.25.2: + resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} engines: {node: '>=18'} hasBin: true @@ -1154,8 +1154,8 @@ packages: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} - exsolve@1.0.4: - resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} + exsolve@1.0.5: + resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} fast-deep-equal@2.0.1: resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} @@ -1233,8 +1233,8 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - hono@4.7.6: - resolution: {integrity: sha512-564rVzELU+9BRqqx5k8sT2NFwGD3I3Vifdb6P7CmM6FiarOSY+fDC+6B+k9wcCb86ReoayteZP2ki0cRLN1jbw==} + hono@4.7.7: + resolution: {integrity: sha512-2PCpQRbN87Crty8/L/7akZN3UyZIAopSoRxCwRbJgUuV1+MHNFHzYFxZTg4v/03cXUm+jce/qa2VSBZpKBm3Qw==} engines: {node: '>=16.9.0'} html-to-text@9.0.5: @@ -1347,8 +1347,8 @@ packages: mimetext@3.0.27: resolution: {integrity: sha512-mUhWAsZD1N/K6dbN4+a5Yq78OPnYQw1ubOSMasBntsLQ2S7KVNlvDEA8dwpr4a7PszWMzeslKahAprtwYMgaBA==} - miniflare@4.20250409.0: - resolution: {integrity: sha512-Hu02dYZvFR+MyrI57O6rSrOUTofcO9EIvcodgq2SAHzAeWSJw2E0oq9lylOrcckFwPMcwxUAb/cQN1LIoCyySw==} + miniflare@4.20250422.0: + resolution: {integrity: sha512-3frXK9EZEWQkHMDyppeIbUKwd7OQkNOm2gBtQQzjQ4gtzQmh+yxkyJiiylf+fGbz86djQTLKKQdQ1FC4yM3AMg==} engines: {node: '>=18.0.0'} hasBin: true @@ -1436,8 +1436,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.4.2: - resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} engines: {node: '>=14'} hasBin: true @@ -1473,8 +1473,8 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - resend@4.2.0: - resolution: {integrity: sha512-s6ogU+BBYH1H6Zl926cpddtLRAJWeFv5cIKcuHLWk1QYhFTbpFJlhqx31pnN2f0CB075KFSrc1Xf6HG690wzuw==} + resend@4.4.0: + resolution: {integrity: sha512-SmVI3JCpgPNt4/m3Uy403LjoSeeleUE2X+KwPYQZcw+jiBCFsqL6vdf1r/XuQ7yOjvxYmlI8GD/oIWonFF9t9w==} engines: {node: '>=18'} resolve-from@4.0.0: @@ -1568,8 +1568,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.29.1: - resolution: {integrity: sha512-f8cDkvndhbQMPcysk6CUSGBWV+g1utqdn71P5YKwMumVMOG/5k7cHq0KyG4O52nB0oKS4aN2Tp5+wB4APJGC+w==} + typescript-eslint@8.31.0: + resolution: {integrity: sha512-u+93F0sB0An8WEAPtwxVhFby573E8ckdjwUUQUj9QA4v8JAvgtoDdIyYR3XFwFHq2W1KJ1AurwJCO+w+Y1ixyQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1612,20 +1612,20 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - worker-mailer@1.1.1: - resolution: {integrity: sha512-UPPd48aBMVuAE2j9ha7wDEhBakM23zKBk8wd9lLUhChExPeq8B8cO6C1ur4hMOypmJO7mZ+xTZff1KoCKprvGA==} + worker-mailer@1.1.3: + resolution: {integrity: sha512-8jkbf843tAV9KMWQESrduMt6LKolYXJ9rmWO0W8ZM3CW0Mb+qaVaktXhqvAo7cLvYnYSxYBS8oJl0pgr75XipQ==} - workerd@1.20250409.0: - resolution: {integrity: sha512-hqjX9swiHvrkOI3jlH9lrZsZRRv9lddUwcMe8Ua76jnyQz+brybWznNjHu8U5oswwcrFwvky1A4CcLjcLY31gQ==} + workerd@1.20250422.0: + resolution: {integrity: sha512-q3ws6MIa9GJQqq1Q52qoD7vCx1203fjKNPmtRV1vvplrsfYphjr5pOAnZGUODFB1BnsDWypr71Luy7OonT0vug==} engines: {node: '>=16'} hasBin: true - wrangler@4.10.0: - resolution: {integrity: sha512-fTE4hZ79msEUt8+HEjl/8Q72haCyzPLu4PgrU3L81ysmjrMEdiYfUPqnvCkBUVtJvrDNdctTEimkufT1Y0ipNg==} + wrangler@4.13.0: + resolution: {integrity: sha512-CVRNL0unLmzhVeUkW+9neZHFITSo7UDROz8VYxi8YhitV9Rr1xMojS1cGjQTaQX8F3nAEsTRJXTwwTZ0JoJm6g==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250409.0 + '@cloudflare/workers-types': ^4.20250422.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -2143,114 +2143,114 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250409.0)': + '@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250422.0)': dependencies: unenv: 2.0.0-rc.15 optionalDependencies: - workerd: 1.20250409.0 + workerd: 1.20250422.0 - '@cloudflare/workerd-darwin-64@1.20250409.0': + '@cloudflare/workerd-darwin-64@1.20250422.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250409.0': + '@cloudflare/workerd-darwin-arm64@1.20250422.0': optional: true - '@cloudflare/workerd-linux-64@1.20250409.0': + '@cloudflare/workerd-linux-64@1.20250422.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20250409.0': + '@cloudflare/workerd-linux-arm64@1.20250422.0': optional: true - '@cloudflare/workerd-windows-64@1.20250409.0': + '@cloudflare/workerd-windows-64@1.20250422.0': optional: true - '@cloudflare/workers-types@4.20250412.0': {} + '@cloudflare/workers-types@4.20250423.0': {} '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@emnapi/runtime@1.4.1': + '@emnapi/runtime@1.4.3': dependencies: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.2': optional: true - '@esbuild/android-arm64@0.24.2': + '@esbuild/android-arm64@0.25.2': optional: true - '@esbuild/android-arm@0.24.2': + '@esbuild/android-arm@0.25.2': optional: true - '@esbuild/android-x64@0.24.2': + '@esbuild/android-x64@0.25.2': optional: true - '@esbuild/darwin-arm64@0.24.2': + '@esbuild/darwin-arm64@0.25.2': optional: true - '@esbuild/darwin-x64@0.24.2': + '@esbuild/darwin-x64@0.25.2': optional: true - '@esbuild/freebsd-arm64@0.24.2': + '@esbuild/freebsd-arm64@0.25.2': optional: true - '@esbuild/freebsd-x64@0.24.2': + '@esbuild/freebsd-x64@0.25.2': optional: true - '@esbuild/linux-arm64@0.24.2': + '@esbuild/linux-arm64@0.25.2': optional: true - '@esbuild/linux-arm@0.24.2': + '@esbuild/linux-arm@0.25.2': optional: true - '@esbuild/linux-ia32@0.24.2': + '@esbuild/linux-ia32@0.25.2': optional: true - '@esbuild/linux-loong64@0.24.2': + '@esbuild/linux-loong64@0.25.2': optional: true - '@esbuild/linux-mips64el@0.24.2': + '@esbuild/linux-mips64el@0.25.2': optional: true - '@esbuild/linux-ppc64@0.24.2': + '@esbuild/linux-ppc64@0.25.2': optional: true - '@esbuild/linux-riscv64@0.24.2': + '@esbuild/linux-riscv64@0.25.2': optional: true - '@esbuild/linux-s390x@0.24.2': + '@esbuild/linux-s390x@0.25.2': optional: true - '@esbuild/linux-x64@0.24.2': + '@esbuild/linux-x64@0.25.2': optional: true - '@esbuild/netbsd-arm64@0.24.2': + '@esbuild/netbsd-arm64@0.25.2': optional: true - '@esbuild/netbsd-x64@0.24.2': + '@esbuild/netbsd-x64@0.25.2': optional: true - '@esbuild/openbsd-arm64@0.24.2': + '@esbuild/openbsd-arm64@0.25.2': optional: true - '@esbuild/openbsd-x64@0.24.2': + '@esbuild/openbsd-x64@0.25.2': optional: true - '@esbuild/sunos-x64@0.24.2': + '@esbuild/sunos-x64@0.25.2': optional: true - '@esbuild/win32-arm64@0.24.2': + '@esbuild/win32-arm64@0.25.2': optional: true - '@esbuild/win32-ia32@0.24.2': + '@esbuild/win32-ia32@0.25.2': optional: true - '@esbuild/win32-x64@0.24.2': + '@esbuild/win32-x64@0.25.2': optional: true - '@eslint-community/eslint-utils@4.5.1(eslint@9.18.0)': + '@eslint-community/eslint-utils@4.6.1(eslint@9.18.0)': dependencies: eslint: 9.18.0 eslint-visitor-keys: 3.4.3 @@ -2379,7 +2379,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.4.1 + '@emnapi/runtime': 1.4.3 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -2452,10 +2452,10 @@ snapshots: pvtsutils: 1.3.6 tslib: 2.8.1 - '@react-email/render@1.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-email/render@1.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: html-to-text: 9.0.5 - prettier: 3.4.2 + prettier: 3.5.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-promise-suspense: 0.3.4 @@ -2818,14 +2818,14 @@ snapshots: '@types/json-schema@7.0.15': {} - '@typescript-eslint/eslint-plugin@8.29.1(@typescript-eslint/parser@8.29.1(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@8.31.0(@typescript-eslint/parser@8.31.0(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.29.1(eslint@9.18.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 8.29.1 - '@typescript-eslint/type-utils': 8.29.1(eslint@9.18.0)(typescript@5.4.5) - '@typescript-eslint/utils': 8.29.1(eslint@9.18.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 8.29.1 + '@typescript-eslint/parser': 8.31.0(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.31.0 + '@typescript-eslint/type-utils': 8.31.0(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/utils': 8.31.0(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.31.0 eslint: 9.18.0 graphemer: 1.4.0 ignore: 5.3.2 @@ -2835,27 +2835,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.29.1(eslint@9.18.0)(typescript@5.4.5)': + '@typescript-eslint/parser@8.31.0(eslint@9.18.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 8.29.1 - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 8.29.1 + '@typescript-eslint/scope-manager': 8.31.0 + '@typescript-eslint/types': 8.31.0 + '@typescript-eslint/typescript-estree': 8.31.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.31.0 debug: 4.4.0 eslint: 9.18.0 typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.29.1': + '@typescript-eslint/scope-manager@8.31.0': dependencies: - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/visitor-keys': 8.29.1 + '@typescript-eslint/types': 8.31.0 + '@typescript-eslint/visitor-keys': 8.31.0 - '@typescript-eslint/type-utils@8.29.1(eslint@9.18.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@8.31.0(eslint@9.18.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.4.5) - '@typescript-eslint/utils': 8.29.1(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 8.31.0(typescript@5.4.5) + '@typescript-eslint/utils': 8.31.0(eslint@9.18.0)(typescript@5.4.5) debug: 4.4.0 eslint: 9.18.0 ts-api-utils: 2.1.0(typescript@5.4.5) @@ -2863,12 +2863,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.29.1': {} + '@typescript-eslint/types@8.31.0': {} - '@typescript-eslint/typescript-estree@8.29.1(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@8.31.0(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/visitor-keys': 8.29.1 + '@typescript-eslint/types': 8.31.0 + '@typescript-eslint/visitor-keys': 8.31.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -2879,20 +2879,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.29.1(eslint@9.18.0)(typescript@5.4.5)': + '@typescript-eslint/utils@8.31.0(eslint@9.18.0)(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.18.0) - '@typescript-eslint/scope-manager': 8.29.1 - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.4.5) + '@eslint-community/eslint-utils': 4.6.1(eslint@9.18.0) + '@typescript-eslint/scope-manager': 8.31.0 + '@typescript-eslint/types': 8.31.0 + '@typescript-eslint/typescript-estree': 8.31.0(typescript@5.4.5) eslint: 9.18.0 typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.29.1': + '@typescript-eslint/visitor-keys@8.31.0': dependencies: - '@typescript-eslint/types': 8.29.1 + '@typescript-eslint/types': 8.31.0 eslint-visitor-keys: 4.2.0 abort-controller@3.0.0: @@ -3015,7 +3015,7 @@ snapshots: defu@6.1.4: {} - detect-libc@2.0.3: + detect-libc@2.0.4: optional: true dom-serializer@2.0.0: @@ -3038,33 +3038,33 @@ snapshots: entities@4.5.0: {} - esbuild@0.24.2: + esbuild@0.25.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 + '@esbuild/aix-ppc64': 0.25.2 + '@esbuild/android-arm': 0.25.2 + '@esbuild/android-arm64': 0.25.2 + '@esbuild/android-x64': 0.25.2 + '@esbuild/darwin-arm64': 0.25.2 + '@esbuild/darwin-x64': 0.25.2 + '@esbuild/freebsd-arm64': 0.25.2 + '@esbuild/freebsd-x64': 0.25.2 + '@esbuild/linux-arm': 0.25.2 + '@esbuild/linux-arm64': 0.25.2 + '@esbuild/linux-ia32': 0.25.2 + '@esbuild/linux-loong64': 0.25.2 + '@esbuild/linux-mips64el': 0.25.2 + '@esbuild/linux-ppc64': 0.25.2 + '@esbuild/linux-riscv64': 0.25.2 + '@esbuild/linux-s390x': 0.25.2 + '@esbuild/linux-x64': 0.25.2 + '@esbuild/netbsd-arm64': 0.25.2 + '@esbuild/netbsd-x64': 0.25.2 + '@esbuild/openbsd-arm64': 0.25.2 + '@esbuild/openbsd-x64': 0.25.2 + '@esbuild/sunos-x64': 0.25.2 + '@esbuild/win32-arm64': 0.25.2 + '@esbuild/win32-ia32': 0.25.2 + '@esbuild/win32-x64': 0.25.2 escape-string-regexp@4.0.0: {} @@ -3079,7 +3079,7 @@ snapshots: eslint@9.18.0: dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.18.0) + '@eslint-community/eslint-utils': 4.6.1(eslint@9.18.0) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 '@eslint/core': 0.10.0 @@ -3138,7 +3138,7 @@ snapshots: exit-hook@2.2.1: {} - exsolve@1.0.4: {} + exsolve@1.0.5: {} fast-deep-equal@2.0.1: {} @@ -3210,7 +3210,7 @@ snapshots: has-flag@4.0.0: {} - hono@4.7.6: {} + hono@4.7.7: {} html-to-text@9.0.5: dependencies: @@ -3314,7 +3314,7 @@ snapshots: js-base64: 3.7.7 mime-types: 2.1.35 - miniflare@4.20250409.0: + miniflare@4.20250422.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 @@ -3323,7 +3323,7 @@ snapshots: glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.29.0 - workerd: 1.20250409.0 + workerd: 1.20250422.0 ws: 8.18.0 youch: 3.3.4 zod: 3.22.3 @@ -3397,7 +3397,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.4.2: {} + prettier@3.5.3: {} printable-characters@1.0.42: {} @@ -3427,9 +3427,9 @@ snapshots: regenerator-runtime@0.14.1: {} - resend@4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + resend@4.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@react-email/render': 1.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-email/render': 1.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - react - react-dom @@ -3461,7 +3461,7 @@ snapshots: sharp@0.33.5: dependencies: color: 4.2.3 - detect-libc: 2.0.3 + detect-libc: 2.0.4 semver: 7.7.1 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 @@ -3543,11 +3543,11 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.29.1(eslint@9.18.0)(typescript@5.4.5): + typescript-eslint@8.31.0(eslint@9.18.0)(typescript@5.4.5): dependencies: - '@typescript-eslint/eslint-plugin': 8.29.1(@typescript-eslint/parser@8.29.1(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5) - '@typescript-eslint/parser': 8.29.1(eslint@9.18.0)(typescript@5.4.5) - '@typescript-eslint/utils': 8.29.1(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 8.31.0(@typescript-eslint/parser@8.31.0(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/parser': 8.31.0(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/utils': 8.31.0(eslint@9.18.0)(typescript@5.4.5) eslint: 9.18.0 typescript: 5.4.5 transitivePeerDependencies: @@ -3564,7 +3564,7 @@ snapshots: unenv@2.0.0-rc.15: dependencies: defu: 6.1.4 - exsolve: 1.0.4 + exsolve: 1.0.5 ohash: 2.0.11 pathe: 2.0.3 ufo: 1.6.1 @@ -3588,28 +3588,28 @@ snapshots: word-wrap@1.2.5: {} - worker-mailer@1.1.1: {} + worker-mailer@1.1.3: {} - workerd@1.20250409.0: + workerd@1.20250422.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250409.0 - '@cloudflare/workerd-darwin-arm64': 1.20250409.0 - '@cloudflare/workerd-linux-64': 1.20250409.0 - '@cloudflare/workerd-linux-arm64': 1.20250409.0 - '@cloudflare/workerd-windows-64': 1.20250409.0 + '@cloudflare/workerd-darwin-64': 1.20250422.0 + '@cloudflare/workerd-darwin-arm64': 1.20250422.0 + '@cloudflare/workerd-linux-64': 1.20250422.0 + '@cloudflare/workerd-linux-arm64': 1.20250422.0 + '@cloudflare/workerd-windows-64': 1.20250422.0 - wrangler@4.10.0(@cloudflare/workers-types@4.20250412.0): + wrangler@4.13.0(@cloudflare/workers-types@4.20250423.0): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 - '@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250409.0) + '@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250422.0) blake3-wasm: 2.1.5 - esbuild: 0.24.2 - miniflare: 4.20250409.0 + esbuild: 0.25.2 + miniflare: 4.20250422.0 path-to-regexp: 6.3.0 unenv: 2.0.0-rc.15 - workerd: 1.20250409.0 + workerd: 1.20250422.0 optionalDependencies: - '@cloudflare/workers-types': 4.20250412.0 + '@cloudflare/workers-types': 4.20250423.0 fsevents: 2.3.3 sharp: 0.33.5 transitivePeerDependencies: diff --git a/worker/src/admin_api/admin_mail_api.ts b/worker/src/admin_api/admin_mail_api.ts new file mode 100644 index 00000000..ebd040a2 --- /dev/null +++ b/worker/src/admin_api/admin_mail_api.ts @@ -0,0 +1,39 @@ +import { Context } from "hono"; +import { HonoCustomType } from "../types"; +import { handleListQuery } from "../common"; + +export default { + getMails: async (c: Context) => { + const { address, limit, offset, keyword } = c.req.query(); + const addressQuery = address ? `address = ?` : ""; + const addressParams = address ? [address] : []; + const keywordQuery = keyword ? `raw like ?` : ""; + const keywordParams = keyword ? [`%${keyword}%`] : []; + const filterQuerys = [addressQuery, keywordQuery].filter((item) => item).join(" and "); + const finalQuery = filterQuerys.length > 0 ? `where ${filterQuerys}` : ""; + const filterParams = [...addressParams, ...keywordParams] + return await handleListQuery(c, + `SELECT * FROM raw_mails ${finalQuery}`, + `SELECT count(*) as count FROM raw_mails ${finalQuery}`, + filterParams, limit, offset + ); + }, + getUnknowMails: async (c: Context) => { + const { limit, offset } = c.req.query(); + return await handleListQuery(c, + `SELECT * FROM raw_mails where address NOT IN (select name from address) `, + `SELECT count(*) as count FROM raw_mails` + + ` where address NOT IN (select name from address) `, + [], limit, offset + ); + }, + deleteMail: async (c: Context) => { + const { id } = c.req.param(); + const { success } = await c.env.DB.prepare( + `DELETE FROM raw_mails WHERE id = ? ` + ).bind(id).run(); + return c.json({ + success: success + }) + } +} diff --git a/worker/src/admin_api/admin_user_api.ts b/worker/src/admin_api/admin_user_api.ts index b6903db5..4ea16d4d 100644 --- a/worker/src/admin_api/admin_user_api.ts +++ b/worker/src/admin_api/admin_user_api.ts @@ -6,6 +6,7 @@ import { UserSettings, GeoData, UserInfo } from "../models"; import { handleListQuery } from '../common' import { HonoCustomType } from '../types'; import UserBindAddressModule from '../user_api/bind_address'; +import i18n from '../i18n'; export default { getSetting: async (c: Context) => { @@ -90,7 +91,8 @@ export default { }, deleteUser: async (c: Context) => { const { user_id } = c.req.param(); - if (!user_id) return c.text("Invalid user_id", 400); + const msgs = i18n.getMessagesbyContext(c); + if (!user_id) return c.text(msgs.UserNotFoundMsg, 400); const { success } = await c.env.DB.prepare( `DELETE FROM users WHERE id = ?` ).bind(user_id).run(); @@ -105,7 +107,8 @@ export default { resetPassword: async (c: Context) => { const { user_id } = c.req.param(); const { password } = await c.req.json(); - if (!user_id) return c.text("Invalid user_id", 400); + const msgs = i18n.getMessagesbyContext(c); + if (!user_id) return c.text(msgs.UserNotFoundMsg, 400); try { checkUserPassword(password); const { success } = await c.env.DB.prepare( @@ -159,6 +162,9 @@ export default { }, getBindedAddresses: async (c: Context) => { const { user_id } = c.req.param(); - return await UserBindAddressModule.getBindedAddressesById(c, user_id); + const results = await UserBindAddressModule.getBindedAddressesById(c, user_id); + return c.json({ + results: results, + }); }, } diff --git a/worker/src/admin_api/index.ts b/worker/src/admin_api/index.ts index 11b7d637..0a1ac140 100644 --- a/worker/src/admin_api/index.ts +++ b/worker/src/admin_api/index.ts @@ -12,6 +12,7 @@ import webhook_settings from './webhook_settings' import mail_webhook_settings from './mail_webhook_settings' import oauth2_settings from './oauth2_settings' import worker_config from './worker_config' +import admin_mail_api from './admin_mail_api' import { sendMailbyAdmin } from './send_mail' export const api = new Hono() @@ -101,54 +102,10 @@ api.get('/admin/show_password/:id', async (c) => { }) }) -api.get('/admin/mails', async (c) => { - const { address, limit, offset, keyword } = c.req.query(); - if (address && keyword) { - return await handleListQuery(c, - `SELECT * FROM raw_mails where address = ? and raw like ? `, - `SELECT count(*) as count FROM raw_mails where address = ? and raw like ? `, - [address, `%${keyword}%`], limit, offset - ); - } else if (keyword) { - return await handleListQuery(c, - `SELECT * FROM raw_mails where raw like ? `, - `SELECT count(*) as count FROM raw_mails where raw like ? `, - [`%${keyword}%`], limit, offset - ); - } else if (address) { - return await handleListQuery(c, - `SELECT * FROM raw_mails where address = ? `, - `SELECT count(*) as count FROM raw_mails where address = ? `, - [address], limit, offset - ); - } else { - return await handleListQuery(c, - `SELECT * FROM raw_mails `, - `SELECT count(*) as count FROM raw_mails `, - [], limit, offset - ); - } -}); - -api.get('/admin/mails_unknow', async (c) => { - const { limit, offset } = c.req.query(); - return await handleListQuery(c, - `SELECT * FROM raw_mails where address NOT IN (select name from address) `, - `SELECT count(*) as count FROM raw_mails` - + ` where address NOT IN (select name from address) `, - [], limit, offset - ); -}); - -api.delete('/admin/mails/:id', async (c) => { - const { id } = c.req.param(); - const { success } = await c.env.DB.prepare( - `DELETE FROM raw_mails WHERE id = ? ` - ).bind(id).run(); - return c.json({ - success: success - }) -}) +// mail api +api.get('/admin/mails', admin_mail_api.getMails); +api.get('/admin/mails_unknow', admin_mail_api.getUnknowMails); +api.delete('/admin/mails/:id', admin_mail_api.deleteMail) api.get('/admin/address_sender', async (c) => { const { address, limit, offset } = c.req.query(); diff --git a/worker/src/constants.ts b/worker/src/constants.ts index b5144c3d..a16d3e40 100644 --- a/worker/src/constants.ts +++ b/worker/src/constants.ts @@ -1,5 +1,5 @@ export const CONSTANTS = { - VERSION: 'v' + '0.9.1', + VERSION: 'v' + '0.10.9', // DB settings ADDRESS_BLOCK_LIST_KEY: 'address_block_list', diff --git a/worker/src/i18n/index.ts b/worker/src/i18n/index.ts index 1e39887a..7654edfb 100644 --- a/worker/src/i18n/index.ts +++ b/worker/src/i18n/index.ts @@ -1,6 +1,8 @@ import { LocaleMessages } from "./type"; import zh from "./zh"; import en from "./en"; +import { HonoCustomType } from "../types"; +import { Context } from "hono"; export default { getMessages: ( @@ -10,6 +12,17 @@ export default { if (locale === "en") return en; if (locale === "zh") return zh; + // fallback language + return en; + }, + getMessagesbyContext: ( + c: Context + ): LocaleMessages => { + const locale = c.get("lang") || c.env.DEFAULT_LANG; + // multi-language support + if (locale === "en") return en; + if (locale === "zh") return zh; + // fallback language return en; } diff --git a/worker/src/user_api/bind_address.ts b/worker/src/user_api/bind_address.ts index a16989a9..c29ff494 100644 --- a/worker/src/user_api/bind_address.ts +++ b/worker/src/user_api/bind_address.ts @@ -6,6 +6,7 @@ import { UserSettings } from "../models"; import { getJsonSetting } from "../utils" import { CONSTANTS } from "../constants"; import { unbindTelegramByAddress } from '../telegram_api/common'; +import i18n from '../i18n'; const UserBindAddressModule = { bind: async (c: Context) => { @@ -102,13 +103,30 @@ const UserBindAddressModule = { }, getBindedAddresses: async (c: Context) => { const { user_id } = c.get("userPayload"); - return await UserBindAddressModule.getBindedAddressesById(c, user_id); + const results = await UserBindAddressModule.getBindedAddressesById(c, user_id); + return c.json({ + results: results, + }); + }, + getBindedAddressListById: async ( + c: Context, user_id: number | string + ): Promise => { + const bindedAddressList = await UserBindAddressModule.getBindedAddressesById(c, user_id); + return bindedAddressList.map((item) => item.name); }, getBindedAddressesById: async ( c: Context, user_id: number | string - ) => { + ): Promise<{ + id: number; + name: string; + mail_count: number; + send_count: number; + created_at: string; + updated_at: string; + }[]> => { + const msgs = i18n.getMessagesbyContext(c); if (!user_id) { - return c.text("No user token", 400) + throw new Error(msgs.UserNotFoundMsg); } // select binded address const { results } = await c.env.DB.prepare( @@ -120,10 +138,15 @@ const UserBindAddressModule = { + ` ON ua.address_id = a.id ` + ` WHERE ua.user_id = ?` + ` ORDER BY a.id DESC` - ).bind(user_id).all(); - return c.json({ - results: results, - }) + ).bind(user_id).all<{ + id: number; + name: string; + mail_count: number; + send_count: number; + created_at: string; + updated_at: string; + }>(); + return results || []; }, getBindedAddressJwt: async (c: Context) => { const { address_id } = c.req.param(); @@ -216,7 +239,7 @@ const UserBindAddressModule = { throw new Error("Failed to create address") } // find new address id - let new_address_id = await c.env.DB.prepare( + const new_address_id = await c.env.DB.prepare( `SELECT id FROM address WHERE name = ?` ).bind(address).first("id"); if (!new_address_id) { diff --git a/worker/src/user_api/index.ts b/worker/src/user_api/index.ts index 5eb441c4..115e423c 100644 --- a/worker/src/user_api/index.ts +++ b/worker/src/user_api/index.ts @@ -6,6 +6,7 @@ import user from './user'; import bind_address from './bind_address'; import passkey from './passkey'; import oauth2 from './oauth2'; +import user_mail_api from './user_mail_api'; export const api = new Hono(); @@ -13,6 +14,10 @@ export const api = new Hono(); api.get('/user_api/open_settings', settings.openSettings); api.get('/user_api/settings', settings.settings); +// mail api +api.get('/user_api/mails', user_mail_api.getMails); +api.delete('/user_api/mails/:id', user_mail_api.deleteMail); + // user api api.post('/user_api/login', user.login); api.post('/user_api/verify_code', user.verifyCode); diff --git a/worker/src/user_api/user_mail_api.ts b/worker/src/user_api/user_mail_api.ts new file mode 100644 index 00000000..0f73cd20 --- /dev/null +++ b/worker/src/user_api/user_mail_api.ts @@ -0,0 +1,43 @@ +import { Context } from "hono"; +import { handleListQuery } from "../common"; +import { HonoCustomType } from "../types"; +import UserBindAddressModule from "./bind_address"; + +export default { + getMails: async (c: Context) => { + const { user_id } = c.get("userPayload"); + const { address, limit, offset, keyword } = c.req.query(); + const bindedAddressList = await UserBindAddressModule.getBindedAddressListById(c, user_id); + const addressList = address ? bindedAddressList.filter((item) => item == address) : bindedAddressList; + const addressQuery = `address IN (${addressList.map(() => "?").join(",")})`; + const addressParams = addressList; + const keywordQuery = keyword ? `raw like ?` : ""; + const keywordParams = keyword ? [`%${keyword}%`] : []; + + // user must have at least one binded address to query mails + if (addressList.length <= 0) { + return c.json({ results: [], count: 0 }); + } + + const filterQuerys = [addressQuery, keywordQuery].filter((item) => item).join(" and "); + const finalQuery = filterQuerys.length > 0 ? `where ${filterQuerys}` : ""; + const filterParams = [...addressParams, ...keywordParams] + return await handleListQuery(c, + `SELECT * FROM raw_mails ${finalQuery}`, + `SELECT count(*) as count FROM raw_mails ${finalQuery}`, + filterParams, limit, offset + ); + }, + deleteMail: async (c: Context) => { + const { id } = c.req.param(); + const { user_id } = c.get("userPayload"); + const bindedAddressList = await UserBindAddressModule.getBindedAddressListById(c, user_id); + const { success } = await c.env.DB.prepare( + `DELETE FROM raw_mails WHERE id = ?` + + ` and address IN (${bindedAddressList.map(() => "?").join(",")})` + ).bind(id, ...bindedAddressList).run(); + return c.json({ + success: success + }) + } +}